hlnicholls commited on
Commit
df058d7
1 Parent(s): 303f06b

feat: added catboost model

Browse files
annotations_dataset.csv DELETED
The diff for this file is too large to render. See raw diff
 
app.py CHANGED
@@ -2,8 +2,9 @@ import streamlit as st
2
  import re
3
  import numpy as np
4
  import pandas as pd
 
5
  import sklearn
6
- import xgboost
7
  import shap
8
  from shap_plots import shap_summary_plot
9
  from dynamic_shap_plot import matplotlib_to_plotly, summary_plot_plotly_fig
@@ -22,83 +23,62 @@ st.set_option('deprecation.showPyplotGlobalUse', False)
22
 
23
  seed=42
24
 
25
- annotations = pd.read_csv("annotations_dataset.csv")
 
 
26
  annotations = annotations.set_index("Gene")
27
 
28
- training_data = pd.read_csv("./selected_features_training_data.csv", header=0)
29
- training_data.columns = [
30
- regex.sub("_", col) if any(x in str(col) for x in set(("[", "]", "<"))) else col
31
- for col in training_data.columns.values
32
- ]
33
 
34
- training_data["BPlabel_encoded"] = training_data["BPlabel"].map(
35
- {"most likely": 1, "probable": 0.75, "least likely": 0.1}
36
- )
37
- Y = training_data["BPlabel_encoded"]
38
- X = training_data.drop(columns=["BPlabel_encoded","BPlabel"])
39
- xgb = xgboost.XGBRegressor(
40
- n_estimators=40,
41
- learning_rate=0.2,
42
- max_depth=4,
43
- reg_alpha=1,
44
- reg_lambda=1,
45
- random_state=seed,
46
- objective="reg:squarederror")
47
 
 
 
 
 
 
48
 
49
- xgb.fit(X, Y)
50
- prediction_list = list(xgb.predict(annotations))
51
- predictions = [round(prediction, 2) for prediction in prediction_list]
52
-
53
- output = pd.Series(data=predictions, index=annotations.index, name="XGB_Score")
54
- df_total = pd.concat([annotations, output], axis=1)
55
-
56
-
57
- df_total = df_total[['XGB_Score', 'mousescore_Exomiser',
58
- 'SDI', 'Liver_GTExTPM', 'pLI_ExAC',
59
- 'HIPred',
60
- 'Cells - EBV-transformed lymphocytes_GTExTPM',
61
- 'Pituitary_GTExTPM',
62
- 'IPA_BP_annotation']]
63
 
64
 
65
  st.title('Blood Pressure Gene Prioritisation Post-GWAS')
66
  st.markdown("""
67
  A machine learning pipeline for predicting disease-causing genes post-genome-wide association study in blood pressure.
68
 
69
- https://doi.org/10.21203/rs.3.rs-2402775/v1
70
- """)
71
 
 
72
 
73
  collect_genes = lambda x : [str(i) for i in re.split(",|,\s+|\s+", x) if i != ""]
74
 
75
  input_gene_list = st.text_input("Input a list of multiple HGNC genes (enter comma separated):")
76
  gene_list = collect_genes(input_gene_list)
77
- explainer = shap.TreeExplainer(xgb)
78
 
79
  @st.cache_data
80
  def convert_df(df):
81
  return df.to_csv(index=False).encode('utf-8')
82
 
83
- features = df_total[['mousescore_Exomiser',
84
- 'SDI', 'Liver_GTExTPM', 'pLI_ExAC',
85
- 'HIPred',
86
- 'Cells - EBV-transformed lymphocytes_GTExTPM',
87
- 'Pituitary_GTExTPM',
88
- 'IPA_BP_annotation']]
89
 
90
  if len(gene_list) > 1:
91
  df = df_total[df_total.index.isin(gene_list)]
92
- df['Gene'] = df.index
93
  df.reset_index(drop=True, inplace=True)
94
- df = df[['Gene','XGB_Score', 'mousescore_Exomiser',
95
- 'SDI', 'Liver_GTExTPM', 'pLI_ExAC',
96
- 'HIPred',
97
- 'Cells - EBV-transformed lymphocytes_GTExTPM',
98
- 'Pituitary_GTExTPM',
99
- 'IPA_BP_annotation']]
100
  st.dataframe(df)
101
- output = df[['Gene', 'XGB_Score']]
 
 
102
  csv = convert_df(output)
103
  st.download_button(
104
  "Download Gene Prioritisation",
@@ -107,18 +87,19 @@ if len(gene_list) > 1:
107
  "text/csv",
108
  key='download-csv'
109
  )
110
- df_shap = df_total[df_total.index.isin(gene_list)]
111
- df_shap.drop(columns='XGB_Score', inplace=True)
112
- print(df_shap.columns)
113
  shap_values = explainer.shap_values(df_shap)
114
- #summary_plot = shap.summary_plot(shap_values, df_shap)
115
- #summary_plot = shap_summary_plot(shap_values, features=df_shap, feature_names=df_shap.columns, max_display=8)
116
- dynamic_plot = summary_plot_plotly_fig(shap_values, df_shap=df_shap, feature_names=df_shap.columns)
117
- st.plotly_chart(dynamic_plot)
 
 
 
118
  st.caption("SHAP Summary Plot of All Input Genes")
119
- feature_order = np.argsort(np.sum(np.abs(shap_values), axis=0)[:-1])
120
- feature_order = feature_order[-min(8, len(feature_order)):]
121
- col_order = [df_shap.columns[i] for i in feature_order]
122
  else:
123
  pass
124
 
@@ -127,30 +108,32 @@ input_gene = st.text_input("Input an individual HGNC gene:")
127
  df2 = df_total[df_total.index == input_gene]
128
  df2['Gene'] = df2.index
129
  df2.reset_index(drop=True, inplace=True)
