📄 advancedscoremodel.h
字号:
SNI_IND_C_N_TERM, SNI_IND_C_C_TERM, SNI_IND_C_Gap, SNI_IND_C_Xle, SNI_IND_C_Ala, SNI_IND_C_Arg, SNI_IND_C_Asn,
SNI_IND_C_Asp, SNI_IND_C_Cys, SNI_IND_C_Gln, SNI_IND_C_Glu, SNI_IND_C_Gly, SNI_IND_C_His, SNI_IND_C_Ile,
SNI_IND_C_Leu, SNI_IND_C_Lys, SNI_IND_C_Met, SNI_IND_C_Phe, SNI_IND_C_Pro, SNI_IND_C_Ser, SNI_IND_C_Thr,
SNI_IND_C_Trp, SNI_IND_C_Tyr, SNI_IND_C_Val,
// The following are only filled if the N are in the visible range
SNI_IND_C_SE,
SNI_SE_IND_HAS_C_FRAG_INTEN,
SNI_SE_IND_C_DIS_FROM_MINMAX_LESS_50_WINTEN, SNI_SE_IND_C_DIS_FROM_MINMAX_LESS_150_WINTEN, SNI_SE_IND_C_DIS_FROM_MINMAX_LESS_250_WINTEN,
SNI_SE_IND_C_N_TERM_DIFF_INTEN, SNI_SE_IND_C_C_TERM_DIFF_INTEN, SNI_SE_IND_C_Gap_DIFF_INTEN, SNI_SE_IND_C_Xle_DIFF_INTEN, SNI_SE_IND_C_Ala_DIFF_INTEN, SNI_SE_IND_C_Arg_DIFF_INTEN, SNI_SE_IND_C_Asn_DIFF_INTEN,
SNI_SE_IND_C_Asp_DIFF_INTEN, SNI_SE_IND_C_Cys_DIFF_INTEN, SNI_SE_IND_C_Gln_DIFF_INTEN, SNI_SE_IND_C_Glu_DIFF_INTEN, SNI_SE_IND_C_Gly_DIFF_INTEN, SNI_SE_IND_C_His_DIFF_INTEN, SNI_SE_IND_C_Ile_DIFF_INTEN,
SNI_SE_IND_C_Leu_DIFF_INTEN, SNI_SE_IND_C_Lys_DIFF_INTEN, SNI_SE_IND_C_Met_DIFF_INTEN, SNI_SE_IND_C_Phe_DIFF_INTEN, SNI_SE_IND_C_Pro_DIFF_INTEN, SNI_SE_IND_C_Ser_DIFF_INTEN, SNI_SE_IND_C_Thr_DIFF_INTEN,
SNI_SE_IND_C_Trp_DIFF_INTEN, SNI_SE_IND_C_Tyr_DIFF_INTEN, SNI_SE_IND_C_Val_DIFF_INTEN,
SNI_SE_IND_HAS_NO_C_FRAG_INTEN,
SNI_SE_IND_C_DIS_FROM_MINMAX_LESS_50_NOINTEN, SNI_SE_IND_C_DIS_FROM_MINMAX_LESS_150_NOINTEN, SNI_SE_IND_C_DIS_FROM_MINMAX_LESS_250_NOINTEN,
SNI_IND_C_ME,
SNI_ME_IND_HAS_C_FRAG_INTEN,
SNI_ME_IND_C_DIS_FROM_MINMAX_LESS_50_WINTEN, SNI_ME_IND_C_DIS_FROM_MINMAX_LESS_150_WINTEN, SNI_ME_IND_C_DIS_FROM_MINMAX_LESS_250_WINTEN,
SNI_ME_IND_HAS_NO_C_FRAG_INTEN,
SNI_ME_IND_C_DIS_FROM_MINMAX_LESS_50_NOINTEN, SNI_ME_IND_C_DIS_FROM_MINMAX_LESS_150_NOINTEN, SNI_ME_IND_C_DIS_FROM_MINMAX_LESS_250_NOINTEN,
SNI_NUM_FEATURES
} ScoreModelFields_SNI;
// a regular fragment with intensity
typedef enum ScoreModelFields_RI {
RI_CONST,
RI_LOG_LOCAL_RANK, RI_LOG_GLOBAL_RANK, RI_ISO_LEVEL,
RI_IND_LOG_INTEN_LESS1, RI_LOG_INTEN_LESS1,
RI_IND_LOG_INTEN_LESS2, RI_LOG_INTEN_LESS2,
RI_IND_LOG_INTEN_LESS3, RI_LOG_INTEN_LESS3,
RI_IND_LOG_INTEN_LESS4, RI_LOG_INTEN_LESS4,
RI_IND_LOG_INTEN_MORE, RI_LOG_INTEN_MORE,
RI_IND_DIS_FROM_MINMAX_LESS_50, RI_DIS_FROM_MINMAX0, RI_LOG_INTEN_DIS50,
RI_IND_DIS_FROM_MINMAX_LESS_150, RI_DIS_FROM_MINMAX50, RI_LOG_INTEN_DIS150,
RI_IND_DIS_FROM_MINMAX_LESS_250, RI_DIS_FROM_MINMAX150, RI_LOG_INTEN_DIS250,
RI_IND_DIS_FROM_MINMAX_MORE, RI_DIS_FROM_MINMAX250, RI_LOG_INTEN_DISMORE,
RI_REL_POS0, RI_REL_POS1, RI_REL_POS2, RI_REL_POS3, RI_REL_POS4,
RI_REL_POS5, RI_REL_POS6, RI_REL_POS7, RI_REL_POS8, RI_REL_POS9,
RI_IND_NUM_PARENTS_WITH_INTEN_IS_0, RI_IND_NUM_PARENTS_WITH_INTEN_IS_1,
RI_IND_NUM_PARENTS_WITH_INTEN_IS_2, RI_IND_NUM_PARENTS_WITH_INTEN_IS_3,
RI_IND_NUM_PARENTS_WITH_INTEN_IS_4, RI_IND_NUM_PARENTS_WITH_INTEN_IS_5,
RI_IND_NUM_PARENTS_WITH_INTEN_IS_6, RI_IND_NUM_PARENTS_WITH_INTEN_IS_MORE6,
// exact combo for top 4 parents (if not viz, assume frag is present)
RI_IND_PARENT_COMBO_0, RI_IND_PARENT_COMBO_1, RI_IND_PARENT_COMBO_2, RI_IND_PARENT_COMBO_3,
RI_IND_PARENT_COMBO_4, RI_IND_PARENT_COMBO_5, RI_IND_PARENT_COMBO_6, RI_IND_PARENT_COMBO_7,
RI_IND_PARENT_COMBO_8, RI_IND_PARENT_COMBO_9, RI_IND_PARENT_COMBO_10, RI_IND_PARENT_COMBO_11,
RI_IND_PARENT_COMBO_12, RI_IND_PARENT_COMBO_13, RI_IND_PARENT_COMBO_14, RI_IND_PARENT_COMBO_15,
RI_IND_GOT_BOTH_ORIS, RI_IND_GOT_PREFIX, RI_IND_GOT_SUFFIX,
RI_IND_PARENT1_NOT_VIZ, RI_IND_PARENT1_NO_INTEN, RI_PARENT1_ISO_LEVEL,
RI_IND_PARENT1_INTEN_MORE, RI_PARENT1_INTEN_DIFF_MORE,
RI_IND_PARENT1_INTEN_LESS, RI_PARENT1_INTEN_DIFF_LESS,
RI_IND_PARENT2_NOT_VIZ, RI_IND_PARENT2_NO_INTEN, RI_PARENT2_ISO_LEVEL,
RI_IND_PARENT2_INTEN_MORE, RI_PARENT2_INTEN_DIFF_MORE,
RI_IND_PARENT2_INTEN_LESS, RI_PARENT2_INTEN_DIFF_LESS,
RI_IND_PARENT3_NOT_VIZ, RI_IND_PARENT3_NO_INTEN, RI_PARENT3_ISO_LEVEL,
RI_IND_PARENT3_INTEN_MORE, RI_PARENT3_INTEN_DIFF_MORE,
RI_IND_PARENT3_INTEN_LESS, RI_PARENT3_INTEN_DIFF_LESS,
RI_IND_PARENT4_NOT_VIZ, RI_IND_PARENT4_NO_INTEN, RI_PARENT4_ISO_LEVEL,
RI_IND_PARENT4_INTEN_MORE, RI_PARENT4_INTEN_DIFF_MORE,
RI_IND_PARENT4_INTEN_LESS, RI_PARENT4_INTEN_DIFF_LESS,
RI_IND_PARENT5_NOT_VIZ, RI_IND_PARENT5_NO_INTEN, RI_PARENT5_ISO_LEVEL,
RI_IND_PARENT5_INTEN_MORE, RI_PARENT5_INTEN_DIFF_MORE,
RI_IND_PARENT5_INTEN_LESS, RI_PARENT5_INTEN_DIFF_LESS,
RI_IND_PARENT6_NOT_VIZ, RI_IND_PARENT6_NO_INTEN, RI_PARENT6_ISO_LEVEL,
RI_IND_PARENT6_INTEN_MORE, RI_PARENT6_INTEN_DIFF_MORE,
RI_IND_PARENT6_INTEN_LESS, RI_PARENT6_INTEN_DIFF_LESS,
RI_IND_PARENT7_NOT_VIZ, RI_IND_PARENT7_NO_INTEN, RI_PARENT7_ISO_LEVEL,
RI_IND_PARENT7_INTEN_MORE, RI_PARENT7_INTEN_DIFF_MORE,
RI_IND_PARENT7_INTEN_LESS, RI_PARENT7_INTEN_DIFF_LESS,
RI_IND_PARENT8_NOT_VIZ, RI_IND_PARENT8_NO_INTEN, RI_PARENT8_ISO_LEVEL,
RI_IND_PARENT8_INTEN_MORE, RI_PARENT8_INTEN_DIFF_MORE,
RI_IND_PARENT8_INTEN_LESS, RI_PARENT8_INTEN_DIFF_LESS,
// variable aa features
RI_IND_N_IS_GAP, RI_IND_C_IS_GAP,
RI_IND_N_HAS_N_TERM, RI_IND_N_HAS_C_TERM, RI_IND_N_HAS_Gap, RI_IND_N_HAS_Xle, RI_IND_N_HAS_Ala, RI_IND_N_HAS_Arg, RI_IND_N_HAS_Asn,
RI_IND_N_HAS_Asp, RI_IND_N_HAS_Cys, RI_IND_N_HAS_Gln, RI_IND_N_HAS_Glu, RI_IND_N_HAS_Gly, RI_IND_N_HAS_His, RI_IND_N_HAS_Ile,
RI_IND_N_HAS_Leu, RI_IND_N_HAS_Lys, RI_IND_N_HAS_Met, RI_IND_N_HAS_Phe, RI_IND_N_HAS_Pro, RI_IND_N_HAS_Ser, RI_IND_N_HAS_Thr,
RI_IND_N_HAS_Trp, RI_IND_N_HAS_Tyr, RI_IND_N_HAS_Val,
RI_N_N_TERM_SELF_INTEN, RI_N_C_TERM_SELF_INTEN, RI_N_Gap_SELF_INTEN, RI_N_Xle_SELF_INTEN, RI_N_Ala_SELF_INTEN, RI_N_Arg_SELF_INTEN, RI_N_Asn_SELF_INTEN,
RI_N_Asp_SELF_INTEN, RI_N_Cys_SELF_INTEN, RI_N_Gln_SELF_INTEN, RI_N_Glu_SELF_INTEN, RI_N_Gly_SELF_INTEN, RI_N_His_SELF_INTEN, RI_N_Ile_SELF_INTEN,
RI_N_Leu_SELF_INTEN, RI_N_Lys_SELF_INTEN, RI_N_Met_SELF_INTEN, RI_N_Phe_SELF_INTEN, RI_N_Pro_SELF_INTEN, RI_N_Ser_SELF_INTEN, RI_N_Thr_SELF_INTEN,
RI_N_Trp_SELF_INTEN, RI_N_Tyr_SELF_INTEN, RI_N_Val_SELF_INTEN,
RI_IND_C_HAS_N_TERM, RI_IND_C_HAS_C_TERM, RI_IND_C_HAS_Gap, RI_IND_C_HAS_Xle, RI_IND_C_HAS_Ala, RI_IND_C_HAS_Arg, RI_IND_C_HAS_Asn,
RI_IND_C_HAS_Asp, RI_IND_C_HAS_Cys, RI_IND_C_HAS_Gln, RI_IND_C_HAS_Glu, RI_IND_C_HAS_Gly, RI_IND_C_HAS_His, RI_IND_C_HAS_Ile,
RI_IND_C_HAS_Leu, RI_IND_C_HAS_Lys, RI_IND_C_HAS_Met, RI_IND_C_HAS_Phe, RI_IND_C_HAS_Pro, RI_IND_C_HAS_Ser, RI_IND_C_HAS_Thr,
RI_IND_C_HAS_Trp, RI_IND_C_HAS_Tyr, RI_IND_C_HAS_Val,
RI_C_N_TERM_SELF_INTEN, RI_C_C_TERM_SELF_INTEN, RI_C_Gap_SELF_INTEN, RI_C_Xle_SELF_INTEN, RI_C_Ala_SELF_INTEN, RI_C_Arg_SELF_INTEN, RI_C_Asn_SELF_INTEN,
RI_C_Asp_SELF_INTEN, RI_C_Cys_SELF_INTEN, RI_C_Gln_SELF_INTEN, RI_C_Glu_SELF_INTEN, RI_C_Gly_SELF_INTEN, RI_C_His_SELF_INTEN, RI_C_Ile_SELF_INTEN,
RI_C_Leu_SELF_INTEN, RI_C_Lys_SELF_INTEN, RI_C_Met_SELF_INTEN, RI_C_Phe_SELF_INTEN, RI_C_Pro_SELF_INTEN, RI_C_Ser_SELF_INTEN, RI_C_Thr_SELF_INTEN,
RI_C_Trp_SELF_INTEN, RI_C_Tyr_SELF_INTEN, RI_C_Val_SELF_INTEN,
RI_NUM_FEATURES
} ScoreModelFields_RI;
typedef enum ScoreModelFields_RNI {
RNI_CONST,
RNI_IND_DIS_FROM_MINMAX_LESS_50, RNI_DIS_FROM_MINMAX0,
RNI_IND_DIS_FROM_MINMAX_LESS_150, RNI_DIS_FROM_MINMAX50,
RNI_IND_DIS_FROM_MINMAX_LESS_250, RNI_DIS_FROM_MINMAX150,
RNI_IND_DIS_FROM_MINMAX_MORE, RNI_DIS_FROM_MINMAX250,
RNI_REL_POS0, RNI_REL_POS1, RNI_REL_POS2, RNI_REL_POS3, RNI_REL_POS4,
RNI_REL_POS5, RNI_REL_POS6, RNI_REL_POS7, RNI_REL_POS8, RNI_REL_POS9,
RNI_IND_NUM_PARENTS_WITH_INTEN_IS_0, RNI_IND_NUM_PARENTS_WITH_INTEN_IS_1,
RNI_IND_NUM_PARENTS_WITH_INTEN_IS_2, RNI_IND_NUM_PARENTS_WITH_INTEN_IS_3,
RNI_IND_NUM_PARENTS_WITH_INTEN_IS_4, RNI_IND_NUM_PARENTS_WITH_INTEN_IS_5,
RNI_IND_NUM_PARENTS_WITH_INTEN_IS_6, RNI_IND_NUM_PARENTS_WITH_INTEN_IS_MORE6,
// exact combo for top 4 parents (if not viz, assume frag is present)
RNI_IND_PARENT_COMBO_0, RNI_IND_PARENT_COMBO_1, RNI_IND_PARENT_COMBO_2, RNI_IND_PARENT_COMBO_3,
RNI_IND_PARENT_COMBO_4, RNI_IND_PARENT_COMBO_5, RNI_IND_PARENT_COMBO_6, RNI_IND_PARENT_COMBO_7,
RNI_IND_PARENT_COMBO_8, RNI_IND_PARENT_COMBO_9, RNI_IND_PARENT_COMBO_10, RNI_IND_PARENT_COMBO_11,
RNI_IND_PARENT_COMBO_12, RNI_IND_PARENT_COMBO_13, RNI_IND_PARENT_COMBO_14, RNI_IND_PARENT_COMBO_15,
RNI_IND_GOT_BOTH_ORIS, RNI_IND_GOT_PREFIX, RNI_IND_GOT_SUFFIX,
RNI_IND_PARENT1_NOT_VIZ, RNI_IND_PARENT1_NO_INTEN, RNI_PARENT1_LOG_INTEN, RNI_PARENT1_LOG_GLOBAL_RANK, RNI_PARENT1_ISO_LEVEL,
RNI_IND_PARENT2_NOT_VIZ, RNI_IND_PARENT2_NO_INTEN, RNI_PARENT2_LOG_INTEN, RNI_PARENT2_LOG_GLOBAL_RANK, RNI_PARENT2_ISO_LEVEL,
RNI_IND_PARENT3_NOT_VIZ, RNI_IND_PARENT3_NO_INTEN, RNI_PARENT3_LOG_INTEN, RNI_PARENT3_LOG_GLOBAL_RANK, RNI_PARENT3_ISO_LEVEL,
RNI_IND_PARENT4_NOT_VIZ, RNI_IND_PARENT4_NO_INTEN, RNI_PARENT4_LOG_INTEN, RNI_PARENT4_LOG_GLOBAL_RANK, RNI_PARENT4_ISO_LEVEL,
RNI_IND_PARENT5_NOT_VIZ, RNI_IND_PARENT5_NO_INTEN, RNI_PARENT5_LOG_INTEN, RNI_PARENT5_LOG_GLOBAL_RANK, RNI_PARENT5_ISO_LEVEL,
RNI_IND_PARENT6_NOT_VIZ, RNI_IND_PARENT6_NO_INTEN, RNI_PARENT6_LOG_INTEN, RNI_PARENT6_LOG_GLOBAL_RANK, RNI_PARENT6_ISO_LEVEL,
RNI_IND_PARENT7_NOT_VIZ, RNI_IND_PARENT7_NO_INTEN, RNI_PARENT7_LOG_INTEN, RNI_PARENT7_LOG_GLOBAL_RANK, RNI_PARENT7_ISO_LEVEL,
RNI_IND_PARENT8_NOT_VIZ, RNI_IND_PARENT8_NO_INTEN, RNI_PARENT8_LOG_INTEN, RNI_PARENT8_LOG_GLOBAL_RANK, RNI_PARENT8_ISO_LEVEL,
// variable aa features
RNI_IND_N_IS_GAP, RNI_IND_C_IS_GAP,
RNI_IND_N_HAS_N_TERM, RNI_IND_N_HAS_C_TERM, RNI_IND_N_HAS_Gap, RNI_IND_N_HAS_Xle, RNI_IND_N_HAS_Ala, RNI_IND_N_HAS_Arg, RNI_IND_N_HAS_Asn,
RNI_IND_N_HAS_Asp, RNI_IND_N_HAS_Cys, RNI_IND_N_HAS_Gln, RNI_IND_N_HAS_Glu, RNI_IND_N_HAS_Gly, RNI_IND_N_HAS_His, RNI_IND_N_HAS_Ile,
RNI_IND_N_HAS_Leu, RNI_IND_N_HAS_Lys, RNI_IND_N_HAS_Met, RNI_IND_N_HAS_Phe, RNI_IND_N_HAS_Pro, RNI_IND_N_HAS_Ser, RNI_IND_N_HAS_Thr,
RNI_IND_N_HAS_Trp, RNI_IND_N_HAS_Tyr, RNI_IND_N_HAS_Val,
RNI_IND_C_HAS_N_TERM, RNI_IND_C_HAS_C_TERM, RNI_IND_C_HAS_Gap, RNI_IND_C_HAS_Xle, RNI_IND_C_HAS_Ala, RNI_IND_C_HAS_Arg, RNI_IND_C_HAS_Asn,
RNI_IND_C_HAS_Asp, RNI_IND_C_HAS_Cys, RNI_IND_C_HAS_Gln, RNI_IND_C_HAS_Glu, RNI_IND_C_HAS_Gly, RNI_IND_C_HAS_His, RNI_IND_C_HAS_Ile,
RNI_IND_C_HAS_Leu, RNI_IND_C_HAS_Lys, RNI_IND_C_HAS_Met, RNI_IND_C_HAS_Phe, RNI_IND_C_HAS_Pro, RNI_IND_C_HAS_Ser, RNI_IND_C_HAS_Thr,
RNI_IND_C_HAS_Trp, RNI_IND_C_HAS_Tyr, RNI_IND_C_HAS_Val,
RNI_NUM_FEATURES
} ScoreModelFields_RNI;
/***************************************************************************
Virtual class.
Holds common elements to derived classes: strong fragment and regular fragment.
****************************************************************************/
class FragModel {
friend class RegionalScoreModel;
public:
FragModel() : config(NULL), tolerance(NEG_INF), frag_tolerance(NEG_INF), exact_peak_tolerance(NEG_INF),
one_over_tolerance(NEG_INF), ind_has_models(0), model_frag_idx(NEG_INF), model_frag_charge(NEG_INF),
inten_log_scaling_factor(0), no_inten_log_scaling_factor(0) {}
virtual void fill_combo_vectors(Spectrum *spec,
mass_t pm_with_19,
const Breakage *breakage,
const vector<BreakageInfo>& infos,
vector< ME_Regression_Sample > & samples) const =0;
virtual void fill_single_frag_vector(Spectrum *spec,
mass_t pm_with_19,
const Breakage *breakage,
BreakageInfo& info,
vector< fval >& f_vals) const =0;
void set_config_and_tolerance(Config *_c)
{
config = _c;
tolerance = config->get_tolerance();
frag_tolerance = (tolerance<0.1 ? tolerance : tolerance * 0.6);
exact_peak_tolerance = (tolerance<0.1 ? 0.5 * tolerance : 0.3 *tolerance);
one_over_tolerance = 1.0 / tolerance;
}
virtual bool read_model(istream& is, bool silent_ind) =0;
virtual bool write_model (ostream& os) const =0;
int get_model_frag_idx() const { return model_frag_idx; }
protected:
Config *config;
mass_t tolerance;
mass_t frag_tolerance;
mass_t exact_peak_tolerance;
mass_t one_over_tolerance;
int ind_has_models;
int model_frag_idx;
int model_frag_charge;
score_t inten_log_scaling_factor;
score_t no_inten_log_scaling_factor;
ME_Regression_Model inten_model;
ME_Regression_Model no_inten_model;
};
/************************************************************************
Model for fragments designated "strong" in the regional fragments.
*************************************************************************/
class StrongFragModel : public FragModel {
friend class RegionalScoreModel;
public:
StrongFragModel() : mirror1_idx(NEG_INF), mirror2_idx(NEG_INF),
parent1_idx(NEG_INF), parent2_idx(NEG_INF),
mirror1_charge(0), mirror2_charge(0), parent1_charge(0), parent2_charge(0) {}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -