advancedscoremodel_regional.cpp
来自「MS-Clustering is designed to rapidly clu」· C++ 代码 · 共 1,341 行 · 第 1/5 页
CPP
1,341 行
#include "AdvancedScoreModel.h"
#include "auxfun.h"
#include "PrmGraph.h"
const char * ScoreModelFields_SI_names[]={
"SI_CONST", "SI_IND_MIRROR1_VIZ", "SI_IND_MIRROR1_NOT_VIZ", "SI_IND_HAS_MIRROR1_INTEN", "SI_MIRROR1_ISO_LEVEL", "SI_IND_MIRROR1_HAS_MINUS_1", "SI_MIRROR1_MINUS_1_INTEN_DIFF", "SI_IND_MIRROR1_HAS_MINUS_2", "SI_MIRROR1_MINUS_2_INTEN_DIFF", "SI_IND_MIRROR1_HAS_PLUS_1", "SI_MIRROR1_PLUS_1_INTEN_DIFF", "SI_IND_MIRROR1_HAS_PLUS_2", "SI_MIRROR1_PLUS_2_INTEN_DIFF", "SI_MIRROR1_MASS_DIFF25",
"SI_MIRROR1_MASS_DIFF75", "SI_MIRROR1_MASS_DIFF_LARGE", "SI_IND_MIRROR2_VIZ", "SI_IND_MIRROR2_NOT_VIZ", "SI_IND_HAS_MIRROR2_INTEN", "SI_MIRROR2_ISO_LEVEL", "SI_IND_MIRROR2_HAS_MINUS_1", "SI_MIRROR2_MINUS_1_INTEN_DIFF", "SI_IND_MIRROR2_HAS_MINUS_2", "SI_MIRROR2_MINUS_2_INTEN_DIFF", "SI_IND_MIRROR2_HAS_PLUS_1", "SI_MIRROR2_PLUS_1_INTEN_DIFF", "SI_IND_MIRROR2_HAS_PLUS_2", "SI_MIRROR2_PLUS_2_INTEN_DIFF",
"SI_MIRROR2_MASS_DIFF25", "SI_MIRROR2_MASS_DIFF75", "SI_MIRROR2_MASS_DIFF_LARGE", "SI_IND_PARENT1_VIZ", "SI_IND_PARENT1_NOT_VIZ", "SI_IND_PARENT1_NO_INTEN", "SI_PARENT1_ISO_LEVEL", "SI_IND_PARENT1_LESS_THAN_100_MIN_MAX", "SI_IND_PARENT1_LESS_THAN_200_MIN_MAX", "SI_IND_PARENT1_INTEN_MORE", "SI_PARENT1_INTEN_DIFF_MORE", "SI_IND_PARENT1_INTEN_LESS", "SI_PARENT1_INTEN_DIFF_LESS",
"SI_IND_PARENT2_VIZ", "SI_IND_PARENT2_NOT_VIZ", "SI_IND_PARENT2_NO_INTEN", "SI_PARENT2_ISO_LEVEL", "SI_IND_PARENT2_LESS_THAN_100_MIN_MAX", "SI_IND_PARENT2_LESS_THAN_200_MIN_MAX", "SI_IND_PARENT2_INTEN_MORE", "SI_PARENT2_INTEN_DIFF_MORE", "SI_IND_PARENT2_INTEN_LESS", "SI_PARENT2_INTEN_DIFF_LESS", "SI_LOG_LOCAL_RANK", "SI_LOG_GLOBAL_RANK", "SI_ISO_LEVEL", "SI_IND_HAS_MINUS_1",
"SI_IND_HAS_MINUS_2", "SI_IND_HAS_PLUS_1", "SI_IND_HAS_PLUS_2", "SI_IND_LOG_INTEN_LESS1", "SI_LOG_INTEN_LESS1", "SI_IND_LOG_INTEN_LESS2", "SI_LOG_INTEN_LESS2", "SI_IND_LOG_INTEN_LESS3", "SI_LOG_INTEN_LESS3", "SI_IND_LOG_INTEN_LESS4", "SI_LOG_INTEN_LESS4", "SI_IND_LOG_INTEN_MORE", "SI_LOG_INTEN_MORE", "SI_IND_DIS_FROM_MINMAX_LESS_50", "SI_DIS_FROM_MINMAX0", "SI_LOG_INTEN_DIS_50",
"SI_IND_DIS_FROM_MINMAX_LESS_150", "SI_DIS_FROM_MINMAX50", "SI_LOG_INTEN_DIS_150", "SI_IND_DIS_FROM_MINMAX_LESS_250", "SI_DIS_FROM_MINMAX150", "SI_LOG_INTEN_DIS_250", "SI_IND_DIS_FROM_MINMAX_MORE", "SI_DIS_FROM_MINMAX250", "SI_LOG_INTEN_DIS_MORE", "SI_REL_POS0", "SI_REL_POS1", "SI_REL_POS2", "SI_REL_POS3", "SI_REL_POS4", "SI_REL_POS5", "SI_REL_POS6", "SI_REL_POS7", "SI_REL_POS8",
"SI_REL_POS9", "SI_IND_HAS_PLUS_NH3", "SI_PLUS_NH3_INTEN_DIFF", "SI_IND_HAS_PLUS_H2O", "SI_PLUS_H2O_INTEN_DIFF", "SI_IND_HAS_PLUS_CO", "SI_PLUS_CO_INTEN_DIFF", "SI_IND_HAS_PLUS_H2ONH3", "SI_PLUS_H2ONH3_INTEN_DIFF", "SI_IND_HAS_PLUS_H2OH2O", "SI_PLUS_H2OH2O_INTEN_DIFF", "SI_IND_HAS_CHARGE_PLUS1", "SI_CHARGE_PLUS1_INTEN_DIFF", "SI_IND_HAS_CHARGE_MINUS1", "SI_CHARGE_MINUS1_INTEN_DIFF",
"SI_IND_N_IS_GAP", "SI_IND_C_IS_GAP", "SI_N_TERM_CAT20", "SI_N_TERM_CAT18", "SI_N_TERM_CAT12", "SI_N_TERM_CAT8", "SI_N_TERM_CAT4", "SI_N_TERM_CAT2", "SI_N_EDGE_CAT20", "SI_N_EDGE_CAT18", "SI_N_EDGE_CAT12", "SI_N_EDGE_CAT8", "SI_N_EDGE_CAT4", "SI_N_EDGE_CAT2", "SI_C_TERM_CAT20", "SI_C_TERM_CAT18", "SI_C_TERM_CAT12", "SI_C_TERM_CAT8", "SI_C_TERM_CAT4", "SI_C_TERM_CAT2", "SI_C_EDGE_CAT20",
"SI_C_EDGE_CAT18", "SI_C_EDGE_CAT12", "SI_C_EDGE_CAT8", "SI_C_EDGE_CAT4", "SI_C_EDGE_CAT2", "SI_SPAN_CAT20", "SI_SPAN_CAT18", "SI_SPAN_CAT12", "SI_SPAN_CAT8", "SI_SPAN_CAT4", "SI_SPAN_CAT2", "SI_ND_SPAN_CAT20", "SI_ND_SPAN_CAT18", "SI_ND_SPAN_CAT12", "SI_ND_SPAN_CAT8", "SI_ND_SPAN_CAT4", "SI_ND_SPAN_CAT2", "SI_CD_SPAN_CAT20", "SI_CD_SPAN_CAT18", "SI_CD_SPAN_CAT12", "SI_CD_SPAN_CAT8",
"SI_CD_SPAN_CAT4", "SI_CD_SPAN_CAT2", "SI_IND_CONNECTS_TO_N_TERM", "SI_IND_PREFERRED_DIGEST_AA_N_TERM", "SI_PREFERRED_DIGEST_AA_N_TERM_INTEN", "SI_NON_PREFERRED_DIGEST_AA_N_TERM_INTEN", "SI_IND_CONNECTS_TO_C_TERM", "SI_IND_PREFERRED_DIGEST_AA_C_TERM", "SI_PREFERRED_DIGEST_AA_C_TERM_INTEN", "SI_NON_PREFERRED_DIGEST_AA_C_TERM_INTEN", "SI_IND_NOT_CONNECTED_TO_TERMS", "SI_IND_MISSED_CLEAVAGE",
"SI_IND_N_FRAG_NOT_VIZ", "SI_IND_C_FRAG_NOT_VIZ", "SI_IND_N_INTEN", "SI_IND_C_INTEN", "SI_IND_N_NO_INTEN", "SI_IND_C_NO_INTEN", "SI_IND_N_N_TERM", "SI_IND_N_C_TERM", "SI_IND_N_Gap", "SI_IND_N_Xle", "SI_IND_N_Ala", "SI_IND_N_Arg", "SI_IND_N_Asn", "SI_IND_N_Asp", "SI_IND_N_Cys", "SI_IND_N_Gln", "SI_IND_N_Glu", "SI_IND_N_Gly", "SI_IND_N_His", "SI_IND_N_Ile", "SI_IND_N_Leu", "SI_IND_N_Lys",
"SI_IND_N_Met", "SI_IND_N_Phe", "SI_IND_N_Pro", "SI_IND_N_Ser", "SI_IND_N_Thr", "SI_IND_N_Trp", "SI_IND_N_Tyr", "SI_IND_N_Val", "SI_IND_N_N_TERM_INTEN", "SI_IND_N_C_TERM_INTEN", "SI_IND_N_Gap_INTEN", "SI_IND_N_Xle_INTEN", "SI_IND_N_Ala_INTEN", "SI_IND_N_Arg_INTEN", "SI_IND_N_Asn_INTEN", "SI_IND_N_Asp_INTEN", "SI_IND_N_Cys_INTEN", "SI_IND_N_Gln_INTEN", "SI_IND_N_Glu_INTEN", "SI_IND_N_Gly_INTEN",
"SI_IND_N_His_INTEN", "SI_IND_N_Ile_INTEN", "SI_IND_N_Leu_INTEN", "SI_IND_N_Lys_INTEN", "SI_IND_N_Met_INTEN", "SI_IND_N_Phe_INTEN", "SI_IND_N_Pro_INTEN", "SI_IND_N_Ser_INTEN", "SI_IND_N_Thr_INTEN", "SI_IND_N_Trp_INTEN", "SI_IND_N_Tyr_INTEN", "SI_IND_N_Val_INTEN", "SI_IND_N_SE", "SI_SE_IND_HAS_N_FRAG_INTEN", "SI_SE_IND_N_DIS_FROM_MINMAX_LESS_50_WINTEN", "SI_SE_IND_N_DIS_FROM_MINMAX_LESS_150_WINTEN",
"SI_SE_IND_N_DIS_FROM_MINMAX_LESS_250_WINTEN", "SI_SE_IND_N_FRAG_DIFF_01", "SI_SE_IND_N_FRAG_DIFF_05", "SI_SE_IND_N_FRAG_DIFF_LARGE", "SI_SE_IND_N_N_TERM_DIFF_INTEN", "SI_SE_IND_N_C_TERM_DIFF_INTEN", "SI_SE_IND_N_Gap_DIFF_INTEN", "SI_SE_IND_N_Xle_DIFF_INTEN", "SI_SE_IND_N_Ala_DIFF_INTEN", "SI_SE_IND_N_Arg_DIFF_INTEN", "SI_SE_IND_N_Asn_DIFF_INTEN", "SI_SE_IND_N_Asp_DIFF_INTEN",
"SI_SE_IND_N_Cys_DIFF_INTEN", "SI_SE_IND_N_Gln_DIFF_INTEN", "SI_SE_IND_N_Glu_DIFF_INTEN", "SI_SE_IND_N_Gly_DIFF_INTEN", "SI_SE_IND_N_His_DIFF_INTEN", "SI_SE_IND_N_Ile_DIFF_INTEN", "SI_SE_IND_N_Leu_DIFF_INTEN", "SI_SE_IND_N_Lys_DIFF_INTEN", "SI_SE_IND_N_Met_DIFF_INTEN", "SI_SE_IND_N_Phe_DIFF_INTEN", "SI_SE_IND_N_Pro_DIFF_INTEN", "SI_SE_IND_N_Ser_DIFF_INTEN", "SI_SE_IND_N_Thr_DIFF_INTEN",
"SI_SE_IND_N_Trp_DIFF_INTEN", "SI_SE_IND_N_Tyr_DIFF_INTEN", "SI_SE_IND_N_Val_DIFF_INTEN", "SI_SE_IND_HAS_NO_N_FRAG_INTEN", "SI_SE_IND_N_DIS_FROM_MINMAX_LESS_50_NOINTEN", "SI_SE_IND_N_DIS_FROM_MINMAX_LESS_150_NOINTEN", "SI_SE_IND_N_DIS_FROM_MINMAX_LESS_250_NOINTEN", "SI_IND_N_ME", "SI_ME_IND_HAS_N_FRAG_INTEN", "SI_ME_IND_N_DIS_FROM_MINMAX_LESS_50_WINTEN", "SI_ME_IND_N_DIS_FROM_MINMAX_LESS_150_WINTEN",
"SI_ME_IND_N_DIS_FROM_MINMAX_LESS_250_WINTEN", "SI_ME_IND_N_FRAG_DIFF_01", "SI_ME_IND_N_FRAG_DIFF_05", "SI_ME_IND_N_FRAG_DIFF_LARGE", "SI_ME_IND_HAS_NO_N_FRAG_INTEN", "SI_ME_IND_N_DIS_FROM_MINMAX_LESS_50_NOINTEN", "SI_ME_IND_N_DIS_FROM_MINMAX_LESS_150_NOINTEN", "SI_ME_IND_N_DIS_FROM_MINMAX_LESS_250_NOINTEN", "SI_IND_C_N_TERM", "SI_IND_C_C_TERM", "SI_IND_C_Gap", "SI_IND_C_Xle",
"SI_IND_C_Ala", "SI_IND_C_Arg", "SI_IND_C_Asn", "SI_IND_C_Asp", "SI_IND_C_Cys", "SI_IND_C_Gln", "SI_IND_C_Glu", "SI_IND_C_Gly", "SI_IND_C_His", "SI_IND_C_Ile", "SI_IND_C_Leu", "SI_IND_C_Lys", "SI_IND_C_Met", "SI_IND_C_Phe", "SI_IND_C_Pro", "SI_IND_C_Ser", "SI_IND_C_Thr", "SI_IND_C_Trp", "SI_IND_C_Tyr", "SI_IND_C_Val", "SI_IND_C_N_TERM_INTEN", "SI_IND_C_C_TERM_INTEN", "SI_IND_C_Gap_INTEN",
"SI_IND_C_Xle_INTEN", "SI_IND_C_Ala_INTEN", "SI_IND_C_Arg_INTEN", "SI_IND_C_Asn_INTEN", "SI_IND_C_Asp_INTEN", "SI_IND_C_Cys_INTEN", "SI_IND_C_Gln_INTEN", "SI_IND_C_Glu_INTEN", "SI_IND_C_Gly_INTEN", "SI_IND_C_His_INTEN", "SI_IND_C_Ile_INTEN", "SI_IND_C_Leu_INTEN", "SI_IND_C_Lys_INTEN", "SI_IND_C_Met_INTEN", "SI_IND_C_Phe_INTEN", "SI_IND_C_Pro_INTEN", "SI_IND_C_Ser_INTEN", "SI_IND_C_Thr_INTEN",
"SI_IND_C_Trp_INTEN", "SI_IND_C_Tyr_INTEN", "SI_IND_C_Val_INTEN", "SI_IND_C_SE", "SI_SE_IND_HAS_C_FRAG_INTEN", "SI_SE_IND_C_DIS_FROM_MINMAX_LESS_50_WINTEN", "SI_SE_IND_C_DIS_FROM_MINMAX_LESS_150_WINTEN", "SI_SE_IND_C_DIS_FROM_MINMAX_LESS_250_WINTEN", "SI_SE_IND_C_FRAG_DIFF_01", "SI_SE_IND_C_FRAG_DIFF_05", "SI_SE_IND_C_FRAG_DIFF_LARGE", "SI_SE_IND_C_N_TERM_DIFF_INTEN", "SI_SE_IND_C_C_TERM_DIFF_INTEN",
"SI_SE_IND_C_Gap_DIFF_INTEN", "SI_SE_IND_C_Xle_DIFF_INTEN", "SI_SE_IND_C_Ala_DIFF_INTEN", "SI_SE_IND_C_Arg_DIFF_INTEN", "SI_SE_IND_C_Asn_DIFF_INTEN", "SI_SE_IND_C_Asp_DIFF_INTEN", "SI_SE_IND_C_Cys_DIFF_INTEN", "SI_SE_IND_C_Gln_DIFF_INTEN", "SI_SE_IND_C_Glu_DIFF_INTEN", "SI_SE_IND_C_Gly_DIFF_INTEN", "SI_SE_IND_C_His_DIFF_INTEN", "SI_SE_IND_C_Ile_DIFF_INTEN", "SI_SE_IND_C_Leu_DIFF_INTEN",
"SI_SE_IND_C_Lys_DIFF_INTEN", "SI_SE_IND_C_Met_DIFF_INTEN", "SI_SE_IND_C_Phe_DIFF_INTEN", "SI_SE_IND_C_Pro_DIFF_INTEN", "SI_SE_IND_C_Ser_DIFF_INTEN", "SI_SE_IND_C_Thr_DIFF_INTEN", "SI_SE_IND_C_Trp_DIFF_INTEN", "SI_SE_IND_C_Tyr_DIFF_INTEN", "SI_SE_IND_C_Val_DIFF_INTEN", "SI_SE_IND_HAS_NO_C_FRAG_INTEN", "SI_SE_IND_C_DIS_FROM_MINMAX_LESS_50_NOINTEN", "SI_SE_IND_C_DIS_FROM_MINMAX_LESS_150_NOINTEN",
"SI_SE_IND_C_DIS_FROM_MINMAX_LESS_250_NOINTEN", "SI_IND_C_ME", "SI_ME_IND_HAS_C_FRAG_INTEN", "SI_ME_IND_C_DIS_FROM_MINMAX_LESS_50_WINTEN", "SI_ME_IND_C_DIS_FROM_MINMAX_LESS_150_WINTEN", "SI_ME_IND_C_DIS_FROM_MINMAX_LESS_250_WINTEN", "SI_ME_IND_C_FRAG_DIFF_01", "SI_ME_IND_C_FRAG_DIFF_05", "SI_ME_IND_C_FRAG_DIFF_LARGE", "SI_ME_IND_HAS_NO_C_FRAG_INTEN", "SI_ME_IND_C_DIS_FROM_MINMAX_LESS_50_NOINTEN",
"SI_ME_IND_C_DIS_FROM_MINMAX_LESS_150_NOINTEN", "SI_ME_IND_C_DIS_FROM_MINMAX_LESS_250_NOINTEN", "SI_NUM_FEATURES", "ScoreModelFields_SI"};
const char * ScoreModelFields_SNI_names[]={
"SNI_CONST", "SNI_IND_MIRROR1_VIZ", "SNI_IND_MIRROR1_NOT_VIZ", "SNI_IND_HAS_MIRROR1_INTEN", "SNI_IND_MIRROR1_NO_INTEN", "SNI_MIRROR1_ISO_LEVEL", "SNI_IND_MIRROR1_HAS_MINUS_1", "SNI_MIRROR1_MINUS_1_INTEN_DIFF", "SNI_IND_MIRROR1_HAS_MINUS_2", "SNI_MIRROR1_MINUS_2_INTEN_DIFF", "SNI_IND_MIRROR1_HAS_PLUS_1", "SNI_MIRROR1_PLUS_1_INTEN_DIFF", "SNI_IND_MIRROR1_HAS_PLUS_2", "SNI_MIRROR1_PLUS_2_INTEN_DIFF",
"SNI_IND_MIRROR2_VIZ", "SNI_IND_MIRROR2_NOT_VIZ", "SNI_IND_HAS_MIRROR2_INTEN", "SNI_IND_MIRROR2_NO_INTEN", "SNI_MIRROR2_ISO_LEVEL", "SNI_IND_MIRROR2_HAS_MINUS_1", "SNI_MIRROR2_MINUS_1_INTEN_DIFF", "SNI_IND_MIRROR2_HAS_MINUS_2", "SNI_MIRROR2_MINUS_2_INTEN_DIFF", "SNI_IND_MIRROR2_HAS_PLUS_1", "SNI_MIRROR2_PLUS_1_INTEN_DIFF", "SNI_IND_MIRROR2_HAS_PLUS_2", "SNI_MIRROR2_PLUS_2_INTEN_DIFF",
"SNI_IND_PARENT1_VIZ", "SNI_IND_PARENT1_NOT_VIZ", "SNI_IND_PARENT1_INTEN", "SNI_IND_PARENT1_NO_INTEN", "SNI_PARENT1_ISO_LEVEL", "SNI_PARENT1_LOG_INTEN", "SNI_PARENT1_LOG_GLOBAL_RANK", "SNI_IND_PARENT2_VIZ", "SNI_IND_PARENT2_NOT_VIZ", "SNI_IND_PARENT2_INTEN", "SNI_IND_PARENT2_NO_INTEN", "SNI_PARENT2_ISO_LEVEL", "SNI_PARENT2_LOG_INTEN", "SNI_PARENT2_LOG_GLOBAL_RANK", "SNI_IND_DIS_FROM_MINMAX_LESS_50",
"SNI_DIS_FROM_MINMAX0", "SNI_IND_DIS_FROM_MINMAX_LESS_150", "SNI_DIS_FROM_MINMAX50", "SNI_IND_DIS_FROM_MINMAX_LESS_250", "SNI_DIS_FROM_MINMAX150", "SNI_IND_DIS_FROM_MINMAX_MORE", "SNI_DIS_FROM_MINMAX250", "SNI_REL_POS0", "SNI_REL_POS1", "SNI_REL_POS2", "SNI_REL_POS3", "SNI_REL_POS4", "SNI_REL_POS5", "SNI_REL_POS6", "SNI_REL_POS7", "SNI_REL_POS8", "SNI_REL_POS9", "SNI_IND_N_IS_GAP",
"SNI_IND_C_IS_GAP", "SNI_N_TERM_CAT20", "SNI_N_TERM_CAT18", "SNI_N_TERM_CAT12", "SNI_N_TERM_CAT8", "SNI_N_TERM_CAT4", "SNI_N_TERM_CAT2", "SNI_N_EDGE_CAT20", "SNI_N_EDGE_CAT18", "SNI_N_EDGE_CAT12", "SNI_N_EDGE_CAT8", "SNI_N_EDGE_CAT4", "SNI_N_EDGE_CAT2", "SNI_C_TERM_CAT20", "SNI_C_TERM_CAT18", "SNI_C_TERM_CAT12", "SNI_C_TERM_CAT8", "SNI_C_TERM_CAT4", "SNI_C_TERM_CAT2", "SNI_C_EDGE_CAT20",
"SNI_C_EDGE_CAT18", "SNI_C_EDGE_CAT12", "SNI_C_EDGE_CAT8", "SNI_C_EDGE_CAT4", "SNI_C_EDGE_CAT2", "SNI_SPAN_CAT20", "SNI_SPAN_CAT18", "SNI_SPAN_CAT12", "SNI_SPAN_CAT8", "SNI_SPAN_CAT4", "SNI_SPAN_CAT2", "SNI_ND_SPAN_CAT20", "SNI_ND_SPAN_CAT18", "SNI_ND_SPAN_CAT12", "SNI_ND_SPAN_CAT8", "SNI_ND_SPAN_CAT4", "SNI_ND_SPAN_CAT2", "SNI_CD_SPAN_CAT20", "SNI_CD_SPAN_CAT18", "SNI_CD_SPAN_CAT12",
"SNI_CD_SPAN_CAT8", "SNI_CD_SPAN_CAT4", "SNI_CD_SPAN_CAT2", "SNI_IND_CONNECTS_TO_N_TERM", "SNI_IND_CONNECTS_TO_C_TERM", "SNI_IND_PREFERRED_DIGEST_AA_C_TERM", "SNI_IND_PREFERRED_DIGEST_AA_N_TERM", "SNI_IND_NOT_CONNECTED_TO_TERMS", "SNI_IND_MISSED_CLEAVAGE", "SNI_IND_N_NOT_VIZ", "SNI_IND_C_NOT_VIZ", "SNI_IND_N_INTEN", "SNI_IND_N_NO_INTEN", "SNI_IND_C_INTEN", "SNI_IND_C_NO_INTEN",
"SNI_IND_N_N_TERM", "SNI_IND_N_C_TERM", "SNI_IND_N_Gap", "SNI_IND_N_Xle", "SNI_IND_N_Ala", "SNI_IND_N_Arg", "SNI_IND_N_Asn", "SNI_IND_N_Asp", "SNI_IND_N_Cys", "SNI_IND_N_Gln", "SNI_IND_N_Glu", "SNI_IND_N_Gly", "SNI_IND_N_His", "SNI_IND_N_Ile", "SNI_IND_N_Leu", "SNI_IND_N_Lys", "SNI_IND_N_Met", "SNI_IND_N_Phe", "SNI_IND_N_Pro", "SNI_IND_N_Ser", "SNI_IND_N_Thr", "SNI_IND_N_Trp",
"SNI_IND_N_Tyr", "SNI_IND_N_Val", "SNI_IND_N_SE", "SNI_SE_IND_HAS_N_FRAG_INTEN", "SNI_SE_IND_N_DIS_FROM_MINMAX_LESS_50_WINTEN", "SNI_SE_IND_N_DIS_FROM_MINMAX_LESS_150_WINTEN", "SNI_SE_IND_N_DIS_FROM_MINMAX_LESS_250_WINTEN", "SNI_SE_IND_N_N_TERM_DIFF_INTEN", "SNI_SE_IND_N_C_TERM_DIFF_INTEN", "SNI_SE_IND_N_Gap_DIFF_INTEN", "SNI_SE_IND_N_Xle_DIFF_INTEN", "SNI_SE_IND_N_Ala_DIFF_INTEN",
"SNI_SE_IND_N_Arg_DIFF_INTEN", "SNI_SE_IND_N_Asn_DIFF_INTEN", "SNI_SE_IND_N_Asp_DIFF_INTEN", "SNI_SE_IND_N_Cys_DIFF_INTEN", "SNI_SE_IND_N_Gln_DIFF_INTEN", "SNI_SE_IND_N_Glu_DIFF_INTEN", "SNI_SE_IND_N_Gly_DIFF_INTEN", "SNI_SE_IND_N_His_DIFF_INTEN", "SNI_SE_IND_N_Ile_DIFF_INTEN", "SNI_SE_IND_N_Leu_DIFF_INTEN", "SNI_SE_IND_N_Lys_DIFF_INTEN", "SNI_SE_IND_N_Met_DIFF_INTEN", "SNI_SE_IND_N_Phe_DIFF_INTEN",
"SNI_SE_IND_N_Pro_DIFF_INTEN", "SNI_SE_IND_N_Ser_DIFF_INTEN", "SNI_SE_IND_N_Thr_DIFF_INTEN", "SNI_SE_IND_N_Trp_DIFF_INTEN", "SNI_SE_IND_N_Tyr_DIFF_INTEN", "SNI_SE_IND_N_Val_DIFF_INTEN", "SNI_SE_IND_HAS_NO_N_FRAG_INTEN", "SNI_SE_IND_N_DIS_FROM_MINMAX_LESS_50_NOINTEN", "SNI_SE_IND_N_DIS_FROM_MINMAX_LESS_150_NOINTEN", "SNI_SE_IND_N_DIS_FROM_MINMAX_LESS_250_NOINTEN", "SNI_IND_N_ME",
"SNI_ME_IND_HAS_N_FRAG_INTEN", "SNI_ME_IND_N_DIS_FROM_MINMAX_LESS_50_WINTEN", "SNI_ME_IND_N_DIS_FROM_MINMAX_LESS_150_WINTEN", "SNI_ME_IND_N_DIS_FROM_MINMAX_LESS_250_WINTEN", "SNI_ME_IND_HAS_NO_N_FRAG_INTEN", "SNI_ME_IND_N_DIS_FROM_MINMAX_LESS_50_NOINTEN", "SNI_ME_IND_N_DIS_FROM_MINMAX_LESS_150_NOINTEN", "SNI_ME_IND_N_DIS_FROM_MINMAX_LESS_250_NOINTEN", "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", "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"};
const char * ScoreModelFields_RI_names[]={
"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", "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",
"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"};
const char * ScoreModelFields_RNI_names[]={
"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", "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", "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"};
void RegionalScoreModel::init(Config* _c, int _charge, int _size_idx, int _region_idx)
{
config = _c;
charge = _charge;
size_idx = _size_idx;
region_idx = _region_idx;
const RegionalFragments& rf = config->get_regional_fragments(charge,size_idx,region_idx);
frag_type_idxs = rf.get_frag_type_idxs();
frag_probs = rf.get_frag_probs();
rand_prob = rf.get_rand_prob();
log_random = log(rand_prob);
log_one_minus_random = log(1.0-rand_prob);
// init strong and regular models
const vector<int>& strong_idxs = rf.get_strong_frag_type_idxs();
const vector< vector<int> >& mirror_frag_idxs = rf.get_mirror_frag_idxs();
strong_models.resize(strong_idxs.size());
regular_models.resize(frag_type_idxs.size()-strong_idxs.size());
num_strong_frags=0;
num_regular_frags=0;
int i;
for (i=0; i<strong_idxs.size(); i++)
{
const int frag_idx = strong_idxs[i];
StrongFragModel& strong_model=strong_models[num_strong_frags++];
strong_model.model_frag_idx = frag_idx;
strong_model.model_frag_charge = config->get_fragment(frag_idx).charge;
strong_model.set_config_and_tolerance(config);
strong_model.parent1_idx=-1;
strong_model.parent2_idx=-1;
strong_model.parent1_charge=-1;
strong_model.parent2_charge=-1;
// add parents
int f;
for (f=0; f<2 && f<frag_type_idxs.size(); f++)
{
if (frag_type_idxs[f] == frag_idx)
break;
const int parent_idx = frag_type_idxs[f];
const int parent_charge = config->get_fragment(parent_idx).charge;
if (f==0)
{
strong_model.parent1_idx = parent_idx;
strong_model.parent1_charge = parent_charge;
}
else
{
strong_model.parent2_idx = parent_idx;
strong_model.parent2_charge = parent_charge;
}
}
// add mirrors
for (f=0; f<2 && f<mirror_frag_idxs[frag_idx].size(); f++)
{
const int mirror_idx = mirror_frag_idxs[frag_idx][f];
const int mirror_charge = config->get_fragment(mirror_idx).charge;
if (f==0)
{
strong_model.mirror1_idx = mirror_idx;
strong_model.mirror1_charge = mirror_charge;
}
else
{
strong_model.mirror2_idx = mirror_idx;
strong_model.mirror2_charge = mirror_charge;
}
}
}
// add regular models
for (i=0; i<frag_type_idxs.size(); i++)
{
int j;
for (j=0; j<strong_idxs.size(); j++)
if (strong_idxs[j] == frag_type_idxs[i])
break;
if (j<strong_idxs.size())
continue;
const int reg_frag_idx = frag_type_idxs[i];
RegularFragModel& regular_model=regular_models[num_regular_frags++];
regular_model.model_frag_idx = reg_frag_idx;
regular_model.model_frag_charge = config->get_fragment(reg_frag_idx).charge;
regular_model.set_config_and_tolerance(config);
regular_model.parent_idxs.clear();
regular_model.parent_idx_with_same_charge_ori = -1;
// add parents
int f;
for (f=0; f<frag_type_idxs.size() && f<8; f++)
{
if (frag_type_idxs[f] == reg_frag_idx)
break;
regular_model.parent_idxs.push_back(frag_type_idxs[f]);
if (regular_model.parent_idx_with_same_charge_ori<0)
{
const FragmentType& parent_frag = config->get_fragment(frag_type_idxs[f]);
if (parent_frag.charge == regular_model.model_frag_charge &&
parent_frag.orientation == config->get_fragment(reg_frag_idx).orientation)
{
regular_model.parent_idx_with_same_charge_ori=frag_type_idxs[f];
}
}
}
regular_model.num_parents = regular_model.parent_idxs.size();
}
// set scores
const int num_all_frags = config->get_all_fragments().size();
frag_inten_scores.resize(num_all_frags,0);
frag_no_inten_scores.resize(num_all_frags,0);
missing_breakage_score=0;
for (i=0; i<frag_type_idxs.size(); i++)
{
const int frag_idx=frag_type_idxs[i];
const score_t missing_score = log(1.0 - frag_probs[i]) - log_one_minus_random;
missing_breakage_score += missing_score;
frag_no_inten_scores[frag_idx] = missing_score;
frag_inten_scores[frag_idx] = log(frag_probs[i])- log_random;
}
// init the weights
// vector<float> strong_inten_weights, strong_no_inten_weights;
// vector<float> regular_inten_weights, regular_no_inten_weights;
const int num_strong = strong_models.size();
strong_inten_weights.resize(num_strong,0.99);
strong_no_inten_weights.resize(num_strong,0.98);
strong_inten_danc_part.resize(num_strong);
strong_no_inten_danc_part.resize(num_strong);
for (i=0; i<num_strong; i++)
{
const float frag_prob = get_frag_prob(strong_models[i].model_frag_idx);
strong_inten_danc_part[i]=(1.0-strong_inten_weights[i])*frag_prob;
strong_no_inten_danc_part[i]=(1.0-strong_no_inten_weights[i])*(1.0-frag_prob);
// if (size_idx == 1 && region_idx == 1)
// cout << i << "\t" << frag_prob << "\t" << strong_inten_danc_part[i] << "\t" << strong_no_inten_danc_part[i] << endl;
}
// holds the (1-weight) * frag prob to be weight*model prob for the acutal probability
// vector<float> strong_inten_danc_part, strong_no_inten_danc_part;
// vector<float> regular_inten_danc_part, regular_no_inten_danc_part;
const int num_regular = regular_models.size();
regular_inten_weights.resize(num_regular,0.97);
regular_no_inten_weights.resize(num_regular,0.99);
regular_inten_danc_part.resize(num_regular);
regular_no_inten_danc_part.resize(num_regular);
for (i=0; i<num_regular; i++)
{
regular_inten_weights[i] = 1.0 - 0.01*i;
regular_no_inten_weights[i] = 0.5;
}
/* if (num_regular>0)
{
regular_inten_weights[0]=0.9;
regular_no_inten_weights[0]=0.8;
}
if (num_regular>1)
{
regular_inten_weights[0]=0.9;
regular_no_inten_weights[0]=0.8;
}
if (num_regular>2)
{
regular_inten_weights[0]=0.9;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?