130
- df2 = df2[['Gene','XGB_Score', 'mousescore_Exomiser',
131
- 'SDI', 'Liver_GTExTPM', 'pLI_ExAC',
132
- 'HIPred',
133
- 'Cells - EBV-transformed lymphocytes_GTExTPM',
134
- 'Pituitary_GTExTPM',
135
- 'IPA_BP_annotation']]
136
  st.dataframe(df2)
137
 
138
  if input_gene:
139
  if ' ' in input_gene or ',' in input_gene:
140
  st.write('Input Error: Please input only a single HGNC gene name with no white spaces or commas.')
141
  else:
142
- df2_shap = df_total[df_total.index == input_gene]
143
- df2_shap.drop(columns='XGB_Score', inplace=True)
144
- shap_values = explainer.shap_values(df2_shap)
145
- shap.getjs()
146
- force_plot = shap.force_plot(
147
- explainer.expected_value,
148
- shap_values,
149
- df2_shap,
150
- matplotlib=True,
151
- show=False
152
- )
153
- st.pyplot(fig=force_plot)
 
 
154
  else:
155
  pass
156
 
@@ -161,10 +144,10 @@ st.markdown("""
161
  df_total_output = df_total
162
  df_total_output['Gene'] = df_total_output.index
163
  df_total_output.reset_index(drop=True, inplace=True)
164
- df_total_output = df_total_output[['Gene','XGB_Score', 'mousescore_Exomiser',
165
- 'SDI', 'Liver_GTExTPM', 'pLI_ExAC',
166
- 'HIPred',
167
- 'Cells - EBV-transformed lymphocytes_GTExTPM',
168
- 'Pituitary_GTExTPM',
169
- 'IPA_BP_annotation']]
170
  st.dataframe(df_total_output)
 
2
  import re
3
  import numpy as np
4
  import pandas as pd
5
+ import pickle
6
  import sklearn
7
+ import catboost
8
  import shap
9
  from shap_plots import shap_summary_plot
10
  from dynamic_shap_plot import matplotlib_to_plotly, summary_plot_plotly_fig
 
23
 
24
  seed=42
25
 
26
+ annotations = pd.read_csv("all_genes_merged_ml_data.csv")
27
+ # TODO remove this placeholder when imputation is finished:
28
+ annotations.fillna(0, inplace=True)
29
  annotations = annotations.set_index("Gene")
30
 
31
+ # Read in best_model_fitted.pkl as catboost_model
32
+ model_path = "best_model_fitted.pkl" # Update this path if your model is stored elsewhere
33
+ with open(model_path, 'rb') as file:
34
+ catboost_model = pickle.load(file)
 
35
 
36
+ # For a multi-class classification model, obtaining probabilities per class
37
+ probabilities = catboost_model.predict_proba(annotations)
 
 
 
 
 
 
 
 
 
 
 
38
 
39
+ # Creating a DataFrame for these probabilities
40
+ # Assuming classes are ordered as 'most likely', 'probable', and 'least likely' in the model
41
+ prob_df = pd.DataFrame(probabilities,
42
+ index=annotations.index,
43
+ columns=['Probability_Most_Likely', 'Probability_Probable', 'Probability_Least_Likely'])
44
 
45
+ # Dynamically including all original features from annotations plus the new probability columns
46
+ df_total = pd.concat([prob_df, annotations], axis=1)
 
 
 
 
 
 
 
 
 
 
 
 
47
 
48
 
49
  st.title('Blood Pressure Gene Prioritisation Post-GWAS')
50
  st.markdown("""
51
  A machine learning pipeline for predicting disease-causing genes post-genome-wide association study in blood pressure.
52
 
 
 
53
 
54
+ """)
55
 
56
  collect_genes = lambda x : [str(i) for i in re.split(",|,\s+|\s+", x) if i != ""]
57
 
58
  input_gene_list = st.text_input("Input a list of multiple HGNC genes (enter comma separated):")
59
  gene_list = collect_genes(input_gene_list)
60
+ explainer = shap.TreeExplainer(catboost_model)
61
 
62
  @st.cache_data
63
  def convert_df(df):
64
  return df.to_csv(index=False).encode('utf-8')
65
 
66
+ probability_columns = ['Probability_Most_Likely', 'Probability_Probable', 'Probability_Least_Likely']
67
+ features_list = [column for column in df_total.columns if column not in probability_columns]
68
+ features = df_total[features_list]
 
 
 
69
 
70
  if len(gene_list) > 1:
71
  df = df_total[df_total.index.isin(gene_list)]
72
+ df['Gene'] = df.index # Ensure 'Gene' is a column if it's not already
73
  df.reset_index(drop=True, inplace=True)
74
+
75
+ # Including Gene, probability columns, and all other features
76
+ required_columns = ['Gene'] + probability_columns + [col for col in df.columns if col not in probability_columns and col != 'Gene']
77
+ df = df[required_columns]
 
 
78
  st.dataframe(df)
79
+
80
+ # Assuming you want to download the genes with their probabilities
81
+ output = df[['Gene'] + probability_columns]
82
  csv = convert_df(output)
83
  st.download_button(
84
  "Download Gene Prioritisation",
 
87
  "text/csv",
88
  key='download-csv'
89
  )
90
+
91
+ # For SHAP values, assuming explainer is already fitted to your model
92
+ df_shap = df.drop(columns=probability_columns + ['Gene']) # Exclude non-feature columns
93
  shap_values = explainer.shap_values(df_shap)
94
+
95
+ # Handle multiclass scenario: SHAP values will be a list of matrices, one per class
96
+ # Plotting the summary plot for the first class as an example
97
+ # You may loop through each class or handle it differently based on your needs
98
+ class_index = 0 # Example: plotting for the first class
99
+ shap.summary_plot(shap_values[class_index], df_shap, show=False)
100
+ st.pyplot(bbox_inches='tight')
101
  st.caption("SHAP Summary Plot of All Input Genes")
102
+
 
 
103
  else:
104
  pass
105
 
 
108
  df2 = df_total[df_total.index == input_gene]
109
  df2['Gene'] = df2.index
110
  df2.reset_index(drop=True, inplace=True)
111
+
112
+ # Ensure the DataFrame includes the CatBoost model's probability columns
113
+ # And assuming all features are desired in the output
114
+ probability_columns = ['Probability_Most_Likely', 'Probability_Probable', 'Probability_Least_Likely']
115
+ required_columns = ['Gene'] + probability_columns + [col for col in df2.columns if col not in probability_columns and col != 'Gene']
116
+ df2 = df2[required_columns]
117
  st.dataframe(df2)
118
 
119
  if input_gene:
120
  if ' ' in input_gene or ',' in input_gene:
121
  st.write('Input Error: Please input only a single HGNC gene name with no white spaces or commas.')
122
  else:
123
+ df2_shap = df_total.loc[[input_gene], [col for col in df_total.columns if col not in probability_columns + ['Gene']]]
124
+
125
+ if df2_shap.shape[0] > 0: # Check if the gene exists in the DataFrame
126
+ shap_values = explainer.shap_values(df2_shap)
127
+
128
+ # Adjust for multiclass: Select SHAP values for the predicted class (or a specific class)
129
+ predicted_class_index = catboost_model.predict(df2_shap).item() # Assuming predict returns the class index
130
+ class_shap_values = shap_values[predicted_class_index]
131
+ class_expected_value = explainer.expected_value[predicted_class_index]
132
+
133
+ # Since force_plot doesn't directly support multiclass, consider using waterfall_plot or decision_plot
134
+ # Here's an example using waterfall_plot for the first feature set's prediction
135
+ shap.plots.waterfall(shap_values=class_shap_values[0], max_display=10, show=False)
136
+ st.pyplot(bbox_inches='tight')
137
  else:
138
  pass
139
 
 
144
  df_total_output = df_total
145
  df_total_output['Gene'] = df_total_output.index
146
  df_total_output.reset_index(drop=True, inplace=True)
147
+ #df_total_output = df_total_output[['Gene','XGB_Score', 'mousescore_Exomiser',
148
+ # 'SDI', 'Liver_GTExTPM', 'pLI_ExAC',
149
+ # 'HIPred',
150
+ # 'Cells - EBV-transformed lymphocytes_GTExTPM',
151
+ # 'Pituitary_GTExTPM',
152
+ # 'IPA_BP_annotation']]
153
  st.dataframe(df_total_output)
selected_features_training_data.csv DELETED
@@ -1,294 +0,0 @@
1
- SDI,Liver_GTExTPM,Cells - EBV-transformed lymphocytes_GTExTPM,Pituitary_GTExTPM,pLI_ExAC,mousescore_Exomiser,HIPred,IPA_BP_annotation,BPlabel
2
- 4.77784717,8.69046,0.0393093,2.37503,0.000700543,0.884429274,0.670620084,1,most likely
3
- 9.864781109,179.4414455,693.9127333,398.769205,0.357415819,0.020949426,0.623431908,0,least likely
4
- 11.47337941,81.52185711,109.0047789,105.7734264,0.52297905,0.050615909,0.624601853,0,least likely
5
- 8.220047773,101.77127,267.7530244,165.633655,0.449780526,0.107191575,0.644961389,0,least likely
6
- 9.998083085,87.56611,432.9510557,186.6066098,0.582735764,0.017100629,0.61974722,0,least likely
7
- 9.481731496,82.86742171,131.0711351,116.6040056,0.548227952,0.049612823,0.66540369,0,least likely
8
- 13.05399164,89.08920411,120.8627103,110.0254074,0.492983843,0.030236591,0.624230143,0,least likely
9
- 8.990396999,83.5816966,102.7270581,110.481468,0.433848246,0.038202493,0.642385989,0,least likely
10
- 10.3696863,92.666217,430.3819912,167.2732038,0.447942149,0.013770025,0.626796114,0,least likely
11
- 11.12633641,97.2423143,376.5341913,182.8052678,0.517624303,0.013146956,0.595146938,0,least likely
12
- 7.196585307,60.47635622,77.9785732,52.580692,0.537931687,0.116515117,0.657060206,0,least likely
13
- 10.24953795,76.463169,99.47326922,112.2490006,0.51850489,0.083786722,0.618834456,0,least likely
14
- 7.115357903,68.02179433,199.1217049,135.8397846,0.050466464,0,0.146139458,0,least likely
15
- 9.594307004,93.07089111,359.7090398,201.6551668,0.519006111,0.025534714,0.61182093,0,least likely
16
- 10.76756072,105.598521,211.0189355,151.4886,0.471570411,0.088413711,0.67548183,0,least likely
17
- 8.905916889,101.425298,217.1115588,129.589118,0.467040829,0.03098513,0.655069722,0,least likely
18
- 7.781080141,91.91353,208.6655828,130.547325,0.526365003,0.057308436,0.668298128,0,least likely
19
- 13.87931885,82.23760811,116.1037227,110.2561624,0.568840172,0.080063418,0.65023769,0,least likely
20
- 11.87351066,103.9871154,266.7896486,156.7045108,0.494647621,0.035013091,0.626709785,0,least likely
21
- 13.42951465,81.624664,117.297574,107.0829684,0.536982962,0.091775286,0.66408671,0,least likely
22
- 2.731291078,41.5886,12.062,23.8061,1.83E-05,0,0.123297259,0,most likely
23
- 7.94256213,0.520167,0.157691,12.4842,4.63E-18,0.930627006,0.158249199,1,most likely
24
- 2.80622297,4.6432,0.209253,0.807384,0.000244369,0.514240382,0.238498077,1,most likely
25
- 2.91936788,0.182195,0.6053,0.313522,0.116013506,0.570663532,0.462033864,1,most likely
26
- 10.75900262,3.40578,0.672835,0.461902,0.476493104,0.838732221,0.668925405,1,most likely
27
- 4.7137448,1007.43,0.151938,27.321,1.57E-09,0.905486233,0.172807097,1,most likely
28
- 8.7600131,28.1895,46.2769,53.6259,0.997816207,0,0.831385493,0,probable
29
- 5.061952618,61.52156433,181.1372451,126.618977,0.15946756,0.004778824,0.146139458,0,least likely
30
- 8.279528607,90.456696,207.5333385,127.279861,0.46929963,0.083882041,0.661255484,0,least likely
31
- 10.6372727,89.71751011,98.17375755,108.6645956,0.537360793,0.017821574,0.655782827,0,least likely
32
- 8.709297172,90.6921733,212.3355835,129.374241,0.504935338,0.112372072,0.664786087,0,least likely
33
- 9.864806866,81.95792511,98.73386294,108.5185996,0.499629458,0.133289145,0.655693213,0,least likely
34
- 5.809449707,35.76919291,46.09891409,48.853231,0.172745644,0.027856608,0.237914741,0,least likely
35
- 11.6107057,98.163397,208.0940998,138.3275498,0.512731437,0.033261279,0.653974256,0,least likely
36
- 1.70705006,0.38622,0.230484,13.5439,4.90E-05,0,0.219635889,0,probable
37
- 4.92982383,0.279994,0.126609,0.612412,0.454891016,0.363622861,0.824394882,1,probable
38
- 5.359970531,33.5623434,57.02244915,51.726114,0.028983163,0,0.179693475,0,least likely
39
- 10.71899578,89.328636,192.5547459,130.6762488,0.538590349,0.091785159,0.680501341,0,least likely
40
- 25.5898132,3181.76,2.69857,103.448,0.034533583,0.578384088,0.460647643,1,most likely
41
- 14.6291652,11.4668,0.975289,27.6952,0.049925638,0.557884944,0.139342904,1,probable
42
- 1.99024055,0.153082,0,0.901954,0.039182646,0,0.146139458,0,probable
43
- 5.85157295,10.3198,0.796268,36.2916,8.22E-07,0,0.713784814,0,probable
44
- 0,25.1198,2.02104,12.5933,5.09E-07,0,0.300877631,0,probable
45
- 11.67800063,4.65923,38.9581,16.7378,0.999997542,0,0.767620981,1,probable
46
- 2.931357547,0.0123188,0.0855784,0.0714729,0.166948561,0,0.111908376,0,least likely
47
- 12.5785497,0.454302,49.6889,5.81123,0.337855764,0.358930757,0.79961127,0,probable
48
- 9.78859286,0.0434151,0.0564419,1.20793,0.946719308,0,0.7969836,1,probable
49
- 4.472074786,18.08907386,42.88163421,45.973607,5.00E-06,0.004778824,0.17792584,0,least likely
50
- 10.74424667,97.43734771,174.4035942,135.7216788,0.57956459,0.026658277,0.644296322,0,least likely
51
- 7.829882411,83.6926456,109.5777335,111.8205546,0.529760694,0.042570159,0.646521508,0,least likely
52
- 0,0,0,0.149415,0.775375974,0,0.836621523,1,probable
53
- 6.87689431,0.202653,0.0310554,8.29414,0.999998433,0.499434067,0.693781972,1,most likely
54
- 3.74177141,0.917359,0.730862,11.1441,1,0.49080455,0.693386316,1,most likely
55
- 1.90066426,0.339362,0.126768,16.2288,0.999693297,0.512173321,0.622939706,1,most likely
56
- 3.49140794,2.14918,1.76349,23.9603,0.001820338,0.570663532,0.602114379,1,most likely
57
- 3.8518009,0.0361896,3.22076,2.22282,0.011363582,0,0.638582647,1,most likely
58
- 9.88779187,2.36737,0.183398,54.1038,0.468620194,0.431381082,0.736296356,0,most likely
59
- 5.52376604,4.27798,5.59133,28.27,0.003193956,0.396248826,0.669261694,0,probable
60
- 2.93496915,21.3231,39.3169,39.0108,1.56E-06,0,0.429466158,0,most likely
61
- 23.41984427,4.90887,3.89939,6.35668,0.018707972,0.788155246,0.769165754,1,probable
62
- 3.91864924,0.413393,16.0634,42.1044,1.17E-05,0,0.186891869,1,least likely
63
- 1.98266541,0.0103568,0,1.0724,9.67E-05,0.528331768,0.421012312,0,probable
64
- 8.79295894,25.7132,5.42097,40.9923,0.238186362,0,0.830946863,0,most likely
65
- 1.98266541,0.122681,1.87789,0.229788,0.000639118,0,0.111908376,0,least likely
66
- 4.70997211,1.9184,12.3475,5.26939,0.577650481,0,0.488307536,0,probable
67
- 8.44786072,54.2047,228.969,127.376,0.027202551,0,0.581228554,0,probable
68
- 0,19.4902,23.6826,24.9136,0.787088147,0,0.72829324,0,probable
69
- 2.93429059,8.4081,18.5344,35.3001,0.163974191,0,0.575333595,1,most likely
70
- 2.89489364,0.0989349,0.32817,29.3917,2.75E-14,0.853179975,0.139342904,1,probable
71
- 6.46145605,2.66429,6.25185,10.7832,0.998479651,0.504094097,0.757599056,0,probable
72
- 1.96195718,0.493971,0.537801,1.23707,0.347229317,0,0.28995356,0,least likely
73
- 3.94830677,0.56644,1.44676,0.839805,0.000349252,0,0.262694746,0,probable
74
- 1.803753893,0,0,0.0270056,0.008853731,0.004313811,0.13418486,0,least likely
75
- 9.35956925,175.1111175,683.4055348,401.264205,0.342297305,0.012321805,0.614423659,0,least likely
76
- 8.407774202,84.798364,110.314872,110.187217,0.499106685,0.099244678,0.659381783,0,least likely
77
- 1.70705006,0.744032,0.465871,8.88177,0.138254694,0,0.396258533,0,probable
78
- 37.57141285,33.9225,72.8449,82.0465,0.99981275,0.389625962,0.782960892,0,probable
79
- 1.6697435,0.19893,0.0788225,0.265705,0.001433932,0.930627006,0.132359073,1,probable
80
- 1.6697435,0.00948479,0,0,3.93E-13,0.826392613,0.111908376,0,most likely
81
- 3.92083295,1.95006,0.120849,0.924255,0.035030608,0,0.309100866,0,probable
82
- 2.89366853,71.5396,0.0593256,0.0143068,3.29E-10,0,0.111908376,0,most likely
83
- 1.96359409,17.4681,0.0880692,2.44539,0.672306731,0,0.506795704,0,probable
84
- 3.866916,13.2527,0,0,2.54E-10,0,0.111908376,0,most likely
85
- 4.022204389,7.43044,26.3634,43.4933,1.85E-05,0,0.17792584,0,probable
86
- 12.63081829,23.5694,0.0687099,2.61192,2.54E-06,0,0.390099078,1,probable
87
- 1.99992492,37.0926,0.2433,18.5242,0.168276873,0.887688063,0.591572225,1,probable
88
- 1.57906632,0,0,0,0.157398012,0.01967016,0.123297259,0,least likely
89
- 7.228536834,85.970779,109.8509541,108.702294,0.514044731,0.136467452,0.665232296,0,least likely
90
- 12.29016255,77.699282,393.4086428,177.1778208,0.536451199,0.109360359,0.595243806,0,least likely
91
- 2.789755689,0.0872401,1.03867,1.29128,0.212341706,0,0.438139287,0,least likely
92
- 8.91291128,0.191411,0.0657459,0.582014,0.000136493,0,0.146139458,0,probable
93
- 12.88289324,21.3464,0.295742,14.7673,0.999901543,0.528793336,0.747131348,0,most likely
94
- 1.86907763,422.046,8.24415,564.847,0.020500202,0.913254607,0.848568261,1,most likely
95
- 6.87802251,1.52907,10.8395,2.08775,0.081020067,0.887688063,0.449802697,1,most likely
96
- 1.74820254,1.03118,0.108652,4.52835,0.986016088,0,0.800036311,1,most likely
97
- 10.79296239,9.39784,11.9262,8.65442,0.062109871,0,0.743839204,0,probable
98
- 0,0,0,0,0.080069969,0,0.121811525,0,least likely
99
- 11.79347495,3.52714,0.112573,5.81573,0.987167021,0.514240382,0.762403488,1,probable
100
- 0,0.0645291,0.00470666,1.47278,0.93661121,0.513919247,0.824708164,0,probable
101
- 7.86340488,599.629,0.0281983,0.161261,0.959943188,0.494209116,0.634786546,1,probable
102
- 6.70564693,14.0175,8.62371,7.79191,2.77E-05,0.465192662,0.705665529,0,probable
103
- 2.89203741,0,0.00537177,0.052651,4.32E-05,0,0.69255507,0,probable
104
- 1.12427871,9.67615,79.6665,26.7214,0.600789667,0,0.715512335,0,probable
105
- 13.81741235,140.1349534,174.3111218,129.3731788,0.493385512,0.025920456,0.637198291,0,least likely
106
- 2.19615612,1.44702,4.71884,8.28389,0.011344576,0,0.38356629,0,probable
107
- 8.84810219,4.16766,4.09661,75.8852,0.999969901,0,0.630912066,0,probable
108
- 2.75424746,0.621733,0.0550476,14.4716,0.97976209,0.564666898,0.836875796,0,probable
109
- 2.80882657,0.98202,0.0429118,34.5013,0.204306173,0,0.748405397,0,probable
110
- 3.85244898,8.26487,0,0,0.086007141,0,0.295108467,1,probable
111
- 4.95013216,0,0,0,0.162839345,0,0.123297259,0,probable
112
- 1.98266541,0.321825,23.7693,0.59279,2.54E-22,0,0.238498077,0,probable
113
- 24.59899632,2.1737,0.356516,39.9564,0.21554685,0.570663532,0.833060265,0,most likely
114
- 5.98324176,56.1306,234.501,1324.37,0.999540082,0,0.703993857,1,probable
115
- 1.97547522,0.0736473,0.561668,5.89264,0.020935797,0,0.458951801,0,probable
116
- 10.67917885,0.0164392,0.00334462,0.0592792,0.999994896,0,0.778094649,1,probable
117
- 4.625472124,1.48713,2.24228,5.61009,1.41E-06,0.08417015,0.593201816,0,most likely
118
- 5.435997049,2.82645,14.9786,9.7685,0.000916634,0.05041723,0.636561334,0,most likely
119
- 0,93.63368992,503.1390325,216.1993312,0.026229492,0,0.146139458,0,least likely
120
- 12.72102078,3.24452,2.41589,1.3168,8.50E-07,0,0.146511853,0,most likely
121
- 10.54543118,467.872,5071.19,721.047,0.002664635,0,0.328141659,0,probable
122
- 12.35448238,1.90703,456.036,9.84807,0.16662533,0,0.186891869,1,probable
123
- 14.48467393,44.6309,4319.57,159.897,0.70016489,0,0.356269389,0,probable
124
- 3.93670914,0.0628549,0.0173163,0.575316,0.001561168,0,0.196595117,1,probable
125
- 21.50009141,119.114,10.9321,108.388,0.386865542,0,0.633789687,0,probable
126
- 6.86005273,0.71549,2.32603,3.45595,2.19E-06,0,0.39679274,0,probable
127
- 2.97639148,17.3389,106.24,50.8541,0.999958226,0,0.852899194,0,most likely
128
- 2.91372116,0,0.0314624,0.283548,0.813006425,0,0.494588822,0,probable
129
- 5.91668299,0.0171578,0.00949186,0.858437,0.648787513,0,0.72905165,0,probable
130
- 4.60912048,184.723,186.006,26.7542,0.376558105,0,0.685321391,0,probable
131
- 6.8125021,13.8385,14.241,0.591827,0.469523496,0.830863574,0.804062724,1,probable
132
- 5.7405052,143.431,0.353955,103.351,0.362251902,0,0.79961127,0,probable
133
- 3.9639913,0.22322,0.247947,5.7234,0.289669117,0.549225289,0.401833534,1,probable
134
- 2.98297969,14.8659,0.463576,40.47,0.33046522,0.742183659,0.598649075,1,probable
135
- 7.94127642,0.365726,0.196568,5.29016,4.07E-05,0.472965166,0.723324299,0,probable
136
- 7.90802953,28.863,1.02111,31.1453,0.000480019,0,0.705665529,0,most likely
137
- 5.85644216,3.15198,5.94623,12.3037,0.999999616,0.494209116,0.824708164,0,probable
138
- 11.69182943,0.805148,0.0342439,3.86749,0.98258787,0,0.728550792,0,probable
139
- 3.81588039,0.244868,0.871866,53.5812,0.999889995,0.442034071,0.714798927,0,probable
140
- 3.75626441,0.0322178,0.585553,0.543503,0.999978751,0,0.774301469,0,probable
141
- 14.76606971,0.604791,0.300937,10.7255,0.31472413,0.855397621,0.714407027,1,most likely
142
- 1.74820254,0.133124,0.0113507,4.00184,0.106847942,0,0.369423717,0,least likely
143
- 2.92856602,0.279457,0.0314508,12.9208,0.282432889,0,0.477386928,1,probable
144
- 2.92012308,0,0.0590834,1.21034,0.126993746,0,0.565498233,1,probable
145
- 4.77313532,0.0303408,12.3533,0.203706,0.999535087,0,0.716944396,0,probable
146
- 6.70370701,15.4088,96.3996,78.1255,0.991027965,0,0.745582581,0,probable
147
- 3.35283215,9.31893,25.2173,40.1291,0.999994425,0,0.571837127,0,probable
148
- 1.98841355,0,0,0,0.017072106,0,0.111908376,0,least likely
149
- 1.98717466,0,0,0,0.023274211,0,0.123297259,0,least likely
150
- 1.98717466,0,0,0,0.532856912,0,0.123297259,0,least likely
151
- 1.98841355,0,0,0,0.00547083,0,0.111908376,0,least likely
152
- 20.630263,22.6645,31.6294,9.28987,2.59E-16,0,0.485596061,1,most likely
153
- 4.52859362,69.61738504,175.2098811,140.8048394,0.002925351,0,0.132359073,0,least likely
154
- 6.91609969,2.36997,57.5145,21.9637,0.990896287,0,0.824708164,0,probable
155
- 9.68123578,14.8307,52.8438,33.3311,0.998848724,0,0.273053437,0,probable
156
- 4.52819492,3.95268,10.6448,19.0578,0.232913565,0.477882401,0.654942453,0,probable
157
- 6.61160851,10.9226,64.1688,17.0492,0.999736598,0.465944823,0.824708164,0,probable
158
- 27.47563542,0.261872,0.104208,51.9157,4.68E-05,0,0.565020561,0,probable
159
- 9.69401325,108.978,246.511,143.494,0.950092967,0,0.700975537,1,probable
160
- 2.93755893,1.80633,3.75173,223.191,0.022432784,0,0.767147124,0,probable
161
- 17.46072446,79.421945,116.036807,108.9608396,0.49571384,0.117104231,0.632045628,0,least likely
162
- 8.26567547,9.20037,48.5219,33.386,0.739578311,0,0.650545239,0,probable
163
- 12.90950108,5.8127,0.0780681,0.501727,2.19E-08,0,0.743839204,1,most likely
164
- 5.8717989,0.0398599,0.0381268,0.285176,1.44E-06,0.395367293,0.597733259,0,probable
165
- 1.99733796,4.96152,8.69039,20.1781,2.46E-07,0,0.37917918,1,probable
166
- 1.74820254,0,0,0,0.00870273,0,0.501750886,1,probable
167
- 1.99932516,0,0,0,0.027715727,0,0.132644241,0,least likely
168
- 1.9940426,0.101044,0.0765022,0.081244,0.195347922,0,0.344848781,0,least likely
169
- 7.02337534,0.169688,0.483849,5.64919,1.28E-17,0.558572271,0.495365709,1,probable
170
- 5.87436508,0.496362,1.02557,3.03324,0.000145766,0,0.631864309,0,probable
171
- 2.98610432,0.619648,0.410157,4.1206,1.33E-23,0,0.781591654,0,probable
172
- 7.54165982,11.9914,105.092,26.0401,0.999998877,0,0.792072892,0,most likely
173
- 0,0,0,0.292167,0.087453851,0,0.111908376,0,least likely
174
- 2.00140612,39.1901,83.4268,61.6546,0.339536516,0,0.432313383,0,probable
175
- 5.62602042,28.5577,62.5508,54.4568,0.047137034,0,0.320700407,0,probable
176
- 7.68047773,2.45612,3.8322,16.2123,0.999966646,0.899703515,0.824708164,1,most likely
177
- 0,0,0,15.6431,0.140552619,0,0.444330692,0,least likely
178
- 9.79939448,1.8293,0.235102,8.49258,2.21E-05,0.882196062,0.636561334,1,probable
179
- 1.99992573,1.09652,1.4108,2.14771,0.020253451,0,0.320445284,0,least likely
180
- 6.90823393,1.3644,2.29444,5.93242,0.016931635,0.89609491,0.244530007,1,most likely
181
- 2.83811816,0.114646,0.120796,0.514502,0.00038006,0,0.181705475,1,most likely
182
- 3.98295932,2.39363,3.70879,8.67364,0.000172509,0.932800606,0.711480618,1,most likely
183
- 3.99033126,1.30813,0.0465167,0.339425,0.003099263,0.853179975,0.622939706,1,most likely
184
- 3.8377306,0.755957,17.1921,7.11795,4.52E-11,0,0.575230479,0,probable
185
- 10.93726445,1.00514,0.00389043,2.24661,0.947798762,0.545722407,0.653915465,0,probable
186
- 4.62651381,5.17312,5.46974,4.7245,0.991172158,0,0.762403488,0,probable
187
- 0,7.49669,39.088,31.1934,0.052197863,0,0.638582647,0,probable
188
- 7.6323214,6.78081,8.55087,36.0331,8.59E-08,0.431381082,0.229989916,1,probable
189
- 2.755958062,0.524384,2.10745,1.8037,0.017329039,0,0.146139458,0,least likely
190
- 14.75014718,0,0,0.014081,4.21E-05,0,0.45271197,1,probable
191
- 0,0,0,0,0.007138452,0,0.111908376,0,least likely
192
- 1.74820254,0,0,0,1.59E-08,0,0.170125708,0,least likely
193
- 0,0,0,0,0.044375651,0,0.146139458,0,least likely
194
- 0,0,0,0,0.712159403,0,0.25535503,0,least likely
195
- 0,0,0,0,0.015283314,0,0.123297259,0,least likely
196
- 0,0,0,0.111567,0.001867748,0,0.111908376,0,least likely
197
- 0,0,0,0.196918,6.39E-05,0,0.111908376,0,least likely
198
- 0,0,0,0,6.76E-05,0,0.146139458,0,least likely
199
- 1.98266541,0.134019,1.74091,0.883201,3.29E-05,0,0.146139458,0,least likely
200
- 1.98266541,0,0.0457591,0,0.001920531,0,0.111908376,0,least likely
201
- 1.98266541,0,0.0644526,0,9.27E-07,0,0.111908376,0,least likely
202
- 0,0,0,0,0.017981897,0,0.144167379,0,least likely
203
- 3.829865519,4.52536,24.9875,16.347,0.988642484,0,0.579714477,0,probable
204
- 3.27505451,0.172973,0.0643215,0.960922,4.64E-07,0.497331948,0.455463469,0,probable
205
- 2.99226437,0,0,0.0216121,0.001881242,0,0.22862041,0,least likely
206
- 1.86907763,0,0,0.0629701,0.007572397,0,0.146139458,0,least likely
207
- 2.99056035,0.149176,0.0121974,4.02766,0.998485351,0,0.80871886,1,probable
208
- 0,1.43363,0.0101761,1.57488,4.17E-31,0,0.527515531,1,probable
209
- 2.96331746,0.721368,0.0230582,1.64713,0.730656355,0,0.54646343,0,most likely
210
- 1.99962367,0.732066,0.0277649,2.59756,0.106612096,0,0.746229529,1,probable
211
- 0,0.44053,0.470755,3.72276,0.003390906,0,0.640711069,1,probable
212
- 1.99992492,20.1172,28.6723,24.7527,0.713477057,0,0.650558949,1,probable
213
- 8.90483434,4.2196,0.0330563,3.82562,0.969061049,0,0.737545311,0,probable
214
- 10.79929478,4.43704,0.109071,5.31296,0.99987673,0.494209116,0.852899194,1,probable
215
- 3.66240179,40.5436,21.8478,156.28,0.875748962,0,0.693781972,0,probable
216
- 2.94475488,0.108455,0.00860162,1.64211,0.884782623,0.477894065,0.833875239,1,most likely
217
- 3.97250131,0.245544,19.0303,4.07433,0.664117315,0,0.209607884,0,probable
218
- 1.99990361,1.15447,13.2168,11.9708,1.41E-06,0,0.71511656,0,probable
219
- 5.95345819,0.570161,0.0173583,1.0015,0.040587787,0.012221157,0.286036474,0,probable
220
- 9.90845216,0.191789,0.029756,0.0874236,6.57E-17,0,0.250911236,0,most likely
221
- 4.93580207,1.61753,0.825902,3.77906,3.65E-11,0,0.348049432,0,probable
222
- 2.87341017,0.628377,0.579364,9.05755,0.000143297,0,0.275690168,0,most likely
223
- 4.81544009,0,0,0.247242,0.173925214,0,0.367946584,0,least likely
224
- 4.90475214,7.34216,28.6974,14.9695,0.985449561,0.514240382,0.794491291,0,probable
225
- 8.79676704,5.15203,14.0476,14.8009,0.998148789,0,0.824708164,0,probable
226
- 6.7860231,6.63453,35.7591,39.5826,0.999703649,0.479453267,0.794239461,1,probable
227
- 2.381111335,0,0,0,0.098105164,0,0.25535503,0,least likely
228
- 2.029619162,0,0,0,3.90E-06,0,0.111908376,0,least likely
229
- 4.97086711,23.0327,149.21,127.525,1,0,0.3721928,0,probable
230
- 7.43867349,183.23,509.322,336.457,0.398813285,0,0.71101737,0,probable
231
- 12.50320448,66.6153,155.604,90.3624,0.979199713,0,0.782960892,0,probable
232
- 9.67742038,21.1687,73.0406,37.0037,0.999745809,0,0.782960892,0,probable
233
- 4.28855844,9.8677,27.2014,18.8941,1.27E-05,0,0.497687757,0,probable
234
- 15.67297733,11.1844,62.4455,18.2386,0.975506866,0,0.782960892,0,probable
235
- 7.74742911,68.3244,292.246,124.461,0.87136585,0,0.824708164,0,probable
236
- 1.70705006,0.0694395,0.0642239,0.0827362,0.054416635,0,0.292119116,0,probable
237
- 3.86565544,4.63894,8.02587,13.0243,2.38E-07,0,0.566305161,0,most likely
238
- 1.99980452,1.75494,0.205859,23.9336,8.41E-07,0,0.139342904,0,probable
239
- 0,0,0,0,0.006838299,0,0.111908376,0,least likely
240
- 4.788836756,35.23356545,51.61784624,47.5965206,0.029365312,0,0.214144617,0,least likely
241
- 6.577740103,0.266307,1.20162,2.88095,0.350338811,0.070629646,0.565336246,0,least likely
242
- 1.418601014,0,0,0,0.017880274,0,0.126236382,0,least likely
243
- 3.908702189,2.8411,0,0.0465697,0.080993352,0.005457224,0.285005399,0,least likely
244
- 3.819737402,0.41997,0.0846201,0.700894,0.247956716,0,0.363385529,0,least likely
245
- 2.204531394,0,0.0943672,0,0.034039288,0,0.196580355,0,least likely
246
- 2.97179723,3.70345,2.28843,10.5383,0.38005409,0,0.426189721,1,probable
247
- 3.97098282,0,0,0,6.14E-26,0.468244205,0.519814193,1,probable
248
- 10.68395422,0.0255395,0.00953275,4.21768,0.999999992,0,0.778094649,0,probable
249
- 1.96798985,7.91462,43.0456,15.2041,0.00592219,0,0.55241257,0,probable
250
- 1.97755717,11.5862,0.112384,0.969161,0.000188842,0,0.123297259,0,most likely
251
- 2.97639148,181.103,22.9632,5.50215,1.86E-07,0,0.770912826,0,probable
252
- 2.8304118,0.745953,0.506855,1.84331,0.993830465,0,0.704433322,0,probable
253
- 2.8304118,16.5816,10.638,33.4791,0.999836809,0,0.809006751,0,probable
254
- 0,8.82313,12.9686,28.1664,0.999882541,0,0.72829324,0,probable
255
- 5.83357103,1.67254,14.8188,10.7423,0.999438622,0.804354974,0.638582647,1,most likely
256
- 3.79511105,0.0190877,0.113287,0.0972405,8.43E-14,0.395367293,0.177065939,1,most likely
257
- 7.92021891,14.9237,42.4107,7.60566,0.826067878,0,0.788574338,0,probable
258
- 3.64963493,197.432,0.196669,0.471998,3.72E-06,0,0.319299012,0,probable
259
- 17.64906737,1.46751,0.187633,6.68359,0.135386793,0.906644289,0.637993336,1,most likely
260
- 2.93433955,1.04292,0.0276677,1.81762,0.008031196,0,0.684255004,0,most likely
261
- 10.52385559,10.3478,24.6468,23.4148,0.868268313,0.477894065,0.824708164,1,probable
262
- 2.99256063,65.945,9.09961,18.1638,0.000439257,0,0.207913831,0,probable
263
- 3.66240179,18.3302,59.0072,85.8141,0.99995316,0,0.839585781,0,probable
264
- 7.79276302,0.663081,0.312763,33.9272,0.999462431,0.930627006,0.786468923,1,probable
265
- 0,38.9466,9.85485,95.1329,0.24153768,0,0.444217145,1,probable
266
- 1.98266541,0,0.234284,0.143327,0.000144124,0,0.123297259,0,least likely
267
- 1.98266541,0,0,0,0.065390402,0,0.123297259,0,least likely
268
- 2.96764242,0.330379,1.15568,2.46628,0.04973845,0,0.146139458,0,least likely
269
- 1.98266541,0,0,0,6.30E-06,0,0.111908376,0,least likely
270
- 0,0,0,0.0174889,0.490002147,0,0.186891869,0,least likely
271
- 6.56033859,9.70064,0.415223,11.8595,0.989605029,0,0.824708164,0,probable
272
- 14.05338892,0,0.366475,0.0112421,0.866151189,0,0.693340123,0,probable
273
- 0,1.37343,12.2708,7.25045,7.05E-26,0,0.123297259,0,probable
274
- 0,0.0869152,0.670666,0.407209,0.057328615,0,0.266437908,0,least likely
275
- 13.82529558,8.99936,155.283,33.8618,0.354132528,0.731960198,0.831385493,1,most likely
276
- 7.91602311,5.20517,1.05597,11.3497,0.011054798,0.395367293,0.679628551,0,probable
277
- 2.97531153,3.44507,0.321486,12.0492,0.245000803,0.477735479,0.603037536,1,probable
278
- 1.9977004,15.0274,17.3454,14.0308,8.15E-06,0,0.288511723,0,probable
279
- 4.93672721,11.6694,14.0279,29.5908,0.997954015,0,0.30187729,0,probable
280
- 13.71759198,6.86862,72.9493,8.45352,0.912222953,0.570663532,0.831385493,0,probable
281
- 3.52306165,3.26322,9.92295,10.5093,0.505141848,0,0.444217145,0,probable
282
- 5.80132248,2.53493,6.7163,9.56511,0.000375248,0,0.288511723,0,probable
283
- 1.86907763,0.32723,1.09133,0.547907,0.988510645,0,0.824708164,1,probable
284
- 8.9127305,0,0,0,3.18E-08,0,0.208481908,1,probable
285
- 27.2328624,24.5387,47.8366,284.869,0.837117601,0,0.598057508,0,probable
286
- 4.75766587,0.334088,7.89811,19.1386,0.392125212,0.959358571,0.786468923,1,probable
287
- 7.87963926,143.583,74.4515,34.8442,0.612489676,0.528331768,0.701599261,1,most likely
288
- 1.98266541,0.631509,0.951715,7.48462,0.310171245,0,0.146139458,0,least likely
289
- 1.98266541,0,0,0,0.000121566,0,0.111908376,0,least likely
290
- 7.92940676,12.7032,12.1813,11.4917,0.046391622,0,0.745582581,0,probable
291
- 10.24455756,106.4061891,173.2700354,141.0496468,0.573475788,0.021879453,0.646083019,0,least likely
292
- 6.84360167,3.38649,1.59678,2.43897,0.272667248,0,0.792615056,0,probable
293
- 7.683687709,91.442154,201.257559,130.698046,0.496651345,0.102067311,0.670361349,0,least likely
294
- 11.08283369,361.954788,1610.315827,512.3076152,0.413154037,0.043373507,0.531107285,0,least likely