├── IBD.ipynb ├── LICENSE ├── MiMeNet_train.py ├── README.md ├── data ├── IBD │ ├── diagnosis_PRISM.csv │ ├── external_diagnosis.csv │ ├── metabolome_PRISM.csv │ ├── metabolome_annotation.csv │ ├── metabolome_external.csv │ ├── microbiome_PRISM.csv │ └── microbiome_external.csv ├── cystic_fibrosis │ ├── metabolome.csv │ └── microbiome.csv └── soil │ ├── metabolome.csv │ └── microbiome.csv ├── results ├── IBD │ └── network_parameters.txt ├── cystic_fibrosis │ └── network_parameters.txt └── soil │ └── network_parameters.txt ├── run.sh └── src ├── __pycache__ ├── MLPNN.cpython-37.pyc ├── MicroMetabPredictor.cpython-37.pyc └── rf.cpython-37.pyc └── models ├── MLPNN.py ├── MiMeNet.py ├── __pycache__ ├── MLPNN.cpython-37.pyc └── MiMeNet.cpython-37.pyc └── rf.py /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Derek Reiman 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MiMeNet_train.py: -------------------------------------------------------------------------------- 1 | import warnings 2 | warnings.filterwarnings("ignore") 3 | import os 4 | 5 | import json 6 | import argparse 7 | import time 8 | import datetime 9 | import json 10 | import pickle 11 | 12 | import pandas as pd 13 | import numpy as np 14 | import seaborn as sns 15 | import matplotlib.pyplot as plt 16 | import tensorflow as tf 17 | 18 | from scipy.stats import spearmanr, mannwhitneyu 19 | import scipy.cluster.hierarchy as shc 20 | from skbio.stats.composition import clr 21 | from sklearn.preprocessing import StandardScaler 22 | from sklearn.model_selection import KFold 23 | from scipy.cluster.hierarchy import cut_tree 24 | 25 | from src.models.MiMeNet import MiMeNet, tune_MiMeNet 26 | 27 | 28 | ################################################### 29 | # Read in command line arguments 30 | ################################################### 31 | 32 | parser = argparse.ArgumentParser(description='Perform MiMeNet') 33 | 34 | parser.add_argument('-micro', '--micro', help='Comma delimited file representing matrix of samples by microbial features', required=True) 35 | parser.add_argument('-metab', '--metab', help= 'Comma delimited file representing matrix of samples by metabolomic features', required=True) 36 | parser.add_argument('-external_micro', '--external_micro', help='Comma delimited file representing matrix of samples by microbial features') 37 | parser.add_argument('-external_metab', '--external_metab', help= 'Comma delimited file representing matrix of samples by metabolomic features') 38 | parser.add_argument('-annotation', '--annotation', help='Comma delimited file annotating subset of metabolite features') 39 | parser.add_argument('-labels', '--labels', help="Comma delimited file for sample labels to associate clusters with") 40 | parser.add_argument('-output', '--output', help='Output directory', required=True) 41 | 42 | parser.add_argument('-net_params', '--net_params', help='JSON file of network hyperparameters', default=None) 43 | parser.add_argument('-background', '--background', help='Directory with previously generated background', default=None) 44 | parser.add_argument('-num_background', '--num_background', help='Number of background CV Iterations', default=100, type=int) 45 | 46 | parser.add_argument('-micro_norm', '--micro_norm', help='Microbiome normalization (RA, CLR, or None)', default='CLR') 47 | parser.add_argument('-metab_norm', '--metab_norm', help='Metabolome normalization (RA, CLR, or None)', default='CLR') 48 | parser.add_argument('-threshold', '--threshold', help='Define significant correlation threshold', default=None) 49 | parser.add_argument('-num_run_cv', '--num_run_cv', help='Number of iterations for cross-validation', default=1, type=int) 50 | parser.add_argument('-num_cv', '--num_cv', help='Number of cross-validated folds', default=10, type=int) 51 | parser.add_argument('-num_run', '--num_run', help='Number of iterations for training full model', type=int, default=10) 52 | 53 | args = parser.parse_args() 54 | 55 | micro = args.micro 56 | metab = args.metab 57 | external_micro = args.external_micro 58 | external_metab = args.external_metab 59 | annotation = args.annotation 60 | out = args.output 61 | net_params = args.net_params 62 | threshold = args.threshold 63 | micro_norm = args.micro_norm 64 | metab_norm = args.metab_norm 65 | num_run_cv = args.num_run_cv 66 | num_cv = args.num_cv 67 | num_run = args.num_run 68 | background_dir = args.background 69 | labels = args.labels 70 | num_bg = args.num_background 71 | 72 | tuned = False 73 | 74 | gen_background = True 75 | if background_dir != None: 76 | gen_background = False 77 | 78 | 79 | start_time = time.time() 80 | 81 | if external_metab != None and external_micro == None: 82 | print("Warning: External metabolites found with no external microbiome...ignoring external set!") 83 | external_metab = None 84 | 85 | if net_params != None: 86 | print("Loading network parameters...") 87 | try: 88 | with open(net_params, "r") as infile: 89 | params = json.load(infile) 90 | num_layer = params["num_layer"] 91 | layer_nodes = params["layer_nodes"] 92 | l1 = params["l1"] 93 | l2 = params["l2"] 94 | dropout = params["dropout"] 95 | learning_rate = params["lr"] 96 | tuned = True 97 | print("Loaded network parameters...") 98 | except: 99 | print("Warning: Could not load network parameter file!") 100 | 101 | ################################################### 102 | # Load Data 103 | ################################################### 104 | 105 | metab_df = pd.read_csv(metab, index_col=0) 106 | micro_df = pd.read_csv(micro, index_col=0) 107 | 108 | 109 | if external_metab != None: 110 | external_metab_df = pd.read_csv(external_metab, index_col=0) 111 | 112 | if external_micro != None: 113 | external_micro_df = pd.read_csv(external_micro, index_col=0) 114 | 115 | 116 | ################################################### 117 | # Filter only paired samples 118 | ################################################### 119 | 120 | samples = np.intersect1d(metab_df.columns.values, micro_df.columns.values) 121 | num_samples = len(samples) 122 | 123 | metab_df = metab_df[samples] 124 | micro_df = micro_df[samples] 125 | 126 | for c in micro_df.columns: 127 | micro_df[c] = pd.to_numeric(micro_df[c]) 128 | 129 | for c in metab_df.columns: 130 | metab_df[c] = pd.to_numeric(metab_df[c]) 131 | 132 | 133 | if external_metab != None and external_micro != None: 134 | external_samples = np.intersect1d(external_metab_df.columns.values, external_micro_df.columns.values) 135 | external_metab_df = external_metab_df[external_samples] 136 | external_micro_df = external_micro_df[external_samples] 137 | 138 | for c in external_micro_df.columns: 139 | external_micro_df[c] = pd.to_numeric(external_micro_df[c]) 140 | 141 | for c in external_metab_df.columns: 142 | external_metab_df[c] = pd.to_numeric(external_metab_df[c]) 143 | 144 | num_external_samples = len(external_samples) 145 | 146 | elif external_micro != None: 147 | external_samples = external_micro_df.columns.values 148 | external_micro_df = external_micro_df[external_samples] 149 | 150 | for c in external_micro_df.columns: 151 | external_micro_df[c] = pd.to_numeric(external_micro_df[c]) 152 | 153 | num_external_samples = len(external_samples) 154 | 155 | 156 | 157 | ################################################### 158 | # Create output directory 159 | ################################################### 160 | 161 | dirName = 'results' 162 | 163 | try: 164 | os.mkdir(dirName) 165 | print("Directory " , dirName , " Created ") 166 | except FileExistsError: 167 | print("Directory " , dirName , " already exists") 168 | 169 | dirName = 'results/' + out 170 | 171 | try: 172 | os.mkdir(dirName) 173 | print("Directory " , dirName , " Created ") 174 | except FileExistsError: 175 | print("Directory " , dirName , " already exists") 176 | 177 | dirName = 'results/' + out + "/Images" 178 | 179 | try: 180 | os.mkdir(dirName) 181 | print("Directory " , dirName , " Created ") 182 | except FileExistsError: 183 | print("Directory " , dirName , " already exists") 184 | 185 | 186 | 187 | 188 | ################################################### 189 | # Filter lowly abundant samples 190 | ################################################### 191 | 192 | to_drop = [] 193 | 194 | for microbe in micro_df.index.values: 195 | present_in = sum(micro_df.loc[microbe] > 0.0000) 196 | if present_in <= 0.1 * num_samples: 197 | to_drop.append(microbe) 198 | 199 | micro_df = micro_df.drop(to_drop, axis=0) 200 | 201 | to_drop = [] 202 | 203 | for metabolite in metab_df.index.values: 204 | present_in = sum(metab_df.loc[metabolite] > 0.0000) 205 | if present_in <= 0.1 * num_samples: 206 | to_drop.append(metabolite) 207 | 208 | metab_df = metab_df.drop(to_drop, axis=0) 209 | 210 | if external_micro != None: 211 | common_features = np.intersect1d(micro_df.index.values, external_micro_df.index.values) 212 | micro_df = micro_df.loc[common_features] 213 | external_micro_df = external_micro_df.loc[common_features] 214 | 215 | if external_metab != None: 216 | common_features = np.intersect1d(metab_df.index.values, external_metab_df.index.values) 217 | metab_df = metab_df.loc[common_features] 218 | external_metab_df = external_metab_df.loc[common_features] 219 | 220 | 221 | 222 | 223 | 224 | ################################################### 225 | # Transform data to Compositional Data 226 | ################################################### 227 | 228 | # Transform Microbiome Data 229 | if micro_norm == "CLR": 230 | micro_comp_df = pd.DataFrame(data=np.transpose(clr(micro_df.transpose() + 1)), 231 | index=micro_df.index, columns=micro_df.columns) 232 | if external_micro: 233 | external_micro_comp_df = pd.DataFrame(data=np.transpose(clr(external_micro_df.transpose() + 1)), 234 | index=external_micro_df.index, columns=external_micro_df.columns) 235 | elif micro_norm == "RA": 236 | col_sums = micro_df.sum(axis=0) 237 | micro_comp_df = micro_df/col_sums 238 | 239 | if external_micro: 240 | col_sums = external_micro_df.sum(axis=0) 241 | external_micro_comp_df = external_micro_df/col_sums 242 | 243 | else: 244 | micro_comp_df = micro_df 245 | if external_micro: 246 | external_micro_comp_df = external_micro_df 247 | 248 | 249 | 250 | # Normalize Metabolome Data 251 | if metab_norm == "CLR": 252 | metab_comp_df = pd.DataFrame(data=np.transpose(clr(metab_df.transpose() + 1)), 253 | index=metab_df.index, columns=metab_df.columns) 254 | if external_metab: 255 | external_metab_comp_df = pd.DataFrame(data=np.transpose(clr(external_metab_df.transpose() + 1)), 256 | index=external_metab_df.index, columns=external_metab_df.columns) 257 | elif metab_norm == "RA": 258 | col_sums = metab_df.sum(axis=0) 259 | metab_comp_df = metab_df/col_sums 260 | 261 | if external_metab: 262 | col_sums = external_metab_df.sum(axis=0) 263 | external_metab_comp_df = external_metab_df/col_sums 264 | 265 | else: 266 | metab_comp_df = metab_df 267 | if external_metab: 268 | external_metab_comp_df = external_metab_df 269 | 270 | 271 | micro_comp_df = micro_comp_df.transpose() 272 | metab_comp_df = metab_comp_df.transpose() 273 | 274 | if external_micro: 275 | external_micro_comp_df = external_micro_comp_df.transpose() 276 | 277 | if external_metab: 278 | external_metab_comp_df = external_metab_comp_df.transpose() 279 | 280 | 281 | 282 | ################################################### 283 | # Run Cross-Validation on Dataset 284 | ################################################### 285 | score_matrices = [] 286 | 287 | print("Performing %d runs of %d-fold cross-validation" % (num_run_cv, num_cv)) 288 | cv_start_time = time.time() 289 | tune_run_time = 0 290 | 291 | micro = micro_comp_df.values 292 | metab = metab_comp_df.values 293 | 294 | dirName = 'results/' + out + '/CV' 295 | try: 296 | os.mkdir(dirName) 297 | except FileExistsError: 298 | pass 299 | 300 | for run in range(0,num_run_cv): 301 | 302 | # Set up output directory for CV runs 303 | dirName = 'results/' + out + '/CV/' + str(run) 304 | try: 305 | os.mkdir(dirName) 306 | except FileExistsError: 307 | pass 308 | 309 | # Set up CV partitions 310 | kfold = KFold(n_splits=num_cv, shuffle=True) 311 | cv = 0 312 | 313 | for train_index, test_index in kfold.split(samples): 314 | 315 | # Set up output directory for CV partition run 316 | dirName = 'results/' + out + '/CV/' + str(run) + '/' + str(cv) 317 | try: 318 | os.mkdir(dirName) 319 | except FileExistsError: 320 | pass 321 | 322 | # Partition data into training and test sets 323 | train_micro, test_micro = micro[train_index], micro[test_index] 324 | train_metab, test_metab = metab[train_index], metab[test_index] 325 | train_samples, test_samples = samples[train_index], samples[test_index] 326 | 327 | # Store training and test set partitioning 328 | train_microbe_df = pd.DataFrame(data=train_micro, index=train_samples, columns=micro_comp_df.columns) 329 | test_microbe_df = pd.DataFrame(data=test_micro, index=test_samples, columns=micro_comp_df.columns) 330 | train_metab_df = pd.DataFrame(data=train_metab, index=train_samples, columns=metab_comp_df.columns) 331 | test_metab_df = pd.DataFrame(data=test_metab, index=test_samples, columns=metab_comp_df.columns) 332 | 333 | train_microbe_df.to_csv(dirName + "/train_microbes.csv") 334 | test_microbe_df.to_csv(dirName + "/test_microbes.csv") 335 | train_metab_df.to_csv(dirName + "/train_metabolites.csv") 336 | test_metab_df.to_csv(dirName + "/test_metabolites.csv") 337 | 338 | # Log transform data if RA 339 | if micro_norm == "RA" or micro_norm == None: 340 | train_micro = np.log(train_micro + 1) 341 | test_micro = np.log(test_micro + 1) 342 | 343 | if metab_norm == "RA" or metab_norm == None: 344 | train_metab = np.log(train_metab + 1) 345 | test_metab = np.log(test_metab + 1) 346 | 347 | # Scale data before neural network training 348 | micro_scaler = StandardScaler().fit(train_micro) 349 | train_micro = micro_scaler.transform(train_micro) 350 | test_micro = micro_scaler.transform(test_micro) 351 | 352 | metab_scaler = StandardScaler().fit(train_metab) 353 | train_metab = metab_scaler.transform(train_metab) 354 | test_metab = metab_scaler.transform(test_metab) 355 | 356 | # Aggregate paired microbiome and metabolomic data 357 | train = (train_micro, train_metab) 358 | test = (test_micro, test_metab) 359 | 360 | # Tune hyperparameters if first partition 361 | if tuned == False: 362 | tune_start_time = time.time() 363 | print("Tuning parameters...") 364 | tuned = True 365 | params = tune_MiMeNet(train) 366 | l1 = params['l1'] 367 | l2 = params['l2'] 368 | num_layer=params['num_layer'] 369 | layer_nodes=params['layer_nodes'] 370 | dropout=params['dropout'] 371 | with open('results/' +out + '/network_parameters.txt', 'w') as outfile: 372 | json.dump(params, outfile) 373 | 374 | tune_run_time = time.time() - tune_start_time 375 | print("Tuning run time: " + (str(datetime.timedelta(seconds=(tune_run_time))))) 376 | 377 | print("Run: %02d\t\tFold: %02d" % (run + 1, cv + 1), end="\r") 378 | 379 | # Construct Neural Network Model 380 | model = MiMeNet(train_micro.shape[1], train_metab.shape[1], l1=l1, l2=l2, 381 | num_layer=num_layer, layer_nodes=layer_nodes, dropout=dropout) 382 | 383 | #Train Neural Network Model 384 | model.train(train) 385 | 386 | # Predict on test set 387 | p = model.test(test) 388 | 389 | inv_p = metab_scaler.inverse_transform(p) 390 | 391 | if metab_norm == "RA" or metab_norm == None: 392 | inv_p = np.exp(inv_p) - 1 393 | inv_p = inv_p/np.sum(inv_p) 394 | 395 | score_matrices.append(model.get_scores()) 396 | prediction_df = pd.DataFrame(data=inv_p, index=test_samples, columns=metab_comp_df.columns) 397 | score_matrix_df = pd.DataFrame(data=model.get_scores(), index=micro_comp_df.columns, columns=metab_comp_df.columns) 398 | 399 | prediction_df.to_csv(dirName + "/prediction.csv") 400 | score_matrix_df.to_csv(dirName + "/score_matrix.csv") 401 | 402 | model.destroy() 403 | tf.keras.backend.clear_session() 404 | 405 | cv += 1 406 | 407 | print("\nCV run time: " + str(datetime.timedelta(seconds=(time.time() - cv_start_time - tune_run_time)))) 408 | print("\nCalculating correlations for cross-validated evaluation...") 409 | 410 | 411 | 412 | ################################################### 413 | # Calculate correlation across CV 414 | ################################################### 415 | 416 | correlation_cv_df = pd.DataFrame(index=metab_comp_df.columns) 417 | 418 | for run in range(num_run_cv): 419 | preds = pd.concat([pd.read_csv('results/' + out + '/CV/' + str(run)+ '/' + str(cv) + "/prediction.csv", 420 | index_col=0) for cv in range(0, num_cv)]) 421 | y = pd.concat([pd.read_csv('results/' + out + '/CV/' + str(run)+ '/' + str(cv) + "/test_metabolites.csv", 422 | index_col=0) for cv in range(0, num_cv)]) 423 | 424 | cor = y.corrwith(preds, method="spearman") 425 | correlation_cv_df["Run_"+str(run)] = cor.loc[correlation_cv_df.index] 426 | 427 | correlation_cv_df["Mean"] = correlation_cv_df.mean(axis=1) 428 | correlation_cv_df = correlation_cv_df.sort_values("Mean", ascending=False) 429 | correlation_cv_df.to_csv('results/' + out + '/cv_correlations.csv') 430 | 431 | fig = plt.figure(figsize=(8,8), dpi=300) 432 | ax = fig.add_subplot(111) 433 | sns.distplot(correlation_cv_df["Mean"]) 434 | plt.title("IBD Prediction Correlation") 435 | plt.ylabel("Frequency") 436 | plt.xlabel("Spearman Correlation") 437 | plt.text(0.1, 0.9,"Mean: %.3f"% np.mean(correlation_cv_df.values), 438 | horizontalalignment='center', 439 | verticalalignment='center', 440 | transform = ax.transAxes) 441 | plt.savefig('results/' + out + '/Images/cv_correlation_distribution.png') 442 | print("Mean correlation: %f" % np.mean(correlation_cv_df.values)) 443 | 444 | 445 | ################################################### 446 | # Generate Background Distributions 447 | ################################################### 448 | 449 | if gen_background == False: 450 | try: 451 | print("Loading background from directory...") 452 | infile = open(background_dir + "/bg_preds.pkl", "rb") 453 | bg_preds = pickle.load(infile) 454 | infile.close() 455 | 456 | infile = open(background_dir + "/bg_truth.pkl", "rb") 457 | bg_truth = pickle.load(infile) 458 | infile.close() 459 | 460 | infile = open(background_dir + "/bg_scores_mean.pkl", "rb") 461 | bg_scores_mean = pickle.load(infile) 462 | infile.close() 463 | 464 | infile = open(background_dir + "/bg_correlations.pkl", "rb") 465 | bg_corr = pickle.load(infile) 466 | infile.close() 467 | except: 468 | print("Warning: Failed to load background from directory...") 469 | gen_background = True 470 | 471 | if gen_background == True: 472 | print("Generating background using 100 10-fold cross-validated runs of shuffled data...") 473 | bg_preds = [] 474 | bg_truth = [] 475 | bg_scores = [] 476 | bg_start_time = time.time() 477 | for run in range(0,num_bg): 478 | preds = [] 479 | truth = [] 480 | score_matrix = [] 481 | 482 | micro = micro_comp_df.values 483 | metab = metab_comp_df.values 484 | 485 | np.random.shuffle(micro) 486 | np.random.shuffle(metab) 487 | 488 | kfold = KFold(n_splits=10) 489 | cv=0 490 | for train_index, test_index in kfold.split(micro): 491 | print("Run: %02d\t\tFold:%02d" % (run + 1, cv + 1), end="\r") 492 | train_micro, test_micro = micro[train_index], micro[test_index] 493 | train_metab, test_metab = metab[train_index], metab[test_index] 494 | 495 | # Scale data before neural network training 496 | micro_scaler = StandardScaler().fit(train_micro) 497 | train_micro = micro_scaler.transform(train_micro) 498 | test_micro = micro_scaler.transform(test_micro) 499 | 500 | metab_scaler = StandardScaler().fit(train_metab) 501 | train_metab = metab_scaler.transform(train_metab) 502 | test_metab = metab_scaler.transform(test_metab) 503 | 504 | train = (train_micro, train_metab) 505 | test = (test_micro, test_metab) 506 | 507 | model = MiMeNet(train_micro.shape[1], train_metab.shape[1], l1=l1, l2=l2, 508 | num_layer=num_layer, layer_nodes=layer_nodes, dropout=dropout) 509 | 510 | model.train(train) 511 | p = model.test(test) 512 | 513 | preds = list(preds) + list(p) 514 | truth = list(truth) + list(test_metab) 515 | score_matrix.append(model.get_scores()) 516 | 517 | model.destroy() 518 | tf.keras.backend.clear_session() 519 | cv+=1 520 | 521 | bg_preds.append(preds) 522 | bg_truth.append(truth) 523 | bg_scores.append(score_matrix) 524 | 525 | print("\nFinished generating background...") 526 | print("\nBack ground run time: " + str(datetime.timedelta(seconds=(time.time() - bg_start_time)))) 527 | 528 | print("Saving background...") 529 | 530 | dirName = 'results/' + out + '/BG/' 531 | try: 532 | os.mkdir(dirName) 533 | except FileExistsError: 534 | pass 535 | 536 | bg_preds = np.array(bg_preds) 537 | bg_truth = np.array(bg_truth) 538 | bg_scores = np.array(bg_scores) 539 | bg_scores_mean = np.mean(np.array(bg_scores), axis=1) 540 | 541 | outfile = open(dirName + "bg_preds.pkl", "wb") 542 | pickle.dump(np.array(bg_preds), outfile) 543 | outfile.close() 544 | 545 | outfile = open(dirName + "bg_truth.pkl", "wb") 546 | pickle.dump(np.array(bg_truth), outfile) 547 | outfile.close() 548 | 549 | outfile = open(dirName + "bg_scores_mean.pkl", "wb") 550 | pickle.dump(bg_scores_mean, outfile) 551 | outfile.close() 552 | 553 | bg_corr = [] 554 | 555 | for i in range(0, bg_preds.shape[0]): 556 | for j in range(0,bg_preds.shape[-1]): 557 | p_vec = bg_preds[i,:,j] 558 | m_vec = bg_truth[i,:,j] 559 | cor = spearmanr(p_vec, m_vec) 560 | bg_corr.append(cor[0]) 561 | 562 | outfile = open(dirName + "bg_correlations.pkl", "wb") 563 | pickle.dump(np.array(bg_corr), outfile) 564 | outfile.close() 565 | 566 | 567 | ################################################### 568 | # Identify significantly correlated metabolites 569 | ################################################### 570 | 571 | if threshold == None: 572 | cutoff_rho = np.quantile(bg_corr, 0.95) 573 | else: 574 | cutoff_rho == threshold 575 | 576 | print("The correlation cutoff is %.3f" % cutoff_rho) 577 | print("%d of %d metabolites are significantly correlated" % (sum(correlation_cv_df["Mean"].values > cutoff_rho), 578 | len(correlation_cv_df["Mean"].values))) 579 | 580 | sig_metabolites = correlation_cv_df.index[correlation_cv_df["Mean"].values > cutoff_rho] 581 | 582 | if annotation != None: 583 | annotation_df = pd.read_csv(annotation, index_col=0) 584 | annotated_metabolites = np.intersect1d(correlation_cv_df.index.values, annotation_df.index.values) 585 | sig_metabolites = annotated_metabolites[correlation_cv_df.loc[annotated_metabolites, "Mean"].values > cutoff_rho] 586 | 587 | print("%d of %d annotated metabolites are significantly correlated" % (len(sig_metabolites), len(annotated_metabolites))) 588 | 589 | barplot_df = pd.DataFrame(data={"Compound Name":annotation_df.loc[sig_metabolites, "Compound Name"].values, 590 | "Spearman Correlation": correlation_cv_df.loc[sig_metabolites, "Mean"].values}, 591 | index=annotation_df.loc[sig_metabolites, "Compound Name"].values) 592 | 593 | barplot_df["Compound Name"] = [x.strip().capitalize() for x in barplot_df["Compound Name"].values] 594 | 595 | fig = plt.figure(figsize=(8,8), dpi=300) 596 | ax = fig.add_subplot(111) 597 | sns.barplot(x="Spearman Correlation", y='Compound Name', 598 | data=barplot_df.groupby(barplot_df.index).max().sort_values(by="Spearman Correlation", ascending=False).head(20)) 599 | plt.tight_layout() 600 | plt.savefig("results/" + out + "/Images/top_correlated_metabolites.png") 601 | 602 | else: 603 | barplot_df = pd.DataFrame(data={"Compound Name": correlation_cv_df.loc[sig_metabolites].index.values, 604 | "Spearman Correlation": correlation_cv_df.loc[sig_metabolites, "Mean"].values}, 605 | index=correlation_cv_df.loc[sig_metabolites].index.values) 606 | 607 | fig = plt.figure(figsize=(8,8), dpi=300) 608 | ax = fig.add_subplot(111) 609 | sns.barplot(x="Spearman Correlation", y='Compound Name', 610 | data=barplot_df.groupby(barplot_df.index).max().sort_values(by="Spearman Correlation", ascending=False).head(20)) 611 | plt.savefig("results/" + out + "/Images/top_correlated_metabolites.png") 612 | 613 | 614 | ####################################################### 615 | # Identify microbes with significant interaction scores 616 | ####################################################### 617 | 618 | 619 | mean_score_matrix = np.mean(np.array(score_matrices), axis=0) 620 | 621 | reduced_mean_score_matrix = mean_score_matrix[:,[x in sig_metabolites for x in correlation_cv_df.index]] 622 | reduced_bg_score_matrix = bg_scores_mean[:,:,[x in sig_metabolites for x in correlation_cv_df.index]] 623 | 624 | sig_edge_matrix = np.zeros(reduced_mean_score_matrix.shape) 625 | 626 | for mic in range(reduced_mean_score_matrix.shape[0]): 627 | for met in range(reduced_mean_score_matrix.shape[1]): 628 | sig_cutoff = np.abs(np.quantile(reduced_bg_score_matrix[:,mic,met], 0.975)) 629 | if np.abs(reduced_mean_score_matrix[mic,met]) > sig_cutoff: 630 | sig_edge_matrix[mic,met]=1 631 | 632 | 633 | sig_microbes = micro_comp_df.columns[np.sum(sig_edge_matrix, axis=1)> 0.01 * len(sig_metabolites)] 634 | 635 | ################################################### 636 | # Compare Correlation Distributions 637 | ################################################### 638 | 639 | fig = plt.figure(figsize=(8,8), dpi=300) 640 | ax = fig.add_subplot(111) 641 | sns.distplot(bg_corr, label="Background") 642 | sns.distplot(correlation_cv_df["Mean"].values, bins=20, label="Observed") 643 | plt.axvline(x=cutoff_rho, color="red", lw=2, label="95% Cutoff") 644 | plt.axvspan(cutoff_rho, 1.0, alpha=0.2, color='gray') 645 | 646 | plt.title("Correlation Distributions for IBD", fontsize=16) 647 | plt.ylabel("Frequency", fontsize=16) 648 | plt.xlabel("Spearman Correlation", fontsize=16) 649 | plt.xlim(-1,1) 650 | plt.text(0.85, 0.9,"Significant Region", 651 | horizontalalignment='center', 652 | verticalalignment='center', 653 | transform = ax.transAxes) 654 | plt.legend() 655 | plt.savefig("results/" + out + "/Images/cv_bg_correlation_distributions.png") 656 | 657 | 658 | score_matrix_df = pd.DataFrame(np.mean(score_matrices, axis=0), index=micro_comp_df.columns, 659 | columns=metab_comp_df.columns) 660 | 661 | reduced_score_df = score_matrix_df.loc[sig_microbes,sig_metabolites] 662 | 663 | binary_score_df = pd.DataFrame(np.clip(reduced_score_df/sig_cutoff, -1, 1), index=sig_microbes, 664 | columns= sig_metabolites) 665 | 666 | ################################################### 667 | # Compute Number of Microbial Modules 668 | ################################################### 669 | 670 | mic_connectivity_matrices = {} 671 | 672 | for i in range(2,20): 673 | mic_connectivity_matrices[i] = np.zeros((len(sig_microbes), len(sig_microbes))) 674 | 675 | for s in score_matrices: 676 | mic_linkage_list = shc.linkage(np.clip(s[[x in sig_microbes for x in micro_comp_df.columns],:][:,[x in sig_metabolites for x in metab_comp_df.columns]]/sig_cutoff, -1,1), method='complete') 677 | 678 | for i in range(2,20): 679 | microbe_clusters = np.array(cut_tree(mic_linkage_list, n_clusters=i)).reshape(-1) 680 | one_hot_matrix = np.zeros((len(sig_microbes), i)) 681 | for m in range(len(microbe_clusters)): 682 | one_hot_matrix[m, microbe_clusters[m]] = 1 683 | mic_connectivity_matrix = np.matmul(one_hot_matrix, np.transpose(one_hot_matrix)) 684 | mic_connectivity_matrices[i] += mic_connectivity_matrix 685 | 686 | fig = plt.figure(figsize=(8,4), dpi=300) 687 | plt.subplot(1,2,1) 688 | area_x = [] 689 | area_y = [] 690 | for i in range(2,20): 691 | consensus_matrix = mic_connectivity_matrices[i]/(num_run_cv * num_run) 692 | n = consensus_matrix.shape[0] 693 | consensus_cdf_x = [] 694 | consensus_cdf_y = [] 695 | area_x.append(int(i)) 696 | 697 | prev_y = 0 698 | prev_x = 0 699 | area = 0 700 | for j in range(0,101): 701 | x = float(j)/100.0 702 | y = sum(sum(consensus_matrix <= x))/(n*(n-1)) 703 | consensus_cdf_x.append(x) 704 | consensus_cdf_y.append(y) 705 | area += (x-prev_x) * (y) 706 | prev_x = x 707 | area_y.append(area) 708 | 709 | plt.plot(consensus_cdf_x, consensus_cdf_y, label=str(i) + " Clusters") 710 | 711 | plt.xlabel("Consensus Index Value") 712 | plt.ylabel("CDF") 713 | plt.legend() 714 | 715 | dk = [] 716 | for a in range(len(area_x)): 717 | if area_x[a] == 2: 718 | dk.append(area_y[a]) 719 | else: 720 | dk.append((area_y[a] - area_y[a-1])/area_y[a-1]) 721 | 722 | plt.subplot(1,2,2) 723 | plt.plot(area_x, dk, marker='o') 724 | plt.xlabel("Number of Clusters") 725 | plt.ylabel("Relative Increase of Area under CDF") 726 | plt.axhline(0.025, linewidth=2, color='r') 727 | 728 | num_microbiome_clusters = np.max(np.array(area_x)[np.array(dk) > 0.025]) 729 | print("Using %d Microbe Clusters" % num_microbiome_clusters) 730 | plt.savefig("results/" + out + "/Images/microbe_cluster_consensus.png") 731 | 732 | 733 | ################################################### 734 | # Compute Number of Metabolic Modules 735 | ################################################### 736 | 737 | met_connectivity_matrices = {} 738 | 739 | for i in range(2,20): 740 | met_connectivity_matrices[i] = np.zeros((len(sig_metabolites), len(sig_metabolites))) 741 | 742 | count = 0 743 | for s in score_matrices: 744 | count += 1 745 | met_linkage_list = shc.linkage(np.transpose(np.clip(s[[x in sig_microbes for x in micro_comp_df.columns],:][:,[x in sig_metabolites for x in metab_comp_df.columns]]/sig_cutoff, -1,1)), method='complete') 746 | 747 | for i in range(2,20): 748 | metabolite_clusters = np.array(cut_tree(met_linkage_list, n_clusters=i)).reshape(-1) 749 | one_hot_matrix = np.zeros((len(sig_metabolites), i)) 750 | for m in range(len(metabolite_clusters)): 751 | one_hot_matrix[m, metabolite_clusters[m]] = 1 752 | met_connectivity_matrix = np.matmul(one_hot_matrix, np.transpose(one_hot_matrix)) 753 | met_connectivity_matrices[i] += met_connectivity_matrix 754 | 755 | fig = plt.figure(figsize=(8,4), dpi=300) 756 | plt.subplot(1,2,1) 757 | area_x = [] 758 | area_y = [] 759 | for i in range(2,20): 760 | consensus_matrix = met_connectivity_matrices[i]/(num_run_cv * num_run) 761 | n = consensus_matrix.shape[0] 762 | consensus_cdf_x = [] 763 | consensus_cdf_y = [] 764 | area_x.append(int(i)) 765 | 766 | prev_y = 0 767 | prev_x = 0 768 | area = 0 769 | for j in range(0,101): 770 | x = float(j)/100.0 771 | y = sum(sum(consensus_matrix <= x))/(n*(n-1)) 772 | consensus_cdf_x.append(x) 773 | consensus_cdf_y.append(y) 774 | area += (x-prev_x) * (y) 775 | prev_x = x 776 | area_y.append(area) 777 | 778 | plt.plot(consensus_cdf_x, consensus_cdf_y, label=str(i) + " Clusters") 779 | 780 | plt.xlabel("Consensus Index Value") 781 | plt.ylabel("CDF") 782 | plt.legend() 783 | 784 | dk = [] 785 | for a in range(len(area_x)): 786 | if area_x[a] == 2: 787 | dk.append(area_y[a]) 788 | else: 789 | dk.append((area_y[a] - area_y[a-1])/area_y[a-1]) 790 | 791 | plt.subplot(1,2,2) 792 | plt.plot(area_x, dk, marker='o') 793 | plt.xlabel("Number of Clusters") 794 | plt.ylabel("Relative Increase of Area under CDF") 795 | plt.axhline(0.02, linewidth=2, color='r') 796 | 797 | num_metabolite_clusters = np.max(np.array(area_x)[np.array(dk) > 0.02]) 798 | print("Using %d Metabolite Clusters" % num_metabolite_clusters) 799 | plt.savefig("results/" + out + "/Images/metabolite_cluster_consensus.png") 800 | 801 | 802 | ################################################### 803 | # Bicluster Interaction Matrix 804 | ################################################### 805 | 806 | microbe_tree = shc.linkage(binary_score_df.values, method='complete') 807 | metabolite_tree = shc.linkage(np.transpose(binary_score_df.values), method='complete') 808 | 809 | metabolite_clusters = np.array(cut_tree(metabolite_tree, n_clusters=num_metabolite_clusters)).reshape(-1) 810 | microbe_clusters = np.array(cut_tree(microbe_tree, n_clusters=num_microbiome_clusters)).reshape(-1) 811 | 812 | metab_col_scale = 1/(num_metabolite_clusters-1) 813 | micro_col_scale = 1/(num_microbiome_clusters-1) 814 | 815 | micro_colors = [(0.5,1-x*micro_col_scale,x*micro_col_scale) for x in microbe_clusters] 816 | metab_colors = [(1-x*metab_col_scale,0.5,x*metab_col_scale) for x in metabolite_clusters] 817 | 818 | sns.clustermap(binary_score_df, method="complete", row_colors = micro_colors, col_colors=metab_colors, row_linkage=microbe_tree, 819 | col_linkage=metabolite_tree, cmap = "coolwarm", figsize=(8,8), cbar_pos=(0.05, 0.88, 0.025, 0.10)) 820 | 821 | plt.savefig("results/" + out + "/Images/" + "/clustermap.png", dpi=300) 822 | 823 | reduced_score_df.to_csv("results/" + out + "/CV/" + "/interaction_score_matrix.csv") 824 | 825 | micro_cluster_matrix = np.zeros((reduced_score_df.values.shape[0], reduced_score_df.values.shape[0])) 826 | metab_cluster_matrix = np.zeros((reduced_score_df.values.shape[1], reduced_score_df.values.shape[1])) 827 | 828 | for m in range(0, len(microbe_clusters)): 829 | for n in range(m, len(microbe_clusters)): 830 | if microbe_clusters[m] == microbe_clusters[n]: 831 | micro_cluster_matrix[m,n] = 1 832 | micro_cluster_matrix[n,m] = 1 833 | 834 | for m in range(0, len(metabolite_clusters)): 835 | for n in range(m, len(metabolite_clusters)): 836 | if metabolite_clusters[m] == metabolite_clusters[n]: 837 | metab_cluster_matrix[m,n] = 1 838 | metab_cluster_matrix[n,m] = 1 839 | 840 | pd.DataFrame(data=micro_cluster_matrix, index=reduced_score_df.index, 841 | columns=reduced_score_df.index).to_csv("results/" + out + "/CV/microbe_cluster_matrix.csv") 842 | 843 | pd.DataFrame(data=metab_cluster_matrix, index=reduced_score_df.columns, 844 | columns=reduced_score_df.columns).to_csv("results/" + out + "/CV/metabolite_cluster_matrix.csv") 845 | 846 | metabolite_cluster_df = pd.DataFrame(data=metabolite_clusters, index=sig_metabolites, columns=["Cluster"]) 847 | microbe_cluster_df = pd.DataFrame(data=microbe_clusters, index=sig_microbes, columns=["Cluster"]) 848 | 849 | metabolite_cluster_df.to_csv("results/" + out + "/metabolite_clusters.csv") 850 | microbe_cluster_df.to_csv("results/" + out +"/microbe_clusters.csv") 851 | 852 | 853 | 854 | ################################################### 855 | # Determine Microbial Module Enrichment 856 | ################################################### 857 | 858 | if labels != None: 859 | try: 860 | labels_df=pd.read_csv(labels, index_col=0) 861 | label_set = np.unique(labels_df.values) 862 | g0 = samples[(labels_df.values==label_set[0]).reshape(-1)] 863 | g1 = samples[(labels_df.values==label_set[1]).reshape(-1)] 864 | 865 | micro_sub = micro_comp_df 866 | enriched_in = [] 867 | p_list = [] 868 | 869 | micro_comp_cluster_df = pd.DataFrame(index=samples) 870 | 871 | micro_sub = pd.DataFrame(index=micro_sub.index, columns=micro_sub.columns, 872 | data = micro_sub) 873 | 874 | 875 | for mc in range(num_microbiome_clusters): 876 | g0_cluster = micro_sub.loc[g0, microbe_cluster_df["Cluster"]==mc].mean(1).values 877 | g1_cluster = micro_sub.loc[g1, microbe_cluster_df["Cluster"]==mc].mean(1).values 878 | micro_comp_cluster_df["Module " + str(mc + 1)] = micro_sub.loc[:,microbe_cluster_df["Cluster"]==mc].mean(1).values 879 | p_value = mannwhitneyu(g0_cluster, g1_cluster)[1] 880 | p_list.append(p_value) 881 | if p_value < 0.05: 882 | p_value_one_sided = mannwhitneyu(g0_cluster, g1_cluster, alternative="greater")[1] 883 | if p_value_one_sided < 0.05: 884 | enriched_in.append(labels[0]) 885 | else: 886 | enriched_in.append(labels[1]) 887 | else: 888 | enriched_in.append("None") 889 | 890 | micro_cluster_enrichment_df = pd.DataFrame(index=["Microbial Module " + str(x+1) for x in range(num_microbiome_clusters)]) 891 | micro_cluster_enrichment_df["p-value"] = p_list 892 | micro_cluster_enrichment_df["Enriched"] = enriched_in 893 | micro_comp_cluster_df["Diagnosis"] = labels_df.values 894 | micro_cluster_enrichment_df.to_csv("results/" + out + "/microbiome_module_enrichment.csv") 895 | 896 | micro_box_df = pd.melt(micro_comp_cluster_df, id_vars= ["Diagnosis"], value_vars=micro_comp_cluster_df.columns[0:num_microbiome_clusters]) 897 | plt.figure(figsize=(8,8), dpi=300) 898 | sns.boxplot(data=micro_box_df, x="variable", y="value", hue="Diagnosis") 899 | plt.xlabel("Microbiome Module") 900 | plt.ylabel("Mean Module Abundance") 901 | plt.title("Microbiome Module by Label") 902 | plt.savefig("results/" + out + "/Images/micro_module_enrichment.png") 903 | 904 | 905 | ################################################### 906 | # Determine Microbial Module Enrichment 907 | ################################################### 908 | 909 | metab_sub = metab_comp_df 910 | enriched_in = [] 911 | p_list = [] 912 | 913 | metab_comp_cluster_df = pd.DataFrame(index=samples) 914 | metab_sub = pd.DataFrame(index=metab_sub.index, columns=metab_sub.columns, 915 | data = metab_sub) 916 | 917 | metab_sub = metab_sub[metabolite_cluster_df.index] 918 | 919 | 920 | for mc in range(num_metabolite_clusters): 921 | g0_cluster = metab_sub.loc[g0, metabolite_cluster_df["Cluster"]==mc].mean(1).values 922 | g1_cluster = metab_sub.loc[g1, metabolite_cluster_df["Cluster"]==mc].mean(1).values 923 | metab_comp_cluster_df["Module " + str(mc + 1)] = metab_sub.loc[:,metabolite_cluster_df["Cluster"]==mc].mean(1).values 924 | p_value = mannwhitneyu(g0_cluster, g1_cluster)[1] 925 | p_list.append(p_value) 926 | if p_value < 0.05: 927 | p_value_one_sided = mannwhitneyu(g0_cluster, g1_cluster, alternative="greater")[1] 928 | if p_value_one_sided < 0.05: 929 | enriched_in.append(labels[0]) 930 | else: 931 | enriched_in.append(labels[1]) 932 | else: 933 | enriched_in.append("None") 934 | 935 | 936 | metab_cluster_enrichment_df = pd.DataFrame(index=["Metabolite Module " + str(x+1) for x in range(num_metabolite_clusters)]) 937 | metab_cluster_enrichment_df["p-value"] = p_list 938 | metab_cluster_enrichment_df["Enriched"] = enriched_in 939 | metab_comp_cluster_df["Diagnosis"] = labels_df.values 940 | metab_cluster_enrichment_df.to_csv("results/" + out + "/metabolite_cluster_enrichment.csv") 941 | 942 | metab_box_df = pd.melt(metab_comp_cluster_df, id_vars= ["Diagnosis"], value_vars=metab_comp_cluster_df.columns[0:num_metabolite_clusters]) 943 | plt.figure(figsize=(8,8), dpi=300) 944 | sns.boxplot(data=metab_box_df, x="variable", y="value", hue="Diagnosis") 945 | plt.xlabel("Metabolite Module") 946 | plt.ylabel("Mean Module Abundance") 947 | plt.title("Metabolite Module by Label") 948 | plt.savefig("results/" + out + "/Images/metab_module_enrichment.png") 949 | except: 950 | print("Warning! Could not open label file and perform module enrichment!") 951 | 952 | ################################################### 953 | # Train Ensemble of Neural Networks on Full Dataset 954 | ################################################### 955 | 956 | # Set up output directory for training on full dataset 957 | dirName = 'results/' + out + '/Full' 958 | 959 | try: 960 | os.mkdir(dirName) 961 | except FileExistsError: 962 | pass 963 | 964 | microbe_cluster_matrix_list = [] 965 | metabolite_cluster_matrix_list = [] 966 | 967 | for run in range(0,num_run): 968 | 969 | # Set up output directory for training on full dataset 970 | dirName = 'results/' + out + '/Full/' + str(run) 971 | 972 | try: 973 | os.mkdir(dirName) 974 | except FileExistsError: 975 | pass 976 | 977 | train_micro = micro_comp_df 978 | train_metab = metab_comp_df 979 | 980 | # Log transform data if RA 981 | if micro_norm == "RA" or micro_norm == None: 982 | train_micro = np.log(train_micro + 1) 983 | 984 | if metab_norm == "RA" or metab_norm == None: 985 | train_metab = np.log(train_metab + 1) 986 | 987 | # Scale data before neural network training 988 | micro_scaler = StandardScaler().fit(train_micro) 989 | train_micro = micro_scaler.transform(train_micro) 990 | 991 | metab_scaler = StandardScaler().fit(train_metab) 992 | train_metab = metab_scaler.transform(train_metab) 993 | 994 | # Aggregate paired microbiome and metabolomic data 995 | train = (train_micro, train_metab) 996 | 997 | print("Run: %02d" % (run + 1), end="\r") 998 | 999 | # Construct Neural Network Model 1000 | model = MiMeNet(train_micro.shape[1], train_metab.shape[1], l1=l1, l2=l2, 1001 | num_layer=num_layer, layer_nodes=layer_nodes, dropout=dropout) 1002 | 1003 | #Train Neural Network Model 1004 | model.train(train) 1005 | 1006 | score_matrix_df = pd.DataFrame(data=model.get_scores(), index=micro_comp_df.columns, 1007 | columns=metab_comp_df.columns) 1008 | score_matrix_df.to_csv(dirName + "/score_matrix.csv") 1009 | 1010 | reduced_score_df = score_matrix_df.loc[sig_microbes,sig_metabolites] 1011 | 1012 | metabolite_tree = shc.linkage(np.transpose(np.clip(s[[x in sig_microbes for x in micro_comp_df.columns],:][:,[x in sig_metabolites for x in metab_comp_df.columns]]/sig_cutoff, -1,1)), method='complete') 1013 | 1014 | microbe_tree = shc.linkage(np.clip(s[[x in sig_microbes for x in micro_comp_df.columns],:][:,[x in sig_metabolites for x in metab_comp_df.columns]]/sig_cutoff, -1,1), method='complete') 1015 | 1016 | metabolite_clusters = np.array(cut_tree(metabolite_tree, n_clusters=num_metabolite_clusters)).reshape(-1) 1017 | microbe_clusters = np.array(cut_tree(microbe_tree, n_clusters=num_microbiome_clusters)).reshape(-1) 1018 | 1019 | metab_col_scale = 1/(num_metabolite_clusters-1) 1020 | micro_col_scale = 1/(num_microbiome_clusters-1) 1021 | 1022 | micro_colors = [(0.5,1-x*micro_col_scale,x*micro_col_scale) for x in microbe_clusters] 1023 | metab_colors = [(1-x*metab_col_scale,0.5,x*metab_col_scale) for x in metabolite_clusters] 1024 | 1025 | sns.clustermap(reduced_score_df, method="complete", row_colors = micro_colors, col_colors=metab_colors, 1026 | cmap = "coolwarm", figsize=(8,8), cbar_pos=(0.05, 0.88, 0.025, 0.10)) 1027 | plt.savefig(dirName + "/clustermap.png", dpi=300) 1028 | reduced_score_df.to_csv(dirName + "/interaction_score_matrix.csv") 1029 | 1030 | micro_cluster_matrix = np.zeros((reduced_score_df.values.shape[0], reduced_score_df.values.shape[0])) 1031 | metab_cluster_matrix = np.zeros((reduced_score_df.values.shape[1], reduced_score_df.values.shape[1])) 1032 | 1033 | for m in range(0, len(microbe_clusters)): 1034 | for n in range(m, len(microbe_clusters)): 1035 | if microbe_clusters[m] == microbe_clusters[n]: 1036 | micro_cluster_matrix[m,n] = 1 1037 | micro_cluster_matrix[n,m] = 1 1038 | 1039 | for m in range(0, len(metabolite_clusters)): 1040 | for n in range(m, len(metabolite_clusters)): 1041 | if metabolite_clusters[m] == metabolite_clusters[n]: 1042 | metab_cluster_matrix[m,n] = 1 1043 | metab_cluster_matrix[n,m] = 1 1044 | pd.DataFrame(data=micro_cluster_matrix, index=reduced_score_df.index, 1045 | columns=reduced_score_df.index).to_csv(dirName + "/microbe_cluster_matrix.csv") 1046 | 1047 | pd.DataFrame(data=metab_cluster_matrix, index=reduced_score_df.columns, 1048 | columns=reduced_score_df.columns).to_csv(dirName + "/metabolite_cluster_matrix.csv") 1049 | 1050 | microbe_cluster_matrix_list.append(micro_cluster_matrix) 1051 | metabolite_cluster_matrix_list.append(metab_cluster_matrix) 1052 | model.model.save(dirName + "/network_model.h5") 1053 | 1054 | model.destroy() 1055 | tf.keras.backend.clear_session() 1056 | 1057 | 1058 | consensus_list = [] 1059 | micro_cluster_matrix_df = pd.read_csv("results/" + out + "/CV/microbe_cluster_matrix.csv", index_col=0) 1060 | 1061 | for r in range(num_run): 1062 | run_micro_cluster_matrix_df = pd.read_csv("results/" + out + "/Full/" + str(r) + "/microbe_cluster_matrix.csv", index_col=0) 1063 | hits = np.sum(micro_cluster_matrix_df.values == run_micro_cluster_matrix_df.values) 1064 | total = micro_cluster_matrix_df.values.shape[0] * micro_cluster_matrix_df.values.shape[1] 1065 | consensus_list.append(hits/total) 1066 | 1067 | print("Selecting Full Model %d with consensus %.2f" % (np.argmax(consensus_list), np.max(consensus_list))) 1068 | 1069 | final_model = tf.keras.models.load_model("results/" + out + "/Full/" + str(np.argmax(consensus_list)) + "/network_model.h5") 1070 | final_model.save("results/" + out + "/final_network_model.h5") 1071 | 1072 | if external_micro != None: 1073 | test_micro = external_micro_comp_df 1074 | 1075 | if micro_norm == "RA" or micro_norm == None: 1076 | test_micro = np.log(test_micro + 1) 1077 | 1078 | test_micro = micro_scaler.transform(test_micro) 1079 | pred = final_model.predict(test_micro) 1080 | inv_pred = metab_scaler.inverse_transform(pred) 1081 | if metab_norm == "RA" or metab_norm == None: 1082 | inv_pred = np.exp(inv_pred) - 1 1083 | inv_pred = inv_pred/np.sum(inv_pred) 1084 | 1085 | external_pred_df = pd.DataFrame(data = inv_pred, index=external_samples, columns=metab_comp_df.columns) 1086 | external_pred_df.to_csv("results/" + out + "/external_predictions.csv") 1087 | 1088 | if external_metab != None: 1089 | external_corr = external_metab_comp_df.corrwith(external_pred_df, method="spearman") 1090 | print("External mean correlation %.2f" % (np.mean(external_corr))) 1091 | print("%d of %d metabolites are significantly correlated in external evaluation" % (sum(external_corr.values > cutoff_rho), 1092 | len(correlation_cv_df.values))) 1093 | 1094 | external_sig_metabolites = annotated_metabolites[external_corr.loc[annotated_metabolites].values > cutoff_rho] 1095 | 1096 | print("%d of %d annotated metabolites are significantly correlated in the external evaluation" % (len(external_sig_metabolites), 1097 | len(annotated_metabolites))) 1098 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## MiMeNet: Exploring Microbiome-Metabolome Relationships using Neural Networks 2 | MiMeNet predicts the metabolomic profile from microbiome data and learns undelrying relationships between the two. 3 | 4 | ### Prerequisites 5 | * MiMeNet is tested to work on Python 3.7+ 6 | * MiMeNet requires the following Python libraries: 7 | - Tensorflow 1.14 8 | - Numpy 1.17.2 9 | - Pandas 0.25.1 10 | - Scipy 1.3.1 11 | - Scikit-learn 0.21.3 12 | - Scikit-bio 0.5.2 13 | - Matplotlib 3.0.3 14 | - Seaborn 0.9.0 15 | 16 | 17 | ### Usage 18 | 19 | ```bash 20 | usage: MiMeNet_train.py [-h] -micro MICRO -metab METAB 21 | [-external_micro EXTERNAL_MICRO] 22 | [-external_metab EXTERNAL_METAB] 23 | [-annotation ANNOTATION] [-labels LABELS] -output 24 | OUTPUT [-net_params NET_PARAMS] 25 | [-background BACKGROUND] 26 | [-num_background NUM_BACKGROUND] 27 | [-micro_norm MICRO_NORM] [-metab_norm METAB_NORM] 28 | [-threshold THRESHOLD] [-num_run_cv NUM_RUN_CV] 29 | [-num_cv NUM_CV] [-num_run NUM_RUN] 30 | 31 | ``` 32 | 33 | ``` 34 | -h, --help Show this help message and exit 35 | -micro MICRO Comma delimited file representing matrix of samples by microbial features 36 | -metab METAB Comma delimited file representing matrix of samples by metabolomic features 37 | -external_micro EXTERNAL_MICRO Comma delimited file representing matrix of samples by microbial features 38 | -external_metab EXTERNAL_METAB Comma delimited file representing matrix of samples by metabolomic features 39 | -annotation ANNOTATION Comma delimited file annotating subset of metabolite features 40 | -labels LABELS Comma delimited file for sample labels to associate clusters with 41 | -output OUTPUT Output directory 42 | -net_params NET_PARAMS JSON file of network hyperparameters 43 | -background BACKGROUND Directory with previously generated background 44 | -num_background NUM_BACKGROUND Number of background CV Iterations 45 | -micro_norm MICRO_NORM Microbiome normalization (RA, CLR, or None) 46 | -metab_norm METAB_NORM Metabolome normalization (RA, CLR, or None) 47 | -threshold THRESHOLD Define significant correlation threshold 48 | -num_run_cv NUM_RUN_CV Number of iterations for cross-validation 49 | -num_cv NUM_CV Number of cross-validated folds 50 | ``` 51 | |Parameter|Description 52 | |---|---| 53 | |micro| CSV file of microbial count values| 54 | |metab| CSV file of metabolite count values| 55 | |external_micro| CSV file of microbial count values for external test set| 56 | |external_metab| CSV file of metabolite count values for external test set| 57 | |annotation| CSV file of metabolite annotations| 58 | |lables| CSV file of sample labels used for module enrichment| 59 | |output| Directory to store output of MiMeNet run| 60 | |net_params| JSON file containing neural network number of layers, layer size, L2 penalty, and dropout rate| 61 | |background| Directory with previously run background results| 62 | |num_background| Integer for number of iterations of 10-fold cross-validation to run on shuffled data in order to generate empirical background (Recommend at least 10)| 63 | |micro_norm| Transform the microbial features into relative abundance (RA) or center log-ratio (CLR). If the data is already transformed, apply 'None' to skip transformation.| 64 | |micro_norm| Transform the metabolomic features into relative abundance (RA) or center log-ratio (CLR). If the data is already transformed, apply 'None' to skip transformation.| 65 | |threshold| Set predefined correlation cutoff for determining well-predicted metabolites.| 66 | |num_run_cv| Parameter to specify how many iterations of cross-validated evaluation to perform.| 67 | |num_cv| Number of partitions to divide the data into during cross-validation (Recommend at least 5).| 68 | 69 | ### Example for provided dataset 70 | 71 | ```bash 72 | python MiMeNet_train.py -micro data/IBD/microbiome_PRISM.csv -metab data/IBD/metabolome_PRISM.csv \ 73 | -external_micro data/IBD/microbiome_external.csv -external_metab data/IBD/metabolome_external.csv \ 74 | -micro_norm None -metab_norm CLR -net_params results/IBD/network_parameters.txt \ 75 | -annotation data/IBD/metabolome_annotation.csv -labels data/IBD/diagnosis_PRISM.csv \ 76 | -num_run_cv 10 -output IBD 77 | ``` 78 | 79 | The provided command will run MiMeNet on the IBD dataset and store results in the directory _results/output_dir_. 80 | 81 | ### Version 82 | 1.0.0 (2020/07/28) 83 | 84 | ### Publication 85 | TBA 86 | 87 | ### MiMeNet Workflow 88 | 89 | #### Data Preprocessing 90 | MiMeNet will perform a compositional transformation to relative abundance or centered log-ratio and filter low abundant microbial and metabolite features. 91 | 92 | #### Cross-Validated Evaluation 93 | MiMeNet uses microbial features to predict metabolite output features. To do so, neural network hyper-parameters are first tuned. Then models are evaluated in a cross-validated fashion resulting in Spearman correlation coefficients (SCC) for each metabolite representing how well they could be predicted. 94 | 95 | #### Identifying Well-Predicted Metabolties 96 | MiMeNet generates a background of SCC values using a similar approach as in _Cross-Validated Evaluation_. However, to generate the background distribution of SCCs, the samples are randomly shuffled for each cross-validated iteration. MiMeNet will then take any metabolite with a SCC evaluation value above the 95th percentile to be well-predicted. 97 | 98 | #### Constructing Microbe and Metabolite Modules 99 | Using the set of models trained during the _Cross-Validated Evaluation_, MiMeNet constructs a microbe-metabolite interaction-score matrix. This interaction score matrix is biclustered into microbe and metabolite modules, grouping sets of microbes and metabolites with similar interaction patterns. These groupings may help illuminate the functions and structure of unannotated metabolites based on annotated members of the module. 100 | 101 | ### Contact 102 | * Please contact Derek Reiman or Yand Dai for any questions or comments. 103 | 104 | ### License 105 | Software provided to academic users under MIT License 106 | -------------------------------------------------------------------------------- /data/IBD/diagnosis_PRISM.csv: -------------------------------------------------------------------------------- 1 | ,0 2 | PRISM|7122,IBD 3 | PRISM|7147,IBD 4 | PRISM|7150,IBD 5 | PRISM|7153,IBD 6 | PRISM|7184,IBD 7 | PRISM|7238,IBD 8 | PRISM|7406,IBD 9 | PRISM|7408,IBD 10 | PRISM|7421,IBD 11 | PRISM|7445,IBD 12 | PRISM|7486,IBD 13 | PRISM|7496,IBD 14 | PRISM|7506,IBD 15 | PRISM|7547,IBD 16 | PRISM|7658,IBD 17 | PRISM|7662,Healthy 18 | PRISM|7744,IBD 19 | PRISM|7759,IBD 20 | PRISM|7762,IBD 21 | PRISM|7776,IBD 22 | PRISM|7791,IBD 23 | PRISM|7843,IBD 24 | PRISM|7847,Healthy 25 | PRISM|7852,IBD 26 | PRISM|7855,Healthy 27 | PRISM|7858,Healthy 28 | PRISM|7860,Healthy 29 | PRISM|7861,Healthy 30 | PRISM|7862,Healthy 31 | PRISM|7870,Healthy 32 | PRISM|7874,Healthy 33 | PRISM|7875,IBD 34 | PRISM|7879,Healthy 35 | PRISM|7897,IBD 36 | PRISM|7899,Healthy 37 | PRISM|7904,Healthy 38 | PRISM|7906,Healthy 39 | PRISM|7908,Healthy 40 | PRISM|7909,Healthy 41 | PRISM|7910,Healthy 42 | PRISM|7911,Healthy 43 | PRISM|7912,Healthy 44 | PRISM|7938,IBD 45 | PRISM|7941,IBD 46 | PRISM|7947,IBD 47 | PRISM|7948,IBD 48 | PRISM|7955,Healthy 49 | PRISM|7971,IBD 50 | PRISM|7989,IBD 51 | PRISM|8095,IBD 52 | PRISM|8096,IBD 53 | PRISM|8101,IBD 54 | PRISM|8106,IBD 55 | PRISM|8129,IBD 56 | PRISM|8226,IBD 57 | PRISM|8244,Healthy 58 | PRISM|8264,IBD 59 | PRISM|8275,IBD 60 | PRISM|8283,Healthy 61 | PRISM|8332,Healthy 62 | PRISM|8336,IBD 63 | PRISM|8361,IBD 64 | PRISM|8374,IBD 65 | PRISM|8377,IBD 66 | PRISM|8406,IBD 67 | PRISM|8441,IBD 68 | PRISM|8444,IBD 69 | PRISM|8447,IBD 70 | PRISM|8452,IBD 71 | PRISM|8458,IBD 72 | PRISM|8462,IBD 73 | PRISM|8464,IBD 74 | PRISM|8466,IBD 75 | PRISM|8467,IBD 76 | PRISM|8475,IBD 77 | PRISM|8480,IBD 78 | PRISM|8483,IBD 79 | PRISM|8485,IBD 80 | PRISM|8496,IBD 81 | PRISM|8502,IBD 82 | PRISM|8503,IBD 83 | PRISM|8511,IBD 84 | PRISM|8513,IBD 85 | PRISM|8515,IBD 86 | PRISM|8523,IBD 87 | PRISM|8534,IBD 88 | PRISM|8537,IBD 89 | PRISM|8550,IBD 90 | PRISM|8564,IBD 91 | PRISM|8565,IBD 92 | PRISM|8573,IBD 93 | PRISM|8577,IBD 94 | PRISM|8589,Healthy 95 | PRISM|8591,IBD 96 | PRISM|8592,IBD 97 | PRISM|8605,IBD 98 | PRISM|8624,IBD 99 | PRISM|8628,IBD 100 | PRISM|8629,IBD 101 | PRISM|8667,IBD 102 | PRISM|8675,IBD 103 | PRISM|8683,Healthy 104 | PRISM|8692,IBD 105 | PRISM|8696,IBD 106 | PRISM|8728,IBD 107 | PRISM|8734,IBD 108 | PRISM|8735,IBD 109 | PRISM|8746,IBD 110 | PRISM|8749,IBD 111 | PRISM|8753,IBD 112 | PRISM|8754,Healthy 113 | PRISM|8758,IBD 114 | PRISM|8764,Healthy 115 | PRISM|8765,Healthy 116 | PRISM|8774,Healthy 117 | PRISM|8776,Healthy 118 | PRISM|8778,IBD 119 | PRISM|8783,IBD 120 | PRISM|8784,Healthy 121 | PRISM|8785,IBD 122 | PRISM|8788,Healthy 123 | PRISM|8789,Healthy 124 | PRISM|8794,IBD 125 | PRISM|8795,IBD 126 | PRISM|8800,IBD 127 | PRISM|8802,IBD 128 | PRISM|8803,IBD 129 | PRISM|8805,IBD 130 | PRISM|8806,IBD 131 | PRISM|8807,IBD 132 | PRISM|8809,IBD 133 | PRISM|8815,IBD 134 | PRISM|8841,IBD 135 | PRISM|8843,IBD 136 | PRISM|8844,IBD 137 | PRISM|8846,IBD 138 | PRISM|8847,IBD 139 | PRISM|8849,IBD 140 | PRISM|8878,IBD 141 | PRISM|8882,IBD 142 | PRISM|8892,IBD 143 | PRISM|8894,IBD 144 | PRISM|8898,IBD 145 | PRISM|8924,IBD 146 | PRISM|8932,IBD 147 | PRISM|8982,IBD 148 | PRISM|8998,IBD 149 | PRISM|9010,IBD 150 | PRISM|9018,IBD 151 | PRISM|9030,IBD 152 | PRISM|9033,IBD 153 | PRISM|9074,IBD 154 | PRISM|9079,IBD 155 | PRISM|9126,Healthy 156 | PRISM|9148,Healthy 157 | -------------------------------------------------------------------------------- /data/IBD/external_diagnosis.csv: -------------------------------------------------------------------------------- 1 | ,Diagnosis 2 | Validation|LLDeep_0001,Control 3 | Validation|LLDeep_0003,Control 4 | Validation|LLDeep_0010,Control 5 | Validation|LLDeep_0011,Control 6 | Validation|LLDeep_0012,Control 7 | Validation|LLDeep_0015,Control 8 | Validation|LLDeep_0018,Control 9 | Validation|LLDeep_0021,Control 10 | Validation|LLDeep_0022,Control 11 | Validation|LLDeep_0024,Control 12 | Validation|LLDeep_0026,Control 13 | Validation|LLDeep_0027,Control 14 | Validation|LLDeep_0028,Control 15 | Validation|LLDeep_0029,Control 16 | Validation|LLDeep_0030,Control 17 | Validation|LLDeep_0033,Control 18 | Validation|LLDeep_0034,Control 19 | Validation|LLDeep_0037,Control 20 | Validation|LLDeep_0039,Control 21 | Validation|LLDeep_0043,Control 22 | Validation|LLDeep_0047,Control 23 | Validation|LLDeep_0052,Control 24 | Validation|UMCGIBD00072,CD 25 | Validation|UMCGIBD00122,UC 26 | Validation|UMCGIBD00030,CD 27 | Validation|UMCGIBD00167,UC 28 | Validation|UMCGIBD00208,UC 29 | Validation|UMCGIBD00032,CD 30 | Validation|UMCGIBD00529,UC 31 | Validation|UMCGIBD00371,UC 32 | Validation|UMCGIBD00145,CD 33 | Validation|UMCGIBD00613,UC 34 | Validation|UMCGIBD00004,UC 35 | Validation|UMCGIBD00053,UC 36 | Validation|UMCGIBD00269,UC 37 | Validation|UMCGIBD00250,UC 38 | Validation|UMCGIBD00327,UC 39 | Validation|UMCGIBD00249,UC 40 | Validation|UMCGIBD00461,UC 41 | Validation|UMCGIBD00266,UC 42 | Validation|UMCGIBD00347,UC 43 | Validation|UMCGIBD00645,UC 44 | Validation|UMCGIBD00361,UC 45 | Validation|UMCGIBD00485,CD 46 | Validation|UMCGIBD00041,CD 47 | Validation|UMCGIBD00126,CD 48 | Validation|UMCGIBD00082,CD 49 | Validation|UMCGIBD00442,CD 50 | Validation|UMCGIBD00412,UC 51 | Validation|UMCGIBD00539,UC 52 | Validation|UMCGIBD00077,CD 53 | Validation|UMCGIBD00141,CD 54 | Validation|UMCGIBD00389,UC 55 | Validation|UMCGIBD00112,CD 56 | Validation|UMCGIBD00508,CD 57 | Validation|UMCGIBD00588,UC 58 | Validation|UMCGIBD00106,CD 59 | Validation|UMCGIBD00393,UC 60 | Validation|UMCGIBD00458,CD 61 | Validation|UMCGIBD00254,CD 62 | Validation|UMCGIBD00593,UC 63 | Validation|UMCGIBD00233,CD 64 | Validation|UMCGIBD00238,CD 65 | Validation|UMCGIBD00027,CD 66 | Validation|UMCGIBD00064,CD 67 | -------------------------------------------------------------------------------- /data/IBD/metabolome_annotation.csv: -------------------------------------------------------------------------------- 1 | Metabolomic Feature,Retention Time,m/z,Compound Name,Adduct 2 | HILIC-neg_Cluster_0622,3.809685,229.09797400000002,"1,2,3,4-tetrahydro-1-methyl-beta-carboline-3-carboxylic acid",[M-H]- 3 | C18-neg_Cluster_0183,1.2827389999999999,259.072196,"1,2,3,4-tetrahydro-b-carboline-1,3-dicarboxylic acid",[M-H]- 4 | C18-neg_Cluster_0393,10.162391,313.238314,12.13-diHOME,[M-H]- 5 | HILIC-neg_Cluster_0480,3.83278,209.06788500000002,1-3-7-trimethylurate,[M-H]- 6 | C18-neg_Cluster_0530,16.986972,337.31086899999997,13-docosenoate,[M-H]- 7 | HILIC-pos_Cluster_0245,5.196976,166.071783,1-methylguanine,[M+H]+ 8 | HILIC-pos_Cluster_0110,8.138233999999999,137.070572,1-methylnicotinamide,[M+H]+ 9 | HILIC-neg_Cluster_0032,3.037586,102.056011,2-aminobutyric acid,[M-H]- 10 | HILIC-pos_Cluster_0728,5.144115,252.108028,2-deoxyadenosine,[M+H]+ 11 | HILIC-neg_Cluster_0113,3.663407,131.071198,2-hydroxy-3-methylpentanoic acid / leucinic acid,[M-H]- 12 | HILIC-neg_Cluster_0169,7.205253999999999,147.029673,2-hydroxyglutarate,[M-H]- 13 | C18-neg_Cluster_0219,13.929959,271.228079,2-hydroxyhexadecanoate,[M-H]- 14 | C18-neg_Cluster_0144,12.518107,243.196061,2-hydroxymyristic acid,[M-H]- 15 | HILIC-pos_Cluster_0114,6.2207230000000004,138.090932,2-hydroxyphenethylamine,[M+H]+ 16 | HILIC-neg_Cluster_0161,7.166747,145.050329,2-methylglutaric acid,[M-H]- 17 | HILIC-neg_Cluster_0220,7.313638,159.06598200000002,3-methyladipate-pimelate,[M-H]- 18 | HILIC-pos_Cluster_0272,9.833021,170.09178300000002,3-methylhistidine,[M+H]+ 19 | HILIC-pos_Cluster_0254,3.2796019999999997,167.055805,3-methylxanthine,[M+H]+ 20 | HILIC-pos_Cluster_0150,7.207806,146.091958,4-guanidinobutanoic acid,[M+H]+ 21 | HILIC-pos_Cluster_0177,1.6957669999999998,151.074856,4-hydroxy-3-methylacetophenone,[M+H]+ 22 | HILIC-neg_Cluster_0079,2.527884,121.029504,4-hydroxybenzaldehyde,[M-H]- 23 | C18-neg_Cluster_0004,2.554039,119.048864,4-hydroxystyrene,[M-H]- 24 | HILIC-neg_Cluster_0084,1.366308,123.045022,4-methylcatechol,[M-H]- 25 | HILIC-neg_Cluster_0133,4.081432,138.019547,4-nitrophenol,[M-H]- 26 | HILIC-neg_Cluster_0335,3.8405449999999997,182.04589199999998,4-pyridoxate,[M-H]- 27 | HILIC-pos_Cluster_0422,5.216495,199.081977,5-acetylamino-6-amino-3-methyluracil,[M+H]+ 28 | HILIC-pos_Cluster_1370,1.6997790000000002,371.365793,5alpha-cholestanol,[M-H2O+H]+ 29 | C8-pos_Cluster_0100,4.059965,269.24751299999997,7-hexadecenoic acid methyl ester,[M+H]+ 30 | C18-neg_Cluster_0901,8.598227,405.26444100000003,7-ketodeoxycholate,[M-H]- 31 | HILIC-pos_Cluster_0246,5.691902,166.071809,7-methylguanine,[M+H]+ 32 | HILIC-pos_Cluster_0914,5.249251999999999,284.098026,8-hydroxy-deoxyguanosine,[M+H]+ 33 | C18-neg_Cluster_0394,10.358848,313.238464,9.10-diHOME,[M-H]- 34 | C18-neg_Cluster_0025,1.024814,161.985411,acesulfame,[M-H]- 35 | HILIC-neg_Cluster_0232,3.482412,161.986314,acesulfame,[M-H]- 36 | HILIC-neg_Cluster_0103,3.9199599999999997,130.05083,acetylalanine,[M-H]- 37 | HILIC-pos_Cluster_0152,7.671378999999999,146.11699199999998,acetylcholine,[M+H]+ 38 | C18-neg_Cluster_0090,1.126767,222.076542,acetytyrosine,[M+H]+ 39 | HILIC-neg_Cluster_0120,2.271317,134.04717,adenine,[M-H]- 40 | HILIC-pos_Cluster_0447,9.686666,203.149698,ADMA,[M+H]+ 41 | HILIC-pos_Cluster_0446,9.579272,203.149549,ADMA/SDMA*,[M+H]+ 42 | C18-neg_Cluster_0506,15.061144,331.264136,adrenic acid,[M-H]- 43 | HILIC-pos_Cluster_0008,7.798448,90.055267,alanine,[M+H]+ 44 | HILIC-neg_Cluster_0015,3.3004300000000004,88.040286,alanine,[M-H]- 45 | HILIC-neg_Cluster_0034,3.866533,103.039899,alpha-hydroxybutyrate,[M-H]- 46 | HILIC-neg_Cluster_0159,7.756236,145.01408700000002,alpha-ketoglutarate,[M-H]- 47 | HILIC-neg_Cluster_0062,3.52175,115.03992099999999,alpha-ketoisovalerate,[M-H]- 48 | C18-neg_Cluster_0244,13.755078,277.217171,alpha-linolenic acid,[M-H]- 49 | C18-neg_Cluster_0927,8.117757000000001,407.279768,alpha-muricholate,[M-H]- 50 | HILIC-pos_Cluster_0667,10.469161999999999,241.128533,anserine,[M+H]+ 51 | C18-neg_Cluster_0354,14.312957999999998,303.23290099999997,arachidonic acid,[M-H]- 52 | C18-neg_Cluster_1620,14.313547,507.19415499999997,arachidonic acid,[Unknown]- 53 | C18-neg_Cluster_1941,14.312981,575.182128,arachidonic acid,[Unknown]- 54 | C18-neg_Cluster_0709,14.313254999999998,371.220378,arachidonic acid,[Unknown]- 55 | C18-neg_Cluster_1131,14.313544,439.20776100000006,arachidonic acid,[Unknown]- 56 | HILIC-pos_Cluster_0295,9.13588,175.118517,arginine,[M+H]+ 57 | HILIC-neg_Cluster_0290,4.262824,173.104141,arginine,[M-H]- 58 | HILIC-neg_Cluster_0299,9.502578999999999,175.024517,ascorbate,[M-H]- 59 | HILIC-pos_Cluster_0099,7.9256,133.06038999999998,asparagine,[M+H]+ 60 | HILIC-neg_Cluster_0112,3.9620599999999997,131.046065,asparagine,[M-H]- 61 | HILIC-neg_Cluster_0117,5.346335,132.030197,aspartate,[M-H]- 62 | HILIC-pos_Cluster_0817,6.740239999999999,267.16906800000004,atenolol,[M+H]+ 63 | HILIC-neg_Cluster_0365,7.129824,187.097181,azelaic acid,[M-H]- 64 | C18-neg_Cluster_0045,4.477811,187.09651200000002,azelate,[M-H]- 65 | HILIC-pos_Cluster_0009,7.961105,90.055235,beta-alanine,[M+H]+ 66 | HILIC-pos_Cluster_0048,8.945122999999999,118.08599199999999,betaine,[M+H]+ 67 | C8-pos_Cluster_0515,7.722481,397.383243,beta-sitosterol,[M-H2O+H]+ 68 | HILIC-pos_Cluster_2052,1.642753,585.2676240000001,bilirubin,[M+H]+ 69 | HILIC-neg_Cluster_0013,3.914183,87.045064,butyrate / isobutytare*,[M-H]- 70 | HILIC-pos_Cluster_0151,8.675049000000001,146.116967,butyrobetaine,[M+H]+ 71 | HILIC-pos_Cluster_1374,6.681222,372.309038,C14 carnitine,[M+H]+ 72 | C8-pos_Cluster_1303,11.552452,619.542184,C14:0 CE,[M+Na]+ 73 | C8-pos_Cluster_1521,7.525761,675.54142,C14:0 SM,[M+H]+ 74 | HILIC-pos_Cluster_1486,6.561967,400.34031,C16 carnitine,[M+H]+ 75 | C8-pos_Cluster_1395,11.973232000000001,647.573818,C16:0 CE,[M+Na]+ 76 | C8-pos_Cluster_1375,11.968649000000001,642.618861,C16:0 CE,[M+NH4]+ 77 | C8-pos_Cluster_1004,8.197254,538.519883,C16:0 ceramide (d18:1),[M+H]+ 78 | C8-pos_Cluster_0878,4.767281,496.339905,C16:0 LPC,[M+H]+ 79 | HILIC-pos_Cluster_1684,6.263367,454.29096699999997,C16:0 LPE,[M+H]+ 80 | C8-pos_Cluster_1657,8.053828999999999,703.5748150000001,C16:0 SM,[M+H]+ 81 | HILIC-pos_Cluster_2293,7.126086999999999,703.5714690000001,C16:0 SM,[M+H]+ 82 | C8-pos_Cluster_1369,11.625544,640.602783,C16:1 CE,[M+NH4]+ 83 | C8-pos_Cluster_1386,11.627639,645.557757,C16:1 CE*,[M+Na]+ 84 | HILIC-pos_Cluster_1773,7.530619000000001,480.342826,C16:1 LPC plasmalogen*,[M+H]+ 85 | C8-pos_Cluster_0354,4.9595970000000005,351.250395,C16:1 MAG,[M+Na]+ 86 | C8-pos_Cluster_0313,4.840698000000001,339.250073,C16:1 MAG*, 87 | C8-pos_Cluster_1647,7.695674,701.5567570000001,C16:1 SM,[M+Na]+ 88 | HILIC-pos_Cluster_1593,6.455731,428.37169000000006,C18 carnitine,[M+H]+ 89 | C8-pos_Cluster_1525,12.387281,675.604039,C18:0 CE,[M+Na]+ 90 | C8-pos_Cluster_1502,12.372106,670.650143,C18:0 CE,[M+NH4]+ 91 | C8-pos_Cluster_0949,5.303413,524.3711519999999,C18:0 LPC,[M+H]+ 92 | HILIC-pos_Cluster_1899,7.570428999999999,524.369027,C18:0 LPC,[M+H]+ 93 | C8-pos_Cluster_0467,5.72305,381.296567,C18:0 MAG,[M+Na]+ 94 | C8-pos_Cluster_0446,5.71969,376.340419,C18:0 MAG,[M+NH4]+ 95 | C8-pos_Cluster_1758,8.557205,731.606607,C18:0 SM,[M+H]+ 96 | C8-pos_Cluster_0338,6.184319,345.336485,C18:0e MAG,[M+H]+ 97 | C8-pos_Cluster_0410,6.190883,367.31844900000004,C18:0e MAG,[M+Na]+ 98 | HILIC-pos_Cluster_1586,6.477161,426.35587599999997,C18:1 carnitine,[M+H]+ 99 | C8-pos_Cluster_1490,12.043032,668.634054,C18:1 CE,[M+NH4]+ 100 | C8-pos_Cluster_1514,12.049957000000001,673.5894400000001,C18:1 CE ,[M+Na]+ 101 | C8-pos_Cluster_0945,4.938243,522.355717,C18:1 LPC,[M+H]+ 102 | HILIC-pos_Cluster_1855,7.738521,508.37403499999994,C18:1 LPC plasmalogen*,[M+H]+ 103 | HILIC-pos_Cluster_1893,7.615695,522.3534,C18:1 LPC*,[M+H]+ 104 | HILIC-pos_Cluster_1580,6.524092,424.340387,C18:2 carnitine,[M+H]+ 105 | C8-pos_Cluster_1478,11.716127,666.618408,C18:2 CE,[M+NH4]+ 106 | C8-pos_Cluster_1504,11.726673,671.573482,C18:2 CE*,[M+Na]+ 107 | C8-pos_Cluster_0939,4.600409,520.3404059999999,C18:2 LPC,[M+H]+ 108 | C8-pos_Cluster_1468,11.45202,664.6020570000001,C18:3 CE,[M+NH4]+ 109 | C8-pos_Cluster_1494,11.453383,669.558808,C18:3 CE*,[M+Na]+ 110 | C8-pos_Cluster_0936,4.766593,518.321945,C18:3 LPC,[M+H]+ 111 | HILIC-pos_Cluster_0453,8.585624000000001,204.12232,C2 carnitine,[M+H]+ 112 | HILIC-pos_Cluster_1691,6.358002,456.40278099999995,C20 carnitine,[M+H]+ 113 | C8-pos_Cluster_0915,5.028875,510.35600300000004,C20:0 LPE,[M+H]+ 114 | C8-pos_Cluster_1610,11.82771,692.632743,C20:3 CE,[M+NH4]+ 115 | C8-pos_Cluster_1635,11.837011,697.588338,C20:3 CE*,[M+Na]+ 116 | HILIC-pos_Cluster_1673,6.219689,448.340197,C20:4 carnitine,[M+Na]+ 117 | C8-pos_Cluster_1623,11.573799000000001,695.573841,C20:4 CE,[M+Na]+ 118 | C8-pos_Cluster_1597,11.569904,690.618702,C20:4 CE,[M+NH4]+ 119 | C8-pos_Cluster_1614,11.316771000000001,693.560861,C20:5 CE,[M+Na]+ 120 | C8-pos_Cluster_1012,4.607839,542.3217490000001,C20:5 LPC,[M+Na]+ 121 | C8-pos_Cluster_1888,9.45803,787.6696559999999,C22:0 SM,[M+H]+ 122 | C8-pos_Cluster_0678,6.778841000000001,435.344659,C22:1 MAG,[M+Na]+ 123 | C8-pos_Cluster_1884,9.157656,785.653145,C22:1 SM,[M+H]+ 124 | C8-pos_Cluster_1722,11.949042,718.649241,C22:4 CE,[M+NH4]+ 125 | C8-pos_Cluster_1742,11.950582,723.6056990000001,C22:4 CE*,[M+Na]+ 126 | C8-pos_Cluster_1712,11.672278,716.636644,C22:5 CE,[M+Na]+ 127 | C8-pos_Cluster_1736,11.681478,721.593876,C22:5 CE*,[M+Na]+ 128 | C8-pos_Cluster_1726,11.439325,719.5746280000001,C22:6 CE,[M+Na]+ 129 | C8-pos_Cluster_1970,9.8734,815.697986,C24:0 SM,[M+H]+ 130 | C8-pos_Cluster_0868,6.457357,493.359345,C24:0 TAG,[M+Na]+ 131 | C8-pos_Cluster_1965,9.494136,813.684583,C24:1 SM,[M+H]+ 132 | C8-pos_Cluster_2019,9.493713,835.6663179999999,C24:1 SM ,[M+Na]+ 133 | C8-pos_Cluster_1070,8.556091,563.467383,C30:0 DAG,[M+Na]+ 134 | C8-pos_Cluster_1186,9.032395,591.495675,C32:0 DAG,[M+Na]+ 135 | C8-pos_Cluster_1761,8.182908,732.555334,C32:1 PC,[M+H]+ 136 | C8-pos_Cluster_1146,8.383768,582.512028,C32:2 DAG*,[M+NH4]+ 137 | C8-pos_Cluster_1302,9.451524000000001,619.526096,C34:0 DAG*,[M+Na]+ 138 | C8-pos_Cluster_1727,8.234821,720.552435,C34:0 PE,[M+H]+ 139 | C8-pos_Cluster_1277,9.166925,612.556705,C34:1 DAG*,[M+NH4]+ 140 | C8-pos_Cluster_1821,8.644594,760.585077,C34:1 PC,[M+H]+ 141 | C8-pos_Cluster_1800,8.937513000000001,746.606622,C34:1 PC plasmalogen-A,[M+H]+ 142 | C8-pos_Cluster_1291,8.857822,615.4963280000001,C34:2 DAG,[M+Na]+ 143 | C8-pos_Cluster_1271,8.857536,610.541065,C34:2 DAG*,[M+NH4]+ 144 | C8-pos_Cluster_1817,8.33618,758.5690559999999,C34:2 PC,[M+H]+ 145 | C8-pos_Cluster_1282,8.566257,613.481674,C34:3 DAG,[M+Na]+ 146 | C8-pos_Cluster_1262,8.565138000000001,608.522785,C34:3 DAG*,[M+NH4]+ 147 | C8-pos_Cluster_1393,9.841556,647.558665,C36:0 DAG,[M+Na]+ 148 | C8-pos_Cluster_1889,9.080408,788.615447,C36:1 PC,[M+H]+ 149 | C8-pos_Cluster_1377,9.289662,643.529436,C36:2 DAG,[M+Na]+ 150 | C8-pos_Cluster_1364,9.289324,638.572444,C36:2 DAG*,[M+NH4]+ 151 | C8-pos_Cluster_1886,8.799074000000001,786.5998950000001,C36:2 PC,[M+H]+ 152 | C8-pos_Cluster_1856,9.078802,772.622539,C36:2 PC plasmalogen,[M+H]+ 153 | HILIC-pos_Cluster_2372,6.4917110000000005,786.59628,C36:2 PC*,[M+H]+ 154 | C8-pos_Cluster_1373,8.991042,641.512618,C36:3 DAG,[M+Na]+ 155 | C8-pos_Cluster_1358,8.989347,636.558642,C36:3 DAG*,[M+NH4]+ 156 | C8-pos_Cluster_1879,8.497757,784.586819,C36:3 PC,[M+H]+ 157 | C8-pos_Cluster_1367,8.686175,639.497236,C36:4 DAG,[M+Na]+ 158 | C8-pos_Cluster_1351,8.686777000000001,634.541003,C36:4 DAG*,[M+NH4]+ 159 | C8-pos_Cluster_1873,8.140944000000001,782.570672,C36:4 PC-A,[M+H]+ 160 | C8-pos_Cluster_1874,8.357279,782.568897,C36:4 PC-B,[M+H]+ 161 | C8-pos_Cluster_1833,8.250746000000001,766.57843,C36:5 PC plasmalogen-A,[M+H]+ 162 | C8-pos_Cluster_1835,8.644664,766.572988,C36:5 PC plasmalogen-B,[M+H]+ 163 | C8-pos_Cluster_1473,8.943306,665.512314,C38:5 DAG*,[M+Na]+ 164 | HILIC-pos_Cluster_0790,8.496400999999999,262.127486,C3-DC-CH3 carnitine,[M+H]+ 165 | HILIC-pos_Cluster_0625,7.889517999999999,232.153366,C4 carnitine,[M+H]+ 166 | C8-pos_Cluster_1799,10.826807,745.631439,C42:0 TAG,[M+Na]+ 167 | C8-pos_Cluster_1791,10.82465,740.678078,C42:0 TAG,[M+NH4]+ 168 | C8-pos_Cluster_1861,11.187667999999999,773.661475,C44:0 TAG,[M+Na]+ 169 | C8-pos_Cluster_1848,11.184397,768.708936,C44:0 TAG*,[M+NH4]+ 170 | C8-pos_Cluster_1854,10.928481,771.647572,C44:1 TAG,[M+Na]+ 171 | C8-pos_Cluster_1837,10.923041,766.6920690000001,C44:1 TAG,[M+NH4]+ 172 | C8-pos_Cluster_1932,11.526178999999999,801.69486,C46:0 TAG,[M+Na]+ 173 | C8-pos_Cluster_1912,11.529200999999999,796.7396269999999,C46:0 TAG*,[M+NH4]+ 174 | C8-pos_Cluster_1922,11.275558,799.678727,C46:1 TAG,[M+Na]+ 175 | C8-pos_Cluster_1907,11.276498,794.722711,C46:1 TAG*,[M+NH4]+ 176 | C8-pos_Cluster_1915,11.024303999999999,797.661789,C46:2 TAG,[M+Na]+ 177 | C8-pos_Cluster_1902,11.023945,792.70552,C46:2 TAG*,[M+NH4]+ 178 | C8-pos_Cluster_2003,11.860174,829.7245849999999,C48:0 TAG,[M+Na]+ 179 | C8-pos_Cluster_1992,11.861366,824.769991,C48:0 TAG*,[M+NH4]+ 180 | C8-pos_Cluster_1997,11.609059,827.710874,C48:1 TAG,[M+Na]+ 181 | C8-pos_Cluster_1995,11.362544,825.694264,C48:2 TAG,[M+Na]+ 182 | C8-pos_Cluster_1976,11.367011,820.737416,C48:2 TAG*,[M+NH4]+ 183 | C8-pos_Cluster_1987,11.118497,823.679486,C48:3 TAG,[M+Na]+ 184 | C8-pos_Cluster_1980,10.864175999999999,821.664125,C48:4 TAG,[M+Na]+ 185 | C8-pos_Cluster_2022,11.764544,836.7706,C49:1 TAG,[M+NH4]+ 186 | C8-pos_Cluster_2088,12.228235,857.7568949999999,C50:0 TAG,[M+Na]+ 187 | C8-pos_Cluster_2081,11.954180000000001,855.741439,C50:1 TAG,[M+Na]+ 188 | C8-pos_Cluster_2064,11.953231,850.785964,C50:1 TAG*,[M+NH4]+ 189 | C8-pos_Cluster_2075,11.695456,853.7260380000001,C50:2 TAG,[M+Na]+ 190 | C8-pos_Cluster_2069,11.456274,851.7098490000001,C50:3 TAG,[M+Na]+ 191 | C8-pos_Cluster_2046,11.453267,846.7541050000001,C50:3 TAG*,[M+NH4]+ 192 | C8-pos_Cluster_2056,11.215287,849.6932419999999,C50:4 TAG,[M+Na]+ 193 | C8-pos_Cluster_2040,11.211007,844.740122,C50:4 TAG*,[M+NH4]+ 194 | C8-pos_Cluster_2048,10.955001,847.680515,C50:5 TAG,[M+Na]+ 195 | C8-pos_Cluster_2130,12.403503,871.768451,C51:0 TAG*,[M+Na]+ 196 | C8-pos_Cluster_2117,11.862853,867.7423779999999,C51:2 TAG*,[M+Na]+ 197 | C8-pos_Cluster_2102,11.864224,862.7854689999999,C51:2 TAG*,[M+NH4]+ 198 | C8-pos_Cluster_2094,11.611664999999999,860.7703339999999,C51:3 TAG*,[M+NH4]+ 199 | C8-pos_Cluster_2168,12.605217,885.787857,C52:0 TAG,[M+Na]+ 200 | C8-pos_Cluster_2154,12.610294999999999,880.832798,C52:0 TAG*,[M+NH4]+ 201 | C8-pos_Cluster_2161,12.311181,883.772469,C52:1 TAG,[M+Na]+ 202 | C8-pos_Cluster_2147,12.304072999999999,878.810885,C52:1 TAG*,[M+NH4]+ 203 | C8-pos_Cluster_2156,12.046012,881.757443,C52:2 TAG,[M+Na]+ 204 | C8-pos_Cluster_2140,12.044946000000001,876.802961,C52:2 TAG*,[M+NH4]+ 205 | C8-pos_Cluster_2149,11.790252,879.7417960000001,C52:3 TAG,[M+Na]+ 206 | C8-pos_Cluster_2136,11.787681,874.786794,C52:3 TAG*,[M+NH4]+ 207 | C8-pos_Cluster_2141,11.540258999999999,877.7259650000001,C52:4 TAG,[M+Na]+ 208 | C8-pos_Cluster_2132,11.539806,872.7714300000001,C52:4 TAG*,[M+NH4]+ 209 | C8-pos_Cluster_2138,11.307025999999999,875.712613,C52:5 TAG,[M+Na]+ 210 | C8-pos_Cluster_2124,11.307079,870.755439,C52:5 TAG*,[M+NH4]+ 211 | C8-pos_Cluster_2134,11.066022,873.6943150000001,C52:6 TAG,[M+Na]+ 212 | C8-pos_Cluster_2119,11.066136,868.738923,C52:6 TAG*,[M+NH4]+ 213 | C8-pos_Cluster_2128,10.821649,871.682557,C52:7 TAG,[M+Na]+ 214 | C8-pos_Cluster_2192,11.968144,893.7566,C53:3 TAG*,[M+Na]+ 215 | C8-pos_Cluster_2178,11.96217,888.7981130000001,C53:3 TAG*,[M+NH4]+ 216 | C8-pos_Cluster_2242,12.68823,911.8053259999999,C54:1 TAG,[M+Na]+ 217 | C8-pos_Cluster_2240,12.407129,909.790505,C54:2 TAG,[M+Na]+ 218 | C8-pos_Cluster_2233,12.150266,907.7728960000001,C54:3 TAG,[M+Na]+ 219 | C8-pos_Cluster_2218,12.147274000000001,902.8167070000001,C54:3 TAG*,[M+NH4]+ 220 | C8-pos_Cluster_2226,11.891407000000001,905.756823,C54:4 TAG,[M+Na]+ 221 | C8-pos_Cluster_2211,11.888264,900.8022050000001,C54:4 TAG*,[M+NH4]+ 222 | C8-pos_Cluster_2220,11.640319,903.7424990000001,C54:5 TAG,[M+Na]+ 223 | C8-pos_Cluster_2207,11.63787,898.7863390000001,C54:5 TAG*,[M+NH4]+ 224 | C8-pos_Cluster_2215,11.397791,901.725337,C54:6 TAG,[M+Na]+ 225 | C8-pos_Cluster_2201,11.395511,896.7712550000001,C54:6 TAG*,[M+NH4]+ 226 | C8-pos_Cluster_2210,11.166372,899.709334,C54:7 TAG,[M+Na]+ 227 | C8-pos_Cluster_2202,10.918401,897.696173,C54:8 TAG,[M+Na]+ 228 | C8-pos_Cluster_2197,10.673255000000001,895.679848,C54:9 TAG,[M+Na]+ 229 | C8-pos_Cluster_2284,12.586698,923.7993,C55:2 TAG*,[M+Na]+ 230 | C8-pos_Cluster_2277,12.315408999999999,921.785871,C55:3 TAG*,[M+Na]+ 231 | C8-pos_Cluster_2319,13.10915,939.834558,C56:1 TAG,[M+Na]+ 232 | C8-pos_Cluster_2308,13.106710000000001,934.879787,C56:1 TAG*,[M+NH4]+ 233 | C8-pos_Cluster_2313,12.791267999999999,937.8200210000001,C56:2 TAG,[M+Na]+ 234 | C8-pos_Cluster_2306,12.789232,932.864434,C56:2 TAG*,[M+NH4]+ 235 | C8-pos_Cluster_2311,12.502167,935.805034,C56:3 TAG,[M+Na]+ 236 | C8-pos_Cluster_2303,12.499672,930.847883,C56:3 TAG*,[M+NH4]+ 237 | C8-pos_Cluster_2307,12.234596,933.7892529999999,C56:4 TAG,[M+Na]+ 238 | C8-pos_Cluster_2297,12.231816,928.83376,C56:4 TAG*,[M+NH4]+ 239 | C8-pos_Cluster_2304,11.970844999999999,931.772886,C56:5 TAG,[M+Na]+ 240 | C8-pos_Cluster_2300,11.721509,929.758223,C56:6 TAG,[M+Na]+ 241 | C8-pos_Cluster_2286,11.729345,924.801313,C56:6 TAG*,[M+NH4]+ 242 | C8-pos_Cluster_2293,11.482028,927.7439619999999,C56:7 TAG,[M+Na]+ 243 | C8-pos_Cluster_2345,12.067555,957.790733,C58:6 TAG,[M+Na]+ 244 | C8-pos_Cluster_2341,11.816957,955.767833,C58:7 TAG,[M+Na]+ 245 | HILIC-pos_Cluster_0405,2.823607,195.08719,caffeine,[M+H]+ 246 | HILIC-neg_Cluster_0064,3.727128,115.07651499999999,caproic acid,[M-H]- 247 | HILIC-neg_Cluster_0156,3.603307,143.107448,caprylic acid,[M-H]- 248 | HILIC-pos_Cluster_0230,8.756221,162.111937,carnitine,[M+H]+ 249 | HILIC-pos_Cluster_0590,9.298983,227.11306000000002,carnosine,[M+H]+ 250 | C18-neg_Cluster_0486,10.794002,329.175684,carnosol,[M-H]- 251 | C18-neg_Cluster_1045,10.555839,427.26160300000004,chenodeoxycholate,[M+Cl]- 252 | C18-neg_Cluster_0832,10.555098,391.284991,chenodeoxycholate,[M-H]- 253 | C18-neg_Cluster_1292,10.556944,459.27258200000006,chenodeoxycholate,[Unknown]- 254 | C18-neg_Cluster_1060,10.555864,429.25886299999996,chenodeoxycholate,[Unknown]- 255 | C18-neg_Cluster_1129,10.556245,438.291909,chenodeoxycholate,[Unknown]- 256 | HILIC-neg_Cluster_1360,4.051794,391.285236,chenodeoxycholate/deoxycholate*,[M-H]- 257 | C18-neg_Cluster_1258,9.128414999999999,453.28609500000005,cholate,[M+FA-H]- 258 | C18-neg_Cluster_0930,9.127927,407.280078,cholate,[M-H]- 259 | HILIC-neg_Cluster_1403,4.211117,407.279787,cholate,[M-H]- 260 | C18-neg_Cluster_1178,9.128149,445.25325,cholate,[Unknown]- 261 | C18-neg_Cluster_1273,9.127798,455.290179,cholate,[Unknown]- 262 | C18-neg_Cluster_1372,9.126422999999999,470.275041,cholate,[Unknown]- 263 | C18-neg_Cluster_1621,9.126215,507.20440999999994,cholate,[Unknown]- 264 | C18-neg_Cluster_1722,9.127678,525.214869,cholate,[Unknown]- 265 | C8-pos_Cluster_1849,7.003781,769.6843259999999,cholestenone,[2M+H]+ 266 | C8-pos_Cluster_1900,7.005319,791.667671,cholestenone,[2M+Na]+ 267 | C8-pos_Cluster_0478,7.006923,385.346243,cholestenone,[M+H]+ 268 | C8-pos_Cluster_0554,7.008068,407.32828900000004,cholestenone,[M+Na]+ 269 | C8-pos_Cluster_0629,7.005191,425.33897699999994,cholestenone,[M-H2O+Na]+ 270 | C8-pos_Cluster_0705,7.003234,443.399209,cholestenone,[Unknown] 271 | C8-pos_Cluster_0416,7.2170119999999995,369.351917,cholesterol,[M-H2O+Na]+ 272 | HILIC-pos_Cluster_0022,8.170531,104.107031,choline,[M+H]+ 273 | HILIC-neg_Cluster_0392,9.415773,191.019484,citrate,[M-H]- 274 | HILIC-pos_Cluster_0306,8.357386,176.102204,citrulline,[M+H]+ 275 | HILIC-neg_Cluster_0296,3.641507,174.088119,citrulline,[M-H]- 276 | HILIC-pos_Cluster_0090,8.298269,132.07633,creatine,[M+H]+ 277 | HILIC-pos_Cluster_0036,6.423718,114.066154,creatinine,[M+H]+ 278 | HILIC-neg_Cluster_0677,6.288915,239.01636000000002,cystine,[M-H]- 279 | HILIC-pos_Cluster_0032,6.12461,112.050537,cytosine,[M+H]+ 280 | C18-neg_Cluster_0833,10.769622,391.28546800000004,deoxycholic acid,[M-H]- 281 | HILIC-pos_Cluster_0734,4.976754,253.092331,deoxyinosine,[M+H]+ 282 | HILIC-neg_Cluster_0740,2.786193,251.07802200000003,deoxyinosine,[M-H]- 283 | HILIC-pos_Cluster_0936,10.204002000000001,287.242938,diacetylspermine,[M+H]+ 284 | HILIC-neg_Cluster_0199,4.819287999999999,153.018996,dihydroxybenzoic acid,[M-H]- 285 | HILIC-pos_Cluster_0298,10.220459,175.143734,dimethyllysine,[M+H]+ 286 | C18-neg_Cluster_0472,14.089371,327.23262,docosahexaenoic acid,[M-H]- 287 | HILIC-neg_Cluster_1126,3.185725,329.248268,docosapentaenoate,[M-H]- 288 | C18-neg_Cluster_0490,14.446319,329.248634,docosapentaenoic acid,[M-H]- 289 | C18-neg_Cluster_0863,14.443007999999999,397.235541,docosapentaenoic acid,[M-H+Na-2H]- 290 | C18-neg_Cluster_0729,14.444973000000001,375.253555,docosapentaenoic acid ,[M+FA-H]- 291 | C18-neg_Cluster_1324,14.441559,465.223168,docosapentaenoic acid ,[Unknown]- 292 | C18-neg_Cluster_0111,8.008681,229.14387599999998,dodecanedioic acid,[M-H]- 293 | HILIC-neg_Cluster_1002,3.237376,301.216907,eicosapentaenoic acid,[M-H]- 294 | C18-neg_Cluster_0351,13.624069,301.217166,eicosapentaenoic acid,[M-H]- 295 | C18-neg_Cluster_0591,14.777768,351.253912,eicosatrienoic acid,[M+FA-H]- 296 | C18-neg_Cluster_0361,14.77699,305.248483,eicosatrienoic acid,[M-H]- 297 | C18-neg_Cluster_0373,16.115366,309.279965,eicosenoate,[M-H]- 298 | C8-pos_Cluster_0737,7.858286,449.37407800000005,epoxysqualene,[M+Na]+ 299 | HILIC-neg_Cluster_0122,4.425441999999999,135.029822,erythronic acid,[M-H]- 300 | HILIC-pos_Cluster_0913,1.683218,283.262043,ethyl 9-hexadecenoate,[M+H]+ 301 | HILIC-neg_Cluster_0562,4.0301860000000005,221.066307,ethyl glucuronide,[M-H]- 302 | HILIC-neg_Cluster_0321,2.156899,179.055912,fructose/glucose/galactose*,[M-H]- 303 | HILIC-neg_Cluster_0237,1.587833,163.061029,fucose,[M-H]- 304 | HILIC-neg_Cluster_0061,7.3254850000000005,115.00351,fumarate/maleate*,[M-H]- 305 | HILIC-pos_Cluster_0658,1.89888,239.163255,geranyl acetoacetate*,[M+H]+ 306 | HILIC-pos_Cluster_0657,1.751914,239.163339,geranyl acetoacetate*,[M+H]+ 307 | HILIC-neg_Cluster_0401,5.450615,193.035127,glucurote,[M-H]- 308 | HILIC-pos_Cluster_0160,7.613392999999999,148.059769,glutamate,[M+H]+ 309 | HILIC-neg_Cluster_0166,5.321273000000001,146.045723,glutamate,[M-H]- 310 | HILIC-pos_Cluster_0156,8.046524,147.075928,glutamine,[M+H]+ 311 | HILIC-neg_Cluster_0162,3.6950589999999996,145.06181999999998,glutamine,[M-H]- 312 | HILIC-neg_Cluster_0036,4.394749,105.01919199999999,glycerate,[M-H]- 313 | HILIC-neg_Cluster_1571,4.042977,464.301241,glycocholate,[M-H]- 314 | C18-neg_Cluster_1196,9.51775,448.306747,glycodeoxycholic acid,[M-H]- 315 | C18-neg_Cluster_1081,10.904173,432.311815,glycolithocholic acid,[M-H]- 316 | C18-neg_Cluster_1197,8.102488000000001,448.30686,glycoursodeoxycholic acid,[M-H]- 317 | HILIC-neg_Cluster_0182,2.648227,150.041827,guanine,[M-H]- 318 | HILIC-neg_Cluster_0909,3.0556650000000003,282.084094,guanosine,[M-H]- 319 | HILIC-neg_Cluster_0841,3.279936,269.248492,heptadecanoate,[M-H]- 320 | C18-neg_Cluster_0268,10.78202,285.206703,hexadecanedioic acid,[M-H]- 321 | HILIC-pos_Cluster_0033,9.120918,112.086877,histamine,[M+H]+ 322 | HILIC-neg_Cluster_0201,4.037108,154.061827,histidine,[M-H]- 323 | HILIC-neg_Cluster_0328,4.570257,181.050492,homovanillate,[M-H]- 324 | HILIC-neg_Cluster_0181,3.875114,149.060668,hydrocinnamic acid,[M-H]- 325 | HILIC-neg_Cluster_0070,3.7142190000000004,117.05564299999999,hydroxyisovaleric acid,[M-H]- 326 | HILIC-pos_Cluster_0089,7.892167999999999,132.065131,hydroxyproline,[M+H]+ 327 | C18-neg_Cluster_0830,9.249408,391.28508999999997,hyodeoxycholate/ursodeoxycholate*,[M-H]- 328 | HILIC-pos_Cluster_0108,4.825591999999999,137.045333,hypoxanthine,[M+H]+ 329 | HILIC-neg_Cluster_0123,3.2523619999999998,135.031148,hypoxanthine,[M-H]- 330 | HILIC-pos_Cluster_0121,7.393472,141.065236,imidazole propionate,[M+H]+ 331 | HILIC-neg_Cluster_0204,4.568166000000001,155.045875,imidazolelactate,[M-H]- 332 | HILIC-pos_Cluster_0822,4.862826,269.08699900000005,inosine,[M+H]+ 333 | HILIC-neg_Cluster_0824,3.3967440000000004,267.072637,inosine,[M-H]- 334 | HILIC-pos_Cluster_0092,7.039731,132.101601,isoleucine,[M+H]+ 335 | C18-neg_Cluster_0900,8.346794000000001,405.26440299999996,ketodeoxycholate,[M-H]- 336 | HILIC-pos_Cluster_0383,5.218416,190.049178,kynurenic acid,[M+H]+ 337 | HILIC-pos_Cluster_0521,6.360789,217.096207,"L-1,2,3,4-tetrahydro-beta-carboline-3-carboxylic acid*",[M+H]+ 338 | HILIC-neg_Cluster_0020,4.030335,89.024276,lactate,[M-H]- 339 | HILIC-neg_Cluster_1170,2.609105,341.108598,lactose,[M-H]- 340 | HILIC-pos_Cluster_0091,6.9110320000000005,132.101541,leucine,[M+H]+ 341 | HILIC-neg_Cluster_0105,2.6240669999999997,130.087084,leucine,[M-H]- 342 | HILIC-neg_Cluster_0230,7.130819,161.045377,levoglucosan,[M-H]- 343 | C18-neg_Cluster_0246,14.484832,279.23294300000003,linoleic acid,[M-H]- 344 | HILIC-neg_Cluster_1325,1.076403,382.295979,linoleoyl ethanolamide,[M+CH3COO]- 345 | HILIC-pos_Cluster_1160,1.942824,326.303789,linoleoyl ethanolamide,[Unknown]+ 346 | C8-pos_Cluster_1495,4.768315,669.5544719999999,linoleoyl ethanolamide ,[2M+Na]+ 347 | C8-pos_Cluster_0264,4.769408,324.29021800000004,linoleoyl ethanolamide ,[M+H]+ 348 | HILIC-pos_Cluster_1148,1.941643,324.28841,linoleoyl ethanolamide ,[M+H]+ 349 | C8-pos_Cluster_0339,4.773251,346.271831,linoleoyl ethanolamide ,[M+Na]+ 350 | HILIC-neg_Cluster_1088,1.067339,322.27492,linoleoyl ethanolamide ,[M-H]- 351 | HILIC-neg_Cluster_1303,3.949561,375.29019500000004,lithocholate,[M-H]- 352 | C18-neg_Cluster_0731,12.432525,375.29013,lithocholic acid,[M-H]- 353 | HILIC-neg_Cluster_0247,3.8208660000000005,165.05539299999998,L-phenyllactic acid,[M-H]- 354 | HILIC-pos_Cluster_0157,9.37,147.112492,lysine,[M+H]+ 355 | HILIC-neg_Cluster_0118,7.324072999999999,133.014111,malate,[M-H]- 356 | HILIC-neg_Cluster_0033,7.481364999999999,103.003626,malonate,[M-H]- 357 | C18-neg_Cluster_1680,11.823681,517.353113,maslinic acid,[M+FA-H]- 358 | C18-neg_Cluster_1385,11.823927000000001,471.347521,maslinic acid,[M-H]- 359 | C18-neg_Cluster_1803,11.824683,539.33415,maslinic acid,[Unknown]- 360 | C18-neg_Cluster_2068,11.824200999999999,607.321568,maslinic acid,[Unknown]- 361 | HILIC-pos_Cluster_0167,6.997128,150.057729,methionine,[M+H]+ 362 | HILIC-neg_Cluster_0173,3.157803,148.04366000000002,methionine,[M-H]- 363 | HILIC-pos_Cluster_0244,8.618428999999999,166.05276899999998,methionine sulfoxide,[M+H]+ 364 | HILIC-neg_Cluster_0030,3.7986400000000002,101.06065,methylbutyric aid / valeric / isovaleric*,[M-H]- 365 | HILIC-pos_Cluster_0191,4.249376,153.065281,methylpyridonecarboxamide,[M+H]+ 366 | C18-neg_Cluster_0107,14.008037,227.20084500000002,myristic acid,[M-H]- 367 | HILIC-neg_Cluster_0372,7.016821,188.056303,N-acetylglutamate,[M-H]- 368 | HILIC-pos_Cluster_0384,4.5095,190.070536,N-acetylglutamic acid,[M+H]+ 369 | HILIC-pos_Cluster_0495,4.512608999999999,212.052212,N-acetylglutamic acid,[M+Na]+ 370 | HILIC-pos_Cluster_0419,8.356582000000001,198.084419,N-acetylhistidine,[M+H]+ 371 | HILIC-pos_Cluster_0524,8.115299,217.12866,N-acetyl-L-arginine,[M+H]+ 372 | HILIC-pos_Cluster_0086,7.827926,131.11756,N-acetylputrescine,[M+H]+ 373 | HILIC-pos_Cluster_0038,7.827839999999999,114.09128899999999,N-acetylputrescine,[Unknown]+ 374 | HILIC-pos_Cluster_0374,9.710596,188.175124,N-acetylspermidine,[M+H]+ 375 | C18-neg_Cluster_0672,17.959622,365.342106,nervonic acid,[M-H]- 376 | HILIC-neg_Cluster_0082,4.196408,122.02469599999999,nicotinate,[M-H]- 377 | HILIC-pos_Cluster_0062,3.650861,124.039165,nicotinic acid,[M+H]+ 378 | HILIC-pos_Cluster_0082,8.568446,130.086042,N-methylproline,[M+H]+ 379 | HILIC-pos_Cluster_0378,9.336896000000001,189.13388500000002,NMMA,[M+H]+ 380 | C8-pos_Cluster_0341,5.107714,348.28717,N-oleoylethanolamine ,[M+Na]+ 381 | C18-neg_Cluster_1596,13.873410999999999,501.358025,oleanolic acid,[M+FA-H]- 382 | C18-neg_Cluster_1275,13.87466,455.35279699999995,oleanolic acid,[M-H]- 383 | C18-neg_Cluster_0250,15.272048999999999,281.24855099999996,oleic acid,[M-H]- 384 | HILIC-pos_Cluster_0100,9.281319,133.096824,ornithine,[M+H]+ 385 | HILIC-neg_Cluster_0203,4.709074,155.009615,orotate,[M-H]- 386 | HILIC-neg_Cluster_0016,7.766292,88.987993,oxalate,[M-H]- 387 | C18-neg_Cluster_0171,15.15693,255.232602,palmitic acid,[M-H]- 388 | C18-neg_Cluster_0164,14.212543,253.216969,palmitoleic acid,[M-H]- 389 | C8-pos_Cluster_0288,5.126296,331.28387200000003,palmitoyl glycerol,[M+H]+ 390 | C18-neg_Cluster_0515,13.727848000000002,334.25178,palmitoylethanolamide,[M+Cl]- 391 | C18-neg_Cluster_0563,13.726076999999998,344.280356,palmitoylethanolamide,[M+FA]- 392 | C8-pos_Cluster_0168,4.923001999999999,300.289632,palmitoylethanolamide,[M+H]+ 393 | HILIC-pos_Cluster_0540,3.034481,220.117078,pantothenate,[M+H]+ 394 | HILIC-neg_Cluster_0552,4.073403,218.10299700000002,pantothete,[M-H]- 395 | HILIC-neg_Cluster_0697,3.341595,241.217098,pentadecanoate,[M-H]- 396 | HILIC-neg_Cluster_0125,3.972693,135.045062,phenylacetate,[M-H]- 397 | HILIC-pos_Cluster_0248,6.660172,166.085878,phenylalanine,[M+H]+ 398 | HILIC-neg_Cluster_0242,3.23711,164.071506,phenylalanine,[M-H]- 399 | C18-neg_Cluster_0031,2.554265,165.054458,phenyllactate,[M-H]- 400 | C18-neg_Cluster_0019,1.4702620000000002,151.03876499999998,p-hydroxyphenylacetate,[M-H]- 401 | HILIC-pos_Cluster_1113,5.807391,318.298969,phytosphingosine,[M+H]+ 402 | HILIC-pos_Cluster_0081,7.930975999999999,130.086018,pipecolic acid,[M+H]+ 403 | C8-pos_Cluster_0136,3.671675,286.143984,piperine,[M+H]+ 404 | HILIC-pos_Cluster_0927,1.891232,286.142786,piperine,[M+H]+ 405 | HILIC-pos_Cluster_0041,8.073911,116.070546,proline,[M+H]+ 406 | HILIC-neg_Cluster_0059,3.059664,114.05598799999999,proline,[M-H]- 407 | HILIC-pos_Cluster_0134,9.166394,144.10134399999998,proline betaine,[M+H]+ 408 | HILIC-neg_Cluster_0003,4.047601,73.02932,propionate,[M-H]- 409 | HILIC-neg_Cluster_0707,2.338077,243.06193100000002,pseudouridine,[M-H]- 410 | HILIC-pos_Cluster_0007,9.291155,89.10765500000001,putrescine,[M+H]+ 411 | HILIC-pos_Cluster_0268,9.033352,169.09659299999998,pyridoxamine,[M+H]+ 412 | HILIC-pos_Cluster_0184,9.029533,152.069805,pyridoxamine,[M-OH+H]+ 413 | HILIC-neg_Cluster_0040,1.455358,109.029385,pyrocatechol,[M-H]- 414 | HILIC-pos_Cluster_0079,8.044523,130.0495,pyroglutamic acid,[M+H]+ 415 | HILIC-neg_Cluster_0192,1.7577459999999998,151.06086000000002,ribitol,[M-H]- 416 | HILIC-neg_Cluster_1300,1.613945,375.130015,riboflavin,[M-H]- 417 | HILIC-neg_Cluster_0332,3.810657,181.99164,saccharin,[M-H]- 418 | HILIC-neg_Cluster_0129,3.955146,137.02418400000002,salicylate,[M-H]- 419 | C18-neg_Cluster_0064,6.184348,201.112299,sebacate,[M-H]- 420 | HILIC-neg_Cluster_0441,7.092408,201.113094,sebacate,[M-H]- 421 | HILIC-pos_Cluster_0024,7.67572,106.04989099999999,serine,[M+H]+ 422 | HILIC-neg_Cluster_0035,4.041081,104.035333,serine,[M-H]- 423 | HILIC-neg_Cluster_0283,4.737642,173.04491299999998,shikimate,[M-H]- 424 | HILIC-neg_Cluster_0331,2.01362,181.071617,sorbitol,[M-H]- 425 | HILIC-pos_Cluster_1017,5.7067309999999996,302.303848,sphinganine,[M+H]+ 426 | C8-pos_Cluster_0166,4.204833,300.289756,sphingosine,[M+H]+ 427 | C8-pos_Cluster_0123,4.220022,282.27904700000005,sphingosine,[M+H-H2O]+ 428 | C8-pos_Cluster_0253,4.212764,322.271398,sphingosine,[M+Na]+ 429 | C8-pos_Cluster_0988,4.211524,535.35428,sphingosine,[Unknown]+ 430 | C18-neg_Cluster_0256,16.09378,283.26395,stearic acid,[M-H]- 431 | C8-pos_Cluster_0277,5.494829,328.320676,stearoyl ethanolamide,[M+H]+ 432 | HILIC-neg_Cluster_0288,7.142564,173.08158400000002,suberate,[M-H]- 433 | HILIC-neg_Cluster_0069,7.266082000000001,117.01921399999999,succite,[M-H]- 434 | HILIC-neg_Cluster_0174,7.406051,149.008724,tartarate,[M-H]- 435 | HILIC-pos_Cluster_0066,6.103439,126.02180600000001,taurine,[M+H]+ 436 | HILIC-neg_Cluster_0085,3.7229910000000004,124.007185,taurine,[M-H]- 437 | C18-neg_Cluster_1574,8.289154,498.28910700000006,taurochenodesoxycholic acid,[M-H]- 438 | HILIC-neg_Cluster_1675,3.560883,498.289509,taurodeoxycholate/taurochenodeoxycholate*,[M-H]- 439 | C18-neg_Cluster_1575,8.547102,498.289493,taurodeoxycholic acid,[M-H]- 440 | C18-neg_Cluster_1576,7.2630419999999996,498.289624,taurohyodeoxycholate/ tauroursodeoxycholate,[M-H]- 441 | C18-neg_Cluster_1465,9.710907,482.29421399999995,taurolithocholic acid,[M-H]- 442 | C18-neg_Cluster_0177,9.442364,257.175625,tetradecanedioate,[M-H]- 443 | HILIC-pos_Cluster_0797,9.50362,265.11053599999997,thiamine,[M]+ 444 | HILIC-pos_Cluster_0049,7.599189,120.065478,threonine,[M+H]+ 445 | HILIC-neg_Cluster_0073,3.671176,118.05084,threonine,[M-H]- 446 | HILIC-pos_Cluster_0998,5.676804,300.288345,threosphingosine,[M+H]+ 447 | HILIC-pos_Cluster_0906,5.683548,282.27795,threosphingosine,[M-H2O]+ 448 | HILIC-neg_Cluster_0087,1.350997,125.035549,thymine,[M-H]- 449 | HILIC-pos_Cluster_0172,7.6400809999999995,150.11187900000002,triethanolamine,[M+H]+ 450 | HILIC-pos_Cluster_0113,8.845482,138.054606,trigonelline,[M+H]+ 451 | HILIC-pos_Cluster_0054,1.656798,121.10095600000001,trimethylbenzene*,[M+H]+ 452 | HILIC-pos_Cluster_0379,11.169333,189.158863,trimethyllysine,[M+H]+ 453 | HILIC-pos_Cluster_0455,6.454701999999999,205.09633300000002,tryptophan,[M+H]+ 454 | HILIC-neg_Cluster_0452,3.456332,203.08251,tryptophan,[M-H]- 455 | HILIC-pos_Cluster_0333,6.783577,182.080679,tyrosine,[M+H]+ 456 | HILIC-neg_Cluster_0324,3.7704370000000003,180.066485,tyrosine,[M-H]- 457 | C18-neg_Cluster_0079,7.187602,215.128083,undecanedionate,[M-H]- 458 | HILIC-neg_Cluster_0049,1.546029,111.019898,uracil,[M-H]- 459 | HILIC-neg_Cluster_0254,5.354563,167.020718,urate,[M-H]- 460 | HILIC-neg_Cluster_0706,1.7966229999999999,243.061889,uridine,[M-H]- 461 | C18-neg_Cluster_2021,6.512715,593.334522,urobilin,[M-H]- 462 | HILIC-pos_Cluster_2093,6.422733999999999,595.346201,urobilin*,[M+H]+ 463 | HILIC-pos_Cluster_0116,4.504729,139.04987,urocanic acid,[M+H]+ 464 | HILIC-pos_Cluster_0046,7.356814999999999,118.08614299999999,valine,[M+H]+ 465 | HILIC-neg_Cluster_0066,2.876993,116.071554,valine,[M-H]- 466 | HILIC-neg_Cluster_0187,5.116361,151.02576499999998,xanthine,[M-H]- 467 | HILIC-neg_Cluster_0176,1.627438,149.045268,xylose,[M-H]- 468 | -------------------------------------------------------------------------------- /data/soil/metabolome.csv: -------------------------------------------------------------------------------- 1 | ,18hr_early,18hr_earlymid,18hr_late,18hr_latemid,3min_early,3min_earlymid,3min_late,3min_latemid,42hr_early,42hr_earlymid,42hr_late,42hr_latemid,49p5hr_early,49p5hr_earlymid,49p5hr_late,49p5hr_latemid,9hr_early,9hr_earlymid,9hr_latemid 2 | "(2,3-dihydroxy-3-methylbutanoate)",18559.00781,70304.58097,434578.9734,416443.3594,1.0,460.9148926,293.6053345,137.9354614,9310.292615,57261.97904,540666.6813,737409.7797,57205.32463,167448.2324,821189.5563,376365.875,68.12459106,98720.52243,106211.7866 3 | "(2,5-diaminohexanoate)",2818005.938,2765782.953,4246048.625,3649969.85,2782242.25,1883228.25,4039221.5,2531813.5,3086052.5,2649203.5,6305377.7,6139353.5,5842490.313,3627547.8,12080544.2,6938167.5,1217995.294,1757143.45,1858817.833 4 | (3-hydroxypyridine),8118056.25,17206076.13,6567773.375,8778404.2,2764132.25,3014543.813,4395256.5,3817224.063,5199015.75,23994691.5,81892669.0,11794395.5,17578552.5,13553115.1,59605488.8,31031506.7,5701840.3,6778304.6,7913218.5 5 | (3-methyladenine),31575138.25,59127978.0,44634519.0,35652469.2,3151923.688,4224009.313,14376340.5,10516080.88,9924625.375,23158721.33,33010090.2,25456433.5,4164767.563,36506855.4,9417872.7,16850683.98,36544924.8,54461337.6,74817388.0 6 | (4-oxoproline),31982087.0,163220696.0,70138710.0,36425721.6,145094920.0,150345346.5,335056264.0,261704693.0,7295747.0,12458802.92,18842555.7,15256443.0,4504692.375,13284054.95,9333631.8,8708761.65,144491739.2,287291443.2,395621642.7 7 | "(5,6-dihydrothymine)",13566340.88,31458363.0,16898679.0,27575224.8,10668504.06,9343810.875,22825471.5,37658588.25,9029176.0,8567759.0,26592268.3,15669063.0,4497692.5,10543409.9,9932010.35,32835804.65,11836450.8,22711707.8,37060000.0 8 | (alanyl-leucine),7395746.875,37733556.0,11965228.25,10018532.2,8863774.875,10341774.5,32410061.0,24760371.38,5980736.5,5357354.083,20789234.0,6258151.5,5940200.875,15113537.6,14130386.2,8726617.5,45004310.0,79808008.4,97609236.0 9 | (dehydroalanine),730914.6094,6587122.719,576641.1485,495780.075,9415865.938,9637489.688,18298870.5,9830850.266,306593.8907,581461.2708,788643.0063,577650.7188,397799.3985,806953.9125,980376.775,631683.3063,2712926.0,8193841.825,7109939.625 10 | (glycero-3-phosphoethanolamine),7026060.266,4990136.813,1372290.102,989588.4719,833840.7031,764415.0313,1154312.672,739865.793,1002609.422,645602.7604,375167.0938,628261.0469,3564947.281,6111718.35,1317931.425,2064355.95,3399507.95,3242565.5,2073130.396 11 | (indoleacrylate),2332408.094,38179521.34,24191297.63,28123772.86,7863318.063,9504608.188,38240052.0,27996851.75,132691.7071,198811.806,913139.1636,817105.7032,282478.5196,3176995.122,439062.3168,269400.7773,28984593.6,83266097.2,132124874.7 12 | (leucyl-leucine),7972129.75,100420639.0,20594535.25,15635617.8,19748375.25,26736608.75,75228906.0,61208638.88,736288.3125,2751590.927,24658886.45,2647016.25,5325812.125,33802151.3,10391784.7,7029230.95,113891101.6,191332692.8,218872552.0 13 | (lipoate),73089.16642,414555.0797,753258.9484,572487.55,3486.231458,32281.37109,9470.638332,91649.32118,14785.69209,37369.81074,108435.3242,94367.77812,12814.45176,30202.15859,99836.37031,68589.66524,40641.0418,403263.5469,205238.8422 14 | (N6-acetyl-lysine),242598172.0,2032003008.0,920299200.0,961183257.6,405487712.0,505415832.0,1028776432.0,540606152.0,588510912.0,663145994.7,1795786138.0,1197165952.0,133906340.0,1591878091.0,2476219085.0,688954249.6,510852150.4,1466164813.0,1844444160.0 15 | (queuine),5629947.1,4569287.45,3674797.2,2744760.3,10691936.4,11260668.5,9235185.2,9129995.4,5659594.7,4361372.4,2326836.45,2748984.325,6272654.0,4294627.75,3030533.675,3403967.925,6919534.8,5296515.0,4408161.0 16 | 2-aminobutanoate,221783.7109,268899.0703,454781.6375,307561.1563,51210.98438,92254.07814,176840.6328,102263.6656,112709.7938,148471.3609,490045.0563,291148.2063,82952.58907,119817.3781,258516.2797,313301.5313,124447.1813,191926.7172,308073.3813 17 | 2-oxoglutarate,7299423.805,4147330.3,3288865.95,7476113.55,81265.67032,224126.3516,705553.7438,1091990.221,267252.6609,2520273.006,970613.1437,3913232.013,59114.84297,1274978.791,166422.2531,174181.8219,1761341.075,10823315.6,15394846.8 18 | 2'-deoxyguanosine,185513.6893,306095.8063,279264.3672,398434.5125,23852.8125,138376.0406,246917.3766,275762.8543,47843.35391,186573.4516,290135.4875,98892.39688,49135.33945,148642.3406,156568.7578,148749.3047,153822.5516,313829.1859,702910.225 19 | 2'-deoxyuridine,327.5965576,8026180.407,423220.8063,240899.6066,102968.8789,997470.9609,2839069.775,1642790.427,18239.89824,3849.145801,30238.34336,54786.35469,2877.4979,25703.7168,43236.81533,34258.43398,31312.48965,240960.4703,11778486.25 20 | "3',5'-cyclic-AMP",6639374.188,10101674.06,6753384.75,7654377.75,214748.001,226908.167,2178946.813,769361.125,2182376.438,1866650.708,6741683.5,5496461.25,2840627.5,13211677.88,11212094.3,4172578.4,2635200.25,7329605.8,9942466.5 21 | 4-guanidinobutanoate,389706794.0,841861112.0,840220224.0,1025601075.0,98487329.0,132031650.0,431654148.0,209832368.0,235339220.0,495317648.0,1457286668.0,2621115648.0,286759812.0,217076142.4,1049231992.0,659587529.6,596974873.6,916157708.8,1403908651.0 22 | 4-hydroxy-proline,13899458.75,54761625.25,29942923.5,36179311.6,2484050.969,3102781.688,11527947.0,4956742.75,9045210.0,12957918.67,23202794.8,11760801.0,3133998.0,14025298.65,4991468.15,16160553.35,8300092.8,23085869.4,32287804.67 23 | 7-methyladenine,8553436.125,11832180.5,27820146.0,14922971.0,4396582.313,2482292.188,6876107.125,3395601.125,15667698.0,19309283.33,63232151.2,44516428.0,39709349.0,55340664.0,123016548.8,47103368.4,7344856.35,10689007.8,14517512.17 24 | adenine,2192243016.0,2548913792.0,1475108368.0,794554176.0,997245344.0,905052896.0,1916438336.0,1136206976.0,416083068.0,942871722.7,980309350.4,596877056.0,354176616.0,1688277248.0,1133779213.0,960578908.8,1499301414.0,2081569306.0,2401511339.0 25 | adenosine,99317744.0,160070688.0,204000230.0,100911625.6,2774461216.0,2345038144.0,3744201536.0,1963006312.0,22421635.0,27398727.33,53350097.6,42926748.0,110504272.0,201040892.0,268654126.4,159168132.8,201649020.8,187903944.0,247140986.7 26 | alanine,27863.48594,2674305.637,7106755.978,406996.7109,86579.66446,478440.6711,1545993.606,1334698.984,19711.62442,32185.00137,514487.118,52877.71914,16596.39043,42376.67617,48542.80977,61608.68203,133118.7688,445938.7375,5007883.306 27 | aminoadipic acid,1757051.489,729292.7016,2756173.65,3586957.25,2601.774316,14347.90154,47213.64229,44282.59512,423630.7275,636985.7934,2258140.401,2273757.625,3516.043085,151376.542,222798.4676,1204262.412,79836.79414,829896.3734,1341712.534 28 | arginine,28905911.5,67377589.0,126065128.0,135604434.0,42559571.0,45932231.0,141800658.0,65737369.0,18556520.0,20968938.67,32697324.4,22507358.0,18788196.5,35852352.0,26728138.8,24465035.4,75037374.4,154154096.0,343531073.3 29 | asparagine,3830204.688,14923614.75,7397544.0,3927657.075,16073191.31,13354026.63,33357831.0,50617540.31,1328083.438,2490297.708,3013992.85,1664496.938,1714421.281,3745788.95,2972201.0,2558912.175,13446810.6,31723213.2,36248618.5 30 | aspartate,7941530.25,82056004.06,5229990.813,3587950.975,117564375.5,113339072.0,222749632.0,128782939.8,2136025.0,3226390.5,8534007.85,5205050.5,2907963.969,7867873.5,10282667.05,5286022.95,32572437.4,101241203.2,83110649.67 31 | betaine,95580754.0,458732282.0,194678492.0,216894284.8,110978622.0,132449380.0,286049996.0,117601236.0,96551260.0,217839154.7,402810348.8,271070800.0,175993320.0,2226002640.0,795200339.2,423683924.8,143929358.4,306537628.8,452385701.3 32 | biotin,14035.25234,49457.22236,9691.624145,8081.902734,39815.66094,77424.8043,134479.5258,168475.1783,10324.38076,7332.421094,6213.06438,4950.713525,10125.22383,11409.04902,4262.209412,6268.893701,8022.20625,5327.626904,217893.105 33 | carnitine,45589429.0,155049890.0,94556014.0,112987106.4,35366457.13,61009785.5,184504906.0,49562486.75,32262403.0,64635958.67,121681113.6,40629628.0,39668420.0,171268888.0,207014891.2,121490810.8,36525704.0,147735513.6,131755773.3 34 | citrulline,19694.16934,274096.3242,771792.9359,185089.4336,115627.3227,208083.6469,440848.5219,399737.866,5620.583862,6621.221632,181701.9,9926.008398,1905.802918,28873.37638,11913.89248,22093.52305,48268.16152,176570.2094,516149.1875 35 | creatinine,4410336.125,5394190.875,4929570.375,4429884.5,5535494.25,4754222.938,4716394.25,4678385.688,4008912.75,3209061.167,5303368.05,4064970.125,5097349.375,5947984.2,10026626.2,4690286.9,4878258.55,4793239.6,6181552.167 36 | cytidine,31313.06445,659914.3082,76644.29844,51104.56015,267369.5469,573464.1267,1196651.908,1397725.052,27539.1918,25587.05977,40575.47344,21655.23672,46743.85,41331.1457,47163.54102,36557.0543,33453.74258,50263.51094,1736700.743 37 | cytosine,134887559.0,221016226.0,612431412.0,91623096.2,119763811.0,134906600.0,354040608.0,176843136.0,11549772.0,37688826.0,202285802.1,451627176.0,35434568.5,120707958.4,86568579.6,33994144.4,297503100.8,344414270.4,654741216.0 38 | decanoate,2486213.4,1961456.625,1612188.875,1452663.45,3868516.1,4137790.55,3608851.25,3808527.55,2724992.5,2655067.9,1341579.825,1604490.675,3422286.3,3298481.45,2175803.2,1903420.288,2312795.3,1851148.425,1802250.85 39 | disaccharide (maltose),8806877.589,3917755.825,4457996.419,54544938.81,2256335.913,29550821.48,32828104.94,152033845.6,69826.63515,78079.3336,180737.6641,147815.9547,43008.29141,86616.03595,108100.2391,227974.0859,4269318.138,20066267.8,59821243.0 40 | ergothioneine,1056430.711,2758473.75,8028399.906,1763023.4,16401153.08,29053500.69,54111216.56,19061208.72,449740.0625,160687.9375,852212.6844,491552.0625,297093.0938,1014485.953,1865153.706,579949.7016,1660487.425,2866153.125,4216411.583 41 | fumarate,4218530.246,3176848.109,3226515.6,6374136.6,70533.49687,203855.8727,256567.0313,1679539.053,859982.559,3970526.291,1480204.913,6352431.356,41203.8836,1321063.324,168571.8766,390611.6438,947433.2375,3851180.863,5045514.25 42 | glutamate,4282154.309,10537527.89,11821100.1,1382038.913,3071507.125,12098670.05,18677732.8,16625141.35,215373.6156,486152.0969,864455.0469,343365.7188,172290.6875,405923.0625,417673.9188,353060.2313,2627682.931,11987699.5,28993459.88 43 | glutamine,57124464.75,100944544.0,184404484.0,63279340.4,75076050.0,78783764.5,207680292.0,240790108.5,4406568.375,4876707.25,8425430.6,4032758.5,3485976.063,12081397.9,7940763.9,6779326.85,79768640.0,147458620.0,184958828.0 44 | guanine,378470748.0,523492336.0,303479716.0,206344294.4,33866250.5,51937843.0,169699330.0,98608990.0,37056230.38,121371136.0,204068803.6,56624460.0,32363846.5,62799250.2,155070930.9,96346440.3,279728611.2,407494656.0,544936277.3 45 | guanosine,7297.488526,306752.2122,68216.59571,55946.58106,165673.0297,566776.2156,1006066.57,953345.3672,6972.40415,7511.463818,26712.66606,12209.10859,10031.11309,18828.38271,41477.93555,27340.22412,15392.87812,30555.13828,774431.65 46 | hypoxanthine,19839239.42,34264734.8,75561948.4,46553479.2,508596.7625,1425797.694,3481677.144,3003448.459,13799874.03,32529544.8,59315225.8,26464027.7,237780.761,5959963.9,22139444.85,17422999.71,9413357.9,33625446.8,54003068.6 47 | inosine,30408.01782,1747710.57,156555.1156,255289.8031,200248.1328,850923.6641,1013621.3,1959570.793,10804.87502,36291.46094,67203.3648,91856.71992,3227.199927,19947.5209,39657.92676,133644.8401,16614.6708,83155.4004,3069826.598 48 | isoleucine,2050012471.0,822035295.5,15534967.5,14488509.8,117028996.3,126609055.0,500740408.0,182074969.5,8350104.5,11767760.67,72402204.2,84359414.0,11655481.5,17726428.4,11507010.0,12513549.4,98049806.4,48477950.0,548548594.7 49 | lactate,6024068.863,52304795.9,94411608.0,80427064.2,1785392.55,3828330.6,8294927.0,2535693.125,2562389.475,7340255.85,52910415.65,61842170.8,1212756.075,1546482.9,45522173.9,62894057.53,3316645.825,15047578.1,17544868.4 50 | laurate,2017409.325,1902214.1,1473190.0,1406168.8,3305807.6,3335792.95,3099909.75,3062284.15,2178413.9,2436237.225,1376635.538,1763783.825,2292949.4,2399695.875,1940271.775,1938180.4,2212798.625,1839203.3,1747736.25 51 | leucine,51443384.5,1158762678.0,23479040.0,13750782.6,161249644.8,164162652.0,790635912.0,110312472.5,11077086.0,10740714.33,113386045.0,60415054.0,18477168.5,27675668.8,28023388.4,21141109.6,96326154.4,85771348.8,839918669.3 52 | lysine,9118182.75,15975689.25,17359110.5,17657790.8,28451429.5,70277678.0,29501812.0,21557172.25,7295822.5,6684833.833,20712616.8,6881551.0,5656130.75,15045355.7,9748115.2,11542567.9,23055133.6,24914458.6,36411724.67 53 | methionine,8027285.625,158186167.5,12530324.0,5198241.35,10777251.94,15083033.13,68423166.5,26299422.13,2686989.156,2351197.667,107723090.7,6779332.0,1557079.203,5388610.475,6285485.8,3307465.775,27710241.0,59164455.2,150633349.3 54 | monosaccharide (glucose),1172856.189,1844807.531,1305138.45,2474715.9,29666.35117,291250.0797,1095402.689,895530.3398,795967.7779,2121546.856,2783827.85,4450982.525,17608.10059,1246409.68,2885309.375,2050478.823,342865.4594,1652581.525,2945922.188 55 | myristate,10257583.3,9182365.1,7320690.1,6107868.9,18190995.6,17479787.6,16314038.4,16601130.0,9612301.5,8822154.6,6267574.3,7914818.0,9401871.2,7317717.9,6826818.7,5896386.6,10390105.6,8628407.7,8117998.0 56 | N-acetyl-glutamate,3614005.869,5760105.144,9700563.0,18968965.15,239744.2172,2578862.848,3638355.416,3991431.759,2323361.503,4195229.525,2095227.716,5356787.65,278185.5645,1132850.269,1306870.613,2572965.363,719227.8547,4796224.0,12662878.8 57 | N-acetylornithine,14085511.88,89543424.0,67171681.5,51544530.6,11890565.5,18551710.75,40686370.0,15363869.13,7136365.375,8115450.083,65879258.4,6810677.75,5220645.0,26407061.9,27156904.8,17369349.15,17476517.1,75763200.8,84910544.0 58 | nicotinamide,41119884.0,28573149.25,41337546.25,26327273.0,39446091.0,28213174.0,56479025.0,28450524.0,10939044.0,10423805.83,11380280.2,19016967.0,14652899.5,15189956.26,31903552.6,16152650.0,59407242.4,92853769.6,113992920.0 59 | nicotinate,374179.4,485247.9156,655011.2938,847138.325,72665.73047,208131.2305,465291.9563,332667.0727,482190.7313,964259.1969,1250840.088,2221019.0,485402.5031,976617.6125,2887183.65,1969857.538,60121.23438,225320.3266,297114.85 60 | oleate,955734.6125,1441727.9,1382145.213,1791113.338,1141759.45,1013554.525,894387.8001,1015091.113,521124.05,710419.9875,1693944.525,1167045.838,841422.025,955284.8938,1284746.2,970468.575,1170349.6,1603995.575,1648760.675 61 | palmitate,105837897.6,95013348.8,84141017.6,73167218.4,165160553.6,158510246.4,150731254.4,155626153.6,97703182.4,93859100.8,78906683.2,88584843.2,100718424.0,83117273.6,80788993.6,73000140.8,106499568.0,91830809.6,89734473.6 62 | palmitoleate,2248348.2,12509965.25,7940981.075,7956119.1,1224232.15,2386563.15,4098812.763,1953223.95,385087.8094,383457.6031,2497579.8,2567826.275,488527.0813,1350388.825,1425838.788,1276231.544,4601510.2,15880692.4,10442504.0 63 | pantothenate,89544601.5,175977818.0,132037220.0,165509352.0,3147826.656,5473330.875,18908850.5,8971354.375,95070136.0,175746066.7,392289092.8,327843160.0,45856197.5,357115672.2,617403910.4,263407734.4,28359610.4,57806096.8,75441706.67 64 | phenylalanine,24721.97217,12364542.23,5666559.869,3913328.984,152193.5477,690372.5561,2052885.547,2220847.141,13687.02725,45545.4037,5960786.958,69260.67617,11316.71943,133679.4776,55747.37305,45906.26426,1487169.411,8934382.05,32292174.39 65 | proline,20992032.25,95099881.0,96292878.5,94218990.0,48863741.5,48254394.5,134924838.0,68649658.75,11239098.0,23272185.67,25299077.6,27904022.0,14821475.5,24446361.8,31106550.6,17939760.4,24779432.4,31341144.4,104062021.3 66 | pyridoxine,4920505.25,5424110.75,6183107.5,5194241.3,1459842.672,1575729.844,2810577.313,2103452.188,11304249.5,15272777.5,12335872.4,91308260.0,26644529.25,33227682.0,48708015.0,24282651.3,2856004.45,3922711.1,4347935.083 67 | pyroglutamate,1126649.877,1534802.897,3840933.2,4811027.388,394517.3469,880774.4063,1846369.738,2359035.434,195509.45,933577.1656,874825.3156,875866.825,71755.22031,193343.4016,138306.1469,470478.8656,290141.4344,1928640.863,4393822.775 68 | raffinose,2925671.089,3287045.375,10208114.58,22396411.5,566846.8188,2474203.153,4312293.588,16630428.05,84760.4498,202101.432,712383.4125,362589.4406,44485.63496,102734.1985,110978.1883,173599.6543,2082748.5,5171451.75,16694923.4 69 | salicylate,9958679.2,7806770.7,6653538.6,8854859.8,4618607.4,5054321.45,4555815.7,3844936.9,14684210.3,14421406.8,13771505.2,17233740.8,13354007.75,11925727.43,21530172.4,16103773.8,8070221.2,5014989.2,5269926.0 70 | serine,10161350.0,72226296.25,11149152.63,11693715.5,19001918.63,21124178.88,63828011.0,29048626.25,3362835.75,4433442.5,5262850.15,6005327.5,3413385.313,7189765.65,5003366.65,4106207.25,17673774.4,36973595.0,81456627.33 71 | stachyose,1635820.462,3463877.05,9424552.8,9307545.7,608514.2438,3406955.65,5518530.759,4899066.577,34596.61074,114749.3426,659678.4281,1266809.448,15847.74551,46295.53946,56534.10898,136146.1967,1444160.497,3538248.85,7001224.3 72 | stearate,191262444.8,176060444.8,157269664.0,139654593.6,281944908.8,273308364.8,261015126.4,271517766.4,172214278.4,165539187.2,141472452.8,160302696.0,173924176.0,148949619.2,144985691.2,130949436.8,192738240.0,168262745.6,174059523.2 73 | succinate,31991306.58,37193581.2,35890640.2,59877529.2,3077373.825,6859918.425,12786345.2,23294365.03,4118413.138,24273109.58,14996591.1,36848062.4,472562.0438,6908511.463,4213415.7,7773205.05,15116361.95,54410146.8,68021032.8 74 | taurine,5158336.688,4981971.25,7158805.938,5306108.5,3370099.406,2778817.063,5367164.5,3444688.563,8713591.875,9876442.5,13572616.3,72673016.0,21706884.75,54934466.8,68640535.8,14372983.7,3277158.0,4949182.95,4171559.667 75 | threonine,35261.03887,1484473.603,645364.0203,106428.9078,90339.28634,283678.6953,772584.1578,873383.9465,17703.92617,29181.46211,179484.8293,32111.06641,12577.01777,28395.43535,34821.96602,34237.25605,158238.4613,396532.3359,2012064.542 76 | thymidine,1552496.15,1933544.65,481150.4313,120363.0375,34397.9375,819120.125,1503310.125,1031304.075,0.0,0.0,4117462.0,0.0,0.0,8664553.6,0.0,0.0,7348.508594,1509582.6,5089669.319 77 | thymine,4882161.534375,15169666.5,20865250.7,19530305.6,109349.7734375,246399.0375,448543.8,253399.2765625,3989909.51875,8317165.8375,19599532.3,9213899.8625,233091.06093760004,8715251.68125,8598488.478125,1452559.309375,5123419.2,11438349.9,11331274.6 78 | tryptophan,3880187.813,67037417.0,39651101.75,49654224.4,13088307.0,16385973.88,65047095.5,46597109.88,300802.0,495290.2708,1894473.5,1648272.563,574471.2656,6172212.213,1101640.575,576164.8844,49754577.0,141850663.6,220618952.0 79 | tyrosine,21327.63672,5562167.088,16368842.9,10089340.15,194658.7938,743442.9937,1710039.888,1737798.141,36097.17812,55166.1457,4303875.066,58414.97188,27657.1082,91775.75742,90577.50781,81706.42266,1965698.213,13680010.7,25505184.15 80 | uracil,86759694.0,132533950.4,125305379.0,133451476.8,4125935.2,13107718.3,35204637.6,17512613.65,50935301.76,88900175.3,120499462.1,69221727.06,1030888.453,86402320.4,34207943.01,499514.9875,65034268.4,120308734.4,108816756.8 81 | urate,62559.74453,71557.53202,278540.8969,256581.2969,29208.00957,93451.05626,3069240.488,231523.4846,148125.2924,210863.0281,620930.65,584184.35,91435.59531,370205.1531,1374207.406,584321.825,40786.11817,94195.23985,146691.7937 82 | uridine,155481.4484,7533056.891,1060865.888,478292.7031,3439209.0,15350040.6,21964584.45,22551330.73,103822.9072,92155.88634,198400.6281,149123.1914,152577.2984,237257.0953,496181.3125,398349.4,106934.832,301903.3688,23769767.68 83 | urocanate,6364446.8,6862071.9,8808024.4,10524465.6,181869.3578,243979.5844,200348.925,222793.6844,2285158.363,3584922.725,9503982.3,5701000.1,3054061.65,5807147.15,13003412.85,9910207.1,2216264.625,3911638.075,4817844.2 84 | valine,83965.00001,13818424.72,21012560.19,126388.9594,201910.1141,1135240.5,4489668.356,2571421.914,60014.10234,84272.35391,1109175.263,110522.1906,58987.63828,93203.56954,178001.5985,110781.6109,93602.14531,224102.1063,16928788.55 85 | xanthine,13328309.3,23180892.3,64820107.6,65239143.2,142192.3852,454639.2336,1769415.418,437041.9961,18055989.58,36761261.0,101180416.0,104235988.8,3369387.82,44224468.8,111962712.0,66325417.11,3693085.363,26843470.1,37008337.0 86 | xylitol,1263282.631,1071575.213,1546167.863,3069008.375,56899.5,118361.9477,445519.25,1480906.902,738026.0246,1486881.613,1976039.256,2812511.575,181878.7625,2256694.563,1777920.923,1606142.892,717907.1031,1515462.538,2434361.375 87 | -------------------------------------------------------------------------------- /data/soil/microbiome.csv: -------------------------------------------------------------------------------- 1 | ,18hr_early,18hr_earlymid,18hr_late,18hr_latemid,3min_early,3min_earlymid,3min_late,3min_latemid,42hr_early,42hr_earlymid,42hr_late,42hr_latemid,49p5hr_early,49p5hr_earlymid,49p5hr_late,49p5hr_latemid,9hr_early,9hr_earlymid,9hr_latemid 2 | rplo 1 (Cyanobacteria),3771.0,1016.0,976.0,1538.0,4121.0,4489.0,5313.0,2032.0,2117.0,1417.0,765.0,113.0,301.0,677.0,49.0,70.0,2077.0,1551.0,2157.0 3 | rplo 2 (Firmicutes),2592.0,19.0,0.0,6867.0,0.0,25.0,0.0,0.0,1781.0,2435.0,152.0,1641.0,195.0,302.0,241.0,731.0,3832.0,3523.0,4843.0 4 | rplo 60 (Firmicutes),0.0,231.0,174.0,128.0,0.0,0.0,0.0,0.0,0.0,47.0,51.0,628.0,49.0,569.0,0.0,63.0,0.0,0.0,0.0 5 | rplo 7 (Actinobacteria),457.0,285.0,170.0,330.0,196.0,122.0,337.0,171.0,508.0,310.0,252.0,233.0,363.0,328.0,22.0,248.0,488.0,345.0,326.0 6 | rplo 10 (Firmicutes),775.0,0.0,0.0,666.0,0.0,0.0,0.0,0.0,720.0,0.0,152.0,871.0,341.0,2289.0,0.0,0.0,0.0,0.0,0.0 7 | rplo 100 (Proteobacteria),55.0,0.0,0.0,19.0,132.0,56.0,91.0,16.0,29.0,35.0,171.0,25.0,36.0,45.0,130.0,31.0,33.0,44.0,18.0 8 | rplo 101 (Proteobacteria),74.0,0.0,25.0,26.0,0.0,0.0,0.0,66.0,21.0,16.0,26.0,0.0,917.0,92.0,0.0,0.0,0.0,20.0,24.0 9 | rplo 102 (Actinobacteria),130.0,138.0,23.0,46.0,80.0,21.0,0.0,20.0,56.0,128.0,92.0,0.0,0.0,27.0,40.0,0.0,81.0,53.0,21.0 10 | rplo 103 (Actinobacteria),267.0,197.0,0.0,0.0,0.0,20.0,0.0,0.0,240.0,110.0,0.0,0.0,19.0,71.0,0.0,66.0,70.0,28.0,55.0 11 | rplo 104 (Bacteroidetes),119.0,0.0,49.0,0.0,108.0,24.0,119.0,0.0,0.0,230.0,25.0,0.0,24.0,0.0,386.0,0.0,0.0,0.0,0.0 12 | rplo 105 (Proteobacteria),43.0,51.0,66.0,0.0,0.0,0.0,129.0,38.0,0.0,14.0,112.0,0.0,43.0,80.0,0.0,18.0,79.0,17.0,62.0 13 | rplo 106 (Acidobacteria),0.0,0.0,0.0,24.0,0.0,23.0,45.0,40.0,38.0,852.0,0.0,0.0,22.0,28.0,0.0,0.0,0.0,36.0,0.0 14 | rplo 107 (Actinobacteria),63.0,34.0,0.0,45.0,19.0,22.0,0.0,75.0,72.0,41.0,66.0,87.0,19.0,0.0,19.0,18.0,156.0,67.0,61.0 15 | rplo 108 (Actinobacteria),77.0,92.0,99.0,0.0,53.0,20.0,96.0,34.0,65.0,50.0,40.0,27.0,0.0,24.0,0.0,33.0,18.0,46.0,111.0 16 | rplo 109 (Proteobacteria),0.0,1014.0,0.0,0.0,0.0,20.0,0.0,0.0,17.0,50.0,0.0,81.0,20.0,0.0,0.0,0.0,0.0,31.0,19.0 17 | rplo 11 (Proteobacteria),0.0,152.0,153.0,936.0,0.0,155.0,669.0,154.0,0.0,28.0,181.0,355.0,0.0,0.0,712.0,56.0,100.0,309.0,105.0 18 | rplo 110 (Proteobacteria),0.0,0.0,0.0,0.0,80.0,22.0,155.0,38.0,19.0,0.0,23.0,0.0,88.0,82.0,40.0,38.0,41.0,18.0,0.0 19 | rplo 111 (Actinobacteria),0.0,18.0,71.0,24.0,124.0,71.0,23.0,103.0,39.0,0.0,24.0,64.0,45.0,29.0,0.0,0.0,63.0,34.0,22.0 20 | rplo 112 (Actinobacteria),76.0,31.0,0.0,61.0,0.0,119.0,78.0,35.0,49.0,75.0,0.0,54.0,0.0,0.0,17.0,50.0,36.0,124.0,56.0 21 | rplo 113 (unknown),0.0,81.0,0.0,22.0,19.0,42.0,182.0,91.0,0.0,40.0,0.0,142.0,21.0,0.0,0.0,18.0,0.0,16.0,20.0 22 | rplo 114 (Deinococcus-Thermus),75.0,20.0,26.0,76.0,0.0,26.0,23.0,0.0,21.0,32.0,26.0,0.0,25.0,0.0,0.0,0.0,89.0,159.0,48.0 23 | rplo 115 (Acidobacteria),42.0,17.0,0.0,0.0,38.0,130.0,42.0,38.0,36.0,27.0,0.0,0.0,0.0,105.0,19.0,73.0,0.0,0.0,348.0 24 | rplo 116 (unknown),0.0,416.0,0.0,136.0,0.0,90.0,0.0,0.0,0.0,0.0,0.0,60.0,0.0,0.0,0.0,0.0,0.0,34.0,0.0 25 | rplo 117 (Deferribacteres),50.0,40.0,0.0,0.0,0.0,0.0,48.0,0.0,0.0,160.0,53.0,136.0,0.0,0.0,0.0,0.0,46.0,156.0,146.0 26 | rplo 118 (Acidobacteria),45.0,0.0,0.0,119.0,41.0,0.0,23.0,40.0,35.0,15.0,47.0,31.0,68.0,28.0,0.0,19.0,0.0,0.0,0.0 27 | rplo 119 (Actinobacteria),0.0,17.0,21.0,44.0,57.0,22.0,63.0,37.0,36.0,14.0,22.0,29.0,21.0,26.0,19.0,0.0,39.0,67.0,61.0 28 | rplo 12 (Gemmatimonadetes),193.0,69.0,308.0,205.0,176.0,422.0,216.0,77.0,110.0,42.0,181.0,88.0,130.0,106.0,97.0,19.0,259.0,345.0,418.0 29 | rplo 120 (Actinobacteria),22.0,70.0,45.0,46.0,40.0,0.0,44.0,116.0,75.0,57.0,46.0,0.0,0.0,27.0,20.0,38.0,61.0,18.0,85.0 30 | rplo 121 (Actinobacteria),0.0,69.0,22.0,46.0,20.0,45.0,22.0,39.0,18.0,70.0,23.0,0.0,61.0,27.0,20.0,19.0,100.0,69.0,21.0 31 | rplo 122 (Cyanobacteria),0.0,0.0,0.0,51.0,0.0,25.0,0.0,43.0,0.0,0.0,25.0,67.0,0.0,0.0,22.0,21.0,22.0,38.0,47.0 32 | rplo 123 (Cyanobacteria),0.0,0.0,122.0,25.0,0.0,25.0,0.0,148.0,0.0,0.0,126.0,0.0,0.0,0.0,43.0,41.0,0.0,19.0,158.0 33 | rplo 124 (Chloroflexi),36.0,72.0,0.0,57.0,33.0,18.0,0.0,0.0,61.0,12.0,73.0,75.0,0.0,22.0,32.0,108.0,83.0,115.0,140.0 34 | rplo 125 (Actinobacteria),48.0,19.0,50.0,76.0,66.0,0.0,49.0,0.0,103.0,0.0,75.0,0.0,49.0,0.0,0.0,21.0,45.0,39.0,24.0 35 | rplo 126 (Gemmatimonadetes),22.0,17.0,22.0,46.0,179.0,0.0,44.0,58.0,0.0,28.0,46.0,0.0,22.0,0.0,0.0,55.0,119.0,17.0,0.0 36 | rplo 127 (Acidobacteria),61.0,122.0,0.0,32.0,56.0,63.0,62.0,55.0,26.0,100.0,0.0,0.0,31.0,38.0,0.0,0.0,113.0,49.0,0.0 37 | rplo 128 (Acidobacteria),0.0,18.0,23.0,24.0,38.0,23.0,23.0,81.0,58.0,0.0,120.0,32.0,23.0,0.0,41.0,20.0,124.0,125.0,21.0 38 | rplo 129 (Proteobacteria),0.0,32.0,0.0,21.0,0.0,0.0,0.0,71.0,0.0,0.0,42.0,28.0,0.0,0.0,0.0,0.0,19.0,16.0,0.0 39 | rplo 13 (Proteobacteria),22.0,18.0,0.0,0.0,21.0,0.0,0.0,0.0,593.0,335.0,71.0,0.0,586.0,2628.0,651.0,369.0,21.0,0.0,0.0 40 | rplo 130 (Verrucomicrobia),0.0,0.0,0.0,0.0,33.0,147.0,18.0,112.0,0.0,0.0,19.0,25.0,0.0,0.0,16.0,0.0,83.0,0.0,35.0 41 | rplo 131 (Proteobacteria),23.0,19.0,72.0,0.0,64.0,48.0,0.0,21.0,99.0,46.0,98.0,0.0,0.0,29.0,21.0,0.0,22.0,75.0,23.0 42 | rplo 132 (Proteobacteria),0.0,67.0,65.0,22.0,0.0,22.0,21.0,19.0,0.0,0.0,309.0,88.0,21.0,53.0,19.0,73.0,39.0,68.0,0.0 43 | rplo 133 (Proteobacteria),111.0,35.0,0.0,70.0,20.0,23.0,0.0,59.0,38.0,14.0,46.0,31.0,200.0,0.0,80.0,37.0,39.0,35.0,21.0 44 | rplo 134 (Bacteroidetes),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,20.0,0.0,0.0,0.0,1014.0,0.0,0.0,20.0,0.0,0.0,0.0 45 | rplo 135 (Actinobacteria),54.0,88.0,0.0,115.0,25.0,0.0,0.0,0.0,70.0,71.0,0.0,75.0,28.0,34.0,0.0,0.0,0.0,22.0,54.0 46 | rplo 136 (Cyanobacteria),0.0,0.0,24.0,0.0,0.0,73.0,24.0,0.0,0.0,15.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,37.0,0.0 47 | rplo 137 (Proteobacteria),0.0,35.0,67.0,69.0,0.0,112.0,22.0,97.0,37.0,14.0,223.0,29.0,0.0,0.0,20.0,38.0,20.0,70.0,0.0 48 | rplo 138 (Bacteroidetes),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,33.0,0.0,0.0,847.0,67.0,0.0,93.0,0.0,0.0,0.0 49 | rplo 139 (Actinobacteria),0.0,27.0,68.0,0.0,0.0,105.0,34.0,0.0,29.0,195.0,0.0,0.0,0.0,42.0,0.0,0.0,0.0,27.0,0.0 50 | rplo 14 (Proteobacteria),2136.0,51.0,0.0,23.0,411.0,0.0,0.0,94.0,1521.0,0.0,0.0,30.0,174.0,27.0,0.0,0.0,20.0,52.0,0.0 51 | rplo 140 (Chloroflexi),85.0,101.0,0.0,30.0,39.0,15.0,28.0,49.0,82.0,55.0,0.0,39.0,0.0,70.0,0.0,37.0,39.0,78.0,53.0 52 | rplo 141 (Firmicutes),68.0,27.0,0.0,36.0,62.0,17.0,0.0,45.0,29.0,11.0,0.0,47.0,101.0,42.0,0.0,15.0,78.0,54.0,16.0 53 | rplo 142 (Actinobacteria),0.0,31.0,81.0,0.0,0.0,0.0,40.0,0.0,0.0,51.0,124.0,0.0,35.0,144.0,36.0,0.0,0.0,63.0,38.0 54 | rplo 143 (Actinobacteria),24.0,39.0,25.0,0.0,22.0,0.0,45.0,86.0,21.0,0.0,102.0,131.0,49.0,30.0,108.0,0.0,0.0,19.0,47.0 55 | rplo 144 (Cyanobacteria),23.0,0.0,47.0,24.0,62.0,0.0,0.0,61.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,21.0,18.0,176.0 56 | rplo 145 (Actinobacteria),123.0,117.0,0.0,26.0,0.0,0.0,0.0,22.0,103.0,96.0,0.0,68.0,25.0,0.0,44.0,63.0,45.0,0.0,71.0 57 | rplo 146 (Chloroflexi),31.0,51.0,0.0,34.0,15.0,16.0,0.0,0.0,27.0,93.0,33.0,0.0,48.0,119.0,43.0,14.0,118.0,64.0,77.0 58 | rplo 147 (Actinobacteria),90.0,0.0,47.0,0.0,0.0,0.0,23.0,0.0,56.0,89.0,120.0,64.0,0.0,115.0,61.0,60.0,0.0,18.0,0.0 59 | rplo 148 (Chloroflexi),16.0,180.0,0.0,73.0,0.0,18.0,0.0,0.0,104.0,67.0,0.0,0.0,35.0,87.0,0.0,15.0,81.0,14.0,84.0 60 | rplo 149 (Actinobacteria),24.0,19.0,50.0,0.0,43.0,25.0,24.0,22.0,62.0,0.0,51.0,0.0,195.0,0.0,44.0,21.0,67.0,58.0,47.0 61 | rplo 15 (Firmicutes),41.0,51.0,129.0,156.0,273.0,243.0,277.0,306.0,55.0,111.0,157.0,206.0,42.0,105.0,115.0,92.0,195.0,151.0,81.0 62 | rplo 150 (Actinobacteria),113.0,18.0,0.0,24.0,21.0,0.0,0.0,62.0,59.0,59.0,0.0,32.0,0.0,86.0,0.0,40.0,21.0,18.0,157.0 63 | rplo 151 (Actinobacteria),43.0,52.0,66.0,91.0,0.0,0.0,22.0,0.0,37.0,84.0,45.0,0.0,0.0,54.0,0.0,56.0,0.0,0.0,126.0 64 | rplo 152 (Bacteroidetes),45.0,36.0,0.0,167.0,79.0,23.0,23.0,121.0,95.0,15.0,24.0,125.0,42.0,0.0,20.0,19.0,21.0,0.0,44.0 65 | rplo 153 (Bacteroidetes),0.0,0.0,0.0,0.0,21.0,24.0,71.0,63.0,0.0,15.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,38.0,23.0 66 | rplo 154 (Proteobacteria),0.0,70.0,113.0,0.0,0.0,0.0,66.0,39.0,0.0,29.0,69.0,61.0,66.0,0.0,0.0,111.0,0.0,35.0,64.0 67 | rplo 155 (Proteobacteria),70.0,75.0,24.0,94.0,0.0,24.0,0.0,0.0,0.0,0.0,98.0,97.0,0.0,0.0,42.0,0.0,0.0,37.0,45.0 68 | rplo 156 (Proteobacteria),20.0,49.0,0.0,0.0,0.0,0.0,21.0,18.0,0.0,13.0,0.0,0.0,21.0,25.0,0.0,35.0,38.0,0.0,0.0 69 | rplo 157 (Bacteroidetes),0.0,20.0,26.0,0.0,23.0,75.0,100.0,0.0,21.0,0.0,52.0,0.0,0.0,0.0,0.0,43.0,69.0,20.0,24.0 70 | rplo 158 (Chloroflexi),0.0,57.0,18.0,57.0,16.0,37.0,0.0,32.0,136.0,80.0,19.0,96.0,18.0,22.0,16.0,31.0,33.0,86.0,69.0 71 | rplo 159 (Actinobacteria),191.0,19.0,0.0,77.0,44.0,50.0,0.0,43.0,41.0,126.0,0.0,64.0,24.0,30.0,0.0,0.0,0.0,19.0,0.0 72 | rplo 16 (Proteobacteria),130.0,69.0,134.0,69.0,119.0,290.0,305.0,95.0,166.0,99.0,68.0,60.0,197.0,54.0,78.0,94.0,422.0,226.0,253.0 73 | rplo 160 (Actinobacteria),22.0,103.0,0.0,93.0,0.0,0.0,22.0,0.0,0.0,29.0,46.0,91.0,0.0,0.0,0.0,19.0,61.0,123.0,21.0 74 | rplo 161 (Proteobacteria),20.0,0.0,21.0,0.0,36.0,142.0,0.0,18.0,0.0,26.0,63.0,83.0,20.0,100.0,36.0,17.0,19.0,110.0,0.0 75 | rplo 162 (Actinobacteria),0.0,77.0,0.0,0.0,44.0,0.0,24.0,22.0,41.0,16.0,25.0,67.0,24.0,0.0,0.0,0.0,67.0,97.0,24.0 76 | rplo 163 (Actinobacteria),98.0,117.0,17.0,52.0,0.0,0.0,0.0,0.0,70.0,234.0,0.0,0.0,0.0,20.0,0.0,57.0,15.0,0.0,111.0 77 | rplo 164 (Cyanobacteria),0.0,0.0,48.0,0.0,0.0,0.0,45.0,0.0,0.0,0.0,0.0,0.0,70.0,0.0,42.0,0.0,105.0,19.0,45.0 78 | rplo 165 (Proteobacteria),44.0,17.0,45.0,0.0,20.0,0.0,0.0,20.0,19.0,14.0,23.0,0.0,88.0,109.0,0.0,19.0,20.0,88.0,0.0 79 | rplo 166 (Actinobacteria),65.0,17.0,22.0,91.0,20.0,22.0,0.0,19.0,55.0,70.0,0.0,60.0,0.0,27.0,0.0,19.0,40.0,86.0,63.0 80 | rplo 167 (Chloroflexi),54.0,115.0,0.0,19.0,33.0,0.0,0.0,32.0,46.0,70.0,19.0,0.0,36.0,90.0,0.0,62.0,17.0,0.0,140.0 81 | rplo 168 (Proteobacteria),0.0,47.0,0.0,21.0,54.0,0.0,20.0,18.0,0.0,13.0,311.0,27.0,20.0,0.0,18.0,17.0,0.0,0.0,58.0 82 | rplo 169 (Proteobacteria),0.0,33.0,44.0,68.0,19.0,152.0,21.0,38.0,18.0,14.0,89.0,29.0,0.0,0.0,38.0,73.0,20.0,0.0,21.0 83 | rplo 17 (Actinobacteria),97.0,193.0,221.0,179.0,264.0,149.0,195.0,151.0,21.0,125.0,102.0,131.0,122.0,30.0,44.0,0.0,379.0,288.0,327.0 84 | rplo 170 (Proteobacteria),0.0,52.0,22.0,23.0,0.0,290.0,22.0,19.0,0.0,14.0,46.0,118.0,0.0,0.0,20.0,75.0,0.0,52.0,21.0 85 | rplo 171 (Actinobacteria),24.0,39.0,0.0,77.0,0.0,0.0,0.0,22.0,103.0,63.0,25.0,34.0,0.0,0.0,0.0,0.0,90.0,97.0,47.0 86 | rplo 172 (Firmicutes),38.0,15.0,0.0,81.0,87.0,20.0,75.0,34.0,30.0,25.0,0.0,0.0,0.0,24.0,0.0,33.0,193.0,15.0,55.0 87 | rplo 173 (Proteobacteria),0.0,17.0,89.0,23.0,0.0,67.0,22.0,0.0,18.0,14.0,23.0,0.0,0.0,54.0,19.0,19.0,0.0,17.0,21.0 88 | rplo 174 (Bacteroidetes),0.0,38.0,0.0,47.0,65.0,24.0,72.0,42.0,0.0,31.0,0.0,33.0,96.0,0.0,85.0,41.0,0.0,38.0,0.0 89 | rplo 175 (Proteobacteria),20.0,49.0,21.0,22.0,56.0,21.0,21.0,18.0,17.0,40.0,0.0,28.0,41.0,0.0,0.0,0.0,76.0,16.0,20.0 90 | rplo 176 (Proteobacteria),0.0,74.0,24.0,0.0,21.0,24.0,23.0,42.0,40.0,29.0,49.0,161.0,0.0,0.0,21.0,40.0,22.0,19.0,113.0 91 | rplo 177 (Proteobacteria),68.0,36.0,0.0,0.0,0.0,44.0,23.0,0.0,38.0,44.0,24.0,0.0,45.0,84.0,0.0,39.0,21.0,36.0,109.0 92 | rplo 178 (Acidobacteria),23.0,36.0,22.0,0.0,60.0,0.0,91.0,40.0,0.0,29.0,68.0,0.0,66.0,0.0,41.0,58.0,42.0,90.0,44.0 93 | rplo 179 (Actinobacteria),137.0,109.0,0.0,0.0,42.0,0.0,0.0,0.0,0.0,131.0,0.0,63.0,46.0,28.0,0.0,20.0,21.0,0.0,88.0 94 | rplo 18 (Gemmatimonadetes),356.0,35.0,137.0,234.0,202.0,430.0,157.0,79.0,113.0,29.0,186.0,123.0,134.0,305.0,279.0,192.0,309.0,248.0,129.0 95 | rplo 180 (Actinobacteria),44.0,17.0,22.0,23.0,0.0,0.0,22.0,0.0,19.0,99.0,69.0,91.0,22.0,54.0,39.0,0.0,0.0,105.0,42.0 96 | rplo 181 (Actinobacteria),0.0,35.0,0.0,0.0,20.0,67.0,22.0,0.0,0.0,99.0,0.0,0.0,0.0,54.0,20.0,19.0,0.0,17.0,39.0 97 | rplo 182 (Bacteroidetes),47.0,0.0,24.0,25.0,43.0,0.0,72.0,21.0,20.0,15.0,0.0,0.0,24.0,30.0,0.0,0.0,39.0,35.0,88.0 98 | rplo 183 (Actinobacteria),36.0,29.0,0.0,0.0,132.0,37.0,37.0,0.0,31.0,47.0,38.0,0.0,0.0,45.0,0.0,0.0,34.0,29.0,35.0 99 | rplo 184 (Proteobacteria),0.0,0.0,634.0,42.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,36.0,17.0,0.0,16.0,0.0 100 | rplo 185 (Acidobacteria),25.0,40.0,0.0,107.0,23.0,0.0,51.0,68.0,0.0,0.0,0.0,0.0,25.0,0.0,0.0,0.0,23.0,20.0,0.0 101 | rplo 186 (Proteobacteria),24.0,19.0,0.0,25.0,22.0,25.0,121.0,0.0,81.0,45.0,0.0,33.0,24.0,60.0,87.0,0.0,44.0,0.0,23.0 102 | rplo 187 (Thermotogae),91.0,147.0,0.0,73.0,21.0,24.0,0.0,0.0,38.0,43.0,0.0,63.0,0.0,58.0,0.0,0.0,0.0,0.0,0.0 103 | rplo 188 (Chloroflexi),72.0,85.0,0.0,76.0,16.0,0.0,18.0,16.0,31.0,126.0,0.0,0.0,18.0,22.0,0.0,46.0,33.0,29.0,35.0 104 | rplo 189 (Chloroflexi),0.0,0.0,73.0,19.0,31.0,37.0,36.0,64.0,0.0,0.0,37.0,0.0,0.0,0.0,0.0,31.0,16.0,28.0,35.0 105 | rplo 19 (Firmicutes),0.0,0.0,4488.0,0.0,0.0,0.0,0.0,0.0,0.0,14.0,0.0,0.0,0.0,0.0,0.0,0.0,22.0,0.0,0.0 106 | rplo 190 (Planctomycetes),0.0,0.0,20.0,0.0,35.0,40.0,39.0,17.0,0.0,0.0,0.0,0.0,0.0,24.0,0.0,33.0,0.0,0.0,19.0 107 | rplo 191 (Bacteroidetes),0.0,38.0,24.0,50.0,41.0,0.0,24.0,0.0,20.0,0.0,122.0,32.0,0.0,30.0,21.0,20.0,0.0,38.0,0.0 108 | rplo 192 (Actinobacteria),145.0,38.0,0.0,51.0,0.0,0.0,0.0,0.0,82.0,140.0,0.0,0.0,0.0,0.0,0.0,42.0,22.0,0.0,71.0 109 | rplo 193 (Proteobacteria),53.0,0.0,53.0,0.0,48.0,0.0,53.0,0.0,0.0,34.0,0.0,74.0,53.0,66.0,0.0,46.0,146.0,0.0,0.0 110 | rplo 194 (Proteobacteria),0.0,50.0,23.0,116.0,0.0,0.0,0.0,58.0,0.0,0.0,23.0,122.0,0.0,0.0,0.0,38.0,0.0,69.0,20.0 111 | rplo 195 (Gemmatimonadetes),21.0,17.0,22.0,0.0,0.0,22.0,0.0,19.0,18.0,0.0,152.0,60.0,22.0,0.0,58.0,0.0,40.0,34.0,21.0 112 | rplo 196 (Thermotogae),19.0,0.0,20.0,0.0,50.0,40.0,0.0,17.0,33.0,25.0,20.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 113 | rplo 197 (Actinobacteria),0.0,29.0,19.0,39.0,17.0,0.0,18.0,33.0,0.0,0.0,57.0,51.0,0.0,0.0,16.0,0.0,33.0,73.0,71.0 114 | rplo 198 (Acidobacteria),0.0,34.0,0.0,23.0,39.0,20.0,65.0,77.0,73.0,56.0,0.0,0.0,22.0,52.0,19.0,18.0,0.0,34.0,104.0 115 | rplo 199 (Thermobaculum),21.0,66.0,0.0,0.0,0.0,0.0,0.0,0.0,53.0,27.0,0.0,83.0,42.0,26.0,0.0,18.0,0.0,50.0,40.0 116 | rplo 20 (Actinobacteria),46.0,96.0,174.0,101.0,110.0,124.0,97.0,22.0,103.0,109.0,152.0,200.0,71.0,30.0,87.0,167.0,90.0,310.0,233.0 117 | rplo 200 (Actinobacteria),61.0,32.0,42.0,64.0,0.0,62.0,0.0,18.0,34.0,105.0,21.0,0.0,0.0,0.0,18.0,52.0,0.0,0.0,39.0 118 | rplo 201 (Acidobacteria),0.0,18.0,0.0,24.0,40.0,46.0,66.0,20.0,75.0,14.0,23.0,31.0,45.0,0.0,0.0,38.0,62.0,36.0,0.0 119 | rplo 202 (Firmicutes),22.0,89.0,0.0,0.0,20.0,203.0,155.0,20.0,0.0,0.0,23.0,0.0,22.0,0.0,0.0,19.0,0.0,0.0,0.0 120 | rplo 203 (Chloroflexi),72.0,43.0,0.0,19.0,0.0,19.0,0.0,0.0,15.0,234.0,0.0,49.0,18.0,112.0,0.0,16.0,17.0,0.0,0.0 121 | rplo 204 (Bacteroidetes),24.0,38.0,25.0,25.0,44.0,0.0,24.0,21.0,0.0,15.0,25.0,33.0,0.0,0.0,0.0,0.0,22.0,38.0,0.0 122 | rplo 205 (Deinococcus-Thermus),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,20.0,0.0,0.0,0.0,696.0,0.0,21.0,0.0,0.0,0.0,0.0 123 | rplo 206 (Actinobacteria),0.0,105.0,0.0,0.0,79.0,90.0,0.0,39.0,37.0,57.0,0.0,0.0,0.0,0.0,40.0,0.0,40.0,0.0,43.0 124 | rplo 207 (Proteobacteria),0.0,18.0,68.0,24.0,0.0,156.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,231.0,0.0 125 | rplo 208 (Acidobacteria),0.0,0.0,0.0,0.0,0.0,0.0,80.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,37.0,0.0,78.0 126 | rplo 209 (Proteobacteria),22.0,0.0,0.0,0.0,79.0,22.0,22.0,19.0,0.0,0.0,23.0,0.0,0.0,27.0,20.0,0.0,60.0,87.0,63.0 127 | rplo 21 (Actinobacteria),105.0,283.0,0.0,199.0,114.0,108.0,147.0,165.0,213.0,190.0,154.0,232.0,169.0,26.0,19.0,198.0,155.0,184.0,142.0 128 | rplo 210 (Proteobacteria),39.0,62.0,0.0,41.0,36.0,0.0,0.0,35.0,33.0,76.0,123.0,0.0,0.0,49.0,0.0,0.0,36.0,31.0,0.0 129 | rplo 211 (Actinobacteria),24.0,76.0,0.0,102.0,0.0,0.0,73.0,0.0,41.0,93.0,0.0,33.0,0.0,0.0,0.0,21.0,22.0,0.0,70.0 130 | rplo 212 (unknown),0.0,37.0,0.0,33.0,0.0,0.0,0.0,0.0,26.0,80.0,32.0,21.0,0.0,212.0,14.0,13.0,0.0,12.0,60.0 131 | rplo 213 (Bacteroidetes),0.0,0.0,49.0,0.0,0.0,0.0,119.0,42.0,0.0,0.0,0.0,30.0,0.0,0.0,43.0,41.0,44.0,0.0,69.0 132 | rplo 214 (Bacteroidetes),0.0,0.0,24.0,0.0,64.0,73.0,48.0,0.0,20.0,0.0,0.0,0.0,0.0,30.0,0.0,0.0,22.0,38.0,0.0 133 | rplo 215 (Verrucomicrobia),111.0,0.0,0.0,0.0,117.0,0.0,0.0,0.0,47.0,36.0,0.0,0.0,56.0,0.0,0.0,0.0,34.0,15.0,0.0 134 | rplo 216 (Actinobacteria),0.0,17.0,44.0,46.0,20.0,22.0,43.0,19.0,0.0,14.0,68.0,60.0,43.0,0.0,0.0,17.0,20.0,0.0,0.0 135 | rplo 217 (Proteobacteria),0.0,17.0,41.0,23.0,0.0,22.0,65.0,0.0,0.0,14.0,45.0,30.0,0.0,81.0,39.0,74.0,40.0,52.0,42.0 136 | rplo 218 (Firmicutes),0.0,0.0,0.0,38.0,0.0,0.0,0.0,32.0,0.0,0.0,0.0,74.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 137 | rplo 219 (Thermotogae),0.0,0.0,0.0,0.0,177.0,55.0,54.0,32.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.0,0.0,0.0 138 | rplo 22 (Actinobacteria),145.0,200.0,129.0,222.0,114.0,43.0,105.0,112.0,178.0,217.0,197.0,145.0,105.0,155.0,0.0,144.0,78.0,50.0,202.0 139 | rplo 220 (Chloroflexi),24.0,0.0,24.0,0.0,21.0,194.0,0.0,0.0,0.0,0.0,99.0,32.0,0.0,0.0,0.0,0.0,0.0,35.0,160.0 140 | rplo 221 (Proteobacteria),44.0,17.0,0.0,0.0,0.0,22.0,0.0,19.0,0.0,14.0,68.0,0.0,0.0,27.0,39.0,0.0,40.0,35.0,21.0 141 | rplo 222 (Proteobacteria),43.0,17.0,22.0,0.0,79.0,22.0,21.0,0.0,54.0,0.0,0.0,0.0,43.0,0.0,38.0,0.0,100.0,52.0,21.0 142 | rplo 223 (Chloroflexi),20.0,47.0,0.0,0.0,0.0,41.0,20.0,0.0,50.0,0.0,0.0,27.0,40.0,0.0,36.0,34.0,127.0,47.0,19.0 143 | rplo 224 (Chloroflexi),30.0,72.0,0.0,32.0,14.0,16.0,0.0,13.0,0.0,49.0,32.0,42.0,30.0,0.0,68.0,13.0,14.0,12.0,58.0 144 | rplo 225 (Firmicutes),0.0,56.0,0.0,56.0,48.0,52.0,0.0,47.0,15.0,11.0,0.0,0.0,18.0,110.0,0.0,0.0,98.0,28.0,0.0 145 | rplo 226 (Actinobacteria),0.0,61.0,0.0,39.0,17.0,0.0,37.0,17.0,32.0,49.0,0.0,52.0,0.0,0.0,34.0,16.0,35.0,46.0,37.0 146 | rplo 227 (Actinobacteria),50.0,79.0,0.0,18.0,0.0,0.0,0.0,30.0,84.0,107.0,0.0,23.0,17.0,0.0,0.0,14.0,13.0,13.0,16.0 147 | rplo 228 (Proteobacteria),23.0,0.0,0.0,0.0,42.0,47.0,70.0,0.0,0.0,0.0,24.0,0.0,23.0,58.0,39.0,0.0,21.0,37.0,0.0 148 | rplo 229 (Proteobacteria),0.0,0.0,23.0,24.0,38.0,0.0,45.0,20.0,19.0,29.0,91.0,0.0,0.0,0.0,81.0,136.0,0.0,18.0,0.0 149 | rplo 23 (Proteobacteria),38.0,45.0,955.0,20.0,87.0,117.0,172.0,34.0,48.0,49.0,239.0,132.0,0.0,24.0,361.0,82.0,35.0,91.0,92.0 150 | rplo 230 (Proteobacteria),69.0,0.0,47.0,0.0,63.0,24.0,23.0,21.0,0.0,30.0,0.0,0.0,0.0,0.0,0.0,20.0,21.0,37.0,0.0 151 | rplo 231 (Bacteroidetes),24.0,0.0,0.0,126.0,0.0,0.0,24.0,43.0,20.0,44.0,0.0,33.0,0.0,0.0,0.0,0.0,22.0,56.0,23.0 152 | rplo 232 (Bacteroidetes),43.0,17.0,0.0,69.0,0.0,0.0,0.0,0.0,0.0,14.0,91.0,120.0,44.0,54.0,20.0,0.0,20.0,35.0,0.0 153 | rplo 233 (Bacteroidetes),166.0,0.0,0.0,25.0,43.0,0.0,0.0,0.0,60.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,85.0,38.0,0.0 154 | rplo 234 (Gemmatimonadetes),138.0,37.0,0.0,24.0,166.0,0.0,0.0,0.0,0.0,0.0,0.0,32.0,0.0,0.0,0.0,0.0,43.0,0.0,45.0 155 | rplo 235 (Bacteroidetes),47.0,19.0,0.0,23.0,129.0,94.0,24.0,21.0,0.0,15.0,0.0,65.0,0.0,0.0,21.0,0.0,44.0,38.0,0.0 156 | rplo 236 (Proteobacteria),20.0,0.0,42.0,0.0,18.0,0.0,41.0,18.0,17.0,13.0,42.0,0.0,0.0,0.0,18.0,119.0,0.0,32.0,20.0 157 | rplo 237 (Firmicutes),0.0,17.0,0.0,0.0,20.0,43.0,43.0,19.0,37.0,14.0,23.0,0.0,0.0,0.0,0.0,0.0,20.0,0.0,21.0 158 | rplo 238 (Acidobacteria),0.0,0.0,0.0,0.0,25.0,0.0,55.0,24.0,23.0,0.0,0.0,0.0,83.0,0.0,0.0,24.0,126.0,22.0,27.0 159 | rplo 239 (Proteobacteria),0.0,20.0,0.0,52.0,23.0,0.0,25.0,22.0,0.0,16.0,52.0,103.0,49.0,31.0,67.0,21.0,23.0,20.0,0.0 160 | rplo 24 (Actinobacteria),73.0,77.0,50.0,128.0,396.0,25.0,316.0,130.0,144.0,94.0,102.0,134.0,49.0,0.0,87.0,230.0,200.0,155.0,259.0 161 | rplo 240 (Actinobacteria),19.0,31.0,0.0,41.0,89.0,0.0,20.0,0.0,0.0,0.0,20.0,54.0,0.0,0.0,18.0,0.0,36.0,30.0,0.0 162 | rplo 241 (Gemmatimonadetes),0.0,0.0,0.0,38.0,0.0,0.0,143.0,29.0,0.0,0.0,75.0,49.0,0.0,0.0,60.0,31.0,0.0,28.0,67.0 163 | rplo 242 (Acidobacteria),48.0,38.0,25.0,0.0,22.0,0.0,0.0,0.0,61.0,31.0,50.0,0.0,24.0,89.0,0.0,21.0,0.0,38.0,23.0 164 | rplo 243 (Cyanobacteria),22.0,0.0,0.0,0.0,0.0,114.0,22.0,39.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,20.0 165 | rplo 244 (Bacteroidetes),95.0,19.0,0.0,25.0,22.0,98.0,24.0,0.0,40.0,15.0,0.0,64.0,0.0,30.0,0.0,20.0,0.0,57.0,23.0 166 | rplo 245 (Firmicutes),0.0,0.0,45.0,23.0,59.0,22.0,65.0,0.0,0.0,14.0,91.0,0.0,0.0,27.0,0.0,0.0,20.0,17.0,0.0 167 | rplo 246 (Aquificae),0.0,0.0,22.0,68.0,39.0,43.0,0.0,0.0,0.0,0.0,66.0,60.0,0.0,0.0,0.0,0.0,40.0,0.0,0.0 168 | rplo 247 (Firmicutes),20.0,36.0,0.0,0.0,0.0,0.0,42.0,0.0,0.0,58.0,94.0,31.0,0.0,28.0,20.0,0.0,0.0,0.0,0.0 169 | rplo 248 (Cyanobacteria),0.0,0.0,0.0,0.0,22.0,0.0,72.0,0.0,0.0,0.0,0.0,0.0,48.0,0.0,0.0,0.0,22.0,0.0,0.0 170 | rplo 249 (Proteobacteria),49.0,20.0,0.0,26.0,23.0,0.0,0.0,0.0,21.0,32.0,26.0,68.0,0.0,0.0,0.0,0.0,46.0,0.0,24.0 171 | rplo 25 (Acidobacteria),22.0,51.0,0.0,93.0,714.0,90.0,243.0,566.0,37.0,199.0,0.0,30.0,88.0,82.0,20.0,19.0,18.0,70.0,107.0 172 | rplo 250 (Actinobacteria),48.0,135.0,0.0,0.0,22.0,0.0,0.0,22.0,41.0,16.0,0.0,0.0,73.0,60.0,0.0,21.0,45.0,0.0,0.0 173 | rplo 251 (Proteobacteria),0.0,0.0,45.0,0.0,0.0,0.0,85.0,39.0,37.0,0.0,0.0,0.0,44.0,0.0,40.0,0.0,81.0,31.0,0.0 174 | rplo 252 (Thermotogae),0.0,18.0,24.0,50.0,43.0,0.0,70.0,21.0,99.0,15.0,0.0,0.0,24.0,0.0,0.0,0.0,22.0,37.0,21.0 175 | rplo 253 (Actinobacteria),0.0,0.0,25.0,76.0,0.0,25.0,0.0,22.0,41.0,47.0,51.0,0.0,0.0,0.0,44.0,0.0,0.0,0.0,93.0 176 | rplo 254 (Proteobacteria),0.0,0.0,0.0,0.0,135.0,0.0,25.0,0.0,0.0,16.0,0.0,0.0,75.0,0.0,0.0,0.0,183.0,20.0,24.0 177 | rplo 255 (Proteobacteria),0.0,137.0,19.0,23.0,20.0,22.0,0.0,39.0,0.0,14.0,0.0,60.0,22.0,0.0,0.0,37.0,0.0,17.0,21.0 178 | rplo 256 (Acidobacteria),89.0,18.0,0.0,0.0,0.0,0.0,0.0,0.0,38.0,0.0,0.0,28.0,67.0,0.0,0.0,19.0,0.0,36.0,0.0 179 | rplo 257 (Chloroflexi),0.0,34.0,22.0,0.0,19.0,22.0,21.0,0.0,0.0,14.0,22.0,59.0,21.0,0.0,19.0,18.0,20.0,51.0,41.0 180 | rplo 258 (Actinobacteria),51.0,94.0,0.0,36.0,0.0,0.0,0.0,15.0,57.0,110.0,0.0,0.0,0.0,0.0,0.0,29.0,0.0,14.0,49.0 181 | rplo 259 (Proteobacteria),159.0,0.0,23.0,48.0,21.0,0.0,0.0,0.0,78.0,0.0,0.0,0.0,115.0,0.0,0.0,0.0,42.0,0.0,0.0 182 | rplo 26 (Actinobacteria),242.0,586.0,0.0,178.0,175.0,0.0,24.0,230.0,141.0,173.0,25.0,62.0,73.0,0.0,0.0,230.0,134.0,251.0,141.0 183 | rplo 260 (Acidobacteria),0.0,0.0,21.0,0.0,42.0,23.0,0.0,0.0,19.0,0.0,116.0,0.0,0.0,57.0,124.0,0.0,0.0,0.0,0.0 184 | rplo 261 (Bacteroidetes),0.0,27.0,0.0,0.0,31.0,69.0,33.0,0.0,0.0,65.0,0.0,0.0,0.0,0.0,0.0,0.0,62.0,54.0,0.0 185 | rplo 262 (Actinobacteria),45.0,96.0,0.0,48.0,0.0,0.0,30.0,0.0,25.0,49.0,0.0,41.0,0.0,0.0,0.0,13.0,69.0,12.0,44.0 186 | rplo 263 (Cyanobacteria),0.0,0.0,25.0,0.0,44.0,0.0,24.0,21.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,67.0,19.0,21.0 187 | rplo 264 (Actinobacteria),0.0,0.0,25.0,0.0,22.0,0.0,49.0,65.0,0.0,0.0,51.0,101.0,0.0,0.0,22.0,21.0,0.0,58.0,24.0 188 | rplo 265 (Verrucomicrobia),22.0,0.0,24.0,24.0,42.0,24.0,46.0,59.0,0.0,13.0,48.0,0.0,23.0,0.0,0.0,0.0,21.0,0.0,0.0 189 | rplo 266 (Proteobacteria),0.0,53.0,43.0,0.0,0.0,46.0,22.0,0.0,0.0,0.0,0.0,62.0,45.0,0.0,0.0,0.0,0.0,18.0,22.0 190 | rplo 267 (Proteobacteria),0.0,0.0,23.0,23.0,0.0,68.0,0.0,20.0,0.0,14.0,69.0,27.0,0.0,0.0,0.0,38.0,0.0,0.0,43.0 191 | rplo 268 (Chloroflexi),0.0,0.0,75.0,0.0,17.0,18.0,37.0,0.0,0.0,24.0,93.0,0.0,18.0,0.0,82.0,16.0,0.0,15.0,35.0 192 | rplo 269 (Actinobacteria),43.0,18.0,0.0,24.0,0.0,0.0,23.0,0.0,20.0,119.0,0.0,0.0,0.0,58.0,42.0,0.0,0.0,0.0,22.0 193 | rplo 27 (Proteobacteria),213.0,119.0,0.0,68.0,233.0,152.0,64.0,132.0,106.0,207.0,22.0,29.0,64.0,159.0,38.0,110.0,177.0,68.0,248.0 194 | rplo 270 (Actinobacteria),0.0,17.0,44.0,23.0,0.0,0.0,21.0,38.0,0.0,0.0,67.0,0.0,0.0,0.0,38.0,55.0,0.0,34.0,41.0 195 | rplo 271 (Proteobacteria),0.0,17.0,153.0,90.0,0.0,22.0,0.0,0.0,0.0,0.0,0.0,59.0,0.0,27.0,0.0,18.0,0.0,0.0,0.0 196 | rplo 272 (Thermotogae),0.0,37.0,0.0,0.0,0.0,0.0,0.0,42.0,40.0,0.0,0.0,0.0,24.0,0.0,0.0,20.0,22.0,56.0,23.0 197 | rplo 273 (Acidobacteria),45.0,0.0,0.0,47.0,61.0,0.0,0.0,0.0,19.0,14.0,0.0,0.0,66.0,0.0,0.0,0.0,21.0,0.0,0.0 198 | rplo 274 (Bacteroidetes),24.0,0.0,0.0,50.0,0.0,24.0,0.0,42.0,0.0,31.0,0.0,190.0,0.0,0.0,0.0,41.0,0.0,0.0,0.0 199 | rplo 275 (Chloroflexi),21.0,17.0,43.0,0.0,19.0,0.0,21.0,37.0,0.0,14.0,44.0,29.0,21.0,0.0,19.0,0.0,39.0,17.0,0.0 200 | rplo 276 (Bacteroidetes),0.0,0.0,0.0,0.0,22.0,0.0,0.0,21.0,0.0,0.0,0.0,0.0,398.0,0.0,0.0,0.0,22.0,0.0,0.0 201 | rplo 277 (Chloroflexi),72.0,0.0,0.0,0.0,14.0,0.0,15.0,0.0,50.0,10.0,0.0,41.0,15.0,0.0,0.0,37.0,69.0,0.0,57.0 202 | rplo 278 (unknown),81.0,32.0,0.0,85.0,0.0,0.0,0.0,36.0,34.0,79.0,0.0,0.0,0.0,0.0,0.0,35.0,0.0,0.0,0.0 203 | rplo 279 (Chloroflexi),18.0,42.0,0.0,0.0,16.0,0.0,0.0,47.0,15.0,45.0,0.0,0.0,18.0,22.0,0.0,15.0,0.0,98.0,0.0 204 | rplo 28 (Proteobacteria),19.0,46.0,40.0,82.0,106.0,80.0,78.0,139.0,50.0,63.0,408.0,107.0,20.0,145.0,263.0,100.0,108.0,47.0,94.0 205 | rplo 280 (Acidobacteria),21.0,36.0,0.0,0.0,41.0,92.0,0.0,0.0,38.0,15.0,23.0,0.0,0.0,56.0,0.0,0.0,21.0,0.0,0.0 206 | rplo 281 (Chloroflexi),0.0,14.0,19.0,19.0,0.0,37.0,0.0,16.0,0.0,23.0,114.0,50.0,0.0,23.0,0.0,16.0,0.0,14.0,53.0 207 | rplo 282 (Acidobacteria),23.0,0.0,0.0,48.0,0.0,0.0,0.0,80.0,0.0,0.0,0.0,31.0,0.0,0.0,0.0,19.0,0.0,18.0,22.0 208 | rplo 283 (Verrucomicrobia),96.0,19.0,0.0,23.0,65.0,25.0,0.0,0.0,61.0,62.0,0.0,0.0,0.0,0.0,0.0,0.0,22.0,19.0,23.0 209 | rplo 284 (Acidobacteria),22.0,0.0,0.0,47.0,61.0,69.0,22.0,40.0,0.0,0.0,23.0,0.0,67.0,0.0,0.0,0.0,0.0,36.0,22.0 210 | rplo 285 (Proteobacteria),0.0,0.0,91.0,23.0,0.0,0.0,22.0,20.0,19.0,0.0,46.0,0.0,86.0,0.0,20.0,57.0,0.0,0.0,21.0 211 | rplo 286 (unknown),0.0,0.0,0.0,71.0,20.0,0.0,0.0,40.0,19.0,0.0,0.0,62.0,0.0,0.0,0.0,0.0,0.0,70.0,22.0 212 | rplo 287 (Chloroflexi),18.0,0.0,0.0,19.0,0.0,18.0,0.0,0.0,0.0,70.0,19.0,25.0,0.0,90.0,0.0,73.0,0.0,14.0,52.0 213 | rplo 288 (Deinococcus-Thermus),0.0,0.0,0.0,0.0,0.0,21.0,21.0,19.0,0.0,0.0,0.0,0.0,0.0,26.0,0.0,0.0,39.0,33.0,0.0 214 | rplo 289 (Proteobacteria),21.0,67.0,0.0,0.0,0.0,0.0,21.0,37.0,0.0,14.0,22.0,29.0,0.0,0.0,0.0,18.0,39.0,33.0,0.0 215 | rplo 29 (Gemmatimonadetes),0.0,55.0,0.0,98.0,21.0,1131.0,23.0,330.0,0.0,75.0,170.0,128.0,0.0,29.0,21.0,0.0,0.0,184.0,67.0 216 | rplo 290 (Acidobacteria),0.0,0.0,0.0,0.0,0.0,46.0,91.0,0.0,0.0,0.0,0.0,31.0,0.0,0.0,0.0,19.0,42.0,0.0,0.0 217 | rplo 291 (Nitrospirae),0.0,19.0,0.0,50.0,22.0,0.0,0.0,0.0,20.0,31.0,25.0,33.0,24.0,59.0,0.0,0.0,0.0,0.0,0.0 218 | rplo 292 (Actinobacteria),0.0,46.0,0.0,0.0,0.0,0.0,19.0,52.0,0.0,13.0,20.0,80.0,0.0,0.0,0.0,17.0,18.0,0.0,38.0 219 | rplo 293 (Acidobacteria),0.0,18.0,0.0,0.0,0.0,46.0,0.0,79.0,19.0,0.0,23.0,31.0,22.0,0.0,0.0,0.0,21.0,18.0,0.0 220 | rplo 294 (Verrucomicrobia),24.0,0.0,25.0,72.0,0.0,0.0,24.0,22.0,0.0,0.0,0.0,0.0,0.0,30.0,0.0,20.0,0.0,0.0,24.0 221 | rplo 295 (Actinobacteria),110.0,58.0,0.0,0.0,0.0,0.0,0.0,0.0,31.0,48.0,38.0,0.0,0.0,0.0,33.0,0.0,0.0,59.0,0.0 222 | rplo 296 (Gemmatimonadetes),0.0,35.0,0.0,0.0,20.0,45.0,19.0,59.0,38.0,0.0,23.0,0.0,0.0,0.0,20.0,0.0,0.0,0.0,0.0 223 | rplo 297 (Proteobacteria),0.0,0.0,0.0,24.0,21.0,0.0,46.0,20.0,0.0,0.0,24.0,0.0,0.0,0.0,0.0,20.0,0.0,0.0,22.0 224 | rplo 298 (Chloroflexi),18.0,72.0,0.0,38.0,0.0,0.0,0.0,0.0,107.0,23.0,38.0,25.0,0.0,0.0,0.0,16.0,0.0,14.0,35.0 225 | rplo 299 (unknown),22.0,35.0,0.0,0.0,0.0,23.0,22.0,0.0,0.0,29.0,23.0,0.0,22.0,28.0,0.0,19.0,21.0,18.0,0.0 226 | rplo 3 (Proteobacteria),164.0,147.0,83.0,43.0,130.0,147.0,206.0,110.0,1960.0,1279.0,750.0,85.0,3465.0,1373.0,3582.0,2145.0,188.0,194.0,79.0 227 | rplo 30 (Proteobacteria),203.0,89.0,69.0,72.0,82.0,46.0,45.0,59.0,210.0,307.0,47.0,218.0,113.0,140.0,81.0,155.0,167.0,36.0,152.0 228 | rplo 300 (Proteobacteria),0.0,0.0,0.0,0.0,0.0,22.0,21.0,19.0,18.0,27.0,44.0,87.0,0.0,0.0,19.0,18.0,19.0,34.0,0.0 229 | rplo 301 (Chloroflexi),50.0,28.0,18.0,19.0,0.0,36.0,53.0,0.0,0.0,23.0,110.0,24.0,0.0,0.0,16.0,0.0,0.0,0.0,17.0 230 | rplo 302 (unknown),0.0,0.0,0.0,0.0,41.0,46.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,18.0,22.0 231 | rplo 303 (Actinobacteria),24.0,19.0,25.0,0.0,44.0,0.0,0.0,22.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,42.0,22.0,58.0,24.0 232 | rplo 304 (Chloroflexi),23.0,18.0,0.0,0.0,0.0,0.0,0.0,0.0,79.0,135.0,0.0,0.0,0.0,0.0,0.0,80.0,0.0,0.0,67.0 233 | rplo 305 (Firmicutes),0.0,16.0,0.0,0.0,18.0,21.0,0.0,36.0,34.0,13.0,42.0,0.0,0.0,0.0,0.0,0.0,0.0,14.0,0.0 234 | rplo 306 (Thermotogae),0.0,0.0,0.0,0.0,0.0,142.0,60.0,35.0,17.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 235 | rplo 307 (Acidobacteria),17.0,54.0,0.0,36.0,16.0,35.0,0.0,15.0,14.0,21.0,0.0,24.0,17.0,0.0,0.0,15.0,0.0,27.0,0.0 236 | rplo 308 (unknown),0.0,35.0,0.0,0.0,20.0,0.0,67.0,0.0,36.0,0.0,0.0,30.0,22.0,0.0,0.0,38.0,41.0,18.0,22.0 237 | rplo 309 (unknown),89.0,35.0,0.0,0.0,20.0,22.0,0.0,20.0,35.0,14.0,0.0,0.0,0.0,28.0,20.0,0.0,0.0,0.0,43.0 238 | rplo 31 (Firmicutes),0.0,0.0,74.0,0.0,0.0,0.0,0.0,0.0,797.0,0.0,0.0,132.0,1082.0,30.0,0.0,663.0,22.0,0.0,0.0 239 | rplo 310 (Chloroflexi),72.0,43.0,0.0,0.0,0.0,37.0,0.0,0.0,31.0,70.0,19.0,0.0,0.0,90.0,0.0,15.0,0.0,13.0,0.0 240 | rplo 311 (Acidobacteria),0.0,0.0,0.0,23.0,0.0,68.0,0.0,20.0,0.0,0.0,0.0,122.0,0.0,0.0,0.0,38.0,0.0,18.0,86.0 241 | rplo 312 (Gemmatimonadetes),23.0,0.0,0.0,0.0,146.0,0.0,46.0,0.0,0.0,0.0,0.0,0.0,47.0,0.0,0.0,0.0,0.0,18.0,67.0 242 | rplo 313 (Firmicutes),0.0,64.0,0.0,65.0,0.0,0.0,0.0,18.0,0.0,13.0,0.0,56.0,0.0,0.0,18.0,18.0,0.0,0.0,79.0 243 | rplo 314 (Acidobacteria),45.0,0.0,0.0,47.0,82.0,23.0,0.0,40.0,0.0,15.0,0.0,0.0,0.0,0.0,0.0,0.0,41.0,18.0,22.0 244 | rplo 315 (Proteobacteria),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,54.0,0.0,23.0,31.0,45.0,0.0,40.0,0.0,82.0,0.0,21.0 245 | rplo 316 (Bacteroidetes),96.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,25.0,33.0,0.0,0.0,0.0,0.0,22.0,19.0,21.0 246 | rplo 317 (Gemmatimonadetes),0.0,0.0,0.0,72.0,63.0,24.0,23.0,42.0,0.0,0.0,0.0,32.0,20.0,0.0,21.0,0.0,0.0,19.0,23.0 247 | rplo 318 (Acidobacteria),0.0,0.0,39.0,121.0,70.0,39.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,35.0,0.0,37.0 248 | rplo 319 (Cyanobacteria),0.0,0.0,96.0,0.0,22.0,25.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,20.0,62.0,0.0,0.0,22.0 249 | rplo 32 (Firmicutes),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,499.0,0.0,0.0,181.0,1177.0,163.0,0.0,704.0,30.0,0.0,0.0 250 | rplo 320 (Actinobacteria),0.0,0.0,0.0,0.0,0.0,75.0,0.0,43.0,0.0,16.0,25.0,0.0,0.0,0.0,0.0,0.0,22.0,58.0,0.0 251 | rplo 321 (Firmicutes),45.0,0.0,0.0,24.0,41.0,0.0,23.0,0.0,0.0,0.0,47.0,0.0,0.0,0.0,0.0,0.0,21.0,51.0,42.0 252 | rplo 322 (Actinobacteria),21.0,51.0,22.0,23.0,20.0,0.0,0.0,0.0,18.0,0.0,0.0,30.0,21.0,0.0,0.0,18.0,40.0,33.0,42.0 253 | rplo 323 (Acidobacteria),22.0,0.0,0.0,0.0,20.0,44.0,0.0,20.0,19.0,0.0,0.0,0.0,0.0,84.0,0.0,0.0,41.0,0.0,0.0 254 | rplo 324 (Proteobacteria),0.0,19.0,0.0,26.0,23.0,0.0,0.0,0.0,21.0,64.0,26.0,34.0,25.0,0.0,0.0,0.0,46.0,40.0,24.0 255 | rplo 325 (Planctomycetes),0.0,52.0,0.0,44.0,0.0,0.0,66.0,0.0,0.0,0.0,0.0,28.0,0.0,0.0,20.0,18.0,0.0,0.0,0.0 256 | rplo 326 (Actinobacteria),24.0,58.0,0.0,0.0,22.0,25.0,0.0,65.0,20.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.0 257 | rplo 327 (Proteobacteria),0.0,0.0,0.0,52.0,45.0,100.0,0.0,66.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.0,20.0,0.0 258 | rplo 328 (Chloroflexi),19.0,15.0,40.0,0.0,0.0,20.0,0.0,17.0,16.0,0.0,20.0,0.0,19.0,0.0,0.0,0.0,0.0,77.0,36.0 259 | rplo 329 (Bacteroidetes),71.0,0.0,0.0,0.0,43.0,71.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,38.0,23.0 260 | rplo 33 (Bacteroidetes),214.0,38.0,24.0,0.0,86.0,24.0,143.0,0.0,141.0,0.0,174.0,0.0,594.0,30.0,450.0,143.0,88.0,19.0,46.0 261 | rplo 330 (Chloroflexi),0.0,29.0,0.0,57.0,16.0,0.0,0.0,16.0,15.0,23.0,57.0,0.0,0.0,22.0,16.0,31.0,17.0,14.0,0.0 262 | rplo 331 (Bacteroidetes),0.0,0.0,25.0,25.0,0.0,47.0,24.0,0.0,0.0,0.0,50.0,0.0,0.0,0.0,0.0,0.0,0.0,19.0,139.0 263 | rplo 332 (Cyanobacteria),0.0,0.0,49.0,0.0,0.0,49.0,24.0,21.0,0.0,0.0,25.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 264 | rplo 333 (Firmicutes),0.0,0.0,22.0,22.0,0.0,0.0,0.0,19.0,0.0,0.0,22.0,0.0,0.0,26.0,19.0,0.0,39.0,34.0,20.0 265 | rplo 334 (Actinobacteria),24.0,0.0,48.0,0.0,0.0,0.0,25.0,0.0,41.0,0.0,0.0,0.0,0.0,0.0,0.0,21.0,0.0,0.0,47.0 266 | rplo 335 (Actinobacteria),0.0,87.0,0.0,0.0,0.0,0.0,22.0,39.0,0.0,0.0,23.0,0.0,0.0,27.0,0.0,38.0,0.0,52.0,42.0 267 | rplo 336 (Proteobacteria),0.0,0.0,20.0,0.0,0.0,0.0,40.0,36.0,0.0,0.0,42.0,28.0,0.0,0.0,18.0,0.0,0.0,0.0,0.0 268 | rplo 337 (unknown),0.0,17.0,67.0,23.0,0.0,0.0,44.0,0.0,19.0,0.0,0.0,0.0,0.0,0.0,0.0,19.0,0.0,0.0,42.0 269 | rplo 338 (Actinobacteria),0.0,19.0,0.0,0.0,44.0,25.0,0.0,43.0,0.0,0.0,0.0,0.0,24.0,0.0,0.0,0.0,0.0,19.0,23.0 270 | rplo 339 (Bacteroidetes),0.0,0.0,0.0,0.0,22.0,0.0,72.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,57.0,0.0 271 | rplo 34 (Actinobacteria),312.0,303.0,49.0,102.0,44.0,49.0,48.0,43.0,163.0,125.0,25.0,0.0,24.0,150.0,0.0,187.0,65.0,56.0,161.0 272 | rplo 340 (unknown),0.0,0.0,0.0,23.0,0.0,45.0,0.0,19.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,40.0,0.0,58.0 273 | rplo 341 (Actinobacteria),93.0,56.0,0.0,0.0,0.0,0.0,0.0,21.0,0.0,75.0,0.0,0.0,0.0,0.0,0.0,20.0,0.0,0.0,23.0 274 | rplo 342 (Chloroflexi),0.0,41.0,0.0,27.0,0.0,0.0,0.0,0.0,22.0,51.0,0.0,72.0,0.0,64.0,0.0,22.0,0.0,0.0,0.0 275 | rplo 343 (Acidobacteria),0.0,0.0,0.0,0.0,40.0,0.0,22.0,0.0,37.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 276 | rplo 344 (Proteobacteria),0.0,0.0,0.0,0.0,0.0,0.0,22.0,40.0,0.0,29.0,47.0,0.0,0.0,0.0,38.0,0.0,0.0,0.0,0.0 277 | rplo 345 (Actinobacteria),0.0,0.0,44.0,0.0,20.0,43.0,41.0,0.0,0.0,14.0,0.0,0.0,22.0,0.0,0.0,19.0,0.0,0.0,0.0 278 | rplo 346 (Chloroflexi),0.0,19.0,0.0,0.0,44.0,0.0,0.0,0.0,21.0,62.0,0.0,0.0,25.0,30.0,0.0,21.0,23.0,0.0,24.0 279 | rplo 347 (Firmicutes),0.0,0.0,0.0,0.0,0.0,0.0,22.0,250.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,19.0,0.0,0.0,0.0 280 | rplo 348 (Cyanobacteria),0.0,0.0,22.0,22.0,0.0,0.0,0.0,0.0,0.0,0.0,111.0,0.0,0.0,0.0,0.0,0.0,0.0,16.0,0.0 281 | rplo 349 (Acidobacteria),45.0,0.0,0.0,0.0,41.0,0.0,23.0,0.0,19.0,15.0,24.0,0.0,23.0,28.0,61.0,0.0,0.0,18.0,0.0 282 | rplo 35 (Proteobacteria),21.0,50.0,0.0,154.0,95.0,64.0,82.0,130.0,35.0,0.0,44.0,84.0,42.0,78.0,0.0,18.0,116.0,116.0,141.0 283 | rplo 350 (Proteobacteria),22.0,17.0,0.0,24.0,0.0,0.0,0.0,20.0,19.0,14.0,23.0,92.0,0.0,27.0,20.0,17.0,21.0,0.0,0.0 284 | rplo 351 (Acidobacteria),0.0,0.0,0.0,47.0,0.0,0.0,0.0,101.0,0.0,0.0,0.0,31.0,0.0,0.0,20.0,0.0,0.0,54.0,0.0 285 | rplo 352 (Bacteroidetes),24.0,0.0,0.0,0.0,22.0,0.0,48.0,0.0,0.0,0.0,0.0,66.0,24.0,0.0,0.0,20.0,22.0,38.0,19.0 286 | rplo 353 (Firmicutes),0.0,0.0,0.0,0.0,146.0,0.0,0.0,0.0,0.0,0.0,24.0,0.0,0.0,0.0,0.0,0.0,64.0,35.0,0.0 287 | rplo 354 (Cyanobacteria),0.0,0.0,24.0,0.0,0.0,24.0,23.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 288 | rplo 355 (Verrucomicrobia),125.0,0.0,0.0,0.0,16.0,19.0,37.0,0.0,16.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,51.0,15.0,0.0 289 | rplo 356 (Proteobacteria),0.0,20.0,0.0,55.0,0.0,53.0,26.0,0.0,0.0,0.0,0.0,0.0,26.0,0.0,0.0,22.0,24.0,0.0,0.0 290 | rplo 357 (Cyanobacteria),23.0,0.0,0.0,0.0,0.0,0.0,23.0,0.0,0.0,0.0,0.0,0.0,23.0,0.0,0.0,0.0,42.0,0.0,0.0 291 | rplo 358 (Firmicutes),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,349.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 292 | rplo 359 (Actinobacteria),34.0,70.0,0.0,19.0,16.0,0.0,0.0,0.0,30.0,69.0,0.0,0.0,0.0,0.0,0.0,0.0,16.0,0.0,17.0 293 | rplo 36 (Actinobacteria),194.0,119.0,44.0,114.0,59.0,89.0,22.0,115.0,73.0,125.0,45.0,327.0,87.0,106.0,0.0,112.0,40.0,155.0,63.0 294 | rplo 360 (Firmicutes),32.0,38.0,0.0,0.0,0.0,33.0,0.0,72.0,0.0,31.0,0.0,0.0,0.0,40.0,0.0,28.0,0.0,0.0,0.0 295 | rplo 361 (Firmicutes),24.0,0.0,0.0,50.0,22.0,0.0,0.0,0.0,20.0,0.0,0.0,33.0,0.0,111.0,0.0,20.0,0.0,0.0,0.0 296 | rplo 362 (unknown),93.0,49.0,0.0,0.0,0.0,0.0,0.0,0.0,77.0,20.0,16.0,0.0,0.0,19.0,0.0,0.0,0.0,0.0,15.0 297 | rplo 363 (Proteobacteria),20.0,0.0,62.0,0.0,0.0,0.0,41.0,18.0,0.0,0.0,61.0,0.0,0.0,25.0,18.0,0.0,0.0,0.0,0.0 298 | rplo 364 (Firmicutes),0.0,19.0,0.0,25.0,0.0,0.0,24.0,0.0,0.0,31.0,23.0,0.0,0.0,0.0,0.0,18.0,0.0,57.0,23.0 299 | rplo 365 (Armatimonadetes),86.0,17.0,0.0,0.0,39.0,0.0,0.0,19.0,0.0,0.0,0.0,29.0,0.0,0.0,0.0,0.0,20.0,17.0,0.0 300 | rplo 366 (Firmicutes),23.0,92.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,30.0,0.0,0.0,0.0,58.0,0.0,40.0,0.0,0.0,0.0 301 | rplo 367 (unknown),44.0,17.0,0.0,0.0,0.0,22.0,0.0,0.0,0.0,28.0,22.0,0.0,0.0,0.0,0.0,19.0,0.0,0.0,0.0 302 | rplo 368 (Verrucomicrobia),0.0,17.0,22.0,0.0,0.0,89.0,0.0,55.0,0.0,28.0,91.0,0.0,0.0,0.0,0.0,19.0,0.0,17.0,0.0 303 | rplo 369 (Chloroflexi),12.0,78.0,0.0,0.0,0.0,0.0,0.0,11.0,10.0,16.0,13.0,17.0,0.0,15.0,22.0,0.0,11.0,9.0,35.0 304 | rplo 37 (Proteobacteria),44.0,87.0,198.0,162.0,0.0,135.0,66.0,194.0,19.0,28.0,229.0,212.0,66.0,27.0,0.0,56.0,101.0,175.0,127.0 305 | rplo 370 (Chloroflexi),18.0,85.0,0.0,0.0,0.0,0.0,0.0,0.0,45.0,12.0,0.0,49.0,0.0,22.0,0.0,0.0,33.0,0.0,15.0 306 | rplo 371 (Proteobacteria),22.0,35.0,22.0,0.0,0.0,0.0,22.0,0.0,0.0,0.0,0.0,29.0,0.0,0.0,0.0,38.0,0.0,70.0,21.0 307 | rplo 372 (Bacteroidetes),24.0,0.0,0.0,0.0,0.0,0.0,24.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,38.0,0.0 308 | rplo 373 (Proteobacteria),44.0,0.0,0.0,23.0,0.0,45.0,22.0,20.0,0.0,28.0,0.0,0.0,0.0,27.0,20.0,0.0,0.0,18.0,0.0 309 | rplo 374 (Proteobacteria),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,333.0,0.0,0.0,0.0,0.0,0.0 310 | rplo 375 (Actinobacteria),43.0,34.0,0.0,23.0,0.0,0.0,22.0,0.0,0.0,84.0,0.0,0.0,0.0,107.0,0.0,19.0,0.0,0.0,0.0 311 | rplo 376 (Proteobacteria),0.0,0.0,0.0,0.0,26.0,0.0,28.0,0.0,0.0,0.0,29.0,0.0,0.0,0.0,0.0,0.0,0.0,23.0,0.0 312 | rplo 377 (Chloroflexi),23.0,75.0,0.0,49.0,0.0,0.0,0.0,0.0,0.0,44.0,0.0,0.0,0.0,29.0,0.0,20.0,0.0,0.0,23.0 313 | rplo 378 (unknown),0.0,0.0,91.0,0.0,0.0,60.0,0.0,0.0,0.0,0.0,0.0,0.0,27.0,0.0,0.0,0.0,0.0,47.0,29.0 314 | rplo 379 (Cyanobacteria),0.0,0.0,0.0,98.0,0.0,0.0,23.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 315 | rplo 38 (Actinobacteria),63.0,117.0,0.0,111.0,38.0,108.0,125.0,56.0,53.0,109.0,88.0,145.0,21.0,78.0,19.0,72.0,58.0,33.0,122.0 316 | rplo 380 (Actinobacteria),46.0,18.0,24.0,49.0,0.0,0.0,0.0,0.0,20.0,45.0,0.0,0.0,0.0,0.0,0.0,20.0,21.0,0.0,0.0 317 | rplo 381 (Bacteroidetes),24.0,0.0,0.0,25.0,0.0,24.0,24.0,21.0,0.0,0.0,50.0,33.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 318 | rplo 382 (Cyanobacteria),0.0,0.0,25.0,0.0,0.0,0.0,73.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 319 | rplo 383 (Actinobacteria),46.0,18.0,24.0,0.0,0.0,24.0,23.0,0.0,0.0,30.0,0.0,0.0,23.0,0.0,0.0,0.0,0.0,17.0,0.0 320 | rplo 384 (Bacteroidetes),0.0,0.0,0.0,0.0,24.0,28.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 321 | rplo 385 (Chlorobi),0.0,34.0,0.0,70.0,0.0,0.0,0.0,19.0,0.0,0.0,48.0,32.0,0.0,0.0,0.0,0.0,21.0,0.0,0.0 322 | rplo 386 (Actinobacteria),47.0,19.0,0.0,0.0,0.0,0.0,0.0,0.0,40.0,62.0,0.0,0.0,0.0,30.0,0.0,0.0,0.0,0.0,0.0 323 | rplo 387 (Bacteroidetes),0.0,19.0,46.0,0.0,22.0,0.0,0.0,0.0,41.0,15.0,50.0,33.0,0.0,0.0,0.0,0.0,22.0,0.0,0.0 324 | rplo 388 (Verrucomicrobia),0.0,19.0,0.0,0.0,22.0,25.0,0.0,0.0,20.0,16.0,25.0,67.0,0.0,0.0,0.0,21.0,0.0,19.0,0.0 325 | rplo 389 (Armatimonadetes),0.0,0.0,0.0,0.0,44.0,25.0,21.0,0.0,21.0,0.0,25.0,0.0,0.0,0.0,0.0,0.0,0.0,19.0,0.0 326 | rplo 39 (Actinobacteria),300.0,68.0,176.0,91.0,78.0,44.0,0.0,38.0,73.0,163.0,0.0,59.0,86.0,107.0,77.0,111.0,40.0,0.0,167.0 327 | rplo 390 (Actinobacteria),21.0,16.0,21.0,22.0,0.0,0.0,21.0,0.0,18.0,27.0,0.0,0.0,0.0,0.0,0.0,0.0,38.0,17.0,40.0 328 | rplo 391 (Thermotogae),0.0,0.0,0.0,0.0,16.0,37.0,18.0,16.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 329 | rplo 392 (Firmicutes),23.0,0.0,23.0,0.0,21.0,23.0,0.0,20.0,19.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 330 | rplo 393 (Actinobacteria),82.0,15.0,0.0,0.0,0.0,0.0,0.0,0.0,69.0,53.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.0,20.0 331 | rplo 394 (Bacteroidetes),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,241.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.0 332 | rplo 395 (Bacteroidetes),0.0,19.0,72.0,0.0,0.0,0.0,24.0,0.0,0.0,0.0,22.0,0.0,0.0,0.0,21.0,0.0,0.0,19.0,0.0 333 | rplo 396 (Chloroflexi),36.0,13.0,0.0,19.0,0.0,0.0,0.0,0.0,15.0,12.0,19.0,0.0,18.0,45.0,0.0,47.0,0.0,0.0,18.0 334 | rplo 397 (Proteobacteria),0.0,0.0,0.0,0.0,0.0,0.0,0.0,83.0,0.0,0.0,49.0,0.0,0.0,0.0,0.0,0.0,0.0,75.0,0.0 335 | rplo 398 (Chloroflexi),45.0,35.0,0.0,47.0,0.0,0.0,0.0,20.0,0.0,14.0,0.0,0.0,45.0,0.0,0.0,38.0,21.0,0.0,0.0 336 | rplo 399 (Proteobacteria),68.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,42.0,0.0,0.0,0.0,50.0,0.0,0.0,0.0,46.0,0.0,0.0 337 | rplo 4 (Firmicutes),1307.0,0.0,25.0,1305.0,0.0,0.0,0.0,0.0,1151.0,16.0,1092.0,1808.0,658.0,2260.0,831.0,3161.0,0.0,0.0,0.0 338 | rplo 40 (Acidobacteria),23.0,55.0,23.0,121.0,187.0,231.0,92.0,61.0,58.0,0.0,164.0,32.0,65.0,85.0,121.0,39.0,84.0,91.0,44.0 339 | rplo 400 (Proteobacteria),0.0,0.0,0.0,0.0,62.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.0,0.0,0.0,0.0,63.0,0.0,22.0 340 | rplo 401 (Aquificae),0.0,0.0,24.0,0.0,0.0,0.0,24.0,21.0,0.0,0.0,25.0,0.0,48.0,0.0,0.0,20.0,0.0,0.0,23.0 341 | rplo 402 (Proteobacteria),0.0,18.0,0.0,0.0,0.0,0.0,0.0,79.0,0.0,0.0,0.0,60.0,0.0,0.0,20.0,0.0,0.0,0.0,0.0 342 | rplo 403 (Bacteroidetes),0.0,19.0,0.0,0.0,22.0,47.0,0.0,21.0,0.0,0.0,0.0,66.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 343 | rplo 404 (Cyanobacteria),0.0,0.0,0.0,0.0,20.0,0.0,0.0,42.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,36.0,0.0 344 | rplo 405 (Actinobacteria),48.0,39.0,0.0,26.0,0.0,0.0,0.0,0.0,0.0,47.0,0.0,0.0,0.0,0.0,0.0,21.0,22.0,19.0,0.0 345 | rplo 406 (Proteobacteria),0.0,93.0,0.0,62.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,73.0,0.0,0.0,0.0,0.0,0.0 346 | rplo 407 (Acidobacteria),0.0,0.0,0.0,0.0,0.0,55.0,53.0,0.0,0.0,34.0,0.0,74.0,53.0,0.0,0.0,0.0,0.0,0.0,0.0 347 | rplo 408 (Deinococcus-Thermus),0.0,17.0,0.0,0.0,20.0,22.0,44.0,0.0,17.0,0.0,0.0,30.0,0.0,0.0,0.0,19.0,0.0,35.0,0.0 348 | rplo 409 (Gemmatimonadetes),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,28.0,0.0,0.0,0.0,0.0,46.0,0.0,0.0,0.0,0.0,0.0 349 | rplo 41 (Proteobacteria),109.0,52.0,0.0,139.0,119.0,67.0,110.0,78.0,260.0,14.0,69.0,60.0,66.0,54.0,217.0,56.0,221.0,70.0,62.0 350 | rplo 410 (Actinobacteria),17.0,57.0,0.0,0.0,0.0,18.0,0.0,0.0,15.0,23.0,0.0,0.0,0.0,0.0,16.0,31.0,32.0,0.0,17.0 351 | rplo 411 (Firmicutes),0.0,18.0,0.0,23.0,0.0,0.0,44.0,0.0,0.0,0.0,23.0,0.0,0.0,0.0,20.0,19.0,0.0,18.0,43.0 352 | rplo 412 (Acidobacteria),0.0,0.0,0.0,0.0,41.0,21.0,0.0,20.0,19.0,0.0,0.0,31.0,0.0,28.0,0.0,19.0,21.0,18.0,0.0 353 | rplo 413 (Bacteroidetes),0.0,19.0,0.0,0.0,0.0,0.0,0.0,21.0,0.0,15.0,25.0,0.0,0.0,0.0,0.0,20.0,0.0,0.0,23.0 354 | rplo 414 (Chloroflexi),18.0,14.0,0.0,19.0,0.0,0.0,0.0,32.0,0.0,0.0,19.0,24.0,0.0,0.0,0.0,44.0,17.0,0.0,18.0 355 | rplo 415 (Verrucomicrobia),0.0,19.0,0.0,0.0,0.0,0.0,48.0,43.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 356 | rplo 416 (Firmicutes),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,249.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 357 | rplo 417 (Acidobacteria),0.0,0.0,0.0,24.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,31.0,0.0,112.0,0.0,0.0,0.0,36.0,0.0 358 | rplo 418 (Bacteroidetes),0.0,0.0,0.0,0.0,22.0,0.0,0.0,0.0,20.0,0.0,25.0,0.0,24.0,0.0,0.0,20.0,0.0,57.0,23.0 359 | rplo 419 (Bacteroidetes),0.0,0.0,0.0,0.0,18.0,0.0,117.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 360 | rplo 42 (Acidobacteria),44.0,18.0,68.0,23.0,141.0,68.0,111.0,79.0,131.0,0.0,23.0,122.0,132.0,54.0,80.0,38.0,184.0,35.0,64.0 361 | rplo 420 (unknown),22.0,0.0,0.0,24.0,0.0,46.0,0.0,20.0,0.0,43.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 362 | rplo 421 (Chloroflexi),0.0,18.0,0.0,0.0,0.0,46.0,0.0,0.0,57.0,0.0,0.0,0.0,0.0,28.0,0.0,19.0,21.0,0.0,0.0 363 | rplo 422 (Chloroflexi),0.0,28.0,0.0,0.0,16.0,0.0,0.0,0.0,15.0,0.0,0.0,0.0,0.0,0.0,0.0,15.0,16.0,0.0,0.0 364 | rplo 423 (Chloroflexi),0.0,46.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,27.0,0.0,56.0 365 | rplo 424 (Acidobacteria),0.0,59.0,0.0,0.0,0.0,0.0,0.0,44.0,0.0,16.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,20.0,0.0 366 | rplo 425 (Chloroflexi),30.0,0.0,0.0,0.0,0.0,0.0,30.0,0.0,25.0,0.0,0.0,41.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 367 | rplo 426 (Firmicutes),0.0,0.0,98.0,25.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,43.0,21.0,0.0,16.0,0.0 368 | rplo 427 (unknown),22.0,0.0,0.0,0.0,40.0,0.0,0.0,0.0,19.0,0.0,0.0,0.0,44.0,0.0,0.0,0.0,40.0,0.0,21.0 369 | rplo 428 (Acidobacteria),0.0,17.0,0.0,0.0,0.0,45.0,0.0,0.0,18.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,35.0,0.0 370 | rplo 429 (Bacteroidetes),0.0,19.0,0.0,0.0,0.0,0.0,0.0,63.0,0.0,0.0,23.0,0.0,24.0,0.0,21.0,0.0,0.0,0.0,0.0 371 | rplo 43 (Proteobacteria),40.0,32.0,21.0,64.0,129.0,21.0,41.0,108.0,0.0,13.0,85.0,0.0,20.0,101.0,109.0,35.0,74.0,81.0,157.0 372 | rplo 430 (Proteobacteria),0.0,35.0,22.0,23.0,40.0,0.0,0.0,0.0,0.0,14.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 373 | rplo 431 (Thermobaculum),21.0,33.0,0.0,0.0,0.0,0.0,0.0,0.0,35.0,27.0,0.0,0.0,0.0,0.0,19.0,0.0,0.0,17.0,20.0 374 | rplo 432 (Actinobacteria),0.0,43.0,0.0,0.0,0.0,0.0,0.0,0.0,39.0,0.0,0.0,0.0,51.0,0.0,0.0,0.0,0.0,0.0,0.0 375 | rplo 433 (Proteobacteria),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,223.0,0.0,0.0,0.0,0.0,0.0,0.0 376 | rplo 434 (Firmicutes),0.0,0.0,0.0,0.0,18.0,41.0,0.0,71.0,0.0,0.0,0.0,0.0,20.0,0.0,0.0,34.0,0.0,0.0,19.0 377 | rplo 435 (Actinobacteria),21.0,18.0,0.0,0.0,0.0,0.0,0.0,0.0,79.0,0.0,0.0,32.0,0.0,0.0,0.0,0.0,0.0,0.0,22.0 378 | rplo 436 (Proteobacteria),0.0,0.0,82.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,110.0,0.0,0.0,0.0,24.0,0.0,0.0,0.0,0.0 379 | rplo 437 (Bacteroidetes),47.0,0.0,21.0,0.0,21.0,0.0,0.0,0.0,20.0,0.0,0.0,0.0,0.0,0.0,21.0,0.0,0.0,37.0,0.0 380 | rplo 438 (Proteobacteria),25.0,0.0,0.0,26.0,0.0,0.0,75.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,45.0,0.0,0.0,0.0,24.0 381 | rplo 439 (Actinobacteria),24.0,58.0,0.0,26.0,0.0,0.0,0.0,0.0,0.0,47.0,0.0,0.0,0.0,30.0,0.0,0.0,0.0,0.0,0.0 382 | rplo 44 (Actinobacteria),140.0,130.0,24.0,125.0,43.0,48.0,142.0,167.0,140.0,46.0,25.0,33.0,24.0,29.0,85.0,0.0,65.0,113.0,137.0 383 | rplo 440 (Candidatus Roizmanbacteria),0.0,210.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 384 | rplo 441 (Proteobacteria),0.0,15.0,0.0,58.0,0.0,0.0,0.0,0.0,15.0,24.0,0.0,22.0,0.0,45.0,0.0,0.0,0.0,0.0,0.0 385 | rplo 442 (Actinobacteria),40.0,16.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,39.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 386 | rplo 443 (Firmicutes),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,27.0,0.0,0.0,0.0,34.0,0.0 387 | rplo 444 (Chloroflexi),22.0,35.0,0.0,0.0,0.0,0.0,0.0,0.0,19.0,0.0,0.0,0.0,0.0,55.0,20.0,19.0,0.0,18.0,0.0 388 | rplo 445 (Verrucomicrobia),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,33.0,0.0,0.0,0.0,62.0,0.0,19.0,23.0 389 | rplo 446 (Acidobacteria),23.0,34.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,21.0,0.0,0.0 390 | rplo 447 (Chloroflexi),0.0,0.0,22.0,22.0,0.0,0.0,22.0,0.0,0.0,28.0,0.0,0.0,0.0,0.0,0.0,0.0,40.0,0.0,0.0 391 | rplo 448 (Bacteroidetes),0.0,0.0,0.0,30.0,0.0,0.0,28.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,77.0,0.0,0.0,0.0,27.0 392 | rplo 449 (Proteobacteria),0.0,0.0,22.0,23.0,0.0,0.0,0.0,19.0,0.0,0.0,23.0,0.0,22.0,0.0,0.0,0.0,0.0,0.0,21.0 393 | rplo 45 (Proteobacteria),87.0,68.0,22.0,69.0,59.0,112.0,66.0,0.0,184.0,57.0,46.0,60.0,44.0,162.0,20.0,91.0,121.0,35.0,127.0 394 | rplo 450 (unknown),22.0,17.0,0.0,22.0,0.0,0.0,0.0,19.0,18.0,71.0,0.0,0.0,0.0,0.0,0.0,19.0,0.0,0.0,0.0 395 | rplo 451 (Acidobacteria),0.0,19.0,0.0,25.0,0.0,0.0,0.0,0.0,0.0,15.0,0.0,0.0,0.0,0.0,0.0,0.0,22.0,19.0,0.0 396 | rplo 452 (Bacteroidetes),0.0,0.0,0.0,0.0,0.0,24.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 397 | rplo 453 (Actinobacteria),0.0,52.0,0.0,23.0,0.0,0.0,0.0,19.0,0.0,43.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 398 | rplo 454 (unknown),22.0,0.0,0.0,0.0,0.0,0.0,0.0,40.0,54.0,14.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 399 | rplo 455 (Gemmatimonadetes),0.0,0.0,0.0,0.0,0.0,22.0,22.0,0.0,0.0,0.0,68.0,0.0,0.0,0.0,0.0,0.0,0.0,17.0,0.0 400 | rplo 456 (Gemmatimonadetes),0.0,0.0,0.0,0.0,0.0,23.0,0.0,0.0,0.0,0.0,24.0,0.0,0.0,0.0,20.0,19.0,0.0,17.0,0.0 401 | rplo 457 (Proteobacteria),0.0,0.0,0.0,50.0,0.0,0.0,0.0,42.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 402 | rplo 458 (Chloroflexi),0.0,31.0,0.0,20.0,35.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,24.0,0.0,17.0,0.0,15.0,0.0 403 | rplo 459 (Proteobacteria),0.0,26.0,0.0,0.0,0.0,0.0,0.0,0.0,27.0,21.0,0.0,0.0,0.0,0.0,58.0,28.0,0.0,0.0,0.0 404 | rplo 46 (Proteobacteria),40.0,161.0,62.0,64.0,111.0,83.0,81.0,144.0,0.0,13.0,170.0,84.0,41.0,50.0,55.0,87.0,37.0,259.0,20.0 405 | rplo 460 (Bacteroidetes),24.0,38.0,0.0,0.0,0.0,24.0,0.0,21.0,20.0,31.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 406 | rplo 461 (Bacteroidetes),0.0,0.0,0.0,0.0,0.0,0.0,0.0,124.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 407 | rplo 462 (Chloroflexi),18.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,59.0,0.0,0.0,0.0,0.0,0.0,16.0,0.0,0.0,0.0 408 | rplo 463 (Chloroflexi),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,17.0,0.0,0.0,0.0 409 | rplo 464 (Proteobacteria),0.0,0.0,0.0,0.0,0.0,0.0,0.0,20.0,0.0,0.0,0.0,90.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 410 | rplo 465 (Cyanobacteria),0.0,0.0,0.0,0.0,0.0,0.0,0.0,106.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 411 | rplo 466 (Proteobacteria),0.0,0.0,0.0,0.0,0.0,0.0,0.0,41.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 412 | rplo 47 (Proteobacteria),20.0,48.0,41.0,63.0,18.0,102.0,60.0,51.0,17.0,0.0,331.0,111.0,20.0,50.0,180.0,121.0,0.0,96.0,78.0 413 | rplo 48 (Actinobacteria),42.0,151.0,87.0,90.0,96.0,65.0,63.0,131.0,54.0,27.0,111.0,117.0,21.0,132.0,19.0,73.0,78.0,183.0,21.0 414 | rplo 49 (Gemmatimonadetes),64.0,84.0,22.0,157.0,76.0,86.0,43.0,57.0,90.0,41.0,200.0,147.0,62.0,79.0,77.0,91.0,78.0,34.0,103.0 415 | rplo 5 (Firmicutes),751.0,0.0,0.0,948.0,0.0,0.0,0.0,0.0,740.0,0.0,584.0,2916.0,317.0,1538.0,0.0,60.0,0.0,0.0,0.0 416 | rplo 50 (Actinobacteria),0.0,51.0,88.0,251.0,39.0,22.0,0.0,58.0,18.0,14.0,518.0,60.0,0.0,0.0,19.0,112.0,0.0,103.0,42.0 417 | rplo 51 (Proteobacteria),41.0,33.0,42.0,0.0,151.0,43.0,42.0,37.0,0.0,27.0,43.0,0.0,1421.0,0.0,37.0,0.0,38.0,0.0,40.0 418 | rplo 52 (Cyanobacteria),0.0,0.0,0.0,72.0,0.0,46.0,68.0,400.0,0.0,0.0,71.0,0.0,0.0,0.0,0.0,0.0,21.0,36.0,44.0 419 | rplo 53 (Proteobacteria),95.0,38.0,49.0,50.0,0.0,0.0,95.0,85.0,81.0,154.0,149.0,66.0,191.0,59.0,0.0,41.0,0.0,76.0,136.0 420 | rplo 54 (Proteobacteria),43.0,50.0,0.0,67.0,99.0,109.0,44.0,39.0,111.0,70.0,68.0,120.0,66.0,27.0,59.0,37.0,80.0,52.0,21.0 421 | rplo 55 (Proteobacteria),48.0,0.0,101.0,104.0,67.0,49.0,98.0,66.0,42.0,47.0,103.0,170.0,49.0,61.0,133.0,42.0,134.0,59.0,0.0 422 | rplo 56 (Proteobacteria),42.0,17.0,170.0,67.0,0.0,130.0,63.0,38.0,36.0,41.0,44.0,29.0,64.0,0.0,133.0,0.0,78.0,17.0,102.0 423 | rplo 57 (Proteobacteria),20.0,64.0,41.0,106.0,18.0,165.0,101.0,36.0,17.0,0.0,127.0,111.0,20.0,75.0,127.0,17.0,37.0,113.0,117.0 424 | rplo 58 (Proteobacteria),65.0,17.0,175.0,67.0,59.0,45.0,22.0,39.0,37.0,14.0,45.0,90.0,22.0,54.0,78.0,19.0,80.0,208.0,105.0 425 | rplo 59 (Actinobacteria),21.0,84.0,64.0,89.0,19.0,65.0,21.0,132.0,35.0,41.0,175.0,87.0,63.0,26.0,0.0,18.0,136.0,152.0,20.0 426 | rplo 6 (Actinobacteria),80.0,2113.0,1382.0,85.0,108.0,82.0,40.0,106.0,203.0,674.0,0.0,165.0,160.0,198.0,36.0,583.0,110.0,286.0,77.0 427 | rplo 61 (Proteobacteria),17.0,358.0,124.0,92.0,32.0,54.0,18.0,78.0,0.0,11.0,128.0,97.0,18.0,65.0,95.0,45.0,16.0,84.0,34.0 428 | rplo 62 (Proteobacteria),0.0,71.0,46.0,166.0,20.0,92.0,45.0,60.0,76.0,116.0,94.0,150.0,68.0,56.0,101.0,116.0,83.0,89.0,106.0 429 | rplo 63 (Actinobacteria),0.0,38.0,0.0,200.0,21.0,0.0,0.0,751.0,20.0,0.0,0.0,195.0,0.0,0.0,0.0,0.0,0.0,0.0,23.0 430 | rplo 64 (Cyanobacteria),26.0,0.0,0.0,0.0,253.0,0.0,78.0,0.0,0.0,17.0,0.0,0.0,52.0,0.0,0.0,0.0,119.0,18.0,25.0 431 | rplo 65 (Actinobacteria),185.0,129.0,22.0,49.0,20.0,143.0,70.0,0.0,59.0,132.0,118.0,64.0,46.0,86.0,63.0,58.0,43.0,18.0,135.0 432 | rplo 66 (Bacteroidetes),51.0,39.0,415.0,215.0,46.0,157.0,26.0,0.0,22.0,66.0,0.0,70.0,0.0,0.0,0.0,41.0,71.0,122.0,0.0 433 | rplo 67 (Proteobacteria),0.0,20.0,76.0,208.0,112.0,0.0,48.0,64.0,42.0,0.0,51.0,99.0,0.0,61.0,67.0,127.0,272.0,157.0,24.0 434 | rplo 68 (Firmicutes),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,93.0,0.0,0.0,0.0,165.0,68.0,0.0,1444.0,0.0,0.0,0.0 435 | rplo 69 (Proteobacteria),45.0,90.0,0.0,95.0,102.0,0.0,68.0,20.0,303.0,58.0,71.0,31.0,45.0,28.0,41.0,58.0,104.0,18.0,44.0 436 | rplo 70 (Proteobacteria),0.0,0.0,90.0,93.0,20.0,90.0,44.0,137.0,19.0,14.0,46.0,61.0,66.0,55.0,19.0,208.0,61.0,141.0,21.0 437 | rplo 71 (Actinobacteria),107.0,100.0,18.0,19.0,65.0,37.0,18.0,16.0,136.0,46.0,38.0,50.0,36.0,0.0,0.0,77.0,149.0,129.0,87.0 438 | rplo 72 (Firmicutes),0.0,39.0,0.0,0.0,0.0,0.0,0.0,0.0,429.0,0.0,0.0,0.0,72.0,0.0,1062.0,83.0,0.0,0.0,0.0 439 | rplo 73 (Bacteroidetes),0.0,0.0,604.0,0.0,0.0,0.0,0.0,63.0,0.0,0.0,26.0,0.0,0.0,0.0,200.0,0.0,0.0,0.0,24.0 440 | rplo 74 (Proteobacteria),0.0,0.0,21.0,21.0,18.0,21.0,61.0,90.0,17.0,509.0,85.0,56.0,0.0,48.0,73.0,35.0,130.0,32.0,0.0 441 | rplo 75 (Acidobacteria),0.0,36.0,0.0,0.0,691.0,23.0,0.0,0.0,38.0,0.0,0.0,31.0,225.0,56.0,0.0,0.0,352.0,0.0,22.0 442 | rplo 76 (Firmicutes),0.0,0.0,50.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,147.0,1461.0,0.0,0.0,0.0,0.0 443 | rplo 77 (Proteobacteria),0.0,0.0,19.0,80.0,17.0,77.0,76.0,50.0,48.0,24.0,355.0,26.0,0.0,47.0,153.0,97.0,17.0,45.0,110.0 444 | rplo 78 (Actinobacteria),44.0,103.0,22.0,23.0,79.0,132.0,88.0,117.0,19.0,28.0,46.0,60.0,0.0,0.0,0.0,38.0,20.0,17.0,84.0 445 | rplo 79 (Actinobacteria),116.0,55.0,0.0,98.0,21.0,0.0,0.0,62.0,98.0,180.0,0.0,64.0,0.0,230.0,0.0,120.0,43.0,0.0,202.0 446 | rplo 8 (Acidobacteria),60.0,168.0,0.0,383.0,275.0,93.0,1081.0,2338.0,126.0,294.0,32.0,125.0,61.0,38.0,0.0,206.0,84.0,72.0,117.0 447 | rplo 80 (Actinobacteria),42.0,150.0,21.0,111.0,19.0,43.0,63.0,19.0,159.0,162.0,22.0,0.0,63.0,0.0,19.0,108.0,19.0,67.0,102.0 448 | rplo 81 (unknown),20.0,32.0,0.0,86.0,37.0,20.0,41.0,718.0,119.0,13.0,42.0,28.0,0.0,50.0,37.0,0.0,19.0,16.0,59.0 449 | rplo 82 (Actinobacteria),0.0,19.0,0.0,0.0,44.0,0.0,49.0,22.0,0.0,63.0,125.0,235.0,0.0,0.0,22.0,63.0,90.0,39.0,47.0 450 | rplo 83 (Acidobacteria),0.0,0.0,68.0,0.0,60.0,68.0,178.0,138.0,19.0,0.0,23.0,0.0,0.0,0.0,20.0,0.0,41.0,53.0,64.0 451 | rplo 84 (Proteobacteria),84.0,34.0,43.0,89.0,19.0,83.0,83.0,0.0,72.0,68.0,42.0,58.0,21.0,52.0,73.0,54.0,58.0,83.0,41.0 452 | rplo 85 (Cyanobacteria),0.0,0.0,0.0,0.0,21.0,0.0,70.0,617.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 453 | rplo 86 (Proteobacteria),20.0,48.0,268.0,106.0,55.0,41.0,20.0,18.0,0.0,13.0,63.0,28.0,20.0,50.0,18.0,17.0,19.0,64.0,20.0 454 | rplo 87 (Proteobacteria),42.0,83.0,43.0,109.0,96.0,65.0,63.0,113.0,36.0,40.0,44.0,0.0,63.0,79.0,76.0,18.0,58.0,34.0,41.0 455 | rplo 88 (Firmicutes),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1500.0,0.0,0.0,0.0 456 | rplo 89 (Bacteroidetes),167.0,0.0,0.0,76.0,196.0,197.0,24.0,64.0,0.0,0.0,50.0,33.0,0.0,0.0,0.0,0.0,0.0,226.0,0.0 457 | rplo 9 (Proteobacteria),186.0,99.0,106.0,109.0,415.0,170.0,206.0,275.0,280.0,27.0,87.0,86.0,83.0,438.0,37.0,71.0,440.0,181.0,320.0 458 | rplo 90 (Proteobacteria),43.0,0.0,0.0,46.0,98.0,23.0,155.0,59.0,36.0,29.0,23.0,0.0,0.0,27.0,20.0,19.0,59.0,67.0,128.0 459 | rplo 91 (Actinobacteria),73.0,19.0,50.0,51.0,22.0,125.0,73.0,22.0,82.0,16.0,0.0,34.0,73.0,0.0,0.0,42.0,45.0,96.0,118.0 460 | rplo 92 (Proteobacteria),43.0,35.0,0.0,23.0,78.0,45.0,65.0,39.0,37.0,56.0,46.0,120.0,22.0,54.0,98.0,0.0,100.0,52.0,0.0 461 | rplo 93 (Proteobacteria),43.0,17.0,66.0,229.0,40.0,134.0,44.0,58.0,0.0,14.0,228.0,30.0,0.0,27.0,0.0,94.0,20.0,17.0,63.0 462 | rplo 94 (unknown),42.0,35.0,0.0,69.0,59.0,45.0,22.0,18.0,74.0,56.0,0.0,30.0,131.0,0.0,20.0,75.0,141.0,70.0,106.0 463 | rplo 95 (Proteobacteria),49.0,20.0,25.0,52.0,113.0,25.0,75.0,22.0,41.0,32.0,52.0,34.0,672.0,0.0,22.0,0.0,23.0,20.0,0.0 464 | rplo 96 (unknown),267.0,53.0,23.0,141.0,61.0,69.0,0.0,20.0,38.0,216.0,23.0,62.0,0.0,28.0,20.0,19.0,41.0,71.0,65.0 465 | rplo 97 (Firmicutes),0.0,0.0,112.0,0.0,0.0,0.0,0.0,0.0,362.0,0.0,0.0,152.0,435.0,132.0,0.0,235.0,0.0,0.0,0.0 466 | rplo 98 (Actinobacteria),170.0,203.0,0.0,72.0,0.0,0.0,0.0,15.0,129.0,220.0,18.0,24.0,51.0,21.0,15.0,59.0,29.0,25.0,50.0 467 | rplo 99 (Cyanobacteria),0.0,0.0,98.0,51.0,0.0,25.0,48.0,43.0,0.0,0.0,200.0,66.0,24.0,0.0,65.0,62.0,0.0,38.0,68.0 468 | -------------------------------------------------------------------------------- /results/IBD/network_parameters.txt: -------------------------------------------------------------------------------- 1 | {"num_layer": 1, "lr": 0.001, "layer_nodes": 512, "l2": 0.001, "l1": 0, "dropout": 0.5} -------------------------------------------------------------------------------- /results/cystic_fibrosis/network_parameters.txt: -------------------------------------------------------------------------------- 1 | {"num_layer": 3, "layer_nodes": 256, "l1": 1e-04, "l2": 1e-04, "dropout": 0.25, "learning_rate": 0.0001} -------------------------------------------------------------------------------- /results/soil/network_parameters.txt: -------------------------------------------------------------------------------- 1 | {"num_layer": 1, "layer_nodes": 128.0, "l1": 1e-03, "l2": 1e-03, "dropout": 0.25, "learning_rate": 0.0001} -------------------------------------------------------------------------------- /run.sh: -------------------------------------------------------------------------------- 1 | python MiMeNet_train.py -micro data/IBD/microbiome_PRISM.csv -metab data/IBD/metabolome_PRISM.csv -external_micro data/IBD/microbiome_external.csv -external_metab data/IBD/metabolome_external.csv -micro_norm None -metab_norm CLR -net_params results/IBD/network_parameters.txt -annotation data/IBD/metabolome_annotation.csv -labels data/IBD/diagnosis_PRISM.csv -num_run_cv 10 -num_background 20 -output IBD 2 | 3 | python MiMeNet_train.py -micro data/cystic_fibrosis/microbiome.csv -metab data/cystic_fibrosis/metabolome.csv -micro_norm CLR -metab_norm CLR -num_run_cv 10 -output cystic_fibrosis -net_params results/cystic_fibrosis/network_parameters.txt -num_background 20 4 | 5 | python MiMeNet_train.py -micro data/soil/microbiome.csv -metab data/soil/metabolome.csv -micro_norm CLR -metab_norm CLR -num_run_cv 10 -output soil -net_params results/soil/network_parameters.txt -num_background 20 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/__pycache__/MLPNN.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YDaiLab/MiMeNet/f9064b54d61c40d12207db896bc137341969aef4/src/__pycache__/MLPNN.cpython-37.pyc -------------------------------------------------------------------------------- /src/__pycache__/MicroMetabPredictor.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YDaiLab/MiMeNet/f9064b54d61c40d12207db896bc137341969aef4/src/__pycache__/MicroMetabPredictor.cpython-37.pyc -------------------------------------------------------------------------------- /src/__pycache__/rf.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YDaiLab/MiMeNet/f9064b54d61c40d12207db896bc137341969aef4/src/__pycache__/rf.cpython-37.pyc -------------------------------------------------------------------------------- /src/models/MLPNN.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import tensorflow as tf 4 | import numpy as np 5 | import pandas as pd 6 | from sklearn.model_selection import ShuffleSplit 7 | 8 | os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' 9 | 10 | class MLPNN(): 11 | 12 | def __init__(self, input_len, output_len, num_layer=1, layer_nodes=128, 13 | l1=0.0001, l2=0.0001, dropout=0.25, batch_size=1024, patience=40, 14 | lr=0.0001, seed=42, gaussian_noise=0): 15 | 16 | reg = tf.keras.regularizers.L1L2(l1, l2) 17 | 18 | self.model = tf.keras.Sequential() 19 | self.model.add(tf.keras.layers.GaussianNoise(gaussian_noise)) 20 | for l in range(num_layer): 21 | self.model.add(tf.keras.layers.Dense(layer_nodes, activation='relu', kernel_regularizer=reg, bias_regularizer=reg, name="fc" + str(l))) 22 | self.model.add(tf.keras.layers.Dropout(dropout)) 23 | self.model.add(tf.keras.layers.Dense(output_len, activation='softmax', kernel_regularizer=reg, bias_regularizer=reg, name="output")) 24 | 25 | self.patience = patience 26 | self.learning_rate = lr 27 | self.batch_size = batch_size 28 | self.seed = seed 29 | 30 | def train(self, train, validation=[], train_weights=[]): 31 | train_x, train_y = train 32 | num_class = train_y.shape[1] 33 | 34 | self.model.compile(optimizer=tf.keras.optimizers.Adam(self.learning_rate), loss='categorical_crossentropy') 35 | es_cb = tf.keras.callbacks.EarlyStopping('val_loss', patience=self.patience, restore_best_weights=True) 36 | 37 | self.model.fit(train_x, train_y, batch_size=self.batch_size, verbose=0, epochs=100000, 38 | callbacks=[es_cb], validation_split=0.1) 39 | self.model.fit(train_x, train_y, batch_size=self.batch_size, verbose=0, epochs=1) 40 | return 41 | 42 | def test(self, test): 43 | test_x, test_y = test 44 | num_class = test_y.shape[1] 45 | preds = self.model.predict(test_x) 46 | return preds 47 | 48 | def get_scores(self): 49 | w_list = [] 50 | for l in self.model.layers: 51 | if len(l.get_weights()) > 0: 52 | if l.get_weights()[0].ndim == 2: 53 | w_list.append(l.get_weights()[0]) 54 | num_layers = len(w_list) 55 | scores = w_list[0] 56 | for w in range(1,num_layers): 57 | scores = np.matmul(scores, w_list[w]) 58 | return scores 59 | 60 | def destroy(self): 61 | tf.keras.backend.clear_session() 62 | return 63 | -------------------------------------------------------------------------------- /src/models/MiMeNet.py: -------------------------------------------------------------------------------- 1 | import os 2 | import warnings 3 | warnings.filterwarnings("ignore", category=DeprecationWarning) 4 | 5 | import sys 6 | import tensorflow as tf 7 | import numpy as np 8 | import pandas as pd 9 | from sklearn.model_selection import KFold 10 | from scipy.stats import spearmanr 11 | from tensorflow.keras.wrappers.scikit_learn import KerasRegressor 12 | from sklearn.model_selection import RandomizedSearchCV 13 | from scipy.stats import spearmanr 14 | from sklearn.metrics import make_scorer 15 | import numpy as np 16 | 17 | os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' 18 | 19 | class MiMeNet(): 20 | 21 | def __init__(self, input_len, output_len, num_layer=1, layer_nodes=128, 22 | l1=0.0001, l2=0.0001, dropout=0.25, batch_size=1024, patience=40, 23 | lr=0.0001, seed=42, gaussian_noise=0): 24 | 25 | reg = tf.keras.regularizers.L1L2(l1, l2) 26 | 27 | self.model = tf.keras.Sequential() 28 | for l in range(num_layer): 29 | self.model.add(tf.keras.layers.Dense(layer_nodes, activation='relu', kernel_regularizer=reg, bias_regularizer=reg, name="fc" + str(l))) 30 | self.model.add(tf.keras.layers.Dropout(dropout)) 31 | self.model.add(tf.keras.layers.Dense(output_len, activation='linear', kernel_regularizer=reg, bias_regularizer=reg, name="output")) 32 | 33 | self.num_layer = num_layer 34 | self.layer_nodes = layer_nodes 35 | self.l1 = l1 36 | self.l2 = l2 37 | self.dropout = dropout 38 | self.learning_rate = lr 39 | 40 | self.patience = patience 41 | self.batch_size = batch_size 42 | self.seed = seed 43 | 44 | def train(self, train): 45 | train_x, train_y = train 46 | num_class = train_y.shape[1] 47 | 48 | self.model.compile(optimizer=tf.keras.optimizers.Adam(self.learning_rate), loss='MSE') 49 | es_cb = tf.keras.callbacks.EarlyStopping('val_loss', patience=self.patience, restore_best_weights=True) 50 | 51 | self.model.fit(train_x, train_y, batch_size=self.batch_size, verbose=0, epochs=100000, 52 | callbacks=[es_cb], validation_split=0.2) 53 | return 54 | 55 | def test(self, test): 56 | test_x, test_y = test 57 | num_class = test_y.shape[1] 58 | preds = self.model.predict(test_x) 59 | return preds 60 | 61 | 62 | def get_scores(self): 63 | w_list = [] 64 | for l in self.model.layers: 65 | if len(l.get_weights()) > 0: 66 | if l.get_weights()[0].ndim == 2: 67 | w_list.append(l.get_weights()[0]) 68 | num_layers = len(w_list) 69 | scores = w_list[0] 70 | for w in range(1,num_layers): 71 | scores = np.matmul(scores, w_list[w]) 72 | return scores 73 | 74 | def destroy(self): 75 | tf.keras.backend.clear_session() 76 | return 77 | 78 | def get_params(self): 79 | return self.num_layer, self.layer_nodes, self.l1, self.l2, self.dropout, self.learning_rate 80 | 81 | def tune_MiMeNet(train, seed=None): 82 | best_score = -1000 83 | best_params = [] 84 | 85 | micro, metab = train 86 | def build_model(num_layer=1, layer_nodes=128, 87 | l1=0.0001, l2=0.0001, dropout=0.25, batch_size=1024, patience=40, 88 | lr=0.0001, seed=42, gaussian_noise=0): 89 | 90 | reg = tf.keras.regularizers.L1L2(l1, l2) 91 | 92 | model = tf.keras.Sequential() 93 | model.add(tf.keras.layers.Input(micro.shape[1])) 94 | for l in range(num_layer): 95 | model.add(tf.keras.layers.Dense(layer_nodes, activation='relu', 96 | kernel_regularizer=reg, bias_regularizer=reg, name="fc" + str(l))) 97 | model.add(tf.keras.layers.Dropout(dropout)) 98 | model.add(tf.keras.layers.Dense(metab.shape[1], activation='linear', 99 | kernel_regularizer=reg, bias_regularizer=reg, name="output")) 100 | model.compile(optimizer=tf.keras.optimizers.Adam(lr), loss='MSE', metrics=["mse"]) 101 | return model 102 | es_cb = tf.keras.callbacks.EarlyStopping('val_loss', patience=40, restore_best_weights=True) 103 | 104 | def my_custom_loss_func(y_true, y_pred): 105 | diff = np.float(pd.DataFrame(y_true).corrwith(pd.DataFrame(y_pred)).mean()) 106 | return diff 107 | 108 | scorer = make_scorer(my_custom_loss_func, greater_is_better=True) 109 | callbacks = [es_cb] 110 | 111 | #_l1_lambda = np.logspace(-4,-2,50) 112 | _l1_lambda = [0] 113 | _l2_lambda = np.logspace(-4,-1,10) 114 | _num_layer = [1,2,3] 115 | _layer_nodes = [32,128,512] 116 | _dropout = [0.1,0.3,0.5] 117 | _learning_rate = [0.001] 118 | params=dict(l1=_l1_lambda, l2=_l2_lambda, num_layer=_num_layer, 119 | layer_nodes = _layer_nodes, dropout=_dropout, lr=_learning_rate) 120 | 121 | 122 | 123 | 124 | for i in range(20): 125 | model = KerasRegressor(build_fn=build_model,epochs=1000,batch_size=1024, verbose=0) 126 | 127 | rscv = RandomizedSearchCV(model,param_distributions=params, cv=5, n_iter=1, 128 | scoring=scorer) 129 | rscv_results = rscv.fit(micro,metab,callbacks=callbacks, validation_split=0.2) 130 | if rscv_results.best_score_ > best_score: 131 | best_score = rscv_results.best_score_ 132 | best_params = rscv_results.best_params_ 133 | tf.keras.backend.clear_session() 134 | 135 | print('Best score is: {} using {}'.format(best_score, best_params)) 136 | return best_params -------------------------------------------------------------------------------- /src/models/__pycache__/MLPNN.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YDaiLab/MiMeNet/f9064b54d61c40d12207db896bc137341969aef4/src/models/__pycache__/MLPNN.cpython-37.pyc -------------------------------------------------------------------------------- /src/models/__pycache__/MiMeNet.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YDaiLab/MiMeNet/f9064b54d61c40d12207db896bc137341969aef4/src/models/__pycache__/MiMeNet.cpython-37.pyc -------------------------------------------------------------------------------- /src/models/rf.py: -------------------------------------------------------------------------------- 1 | # Third-party libraries 2 | import numpy as np 3 | import random 4 | from sklearn.ensemble import RandomForestClassifier 5 | from sklearn.preprocessing import MinMaxScaler, StandardScaler 6 | from sklearn.model_selection import KFold 7 | from sklearn.metrics import roc_auc_score 8 | 9 | def train(train, test, seed=42, feature_select=True): 10 | 11 | x, y = train 12 | test_x, test_y = test 13 | num_trees = 500 14 | clf = RandomForestClassifier(n_estimators=200, n_jobs=-1) 15 | clf.fit(x, y) 16 | 17 | feature_importance = clf.feature_importances_ 18 | 19 | feature_ranking = np.flip(np.argsort(feature_importance)) 20 | num_features = x.shape[1] 21 | best_num_features = num_features 22 | 23 | if feature_select: 24 | percent_features = [1.0, 0.75, 0.5, 0.25] 25 | 26 | skf = KFold(n_splits=5, shuffle=True) 27 | 28 | best_score = -1 29 | 30 | for percent in percent_features: 31 | run_score = -1 32 | run_probs = [] 33 | i=0 34 | for train_index, valid_index in skf.split(x): 35 | train_x, valid_x = x[train_index], x[valid_index] 36 | train_y, valid_y = np.argmax(y[train_index], axis=1), np.argmax(y[valid_index], axis=1) 37 | 38 | features_using = int(round(num_features * percent)) 39 | feature_list = feature_ranking[0:features_using] 40 | filtered_train_x = train_x[:,feature_list] 41 | filtered_valid_x = valid_x[:,feature_list] 42 | clf = RandomForestClassifier(n_estimators=200, n_jobs=-1).fit(filtered_train_x, train_y) 43 | probs = np.array(clf.predict_proba(filtered_valid_x)) 44 | if i == 0: 45 | run_probs = np.array(probs) 46 | else: 47 | run_probs = np.concatenate((run_probs, probs), axis=0) 48 | i+=1 49 | run_score = roc_auc_score(y, run_probs, average="weighted") 50 | 51 | if run_score > best_score: 52 | best_num_features = num_features 53 | 54 | 55 | feature_list = feature_ranking[0:best_num_features] 56 | x_filt = x[:,feature_list] 57 | test_x_filt = test_x[:,feature_list] 58 | 59 | 60 | clf = RandomForestClassifier(n_estimators=200, n_jobs=-1).fit(x_filt, np.argmax(y, axis=1)) 61 | 62 | test_probs = np.array(clf.predict_proba(test_x_filt)) 63 | 64 | 65 | return test_probs 66 | --------------------------------------------------------------------------------