Mercurial > repos > george-weingart > lefse
changeset 1:db64b6287cd6 draft
Modified datatypes
line wrap: on
line diff
--- a/Readme_lefse_Galaxy.txt Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -Installation instructions for lefse in a galaxy environment. -These instructions require the Mercurial versioning system, galaxy, and an internet connection. - -1. In the "galaxy-dist/tools" directory install lefse by cloning the repository: - - bitbucket.org/biobakery/lefse_galaxy - -2. Rename the galaxy_lefse directory thus created to "lefse" - -3. Update member tool_conf.xml in the galaxy directory adding the following: - - <section name="LEfSe" id="lefse"> - <tool file="lefse/format_input.xml" /> - <tool file="lefse/run_lefse.xml" /> - <tool file="lefse/plot_res.xml" /> - <tool file="lefse/plot_cladogram.xml" /> - <tool file="lefse/plot_single_feature.xml" /> - <tool file="lefse/plot_features.xml" /> - </section> - - -4. Update member datatypes_conf.xml in the galaxy directory adding the following: - <datatype extension="lefse" type="galaxy.datatypes.data:Lefse" display_in_upload="true"/> - <datatype extension="lefse_res" type="galaxy.datatypes.tabular:LefseRes" display_in_upload="true"/> - -5. Copy the *.png members to galaxy-dist/static/images - -6. Recycle galaxy -
--- a/datatypes_conf.xml Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -<?xml version="1.0"?> -<datatypes> - <registration> - <datatype extension="lefse" type="galaxy.datatypes.data:Lefse" display_in_upload="true"/> - <datatype extension="lefse_res" type="galaxy.datatypes.tabular:LefseRes" display_in_upload="true"/> - </registration> -</datatypes>
--- a/format_input.py Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,286 +0,0 @@ -#!/usr/bin/env python - -import sys,os,argparse,pickle,re - -def read_input_file(inp_file): - with open(inp_file) as inp: - return [[v.strip() for v in line.strip().split("\t")] for line in inp.readlines()] - -def transpose(data): - return zip(*data) - -def read_params(args): - parser = argparse.ArgumentParser(description='LEfSe formatting modules') - parser.add_argument('input_file', metavar='INPUT_FILE', type=str, help="the input file, feature hierarchical level can be specified with | or . and those symbols must not be present for other reasons in the input file.") - parser.add_argument('output_file', metavar='OUTPUT_FILE', type=str, - help="the output file containing the data for LEfSe") - parser.add_argument('--output_table', type=str, required=False, default="", - help="the formatted table in txt format") - parser.add_argument('-f',dest="feats_dir", choices=["c","r"], type=str, default="r", - help="set whether the features are on rows (default) or on columns") - parser.add_argument('-c',dest="class", metavar="[1..n_feats]", type=int, default=1, - help="set which feature use as class (default 1)") - parser.add_argument('-s',dest="subclass", metavar="[1..n_feats]", type=int, default=None, - help="set which feature use as subclass (default -1 meaning no subclass)") - parser.add_argument('-o',dest="norm_v", metavar="float", type=float, default=-1.0, - help="set the normalization value (default -1.0 meaning no normalization)") - parser.add_argument('-u',dest="subject", metavar="[1..n_feats]", type=int, default=None, - help="set which feature use as subject (default -1 meaning no subject)") - parser.add_argument('-m',dest="missing_p", choices=["f","s"], type=str, default="d", - help="set the policy to adopt with missin values: f removes the features with missing values, s removes samples with missing values (default f)") - parser.add_argument('-n',dest="subcl_min_card", metavar="int", type=int, default=10, - help="set the minimum cardinality of each subclass (subclasses with low cardinalities will be grouped together, if the cardinality is still low, no pairwise comparison will be performed with them)") - - args = parser.parse_args() - - return vars(args) - -def remove_missing(data,roc): - if roc == "c": data = transpose(data) - max_len = max([len(r) for r in data]) - to_rem = [] - for i,r in enumerate(data): - if len([v for v in r if not( v == "" or v.isspace())]) < max_len: to_rem.append(i) - if len(to_rem): - for i in to_rem.reverse(): - data.pop(i) - if roc == "c": return transpose(data) - return data - - -def sort_by_cl(data,n,c,s,u): - def sort_lines1(a,b): - return int(a[c] > b[c])*2-1 - def sort_lines2u(a,b): - if a[c] != b[c]: return int(a[c] > b[c])*2-1 - return int(a[u] > b[u])*2-1 - def sort_lines2s(a,b): - if a[c] != b[c]: return int(a[c] > b[c])*2-1 - return int(a[s] > b[s])*2-1 - def sort_lines3(a,b): - if a[c] != b[c]: return int(a[c] > b[c])*2-1 - if a[s] != b[s]: return int(a[s] > b[s])*2-1 - return int(a[u] > b[u])*2-1 - if n == 3: data.sort(sort_lines3) - if n == 2: - if s is None: - data.sort(sort_lines2u) - else: - data.sort(sort_lines2s) - if n == 1: data.sort(sort_lines1) - return data - -def group_small_subclasses(cls,min_subcl): - last = "" - n = 0 - repl = [] - dd = [list(cls['class']),list(cls['subclass'])] - for d in dd: - if d[1] != last: - if n < min_subcl and last != "": - repl.append(d[1]) - last = d[1] - n = 1 - for i,d in enumerate(dd): - if d[1] in repl: dd[i][1] = "other" - dd[i][1] = str(dd[i][0])+"_"+str(dd[i][1]) - cls['class'] = dd[0] - cls['subclass'] = dd[1] - return cls - -def get_class_slices(data): - previous_class = data[0][0] - previous_subclass = data[0][1] - subclass_slices = [] - class_slices = [] - last_cl = 0 - last_subcl = 0 - class_hierarchy = [] - subcls = [] - for i,d in enumerate(data): - if d[1] != previous_subclass: - subclass_slices.append((previous_subclass,(last_subcl,i))) - last_subcl = i - subcls.append(previous_subclass) - if d[0] != previous_class: - class_slices.append((previous_class,(last_cl,i))) - class_hierarchy.append((previous_class,subcls)) - subcls = [] - last_cl = i - previous_subclass = d[1] - previous_class = d[0] - subclass_slices.append((previous_subclass,(last_subcl,i+1))) - subcls.append(previous_subclass) - class_slices.append((previous_class,(last_cl,i+1))) - class_hierarchy.append((previous_class,subcls)) - return dict(class_slices), dict(subclass_slices), dict(class_hierarchy) - -def numerical_values(feats,norm): - mm = [] - for k,v in feats.items(): - feats[k] = [float(val) for val in v] - if norm < 0.0: return feats - tr = zip(*(feats.values())) - mul = [] - fk = feats.keys() - hie = True if sum([k.count(".") for k in fk]) > len(fk) else False - for i in range(len(feats.values()[0])): - if hie: mul.append(sum([t for j,t in enumerate(tr[i]) if fk[j].count(".") < 1 ])) - else: mul.append(sum(tr[i])) - if hie and sum(mul) == 0: - mul = [] - for i in range(len(feats.values()[0])): - mul.append(sum(tr[i])) - for i,m in enumerate(mul): - if m == 0: mul[i] = 0.0 - else: mul[i] = float(norm) / m - for k,v in feats.items(): - feats[k] = [val*mul[i] for i,val in enumerate(v)] - return feats - -def add_missing_levels2(ff): - - if sum( [f.count(".") for f in ff] ) < 1: return ff - - dn = {} - - added = True - while added: - added = False - for f in ff: - lev = f.count(".") - if lev == 0: continue - if lev not in dn: dn[lev] = [f] - else: dn[lev].append(f) - for fn in sorted(dn,reverse=True): - for f in dn[fn]: - fc = ".".join(f.split('.')[:-1]) - if fc not in ff: - ab_all = [ff[fg] for fg in ff if (fg.count(".") == 0 and fg == fc) or (fg.count(".") > 0 and fc == ".".join(fg.split('.')[:-1]))] - ab =[] - for l in [f for f in zip(*ab_all)]: - ab.append(sum([float(ll) for ll in l])) - ff[fc] = ab - added = True - if added: - break - - return ff - - -def add_missing_levels(ff): - if sum( [f.count(".") for f in ff] ) < 1: return ff - - clades2leaves = {} - for f in ff: - fs = f.split(".") - if len(fs) < 2: - continue - for l in range(len(fs)): - n = ".".join( fs[:l] ) - if n in clades2leaves: - clades2leaves[n].append( f ) - else: - clades2leaves[n] = [f] - for k,v in clades2leaves.items(): - if k and k not in ff: - ff[k] = [sum(a) for a in zip(*[[float(fn) for fn in ff[vv]] for vv in v])] - return ff - - - -def modify_feature_names(fn): - ret = fn - - for v in [' ',r'\$',r'\@',r'#',r'%',r'\^',r'\&',r'\*',r'\"',r'\'']: - ret = [re.sub(v,"",f) for f in ret] - for v in ["/",r'\(',r'\)',r'-',r'\+',r'=',r'{',r'}',r'\[',r'\]', - r',',r'\.',r';',r':',r'\?',r'\<',r'\>',r'\.',r'\,']: - ret = [re.sub(v,"_",f) for f in ret] - for v in ["\|"]: - ret = [re.sub(v,".",f) for f in ret] - - ret2 = [] - for r in ret: - if r[0] in ['0','1','2','3','4','5','6','7','8','9']: - ret2.append("f_"+r) - else: ret2.append(r) - - return ret2 - - -def rename_same_subcl(cl,subcl): - toc = [] - for sc in set(subcl): - if len(set([cl[i] for i in range(len(subcl)) if sc == subcl[i]])) > 1: - toc.append(sc) - new_subcl = [] - for i,sc in enumerate(subcl): - if sc in toc: new_subcl.append(cl[i]+"_"+sc) - else: new_subcl.append(sc) - return new_subcl - -if __name__ == '__main__': - params = read_params(sys.argv) - - if type(params['subclass']) is int and int(params['subclass']) < 1: - params['subclass'] = None - if type(params['subject']) is int and int(params['subject']) < 1: - params['subject'] = None - data = read_input_file(sys.argv[1]) - - if params['feats_dir'] == "c": - data = transpose(data) - - ncl = 1 - if not params['subclass'] is None: ncl += 1 - if not params['subject'] is None: ncl += 1 - - first_line = zip(*data)[0] - - first_line = modify_feature_names(list(first_line)) - - data = zip( first_line, - *sort_by_cl(zip(*data)[1:], - ncl, - params['class']-1, - params['subclass']-1 if not params['subclass'] is None else None, - params['subject']-1 if not params['subject'] is None else None)) -# data.insert(0,first_line) -# data = remove_missing(data,params['missing_p']) - cls = {} - - cls_i = [('class',params['class']-1)] - if params['subclass'] > 0: cls_i.append(('subclass',params['subclass']-1)) - if params['subject'] > 0: cls_i.append(('subject',params['subject']-1)) - cls_i.sort(lambda x, y: -cmp(x[1],y[1])) - for v in cls_i: cls[v[0]] = data.pop(v[1])[1:] - if not params['subclass'] > 0: cls['subclass'] = [str(cl)+"_subcl" for cl in cls['class']] - - cls['subclass'] = rename_same_subcl(cls['class'],cls['subclass']) -# if 'subclass' in cls.keys(): cls = group_small_subclasses(cls,params['subcl_min_card']) - class_sl,subclass_sl,class_hierarchy = get_class_slices(zip(*cls.values())) - - feats = dict([(d[0],d[1:]) for d in data]) - - feats = add_missing_levels(feats) - - feats = numerical_values(feats,params['norm_v']) - out = {} - out['feats'] = feats - out['norm'] = params['norm_v'] - out['cls'] = cls - out['class_sl'] = class_sl - out['subclass_sl'] = subclass_sl - out['class_hierarchy'] = class_hierarchy - - if params['output_table']: - with open( params['output_table'], "w") as outf: - if 'class' in cls: outf.write( "\t".join(list(["class"])+list(cls['class'])) + "\n" ) - if 'subclass' in cls: outf.write( "\t".join(list(["subclass"])+list(cls['subclass'])) + "\n" ) - if 'subject' in cls: outf.write( "\t".join(list(["subject"])+list(cls['subject'])) + "\n" ) - for k,v in out['feats'].items(): outf.write( "\t".join([k]+[str(vv) for vv in v]) + "\n" ) - - with open(params['output_file'], 'wb') as back_file: - pickle.dump(out,back_file) -
--- a/format_input.xml Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,219 +0,0 @@ -<tool id="LEfSe_for" name="A) Format Data for LEfSe" version="1.0"> - <code file="format_input_selector.py"/> - <description></description> -<!-- <command interpreter="python">./format_input.py $inp_data $formatted_input -f $feat_dir -c $cls_n -s $subcls_n -u $subj_n -o 1000000.0 </command> --> -<command interpreter="python">format_input.py $inp_data $formatted_input -f $cond.feat_dir -c $cond.cls_n -s $cond.subcls_n -u $cond.subj_n -o $norm </command> - <inputs> - <page> - <param format="tabular" name="inp_data" type="data" label="Upload a tabular file of relative abundances and class labels (possibly also subclass and subjects labels) for LEfSe - See samples below - Please use Galaxy Get-Data/Upload-File. Use File-Type = Tabular" help=""/> - <param name="cond" type="data_column" data_ref="inp_data" accept_default="true" /> - - <conditional name="cond" type="data_column" data_ref="inp_data" accept_default="true"> - <param name="feat_dir" type="select" data_ref="inp_data" label="Select whether the vectors (features and meta-data information) are listed in rows or columns" help=""> - <option value="r" selected='True'>Rows</option> - <option value="c">Columns</option> - </param> - - <when value="r"> - <param name="cls_n" label="Select which row to use as class" size ="70" type='select' dynamic_options="get_cols(inp_data,'r','cl')" /> - <param name="subcls_n" label="Select which row to use as subclass" type='select' dynamic_options="get_cols(inp_data,'r','subclass')" /> - <param name="subj_n" label="Select which row to use as subject" type='select' dynamic_options="get_cols(inp_data,'r','subject')" /> - </when> - <when value="c"> - <param name="cls_n" label="Select which column to use as class" type='select' dynamic_options="get_cols(inp_data,'c','cl')" /> - <param name="subcls_n" label="Select which column to use as subclass" type='select' dynamic_options="get_cols(inp_data,'c','subclass')" /> - <param name="subj_n" label="Select which column to use as subject" type='select' dynamic_options="get_cols(inp_data,'c','subject')" /> - </when> - - </conditional> - - <param name="norm" type="select" label="Per-sample normalization of the sum of the values to 1M (recommended when very low values are present)" help=""> - <option value="1000000.0" selected='True'>Yes</option> - <option value="-1">No</option> - </param> - -<!-- <param name="row" label="on row" type="data_row" data_ref="inp_data" accept_default="true" /> --> - </page> - </inputs> - <outputs> - <data format="lefse" name="formatted_input" /> - </outputs> - - <tests> - <test> - <param name="inp_data" value="lefse_input" ftype="tabular" /> - <param name="cond.feat_dir" value="r" /> - <param name="cond.cls_n" value="1" /> - <param name="cond.subcls" value="-1" /> - <param name="cond.subj" value="-1" /> - <param name="norm" value="1000000" /> - <output name="formatted_input" file="lefse_output_a" /> - </test> - </tests> - - - - -<help> - - -**What it does** - -LDA Effect Size (LEfSe) `(Segata et. al 2010)`_ is an algorithm for high-dimensional biomarker discovery and -explanation that identifies genomic features (genes, pathways, or taxa) characterizing -the differences between two or more biological conditions (or classes, see figure below). It -emphasizes both statistical significance and biological relevance, allowing -researchers to identify differentially abundant features that are also consistent with -biologically meaningful categories (subclasses). LEfSe first robustly -identifies features that are statistically different among biological classes. It then -performs additional tests to assess whether these differences are consistent with -respect to expected biological behavior. - -Specifically, we first use the non-parametric factorial -Kruskal-Wallis (KW) sum-rank test to detect features with -significant differential abundance with respect to the class of interest; biological -significance is subsequently investigated using a set of pairwise tests among -subclasses using the (unpaired) Wilcoxon rank-sum test. As a last step, LEfSe uses -Linear Discriminant Analysis to estimate the effect size of each differentially -abundant feature and, if desired by the investigator, to perform dimension reduction. - -LEfSe consists of six modules performing the following steps (see the figure below). - -The first step consists of **uploading your file** by using Galaxy's "Get-Data / Upload-file" - - -The next steps are: - -+ **A) Format Data for LEfSe**: selects the structure of the problem (classes, subclasses, subjects) and formats the tabular abundance data for the B module -+ **B) LDA Effect Size (LEfSe)**: performs the analysis using the data formatted with module A and provides input for the visualization modules (C, D, E, F) -+ **C) Plot LEfSe Results**: graphically reports the discovered biomarkes (output of B) with their effect sizes -+ **D) Plot Cladogram**: graphically represents the discovered biomarkers (output of B) in a taxonomic tree specified by the hierarchical feature names (not available for non-hierarchical features) -+ **E) Plot One Feature**: plots the row values of a feature (biomarker or not) as an abundance histogram with classes and subclasses structure (only one feature at the time) -+ **F) Plot Differential Features**: plots the row values of all features (biomarkers or not) as abundance histograms with classes and subclasses structure and provides a zip archive of the figures - -.. image:: https://bytebucket.org/biobakery/galaxy_lefse/wiki/lefse_ove.png - - ------- - - -**Input file format** - -The text tab-delimited input file consists of a list of numerical features, the class vector and optionally the subclass and subject vectors. The features can be read counts directly or abundance floating-point values more generally, and the first field is the name of the feature. Class, subclass and subject vectors have a name (the first field) and a list of non-numerical strings. - -Although both column and row feature organization is accepted, given the high-dimensional nature of metagenomic data, the listing of the features in rows is preferred. A partial example of an input file follows (all values are separated by single-tab):: - - bodysite mucosal mucosal mucosal mucosal mucosal non_mucosal non_mucosal non_mucosal non_mucosal non_mucosal - subsite oral gut oral oral gut skin nasal skin ear nasal - id 1023 1023 1672 1876 1672 159005010 1023 1023 1023 1672 - Bacteria 0.99999 0.99999 0.999993 0.999989 0.999997 0.999927 0.999977 0.999987 0.999997 0.999993 - Bacteria|Actinobacteria 0.311037 0.000864363 0.00446132 0.0312045 0.000773642 0.359354 0.761108 0.603002 0.95913 0.753688 - Bacteria|Bacteroidetes 0.0689602 0.804293 0.00983343 0.0303561 0.859838 0.0195298 0.0212741 0.145729 0.0115617 0.0114511 - Bacteria|Firmicutes 0.494223 0.173411 0.715345 0.813046 0.124552 0.177961 0.189178 0.188964 0.0226835 0.192665 - Bacteria|Proteobacteria 0.0914284 0.0180378 0.265664 0.109549 0.00941215 0.430869 0.0225884 0.0532684 0.00512034 0.0365453 - Bacteria|Firmicutes|Clostridia 0.090041 0.170246 0.00483188 0.0465328 0.122702 0.0402301 0.0460614 0.135201 0.0115835 0.0537381 - -In this case one may want to use bodysite as class, subsite as subclass and id as subject. Notice that the features have a hierarchical structure specified using the character \|. - - -**Input file sample** - -You can try the LEfSe modules using the dataset available here_. You can upload the dataset using Galaxy's **Get-Data / Upload File** - -This is a 16S dataset from `(Garrett et. al 2010)`_ and `(Veiga et. al 2010)`_ for studying the characteristics of the fecal microbiota in a mouse model of spontaneous colitis. The dataset contains 30 abundance profiles (obtained processing the 16S reads with RDP) belonging to 10 rag2 (control) and 20 truc (case) mice. The metadata consists in class information only, as we don't have subject or subclass information. The same dataset is used to show the graphical results in the module descriptions. - - - ------- - -STEP A: -------- - - -**What STEP A does** - -Preprocessing module for the biomarker discovery tool called LEfSe: - -This module of LEfSe preprocesses metagenomic abundance data for the analyses to be carried out with the "Run LEfSe" module. This module is separated from the "Run LEfSe" because one may want to preprocess the data only once but run multiple analyses. - -For an overview of LEfSe please refer to the "Introduction" module or to `(Segata et. al 2011)`_. - ------- - -**Input format** - -The module accepts tabular data with the feature list in rows or columns. - ------- - -**Output format** - -The module generates data readable by the "Run LEfSe" module only. - ------- - -**Parameters** - -The class vector represents the labels of the main condition under investigation. The (optional) subclass vector denotes the internal groupings with biological meaning inside each class (subclasses of different classes with the same name are processed as different subclasses). The subject vector (optional) reports a third dimension denoting meta-data (subject id, sample type, ... ) which is independent from the class and subclass definition. - -The labels can have a hierarchical organization (see example below) reflecting taxonomies (like NCBI or RDB microbial taxonomy, SEED subsystems or GO terms). The taxonomic levels are specified using the character \|. - -The per-sample normalization is usually applied for metagenomic data in which the relative abundances are taken into account. - ------- - -**Example** - -Although both column and row feature organization is accepted, given the high-dimensional nature of metagenomic data, the listing of the features in rows is preferred. A partial example of an input file follows (all values are separated by single-tab):: - - bodysite mucosal mucosal mucosal mucosal mucosal non_mucosal non_mucosal non_mucosal non_mucosal non_mucosal - subsite oral gut oral oral gut skin nasal skin ear nasal - id 1023 1023 1672 1876 1672 159005010 1023 1023 1023 1672 - Bacteria 0.99999 0.99999 0.999993 0.999989 0.999997 0.999927 0.999977 0.999987 0.999997 0.999993 - Bacteria|Actinobacteria 0.311037 0.000864363 0.00446132 0.0312045 0.000773642 0.359354 0.761108 0.603002 0.95913 0.753688 - Bacteria|Bacteroidetes 0.0689602 0.804293 0.00983343 0.0303561 0.859838 0.0195298 0.0212741 0.145729 0.0115617 0.0114511 - Bacteria|Firmicutes 0.494223 0.173411 0.715345 0.813046 0.124552 0.177961 0.189178 0.188964 0.0226835 0.192665 - Bacteria|Proteobacteria 0.0914284 0.0180378 0.265664 0.109549 0.00941215 0.430869 0.0225884 0.0532684 0.00512034 0.0365453 - Bacteria|Firmicutes|Clostridia 0.090041 0.170246 0.00483188 0.0465328 0.122702 0.0402301 0.0460614 0.135201 0.0115835 0.0537381 - -In this case one may want to use bodysite as class, subsite as subclass and id as subject. Notice that the features have a hierarchical structure specified using the character \|. - -**Example with the "mouse model dataset"** - -You can try the LEfSe modules using the dataset available here_. This is a 16S dataset from `(Garrett et. al 2010)`_ and `(Veiga et. al 2010)`_ for studying the characteristics of the fecal microbiota in a mouse model of spontaneous colitis. The dataset contains 30 abundance profiles (obtained processing the 16S reads with RDP) belonging to 10 rag2 (control) and 20 truc (case) mice. The metadata consists of class information only, as we don't have subject or subclass information. The dataset contains the features organized in rows; you need to select the first row as class, whereas you have to select "no subclass" and "no subject" options. - - -.. _here: http://www.huttenhower.org/webfm_send/73 -.. _(Segata et. al 2011): http://www.ncbi.nlm.nih.gov/pubmed/21702898 -.. _(Garrett et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/20833380 -.. _(Veiga et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/20921388 -.. _contact us: nsegata@hsph.harvard.edu - - - - -**How to Cite LEfSe** - -If you find LEfSe usefull in your research please city our paper `(Segata et. al 2010)`_: - -| `Nicola Segata`_, Jacques Izard, Levi Walron, Dirk Gevers, Larisa Miropolsky, Wendy Garrett, `Curtis Huttenhower`_. -| "`Metagenomic Biomarker Discovery and Explanation`_" -| Genome Biology, 2011 Jun 24;12(6):R60 - - -Please do not hesitate to `contact us`_ for any questions of comments. - -.. _here: http://www.huttenhower.org/webfm_send/73 -.. _(Segata et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/21702898 -.. _(Garrett et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/20833380 -.. _(Veiga et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/20921388 -.. _contact us: nsegata@hsph.harvard.edu -.. _Nicola Segata: nsegata@hsph.harvard.edu -.. _Curtis Huttenhower: chuttenh@hsph.harvard.edu -.. _Metagenomic Biomarker Discovery and Explanation: http://genomebiology.com/2011/12/6/R60 - - - - -</help> -</tool>
--- a/format_input_selector.py Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -from galaxy import datatypes,model -import sys,string,time - - -def timenow(): - """return current time as a string - """ - return time.strftime('%d/%m/%Y %H:%M:%S', time.localtime(time.time())) - -def get_opt(data): - return [('r','r',False),('c','c',False)] - -def red(st,l): - if len(st) <= l: return st - l1,l2 = l/2,l/2 - return st[:l1]+".."+st[len(st)-l2:] - -def get_row_names(data,t): - if data == "": return [] - max_len =38 - fname = data.dataset.file_name - opt = [] - rc = '' -# lines = [(red(v.split()[0],max_len),'%s' % str(v.split()[0]),False) for i,v in enumerate(open(fname))] - if t == 'b': lines = [(red(v.split()[0],max_len),'%d' % (i+1),False) for i,v in enumerate(open(fname)) if len(v.split()) > 3 ] - else: lines = [(red(v.split()[0],max_len),'%d' % (i+1),False) for i,v in enumerate(open(fname))] - return sorted(opt+lines) - -def get_cols(data,t,c): - if data == "": return [] - max_len =32 - fname = data.dataset.file_name - opt = [] - if c != 'cl': - opt.append(('no '+c,'%d' % -1,False)) - if t == 'c': - rc = '' - lines = [(red((rc+"#"+str(i+1)+":"+v[0]),max_len),'%d' % (i+1),False) for i,v in enumerate(zip(*[line.split() for line in open(fname)]))] - else: - rc = '' - lines = [(red((rc+"#"+str(i+1)+":"+v.split()[0]),max_len),'%d' % (i+1),False) for i,v in enumerate(open(fname))] - return opt+lines - -""" -def get_phecols(i,addNone,hint): - hint = hint.lower() - fname = i.dataset.file_name - try: - f = open(fname,'r') - except: - return [('get_phecols unable to open file "%s"' % fname,'None',False),] - header = f.next() - h = header.strip().split() - dat = [(x,'%d' % i,False) for i,x in enumerate(h)] - matches = [i for i,x in enumerate(h) if x.lower().find(hint) <> -1] - if len(matches) > 0: - sel = matches[0] - dat[sel] = (dat[sel][0],dat[sel][1],True) - if addNone: - dat.insert(0,('None - no Manhattan plot','0', False )) - return dat -""" - - -""" -def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): - outfile = 'out_html' - job_name = param_dict.get( 'name', 'Manhattan QQ plots' ) - killme = string.punctuation + string.whitespace - trantab = string.maketrans(killme,'_'*len(killme)) - newname = '%s.html' % job_name.translate(trantab) - data = out_data[outfile] - data.name = newname - data.info='%s run at %s' % (job_name,timenow()) - out_data[outfile] = data - app.model.context.flush() -"""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/datatypes_conf.xml Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<datatypes> + <registration> + <datatype extension="lefse" type="galaxy.datatypes.data:Text" subclass="true" display_in_upload="true"/> + <datatype extension="lefse_internal_res" type="galaxy.datatypes.data:Text" subclass="true" display_in_upload="true"/> + <datatype extension="lefse_internal_for" type="galaxy.datatypes.data:Text" subclass="true" display_in_upload="true"/> + </registration> +</datatypes>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/format_input.py Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,286 @@ +#!/usr/bin/env python + +import sys,os,argparse,pickle,re + +def read_input_file(inp_file): + with open(inp_file) as inp: + return [[v.strip() for v in line.strip().split("\t")] for line in inp.readlines()] + +def transpose(data): + return zip(*data) + +def read_params(args): + parser = argparse.ArgumentParser(description='LEfSe formatting modules') + parser.add_argument('input_file', metavar='INPUT_FILE', type=str, help="the input file, feature hierarchical level can be specified with | or . and those symbols must not be present for other reasons in the input file.") + parser.add_argument('output_file', metavar='OUTPUT_FILE', type=str, + help="the output file containing the data for LEfSe") + parser.add_argument('--output_table', type=str, required=False, default="", + help="the formatted table in txt format") + parser.add_argument('-f',dest="feats_dir", choices=["c","r"], type=str, default="r", + help="set whether the features are on rows (default) or on columns") + parser.add_argument('-c',dest="class", metavar="[1..n_feats]", type=int, default=1, + help="set which feature use as class (default 1)") + parser.add_argument('-s',dest="subclass", metavar="[1..n_feats]", type=int, default=None, + help="set which feature use as subclass (default -1 meaning no subclass)") + parser.add_argument('-o',dest="norm_v", metavar="float", type=float, default=-1.0, + help="set the normalization value (default -1.0 meaning no normalization)") + parser.add_argument('-u',dest="subject", metavar="[1..n_feats]", type=int, default=None, + help="set which feature use as subject (default -1 meaning no subject)") + parser.add_argument('-m',dest="missing_p", choices=["f","s"], type=str, default="d", + help="set the policy to adopt with missin values: f removes the features with missing values, s removes samples with missing values (default f)") + parser.add_argument('-n',dest="subcl_min_card", metavar="int", type=int, default=10, + help="set the minimum cardinality of each subclass (subclasses with low cardinalities will be grouped together, if the cardinality is still low, no pairwise comparison will be performed with them)") + + args = parser.parse_args() + + return vars(args) + +def remove_missing(data,roc): + if roc == "c": data = transpose(data) + max_len = max([len(r) for r in data]) + to_rem = [] + for i,r in enumerate(data): + if len([v for v in r if not( v == "" or v.isspace())]) < max_len: to_rem.append(i) + if len(to_rem): + for i in to_rem.reverse(): + data.pop(i) + if roc == "c": return transpose(data) + return data + + +def sort_by_cl(data,n,c,s,u): + def sort_lines1(a,b): + return int(a[c] > b[c])*2-1 + def sort_lines2u(a,b): + if a[c] != b[c]: return int(a[c] > b[c])*2-1 + return int(a[u] > b[u])*2-1 + def sort_lines2s(a,b): + if a[c] != b[c]: return int(a[c] > b[c])*2-1 + return int(a[s] > b[s])*2-1 + def sort_lines3(a,b): + if a[c] != b[c]: return int(a[c] > b[c])*2-1 + if a[s] != b[s]: return int(a[s] > b[s])*2-1 + return int(a[u] > b[u])*2-1 + if n == 3: data.sort(sort_lines3) + if n == 2: + if s is None: + data.sort(sort_lines2u) + else: + data.sort(sort_lines2s) + if n == 1: data.sort(sort_lines1) + return data + +def group_small_subclasses(cls,min_subcl): + last = "" + n = 0 + repl = [] + dd = [list(cls['class']),list(cls['subclass'])] + for d in dd: + if d[1] != last: + if n < min_subcl and last != "": + repl.append(d[1]) + last = d[1] + n = 1 + for i,d in enumerate(dd): + if d[1] in repl: dd[i][1] = "other" + dd[i][1] = str(dd[i][0])+"_"+str(dd[i][1]) + cls['class'] = dd[0] + cls['subclass'] = dd[1] + return cls + +def get_class_slices(data): + previous_class = data[0][0] + previous_subclass = data[0][1] + subclass_slices = [] + class_slices = [] + last_cl = 0 + last_subcl = 0 + class_hierarchy = [] + subcls = [] + for i,d in enumerate(data): + if d[1] != previous_subclass: + subclass_slices.append((previous_subclass,(last_subcl,i))) + last_subcl = i + subcls.append(previous_subclass) + if d[0] != previous_class: + class_slices.append((previous_class,(last_cl,i))) + class_hierarchy.append((previous_class,subcls)) + subcls = [] + last_cl = i + previous_subclass = d[1] + previous_class = d[0] + subclass_slices.append((previous_subclass,(last_subcl,i+1))) + subcls.append(previous_subclass) + class_slices.append((previous_class,(last_cl,i+1))) + class_hierarchy.append((previous_class,subcls)) + return dict(class_slices), dict(subclass_slices), dict(class_hierarchy) + +def numerical_values(feats,norm): + mm = [] + for k,v in feats.items(): + feats[k] = [float(val) for val in v] + if norm < 0.0: return feats + tr = zip(*(feats.values())) + mul = [] + fk = feats.keys() + hie = True if sum([k.count(".") for k in fk]) > len(fk) else False + for i in range(len(feats.values()[0])): + if hie: mul.append(sum([t for j,t in enumerate(tr[i]) if fk[j].count(".") < 1 ])) + else: mul.append(sum(tr[i])) + if hie and sum(mul) == 0: + mul = [] + for i in range(len(feats.values()[0])): + mul.append(sum(tr[i])) + for i,m in enumerate(mul): + if m == 0: mul[i] = 0.0 + else: mul[i] = float(norm) / m + for k,v in feats.items(): + feats[k] = [val*mul[i] for i,val in enumerate(v)] + return feats + +def add_missing_levels2(ff): + + if sum( [f.count(".") for f in ff] ) < 1: return ff + + dn = {} + + added = True + while added: + added = False + for f in ff: + lev = f.count(".") + if lev == 0: continue + if lev not in dn: dn[lev] = [f] + else: dn[lev].append(f) + for fn in sorted(dn,reverse=True): + for f in dn[fn]: + fc = ".".join(f.split('.')[:-1]) + if fc not in ff: + ab_all = [ff[fg] for fg in ff if (fg.count(".") == 0 and fg == fc) or (fg.count(".") > 0 and fc == ".".join(fg.split('.')[:-1]))] + ab =[] + for l in [f for f in zip(*ab_all)]: + ab.append(sum([float(ll) for ll in l])) + ff[fc] = ab + added = True + if added: + break + + return ff + + +def add_missing_levels(ff): + if sum( [f.count(".") for f in ff] ) < 1: return ff + + clades2leaves = {} + for f in ff: + fs = f.split(".") + if len(fs) < 2: + continue + for l in range(len(fs)): + n = ".".join( fs[:l] ) + if n in clades2leaves: + clades2leaves[n].append( f ) + else: + clades2leaves[n] = [f] + for k,v in clades2leaves.items(): + if k and k not in ff: + ff[k] = [sum(a) for a in zip(*[[float(fn) for fn in ff[vv]] for vv in v])] + return ff + + + +def modify_feature_names(fn): + ret = fn + + for v in [' ',r'\$',r'\@',r'#',r'%',r'\^',r'\&',r'\*',r'\"',r'\'']: + ret = [re.sub(v,"",f) for f in ret] + for v in ["/",r'\(',r'\)',r'-',r'\+',r'=',r'{',r'}',r'\[',r'\]', + r',',r'\.',r';',r':',r'\?',r'\<',r'\>',r'\.',r'\,']: + ret = [re.sub(v,"_",f) for f in ret] + for v in ["\|"]: + ret = [re.sub(v,".",f) for f in ret] + + ret2 = [] + for r in ret: + if r[0] in ['0','1','2','3','4','5','6','7','8','9']: + ret2.append("f_"+r) + else: ret2.append(r) + + return ret2 + + +def rename_same_subcl(cl,subcl): + toc = [] + for sc in set(subcl): + if len(set([cl[i] for i in range(len(subcl)) if sc == subcl[i]])) > 1: + toc.append(sc) + new_subcl = [] + for i,sc in enumerate(subcl): + if sc in toc: new_subcl.append(cl[i]+"_"+sc) + else: new_subcl.append(sc) + return new_subcl + +if __name__ == '__main__': + params = read_params(sys.argv) + + if type(params['subclass']) is int and int(params['subclass']) < 1: + params['subclass'] = None + if type(params['subject']) is int and int(params['subject']) < 1: + params['subject'] = None + data = read_input_file(sys.argv[1]) + + if params['feats_dir'] == "c": + data = transpose(data) + + ncl = 1 + if not params['subclass'] is None: ncl += 1 + if not params['subject'] is None: ncl += 1 + + first_line = zip(*data)[0] + + first_line = modify_feature_names(list(first_line)) + + data = zip( first_line, + *sort_by_cl(zip(*data)[1:], + ncl, + params['class']-1, + params['subclass']-1 if not params['subclass'] is None else None, + params['subject']-1 if not params['subject'] is None else None)) +# data.insert(0,first_line) +# data = remove_missing(data,params['missing_p']) + cls = {} + + cls_i = [('class',params['class']-1)] + if params['subclass'] > 0: cls_i.append(('subclass',params['subclass']-1)) + if params['subject'] > 0: cls_i.append(('subject',params['subject']-1)) + cls_i.sort(lambda x, y: -cmp(x[1],y[1])) + for v in cls_i: cls[v[0]] = data.pop(v[1])[1:] + if not params['subclass'] > 0: cls['subclass'] = [str(cl)+"_subcl" for cl in cls['class']] + + cls['subclass'] = rename_same_subcl(cls['class'],cls['subclass']) +# if 'subclass' in cls.keys(): cls = group_small_subclasses(cls,params['subcl_min_card']) + class_sl,subclass_sl,class_hierarchy = get_class_slices(zip(*cls.values())) + + feats = dict([(d[0],d[1:]) for d in data]) + + feats = add_missing_levels(feats) + + feats = numerical_values(feats,params['norm_v']) + out = {} + out['feats'] = feats + out['norm'] = params['norm_v'] + out['cls'] = cls + out['class_sl'] = class_sl + out['subclass_sl'] = subclass_sl + out['class_hierarchy'] = class_hierarchy + + if params['output_table']: + with open( params['output_table'], "w") as outf: + if 'class' in cls: outf.write( "\t".join(list(["class"])+list(cls['class'])) + "\n" ) + if 'subclass' in cls: outf.write( "\t".join(list(["subclass"])+list(cls['subclass'])) + "\n" ) + if 'subject' in cls: outf.write( "\t".join(list(["subject"])+list(cls['subject'])) + "\n" ) + for k,v in out['feats'].items(): outf.write( "\t".join([k]+[str(vv) for vv in v]) + "\n" ) + + with open(params['output_file'], 'wb') as back_file: + pickle.dump(out,back_file) +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/format_input.xml Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,219 @@ +<tool id="LEfSe_for" name="A) Format Data for LEfSe" version="1.0"> + <code file="format_input_selector.py"/> + <description></description> +<!-- <command interpreter="python">./format_input.py $inp_data $formatted_input -f $feat_dir -c $cls_n -s $subcls_n -u $subj_n -o 1000000.0 </command> --> +<command interpreter="python">format_input.py $inp_data $formatted_input -f $cond.feat_dir -c $cond.cls_n -s $cond.subcls_n -u $cond.subj_n -o $norm </command> + <inputs> + <page> + <param format="tabular" name="inp_data" type="data" label="Upload a tabular file of relative abundances and class labels (possibly also subclass and subjects labels) for LEfSe - See samples below - Please use Galaxy Get-Data/Upload-File. Use File-Type = tabular" help=""/> + <param name="cond" type="data_column" data_ref="inp_data" accept_default="true" /> + + <conditional name="cond" type="data_column" data_ref="inp_data" accept_default="true"> + <param name="feat_dir" type="select" data_ref="inp_data" label="Select whether the vectors (features and meta-data information) are listed in rows or columns" help=""> + <option value="r" selected='True'>Rows</option> + <option value="c">Columns</option> + </param> + + <when value="r"> + <param name="cls_n" label="Select which row to use as class" size ="70" type='select' dynamic_options="get_cols(inp_data,'r','cl')" /> + <param name="subcls_n" label="Select which row to use as subclass" type='select' dynamic_options="get_cols(inp_data,'r','subclass')" /> + <param name="subj_n" label="Select which row to use as subject" type='select' dynamic_options="get_cols(inp_data,'r','subject')" /> + </when> + <when value="c"> + <param name="cls_n" label="Select which column to use as class" type='select' dynamic_options="get_cols(inp_data,'c','cl')" /> + <param name="subcls_n" label="Select which column to use as subclass" type='select' dynamic_options="get_cols(inp_data,'c','subclass')" /> + <param name="subj_n" label="Select which column to use as subject" type='select' dynamic_options="get_cols(inp_data,'c','subject')" /> + </when> + + </conditional> + + <param name="norm" type="select" label="Per-sample normalization of the sum of the values to 1M (recommended when very low values are present)" help=""> + <option value="1000000.0" selected='True'>Yes</option> + <option value="-1">No</option> + </param> + +<!-- <param name="row" label="on row" type="data_row" data_ref="inp_data" accept_default="true" /> --> + </page> + </inputs> + <outputs> + <data format="lefse_internal_for" name="formatted_input" /> + </outputs> + + <tests> + <test> + <param name="inp_data" value="lefse_input" ftype="tabular" /> + <param name="cond.feat_dir" value="r" /> + <param name="cond.cls_n" value="1" /> + <param name="cond.subcls" value="-1" /> + <param name="cond.subj" value="-1" /> + <param name="norm" value="1000000" /> + <output name="formatted_input" file="lefse_output_a" /> + </test> + </tests> + + + + +<help> + + +**What it does** + +LDA Effect Size (LEfSe) `(Segata et. al 2010)`_ is an algorithm for high-dimensional biomarker discovery and +explanation that identifies genomic features (genes, pathways, or taxa) characterizing +the differences between two or more biological conditions (or classes, see figure below). It +emphasizes both statistical significance and biological relevance, allowing +researchers to identify differentially abundant features that are also consistent with +biologically meaningful categories (subclasses). LEfSe first robustly +identifies features that are statistically different among biological classes. It then +performs additional tests to assess whether these differences are consistent with +respect to expected biological behavior. + +Specifically, we first use the non-parametric factorial +Kruskal-Wallis (KW) sum-rank test to detect features with +significant differential abundance with respect to the class of interest; biological +significance is subsequently investigated using a set of pairwise tests among +subclasses using the (unpaired) Wilcoxon rank-sum test. As a last step, LEfSe uses +Linear Discriminant Analysis to estimate the effect size of each differentially +abundant feature and, if desired by the investigator, to perform dimension reduction. + +LEfSe consists of six modules performing the following steps (see the figure below). + +The first step consists of **uploading your file** by using Galaxy's "Get-Data / Upload-file" + + +The next steps are: + ++ **A) Format Data for LEfSe**: selects the structure of the problem (classes, subclasses, subjects) and formats the tabular abundance data for the B module ++ **B) LDA Effect Size (LEfSe)**: performs the analysis using the data formatted with module A and provides input for the visualization modules (C, D, E, F) ++ **C) Plot LEfSe Results**: graphically reports the discovered biomarkes (output of B) with their effect sizes ++ **D) Plot Cladogram**: graphically represents the discovered biomarkers (output of B) in a taxonomic tree specified by the hierarchical feature names (not available for non-hierarchical features) ++ **E) Plot One Feature**: plots the row values of a feature (biomarker or not) as an abundance histogram with classes and subclasses structure (only one feature at the time) ++ **F) Plot Differential Features**: plots the row values of all features (biomarkers or not) as abundance histograms with classes and subclasses structure and provides a zip archive of the figures + +.. image:: https://bytebucket.org/biobakery/galaxy_lefse/wiki/lefse_ove.png + + +------ + + +**Input file format** + +The text tab-delimited input file consists of a list of numerical features, the class vector and optionally the subclass and subject vectors. The features can be read counts directly or abundance floating-point values more generally, and the first field is the name of the feature. Class, subclass and subject vectors have a name (the first field) and a list of non-numerical strings. + +Although both column and row feature organization is accepted, given the high-dimensional nature of metagenomic data, the listing of the features in rows is preferred. A partial example of an input file follows (all values are separated by single-tab):: + + bodysite mucosal mucosal mucosal mucosal mucosal non_mucosal non_mucosal non_mucosal non_mucosal non_mucosal + subsite oral gut oral oral gut skin nasal skin ear nasal + id 1023 1023 1672 1876 1672 159005010 1023 1023 1023 1672 + Bacteria 0.99999 0.99999 0.999993 0.999989 0.999997 0.999927 0.999977 0.999987 0.999997 0.999993 + Bacteria|Actinobacteria 0.311037 0.000864363 0.00446132 0.0312045 0.000773642 0.359354 0.761108 0.603002 0.95913 0.753688 + Bacteria|Bacteroidetes 0.0689602 0.804293 0.00983343 0.0303561 0.859838 0.0195298 0.0212741 0.145729 0.0115617 0.0114511 + Bacteria|Firmicutes 0.494223 0.173411 0.715345 0.813046 0.124552 0.177961 0.189178 0.188964 0.0226835 0.192665 + Bacteria|Proteobacteria 0.0914284 0.0180378 0.265664 0.109549 0.00941215 0.430869 0.0225884 0.0532684 0.00512034 0.0365453 + Bacteria|Firmicutes|Clostridia 0.090041 0.170246 0.00483188 0.0465328 0.122702 0.0402301 0.0460614 0.135201 0.0115835 0.0537381 + +In this case one may want to use bodysite as class, subsite as subclass and id as subject. Notice that the features have a hierarchical structure specified using the character \|. + + +**Input file sample** + +You can try the LEfSe modules using the dataset available here_. You can upload the dataset using Galaxy's **Get-Data / Upload File** + +This is a 16S dataset from `(Garrett et. al 2010)`_ and `(Veiga et. al 2010)`_ for studying the characteristics of the fecal microbiota in a mouse model of spontaneous colitis. The dataset contains 30 abundance profiles (obtained processing the 16S reads with RDP) belonging to 10 rag2 (control) and 20 truc (case) mice. The metadata consists in class information only, as we don't have subject or subclass information. The same dataset is used to show the graphical results in the module descriptions. + + + +------ + +STEP A: +------- + + +**What STEP A does** + +Preprocessing module for the biomarker discovery tool called LEfSe: + +This module of LEfSe preprocesses metagenomic abundance data for the analyses to be carried out with the "Run LEfSe" module. This module is separated from the "Run LEfSe" because one may want to preprocess the data only once but run multiple analyses. + +For an overview of LEfSe please refer to the "Introduction" module or to `(Segata et. al 2011)`_. + +------ + +**Input format** + +The module accepts tabular data with the feature list in rows or columns. + +------ + +**Output format** + +The module generates data readable by the "Run LEfSe" module only. + +------ + +**Parameters** + +The class vector represents the labels of the main condition under investigation. The (optional) subclass vector denotes the internal groupings with biological meaning inside each class (subclasses of different classes with the same name are processed as different subclasses). The subject vector (optional) reports a third dimension denoting meta-data (subject id, sample type, ... ) which is independent from the class and subclass definition. + +The labels can have a hierarchical organization (see example below) reflecting taxonomies (like NCBI or RDB microbial taxonomy, SEED subsystems or GO terms). The taxonomic levels are specified using the character \|. + +The per-sample normalization is usually applied for metagenomic data in which the relative abundances are taken into account. + +------ + +**Example** + +Although both column and row feature organization is accepted, given the high-dimensional nature of metagenomic data, the listing of the features in rows is preferred. A partial example of an input file follows (all values are separated by single-tab):: + + bodysite mucosal mucosal mucosal mucosal mucosal non_mucosal non_mucosal non_mucosal non_mucosal non_mucosal + subsite oral gut oral oral gut skin nasal skin ear nasal + id 1023 1023 1672 1876 1672 159005010 1023 1023 1023 1672 + Bacteria 0.99999 0.99999 0.999993 0.999989 0.999997 0.999927 0.999977 0.999987 0.999997 0.999993 + Bacteria|Actinobacteria 0.311037 0.000864363 0.00446132 0.0312045 0.000773642 0.359354 0.761108 0.603002 0.95913 0.753688 + Bacteria|Bacteroidetes 0.0689602 0.804293 0.00983343 0.0303561 0.859838 0.0195298 0.0212741 0.145729 0.0115617 0.0114511 + Bacteria|Firmicutes 0.494223 0.173411 0.715345 0.813046 0.124552 0.177961 0.189178 0.188964 0.0226835 0.192665 + Bacteria|Proteobacteria 0.0914284 0.0180378 0.265664 0.109549 0.00941215 0.430869 0.0225884 0.0532684 0.00512034 0.0365453 + Bacteria|Firmicutes|Clostridia 0.090041 0.170246 0.00483188 0.0465328 0.122702 0.0402301 0.0460614 0.135201 0.0115835 0.0537381 + +In this case one may want to use bodysite as class, subsite as subclass and id as subject. Notice that the features have a hierarchical structure specified using the character \|. + +**Example with the "mouse model dataset"** + +You can try the LEfSe modules using the dataset available here_. This is a 16S dataset from `(Garrett et. al 2010)`_ and `(Veiga et. al 2010)`_ for studying the characteristics of the fecal microbiota in a mouse model of spontaneous colitis. The dataset contains 30 abundance profiles (obtained processing the 16S reads with RDP) belonging to 10 rag2 (control) and 20 truc (case) mice. The metadata consists of class information only, as we don't have subject or subclass information. The dataset contains the features organized in rows; you need to select the first row as class, whereas you have to select "no subclass" and "no subject" options. + + +.. _here: http://www.huttenhower.org/webfm_send/73 +.. _(Segata et. al 2011): http://www.ncbi.nlm.nih.gov/pubmed/21702898 +.. _(Garrett et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/20833380 +.. _(Veiga et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/20921388 +.. _contact us: nsegata@hsph.harvard.edu + + + + +**How to Cite LEfSe** + +If you find LEfSe usefull in your research please city our paper `(Segata et. al 2010)`_: + +| `Nicola Segata`_, Jacques Izard, Levi Walron, Dirk Gevers, Larisa Miropolsky, Wendy Garrett, `Curtis Huttenhower`_. +| "`Metagenomic Biomarker Discovery and Explanation`_" +| Genome Biology, 2011 Jun 24;12(6):R60 + + +Please do not hesitate to `contact us`_ for any questions of comments. + +.. _here: http://www.huttenhower.org/webfm_send/73 +.. _(Segata et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/21702898 +.. _(Garrett et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/20833380 +.. _(Veiga et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/20921388 +.. _contact us: nsegata@hsph.harvard.edu +.. _Nicola Segata: nsegata@hsph.harvard.edu +.. _Curtis Huttenhower: chuttenh@hsph.harvard.edu +.. _Metagenomic Biomarker Discovery and Explanation: http://genomebiology.com/2011/12/6/R60 + + + + +</help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/format_input_selector.py Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,77 @@ +from galaxy import datatypes,model +import sys,string,time + + +def timenow(): + """return current time as a string + """ + return time.strftime('%d/%m/%Y %H:%M:%S', time.localtime(time.time())) + +def get_opt(data): + return [('r','r',False),('c','c',False)] + +def red(st,l): + if len(st) <= l: return st + l1,l2 = l/2,l/2 + return st[:l1]+".."+st[len(st)-l2:] + +def get_row_names(data,t): + if data == "": return [] + max_len =38 + fname = data.dataset.file_name + opt = [] + rc = '' +# lines = [(red(v.split()[0],max_len),'%s' % str(v.split()[0]),False) for i,v in enumerate(open(fname))] + if t == 'b': lines = [(red(v.split()[0],max_len),'%d' % (i+1),False) for i,v in enumerate(open(fname)) if len(v.split()) > 3 ] + else: lines = [(red(v.split()[0],max_len),'%d' % (i+1),False) for i,v in enumerate(open(fname))] + return sorted(opt+lines) + +def get_cols(data,t,c): + if data == "": return [] + max_len =32 + fname = data.dataset.file_name + opt = [] + if c != 'cl': + opt.append(('no '+c,'%d' % -1,False)) + if t == 'c': + rc = '' + lines = [(red((rc+"#"+str(i+1)+":"+v[0]),max_len),'%d' % (i+1),False) for i,v in enumerate(zip(*[line.split() for line in open(fname)]))] + else: + rc = '' + lines = [(red((rc+"#"+str(i+1)+":"+v.split()[0]),max_len),'%d' % (i+1),False) for i,v in enumerate(open(fname))] + return opt+lines + +""" +def get_phecols(i,addNone,hint): + hint = hint.lower() + fname = i.dataset.file_name + try: + f = open(fname,'r') + except: + return [('get_phecols unable to open file "%s"' % fname,'None',False),] + header = f.next() + h = header.strip().split() + dat = [(x,'%d' % i,False) for i,x in enumerate(h)] + matches = [i for i,x in enumerate(h) if x.lower().find(hint) <> -1] + if len(matches) > 0: + sel = matches[0] + dat[sel] = (dat[sel][0],dat[sel][1],True) + if addNone: + dat.insert(0,('None - no Manhattan plot','0', False )) + return dat +""" + + +""" +def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): + outfile = 'out_html' + job_name = param_dict.get( 'name', 'Manhattan QQ plots' ) + killme = string.punctuation + string.whitespace + trantab = string.maketrans(killme,'_'*len(killme)) + newname = '%s.html' % job_name.translate(trantab) + data = out_data[outfile] + data.name = newname + data.info='%s run at %s' % (job_name,timenow()) + out_data[outfile] = data + app.model.context.flush() +"""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/lefse.py Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,241 @@ +import os,sys,math,pickle +import random as lrand +import rpy2.robjects as robjects +import argparse +import numpy +#import svmutil + +def init(): + lrand.seed(1982) + robjects.r('library(splines)') + robjects.r('library(stats4)') + robjects.r('library(survival)') + robjects.r('library(mvtnorm)') + robjects.r('library(modeltools)') + robjects.r('library(coin)') + robjects.r('library(MASS)') + +def get_class_means(class_sl,feats): + means = {} + clk = class_sl.keys() + for fk,f in feats.items(): + means[fk] = [numpy.mean((f[class_sl[k][0]:class_sl[k][1]])) for k in clk] + return clk,means + +def save_res(res,filename): + with open(filename, 'w') as out: + for k,v in res['cls_means'].items(): + out.write(k+"\t"+str(math.log(max(max(v),1.0),10.0))+"\t") + if k in res['lda_res_th']: + for i,vv in enumerate(v): + if vv == max(v): + out.write(str(res['cls_means_kord'][i])+"\t") + break + out.write(str(res['lda_res'][k])) + else: out.write("\t") + out.write( "\t" + res['wilcox_res'][k]+"\n") + +def load_data(input_file, nnorm = False): + with open(input_file, 'rb') as inputf: + inp = pickle.load(inputf) + if nnorm: return inp['feats'],inp['cls'],inp['class_sl'],inp['subclass_sl'],inp['class_hierarchy'],inp['norm'] + else: return inp['feats'],inp['cls'],inp['class_sl'],inp['subclass_sl'],inp['class_hierarchy'] + +def load_res(input_file): + with open(input_file, 'rb') as inputf: + inp = pickle.load(inputf) + return inp['res'],inp['params'],inp['class_sl'],inp['subclass_sl'] + + +def test_kw_r(cls,feats,p,factors): + robjects.globalenv["y"] = robjects.FloatVector(feats) + for i,f in enumerate(factors): + robjects.globalenv['x'+str(i+1)] = robjects.FactorVector(robjects.StrVector(cls[f])) + fo = "y~x1" + #for i,f in enumerate(factors[1:]): + # if f == "subclass" and len(set(cls[f])) <= len(set(cls["class"])): continue + # if len(set(cls[f])) == len(cls[f]): continue + # fo += "+x"+str(i+2) + kw_res = robjects.r('kruskal.test('+fo+',)$p.value') + return float(tuple(kw_res)[0]) < p, float(tuple(kw_res)[0]) + +def test_rep_wilcoxon_r(sl,cl_hie,feats,th,multiclass_strat,mul_cor,fn,min_c,comp_only_same_subcl,curv=False): + comp_all_sub = not comp_only_same_subcl + tot_ok = 0 + alpha_mtc = th + all_diff = [] + for pair in [(x,y) for x in cl_hie.keys() for y in cl_hie.keys() if x < y]: + dir_cmp = "not_set" # + l_subcl1, l_subcl2 = (len(cl_hie[pair[0]]), len(cl_hie[pair[1]])) + if mul_cor != 0: alpha_mtc = th*l_subcl1*l_subcl2 if mul_cor == 2 else 1.0-math.pow(1.0-th,l_subcl1*l_subcl2) + ok = 0 + curv_sign = 0 + first = True + for i,k1 in enumerate(cl_hie[pair[0]]): + br = False + for j,k2 in enumerate(cl_hie[pair[1]]): + if not comp_all_sub and k1[len(pair[0]):] != k2[len(pair[1]):]: + ok += 1 + continue + cl1 = feats[sl[k1][0]:sl[k1][1]] + cl2 = feats[sl[k2][0]:sl[k2][1]] + med_comp = False + if len(cl1) < min_c or len(cl2) < min_c: + med_comp = True + sx,sy = numpy.median(cl1),numpy.median(cl2) + if cl1[0] == cl2[0] and len(set(cl1)) == 1 and len(set(cl2)) == 1: + tres, first = False, False + elif not med_comp: + robjects.globalenv["x"] = robjects.FloatVector(cl1+cl2) + robjects.globalenv["y"] = robjects.FactorVector(robjects.StrVector(["a" for a in cl1]+["b" for b in cl2])) + pv = float(robjects.r('pvalue(wilcox_test(x~y,data=data.frame(x,y)))')[0]) + tres = pv < alpha_mtc*2.0 + if first: + first = False + if not curv and ( med_comp or tres ): + dir_cmp = sx < sy + #if sx == sy: br = True + elif curv: + dir_cmp = None + if med_comp or tres: + curv_sign += 1 + dir_cmp = sx < sy + else: br = True + elif not curv and med_comp: + if ((sx < sy) != dir_cmp or sx == sy): br = True + elif curv: + if tres and dir_cmp == None: + curv_sign += 1 + dir_cmp = sx < sy + if tres and dir_cmp != (sx < sy): + br = True + curv_sign = -1 + elif not tres or (sx < sy) != dir_cmp or sx == sy: br = True + if br: break + ok += 1 + if br: break + if curv: diff = curv_sign > 0 + else: diff = (ok == len(cl_hie[pair[1]])*len(cl_hie[pair[0]])) # or (not comp_all_sub and dir_cmp != "not_set") + if diff: tot_ok += 1 + if not diff and multiclass_strat: return False + if diff and not multiclass_strat: all_diff.append(pair) + if not multiclass_strat: + tot_k = len(cl_hie.keys()) + for k in cl_hie.keys(): + nk = 0 + for a in all_diff: + if k in a: nk += 1 + if nk == tot_k-1: return True + return False + return True + + + +def contast_within_classes_or_few_per_class(feats,inds,min_cl,ncl): + ff = zip(*[v for n,v in feats.items() if n != 'class']) + cols = [ff[i] for i in inds] + cls = [feats['class'][i] for i in inds] + if len(set(cls)) < ncl: + return True + for c in set(cls): + if cls.count(c) < min_cl: + return True + cols_cl = [x for i,x in enumerate(cols) if cls[i] == c] + for i,col in enumerate(zip(*cols_cl)): + if (len(set(col)) <= min_cl and min_cl > 1) or (min_cl == 1 and len(set(col)) <= 1): + return True + return False + +def test_lda_r(cls,feats,cl_sl,boots,fract_sample,lda_th,tol_min,nlogs): + fk = feats.keys() + means = dict([(k,[]) for k in feats.keys()]) + feats['class'] = list(cls['class']) + clss = list(set(feats['class'])) + for uu,k in enumerate(fk): + if k == 'class': continue + ff = [(feats['class'][i],v) for i,v in enumerate(feats[k])] + for c in clss: + if len(set([float(v[1]) for v in ff if v[0] == c])) > max(float(feats['class'].count(c))*0.5,4): continue + for i,v in enumerate(feats[k]): + if feats['class'][i] == c: + feats[k][i] = math.fabs(feats[k][i] + lrand.normalvariate(0.0,max(feats[k][i]*0.05,0.01))) + rdict = {} + for a,b in feats.items(): + if a == 'class' or a == 'subclass' or a == 'subject': + rdict[a] = robjects.StrVector(b) + else: rdict[a] = robjects.FloatVector(b) + robjects.globalenv["d"] = robjects.DataFrame(rdict) + lfk = len(feats[fk[0]]) + rfk = int(float(len(feats[fk[0]]))*fract_sample) + f = "class ~ "+fk[0] + for k in fk[1:]: f += " + " + k.strip() + ncl = len(set(cls['class'])) + min_cl = int(float(min([cls['class'].count(c) for c in set(cls['class'])]))*fract_sample*fract_sample*0.5) + min_cl = max(min_cl,1) + pairs = [(a,b) for a in set(cls['class']) for b in set(cls['class']) if a > b] + + for k in fk: + for i in range(boots): + means[k].append([]) + for i in range(boots): + for rtmp in range(1000): + rand_s = [lrand.randint(0,lfk-1) for v in range(rfk)] + if not contast_within_classes_or_few_per_class(feats,rand_s,min_cl,ncl): break + rand_s = [r+1 for r in rand_s] + means[k][i] = [] + for p in pairs: + robjects.globalenv["rand_s"] = robjects.IntVector(rand_s) + robjects.globalenv["sub_d"] = robjects.r('d[rand_s,]') + z = robjects.r('z <- suppressWarnings(lda(as.formula('+f+'),data=sub_d,tol='+str(tol_min)+'))') + robjects.r('w <- z$scaling[,1]') + robjects.r('w.unit <- w/sqrt(sum(w^2))') + robjects.r('ss <- sub_d[,-match("class",colnames(sub_d))]') + if 'subclass' in feats: + robjects.r('ss <- ss[,-match("subclass",colnames(ss))]') + if 'subject' in feats: + robjects.r('ss <- ss[,-match("subject",colnames(ss))]') + robjects.r('xy.matrix <- as.matrix(ss)') + robjects.r('LD <- xy.matrix%*%w.unit') + robjects.r('effect.size <- abs(mean(LD[sub_d[,"class"]=="'+p[0]+'"]) - mean(LD[sub_d[,"class"]=="'+p[1]+'"]))') + scal = robjects.r('wfinal <- w.unit * effect.size') + rres = robjects.r('mm <- z$means') + rowns = list(rres.rownames) + lenc = len(list(rres.colnames)) + coeff = [abs(float(v)) if not math.isnan(float(v)) else 0.0 for v in scal] + res = dict([(pp,[float(ff) for ff in rres.rx(pp,True)] if pp in rowns else [0.0]*lenc ) for pp in [p[0],p[1]]]) + for j,k in enumerate(fk): + gm = abs(res[p[0]][j] - res[p[1]][j]) + means[k][i].append((gm+coeff[j])*0.5) + res = {} + for k in fk: + m = max([numpy.mean([means[k][kk][p] for kk in range(boots)]) for p in range(len(pairs))]) + res[k] = math.copysign(1.0,m)*math.log(1.0+math.fabs(m),10) + return res,dict([(k,x) for k,x in res.items() if math.fabs(x) > lda_th]) + + +def test_svm(cls,feats,cl_sl,boots,fract_sample,lda_th,tol_min,nsvm): + return NULL +""" + fk = feats.keys() + clss = list(set(cls['class'])) + y = [clss.index(c)*2-1 for c in list(cls['class'])] + xx = [feats[f] for f in fk] + if nsvm: + maxs = [max(v) for v in xx] + mins = [min(v) for v in xx] + x = [ dict([(i+1,(v-mins[i])/(maxs[i]-mins[i])) for i,v in enumerate(f)]) for f in zip(*xx)] + else: x = [ dict([(i+1,v) for i,v in enumerate(f)]) for f in zip(*xx)] + + lfk = len(feats[fk[0]]) + rfk = int(float(len(feats[fk[0]]))*fract_sample) + mm = [] + + best_c = svmutil.svm_ms(y, x, [pow(2.0,i) for i in range(-5,10)],'-t 0 -q') + for i in range(boots): + rand_s = [lrand.randint(0,lfk-1) for v in range(rfk)] + r = svmutil.svm_w([y[yi] for yi in rand_s], [x[xi] for xi in rand_s], best_c,'-t 0 -q') + mm.append(r[:len(fk)]) + m = [numpy.mean(v) for v in zip(*mm)] + res = dict([(v,m[i]) for i,v in enumerate(fk)]) + return res,dict([(k,x) for k,x in res.items() if math.fabs(x) > lda_th]) +"""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/lefse2circlader.py Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,43 @@ +#!/usr/bin/env python + +from __future__ import with_statement + +import sys +import os +import argparse + +def read_params(args): + parser = argparse.ArgumentParser(description='Convert LEfSe output to ' + 'Circlader input') + parser.add_argument( 'inp_f', metavar='INPUT_FILE', nargs='?', + default=None, type=str, + help="the input file [stdin if not present]") + parser.add_argument( 'out_f', metavar='OUTPUT_FILE', nargs='?', + default=None, type=str, + help="the output file [stdout if not present]") + parser.add_argument('-l', metavar='levels with label', default=0, type=int) + + return vars(parser.parse_args()) + +def lefse2circlader(par): + finp,fout = bool(par['inp_f']), bool(par['out_f']) + + with open(par['inp_f']) if finp else sys.stdin as inpf: + put_bm = (l.strip().split('\t') for l in inpf.readlines()) + biomarkers = [p for p in put_bm if len(p) > 2] + + circ = [ [ b[0], + "" if b[0].count('.') > par['l'] else b[0].split('.')[-1], + b[2], + b[2]+"_col" ] for b in biomarkers] + + with open(par['out_f'],'w') if fout else sys.stdout as out_file: + for c in circ: + out_file.write( "\t".join( c ) + "\n" ) + +if __name__ == '__main__': + params = read_params(sys.argv) + lefse2circlader(params) + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/plot_cladogram.py Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,342 @@ +#!/usr/bin/env python + +import os,sys,matplotlib,argparse,string +matplotlib.use('Agg') +from pylab import * +from lefse import * +import numpy as np + +colors = ['r','g','b','m','c',[1.0,0.5,0.0],[0.0,1.0,0.0],[0.33,0.125,0.0],[0.75,0.75,0.75],'k'] +dark_colors = [[0.4,0.0,0.0],[0.0,0.2,0.0],[0.0,0.0,0.4],'m','c',[1.0,0.5,0.0],[0.0,1.0,0.0],[0.33,0.125,0.0],[0.75,0.75,0.75],'k'] + +class CladeNode: + def __init__(self, name, abundance, viz = True): + self.id = name + self.name = name.split(".") + self.last_name = self.name[-1] + self.abundance = abundance + self.pos = (-1.0,-1.0) + self.children = {} + self.isleaf = True + self.color = 'y' + self.next_leaf = -1 + self.prev_leaf = -1 + self.viz = viz + def __repr__(self): + return self.last_name + def add_child(self,node): + self.isleaf = False + self.children[node.__repr__()] = node + def get_children(self): + ck = sorted(self.children.keys()) + return [self.children[k] for k in ck] + def get_color(self): + return self.color + def set_color(self,c): + self.color = c + def set_pos(self,pos): + self.pos = pos + +def read_params(args): + parser = argparse.ArgumentParser(description='Cladoplot') + parser.add_argument('input_file', metavar='INPUT_FILE', type=str, help="tab delimited input file") + parser.add_argument('output_file', metavar='OUTPUT_FILE', type=str, help="the file for the output image") + parser.add_argument('--clade_sep',dest="clade_sep", type=float, default=1.5) + parser.add_argument('--max_lev',dest="max_lev", type=int, default=-1) + parser.add_argument('--max_point_size',dest="max_point_size", type=float, default=6.0) + parser.add_argument('--min_point_size',dest="min_point_size", type=float, default=1) + parser.add_argument('--point_edge_width',dest="markeredgewidth", type=float, default=.25) + parser.add_argument('--siblings_connector_width',dest="siblings_connector_width", type=float, default=2) + parser.add_argument('--parents_connector_width',dest="parents_connector_width", type=float, default=0.75) + parser.add_argument('--radial_start_lev',dest="radial_start_lev", type=int, default=1) + parser.add_argument('--labeled_start_lev',dest="labeled_start_lev", type=int, default=2) + parser.add_argument('--labeled_stop_lev',dest="labeled_stop_lev", type=int, default=5) + parser.add_argument('--abrv_start_lev',dest="abrv_start_lev", type=int, default=3) + parser.add_argument('--abrv_stop_lev',dest="abrv_stop_lev", type=int, default=5) + parser.add_argument('--expand_void_lev',dest="expand_void_lev", type=int, default=1) + parser.add_argument('--class_legend_vis',dest="class_legend_vis", type=int, default=1) + parser.add_argument('--colored_connector',dest="colored_connectors", type=int, default=1) + parser.add_argument('--alpha',dest="alpha", type=float, default=0.2) + parser.add_argument('--title',dest="title", type=str, default="Cladogram") + parser.add_argument('--sub_clade',dest="sub_clade", type=str, default="") + parser.add_argument('--title_font_size',dest="title_font_size", type=str, default="14") + parser.add_argument('--right_space_prop',dest="r_prop", type=float, default=0.1) + parser.add_argument('--left_space_prop',dest="l_prop", type=float, default=0.1) + parser.add_argument('--label_font_size',dest="label_font_size", type=str, default="6") + parser.add_argument('--background_color',dest="back_color", type=str, choices=["k","w"], default="w", help="set the color of the background") + parser.add_argument('--colored_labels',dest="col_lab", type=int, choices=[0,1], default=1, help="draw the label with class color (1) or in black (0)") + parser.add_argument('--class_legend_font_size',dest="class_legend_font_size", type=str, default="10") + parser.add_argument('--dpi',dest="dpi", type=int, default=72) + parser.add_argument('--format', dest="format", choices=["png","svg","pdf"], default="svg", type=str, help="the format for the output file") + parser.add_argument('--all_feats', dest="all_feats", type=str, default="") + args = parser.parse_args() + return vars(args) + +def cmp_names(la,lb): + if len(la) != len(lb): return False + for p in [(a,b) for i,a in enumerate(la) for j,b in enumerate(lb) if i == j]: + if p[0] != p[1]: return False + return True + +def build_tree(father,all_nodes,l,depth,viz): + cc = [n for n in all_nodes if len(n.name) > len(father.name) and cmp_names(father.name,n.name[:len(father.name)])] + children = [n for n in cc if len(n.name) == len(father.name)+1] + if len(children) == 0 and l < depth -1: # !!! + nc = CladeNode(father.id+"."+father.id.split(".")[-1],1.0,viz) + father.add_child(nc) + children.append(nc) + for child in children: + build_tree(child,cc,l+1,depth,viz) + father.add_child(child) + +def get_all_nodes(father): + ret = [father] + children = father.get_children() + for c in children: + ret += get_all_nodes(c) + return ret + +def read_data(input_file,params): + with open(input_file, 'r') as inp: + if params['sub_clade'] == "": rows = [line.strip().split()[:-1] for line in inp.readlines() if params['max_lev'] < 1 or line.split()[0].count(".") < params['max_lev']] + else: rows = [line.split(params['sub_clade']+".")[1].strip().split()[:-1] for line in inp.readlines() if ( params['max_lev'] < 1 or line.split()[0].count(".") < params['max_lev'] ) and line.startswith(params['sub_clade']+".")] + all_names = [lin[0] for lin in rows] + to_add = [] + + abundances = [float(v) for v in zip(*rows)[1] if v >= 0.0] + tree = {} + tree['classes'] = list(set([v[2] for v in rows if len(v)>2])) + tree['classes'].sort() + all_nodes = [CladeNode("root."+row[0],float(row[1])) for row in rows] + + depth = max([len(n.name) for n in all_nodes]) + + n2 = ["_".join(nn.name) for nn in all_nodes] + for i,nn in enumerate(all_nodes): + n = nn + while "_".join(n.name[:-1]) not in n2 and len(n.name) > 1: + n = CladeNode(".".join(n.name[:-1]),n.abundance) + all_nodes.append(n) + n2.append("_".join(n.name)) + + cls2 = [] + if params['all_feats'] != "": + cls2 = sorted(params['all_feats'].split(":")) + for i,v in enumerate(rows): + if len(v)>2: + if len(cls2) > 0: all_nodes[i].set_color(colors[cls2.index(v[2])%len(colors)]) + else: + if v[2].count('rgbcol') > 0: + ccc = [float(tt) for tt in v[2].split('_')[1:]] + all_nodes[i].set_color(ccc) + else: all_nodes[i].set_color(colors[sorted(tree['classes']).index(v[2])%len(colors)]) + root = CladeNode("root",-1.0) + root.set_pos((0.0,0.0)) + + build_tree(root,all_nodes,0,depth,params['expand_void_lev']==1) + + all_nodes = get_all_nodes(root) + + tree['root'] = root + tree['max_abs'] = max(abundances) + tree['min_abs'] = min(abundances) + levs = [] + for i in range(depth): + depthi = [n for n in all_nodes if len(n.name) == i+1] + levs.append(len(depthi)) + tree['nlev'] = levs + return tree + +def add_all_pos(father,n,distn,seps,tsep,mlev,last_leaf=-1,nc=1): + children = father.get_children() + leaves = True if children[0].isleaf else False + for i,child in enumerate(children): + if leaves: + n += 1.0 + men = 0.5 if len(children) == 1 else 0.0 + child.set_pos((n*distn-men*float(distn)+tsep,(len(father.name))/float(mlev-1))) + if last_leaf != -1: + child.prev_leaf = last_leaf + last_leaf.next_leaf = child + last_leaf = child + else: + ln = n + ltsep = tsep + n,tsep,last_leaf = add_all_pos(child,n,distn,seps,tsep,mlev,last_leaf,len(children)) + nn = (ln + n)*0.5*distn + ssep = (ltsep + tsep)*0.5 + if n-ln == 1: + ssep = ltsep + child.set_pos((nn+ssep,(len(father.name))/float(mlev-1))) + tsep += seps[len(father.name)-1] + return n,tsep,last_leaf + +def plot_points(father,params,pt_scale,ax): + children = father.get_children() + children.sort(key = lambda a: -int(a.get_color() == 'y')*a.abundance) + x,r = father.pos[0], father.pos[1] + for i,child in enumerate(children): + xc,rc = plot_points(child,params,pt_scale,ax) + if not father.viz: return x,r + ps = pt_scale[0]+father.abundance/pt_scale[1]+pt_scale[0] + col = father.get_color() + pw = params['markeredgewidth'] if col == 'y' else params['markeredgewidth']*3.0 + if x==0 and r==0: ax.plot(x,r, 'o',markersize=ps,color=col,markeredgewidth=0.01,markeredgecolor=params['fore_color']) + else: ax.plot(x,r, 'o',markersize=ps,color=col,markeredgewidth=pw,markeredgecolor=params['fore_color']) + return x,r + +def plot_lines(father,params,depth,ax,xf): + children = father.get_children() + x,r = father.pos[0], father.pos[1] + for i,child in enumerate(children): + xc,rc = plot_lines(child,params,depth,ax,x) + if i == 0: x_first, r_first = xc, rc + if len(father.name) >= depth-params['radial_start_lev']: + col = params['fore_color'] + lw=params['parents_connector_width'] + if not child.viz: continue + if father.get_color() != 'y' and father.get_color() == child.get_color() and params['colored_connectors']: + col = child.get_color() + lw *=2.5 + if col != params['fore_color']: + ax.plot([x,xc],[r,rc],"-",color=params['fore_color'],lw=lw*1.5) + ax.plot([x,xc],[r,rc],"-",color=col,lw=lw) + + if not father.viz or (len(children) == 1 and not children[0].viz): return x,r + if len(father.name) < depth-params['radial_start_lev']: + col = params['fore_color'] + lw=params['parents_connector_width'] + if father.get_color() != 'y': + f =True + for child in children: + if child.get_color() != father.get_color() or not params['colored_connectors']: + f = False + break + if f: + col = father.get_color() + lw *= 2.5 + if not (x==0 and r==0): + xx = xc if len(children) > 0 else x + if len(children) == 0: rc = r + xt = x if len(children)>1 else xx + if col != params['fore_color']: + ax.plot([x,xt],[r,rc],"-",color=params['fore_color'],lw=lw*1.5) + ax.plot([x,xt],[r,rc],"-",color=col,lw=lw) + if len(children) > 0 and 1 < len(father.name) < depth-params['radial_start_lev']: + xs = arange(x_first,xc,0.01) + ys = [rc for t in xs] + ax.plot(xs,ys,"-",color=col,lw=params['siblings_connector_width'],markeredgecolor=params['fore_color']) + return x,r + +def uniqueid(): + for l in string.lowercase: yield l + for l in string.lowercase: + for i in range(10): + yield l+str(i) + i = 0 + while True: + yield str(i) + i += 1 + +def plot_names(father,params,depth,ax,u_i,seps): + children = father.get_children() + l = len(father.name) + if len(children)==0: + if father.prev_leaf == -1 or father.next_leaf == -1: + fr_0, fr_1 = father.pos[0], father.pos[0] + else: fr_0, fr_1 = (father.pos[0]+father.prev_leaf.pos[0])*0.5, (father.pos[0]+father.next_leaf.pos[0])*0.5 + for i,child in enumerate(children): + fr,to = plot_names(child,params,depth,ax,u_i,seps) + if i == 0: fr_0 = fr + fr_1 = to + if father.get_color() != 'y' and params['labeled_start_lev'] < l <= params['labeled_stop_lev']+1: + col = father.get_color() + dd = params['labeled_stop_lev'] - params['labeled_start_lev'] + 1 + de = depth - 1 + dim = 1.0/float(de) + perc_ext = 0.65 if dim > 0.1 else 1.0 + clto = (de-l+1)*dim+dim*(dd+1-(l-dd-1))*perc_ext + clto = (de-l+1)*dim+dim*(dd-(l-params['labeled_start_lev'])+1)*perc_ext + des = float(180.0*(fr_0+fr_1)/np.pi)*0.5-90 + lab = "" + txt = father.last_name + if params['abrv_start_lev'] < l <= params['abrv_stop_lev'] + 1: + ide = u_i.next() + lab = str(ide)+": "+father.last_name + txt = str(ide) +# ax.bar(fr_0, clto, width = fr_1-fr_0, bottom = float(l-1)/float(depth-1), alpha = params['alpha'], color=col, edgecolor=col) + ax.bar(fr_0, clto, width = fr_1-fr_0, bottom = float(l-1)/float(de), alpha = params['alpha'], color=col, edgecolor=col) + ax.bar(0.0, 0.0, width = 0.0, bottom = 0.0, alpha = 1.0, color=col, edgecolor=params['fore_color'], label=lab) + if l <= params['abrv_stop_lev'] + 1: + if not params['col_lab']: col = params['fore_color'] + else: + if col not in colors: col = params['fore_color'] + else: col = dark_colors[colors.index(col)%len(dark_colors)] + ax.text((fr_0+fr_1)*0.5, clto+float(l-1)/float(de)-dim*perc_ext/2.0, txt, size = params['label_font_size'], rotation=des, ha ="center", va="center", color=col) + return fr_0, fr_1 + +def draw_tree(out_file,tree,params): + plt_size = 7 + nlev = tree['nlev'] + pt_scale = (params['min_point_size'],max(1.0,((tree['max_abs']-tree['min_abs']))/(params['max_point_size']-params['min_point_size']))) + depth = len(nlev) + sep = (2.0*np.pi)/float(nlev[-1]) + seps = [params['clade_sep']*sep/float(depth-i+1) for i in range(1,len(tree['nlev'])+1)] + totseps = sum([s*nlev[i] for i,s in enumerate(seps[:-1])]) + clade_sep_err = True if totseps > np.pi else False + while totseps > np.pi: + params['clade_sep'] *= 0.75 + seps = [params['clade_sep']*sep/(float(depth-i+1)*0.25) for i in range(1,len(tree['nlev'])+1)] + totseps = sum([s*nlev[i] for i,s in enumerate(seps[:-1])]) + if clade_sep_err: print 'clade_sep parameter too large, lowered to',params['clade_sep'] + + fig = plt.figure(edgecolor=params['back_color'],facecolor=params['back_color']) + ax = fig.add_subplot(111, polar=True, frame_on=False, axis_bgcolor=params['back_color'] ) + plt.subplots_adjust(right=1.0-params['r_prop'],left=params['l_prop']) + ax.grid(False) + xticks([]) + yticks([]) + + ds = (2.0*np.pi-totseps)/float(nlev[-1]) + + add_all_pos(tree['root'],0.0,ds,seps,0.0,depth) + + plot_lines(tree['root'],params,depth,ax,0) + plot_points(tree['root'],params,pt_scale,ax) + plot_names(tree['root'],params,depth,ax,uniqueid(),seps) + + r = np.arange(0, 3.0, 0.01) + theta = 2*np.pi*r + + def get_col_attr(x): + return hasattr(x, 'set_color') and not hasattr(x, 'set_facecolor') + + h, l = ax.get_legend_handles_labels() + if len(l) > 0: + leg = ax.legend(bbox_to_anchor=(1.05, 1), frameon=False, loc=2, borderaxespad=0.,prop={'size':params['label_font_size']}) + if leg != None: + gca().add_artist(leg) + for o in leg.findobj(get_col_attr): + o.set_color(params['fore_color']) + + cll = sorted(tree['classes']) if params['all_feats'] == "" else sorted(params['all_feats'].split(":")) + nll = [ax.bar(0.0, 0.0, width = 0.0, bottom = 0.0, color=colors[i%len(colors)], label=c) for i,c in enumerate(cll) if c in tree['classes']] + cl = [c for c in cll if c in tree['classes']] + + ax.set_title(params['title'],size=params['title_font_size'],color=params['fore_color']) + + if params['class_legend_vis']: + l2 = legend(nll, cl, loc=2, prop={'size':params['class_legend_font_size']}, frameon=False) + if l2 != None: + for o in l2.findobj(get_col_attr): + o.set_color(params['fore_color']) + + plt.savefig(out_file,format=params['format'],facecolor=params['back_color'],edgecolor=params['fore_color'],dpi=params['dpi']) + plt.close() + +if __name__ == '__main__': + params = read_params(sys.argv) + params['fore_color'] = 'w' if params['back_color'] == 'k' else 'k' + clad_tree = read_data(params['input_file'],params) + draw_tree(params['output_file'],clad_tree,params) +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/plot_cladogram.xml Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,211 @@ +<tool id="LEfSe_cla" name="D) Plot Cladogram" version="1.0"> + <description></description> +<command interpreter="python">plot_cladogram.py $inp_data $cladogram --title "$textm.title" --expand_void_lev $structural.expand_void_lev --max_lev $structural.max_lev --colored_label $graphical.colored_labels --labeled_start_lev $textm.labeled_start_lev --labeled_stop_lev $textm.labeled_stop_lev --abrv_start_lev $textm.abrv_start_lev --abrv_stop_lev $textm.abrv_stop_lev --radial_start_lev $graphical.radial_start_lev --max_point_size $graphical.max_point_size --min_point_size $graphical.min_point_size --point_edge_width $graphical.point_edge_width --siblings_connector_width $graphical.siblings_connector_width --parents_connector_width $graphical.parents_connector_width --alpha $graphical.alpha --clade_sep $graphical.clade_sep --title_font_size $textm.title_font_size --label_font_size $textm.label_font_size --class_legend_font_size $textm.class_legend_font_size --sub_clade "$structural.root" --background_color $graphical.background_color --format $for --right_space_prop $graphical.right_space_prop --left_space_prop 0.01 --dpi $dpi</command> + <inputs> + <page> + <param format="lefse_internal_res" name="inp_data" type="data" label="Select data" help=""/> + + <conditional name="structural"> + <param name="structural_choice" type="select" label="Set structural parameters of the cladogram" help=""> + <option value="d" selected='True'>Default</option> + <option value="a">Advanced</option> + </param> + <when value="d"> + <param name="root" type="hidden" value=""/> + <param name="expand_void_lev" type="hidden" value="0"/> + <param name="max_lev" type="hidden" value="6"/> + </when> + <when value="a"> + <param name="root" type="text" size="10" value="" label="Root of the tree (insert the full name of the clade separating the levels with '.', nothing means the highest level clade)"/> + <param name="expand_void_lev" type="select" label="Expand terminal non-leaf levels"> + <option value="1" >Yes</option> + <option value="0" selected='True'>No</option> + </param> + <param name="max_lev" type="integer" size="2" value="6" label="Maximum number of taxonomic levels"/> + </when> + </conditional> + + <conditional name="textm"> + <param name="text_choice" type="select" label="Set text and label options (font size, abbreviations, ...)" help=""> + <option value="d" selected='True'>Default</option> + <option value="a">Advanced</option> + </param> + <when value="d"> + <param name="title" type="hidden" value=""/> + <param name="label_font_size" type="hidden" value="7"/> + <param name="title_font_size" type="hidden" value="14" /> + <param name="class_legend_font_size" type="hidden" value="10"/> + <param name="labeled_start_lev" type="hidden" value="2"/> + <param name="labeled_stop_lev" type="hidden" value="6"/> + <param name="abrv_start_lev" type="hidden" value="4"/> + <param name="abrv_stop_lev" type="hidden" value="6"/> + </when> + <when value="a"> + <param name="title" type="text" size="10" value="" label="The title of the cladogram"/> + <param name="title_font_size" type="integer" size="2" value="14" label="Title font size"/> + <param name="label_font_size" type="integer" size="2" value="7" label="Label font size"/> + <param name="class_legend_font_size" type="integer" size="2" value="10" label="Class font size"/> + <param name="labeled_start_lev" type="integer" size="2" value="2" label="Starting level for drawing the labels"/> + <param name="labeled_stop_lev" type="integer" size="2" value="6" label="Last level for drawing the labels"/> + <param name="abrv_start_lev" type="integer" size="2" value="4" label="First level for abbreviating the labels"/> + <param name="abrv_stop_lev" type="integer" size="2" value="6" label="Last level for abbreviating the labels"/> + </when> + </conditional> + + <conditional name="graphical"> + <param name="graphical_choice" type="select" label="Set some graphical options to personalize the output"> + <option value="d" selected='True'>Default</option> + <option value="a">Advanced</option> + </param> + <when value="d"> + <param name="radial_start_lev" type="hidden" value="1" /> + <param name="max_point_size" type="hidden" value="7.0" /> + <param name="min_point_size" type="hidden" value="1.5" /> + <param name="point_edge_width" type="hidden" value="0.25" /> + <param name="siblings_connector_width" type="hidden" value="2.0" /> + <param name="parents_connector_width" type="hidden" value="0.8" /> + <param name="alpha" type="hidden" value="0.2" /> + <param name="clade_sep" type="hidden" value="1.5" /> + <param name="for" type="hidden" value="png" /> + <param name="right_space_prop" type="hidden" value="0.1"/> + <param name="colored_labels" type="hidden" value="0"/> + <param name="background_color" type="hidden" value="w"/> + </when> + <when value="a"> + <param name="radial_start_lev" type="integer" size="2" value="1" label="Number of external levels drawn in the radial representation"/> + <param name="max_point_size" type="float" size="2" value="7.0" label="Max dimension of the circles representing taxa"/> + <param name="min_point_size" type="float" size="2" value="1.5" label="Min dimension of the circles representing taxa"/> + <param name="point_edge_width" type="float" size="2" value="0.25" label="Width of the edges of the circles representing taxa"/> + <param name="siblings_connector_width" type="float" size="2" value="2.0" label="Width of the lines connecting sibling taxa"/> + <param name="parents_connector_width" type="float" size="2" value="0.8" label="Width of the lines connecting parent with son taxa"/> + <param name="alpha" type="float" size="2" value="0.2" label="The alpha value for the transparency of clade labeling"/> + <param name="right_space_prop" type="float" size="2" value="0.1" label="Ration of the horizontal space to be given to the right side (for adjusting for label legend)"/> + <param name="colored_labels" type="select" label="Whether to write the labels with the class color or in black"> + <option value="0" selected='True'>Black</option> + <option value="1">Class color</option> + </param> + <param name="background_color" type="select" label="Background color"> + <option value="w" selected='True'>White</option> + <option value="k">Black</option> + </param> + <param name="clade_sep" type="float" size="2" value="1.5" label="Set the space between clades at the lower level"/> + </when> + </conditional> + <param name="for" type="select" label="Output format"> + <option value="png" selected="png">png</option> + <option value="svg">svg</option> + <option value="pdf">pdf</option> + </param> + <param name="dpi" type="select" label="Set the dpi resolution of the output"> + <option value="72">72</option> + <option value="150" selected="True">150</option> + <option value="300">300</option> + <option value="600">600</option> + <option value="1200">1200</option> + </param> + + </page> + </inputs> + <outputs> + <data format="png" name="cladogram" > + <change_format> + <when input="for" value="svg" format="svg" /> + <when input="for" value="pdf" format="pdf" /> + </change_format> + </data> + </outputs> + <tests> + <test> + <param name="input1" value="13.bed" dbkey="hg18" ftype="bed"/> + <param name="maf_source" value="cached"/> + <param name="maf_identifier" value="17_WAY_MULTIZ_hg18"/> + <param name="species" value="hg18,mm8"/> + <param name="overwrite_with_gaps" value="True"/> + <output name="out_file1" file="interval_maf_to_merged_fasta_out3.fasta" /> + </test> + <test> + <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> + <param name="maf_source" value="cached"/> + <param name="maf_identifier" value="8_WAY_MULTIZ_hg17"/> + <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> + <param name="overwrite_with_gaps" value="True"/> + <output name="out_file1" file="interval_maf_to_merged_fasta_out.dat" /> + </test> + <test> + <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> + <param name="maf_source" value="user"/> + <param name="maf_file" value="5.maf"/> + <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> + <param name="overwrite_with_gaps" value="True"/> + <output name="out_file1" file="interval_maf_to_merged_fasta_user_out.dat" /> + </test> + </tests> + <help> +**What it does** + +This module produces cladograms representing the LEfSe results (obtained with the corresponding module) on the hierarchy induced by the label names (the levels of the tree must be denoted with "|" in the original input file). The module cannot be used for features that do not have a tree structure. + +Below you can find a couple of examples. + +------ + +**Input format** + +The module accepts the output of the LEfSe module. + +------ + +**Output format** + +The module generate images in png, svg or pdf format. The png format is recommended for exploratory runs as it can be easily visualized internally in Galaxy, whereas the vectorial svg and pdf format are recommended for the final publication-ready image to be downloaded. + +------ + +**Parameters** + +In addition to the output format and the dpi resolution three sets of parameters can be tuned: structural parameters affecting the property of the circular cladogram, text and label options for regulating the clade annotation and graphical options for personalizing the appearance of the plot. The default settings of the parameters should give satisfactory cladograms in the great majority of the cases. + +**Advanced parameter settings** + +*Structural parameters* + * Root of the tree: selects any taxa of the tree to be the root of the cladogram (only the clades below the root will be visualized). Taxa levels are separated by ".", so for, example, Bacteria.Firmicutes will generate only the cladogram of Firmicutes. + * Expand terminal non-leaf levels: whether to expand a non-leaf taxa without children up to the level of the leaves naming the new levels with the expanding taxa name. + * Maximum number of taxonomic levels: you can limit the levels of the cladogram to a desired level. +*Text and label options* + * The title of the cladogram: optional title for the plot (default is no title). + * Title font size: set the font size of the title only. + * Label font size: set the font size of the labels (and of the label legend) used in the cladogram to denote taxa. + * Class font size: set the font of the legend for the class names and colors. + * Starting level for drawing the labels: you can avoid naming the more internal clades if they are not informative. + * Last level for drawing the labels: you may want to remove the most external labels as they may be to dense or overlapping. + * First level for abbreviating the labels: set the starting level for substituting the full clade names with with an abbreviation supported by a legend table (recommended for the most external taxa). + * Last level for abbreviating the labels: set the more external level for substituting the full clade names with with an abbreviation supported by a legend table. +*Graphical options* + * Number of external levels drawn in the radial representation: the connection between the taxa in last level and the corresponding parent is represented with a straight edge. The same representation may be used for more internal levels as well. + * Max dimension of the circles representing taxa: the sizes of the taxa represent the highest logarithmic abundance between classes, and this option sets the maximum diameter of the graphical representation. + * Min dimension of the circles representing taxa: the taxon diameter of the smallest logarithmic taxa abundance. + * Width of the edges of the circles representing taxa: the taxon circles have an external border whose thickness is regulated by this option. + * Width of the lines connecting sibling taxa: set the thickness of the lines connecting sibling taxa in the non-radial representation. + * Width of the lines connecting parent with son taxa: set the line thickness of the child-parent connection both in radial and non-radial representation. + * The alpha value for the transparency of clade labeling: the alpha value is responsible for the transparency of the differential clade highlighting. Since the transparency is additive, the alpha value should not be higher than 1/s where s is the number of levels with differential clades. + * Ration of the horizontal space to be given to the right side: in case the label legend requires more space (because of long labels) you may increase the right panel increasing this value. + * Whether to write the labels with the class color or in black: set whether the clade names inside the cladogram will be displayed with the class color or in black. + * Background color: whether to generate plots with black or white backgrounds, adjusting properly the other colors. + * Set the space between clades at the lower level: set the separation between low-level taxa belonging to different super-clades. Depending on the density of the leaf-level this parameter is automatically adjusted. + + +------ + +**Examples** + +The dataset provided here_ and described in the "Introduction" module produces the following image (alpha values of LEfSe - step B - are set to 0.01) + + +.. _here: http://www.huttenhower.org/webfm_send/73 + +Focusing the cladogram on the Firmicutes phylum only and playing a bit with the graphical options, we can obtain the following plot: + + + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/plot_features.py Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,153 @@ +#!/usr/bin/env python + +import os,sys,matplotlib,zipfile,argparse,string +matplotlib.use('Agg') +from pylab import * +from lefse import * +import random as rand + +colors = ['r','g','b','m','c'] + +def read_params(args): + parser = argparse.ArgumentParser(description='Cladoplot') + parser.add_argument('input_file_1', metavar='INPUT_FILE', type=str, help="dataset files") + parser.add_argument('input_file_2', metavar='INPUT_FILE', type=str, help="LEfSe output file") + parser.add_argument('output_file', metavar='OUTPUT_FILE', type=str, help="the file for the output (the zip file if an archive is required, the output directory otherwise)") + parser.add_argument('--width',dest="width", type=float, default=10.0 ) + parser.add_argument('--height',dest="height", type=float, default=4.0) + parser.add_argument('--top',dest="top", type=float, default=-1.0, help="set maximum y limit (-1.0 means automatic limit)") + parser.add_argument('--bot',dest="bot", type=float, default=0.0, help="set minimum y limit (default 0.0, -1.0 means automatic limit)") + parser.add_argument('--title_font_size',dest="title_font_size", type=str, default="14") + parser.add_argument('--class_font_size',dest="class_font_size", type=str, default="14") + parser.add_argument('--class_label_pos',dest="class_label_pos", type=str, choices=["up","down"], default="up") + parser.add_argument('--subcl_mean',dest="subcl_mean", type=str, choices=["y","n"], default="y") + parser.add_argument('--subcl_median',dest="subcl_median", type=str, choices=["y","n"], default="y") + parser.add_argument('--font_size',dest="font_size", type=str, default="10") + parser.add_argument('-n',dest="unused", metavar="flt", type=float, default=-1.0,help="unused") + parser.add_argument('--format', dest="format", default="png", choices=["png","pdf","svg"], type=str, help="the format for the output file") + parser.add_argument('-f', dest="f", default="diff", choices=["all","diff","one"], type=str, help="wheter to plot all features (all), only those differentially abundant according to LEfSe or only one (the one given with --feature_name) ") + parser.add_argument('--feature_name', dest="feature_name", default="", type=str, help="The name of the feature to plot (levels separated by .) ") + parser.add_argument('--feature_num', dest="feature_num", default="-1", type=int, help="The number of the feature to plot ") + parser.add_argument('--archive', dest="archive", default="none", choices=["zip","none"], type=str, help="") + parser.add_argument('--background_color',dest="back_color", type=str, choices=["k","w"], default="w", help="set the color of the background") + parser.add_argument('--dpi',dest="dpi", type=int, default=72) + + args = parser.parse_args() + + return vars(args) + +def read_data(file_data,file_feats,params): + with open(file_feats, 'r') as features: + feats_to_plot = [(f.split()[:-1],len(f.split()) == 5) for f in features.readlines()] + if not feats_to_plot: + print "No features to plot\n" + sys.exit(0) + feats,cls,class_sl,subclass_sl,class_hierarchy,params['norm_v'] = load_data(file_data, True) + if params['feature_num'] > 0: + params['feature_name'] = [line.split()[0] for line in open(params['input_file_2'])][params['feature_num']-1] + features = {} + for f in feats_to_plot: + if params['f'] == "diff" and not f[1]: continue + if params['f'] == "one" and f[0][0] != params['feature_name']: continue + features[f[0][0]] = {'dim':float(f[0][1]), 'abundances':feats[f[0][0]], 'sig':f[1], 'cls':cls, 'class_sl':class_sl, 'subclass_sl':subclass_sl, 'class_hierarchy':class_hierarchy} + if not features: + print "No features to plot\n" + sys.exit(0) + return features + +def plot(name,k_n,feat,params): + fig = plt.figure(figsize=(params['width'], params['height']),edgecolor=params['fore_color'],facecolor=params['back_color']) + ax = fig.add_subplot(111,axis_bgcolor=params['back_color']) + subplots_adjust(bottom=0.15) + + max_m = 0.0 + norm = 1.0 if float(params['norm_v']) < 0.0 else float(params['norm_v']) + for v in feat['subclass_sl'].values(): + fr,to = v[0], v[1] + median = numpy.mean(feat['abundances'][fr:to]) + if median > max_m: max_m = median + max_m /= norm + max_v = max_m*3 if max_m*3 < max(feat['abundances'])*1.1/norm else max(feat['abundances'])/norm + min_v = max(0.0,min(feat['abundances'])*0.9/norm) + + if params['top'] > 0.0: max_v = params['top'] + if params['bot'] >= 0.0: min_v = params['bot'] + + if max_v == 0.0: max_v = 0.0001 + if max_v == min_v: max_v = min_v*1.1 + + cl_sep = max(int(sum([vv[1]/norm - vv[0]/norm for vv in feat['class_sl'].values()])/150.0),1) + seps = [] + xtics = [] + x2tics = [] + last_fr = 0.0 + for i,cl in enumerate(sorted(feat['class_hierarchy'].keys())): + for j,subcl in enumerate(feat['class_hierarchy'][cl]): + fr = feat['subclass_sl'][subcl][0] + to = feat['subclass_sl'][subcl][1] + val = feat['abundances'][fr:to] + fr += cl_sep*i + to += cl_sep*i + pos = arange(fr,to) + max_x = to + col = colors[j%len(colors)] + vv = [v1/norm for v1 in val] + median = numpy.median(vv) + mean = numpy.mean(vv) + valv = [max(min(v/norm,max_v),min_v) for v in val] + ax.bar(pos,valv, align='center', color=col, edgecolor=col, linewidth=0.1 ) + if params['subcl_median'] == 'y': ax.plot([fr,to-1],[median,median],"k--",linewidth=1,color=params['fore_color']) + if params['subcl_mean'] == 'y': ax.plot([fr,to-1],[mean,mean],"-",linewidth=1,color=params['fore_color']) + nna = subcl if subcl.count("_") == 0 or not subcl.startswith(cl) else "_".join(subcl.split(cl)[1:]) + if nna == "subcl" or nna == "_subcl": nna = " " + xtics.append(((fr+(to-fr)/2),nna)) + seps.append(float(to)) + x2tics.append(((last_fr+(to-last_fr)/2),cl)) + last_fr = to + float(cl_sep) + for s in seps[:-1]: + ax.plot([s,s],[min_v,max_v],"-",linewidth=5,color=params['fore_color']) + ax.set_title(k_n, size=params['title_font_size']) + xticks([x[0] for x in xtics],[x[1] for x in xtics],rotation=-30, ha = 'left', fontsize=params['font_size'], color=params['fore_color']) + yticks(fontsize=params['font_size']) + + ylabel('Relative abundance') + ax.set_ylim((min_v,max_v)) + a,b = ax.get_xlim() + ax.set_xlim((0-float(last_fr)/float(b-a),max_x)) + ax.yaxis.grid(True) + + def get_col_attr(x): + return hasattr(x, 'set_color') and not hasattr(x, 'set_facecolor') + def get_edgecol_attr(x): + return hasattr(x, 'set_edgecolor') + + + for o in fig.findobj(get_col_attr): + o.set_color(params['fore_color']) + for o in fig.findobj(get_edgecol_attr): + if o.get_edgecolor() == params['back_color']: + o.set_edgecolor(params['fore_color']) + + for t in x2tics: + m = ax.get_ylim()[1]*0.97 if params['class_label_pos']=='up' else 0.07 + plt.text(t[0],m, "class: "+t[1], ha ="center", size=params['class_font_size'], va="top", bbox = dict(boxstyle="round", ec='k', fc='y')) + + + plt.savefig(name,format=params['format'],facecolor=params['back_color'],edgecolor=params['fore_color'],dpi=params['dpi']) + plt.close() + return name + +if __name__ == '__main__': + params = read_params(sys.argv) + params['fore_color'] = 'w' if params['back_color'] == 'k' else 'k' + features = read_data(params['input_file_1'],params['input_file_2'],params) + if params['archive'] == "zip": file = zipfile.ZipFile(params['output_file'], "w") + for k,f in features.items(): + print "Exporting ", k + if params['archive'] == "zip": + of = plot("/tmp/"+str(int(f['sig']))+"_"+"-".join(k.split("."))+"."+params['format'],k,f,params) + file.write(of, os.path.basename(of), zipfile.ZIP_DEFLATED) + else: + if params['f'] == 'one': plot(params['output_file'],k,f,params) + else: plot(params['output_file']+str(int(f['sig']))+"_"+"-".join(k.split("."))+"."+params['format'],k,f,params) + if params['archive'] == "zip": file.close()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/plot_features.xml Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,159 @@ +<tool id="LEfSe_fea" name="F) Plot Differential Features" version="1.0"> + <description></description> +<command interpreter="python">plot_features.py $inp_data $inp_res $arch --title_font_size $graphical.title_font_size --background_color $graphical.background_color --class_label_pos $graphical.class_label_pos --class_font_size $graphical.class_font_size --top $graphical.top --bot $graphical.bot --font_size $graphical.font_size --width $graphical.width --height $graphical.height -f $feature_set --archive "zip" --format $for --dpi $dpi --subcl_mean $graphical.subcl_mean --subcl_median $graphical.subcl_median </command> + <inputs> + <page> + <param format="lefse_internal_for" name="inp_data" type="data" label="The formatted datasets" help=""/> + <param format="lefse_internal_res" name="inp_res" type="data" label="The LEfSe output" help=""/> + + <param name="feature_set" type="select" label="Do you want to plot all features or only those detected as biomarkers?"> + <option value="diff" selected="diff">Biomarkers only</option> + <option value="all">All</option> + </param> + + + <conditional name="graphical"> + <param name="graphical_choice" type="select" label="Set some graphical options to personalize the output"> + <option value="d" selected='True'>Default</option> + <option value="a">Advanced</option> + </param> + <when value="d"> + <param name="top" type="hidden" value="-1.0" /> + <param name="bot" type="hidden" value="0.0" /> + <param name="title_font_size" type="hidden" value="14" /> + <param name="class_font_size" type="hidden" value="12" /> + <param name="font_size" type="hidden" value="8" /> + <param name="width" type="hidden" value="7.0" /> + <param name="height" type="hidden" value="4.0" /> + <param name="background_color" type="hidden" value="w" /> + <param name="width" type="hidden" value="7.0" /> + <param name="height" type="hidden" value="4.0" /> + <param name="class_label_pos" type="hidden" value="up" /> + <param name="subcl_mean" type="hidden" value="y" /> + <param name="subcl_median" type="hidden" value="y" /> + </when> + + <when value="a"> + <param name="top" type="float" size="2" value="-1.0" label="Set the maximum y value (-1.0 means automatic maximum setting based on maximum class median)"/> + <param name="bot" type="float" size="2" value="0.0" label="Set the minimum y value (-1.0 means automatic minimum setting based on minimum class median)"/> + <param name="title_font_size" type="integer" size="2" value="14" label="Title font size"/> + <param name="class_font_size" type="integer" size="2" value="12" label="Class font size"/> + <param name="font_size" type="integer" size="2" value="8" label="Size of subclasses names and y values"/> + <param name="width" type="float" size="2" value="7.0" label="Width of the plot"/> + <param name="height" type="float" size="2" value="4.0" label="Height of the plot"/> + <param name="background_color" type="select" label="Background color"> + <option value="w" selected='True'>White</option> + <option value="k">Black</option> + </param> + <param name="class_label_pos" type="select" label="Class label position"> + <option value="up" selected='True'>Top</option> + <option value="down">Bottom</option> + </param> + <param name="subcl_mean" type="select" label="Whether to plot the subclass means (straight line)"> + <option value="y" selected='True'>Yes</option> + <option value="n">No</option> + </param> + <param name="subcl_median" type="select" label="Whether to plot the subclass medians (dotted line)"> + <option value="y" selected='True'>Yes</option> + <option value="n">No</option> + </param> + + </when> + + </conditional> + + <param name="for" type="select" label="Output format"> + <option value="png" selected="png">png</option> + <option value="svg">svg</option> + <option value="pdf">pdf</option> + </param> + <param name="dpi" type="select" label="Set the dpi resolution of the output"> + <option value="72">72</option> + <option value="150" selected="True">150</option> + <option value="300">300</option> + <option value="600">600</option> + <option value="1200">1200</option> + </param> + + </page> + </inputs> + <outputs> + <data format="zip" name="arch" > + </data> + </outputs> + <tests> + <test> + <param name="input1" value="13.bed" dbkey="hg18" ftype="bed"/> + <param name="maf_source" value="cached"/> + <param name="maf_identifier" value="17_WAY_MULTIZ_hg18"/> + <param name="species" value="hg18,mm8"/> + <param name="overwrite_with_gaps" value="True"/> + <output name="out_file1" file="interval_maf_to_merged_fasta_out3.fasta" /> + </test> + <test> + <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> + <param name="maf_source" value="cached"/> + <param name="maf_identifier" value="8_WAY_MULTIZ_hg17"/> + <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> + <param name="overwrite_with_gaps" value="True"/> + <output name="out_file1" file="interval_maf_to_merged_fasta_out.dat" /> + </test> + <test> + <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> + <param name="maf_source" value="user"/> + <param name="maf_file" value="5.maf"/> + <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> + <param name="overwrite_with_gaps" value="True"/> + <output name="out_file1" file="interval_maf_to_merged_fasta_user_out.dat" /> + </test> + </tests> + <help> +**What it does** + +This module plots the raw data of the features detected by LEfSe as biomarkers as abundance histograms +with class and subclass information. The features are exported as images and +the user can download all the images in a .zip archive. It is also possible to +export all the features (instead of the biomarkers only). For exporting or +analyzing few features only the "Plot One Feature" module is recommended. + +------ + +**Input format** + +The module accepts two datasets: the data formatted with the "Format Input for +LEfSe" module and the output of the LEfSe analysis. Both datasets are necessary +to run the module. + +------ + +**Output format** + +The module generates zip archives containing images in png, svg or pdf format. + +------ + +**Advanced parameter settings** + +*Graphical options* + * Set the maximum y value: -1 means automatic parameter setting that is computed as the minimum between the highest abundance value and three times the highest subclass median. + * Set the minimum y value: -1 means automatic parameter setting that is computed as the maximum between 0 and the 90% of the smallest abundance value. + * Title font size: set the font size of the title only. + * Class font size: set the font of the legend for the class names and colors. + * Size of subclasses names and y values: set the font size for the axis labels. + * Width of the plot: horizontal size (in inches) of the plot. + * Height of the plot: vertical size (in inches) of the plot. + * Background color: whether to generate plots with black or white backgrounds, adjusting properly the other colors. + * Class label position: whether to place the class labels on the top or on the bottom of the plot. + * Plot subclass means (straight line): whether to plot the subclass means with straight horizontal lines. + * Plot subclass medians (dotted line): whether to plot the subclass medians with dotted horizontal lines. + +------ + +**Examples** + +Please see the examples reported for the "Plot One Feature" module (E). This +module just produces multiple plots in the same way and compresses them into a +.zip archive. + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/plot_res.py Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,153 @@ +#!/usr/bin/env python + +import os,sys +import matplotlib +matplotlib.use('Agg') +from pylab import * + +from lefse import * +import argparse + +colors = ['r','g','b','m','c','y','k','w'] + +def read_params(args): + parser = argparse.ArgumentParser(description='Plot results') + parser.add_argument('input_file', metavar='INPUT_FILE', type=str, help="tab delimited input file") + parser.add_argument('output_file', metavar='OUTPUT_FILE', type=str, help="the file for the output image") + parser.add_argument('--feature_font_size', dest="feature_font_size", type=int, default=7, help="the file for the output image") + parser.add_argument('--format', dest="format", choices=["png","svg","pdf"], default='png', type=str, help="the format for the output file") + parser.add_argument('--dpi',dest="dpi", type=int, default=72) + parser.add_argument('--title',dest="title", type=str, default="") + parser.add_argument('--title_font_size',dest="title_font_size", type=str, default="12") + parser.add_argument('--class_legend_font_size',dest="class_legend_font_size", type=str, default="10") + parser.add_argument('--width',dest="width", type=float, default=7.0 ) + parser.add_argument('--height',dest="height", type=float, default=4.0, help="only for vertical histograms") + parser.add_argument('--left_space',dest="ls", type=float, default=0.2 ) + parser.add_argument('--right_space',dest="rs", type=float, default=0.1 ) + parser.add_argument('--orientation',dest="orientation", type=str, choices=["h","v"], default="h" ) + parser.add_argument('--autoscale',dest="autoscale", type=int, choices=[0,1], default=1 ) + parser.add_argument('--background_color',dest="back_color", type=str, choices=["k","w"], default="w", help="set the color of the background") + parser.add_argument('--subclades', dest="n_scl", type=int, default=1, help="number of label levels to be dislayed (starting from the leaves, -1 means all the levels, 1 is default )") + parser.add_argument('--max_feature_len', dest="max_feature_len", type=int, default=60, help="Maximum length of feature strings (def 60)") + parser.add_argument('--all_feats', dest="all_feats", type=str, default="") + args = parser.parse_args() + return vars(args) + +def read_data(input_file,output_file): + with open(input_file, 'r') as inp: + rows = [line.strip().split()[:-1] for line in inp.readlines() if len(line.strip().split())>3] + classes = list(set([v[2] for v in rows if len(v)>2])) + if len(classes) < 1: + print "No differentially abundant features found in "+input_file + os.system("touch "+output_file) + sys.exit() + data = {} + data['rows'] = rows + data['cls'] = classes + return data + +def plot_histo_hor(path,params,data,bcl): + cls2 = [] + if params['all_feats'] != "": + cls2 = sorted(params['all_feats'].split(":")) + cls = sorted(data['cls']) + if bcl: data['rows'].sort(key=lambda ab: fabs(float(ab[3]))*(cls.index(ab[2])*2-1)) + else: + mmax = max([fabs(float(a)) for a in zip(*data['rows'])[3]]) + data['rows'].sort(key=lambda ab: fabs(float(ab[3]))/mmax+(cls.index(ab[2])+1)) + pos = arange(len(data['rows'])) + head = 0.75 + tail = 0.5 + ht = head + tail + ints = max(len(pos)*0.2,1.5) + fig = plt.figure(figsize=(params['width'], ints + ht), edgecolor=params['back_color'],facecolor=params['back_color']) + ax = fig.add_subplot(111,frame_on=False,axis_bgcolor=params['back_color']) + ls, rs = params['ls'], 1.0-params['rs'] + plt.subplots_adjust(left=ls,right=rs,top=1-head*(1.0-ints/(ints+ht)), bottom=tail*(1.0-ints/(ints+ht))) + + fig.canvas.set_window_title('LDA results') + + l_align = {'horizontalalignment':'left', 'verticalalignment':'baseline'} + r_align = {'horizontalalignment':'right', 'verticalalignment':'baseline'} + added = [] + m = 1 if data['rows'][0][2] == cls[0] else -1 + for i,v in enumerate(data['rows']): + indcl = cls.index(v[2]) + lab = str(v[2]) if str(v[2]) not in added else "" + added.append(str(v[2])) + col = colors[indcl%len(colors)] + if len(cls2) > 0: + col = colors[cls2.index(v[2])%len(colors)] + vv = fabs(float(v[3])) * (m*(indcl*2-1)) if bcl else fabs(float(v[3])) + ax.barh(pos[i],vv, align='center', color=col, label=lab, height=0.8, edgecolor=params['fore_color']) + mv = max([abs(float(v[3])) for v in data['rows']]) + for i,r in enumerate(data['rows']): + indcl = cls.index(data['rows'][i][2]) + if params['n_scl'] < 0: rr = r[0] + else: rr = r[0].split(".")[-min(r[0].count("."),params['n_scl'])] + if len(rr) > params['max_feature_len']: rr = rr[:params['max_feature_len']/2-2]+" [..]"+rr[-params['max_feature_len']/2+2:] + if m*(indcl*2-1) < 0 and bcl: ax.text(mv/40.0,float(i)-0.3,rr, l_align, size=params['feature_font_size'],color=params['fore_color']) + else: ax.text(-mv/40.0,float(i)-0.3,rr, r_align, size=params['feature_font_size'],color=params['fore_color']) + ax.set_title(params['title'],size=params['title_font_size'],y=1.0+head*(1.0-ints/(ints+ht))*0.8,color=params['fore_color']) + + ax.set_yticks([]) + ax.set_xlabel("LDA SCORE (log 10)") + ax.xaxis.grid(True) + xlim = ax.get_xlim() + if params['autoscale']: + ran = arange(0.0001,round(round((abs(xlim[0])+abs(xlim[1]))/10,4)*100,0)/100) + if len(ran) > 1 and len(ran) < 100: + ax.set_xticks(arange(xlim[0],xlim[1]+0.0001,min(xlim[1]+0.0001,round(round((abs(xlim[0])+abs(xlim[1]))/10,4)*100,0)/100))) + ax.set_ylim((pos[0]-1,pos[-1]+1)) + leg = ax.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=5, borderaxespad=0., frameon=False,prop={'size':params['class_legend_font_size']}) + + def get_col_attr(x): + return hasattr(x, 'set_color') and not hasattr(x, 'set_facecolor') + for o in leg.findobj(get_col_attr): + o.set_color(params['fore_color']) + for o in ax.findobj(get_col_attr): + o.set_color(params['fore_color']) + + + plt.savefig(path,format=params['format'],facecolor=params['back_color'],edgecolor=params['fore_color'],dpi=params['dpi']) + plt.close() + +def plot_histo_ver(path,params,data): + cls = data['cls'] + mmax = max([fabs(float(a)) for a in zip(*data['rows'])[1]]) + data['rows'].sort(key=lambda ab: fabs(float(ab[3]))/mmax+(cls.index(ab[2])+1)) + pos = arange(len(data['rows'])) + if params['n_scl'] < 0: nam = [d[0] for d in data['rows']] + else: nam = [d[0].split(".")[-min(d[0].count("."),params['n_scl'])] for d in data['rows']] + fig = plt.figure(edgecolor=params['back_color'],facecolor=params['back_color'],figsize=(params['width'], params['height'])) + ax = fig.add_subplot(111,axis_bgcolor=params['back_color']) + plt.subplots_adjust(top=0.9, left=params['ls'], right=params['rs'], bottom=0.3) + fig.canvas.set_window_title('LDA results') + l_align = {'horizontalalignment':'left', 'verticalalignment':'baseline'} + r_align = {'horizontalalignment':'right', 'verticalalignment':'baseline'} + added = [] + for i,v in enumerate(data['rows']): + indcl = data['cls'].index(v[2]) + lab = str(v[2]) if str(v[2]) not in added else "" + added.append(str(v[2])) + col = colors[indcl%len(colors)] + vv = fabs(float(v[3])) + ax.bar(pos[i],vv, align='center', color=col, label=lab) + xticks(pos,nam,rotation=-20, ha = 'left',size=params['feature_font_size']) + ax.set_title(params['title'],size=params['title_font_size']) + ax.set_ylabel("LDA SCORE (log 10)") + ax.yaxis.grid(True) + a,b = ax.get_xlim() + dx = float(len(pos))/float((b-a)) + ax.set_xlim((0-dx,max(pos)+dx)) + plt.savefig(path,format=params['format'],facecolor=params['back_color'],edgecolor=params['fore_color'],dpi=params['dpi']) + plt.close() + +if __name__ == '__main__': + params = read_params(sys.argv) + params['fore_color'] = 'w' if params['back_color'] == 'k' else 'k' + data = read_data(params['input_file'],params['output_file']) + if params['orientation'] == 'v': plot_histo_ver(params['output_file'],params,data) + else: plot_histo_hor(params['output_file'],params,data,len(data['cls']) == 2) + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/plot_res.xml Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,156 @@ +<tool id="LEfSe_res" name="C) Plot LEfSe Results" version="1.0"> + <description></description> +<command interpreter="python">./plot_res.py $inp_data $res --title "$textm.title" --subclades $textm.subclades --title_font_size $textm.title_font_size --max_feature_len $textm.max_f_len --feature_font_size $textm.feature_font_size --class_legend_font_size $textm.class_legend_font_size --width $graphical.width --format $for --dpi $dpi --left_space $graphical.left_space_prop --right_space $graphical.right_space_prop --background_color $graphical.background_color</command> + <inputs> + <page> + <param format="lefse_internal_res" name="inp_data" type="data" label="Select data" help=""/> + + <conditional name="textm"> + <param name="text_choice" type="select" label="Set text and label options (font size, abbreviations, ...)" help=""> + <option value="d" selected='True'>Default</option> + <option value="a">Advanced</option> + </param> + <when value="d"> + <param name="title" type="hidden" value=""/> + <param name="title_font_size" type="hidden" value="14"/> + <param name="feature_font_size" type="hidden" value="7" /> + <param name="class_legend_font_size" type="hidden" value="10" /> + <param name="subclades" type="hidden" value="1" /> + <param name="max_f_len" type="hidden" value="60" /> + </when> + <when value="a"> + <param name="title" type="text" size="10" value="" label="The title of the cladogram"/> + <param name="subclades" type="integer" size="2" value="1" label="Number of label levels to be displayed (-1 means all)"/> + <param name="max_f_len" type="integer" size="2" value="60" label="Maximum length of feature names "/> + <param name="title_font_size" type="integer" size="2" value="14" label="Title font size"/> + <param name="feature_font_size" type="integer" size="2" value="7" label="Label font size"/> + <param name="class_legend_font_size" type="integer" size="2" value="10" label="Class font size"/> + </when> + </conditional> + + <conditional name="graphical"> + <param name="text_choice" type="select" label="Set some graphical options to personalize the output" help=""> + <option value="d" selected='True'>Default</option> + <option value="a">Advanced</option> + </param> + <when value="d"> + <param name="width" type="hidden" value="7.0" /> + <param name="left_space_prop" type="hidden" value="0.2" /> + <param name="right_space_prop" type="hidden" value="0.1" /> + <param name="background_color" type="hidden" value="w"/> + </when> + <when value="a"> + <param name="width" type="float" size="2" value="7.0" label="Width of the plot"/> + <param name="left_space_prop" type="float" size="2" value="0.2" label="Fraction of the total width to be reserved for the space at the left of the plot "/> + <param name="right_space_prop" type="float" size="2" value="0.1" label="Fraction of the total width to be reserved for the space at the right of the plot "/> + <param name="background_color" type="select" label="Whether to optimize the colors for a white or black background"> + <option value="w" selected='True'>White</option> + <option value="k">Black</option> + </param> + + </when> + </conditional> + + + + <param name="for" type="select" label="Output format"> + <option value="png" selected="png">png</option> + <option value="svg">svg</option> + <option value="pdf">pdf</option> + </param> + <param name="dpi" type="select" label="Set the dpi resolution of the output"> + <option value="72">72</option> + <option value="150" selected="True">150</option> + <option value="300">300</option> + <option value="600">600</option> + <option value="1200">1200</option> + </param> + + </page> + </inputs> + <outputs> + <data format="png" name="res" > + <change_format> + <when input="for" value="svg" format="svg" /> + </change_format> + </data> + </outputs> + <tests> + <test> + <param name="input1" value="13.bed" dbkey="hg18" ftype="bed"/> + <param name="maf_source" value="cached"/> + <param name="maf_identifier" value="17_WAY_MULTIZ_hg18"/> + <param name="species" value="hg18,mm8"/> + <param name="overwrite_with_gaps" value="True"/> + <output name="out_file1" file="interval_maf_to_merged_fasta_out3.fasta" /> + </test> + <test> + <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> + <param name="maf_source" value="cached"/> + <param name="maf_identifier" value="8_WAY_MULTIZ_hg17"/> + <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> + <param name="overwrite_with_gaps" value="True"/> + <output name="out_file1" file="interval_maf_to_merged_fasta_out.dat" /> + </test> + <test> + <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> + <param name="maf_source" value="user"/> + <param name="maf_file" value="5.maf"/> + <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> + <param name="overwrite_with_gaps" value="True"/> + <output name="out_file1" file="interval_maf_to_merged_fasta_user_out.dat" /> + </test> + </tests> + <help> +**What it does** + +This module plots the biomarkers found by LEfSe ranking them accordingly to their effect size and associating them with the class with the highest median. + +------ + +**Input format** + +The module accepts the output of the LEfSe module (B) only. + +------ + +**Output format** + +The module generate images in png, svg or pdf format. The png format is recommended for exploratory runs as it can be easily visualized internally in Galaxy, whereas the vectorial svg and pdf formats are recommended for the final publication-ready image to be downloaded. + +------ + +**Parameters** + +In addition to the output format and the dpi resolution two sets of parameters can be tuned: text and label options for regulating the plot annotation and graphical options for personalizing the appearance of the plot. The default settings of the parameters should give satisfactory outputs in the great majority of the cases. + +**Advanced parameter settings** + +*Text and label options* + * The title of the cladogram: optional title for the plot (default is no title). + * Number of label levels to be displayed: when dealing with hierarchical features this option sets the level to be displayed in the labels (-1 means the last level only, 1 means the highest level, 2 means the first two levels and so on). + * Maximum length of feature names: set the length of the feature names above which the names will be abbreviated (in the middle of the string). + * Title font size: set the font size of the title only. + * Label font size: set the font size of the labels (and of the label legend) used in the cladogram to denote taxa. + * Class font size: set the font of the legend for the class names and colors. +*Graphical options* + * Width of the plot: set the inches for the width of the plot (the height is automatically set based on the number of biomarkers to be displayed). + * Fraction of the total width to be reserved for the space at the left of the plot: this option permits the user to enlarge the space on the left of the plot for the cases in which the feature labels are long and need more space. + * Fraction of the total width to be reserved for the space at the right of the plot: this option permits the user to enlarge the space on the right of the plot for the cases in which the feature labels are long and need more space. + * Whether to optimize the colors for a white or black background: this option permits the user to generate output plots with black backgrounds, adjusting properly the colors of the cladogram. + + +------ + +**Example** + +The dataset provided here_ and described in the "Introduction" module produces the following image (alpha values of LEfSe - step B - are set to 0.01) + +.. image:: ../galaxy/static/images/plot_res_ex.png +.. _here: http://www.huttenhower.org/webfm_send/73 + + + + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/plot_single_feature.xml Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,151 @@ +<tool id="LEfSe_sfe" name="E) Plot One Feature" version="1.0"> +<code file="format_input_selector.py"/> + <description></description> +<command interpreter="python">plot_features.py $inp_data $inp_res $arch --title_font_size $graphical.title_font_size --background_color $graphical.background_color --class_label_pos $graphical.class_label_pos --class_font_size $graphical.class_font_size --top $graphical.top --bot $graphical.bot --font_size $graphical.font_size --width $graphical.width --height $graphical.height -f one --feature_num $featd.feat --archive "none" --format $for --dpi $dpi --subcl_mean $graphical.subcl_mean --subcl_median $graphical.subcl_median </command> +<inputs> + <page> + <param format="lefse_internal_for" name="inp_data" type="data" label="The formatted datasets" help=""/> + <param format="lefse_internal_res" name="inp_res" type="data" label="The LEfSe output" help=""/> + + <param name="featd" type="data_column" data_ref="inp_res" value="1" optional="true" force_select="false" accept_default="false" /> + + <conditional name="featd" type="data_column" data_ref="inp_res" accept_default="true"> + <param name="feat_dir" type="select" data_ref="inp_res" label="Select the feature names among biomarkers or all features" help=""> + <option value="b" selected='True'>Biomarkers only</option> + <option value="a">All features</option> + </param> + + <when value="b"> + <param name="feat" label="Select the feature to plot" data_ref="inp_res" type='select' force_select="false" dynamic_options="get_row_names(inp_res,'b')" value="1" optional="true" accept_default="false" /> + </when> + <when value="a"> + <param name="feat" label="Select the feature to plot" data_ref="inp_res" type='select' force_select="false" dynamic_options="get_row_names(inp_res,'a')" value="1" optional="true" accept_default="false" /> + </when> + </conditional> + + <conditional name="graphical"> + <param name="graphical_choice" type="select" label="Set some graphical options to personalize the output"> + <option value="d" selected='True'>Default</option> + <option value="a">Advanced</option> + </param> + <when value="d"> + <param name="top" type="hidden" value="-1.0" /> + <param name="bot" type="hidden" value="0.0" /> + <param name="title_font_size" type="hidden" value="14" /> + <param name="class_font_size" type="hidden" value="12" /> + <param name="font_size" type="hidden" value="8" /> + <param name="width" type="hidden" value="7.0" /> + <param name="height" type="hidden" value="4.0" /> + <param name="background_color" type="hidden" value="w" /> + <param name="width" type="hidden" value="7.0" /> + <param name="height" type="hidden" value="4.0" /> + <param name="class_label_pos" type="hidden" value="up" /> + <param name="subcl_mean" type="hidden" value="y" /> + <param name="subcl_median" type="hidden" value="y" /> + </when> + + <when value="a"> + <param name="top" type="float" size="2" value="-1.0" label="Set the maximum y value (-1.0 means automatic maximum setting based on maximum class median)"/> + <param name="bot" type="float" size="2" value="0.0" label="Set the minimum y value (-1.0 means automatic minimum setting based on minimum class median)"/> + <param name="title_font_size" type="integer" size="2" value="14" label="Title font size"/> + <param name="class_font_size" type="integer" size="2" value="12" label="Class names font size"/> + <param name="font_size" type="integer" size="2" value="8" label="Size of subclasses names and y values"/> + <param name="width" type="float" size="2" value="7.0" label="Width of the plot"/> + <param name="height" type="float" size="2" value="4.0" label="Height of the plot"/> + <param name="background_color" type="select" label="Background color"> + <option value="w" selected='True'>White</option> + <option value="k">Black</option> + </param> + <param name="class_label_pos" type="select" label="Class label position "> + <option value="up" selected='True'>Top</option> + <option value="down">Bottom</option> + </param> + <param name="subcl_mean" type="select" label="Plot subclass means (straight line)"> + <option value="y" selected='True'>Yes</option> + <option value="n">No</option> + </param> + <param name="subcl_median" type="select" label="Plot subclass medians (dotted line)"> + <option value="y" selected='True'>Yes</option> + <option value="n">No</option> + </param> + + </when> + + </conditional> + + + <param name="for" type="select" label="Output format"> + <option value="png" selected="png">png</option> + <option value="svg">svg</option> + <option value="pdf">pdf</option> + </param> + <param name="dpi" type="select" label="Set the dpi resolution of the output"> + <option value="72">72</option> + <option value="150" selected="True">150</option> + <option value="300">300</option> + <option value="600">600</option> + <option value="1200">1200</option> + </param> + + </page> +</inputs> + <outputs> + <data format="png" name="arch" > + <change_format> + <when input="for" value="svg" format="svg" /> + </change_format> + </data> + </outputs> + <help> +**What it does** + +This module plots the raw data of a single feature as an abundance histogram with class and subclass information. You can select the feature to plot among the set of features detected by LEfSe as biomarker or among the full set of features. + +------ + +**Input format** + +The module accepts two datasets: the data formatted with the "Format Input for +LEfSe" module and the output of the LEfSe analysis. Both datasets are necessary +to run the module. + +------ + +**Output format** + +The module generates images in png, svg or pdf format. The png format is recommended for exploratory runs as it can be easily visualized internally in Galaxy, whereas the vectorial svg and pdf format are recommended for the final publication-ready image to be downloaded. + +------ + +**Advanced parameter settings** + +*Graphical options* + * Set the maximum y value: set the maximum value on the y-axis. -1 means automatic parameter setting that is computed as the minimum between the highest abundance value and three times the highest subclass median. + * Set the minimum y value: -1 means automatic parameter setting that is computed as the maximum between 0 and the 90% of the smallest abundance value. + * Title font size: set the font size of the title only. + * Class font size: set the font of the legend for the class names and colors. + * Size of subclasses names and y values: set the fond size for the axis labels. + * Width of the plot: horizontal size (in inches) of the plot. + * Height of the plot: vertical size (in inches) of the plot. + * Background color: whether to generate plots with black or white backgrounds, adjusting properly the other colors. + * Class label position: whether to place the class labels on the top or on the bottom of the plot. + * Plot subclass means (straight line): whether to plot the subclass means with straight horizontal lines. + * Plot subclass medians (dotted line): whether to plot the subclass medians with dotted horizontal lines. + +------ + +**Examples** + +Selecting the Clostridia clade from the biomarkers detected by LEfSe in the dataset provided here_ and described in the "Introduction", we obtain the following image: + +.. _here: http://www.huttenhower.org/webfm_send/73 + +Another example, taken from the analysis we detailed in `(Segata et. al 2011)`_ that compares the viral and bacterial microbiomes using metagenomic data from `(Dinsdale et. al 2008)`_: + + + +.. _(Segata et. al 2011): http://www.ncbi.nlm.nih.gov/pubmed/21702898 +.. _(Dinsdale et. al 2008): http://www.ncbi.nlm.nih.gov/pubmed/18337718 + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/qiime2lefse.py Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,85 @@ +#!/usr/bin/env python + +import sys + +def read_params(args): + import argparse as ap + import textwrap + + p = ap.ArgumentParser( description= "TBA" ) + + p.add_argument( '--in', metavar='INPUT_FILE', type=str, + nargs='?', default=sys.stdin, + help= "the Qiime OTU table file " + "[ stdin if not present ]" ) + p.add_argument( '--md', metavar='METADATA_FILE', type=str, + nargs='?', default=None, + help= "the Qiime OTU table file " + "[ only OTU table without metadata if not present ]" ) + p.add_argument( '--out', metavar='OUTPUT_FILE', type=str, + nargs = '?', default=sys.stdout, + help= "the output file " + "[stdout if not present]") + + p.add_argument( '-c', metavar="class attribute", + type=str, + help = "the attribute to use as class" ) + p.add_argument( '-s', metavar="subclass attribute", + type=str, + help = "the attribute to use as subclass" ) + p.add_argument( '-u', metavar="subject attribute", + type=str, + help = "the attribute to use as subject" ) + + + + return vars(p.parse_args()) + + + +def qiime2lefse( fin, fmd, fout, all_md, sel_md ): + with (fin if fin==sys.stdin else open(fin)) as inpf : + lines = [list(ll) for ll in + (zip(*[l.strip().split('\t') + for l in inpf.readlines()[1:]]) ) ] + for i,(l1,l2) in enumerate(zip( lines[0], lines[-1] )): + if not l2 == 'Consensus Lineage': + lines[-1][i] = l2+"|"+l1 + + data = dict([(l[0],l[1:]) for l in lines[1:]]) + + md = {} + if fmd: + with open(fmd) as inpf: + mdlines = [l.strip().split('\t') for l in inpf.readlines()] + + mdf = mdlines[0][1:] + + for l in mdlines: + mdd = dict(zip(mdf,l[1:])) + md[l[0]] = mdd + + selected_md = md.values()[0].keys() if md else [] + + if not all_md: + selected_md = [s for s in sel_md if s] + + out_m = [ selected_md + + list([d.replace(";","|").replace("\"","") for d in data[ 'Consensus Lineage' ]]) ] + for k,v in data.items(): + if k == 'Consensus Lineage': + continue + out_m.append( [md[k][kmd] for kmd in selected_md] + list(v) ) + + with (fout if fout == sys.stdout else open( fout, "w" )) as outf: + for l in zip(*out_m): + outf.write( "\t".join(l) + "\n" ) + +if __name__ == '__main__': + pars = read_params( sys.argv ) + + qiime2lefse( fin = pars['in'], + fmd = pars['md'], + fout = pars['out'], + all_md = not pars['c'] and not pars['s'] and not pars['u'], + sel_md = [pars['c'],pars['s'],pars['u']])
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/requirements.txt Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,5 @@ + +- R +- R libraries: splines, stats4, survival, mvtnorm, modeltools, coin, MASS +- python libraries: rpy2 (v. 2.1 or higher), numpy, matplotlib (v. 1.0 or higher), argparse +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/run_lefse.py Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,103 @@ +#!/usr/bin/env python + +import os,sys,math,pickle +from lefse import * + +def read_params(args): + parser = argparse.ArgumentParser(description='LEfSe 1.0') + parser.add_argument('input_file', metavar='INPUT_FILE', type=str, help="the input file") + parser.add_argument('output_file', metavar='OUTPUT_FILE', type=str, + help="the output file containing the data for the visualization module") + parser.add_argument('-o',dest="out_text_file", metavar='str', type=str, default="", + help="set the file for exporting the result (only concise textual form)") + parser.add_argument('-a',dest="anova_alpha", metavar='float', type=float, default=0.05, + help="set the alpha value for the Anova test (default 0.05)") + parser.add_argument('-w',dest="wilcoxon_alpha", metavar='float', type=float, default=0.05, + help="set the alpha value for the Wilcoxon test (default 0.05)") + parser.add_argument('-l',dest="lda_abs_th", metavar='float', type=float, default=2.0, + help="set the threshold on the absolute value of the logarithmic LDA score (default 2.0)") + parser.add_argument('--nlogs',dest="nlogs", metavar='int', type=int, default=3, + help="max log ingluence of LDA coeff") + parser.add_argument('--verbose',dest="verbose", metavar='int', choices=[0,1], type=int, default=0, + help="verbose execution (default 0)") + parser.add_argument('--wilc',dest="wilc", metavar='int', choices=[0,1], type=int, default=1, + help="wheter to perform the Wicoxon step (default 1)") + parser.add_argument('-r',dest="rank_tec", metavar='str', choices=['lda','svm'], type=str, default='lda', + help="select LDA or SVM for effect size (default LDA)") + parser.add_argument('--svm_norm',dest="svm_norm", metavar='int', choices=[0,1], type=int, default=1, + help="whether to normalize the data in [0,1] for SVM feature waiting (default 1 strongly suggested)") + parser.add_argument('-b',dest="n_boots", metavar='int', type=int, default=30, + help="set the number of bootstrap iteration for LDA (default 30)") + parser.add_argument('-e',dest="only_same_subcl", metavar='int', type=int, default=0, + help="set whether perform the wilcoxon test only among the subclasses with the same name (default 0)") + parser.add_argument('-c',dest="curv", metavar='int', type=int, default=0, + help="set whether perform the wilcoxon test ing the Curtis's approach [BETA VERSION] (default 0)") + parser.add_argument('-f',dest="f_boots", metavar='float', type=float, default=0.67, + help="set the subsampling fraction value for each bootstrap iteration (default 0.66666)") + parser.add_argument('-s',dest="strict", choices=[0,1,2], type=int, default=0, + help="set the multiple testing correction options. 0 no correction (more strict, default), 1 correction for independent comparisons, 2 correction for independent comparison") +# parser.add_argument('-m',dest="m_boots", type=int, default=5, +# help="minimum cardinality of classes in each bootstrapping iteration (default 5)") + parser.add_argument('--min_c',dest="min_c", metavar='int', type=int, default=10, + help="minimum number of samples per subclass for performing wilcoxon test (default 10)") + parser.add_argument('-t',dest="title", metavar='str', type=str, default="", + help="set the title of the analysis (default input file without extension)") + parser.add_argument('-y',dest="multiclass_strat", choices=[0,1], type=int, default=0, + help="(for multiclass tasks) set whether the test is performed in a one-against-one ( 1 - more strict!) or in a one-against-all setting ( 0 - less strict) (default 0)") + args = parser.parse_args() + + params = vars(args) + if params['title'] == "": params['title'] = params['input_file'].split("/")[-1].split('.')[0] + return params + + + +if __name__ == '__main__': + init() + params = read_params(sys.argv) + feats,cls,class_sl,subclass_sl,class_hierarchy = load_data(params['input_file']) + kord,cls_means = get_class_means(class_sl,feats) + wilcoxon_res = {} + kw_n_ok = 0 + nf = 0 + for feat_name,feat_values in feats.items(): + if params['verbose']: + print "Testing feature",str(nf),": ",feat_name, + nf += 1 + kw_ok,pv = test_kw_r(cls,feat_values,params['anova_alpha'],sorted(cls.keys())) + if not kw_ok: + if params['verbose']: print "\tkw ko" + del feats[feat_name] + wilcoxon_res[feat_name] = "-" + continue + if params['verbose']: print "\tkw ok\t", + + if not params['wilc']: continue + kw_n_ok += 1 + res_wilcoxon_rep = test_rep_wilcoxon_r(subclass_sl,class_hierarchy,feat_values,params['wilcoxon_alpha'],params['multiclass_strat'],params['strict'],feat_name,params['min_c'],params['only_same_subcl'],params['curv']) + wilcoxon_res[feat_name] = str(pv) if res_wilcoxon_rep else "-" + if not res_wilcoxon_rep: + if params['verbose']: print "wilc ko" + del feats[feat_name] + elif params['verbose']: print "wilc ok\t" + + if len(feats) > 0: + print "Number of significantly discriminative features:", len(feats), "(", kw_n_ok, ") before internal wilcoxon" + if params['lda_abs_th'] < 0.0: + lda_res,lda_res_th = dict([(k,0.0) for k,v in feats.items()]), dict([(k,v) for k,v in feats.items()]) + else: + if params['rank_tec'] == 'lda': lda_res,lda_res_th = test_lda_r(cls,feats,class_sl,params['n_boots'],params['f_boots'],params['lda_abs_th'],0.0000000001,params['nlogs']) + elif params['rank_tec'] == 'svm': lda_res,lda_res_th = test_svm(cls,feats,class_sl,params['n_boots'],params['f_boots'],params['lda_abs_th'],0.0,params['svm_norm']) + else: lda_res,lda_res_th = dict([(k,0.0) for k,v in feats.items()]), dict([(k,v) for k,v in feats.items()]) + else: + print "Number of significantly discriminative features:", len(feats), "(", kw_n_ok, ") before internal wilcoxon" + print "No features with significant differences between the two classes" + lda_res,lda_res_th = {},{} + outres = {} + outres['lda_res_th'] = lda_res_th + outres['lda_res'] = lda_res + outres['cls_means'] = cls_means + outres['cls_means_kord'] = kord + outres['wilcox_res'] = wilcoxon_res + print "Number of discriminative features with abs LDA score >",params['lda_abs_th'],":",len(lda_res_th) + save_res(outres,params["output_file"])
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/ubuntu/lefse_to_export/run_lefse.xml Wed Aug 20 16:56:51 2014 -0400 @@ -0,0 +1,101 @@ +<tool id="LEfSe_run" name="B) LDA Effect Size (LEfSe)" version="1.0"> + <description></description> +<!-- <command interpreter="python">./run_lefse.py $inp_data $output -l $lda_th -a $kw_alpha -w $w_alpha -e $w_pol -s $mtc -y $multiclass </command> --> +<command interpreter="python">run_lefse.py $inp_data $output -l $lda_th -a $kw_alpha -w $w_alpha -e $w_pol -y $multiclass -f 0.9</command> + <inputs> + <page> + <param format="lefse_internal_for" name="inp_data" type="data" label="Select data" help=""/> + <param name="kw_alpha" type="float" size="2" value="0.05" label="Alpha value for the factorial Kruskal-Wallis test among classes"/> + <param name="w_alpha" type="float" size="2" value="0.05" label="Alpha value for the pairwise Wilcoxon test between subclasses"/> + <param name="lda_th" type="float" size="2" value="2.0" label="Threshold on the logarithmic LDA score for discriminative features"/> + <param name="w_pol" type="select" label="Do you want the pairwise comparisons among subclasses to be performed only among the subclasses with the same name?" help=""> + <option value="0" selected="0">No</option> + <option value="1">Yes</option> + </param> +<!-- <param name="mtc" type="select" label="Set the multiple testing correction (no correction recommended) (to check the parameter passing here)" help=""> + <option value="0" selected="0">No correction</option> + <option value="1">Correction for independent comparisons</option> + <option value="2">Correction for dependent comparisons</option> + </param> --> + <param name="multiclass" type="select" label="Set the strategy for multi-class analysis" help=""> + <option value="1" selected="True">All-against-all (more strict)</option> + <option value="0">One-against-all (less strict)</option> + </param> + </page> + </inputs> + <outputs> + <data format="lefse_internal_res" name="output" /> + </outputs> + <tests> + <test> + <param name="input1" value="13.bed" dbkey="hg18" ftype="bed"/> + <param name="maf_source" value="cached"/> + <param name="maf_identifier" value="17_WAY_MULTIZ_hg18"/> + <param name="species" value="hg18,mm8"/> + <param name="overwrite_with_gaps" value="True"/> + <output name="out_file1" file="interval_maf_to_merged_fasta_out3.fasta" /> + </test> + <test> + <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> + <param name="maf_source" value="cached"/> + <param name="maf_identifier" value="8_WAY_MULTIZ_hg17"/> + <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> + <param name="overwrite_with_gaps" value="True"/> + <output name="out_file1" file="interval_maf_to_merged_fasta_out.dat" /> + </test> + <test> + <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> + <param name="maf_source" value="user"/> + <param name="maf_file" value="5.maf"/> + <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> + <param name="overwrite_with_gaps" value="True"/> + <output name="out_file1" file="interval_maf_to_merged_fasta_user_out.dat" /> + </test> + </tests> + <help> +**What it does** + +Lda Effective Size (LEfSe) is a biomarker discovery and explanation tool for high-dimensional data. It couples statistical significance with biological consistency and effect size estimation. For an overview of LEfSe please refer to the "Introduction" module or to `(Segata et. al 2011)`_. + +The scheme and the description below illustrates how the algorithm works: + +.. image:: https://bytebucket.org/biobakery/galaxy_lefse/wiki/lefse_met.png + +Input data consist of a collection of m samples (columns) each made up of n numerical features (rows, typically normalized per-sample, red representing high values and green low). These samples are labeled with a class (taking two or more possible values) that represents the main biological hypothesis under investigation; they may also have one or more subclass labels reflecting within-class groupings. + +- Step 1: the Kruskall-Wallis test analyzes all features, testing whether the values in different classes are differentially distributed. Features violating the null hypothesis are further analyzed in Step 2. + +- Step 2: the pairwise Wilcoxon test checks whether all pairwise comparisons between subclasses within different classes significantly agree with the class level trend. + +- Step 3: the resulting subset of vectors is used to build a Linear Discriminant Analysis model from which the relative difference among classes is used to rank the features. The final output thus consists of a list of features that are discriminative with respect to the classes, consistent with the subclass grouping within classes, and ranked according to the effect size with which they differentiate classes. + +**Input format** + +The input for this module must be generated with the **"Format Input for LEfSe"** tool. + +------ + +**Output format** + +The output consists of a tabular file listing all the features, the logarithm value of the highest mean among all the classes, and if the feature is discriminative, the class with the highest mean and the logarithmic LDA score. + +The output file can be conveniently visualized with the "Plot LEfSe Results" module and, if feature names define a hierarchy, with the "Plot Cladogram" module. The output can also be used for generating the histograms of the raw data of the discriminative features using the "Plot Differential Features" module. + +------ + +**Parameters** + +The input parameters are the alpha-values for the factorial Kruskal-Wallis test and for the pairwise Wilcoxon test among subclasses (steps 1 and 2 in the schematic picture above) and the non-negative threshold for the logarithmic LDA score. Moreover, the user can decide the pairwise Wilcoxon test to be applied only among subclasses in different classes with the same name (less stringent) and select the multi-class strategy to be the All-against-all (more stringent) or the One-against-all (less stringent). + +.. _here: http://www.huttenhower.org/webfm_send/73 +.. _(Segata et. al 2011): http://www.ncbi.nlm.nih.gov/pubmed/21702898 +.. _(Garrett et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/20833380 +.. _(Veiga et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/20921388 +.. _contact us: nsegata@hsph.harvard.edu + +**Example** + +For the mouse model dataset (see the "Introduction" module) it is suggested to use alpha=0.01 as the sample size is not very large. + + </help> +</tool>
--- a/lefse.py Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,242 +0,0 @@ -import os,sys,math,pickle -import random as lrand -import rpy2.robjects as robjects -import argparse -import numpy -#import svmutil - -def init(): - lrand.seed(1982) - robjects.r('library(splines)') - robjects.r('library(stats4)') - robjects.r('library(survival)') - robjects.r('library(mvtnorm)') - robjects.r('library(modeltools)') - robjects.r('library(coin)') - robjects.r('library(MASS)') - -def get_class_means(class_sl,feats): - means = {} - clk = class_sl.keys() - for fk,f in feats.items(): - means[fk] = [numpy.mean((f[class_sl[k][0]:class_sl[k][1]])) for k in clk] - return clk,means - -def save_res(res,filename): - with open(filename, 'w') as out: - for k,v in res['cls_means'].items(): - out.write(k+"\t"+str(math.log(max(max(v),1.0),10.0))+"\t") - if k in res['lda_res_th']: - for i,vv in enumerate(v): - if vv == max(v): - out.write(str(res['cls_means_kord'][i])+"\t") - break - out.write(str(res['lda_res'][k])) - else: out.write("\t") - out.write( "\t" + res['wilcox_res'][k]+"\n") - -def load_data(input_file, nnorm = False): - - with open(input_file, 'rb') as inputf: - inp = pickle.load(inputf) - if nnorm: return inp['feats'],inp['cls'],inp['class_sl'],inp['subclass_sl'],inp['class_hierarchy'],inp['norm'] - else: return inp['feats'],inp['cls'],inp['class_sl'],inp['subclass_sl'],inp['class_hierarchy'] - -def load_res(input_file): - with open(input_file, 'rb') as inputf: - inp = pickle.load(inputf) - return inp['res'],inp['params'],inp['class_sl'],inp['subclass_sl'] - - -def test_kw_r(cls,feats,p,factors): - robjects.globalenv["y"] = robjects.FloatVector(feats) - for i,f in enumerate(factors): - robjects.globalenv['x'+str(i+1)] = robjects.FactorVector(robjects.StrVector(cls[f])) - fo = "y~x1" - for i,f in enumerate(factors[1:]): - if f == "subclass" and len(set(cls[f])) <= len(set(cls["class"])): continue - if len(set(cls[f])) == len(cls[f]): continue - fo += "+x"+str(i+2) - kw_res = robjects.r('kruskal.test('+fo+',)$p.value') - return float(tuple(kw_res)[0]) < p, float(tuple(kw_res)[0]) - -def test_rep_wilcoxon_r(sl,cl_hie,feats,th,multiclass_strat,mul_cor,fn,min_c,comp_only_same_subcl,curv=False): - comp_all_sub = not comp_only_same_subcl - tot_ok = 0 - alpha_mtc = th - all_diff = [] - for pair in [(x,y) for x in cl_hie.keys() for y in cl_hie.keys() if x < y]: - dir_cmp = "not_set" # - l_subcl1, l_subcl2 = (len(cl_hie[pair[0]]), len(cl_hie[pair[1]])) - if mul_cor != 0: alpha_mtc = th*l_subcl1*l_subcl2 if mul_cor == 2 else 1.0-math.pow(1.0-th,l_subcl1*l_subcl2) - ok = 0 - curv_sign = 0 - first = True - for i,k1 in enumerate(cl_hie[pair[0]]): - br = False - for j,k2 in enumerate(cl_hie[pair[1]]): - if not comp_all_sub and k1[len(pair[0]):] != k2[len(pair[1]):]: - ok += 1 - continue - cl1 = feats[sl[k1][0]:sl[k1][1]] - cl2 = feats[sl[k2][0]:sl[k2][1]] - med_comp = False - if len(cl1) < min_c or len(cl2) < min_c: - med_comp = True - sx,sy = numpy.median(cl1),numpy.median(cl2) - if cl1[0] == cl2[0] and len(set(cl1)) == 1 and len(set(cl2)) == 1: - tres, first = False, False - elif not med_comp: - robjects.globalenv["x"] = robjects.FloatVector(cl1+cl2) - robjects.globalenv["y"] = robjects.FactorVector(robjects.StrVector(["a" for a in cl1]+["b" for b in cl2])) - pv = float(robjects.r('pvalue(wilcox_test(x~y,data=data.frame(x,y)))')[0]) - tres = pv < alpha_mtc*2.0 - if first: - first = False - if not curv and ( med_comp or tres ): - dir_cmp = sx < sy - if sx == sy: br = True - elif curv: - dir_cmp = None - if med_comp or tres: - curv_sign += 1 - dir_cmp = sx < sy - else: br = True - elif not curv and med_comp: - if ((sx < sy) != dir_cmp or sx == sy): br = True - elif curv: - if tres and dir_cmp == None: - curv_sign += 1 - dir_cmp = sx < sy - if tres and dir_cmp != (sx < sy): - br = True - curv_sign = -1 - elif not tres or (sx < sy) != dir_cmp or sx == sy: br = True - if br: break - ok += 1 - if br: break - if curv: diff = curv_sign > 0 - else: diff = (ok == len(cl_hie[pair[1]])*len(cl_hie[pair[0]])) # or (not comp_all_sub and dir_cmp != "not_set") - if diff: tot_ok += 1 - if not diff and multiclass_strat: return False - if diff and not multiclass_strat: all_diff.append(pair) - if not multiclass_strat: - tot_k = len(cl_hie.keys()) - for k in cl_hie.keys(): - nk = 0 - for a in all_diff: - if k in a: nk += 1 - if nk == tot_k-1: return True - return False - return True - - - -def contast_within_classes_or_few_per_class(feats,inds,min_cl,ncl): - ff = zip(*[v for n,v in feats.items() if n != 'class']) - cols = [ff[i] for i in inds] - cls = [feats['class'][i] for i in inds] - if len(set(cls)) < ncl: - return True - for c in set(cls): - if cls.count(c) < min_cl: - return True - cols_cl = [x for i,x in enumerate(cols) if cls[i] == c] - for i,col in enumerate(zip(*cols_cl)): - if (len(set(col)) <= min_cl and min_cl > 1) or (min_cl == 1 and len(set(col)) <= 1): - return True - return False - -def test_lda_r(cls,feats,cl_sl,boots,fract_sample,lda_th,tol_min,nlogs): - fk = feats.keys() - means = dict([(k,[]) for k in feats.keys()]) - feats['class'] = list(cls['class']) - clss = list(set(feats['class'])) - for uu,k in enumerate(fk): - if k == 'class': continue - ff = [(feats['class'][i],v) for i,v in enumerate(feats[k])] - for c in clss: - if len(set([float(v[1]) for v in ff if v[0] == c])) > max(float(feats['class'].count(c))*0.5,4): continue - for i,v in enumerate(feats[k]): - if feats['class'][i] == c: - feats[k][i] = math.fabs(feats[k][i] + lrand.normalvariate(0.0,max(feats[k][i]*0.05,0.01))) - rdict = {} - for a,b in feats.items(): - if a == 'class' or a == 'subclass' or a == 'subject': - rdict[a] = robjects.StrVector(b) - else: rdict[a] = robjects.FloatVector(b) - robjects.globalenv["d"] = robjects.DataFrame(rdict) - lfk = len(feats[fk[0]]) - rfk = int(float(len(feats[fk[0]]))*fract_sample) - f = "class ~ "+fk[0] - for k in fk[1:]: f += " + " + k.strip() - ncl = len(set(cls['class'])) - min_cl = int(float(min([cls['class'].count(c) for c in set(cls['class'])]))*fract_sample*fract_sample*0.5) - min_cl = max(min_cl,1) - pairs = [(a,b) for a in set(cls['class']) for b in set(cls['class']) if a > b] - - for k in fk: - for i in range(boots): - means[k].append([]) - for i in range(boots): - for rtmp in range(1000): - rand_s = [lrand.randint(0,lfk-1) for v in range(rfk)] - if not contast_within_classes_or_few_per_class(feats,rand_s,min_cl,ncl): break - rand_s = [r+1 for r in rand_s] - means[k][i] = [] - for p in pairs: - robjects.globalenv["rand_s"] = robjects.IntVector(rand_s) - robjects.globalenv["sub_d"] = robjects.r('d[rand_s,]') - z = robjects.r('z <- suppressWarnings(lda(as.formula('+f+'),data=sub_d,tol='+str(tol_min)+'))') - robjects.r('w <- z$scaling[,1]') - robjects.r('w.unit <- w/sqrt(sum(w^2))') - robjects.r('ss <- sub_d[,-match("class",colnames(sub_d))]') - if 'subclass' in feats: - robjects.r('ss <- ss[,-match("subclass",colnames(ss))]') - if 'subject' in feats: - robjects.r('ss <- ss[,-match("subject",colnames(ss))]') - robjects.r('xy.matrix <- as.matrix(ss)') - robjects.r('LD <- xy.matrix%*%w.unit') - robjects.r('effect.size <- abs(mean(LD[sub_d[,"class"]=="'+p[0]+'"]) - mean(LD[sub_d[,"class"]=="'+p[1]+'"]))') - scal = robjects.r('wfinal <- w.unit * effect.size') - rres = robjects.r('mm <- z$means') - rowns = list(rres.rownames) - lenc = len(list(rres.colnames)) - coeff = [abs(float(v)) if not math.isnan(float(v)) else 0.0 for v in scal] - res = dict([(pp,[float(ff) for ff in rres.rx(pp,True)] if pp in rowns else [0.0]*lenc ) for pp in [p[0],p[1]]]) - for j,k in enumerate(fk): - gm = abs(res[p[0]][j] - res[p[1]][j]) - means[k][i].append((gm+coeff[j])*0.5) - res = {} - for k in fk: - m = max([numpy.mean([means[k][kk][p] for kk in range(boots)]) for p in range(len(pairs))]) - res[k] = math.copysign(1.0,m)*math.log(1.0+math.fabs(m),10) - return res,dict([(k,x) for k,x in res.items() if math.fabs(x) > lda_th]) - - -def test_svm(cls,feats,cl_sl,boots,fract_sample,lda_th,tol_min,nsvm): - return NULL -""" - fk = feats.keys() - clss = list(set(cls['class'])) - y = [clss.index(c)*2-1 for c in list(cls['class'])] - xx = [feats[f] for f in fk] - if nsvm: - maxs = [max(v) for v in xx] - mins = [min(v) for v in xx] - x = [ dict([(i+1,(v-mins[i])/(maxs[i]-mins[i])) for i,v in enumerate(f)]) for f in zip(*xx)] - else: x = [ dict([(i+1,v) for i,v in enumerate(f)]) for f in zip(*xx)] - - lfk = len(feats[fk[0]]) - rfk = int(float(len(feats[fk[0]]))*fract_sample) - mm = [] - - best_c = svmutil.svm_ms(y, x, [pow(2.0,i) for i in range(-5,10)],'-t 0 -q') - for i in range(boots): - rand_s = [lrand.randint(0,lfk-1) for v in range(rfk)] - r = svmutil.svm_w([y[yi] for yi in rand_s], [x[xi] for xi in rand_s], best_c,'-t 0 -q') - mm.append(r[:len(fk)]) - m = [numpy.mean(v) for v in zip(*mm)] - res = dict([(v,m[i]) for i,v in enumerate(fk)]) - return res,dict([(k,x) for k,x in res.items() if math.fabs(x) > lda_th]) -"""
--- a/lefse2circlader.py Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -#!/usr/bin/env python - -from __future__ import with_statement - -import sys -import os -import argparse - -def read_params(args): - parser = argparse.ArgumentParser(description='Convert LEfSe output to ' - 'Circlader input') - parser.add_argument( 'inp_f', metavar='INPUT_FILE', nargs='?', - default=None, type=str, - help="the input file [stdin if not present]") - parser.add_argument( 'out_f', metavar='OUTPUT_FILE', nargs='?', - default=None, type=str, - help="the output file [stdout if not present]") - parser.add_argument('-l', metavar='levels with label', default=0, type=int) - - return vars(parser.parse_args()) - -def lefse2circlader(par): - finp,fout = bool(par['inp_f']), bool(par['out_f']) - - with open(par['inp_f']) if finp else sys.stdin as inpf: - put_bm = (l.strip().split('\t') for l in inpf.readlines()) - biomarkers = [p for p in put_bm if len(p) > 2] - - circ = [ [ b[0], - "" if b[0].count('.') > par['l'] else b[0].split('.')[-1], - b[2], - b[2]+"_col" ] for b in biomarkers] - - with open(par['out_f'],'w') if fout else sys.stdout as out_file: - for c in circ: - out_file.write( "\t".join( c ) + "\n" ) - -if __name__ == '__main__': - params = read_params(sys.argv) - lefse2circlader(params) - - -
--- a/plot_cladogram.py Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,342 +0,0 @@ -#!/usr/bin/env python - -import os,sys,matplotlib,argparse,string -matplotlib.use('Agg') -from pylab import * -from lefse import * -import numpy as np - -colors = ['r','g','b','m','c',[1.0,0.5,0.0],[0.0,1.0,0.0],[0.33,0.125,0.0],[0.75,0.75,0.75],'k'] -dark_colors = [[0.4,0.0,0.0],[0.0,0.2,0.0],[0.0,0.0,0.4],'m','c',[1.0,0.5,0.0],[0.0,1.0,0.0],[0.33,0.125,0.0],[0.75,0.75,0.75],'k'] - -class CladeNode: - def __init__(self, name, abundance, viz = True): - self.id = name - self.name = name.split(".") - self.last_name = self.name[-1] - self.abundance = abundance - self.pos = (-1.0,-1.0) - self.children = {} - self.isleaf = True - self.color = 'y' - self.next_leaf = -1 - self.prev_leaf = -1 - self.viz = viz - def __repr__(self): - return self.last_name - def add_child(self,node): - self.isleaf = False - self.children[node.__repr__()] = node - def get_children(self): - ck = sorted(self.children.keys()) - return [self.children[k] for k in ck] - def get_color(self): - return self.color - def set_color(self,c): - self.color = c - def set_pos(self,pos): - self.pos = pos - -def read_params(args): - parser = argparse.ArgumentParser(description='Cladoplot') - parser.add_argument('input_file', metavar='INPUT_FILE', type=str, help="tab delimited input file") - parser.add_argument('output_file', metavar='OUTPUT_FILE', type=str, help="the file for the output image") - parser.add_argument('--clade_sep',dest="clade_sep", type=float, default=1.5) - parser.add_argument('--max_lev',dest="max_lev", type=int, default=-1) - parser.add_argument('--max_point_size',dest="max_point_size", type=float, default=6.0) - parser.add_argument('--min_point_size',dest="min_point_size", type=float, default=1) - parser.add_argument('--point_edge_width',dest="markeredgewidth", type=float, default=.25) - parser.add_argument('--siblings_connector_width',dest="siblings_connector_width", type=float, default=2) - parser.add_argument('--parents_connector_width',dest="parents_connector_width", type=float, default=0.75) - parser.add_argument('--radial_start_lev',dest="radial_start_lev", type=int, default=1) - parser.add_argument('--labeled_start_lev',dest="labeled_start_lev", type=int, default=2) - parser.add_argument('--labeled_stop_lev',dest="labeled_stop_lev", type=int, default=5) - parser.add_argument('--abrv_start_lev',dest="abrv_start_lev", type=int, default=3) - parser.add_argument('--abrv_stop_lev',dest="abrv_stop_lev", type=int, default=5) - parser.add_argument('--expand_void_lev',dest="expand_void_lev", type=int, default=1) - parser.add_argument('--class_legend_vis',dest="class_legend_vis", type=int, default=1) - parser.add_argument('--colored_connector',dest="colored_connectors", type=int, default=1) - parser.add_argument('--alpha',dest="alpha", type=float, default=0.2) - parser.add_argument('--title',dest="title", type=str, default="Cladogram") - parser.add_argument('--sub_clade',dest="sub_clade", type=str, default="") - parser.add_argument('--title_font_size',dest="title_font_size", type=str, default="14") - parser.add_argument('--right_space_prop',dest="r_prop", type=float, default=0.1) - parser.add_argument('--left_space_prop',dest="l_prop", type=float, default=0.1) - parser.add_argument('--label_font_size',dest="label_font_size", type=str, default="6") - parser.add_argument('--background_color',dest="back_color", type=str, choices=["k","w"], default="w", help="set the color of the background") - parser.add_argument('--colored_labels',dest="col_lab", type=int, choices=[0,1], default=1, help="draw the label with class color (1) or in black (0)") - parser.add_argument('--class_legend_font_size',dest="class_legend_font_size", type=str, default="10") - parser.add_argument('--dpi',dest="dpi", type=int, default=72) - parser.add_argument('--format', dest="format", choices=["png","svg","pdf"], default="svg", type=str, help="the format for the output file") - parser.add_argument('--all_feats', dest="all_feats", type=str, default="") - args = parser.parse_args() - return vars(args) - -def cmp_names(la,lb): - if len(la) != len(lb): return False - for p in [(a,b) for i,a in enumerate(la) for j,b in enumerate(lb) if i == j]: - if p[0] != p[1]: return False - return True - -def build_tree(father,all_nodes,l,depth,viz): - cc = [n for n in all_nodes if len(n.name) > len(father.name) and cmp_names(father.name,n.name[:len(father.name)])] - children = [n for n in cc if len(n.name) == len(father.name)+1] - if len(children) == 0 and l < depth -1: # !!! - nc = CladeNode(father.id+"."+father.id.split(".")[-1],1.0,viz) - father.add_child(nc) - children.append(nc) - for child in children: - build_tree(child,cc,l+1,depth,viz) - father.add_child(child) - -def get_all_nodes(father): - ret = [father] - children = father.get_children() - for c in children: - ret += get_all_nodes(c) - return ret - -def read_data(input_file,params): - with open(input_file, 'r') as inp: - if params['sub_clade'] == "": rows = [line.strip().split()[:-1] for line in inp.readlines() if params['max_lev'] < 1 or line.split()[0].count(".") < params['max_lev']] - else: rows = [line.split(params['sub_clade']+".")[1].strip().split()[:-1] for line in inp.readlines() if ( params['max_lev'] < 1 or line.split()[0].count(".") < params['max_lev'] ) and line.startswith(params['sub_clade']+".")] - all_names = [lin[0] for lin in rows] - to_add = [] - - abundances = [float(v) for v in zip(*rows)[1] if v >= 0.0] - tree = {} - tree['classes'] = list(set([v[2] for v in rows if len(v)>2])) - tree['classes'].sort() - all_nodes = [CladeNode("root."+row[0],float(row[1])) for row in rows] - - depth = max([len(n.name) for n in all_nodes]) - - n2 = ["_".join(nn.name) for nn in all_nodes] - for i,nn in enumerate(all_nodes): - n = nn - while "_".join(n.name[:-1]) not in n2 and len(n.name) > 1: - n = CladeNode(".".join(n.name[:-1]),n.abundance) - all_nodes.append(n) - n2.append("_".join(n.name)) - - cls2 = [] - if params['all_feats'] != "": - cls2 = sorted(params['all_feats'].split(":")) - for i,v in enumerate(rows): - if len(v)>2: - if len(cls2) > 0: all_nodes[i].set_color(colors[cls2.index(v[2])%len(colors)]) - else: - if v[2].count('rgbcol') > 0: - ccc = [float(tt) for tt in v[2].split('_')[1:]] - all_nodes[i].set_color(ccc) - else: all_nodes[i].set_color(colors[sorted(tree['classes']).index(v[2])%len(colors)]) - root = CladeNode("root",-1.0) - root.set_pos((0.0,0.0)) - - build_tree(root,all_nodes,0,depth,params['expand_void_lev']==1) - - all_nodes = get_all_nodes(root) - - tree['root'] = root - tree['max_abs'] = max(abundances) - tree['min_abs'] = min(abundances) - levs = [] - for i in range(depth): - depthi = [n for n in all_nodes if len(n.name) == i+1] - levs.append(len(depthi)) - tree['nlev'] = levs - return tree - -def add_all_pos(father,n,distn,seps,tsep,mlev,last_leaf=-1,nc=1): - children = father.get_children() - leaves = True if children[0].isleaf else False - for i,child in enumerate(children): - if leaves: - n += 1.0 - men = 0.5 if len(children) == 1 else 0.0 - child.set_pos((n*distn-men*float(distn)+tsep,(len(father.name))/float(mlev-1))) - if last_leaf != -1: - child.prev_leaf = last_leaf - last_leaf.next_leaf = child - last_leaf = child - else: - ln = n - ltsep = tsep - n,tsep,last_leaf = add_all_pos(child,n,distn,seps,tsep,mlev,last_leaf,len(children)) - nn = (ln + n)*0.5*distn - ssep = (ltsep + tsep)*0.5 - if n-ln == 1: - ssep = ltsep - child.set_pos((nn+ssep,(len(father.name))/float(mlev-1))) - tsep += seps[len(father.name)-1] - return n,tsep,last_leaf - -def plot_points(father,params,pt_scale,ax): - children = father.get_children() - children.sort(key = lambda a: -int(a.get_color() == 'y')*a.abundance) - x,r = father.pos[0], father.pos[1] - for i,child in enumerate(children): - xc,rc = plot_points(child,params,pt_scale,ax) - if not father.viz: return x,r - ps = pt_scale[0]+father.abundance/pt_scale[1]+pt_scale[0] - col = father.get_color() - pw = params['markeredgewidth'] if col == 'y' else params['markeredgewidth']*3.0 - if x==0 and r==0: ax.plot(x,r, 'o',markersize=ps,color=col,markeredgewidth=0.01,markeredgecolor=params['fore_color']) - else: ax.plot(x,r, 'o',markersize=ps,color=col,markeredgewidth=pw,markeredgecolor=params['fore_color']) - return x,r - -def plot_lines(father,params,depth,ax,xf): - children = father.get_children() - x,r = father.pos[0], father.pos[1] - for i,child in enumerate(children): - xc,rc = plot_lines(child,params,depth,ax,x) - if i == 0: x_first, r_first = xc, rc - if len(father.name) >= depth-params['radial_start_lev']: - col = params['fore_color'] - lw=params['parents_connector_width'] - if not child.viz: continue - if father.get_color() != 'y' and father.get_color() == child.get_color() and params['colored_connectors']: - col = child.get_color() - lw *=2.5 - if col != params['fore_color']: - ax.plot([x,xc],[r,rc],"-",color=params['fore_color'],lw=lw*1.5) - ax.plot([x,xc],[r,rc],"-",color=col,lw=lw) - - if not father.viz or (len(children) == 1 and not children[0].viz): return x,r - if len(father.name) < depth-params['radial_start_lev']: - col = params['fore_color'] - lw=params['parents_connector_width'] - if father.get_color() != 'y': - f =True - for child in children: - if child.get_color() != father.get_color() or not params['colored_connectors']: - f = False - break - if f: - col = father.get_color() - lw *= 2.5 - if not (x==0 and r==0): - xx = xc if len(children) > 0 else x - if len(children) == 0: rc = r - xt = x if len(children)>1 else xx - if col != params['fore_color']: - ax.plot([x,xt],[r,rc],"-",color=params['fore_color'],lw=lw*1.5) - ax.plot([x,xt],[r,rc],"-",color=col,lw=lw) - if len(children) > 0 and 1 < len(father.name) < depth-params['radial_start_lev']: - xs = arange(x_first,xc,0.01) - ys = [rc for t in xs] - ax.plot(xs,ys,"-",color=col,lw=params['siblings_connector_width'],markeredgecolor=params['fore_color']) - return x,r - -def uniqueid(): - for l in string.lowercase: yield l - for l in string.lowercase: - for i in range(10): - yield l+str(i) - i = 0 - while True: - yield str(i) - i += 1 - -def plot_names(father,params,depth,ax,u_i,seps): - children = father.get_children() - l = len(father.name) - if len(children)==0: - if father.prev_leaf == -1 or father.next_leaf == -1: - fr_0, fr_1 = father.pos[0], father.pos[0] - else: fr_0, fr_1 = (father.pos[0]+father.prev_leaf.pos[0])*0.5, (father.pos[0]+father.next_leaf.pos[0])*0.5 - for i,child in enumerate(children): - fr,to = plot_names(child,params,depth,ax,u_i,seps) - if i == 0: fr_0 = fr - fr_1 = to - if father.get_color() != 'y' and params['labeled_start_lev'] < l <= params['labeled_stop_lev']+1: - col = father.get_color() - dd = params['labeled_stop_lev'] - params['labeled_start_lev'] + 1 - de = depth - 1 - dim = 1.0/float(de) - perc_ext = 0.65 if dim > 0.1 else 1.0 - clto = (de-l+1)*dim+dim*(dd+1-(l-dd-1))*perc_ext - clto = (de-l+1)*dim+dim*(dd-(l-params['labeled_start_lev'])+1)*perc_ext - des = float(180.0*(fr_0+fr_1)/np.pi)*0.5-90 - lab = "" - txt = father.last_name - if params['abrv_start_lev'] < l <= params['abrv_stop_lev'] + 1: - ide = u_i.next() - lab = str(ide)+": "+father.last_name - txt = str(ide) -# ax.bar(fr_0, clto, width = fr_1-fr_0, bottom = float(l-1)/float(depth-1), alpha = params['alpha'], color=col, edgecolor=col) - ax.bar(fr_0, clto, width = fr_1-fr_0, bottom = float(l-1)/float(de), alpha = params['alpha'], color=col, edgecolor=col) - ax.bar(0.0, 0.0, width = 0.0, bottom = 0.0, alpha = 1.0, color=col, edgecolor=params['fore_color'], label=lab) - if l <= params['abrv_stop_lev'] + 1: - if not params['col_lab']: col = params['fore_color'] - else: - if col not in colors: col = params['fore_color'] - else: col = dark_colors[colors.index(col)%len(dark_colors)] - ax.text((fr_0+fr_1)*0.5, clto+float(l-1)/float(de)-dim*perc_ext/2.0, txt, size = params['label_font_size'], rotation=des, ha ="center", va="center", color=col) - return fr_0, fr_1 - -def draw_tree(out_file,tree,params): - plt_size = 7 - nlev = tree['nlev'] - pt_scale = (params['min_point_size'],max(1.0,((tree['max_abs']-tree['min_abs']))/(params['max_point_size']-params['min_point_size']))) - depth = len(nlev) - sep = (2.0*np.pi)/float(nlev[-1]) - seps = [params['clade_sep']*sep/float(depth-i+1) for i in range(1,len(tree['nlev'])+1)] - totseps = sum([s*nlev[i] for i,s in enumerate(seps[:-1])]) - clade_sep_err = True if totseps > np.pi else False - while totseps > np.pi: - params['clade_sep'] *= 0.75 - seps = [params['clade_sep']*sep/(float(depth-i+1)*0.25) for i in range(1,len(tree['nlev'])+1)] - totseps = sum([s*nlev[i] for i,s in enumerate(seps[:-1])]) - if clade_sep_err: print 'clade_sep parameter too large, lowered to',params['clade_sep'] - - fig = plt.figure(edgecolor=params['back_color'],facecolor=params['back_color']) - ax = fig.add_subplot(111, polar=True, frame_on=False, axis_bgcolor=params['back_color'] ) - plt.subplots_adjust(right=1.0-params['r_prop'],left=params['l_prop']) - ax.grid(False) - xticks([]) - yticks([]) - - ds = (2.0*np.pi-totseps)/float(nlev[-1]) - - add_all_pos(tree['root'],0.0,ds,seps,0.0,depth) - - plot_lines(tree['root'],params,depth,ax,0) - plot_points(tree['root'],params,pt_scale,ax) - plot_names(tree['root'],params,depth,ax,uniqueid(),seps) - - r = np.arange(0, 3.0, 0.01) - theta = 2*np.pi*r - - def get_col_attr(x): - return hasattr(x, 'set_color') and not hasattr(x, 'set_facecolor') - - h, l = ax.get_legend_handles_labels() - if len(l) > 0: - leg = ax.legend(bbox_to_anchor=(1.05, 1), frameon=False, loc=2, borderaxespad=0.,prop={'size':params['label_font_size']}) - if leg != None: - gca().add_artist(leg) - for o in leg.findobj(get_col_attr): - o.set_color(params['fore_color']) - - cll = sorted(tree['classes']) if params['all_feats'] == "" else sorted(params['all_feats'].split(":")) - nll = [ax.bar(0.0, 0.0, width = 0.0, bottom = 0.0, color=colors[i%len(colors)], label=c) for i,c in enumerate(cll) if c in tree['classes']] - cl = [c for c in cll if c in tree['classes']] - - ax.set_title(params['title'],size=params['title_font_size'],color=params['fore_color']) - - if params['class_legend_vis']: - l2 = legend(nll, cl, loc=2, prop={'size':params['class_legend_font_size']}, frameon=False) - if l2 != None: - for o in l2.findobj(get_col_attr): - o.set_color(params['fore_color']) - - plt.savefig(out_file,format=params['format'],facecolor=params['back_color'],edgecolor=params['fore_color'],dpi=params['dpi']) - plt.close() - -if __name__ == '__main__': - params = read_params(sys.argv) - params['fore_color'] = 'w' if params['back_color'] == 'k' else 'k' - clad_tree = read_data(params['input_file'],params) - draw_tree(params['output_file'],clad_tree,params) -
--- a/plot_cladogram.xml Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,211 +0,0 @@ -<tool id="LEfSe_cla" name="D) Plot Cladogram" version="1.0"> - <description></description> -<command interpreter="python">plot_cladogram.py $inp_data $cladogram --title "$textm.title" --expand_void_lev $structural.expand_void_lev --max_lev $structural.max_lev --colored_label $graphical.colored_labels --labeled_start_lev $textm.labeled_start_lev --labeled_stop_lev $textm.labeled_stop_lev --abrv_start_lev $textm.abrv_start_lev --abrv_stop_lev $textm.abrv_stop_lev --radial_start_lev $graphical.radial_start_lev --max_point_size $graphical.max_point_size --min_point_size $graphical.min_point_size --point_edge_width $graphical.point_edge_width --siblings_connector_width $graphical.siblings_connector_width --parents_connector_width $graphical.parents_connector_width --alpha $graphical.alpha --clade_sep $graphical.clade_sep --title_font_size $textm.title_font_size --label_font_size $textm.label_font_size --class_legend_font_size $textm.class_legend_font_size --sub_clade "$structural.root" --background_color $graphical.background_color --format $for --right_space_prop $graphical.right_space_prop --left_space_prop 0.01 --dpi $dpi</command> - <inputs> - <page> - <param format="lefse_res" name="inp_data" type="data" label="Select data" help=""/> - - <conditional name="structural"> - <param name="structural_choice" type="select" label="Set structural parameters of the cladogram" help=""> - <option value="d" selected='True'>Default</option> - <option value="a">Advanced</option> - </param> - <when value="d"> - <param name="root" type="hidden" value=""/> - <param name="expand_void_lev" type="hidden" value="0"/> - <param name="max_lev" type="hidden" value="6"/> - </when> - <when value="a"> - <param name="root" type="text" size="10" value="" label="Root of the tree (insert the full name of the clade separating the levels with '.', nothing means the highest level clade)"/> - <param name="expand_void_lev" type="select" label="Expand terminal non-leaf levels"> - <option value="1" >Yes</option> - <option value="0" selected='True'>No</option> - </param> - <param name="max_lev" type="integer" size="2" value="6" label="Maximum number of taxonomic levels"/> - </when> - </conditional> - - <conditional name="textm"> - <param name="text_choice" type="select" label="Set text and label options (font size, abbreviations, ...)" help=""> - <option value="d" selected='True'>Default</option> - <option value="a">Advanced</option> - </param> - <when value="d"> - <param name="title" type="hidden" value=""/> - <param name="label_font_size" type="hidden" value="7"/> - <param name="title_font_size" type="hidden" value="14" /> - <param name="class_legend_font_size" type="hidden" value="10"/> - <param name="labeled_start_lev" type="hidden" value="2"/> - <param name="labeled_stop_lev" type="hidden" value="6"/> - <param name="abrv_start_lev" type="hidden" value="4"/> - <param name="abrv_stop_lev" type="hidden" value="6"/> - </when> - <when value="a"> - <param name="title" type="text" size="10" value="" label="The title of the cladogram"/> - <param name="title_font_size" type="integer" size="2" value="14" label="Title font size"/> - <param name="label_font_size" type="integer" size="2" value="7" label="Label font size"/> - <param name="class_legend_font_size" type="integer" size="2" value="10" label="Class font size"/> - <param name="labeled_start_lev" type="integer" size="2" value="2" label="Starting level for drawing the labels"/> - <param name="labeled_stop_lev" type="integer" size="2" value="6" label="Last level for drawing the labels"/> - <param name="abrv_start_lev" type="integer" size="2" value="4" label="First level for abbreviating the labels"/> - <param name="abrv_stop_lev" type="integer" size="2" value="6" label="Last level for abbreviating the labels"/> - </when> - </conditional> - - <conditional name="graphical"> - <param name="graphical_choice" type="select" label="Set some graphical options to personalize the output"> - <option value="d" selected='True'>Default</option> - <option value="a">Advanced</option> - </param> - <when value="d"> - <param name="radial_start_lev" type="hidden" value="1" /> - <param name="max_point_size" type="hidden" value="7.0" /> - <param name="min_point_size" type="hidden" value="1.5" /> - <param name="point_edge_width" type="hidden" value="0.25" /> - <param name="siblings_connector_width" type="hidden" value="2.0" /> - <param name="parents_connector_width" type="hidden" value="0.8" /> - <param name="alpha" type="hidden" value="0.2" /> - <param name="clade_sep" type="hidden" value="1.5" /> - <param name="for" type="hidden" value="png" /> - <param name="right_space_prop" type="hidden" value="0.1"/> - <param name="colored_labels" type="hidden" value="0"/> - <param name="background_color" type="hidden" value="w"/> - </when> - <when value="a"> - <param name="radial_start_lev" type="integer" size="2" value="1" label="Number of external levels drawn in the radial representation"/> - <param name="max_point_size" type="float" size="2" value="7.0" label="Max dimension of the circles representing taxa"/> - <param name="min_point_size" type="float" size="2" value="1.5" label="Min dimension of the circles representing taxa"/> - <param name="point_edge_width" type="float" size="2" value="0.25" label="Width of the edges of the circles representing taxa"/> - <param name="siblings_connector_width" type="float" size="2" value="2.0" label="Width of the lines connecting sibling taxa"/> - <param name="parents_connector_width" type="float" size="2" value="0.8" label="Width of the lines connecting parent with son taxa"/> - <param name="alpha" type="float" size="2" value="0.2" label="The alpha value for the transparency of clade labeling"/> - <param name="right_space_prop" type="float" size="2" value="0.1" label="Ration of the horizontal space to be given to the right side (for adjusting for label legend)"/> - <param name="colored_labels" type="select" label="Whether to write the labels with the class color or in black"> - <option value="0" selected='True'>Black</option> - <option value="1">Class color</option> - </param> - <param name="background_color" type="select" label="Background color"> - <option value="w" selected='True'>White</option> - <option value="k">Black</option> - </param> - <param name="clade_sep" type="float" size="2" value="1.5" label="Set the space between clades at the lower level"/> - </when> - </conditional> - <param name="for" type="select" label="Output format"> - <option value="png" selected="png">png</option> - <option value="svg">svg</option> - <option value="pdf">pdf</option> - </param> - <param name="dpi" type="select" label="Set the dpi resolution of the output"> - <option value="72">72</option> - <option value="150" selected="True">150</option> - <option value="300">300</option> - <option value="600">600</option> - <option value="1200">1200</option> - </param> - - </page> - </inputs> - <outputs> - <data format="png" name="cladogram" > - <change_format> - <when input="for" value="svg" format="svg" /> - <when input="for" value="pdf" format="pdf" /> - </change_format> - </data> - </outputs> - <tests> - <test> - <param name="input1" value="13.bed" dbkey="hg18" ftype="bed"/> - <param name="maf_source" value="cached"/> - <param name="maf_identifier" value="17_WAY_MULTIZ_hg18"/> - <param name="species" value="hg18,mm8"/> - <param name="overwrite_with_gaps" value="True"/> - <output name="out_file1" file="interval_maf_to_merged_fasta_out3.fasta" /> - </test> - <test> - <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> - <param name="maf_source" value="cached"/> - <param name="maf_identifier" value="8_WAY_MULTIZ_hg17"/> - <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> - <param name="overwrite_with_gaps" value="True"/> - <output name="out_file1" file="interval_maf_to_merged_fasta_out.dat" /> - </test> - <test> - <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> - <param name="maf_source" value="user"/> - <param name="maf_file" value="5.maf"/> - <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> - <param name="overwrite_with_gaps" value="True"/> - <output name="out_file1" file="interval_maf_to_merged_fasta_user_out.dat" /> - </test> - </tests> - <help> -**What it does** - -This module produces cladograms representing the LEfSe results (obtained with the corresponding module) on the hierarchy induced by the label names (the levels of the tree must be denoted with "|" in the original input file). The module cannot be used for features that do not have a tree structure. - -Below you can find a couple of examples. - ------- - -**Input format** - -The module accepts the output of the LEfSe module. - ------- - -**Output format** - -The module generate images in png, svg or pdf format. The png format is recommended for exploratory runs as it can be easily visualized internally in Galaxy, whereas the vectorial svg and pdf format are recommended for the final publication-ready image to be downloaded. - ------- - -**Parameters** - -In addition to the output format and the dpi resolution three sets of parameters can be tuned: structural parameters affecting the property of the circular cladogram, text and label options for regulating the clade annotation and graphical options for personalizing the appearance of the plot. The default settings of the parameters should give satisfactory cladograms in the great majority of the cases. - -**Advanced parameter settings** - -*Structural parameters* - * Root of the tree: selects any taxa of the tree to be the root of the cladogram (only the clades below the root will be visualized). Taxa levels are separated by ".", so for, example, Bacteria.Firmicutes will generate only the cladogram of Firmicutes. - * Expand terminal non-leaf levels: whether to expand a non-leaf taxa without children up to the level of the leaves naming the new levels with the expanding taxa name. - * Maximum number of taxonomic levels: you can limit the levels of the cladogram to a desired level. -*Text and label options* - * The title of the cladogram: optional title for the plot (default is no title). - * Title font size: set the font size of the title only. - * Label font size: set the font size of the labels (and of the label legend) used in the cladogram to denote taxa. - * Class font size: set the font of the legend for the class names and colors. - * Starting level for drawing the labels: you can avoid naming the more internal clades if they are not informative. - * Last level for drawing the labels: you may want to remove the most external labels as they may be to dense or overlapping. - * First level for abbreviating the labels: set the starting level for substituting the full clade names with with an abbreviation supported by a legend table (recommended for the most external taxa). - * Last level for abbreviating the labels: set the more external level for substituting the full clade names with with an abbreviation supported by a legend table. -*Graphical options* - * Number of external levels drawn in the radial representation: the connection between the taxa in last level and the corresponding parent is represented with a straight edge. The same representation may be used for more internal levels as well. - * Max dimension of the circles representing taxa: the sizes of the taxa represent the highest logarithmic abundance between classes, and this option sets the maximum diameter of the graphical representation. - * Min dimension of the circles representing taxa: the taxon diameter of the smallest logarithmic taxa abundance. - * Width of the edges of the circles representing taxa: the taxon circles have an external border whose thickness is regulated by this option. - * Width of the lines connecting sibling taxa: set the thickness of the lines connecting sibling taxa in the non-radial representation. - * Width of the lines connecting parent with son taxa: set the line thickness of the child-parent connection both in radial and non-radial representation. - * The alpha value for the transparency of clade labeling: the alpha value is responsible for the transparency of the differential clade highlighting. Since the transparency is additive, the alpha value should not be higher than 1/s where s is the number of levels with differential clades. - * Ration of the horizontal space to be given to the right side: in case the label legend requires more space (because of long labels) you may increase the right panel increasing this value. - * Whether to write the labels with the class color or in black: set whether the clade names inside the cladogram will be displayed with the class color or in black. - * Background color: whether to generate plots with black or white backgrounds, adjusting properly the other colors. - * Set the space between clades at the lower level: set the separation between low-level taxa belonging to different super-clades. Depending on the density of the leaf-level this parameter is automatically adjusted. - - ------- - -**Examples** - -The dataset provided here_ and described in the "Introduction" module produces the following image (alpha values of LEfSe - step B - are set to 0.01) - - -.. _here: http://www.huttenhower.org/webfm_send/73 - -Focusing the cladogram on the Firmicutes phylum only and playing a bit with the graphical options, we can obtain the following plot: - - - - </help> -</tool>
--- a/plot_features.py Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -#!/usr/bin/env python - -import os,sys,matplotlib,zipfile,argparse,string -matplotlib.use('Agg') -from pylab import * -from lefse import * -import random as rand - -colors = ['r','g','b','m','c'] - -def read_params(args): - parser = argparse.ArgumentParser(description='Cladoplot') - parser.add_argument('input_file_1', metavar='INPUT_FILE', type=str, help="dataset files") - parser.add_argument('input_file_2', metavar='INPUT_FILE', type=str, help="LEfSe output file") - parser.add_argument('output_file', metavar='OUTPUT_FILE', type=str, help="the file for the output (the zip file if an archive is required, the output directory otherwise)") - parser.add_argument('--width',dest="width", type=float, default=10.0 ) - parser.add_argument('--height',dest="height", type=float, default=4.0) - parser.add_argument('--top',dest="top", type=float, default=-1.0, help="set maximum y limit (-1.0 means automatic limit)") - parser.add_argument('--bot',dest="bot", type=float, default=0.0, help="set minimum y limit (default 0.0, -1.0 means automatic limit)") - parser.add_argument('--title_font_size',dest="title_font_size", type=str, default="14") - parser.add_argument('--class_font_size',dest="class_font_size", type=str, default="14") - parser.add_argument('--class_label_pos',dest="class_label_pos", type=str, choices=["up","down"], default="up") - parser.add_argument('--subcl_mean',dest="subcl_mean", type=str, choices=["y","n"], default="y") - parser.add_argument('--subcl_median',dest="subcl_median", type=str, choices=["y","n"], default="y") - parser.add_argument('--font_size',dest="font_size", type=str, default="10") - parser.add_argument('-n',dest="unused", metavar="flt", type=float, default=-1.0,help="unused") - parser.add_argument('--format', dest="format", default="png", choices=["png","pdf","svg"], type=str, help="the format for the output file") - parser.add_argument('-f', dest="f", default="diff", choices=["all","diff","one"], type=str, help="wheter to plot all features (all), only those differentially abundant according to LEfSe or only one (the one given with --feature_name) ") - parser.add_argument('--feature_name', dest="feature_name", default="", type=str, help="The name of the feature to plot (levels separated by .) ") - parser.add_argument('--feature_num', dest="feature_num", default="-1", type=int, help="The number of the feature to plot ") - parser.add_argument('--archive', dest="archive", default="none", choices=["zip","none"], type=str, help="") - parser.add_argument('--background_color',dest="back_color", type=str, choices=["k","w"], default="w", help="set the color of the background") - parser.add_argument('--dpi',dest="dpi", type=int, default=72) - - args = parser.parse_args() - - return vars(args) - -def read_data(file_data,file_feats,params): - with open(file_feats, 'r') as features: - feats_to_plot = [(f.split()[:-1],len(f.split()) == 5) for f in features.readlines()] - if not feats_to_plot: - print "No features to plot\n" - sys.exit(0) - feats,cls,class_sl,subclass_sl,class_hierarchy,params['norm_v'] = load_data(file_data, True) - if params['feature_num'] > 0: - params['feature_name'] = [line.split()[0] for line in open(params['input_file_2'])][params['feature_num']-1] - features = {} - for f in feats_to_plot: - if params['f'] == "diff" and not f[1]: continue - if params['f'] == "one" and f[0][0] != params['feature_name']: continue - features[f[0][0]] = {'dim':float(f[0][1]), 'abundances':feats[f[0][0]], 'sig':f[1], 'cls':cls, 'class_sl':class_sl, 'subclass_sl':subclass_sl, 'class_hierarchy':class_hierarchy} - if not features: - print "No features to plot\n" - sys.exit(0) - return features - -def plot(name,k_n,feat,params): - fig = plt.figure(figsize=(params['width'], params['height']),edgecolor=params['fore_color'],facecolor=params['back_color']) - ax = fig.add_subplot(111,axis_bgcolor=params['back_color']) - subplots_adjust(bottom=0.15) - - max_m = 0.0 - norm = 1.0 if float(params['norm_v']) < 0.0 else float(params['norm_v']) - for v in feat['subclass_sl'].values(): - fr,to = v[0], v[1] - median = numpy.mean(feat['abundances'][fr:to]) - if median > max_m: max_m = median - max_m /= norm - max_v = max_m*3 if max_m*3 < max(feat['abundances'])*1.1/norm else max(feat['abundances'])/norm - min_v = max(0.0,min(feat['abundances'])*0.9/norm) - - if params['top'] > 0.0: max_v = params['top'] - if params['bot'] >= 0.0: min_v = params['bot'] - - if max_v == 0.0: max_v = 0.0001 - if max_v == min_v: max_v = min_v*1.1 - - cl_sep = max(int(sum([vv[1]/norm - vv[0]/norm for vv in feat['class_sl'].values()])/150.0),1) - seps = [] - xtics = [] - x2tics = [] - last_fr = 0.0 - for i,cl in enumerate(sorted(feat['class_hierarchy'].keys())): - for j,subcl in enumerate(feat['class_hierarchy'][cl]): - fr = feat['subclass_sl'][subcl][0] - to = feat['subclass_sl'][subcl][1] - val = feat['abundances'][fr:to] - fr += cl_sep*i - to += cl_sep*i - pos = arange(fr,to) - max_x = to - col = colors[j%len(colors)] - vv = [v1/norm for v1 in val] - median = numpy.median(vv) - mean = numpy.mean(vv) - valv = [max(min(v/norm,max_v),min_v) for v in val] - ax.bar(pos,valv, align='center', color=col, edgecolor=col, linewidth=0.1 ) - if params['subcl_median'] == 'y': ax.plot([fr,to-1],[median,median],"k--",linewidth=1,color=params['fore_color']) - if params['subcl_mean'] == 'y': ax.plot([fr,to-1],[mean,mean],"-",linewidth=1,color=params['fore_color']) - nna = subcl if subcl.count("_") == 0 or not subcl.startswith(cl) else "_".join(subcl.split(cl)[1:]) - if nna == "subcl" or nna == "_subcl": nna = " " - xtics.append(((fr+(to-fr)/2),nna)) - seps.append(float(to)) - x2tics.append(((last_fr+(to-last_fr)/2),cl)) - last_fr = to + float(cl_sep) - for s in seps[:-1]: - ax.plot([s,s],[min_v,max_v],"-",linewidth=5,color=params['fore_color']) - ax.set_title(k_n, size=params['title_font_size']) - xticks([x[0] for x in xtics],[x[1] for x in xtics],rotation=-30, ha = 'left', fontsize=params['font_size'], color=params['fore_color']) - yticks(fontsize=params['font_size']) - - ylabel('Relative abundance') - ax.set_ylim((min_v,max_v)) - a,b = ax.get_xlim() - ax.set_xlim((0-float(last_fr)/float(b-a),max_x)) - ax.yaxis.grid(True) - - def get_col_attr(x): - return hasattr(x, 'set_color') and not hasattr(x, 'set_facecolor') - def get_edgecol_attr(x): - return hasattr(x, 'set_edgecolor') - - - for o in fig.findobj(get_col_attr): - o.set_color(params['fore_color']) - for o in fig.findobj(get_edgecol_attr): - if o.get_edgecolor() == params['back_color']: - o.set_edgecolor(params['fore_color']) - - for t in x2tics: - m = ax.get_ylim()[1]*0.97 if params['class_label_pos']=='up' else 0.07 - plt.text(t[0],m, "class: "+t[1], ha ="center", size=params['class_font_size'], va="top", bbox = dict(boxstyle="round", ec='k', fc='y')) - - - plt.savefig(name,format=params['format'],facecolor=params['back_color'],edgecolor=params['fore_color'],dpi=params['dpi']) - plt.close() - return name - -if __name__ == '__main__': - params = read_params(sys.argv) - params['fore_color'] = 'w' if params['back_color'] == 'k' else 'k' - features = read_data(params['input_file_1'],params['input_file_2'],params) - if params['archive'] == "zip": file = zipfile.ZipFile(params['output_file'], "w") - for k,f in features.items(): - print "Exporting ", k - if params['archive'] == "zip": - of = plot("/tmp/"+str(int(f['sig']))+"_"+"-".join(k.split("."))+"."+params['format'],k,f,params) - file.write(of, os.path.basename(of), zipfile.ZIP_DEFLATED) - else: - if params['f'] == 'one': plot(params['output_file'],k,f,params) - else: plot(params['output_file']+str(int(f['sig']))+"_"+"-".join(k.split("."))+"."+params['format'],k,f,params) - if params['archive'] == "zip": file.close()
--- a/plot_features.xml Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -<tool id="LEfSe_fea" name="F) Plot Differential Features" version="1.0"> - <description></description> -<command interpreter="python">plot_features.py $inp_data $inp_res $arch --title_font_size $graphical.title_font_size --background_color $graphical.background_color --class_label_pos $graphical.class_label_pos --class_font_size $graphical.class_font_size --top $graphical.top --bot $graphical.bot --font_size $graphical.font_size --width $graphical.width --height $graphical.height -f $feature_set --archive "zip" --format $for --dpi $dpi --subcl_mean $graphical.subcl_mean --subcl_median $graphical.subcl_median </command> - <inputs> - <page> - <param format="lefse" name="inp_data" type="data" label="The formatted datasets" help=""/> - <param format="lefse_res" name="inp_res" type="data" label="The LEfSe output" help=""/> - - <param name="feature_set" type="select" label="Do you want to plot all features or only those detected as biomarkers?"> - <option value="diff" selected="diff">Biomarkers only</option> - <option value="all">All</option> - </param> - - - <conditional name="graphical"> - <param name="graphical_choice" type="select" label="Set some graphical options to personalize the output"> - <option value="d" selected='True'>Default</option> - <option value="a">Advanced</option> - </param> - <when value="d"> - <param name="top" type="hidden" value="-1.0" /> - <param name="bot" type="hidden" value="0.0" /> - <param name="title_font_size" type="hidden" value="14" /> - <param name="class_font_size" type="hidden" value="12" /> - <param name="font_size" type="hidden" value="8" /> - <param name="width" type="hidden" value="7.0" /> - <param name="height" type="hidden" value="4.0" /> - <param name="background_color" type="hidden" value="w" /> - <param name="width" type="hidden" value="7.0" /> - <param name="height" type="hidden" value="4.0" /> - <param name="class_label_pos" type="hidden" value="up" /> - <param name="subcl_mean" type="hidden" value="y" /> - <param name="subcl_median" type="hidden" value="y" /> - </when> - - <when value="a"> - <param name="top" type="float" size="2" value="-1.0" label="Set the maximum y value (-1.0 means automatic maximum setting based on maximum class median)"/> - <param name="bot" type="float" size="2" value="0.0" label="Set the minimum y value (-1.0 means automatic minimum setting based on minimum class median)"/> - <param name="title_font_size" type="integer" size="2" value="14" label="Title font size"/> - <param name="class_font_size" type="integer" size="2" value="12" label="Class font size"/> - <param name="font_size" type="integer" size="2" value="8" label="Size of subclasses names and y values"/> - <param name="width" type="float" size="2" value="7.0" label="Width of the plot"/> - <param name="height" type="float" size="2" value="4.0" label="Height of the plot"/> - <param name="background_color" type="select" label="Background color"> - <option value="w" selected='True'>White</option> - <option value="k">Black</option> - </param> - <param name="class_label_pos" type="select" label="Class label position"> - <option value="up" selected='True'>Top</option> - <option value="down">Bottom</option> - </param> - <param name="subcl_mean" type="select" label="Whether to plot the subclass means (straight line)"> - <option value="y" selected='True'>Yes</option> - <option value="n">No</option> - </param> - <param name="subcl_median" type="select" label="Whether to plot the subclass medians (dotted line)"> - <option value="y" selected='True'>Yes</option> - <option value="n">No</option> - </param> - - </when> - - </conditional> - - <param name="for" type="select" label="Output format"> - <option value="png" selected="png">png</option> - <option value="svg">svg</option> - <option value="pdf">pdf</option> - </param> - <param name="dpi" type="select" label="Set the dpi resolution of the output"> - <option value="72">72</option> - <option value="150" selected="True">150</option> - <option value="300">300</option> - <option value="600">600</option> - <option value="1200">1200</option> - </param> - - </page> - </inputs> - <outputs> - <data format="zip" name="arch" > - </data> - </outputs> - <tests> - <test> - <param name="input1" value="13.bed" dbkey="hg18" ftype="bed"/> - <param name="maf_source" value="cached"/> - <param name="maf_identifier" value="17_WAY_MULTIZ_hg18"/> - <param name="species" value="hg18,mm8"/> - <param name="overwrite_with_gaps" value="True"/> - <output name="out_file1" file="interval_maf_to_merged_fasta_out3.fasta" /> - </test> - <test> - <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> - <param name="maf_source" value="cached"/> - <param name="maf_identifier" value="8_WAY_MULTIZ_hg17"/> - <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> - <param name="overwrite_with_gaps" value="True"/> - <output name="out_file1" file="interval_maf_to_merged_fasta_out.dat" /> - </test> - <test> - <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> - <param name="maf_source" value="user"/> - <param name="maf_file" value="5.maf"/> - <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> - <param name="overwrite_with_gaps" value="True"/> - <output name="out_file1" file="interval_maf_to_merged_fasta_user_out.dat" /> - </test> - </tests> - <help> -**What it does** - -This module plots the raw data of the features detected by LEfSe as biomarkers as abundance histograms -with class and subclass information. The features are exported as images and -the user can download all the images in a .zip archive. It is also possible to -export all the features (instead of the biomarkers only). For exporting or -analyzing few features only the "Plot One Feature" module is recommended. - ------- - -**Input format** - -The module accepts two datasets: the data formatted with the "Format Input for -LEfSe" module and the output of the LEfSe analysis. Both datasets are necessary -to run the module. - ------- - -**Output format** - -The module generates zip archives containing images in png, svg or pdf format. - ------- - -**Advanced parameter settings** - -*Graphical options* - * Set the maximum y value: -1 means automatic parameter setting that is computed as the minimum between the highest abundance value and three times the highest subclass median. - * Set the minimum y value: -1 means automatic parameter setting that is computed as the maximum between 0 and the 90% of the smallest abundance value. - * Title font size: set the font size of the title only. - * Class font size: set the font of the legend for the class names and colors. - * Size of subclasses names and y values: set the font size for the axis labels. - * Width of the plot: horizontal size (in inches) of the plot. - * Height of the plot: vertical size (in inches) of the plot. - * Background color: whether to generate plots with black or white backgrounds, adjusting properly the other colors. - * Class label position: whether to place the class labels on the top or on the bottom of the plot. - * Plot subclass means (straight line): whether to plot the subclass means with straight horizontal lines. - * Plot subclass medians (dotted line): whether to plot the subclass medians with dotted horizontal lines. - ------- - -**Examples** - -Please see the examples reported for the "Plot One Feature" module (E). This -module just produces multiple plots in the same way and compresses them into a -.zip archive. - - </help> -</tool>
--- a/plot_res.py Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -#!/usr/bin/env python - -import os,sys -import matplotlib -matplotlib.use('Agg') -from pylab import * - -from lefse import * -import argparse - -colors = ['r','g','b','m','c','y','k','w'] - -def read_params(args): - parser = argparse.ArgumentParser(description='Plot results') - parser.add_argument('input_file', metavar='INPUT_FILE', type=str, help="tab delimited input file") - parser.add_argument('output_file', metavar='OUTPUT_FILE', type=str, help="the file for the output image") - parser.add_argument('--feature_font_size', dest="feature_font_size", type=int, default=7, help="the file for the output image") - parser.add_argument('--format', dest="format", choices=["png","svg","pdf"], default='png', type=str, help="the format for the output file") - parser.add_argument('--dpi',dest="dpi", type=int, default=72) - parser.add_argument('--title',dest="title", type=str, default="") - parser.add_argument('--title_font_size',dest="title_font_size", type=str, default="12") - parser.add_argument('--class_legend_font_size',dest="class_legend_font_size", type=str, default="10") - parser.add_argument('--width',dest="width", type=float, default=7.0 ) - parser.add_argument('--height',dest="height", type=float, default=4.0, help="only for vertical histograms") - parser.add_argument('--left_space',dest="ls", type=float, default=0.2 ) - parser.add_argument('--right_space',dest="rs", type=float, default=0.1 ) - parser.add_argument('--orientation',dest="orientation", type=str, choices=["h","v"], default="h" ) - parser.add_argument('--autoscale',dest="autoscale", type=int, choices=[0,1], default=1 ) - parser.add_argument('--background_color',dest="back_color", type=str, choices=["k","w"], default="w", help="set the color of the background") - parser.add_argument('--subclades', dest="n_scl", type=int, default=1, help="number of label levels to be dislayed (starting from the leaves, -1 means all the levels, 1 is default )") - parser.add_argument('--max_feature_len', dest="max_feature_len", type=int, default=60, help="Maximum length of feature strings (def 60)") - parser.add_argument('--all_feats', dest="all_feats", type=str, default="") - args = parser.parse_args() - return vars(args) - -def read_data(input_file,output_file): - with open(input_file, 'r') as inp: - rows = [line.strip().split()[:-1] for line in inp.readlines() if len(line.strip().split())>3] - classes = list(set([v[2] for v in rows if len(v)>2])) - if len(classes) < 1: - print "No differentially abundant features found in "+input_file - os.system("touch "+output_file) - sys.exit() - data = {} - data['rows'] = rows - data['cls'] = classes - return data - -def plot_histo_hor(path,params,data,bcl): - cls2 = [] - if params['all_feats'] != "": - cls2 = sorted(params['all_feats'].split(":")) - cls = sorted(data['cls']) - if bcl: data['rows'].sort(key=lambda ab: fabs(float(ab[3]))*(cls.index(ab[2])*2-1)) - else: - mmax = max([fabs(float(a)) for a in zip(*data['rows'])[3]]) - data['rows'].sort(key=lambda ab: fabs(float(ab[3]))/mmax+(cls.index(ab[2])+1)) - pos = arange(len(data['rows'])) - head = 0.75 - tail = 0.5 - ht = head + tail - ints = max(len(pos)*0.2,1.5) - fig = plt.figure(figsize=(params['width'], ints + ht), edgecolor=params['back_color'],facecolor=params['back_color']) - ax = fig.add_subplot(111,frame_on=False,axis_bgcolor=params['back_color']) - ls, rs = params['ls'], 1.0-params['rs'] - plt.subplots_adjust(left=ls,right=rs,top=1-head*(1.0-ints/(ints+ht)), bottom=tail*(1.0-ints/(ints+ht))) - - fig.canvas.set_window_title('LDA results') - - l_align = {'horizontalalignment':'left', 'verticalalignment':'baseline'} - r_align = {'horizontalalignment':'right', 'verticalalignment':'baseline'} - added = [] - m = 1 if data['rows'][0][2] == cls[0] else -1 - for i,v in enumerate(data['rows']): - indcl = cls.index(v[2]) - lab = str(v[2]) if str(v[2]) not in added else "" - added.append(str(v[2])) - col = colors[indcl%len(colors)] - if len(cls2) > 0: - col = colors[cls2.index(v[2])%len(colors)] - vv = fabs(float(v[3])) * (m*(indcl*2-1)) if bcl else fabs(float(v[3])) - ax.barh(pos[i],vv, align='center', color=col, label=lab, height=0.8, edgecolor=params['fore_color']) - mv = max([abs(float(v[3])) for v in data['rows']]) - for i,r in enumerate(data['rows']): - indcl = cls.index(data['rows'][i][2]) - if params['n_scl'] < 0: rr = r[0] - else: rr = r[0].split(".")[-min(r[0].count("."),params['n_scl'])] - if len(rr) > params['max_feature_len']: rr = rr[:params['max_feature_len']/2-2]+" [..]"+rr[-params['max_feature_len']/2+2:] - if m*(indcl*2-1) < 0 and bcl: ax.text(mv/40.0,float(i)-0.3,rr, l_align, size=params['feature_font_size'],color=params['fore_color']) - else: ax.text(-mv/40.0,float(i)-0.3,rr, r_align, size=params['feature_font_size'],color=params['fore_color']) - ax.set_title(params['title'],size=params['title_font_size'],y=1.0+head*(1.0-ints/(ints+ht))*0.8,color=params['fore_color']) - - ax.set_yticks([]) - ax.set_xlabel("LDA SCORE (log 10)") - ax.xaxis.grid(True) - xlim = ax.get_xlim() - if params['autoscale']: - ran = arange(0.0001,round(round((abs(xlim[0])+abs(xlim[1]))/10,4)*100,0)/100) - if len(ran) > 1 and len(ran) < 100: - ax.set_xticks(arange(xlim[0],xlim[1]+0.0001,min(xlim[1]+0.0001,round(round((abs(xlim[0])+abs(xlim[1]))/10,4)*100,0)/100))) - ax.set_ylim((pos[0]-1,pos[-1]+1)) - leg = ax.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=5, borderaxespad=0., frameon=False,prop={'size':params['class_legend_font_size']}) - - def get_col_attr(x): - return hasattr(x, 'set_color') and not hasattr(x, 'set_facecolor') - for o in leg.findobj(get_col_attr): - o.set_color(params['fore_color']) - for o in ax.findobj(get_col_attr): - o.set_color(params['fore_color']) - - - plt.savefig(path,format=params['format'],facecolor=params['back_color'],edgecolor=params['fore_color'],dpi=params['dpi']) - plt.close() - -def plot_histo_ver(path,params,data): - cls = data['cls'] - mmax = max([fabs(float(a)) for a in zip(*data['rows'])[1]]) - data['rows'].sort(key=lambda ab: fabs(float(ab[3]))/mmax+(cls.index(ab[2])+1)) - pos = arange(len(data['rows'])) - if params['n_scl'] < 0: nam = [d[0] for d in data['rows']] - else: nam = [d[0].split(".")[-min(d[0].count("."),params['n_scl'])] for d in data['rows']] - fig = plt.figure(edgecolor=params['back_color'],facecolor=params['back_color'],figsize=(params['width'], params['height'])) - ax = fig.add_subplot(111,axis_bgcolor=params['back_color']) - plt.subplots_adjust(top=0.9, left=params['ls'], right=params['rs'], bottom=0.3) - fig.canvas.set_window_title('LDA results') - l_align = {'horizontalalignment':'left', 'verticalalignment':'baseline'} - r_align = {'horizontalalignment':'right', 'verticalalignment':'baseline'} - added = [] - for i,v in enumerate(data['rows']): - indcl = data['cls'].index(v[2]) - lab = str(v[2]) if str(v[2]) not in added else "" - added.append(str(v[2])) - col = colors[indcl%len(colors)] - vv = fabs(float(v[3])) - ax.bar(pos[i],vv, align='center', color=col, label=lab) - xticks(pos,nam,rotation=-20, ha = 'left',size=params['feature_font_size']) - ax.set_title(params['title'],size=params['title_font_size']) - ax.set_ylabel("LDA SCORE (log 10)") - ax.yaxis.grid(True) - a,b = ax.get_xlim() - dx = float(len(pos))/float((b-a)) - ax.set_xlim((0-dx,max(pos)+dx)) - plt.savefig(path,format=params['format'],facecolor=params['back_color'],edgecolor=params['fore_color'],dpi=params['dpi']) - plt.close() - -if __name__ == '__main__': - params = read_params(sys.argv) - params['fore_color'] = 'w' if params['back_color'] == 'k' else 'k' - data = read_data(params['input_file'],params['output_file']) - if params['orientation'] == 'v': plot_histo_ver(params['output_file'],params,data) - else: plot_histo_hor(params['output_file'],params,data,len(data['cls']) == 2) - -
--- a/plot_res.xml Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +0,0 @@ -<tool id="LEfSe_res" name="C) Plot LEfSe Results" version="1.0"> - <description></description> -<command interpreter="python">./plot_res.py $inp_data $res --title "$textm.title" --subclades $textm.subclades --title_font_size $textm.title_font_size --max_feature_len $textm.max_f_len --feature_font_size $textm.feature_font_size --class_legend_font_size $textm.class_legend_font_size --width $graphical.width --format $for --dpi $dpi --left_space $graphical.left_space_prop --right_space $graphical.right_space_prop --background_color $graphical.background_color</command> - <inputs> - <page> - <param format="lefse_res" name="inp_data" type="data" label="Select data" help=""/> - - <conditional name="textm"> - <param name="text_choice" type="select" label="Set text and label options (font size, abbreviations, ...)" help=""> - <option value="d" selected='True'>Default</option> - <option value="a">Advanced</option> - </param> - <when value="d"> - <param name="title" type="hidden" value=""/> - <param name="title_font_size" type="hidden" value="14"/> - <param name="feature_font_size" type="hidden" value="7" /> - <param name="class_legend_font_size" type="hidden" value="10" /> - <param name="subclades" type="hidden" value="1" /> - <param name="max_f_len" type="hidden" value="60" /> - </when> - <when value="a"> - <param name="title" type="text" size="10" value="" label="The title of the cladogram"/> - <param name="subclades" type="integer" size="2" value="1" label="Number of label levels to be displayed (-1 means all)"/> - <param name="max_f_len" type="integer" size="2" value="60" label="Maximum length of feature names "/> - <param name="title_font_size" type="integer" size="2" value="14" label="Title font size"/> - <param name="feature_font_size" type="integer" size="2" value="7" label="Label font size"/> - <param name="class_legend_font_size" type="integer" size="2" value="10" label="Class font size"/> - </when> - </conditional> - - <conditional name="graphical"> - <param name="text_choice" type="select" label="Set some graphical options to personalize the output" help=""> - <option value="d" selected='True'>Default</option> - <option value="a">Advanced</option> - </param> - <when value="d"> - <param name="width" type="hidden" value="7.0" /> - <param name="left_space_prop" type="hidden" value="0.2" /> - <param name="right_space_prop" type="hidden" value="0.1" /> - <param name="background_color" type="hidden" value="w"/> - </when> - <when value="a"> - <param name="width" type="float" size="2" value="7.0" label="Width of the plot"/> - <param name="left_space_prop" type="float" size="2" value="0.2" label="Fraction of the total width to be reserved for the space at the left of the plot "/> - <param name="right_space_prop" type="float" size="2" value="0.1" label="Fraction of the total width to be reserved for the space at the right of the plot "/> - <param name="background_color" type="select" label="Whether to optimize the colors for a white or black background"> - <option value="w" selected='True'>White</option> - <option value="k">Black</option> - </param> - - </when> - </conditional> - - - - <param name="for" type="select" label="Output format"> - <option value="png" selected="png">png</option> - <option value="svg">svg</option> - <option value="pdf">pdf</option> - </param> - <param name="dpi" type="select" label="Set the dpi resolution of the output"> - <option value="72">72</option> - <option value="150" selected="True">150</option> - <option value="300">300</option> - <option value="600">600</option> - <option value="1200">1200</option> - </param> - - </page> - </inputs> - <outputs> - <data format="png" name="res" > - <change_format> - <when input="for" value="svg" format="svg" /> - </change_format> - </data> - </outputs> - <tests> - <test> - <param name="input1" value="13.bed" dbkey="hg18" ftype="bed"/> - <param name="maf_source" value="cached"/> - <param name="maf_identifier" value="17_WAY_MULTIZ_hg18"/> - <param name="species" value="hg18,mm8"/> - <param name="overwrite_with_gaps" value="True"/> - <output name="out_file1" file="interval_maf_to_merged_fasta_out3.fasta" /> - </test> - <test> - <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> - <param name="maf_source" value="cached"/> - <param name="maf_identifier" value="8_WAY_MULTIZ_hg17"/> - <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> - <param name="overwrite_with_gaps" value="True"/> - <output name="out_file1" file="interval_maf_to_merged_fasta_out.dat" /> - </test> - <test> - <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> - <param name="maf_source" value="user"/> - <param name="maf_file" value="5.maf"/> - <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> - <param name="overwrite_with_gaps" value="True"/> - <output name="out_file1" file="interval_maf_to_merged_fasta_user_out.dat" /> - </test> - </tests> - <help> -**What it does** - -This module plots the biomarkers found by LEfSe ranking them accordingly to their effect size and associating them with the class with the highest median. - ------- - -**Input format** - -The module accepts the output of the LEfSe module (B) only. - ------- - -**Output format** - -The module generate images in png, svg or pdf format. The png format is recommended for exploratory runs as it can be easily visualized internally in Galaxy, whereas the vectorial svg and pdf formats are recommended for the final publication-ready image to be downloaded. - ------- - -**Parameters** - -In addition to the output format and the dpi resolution two sets of parameters can be tuned: text and label options for regulating the plot annotation and graphical options for personalizing the appearance of the plot. The default settings of the parameters should give satisfactory outputs in the great majority of the cases. - -**Advanced parameter settings** - -*Text and label options* - * The title of the cladogram: optional title for the plot (default is no title). - * Number of label levels to be displayed: when dealing with hierarchical features this option sets the level to be displayed in the labels (-1 means the last level only, 1 means the highest level, 2 means the first two levels and so on). - * Maximum length of feature names: set the length of the feature names above which the names will be abbreviated (in the middle of the string). - * Title font size: set the font size of the title only. - * Label font size: set the font size of the labels (and of the label legend) used in the cladogram to denote taxa. - * Class font size: set the font of the legend for the class names and colors. -*Graphical options* - * Width of the plot: set the inches for the width of the plot (the height is automatically set based on the number of biomarkers to be displayed). - * Fraction of the total width to be reserved for the space at the left of the plot: this option permits the user to enlarge the space on the left of the plot for the cases in which the feature labels are long and need more space. - * Fraction of the total width to be reserved for the space at the right of the plot: this option permits the user to enlarge the space on the right of the plot for the cases in which the feature labels are long and need more space. - * Whether to optimize the colors for a white or black background: this option permits the user to generate output plots with black backgrounds, adjusting properly the colors of the cladogram. - - ------- - -**Example** - -The dataset provided here_ and described in the "Introduction" module produces the following image (alpha values of LEfSe - step B - are set to 0.01) - -.. image:: ../galaxy/static/images/plot_res_ex.png -.. _here: http://www.huttenhower.org/webfm_send/73 - - - - - </help> -</tool>
--- a/plot_single_feature.xml Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -<tool id="LEfSe_sfe" name="E) Plot One Feature" version="1.0"> -<code file="format_input_selector.py"/> - <description></description> -<command interpreter="python">plot_features.py $inp_data $inp_res $arch --title_font_size $graphical.title_font_size --background_color $graphical.background_color --class_label_pos $graphical.class_label_pos --class_font_size $graphical.class_font_size --top $graphical.top --bot $graphical.bot --font_size $graphical.font_size --width $graphical.width --height $graphical.height -f one --feature_num $featd.feat --archive "none" --format $for --dpi $dpi --subcl_mean $graphical.subcl_mean --subcl_median $graphical.subcl_median </command> -<inputs> - <page> - <param format="lefse" name="inp_data" type="data" label="The formatted datasets" help=""/> - <param format="lefse_res" name="inp_res" type="data" label="The LEfSe output" help=""/> - - <param name="featd" type="data_column" data_ref="inp_res" value="1" optional="true" force_select="false" accept_default="false" /> - - <conditional name="featd" type="data_column" data_ref="inp_res" accept_default="true"> - <param name="feat_dir" type="select" data_ref="inp_res" label="Select the feature names among biomarkers or all features" help=""> - <option value="b" selected='True'>Biomarkers only</option> - <option value="a">All features</option> - </param> - - <when value="b"> - <param name="feat" label="Select the feature to plot" data_ref="inp_res" type='select' force_select="false" dynamic_options="get_row_names(inp_res,'b')" value="1" optional="true" accept_default="false" /> - </when> - <when value="a"> - <param name="feat" label="Select the feature to plot" data_ref="inp_res" type='select' force_select="false" dynamic_options="get_row_names(inp_res,'a')" value="1" optional="true" accept_default="false" /> - </when> - </conditional> - - <conditional name="graphical"> - <param name="graphical_choice" type="select" label="Set some graphical options to personalize the output"> - <option value="d" selected='True'>Default</option> - <option value="a">Advanced</option> - </param> - <when value="d"> - <param name="top" type="hidden" value="-1.0" /> - <param name="bot" type="hidden" value="0.0" /> - <param name="title_font_size" type="hidden" value="14" /> - <param name="class_font_size" type="hidden" value="12" /> - <param name="font_size" type="hidden" value="8" /> - <param name="width" type="hidden" value="7.0" /> - <param name="height" type="hidden" value="4.0" /> - <param name="background_color" type="hidden" value="w" /> - <param name="width" type="hidden" value="7.0" /> - <param name="height" type="hidden" value="4.0" /> - <param name="class_label_pos" type="hidden" value="up" /> - <param name="subcl_mean" type="hidden" value="y" /> - <param name="subcl_median" type="hidden" value="y" /> - </when> - - <when value="a"> - <param name="top" type="float" size="2" value="-1.0" label="Set the maximum y value (-1.0 means automatic maximum setting based on maximum class median)"/> - <param name="bot" type="float" size="2" value="0.0" label="Set the minimum y value (-1.0 means automatic minimum setting based on minimum class median)"/> - <param name="title_font_size" type="integer" size="2" value="14" label="Title font size"/> - <param name="class_font_size" type="integer" size="2" value="12" label="Class names font size"/> - <param name="font_size" type="integer" size="2" value="8" label="Size of subclasses names and y values"/> - <param name="width" type="float" size="2" value="7.0" label="Width of the plot"/> - <param name="height" type="float" size="2" value="4.0" label="Height of the plot"/> - <param name="background_color" type="select" label="Background color"> - <option value="w" selected='True'>White</option> - <option value="k">Black</option> - </param> - <param name="class_label_pos" type="select" label="Class label position "> - <option value="up" selected='True'>Top</option> - <option value="down">Bottom</option> - </param> - <param name="subcl_mean" type="select" label="Plot subclass means (straight line)"> - <option value="y" selected='True'>Yes</option> - <option value="n">No</option> - </param> - <param name="subcl_median" type="select" label="Plot subclass medians (dotted line)"> - <option value="y" selected='True'>Yes</option> - <option value="n">No</option> - </param> - - </when> - - </conditional> - - - <param name="for" type="select" label="Output format"> - <option value="png" selected="png">png</option> - <option value="svg">svg</option> - <option value="pdf">pdf</option> - </param> - <param name="dpi" type="select" label="Set the dpi resolution of the output"> - <option value="72">72</option> - <option value="150" selected="True">150</option> - <option value="300">300</option> - <option value="600">600</option> - <option value="1200">1200</option> - </param> - - </page> -</inputs> - <outputs> - <data format="png" name="arch" > - <change_format> - <when input="for" value="svg" format="svg" /> - </change_format> - </data> - </outputs> - <help> -**What it does** - -This module plots the raw data of a single feature as an abundance histogram with class and subclass information. You can select the feature to plot among the set of features detected by LEfSe as biomarker or among the full set of features. - ------- - -**Input format** - -The module accepts two datasets: the data formatted with the "Format Input for -LEfSe" module and the output of the LEfSe analysis. Both datasets are necessary -to run the module. - ------- - -**Output format** - -The module generates images in png, svg or pdf format. The png format is recommended for exploratory runs as it can be easily visualized internally in Galaxy, whereas the vectorial svg and pdf format are recommended for the final publication-ready image to be downloaded. - ------- - -**Advanced parameter settings** - -*Graphical options* - * Set the maximum y value: set the maximum value on the y-axis. -1 means automatic parameter setting that is computed as the minimum between the highest abundance value and three times the highest subclass median. - * Set the minimum y value: -1 means automatic parameter setting that is computed as the maximum between 0 and the 90% of the smallest abundance value. - * Title font size: set the font size of the title only. - * Class font size: set the font of the legend for the class names and colors. - * Size of subclasses names and y values: set the fond size for the axis labels. - * Width of the plot: horizontal size (in inches) of the plot. - * Height of the plot: vertical size (in inches) of the plot. - * Background color: whether to generate plots with black or white backgrounds, adjusting properly the other colors. - * Class label position: whether to place the class labels on the top or on the bottom of the plot. - * Plot subclass means (straight line): whether to plot the subclass means with straight horizontal lines. - * Plot subclass medians (dotted line): whether to plot the subclass medians with dotted horizontal lines. - ------- - -**Examples** - -Selecting the Clostridia clade from the biomarkers detected by LEfSe in the dataset provided here_ and described in the "Introduction", we obtain the following image: - -.. _here: http://www.huttenhower.org/webfm_send/73 - -Another example, taken from the analysis we detailed in `(Segata et. al 2011)`_ that compares the viral and bacterial microbiomes using metagenomic data from `(Dinsdale et. al 2008)`_: - - - -.. _(Segata et. al 2011): http://www.ncbi.nlm.nih.gov/pubmed/21702898 -.. _(Dinsdale et. al 2008): http://www.ncbi.nlm.nih.gov/pubmed/18337718 - - </help> -</tool>
--- a/qiime2lefse.py Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -#!/usr/bin/env python - -import sys - -def read_params(args): - import argparse as ap - import textwrap - - p = ap.ArgumentParser( description= "TBA" ) - - p.add_argument( '--in', metavar='INPUT_FILE', type=str, - nargs='?', default=sys.stdin, - help= "the Qiime OTU table file " - "[ stdin if not present ]" ) - p.add_argument( '--md', metavar='METADATA_FILE', type=str, - nargs='?', default=None, - help= "the Qiime OTU table file " - "[ only OTU table without metadata if not present ]" ) - p.add_argument( '--out', metavar='OUTPUT_FILE', type=str, - nargs = '?', default=sys.stdout, - help= "the output file " - "[stdout if not present]") - - p.add_argument( '-c', metavar="class attribute", - type=str, - help = "the attribute to use as class" ) - p.add_argument( '-s', metavar="subclass attribute", - type=str, - help = "the attribute to use as subclass" ) - p.add_argument( '-u', metavar="subject attribute", - type=str, - help = "the attribute to use as subject" ) - - - - return vars(p.parse_args()) - - - -def qiime2lefse( fin, fmd, fout, all_md, sel_md ): - with (fin if fin==sys.stdin else open(fin)) as inpf : - lines = [list(ll) for ll in - (zip(*[l.strip().split('\t') - for l in inpf.readlines()[1:]]) ) ] - for i,(l1,l2) in enumerate(zip( lines[0], lines[-1] )): - if not l2 == 'Consensus Lineage': - lines[-1][i] = l2+"|"+l1 - - data = dict([(l[0],l[1:]) for l in lines[1:]]) - - md = {} - if fmd: - with open(fmd) as inpf: - mdlines = [l.strip().split('\t') for l in inpf.readlines()] - - mdf = mdlines[0][1:] - - for l in mdlines: - mdd = dict(zip(mdf,l[1:])) - md[l[0]] = mdd - - selected_md = md.values()[0].keys() if md else [] - - if not all_md: - selected_md = [s for s in sel_md if s] - - out_m = [ selected_md + - list([d.replace(";","|").replace("\"","") for d in data[ 'Consensus Lineage' ]]) ] - for k,v in data.items(): - if k == 'Consensus Lineage': - continue - out_m.append( [md[k][kmd] for kmd in selected_md] + list(v) ) - - with (fout if fout == sys.stdout else open( fout, "w" )) as outf: - for l in zip(*out_m): - outf.write( "\t".join(l) + "\n" ) - -if __name__ == '__main__': - pars = read_params( sys.argv ) - - qiime2lefse( fin = pars['in'], - fmd = pars['md'], - fout = pars['out'], - all_md = not pars['c'] and not pars['s'] and not pars['u'], - sel_md = [pars['c'],pars['s'],pars['u']])
--- a/requirements.txt Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - -- R -- R libraries: splines, stats4, survival, mvtnorm, modeltools, coin, MASS -- python libraries: rpy2 (v. 2.1 or higher), numpy, matplotlib (v. 1.0 or higher), argparse -
--- a/run_lefse.py Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ -#!/usr/bin/env python - -import os,sys,math,pickle -from lefse import * - -def read_params(args): - parser = argparse.ArgumentParser(description='LEfSe 1.0') - parser.add_argument('input_file', metavar='INPUT_FILE', type=str, help="the input file") - parser.add_argument('output_file', metavar='OUTPUT_FILE', type=str, - help="the output file containing the data for the visualization module") - parser.add_argument('-o',dest="out_text_file", metavar='str', type=str, default="", - help="set the file for exporting the result (only concise textual form)") - parser.add_argument('-a',dest="anova_alpha", metavar='float', type=float, default=0.05, - help="set the alpha value for the Anova test (default 0.05)") - parser.add_argument('-w',dest="wilcoxon_alpha", metavar='float', type=float, default=0.05, - help="set the alpha value for the Wilcoxon test (default 0.05)") - parser.add_argument('-l',dest="lda_abs_th", metavar='float', type=float, default=2.0, - help="set the threshold on the absolute value of the logarithmic LDA score (default 2.0)") - parser.add_argument('--nlogs',dest="nlogs", metavar='int', type=int, default=3, - help="max log ingluence of LDA coeff") - parser.add_argument('--verbose',dest="verbose", metavar='int', choices=[0,1], type=int, default=0, - help="verbose execution (default 0)") - parser.add_argument('--wilc',dest="wilc", metavar='int', choices=[0,1], type=int, default=1, - help="wheter to perform the Wicoxon step (default 1)") - parser.add_argument('-r',dest="rank_tec", metavar='str', choices=['lda','svm'], type=str, default='lda', - help="select LDA or SVM for effect size (default LDA)") - parser.add_argument('--svm_norm',dest="svm_norm", metavar='int', choices=[0,1], type=int, default=1, - help="whether to normalize the data in [0,1] for SVM feature waiting (default 1 strongly suggested)") - parser.add_argument('-b',dest="n_boots", metavar='int', type=int, default=30, - help="set the number of bootstrap iteration for LDA (default 30)") - parser.add_argument('-e',dest="only_same_subcl", metavar='int', type=int, default=0, - help="set whether perform the wilcoxon test only among the subclasses with the same name (default 0)") - parser.add_argument('-c',dest="curv", metavar='int', type=int, default=0, - help="set whether perform the wilcoxon test ing the Curtis's approach [BETA VERSION] (default 0)") - parser.add_argument('-f',dest="f_boots", metavar='float', type=float, default=0.67, - help="set the subsampling fraction value for each bootstrap iteration (default 0.66666)") - parser.add_argument('-s',dest="strict", choices=[0,1,2], type=int, default=0, - help="set the multiple testing correction options. 0 no correction (more strict, default), 1 correction for independent comparisons, 2 correction for independent comparison") -# parser.add_argument('-m',dest="m_boots", type=int, default=5, -# help="minimum cardinality of classes in each bootstrapping iteration (default 5)") - parser.add_argument('--min_c',dest="min_c", metavar='int', type=int, default=10, - help="minimum number of samples per subclass for performing wilcoxon test (default 10)") - parser.add_argument('-t',dest="title", metavar='str', type=str, default="", - help="set the title of the analysis (default input file without extension)") - parser.add_argument('-y',dest="multiclass_strat", choices=[0,1], type=int, default=0, - help="(for multiclass tasks) set whether the test is performed in a one-against-one ( 1 - more strict!) or in a one-against-all setting ( 0 - less strict) (default 0)") - args = parser.parse_args() - - params = vars(args) - if params['title'] == "": params['title'] = params['input_file'].split("/")[-1].split('.')[0] - return params - - - -if __name__ == '__main__': - init() - params = read_params(sys.argv) - feats,cls,class_sl,subclass_sl,class_hierarchy = load_data(params['input_file']) - kord,cls_means = get_class_means(class_sl,feats) - wilcoxon_res = {} - kw_n_ok = 0 - nf = 0 - for feat_name,feat_values in feats.items(): - if params['verbose']: - print "Testing feature",str(nf),": ",feat_name, - nf += 1 - kw_ok,pv = test_kw_r(cls,feat_values,params['anova_alpha'],sorted(cls.keys())) - if not kw_ok: - if params['verbose']: print "\tkw ko" - del feats[feat_name] - wilcoxon_res[feat_name] = "-" - continue - if params['verbose']: print "\tkw ok\t", - - if not params['wilc']: continue - kw_n_ok += 1 - res_wilcoxon_rep = test_rep_wilcoxon_r(subclass_sl,class_hierarchy,feat_values,params['wilcoxon_alpha'],params['multiclass_strat'],params['strict'],feat_name,params['min_c'],params['only_same_subcl'],params['curv']) - wilcoxon_res[feat_name] = str(pv) if res_wilcoxon_rep else "-" - if not res_wilcoxon_rep: - if params['verbose']: print "wilc ko" - del feats[feat_name] - elif params['verbose']: print "wilc ok\t" - - if len(feats) > 0: - print "Number of significantly discriminative features:", len(feats), "(", kw_n_ok, ") before internal wilcoxon" - if params['lda_abs_th'] < 0.0: - lda_res,lda_res_th = dict([(k,0.0) for k,v in feats.items()]), dict([(k,v) for k,v in feats.items()]) - else: - if params['rank_tec'] == 'lda': lda_res,lda_res_th = test_lda_r(cls,feats,class_sl,params['n_boots'],params['f_boots'],params['lda_abs_th'],0.0000000001,params['nlogs']) - elif params['rank_tec'] == 'svm': lda_res,lda_res_th = test_svm(cls,feats,class_sl,params['n_boots'],params['f_boots'],params['lda_abs_th'],0.0,params['svm_norm']) - else: lda_res,lda_res_th = dict([(k,0.0) for k,v in feats.items()]), dict([(k,v) for k,v in feats.items()]) - else: - print "Number of significantly discriminative features:", len(feats), "(", kw_n_ok, ") before internal wilcoxon" - print "No features with significant differences between the two classes" - lda_res,lda_res_th = {},{} - outres = {} - outres['lda_res_th'] = lda_res_th - outres['lda_res'] = lda_res - outres['cls_means'] = cls_means - outres['cls_means_kord'] = kord - outres['wilcox_res'] = wilcoxon_res - print "Number of discriminative features with abs LDA score >",params['lda_abs_th'],":",len(lda_res_th) - save_res(outres,params["output_file"])
--- a/run_lefse.xml Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -<tool id="LEfSe_run" name="B) LDA Effect Size (LEfSe)" version="1.0"> - <description></description> -<!-- <command interpreter="python">./run_lefse.py $inp_data $output -l $lda_th -a $kw_alpha -w $w_alpha -e $w_pol -s $mtc -y $multiclass </command> --> -<command interpreter="python">run_lefse.py $inp_data $output -l $lda_th -a $kw_alpha -w $w_alpha -e $w_pol -y $multiclass -f 0.9</command> - <inputs> - <page> - <param format="lefse" name="inp_data" type="data" label="Select data" help=""/> - <param name="kw_alpha" type="float" size="2" value="0.05" label="Alpha value for the factorial Kruskal-Wallis test among classes"/> - <param name="w_alpha" type="float" size="2" value="0.05" label="Alpha value for the pairwise Wilcoxon test between subclasses"/> - <param name="lda_th" type="float" size="2" value="2.0" label="Threshold on the logarithmic LDA score for discriminative features"/> - <param name="w_pol" type="select" label="Do you want the pairwise comparisons among subclasses to be performed only among the subclasses with the same name?" help=""> - <option value="0" selected="0">No</option> - <option value="1">Yes</option> - </param> -<!-- <param name="mtc" type="select" label="Set the multiple testing correction (no correction recommended) (to check the parameter passing here)" help=""> - <option value="0" selected="0">No correction</option> - <option value="1">Correction for independent comparisons</option> - <option value="2">Correction for dependent comparisons</option> - </param> --> - <param name="multiclass" type="select" label="Set the strategy for multi-class analysis" help=""> - <option value="1" selected="True">All-against-all (more strict)</option> - <option value="0">One-against-all (less strict)</option> - </param> - </page> - </inputs> - <outputs> - <data format="lefse_res" name="output" /> - </outputs> - <tests> - <test> - <param name="input1" value="13.bed" dbkey="hg18" ftype="bed"/> - <param name="maf_source" value="cached"/> - <param name="maf_identifier" value="17_WAY_MULTIZ_hg18"/> - <param name="species" value="hg18,mm8"/> - <param name="overwrite_with_gaps" value="True"/> - <output name="out_file1" file="interval_maf_to_merged_fasta_out3.fasta" /> - </test> - <test> - <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> - <param name="maf_source" value="cached"/> - <param name="maf_identifier" value="8_WAY_MULTIZ_hg17"/> - <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> - <param name="overwrite_with_gaps" value="True"/> - <output name="out_file1" file="interval_maf_to_merged_fasta_out.dat" /> - </test> - <test> - <param name="input1" value="1.bed" dbkey="hg17" ftype="bed"/> - <param name="maf_source" value="user"/> - <param name="maf_file" value="5.maf"/> - <param name="species" value="canFam1,hg17,mm5,panTro1,rn3"/> - <param name="overwrite_with_gaps" value="True"/> - <output name="out_file1" file="interval_maf_to_merged_fasta_user_out.dat" /> - </test> - </tests> - <help> -**What it does** - -Lda Effective Size (LEfSe) is a biomarker discovery and explanation tool for high-dimensional data. It couples statistical significance with biological consistency and effect size estimation. For an overview of LEfSe please refer to the "Introduction" module or to `(Segata et. al 2011)`_. - -The scheme and the description below illustrates how the algorithm works: - -.. image:: https://bytebucket.org/biobakery/galaxy_lefse/wiki/lefse_met.png - -Input data consist of a collection of m samples (columns) each made up of n numerical features (rows, typically normalized per-sample, red representing high values and green low). These samples are labeled with a class (taking two or more possible values) that represents the main biological hypothesis under investigation; they may also have one or more subclass labels reflecting within-class groupings. - -- Step 1: the Kruskall-Wallis test analyzes all features, testing whether the values in different classes are differentially distributed. Features violating the null hypothesis are further analyzed in Step 2. - -- Step 2: the pairwise Wilcoxon test checks whether all pairwise comparisons between subclasses within different classes significantly agree with the class level trend. - -- Step 3: the resulting subset of vectors is used to build a Linear Discriminant Analysis model from which the relative difference among classes is used to rank the features. The final output thus consists of a list of features that are discriminative with respect to the classes, consistent with the subclass grouping within classes, and ranked according to the effect size with which they differentiate classes. - -**Input format** - -The input for this module must be generated with the **"Format Input for LEfSe"** tool. - ------- - -**Output format** - -The output consists of a tabular file listing all the features, the logarithm value of the highest mean among all the classes, and if the feature is discriminative, the class with the highest mean and the logarithmic LDA score. - -The output file can be conveniently visualized with the "Plot LEfSe Results" module and, if feature names define a hierarchy, with the "Plot Cladogram" module. The output can also be used for generating the histograms of the raw data of the discriminative features using the "Plot Differential Features" module. - ------- - -**Parameters** - -The input parameters are the alpha-values for the factorial Kruskal-Wallis test and for the pairwise Wilcoxon test among subclasses (steps 1 and 2 in the schematic picture above) and the non-negative threshold for the logarithmic LDA score. Moreover, the user can decide the pairwise Wilcoxon test to be applied only among subclasses in different classes with the same name (less stringent) and select the multi-class strategy to be the All-against-all (more stringent) or the One-against-all (less stringent). - -.. _here: http://www.huttenhower.org/webfm_send/73 -.. _(Segata et. al 2011): http://www.ncbi.nlm.nih.gov/pubmed/21702898 -.. _(Garrett et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/20833380 -.. _(Veiga et. al 2010): http://www.ncbi.nlm.nih.gov/pubmed/20921388 -.. _contact us: nsegata@hsph.harvard.edu - -**Example** - -For the mouse model dataset (see the "Introduction" module) it is suggested to use alpha=0.01 as the sample size is not very large. - - </help> -</tool>
--- a/test-data/lefse_input Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,340 +0,0 @@ -class truc truc truc truc truc truc truc truc truc truc truc truc truc truc truc truc truc truc truc truc rag2 rag2 rag2 rag2 rag2 rag2 rag2 rag2 rag2 rag2 -Archaea 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.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 -Archaea|Crenarchaeota 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.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 -Archaea|Crenarchaeota|Thermoprotei 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.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 -Archaea|Crenarchaeota|Thermoprotei|Desulfurococcales 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.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 -Archaea|Crenarchaeota|Thermoprotei|Sulfolobales 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.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 -Archaea|Crenarchaeota|Thermoprotei|Sulfolobales|Sulfolobaceae 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.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 -Archaea|Crenarchaeota|Thermoprotei|Thermoproteales 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.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 -Archaea|Crenarchaeota|Thermoprotei|Thermoproteales|Thermoproteaceae 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.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 -Archaea|Crenarchaeota|Thermoprotei|Thermoproteales|Thermoproteaceae|Caldivirga 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.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 -Archaea|Euryarchaeota 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.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 -Archaea|Euryarchaeota|Halobacteria 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.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 -Archaea|Euryarchaeota|Halobacteria|Halobacteriales 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.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 -Archaea|Euryarchaeota|Halobacteria|Halobacteriales|Halobacteriaceae 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.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 -Archaea|Euryarchaeota|Methanomicrobia 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.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 -Archaea|Euryarchaeota|Methanopyri 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.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 -Archaea|Euryarchaeota|Methanopyri|Methanopyrales 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.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 -Archaea|Euryarchaeota|Methanopyri|Methanopyrales|Methanopyraceae 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.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 -Archaea|Euryarchaeota|Methanopyri|Methanopyrales|Methanopyraceae|Methanopyrus 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.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 -Bacteria 99.9276759884 99.9902190923 99.9595436524 100.0 99.9808135073 99.9103827935 99.910001125 99.9718309859 100.0 99.9383730485 99.8693095186 99.9816681943 100.0 100.0 99.869303825 99.9558985667 99.9800876145 99.7702539299 99.9909033021 100.0 99.9226978452 99.9476896251 99.9853436905 99.9903241413 100.0 98.5993721323 99.9886169607 99.940284247 100.0 99.9723871324 -Bacteria|Acidobacteria 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.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 -Bacteria|Actinobacteria 0.0723240115718 0.0880281690141 0.121369042803 0.232045480914 0.134305448964 0.307258993727 0.044999437507 0.0422535211268 0.773313115997 0.0410846343468 0.130690481377 0.733272227314 1.31532172058 0.882723833544 0.653480874793 0.871003307607 0.308641975309 0.278113663845 0.172837260075 0.173535791757 2.95680742101 1.84829991282 10.3033856075 2.51572327044 14.4195034934 2.75295822265 14.2857142857 0.489669174728 13.449589096 0.0828386027889 -Bacteria|Actinobacteria|Actinobacteria 0.0723240115718 0.0880281690141 0.121369042803 0.232045480914 0.134305448964 0.307258993727 0.044999437507 0.0422535211268 0.773313115997 0.0410846343468 0.130690481377 0.733272227314 1.31532172058 0.882723833544 0.653480874793 0.871003307607 0.308641975309 0.278113663845 0.172837260075 0.173535791757 2.95680742101 1.84829991282 10.3033856075 2.51572327044 14.4195034934 2.75295822265 14.2857142857 0.489669174728 13.449589096 0.0828386027889 -Bacteria|Actinobacteria|Actinobacteria|Acidimicrobiales|Acidimicrobiaceae 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.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 -Bacteria|Actinobacteria|Actinobacteria|Acidimicrobiales|Acidimicrobiaceae|Ferrimicrobium 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.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 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Beutenbergiaceae 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.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 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Corynebacteriaceae 0.0241080038573 0.0195618153365 0.00809126952019 0.0116022740457 0.0 0.0128024580719 0.0 0.0 0.0 0.0 0.0217817468961 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.027290093696 0.0 0.0 0.0 0.0 0.0193517174649 0.0 0.0 0.0113830392715 0.0 0.0 0.0138064337981 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Corynebacteriaceae|Corynebacterium 0.0482160077146 0.0195618153365 0.0161825390404 0.0 0.0 0.0256049161439 0.0 0.0 0.0 0.0 0.0435634937922 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.054580187392 0.0 0.0 0.0 0.0 0.0387034349299 0.0 0.0 0.022766078543 0.0 0.0 0.0276128675963 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Glycomycetaceae 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.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 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Microbacteriaceae 0.0 0.0 0.0 0.0 0.0 0.0 0.0112498593768 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.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Microbacteriaceae|Curtobacterium 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.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 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Microbacteriaceae|Frigoribacterium 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.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 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Microbacteriaceae|Leucobacter 0.0 0.0 0.0 0.0 0.0 0.0 0.0224997187535 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.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Microbacteriaceae|Microbacterium 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.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 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Micrococcaceae 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.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 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Micrococcaceae|Sinomonas 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.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 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Micromonosporaceae 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.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 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Nocardioidaceae 0.0 0.0 0.0 0.0348068221371 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Actinobacteria|Actinobacteria|Actinomycetales|Nocardioidaceae|Nocardioides 0.0 0.0 0.0 0.0696136442743 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Actinobacteria|Actinobacteria|Bifidobacteriales|Bifidobacteriaceae 0.0 0.00978090766823 0.0 0.0116022740457 0.0287797390637 0.0768147484317 0.0 0.0140845070423 0.151630022745 0.0 0.0217817468961 0.348304307974 0.829482166133 0.517023959647 0.0784177049752 0.0882028665932 0.0 0.0 0.027290093696 0.0108459869848 2.84085418881 1.74367916303 10.2154477503 2.38993710692 14.1667905456 2.58391692828 13.9669891861 0.370237668697 13.2892363199 0.0138064337981 -Bacteria|Actinobacteria|Actinobacteria|Bifidobacteriales|Bifidobacteriaceae|Alloscardovia 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.014865467519 0.0 0.0113830392715 0.0 0.0801763880537 0.0 -Bacteria|Actinobacteria|Actinobacteria|Bifidobacteriales|Bifidobacteriaceae|Bifidobacterium 0.0 0.0195618153365 0.0 0.0232045480914 0.0575594781274 0.153629496863 0.0 0.0281690140845 0.303260045489 0.0 0.0435634937922 0.696608615949 1.61156535134 1.00882723834 0.15683540995 0.176405733186 0.0 0.0 0.054580187392 0.0216919739696 5.68170837762 3.45248474281 20.1817382383 4.70246734398 28.0362717407 4.53996619174 27.6266363119 0.740475337394 25.9771497294 0.0276128675963 -Bacteria|Actinobacteria|Actinobacteria|Bifidobacteriales|Bifidobacteriaceae|Gardnerella 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0113830392715 0.0 0.0 0.0 -Bacteria|Actinobacteria|Actinobacteria|Bifidobacteriales|Bifidobacteriaceae|Metascardovia 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.023699490461 0.0126103404792 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0174367916303 0.0879378572475 0.0193517174649 0.104058272633 0.458826370442 0.0455321570859 0.0 0.220485067148 0.0 -Bacteria|Actinobacteria|Actinobacteria|Bifidobacteriales|Bifidobacteriaceae|Parascardovia 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.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 -Bacteria|Actinobacteria|Actinobacteria|Bifidobacteriales|Bifidobacteriaceae|Scardovia 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.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 -Bacteria|Actinobacteria|Actinobacteria|Coriobacteriales|Coriobacteriaceae 0.0482160077146 0.0586854460094 0.113277773283 0.174034110686 0.1055257099 0.217641787223 0.0337495781303 0.0281690140845 0.621683093252 0.0410846343468 0.0871269875844 0.38496791934 0.48583955445 0.365699873897 0.575063169818 0.782800441014 0.308641975309 0.278113663845 0.118257072683 0.162689804772 0.115953232196 0.104620749782 0.0879378572475 0.106434446057 0.237847480303 0.0724462690171 0.30734206033 0.119431506031 0.140308679094 0.0552257351926 -Bacteria|Actinobacteria|Actinobacteria|Coriobacteriales|Coriobacteriaceae|Adlercreutzia 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0183318056829 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.0 -Bacteria|Actinobacteria|Actinobacteria|Coriobacteriales|Coriobacteriaceae|Asaccharobacter 0.0 0.0195618153365 0.0485476171211 0.0696136442743 0.0575594781274 0.0896172065036 0.0112498593768 0.0 0.348749052312 0.0 0.0217817468961 0.0733272227314 0.331792866453 0.239596469105 0.270105428248 0.407938257993 0.179211469534 0.205562273277 0.0636768852906 0.0976138828633 0.0193255386994 0.052310374891 0.0439689286238 0.0677310111272 0.0297309350379 0.0 0.0569151963574 0.0119431506031 0.0 0.0276128675963 -Bacteria|Actinobacteria|Actinobacteria|Coriobacteriales|Coriobacteriaceae|Collinsella 0.0 0.0 0.0404563476009 0.0116022740457 0.00959324635457 0.0128024580719 0.0 0.0 0.0758150113723 0.0 0.0 0.0366636113657 0.023699490461 0.0126103404792 0.060991548314 0.0110253583241 0.00995619275189 0.0 0.0181933957973 0.0 0.0096627693497 0.0 0.0 0.0 0.014865467519 0.0 0.0113830392715 0.0 0.0 0.0 -Bacteria|Actinobacteria|Actinobacteria|Coriobacteriales|Coriobacteriaceae|Coriobacterium 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.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 -Bacteria|Actinobacteria|Actinobacteria|Coriobacteriales|Coriobacteriaceae|Eggerthella 0.0 0.0782472613459 0.0242738085606 0.0348068221371 0.0 0.0256049161439 0.0112498593768 0.0140845070423 0.13646702047 0.0205423171734 0.0 0.0916590284143 0.0355492356914 0.0882723833544 0.0697046266446 0.13230429989 0.0398247710076 0.0241837968561 0.00909669789866 0.0433839479393 0.0 0.0 0.0146563095413 0.00967585873246 0.0594618700758 0.0482975126781 0.0569151963574 0.0 0.0 0.0138064337981 -Bacteria|Actinobacteria|Actinobacteria|Coriobacteriales|Coriobacteriaceae|Enterorhabdus 0.0241080038573 0.0 0.0161825390404 0.0116022740457 0.0575594781274 0.128024580719 0.0112498593768 0.0140845070423 0.106141015921 0.0205423171734 0.0435634937922 0.12832263978 0.0473989809219 0.0252206809584 0.0348523133223 0.209481808159 0.0995619275189 0.0725513905683 0.0181933957973 0.0 0.0579766160982 0.052310374891 0.0293126190825 0.0 0.104058272633 0.0482975126781 0.159362549801 0.0716589036188 0.100220485067 0.0 -Bacteria|Actinobacteria|Actinobacteria|Coriobacteriales|Coriobacteriaceae|Gordonibacter 0.0 0.0 0.0 0.0 0.0 0.0128024580719 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.00871307833057 0.0220507166483 0.0 0.0 0.0 0.0 0.0096627693497 0.0 0.0 0.0 0.0 0.0 0.0 0.0119431506031 0.0 0.0 -Bacteria|Actinobacteria|Actinobacteria|Coriobacteriales|Coriobacteriaceae|Olsenella 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.0118497452305 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.00967585873246 0.014865467519 0.0 0.0113830392715 0.0 0.0 0.0 -Bacteria|Actinobacteria|Actinobacteria|Coriobacteriales|Coriobacteriaceae|Paraeggerthella 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.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 -Bacteria|Actinobacteria|Actinobacteria|Coriobacteriales|Coriobacteriaceae|Slackia 0.0241080038573 0.0 0.0 0.0464090961829 0.00959324635457 0.0 0.0 0.0 0.0303260045489 0.0 0.0217817468961 0.0549954170486 0.0592487261524 0.0126103404792 0.15683540995 0.0441014332966 0.00995619275189 0.0 0.00909669789866 0.0216919739696 0.0386510773988 0.0174367916303 0.0 0.0193517174649 0.0297309350379 0.0 0.022766078543 0.0358294518094 0.0601322910403 0.0138064337981 -Bacteria|Actinobacteria|Actinobacteria|Rubrobacterales|Rubrobacteraceae 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.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 -Bacteria|Actinobacteria|Actinobacteria|Rubrobacterales|Rubrobacteraceae|Rubrobacter 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.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 -Bacteria|Aquificae 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.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 -Bacteria|Aquificae|Aquificae 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.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 -Bacteria|Aquificae|Aquificae|Aquificales 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.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 -Bacteria|Bacteroidetes 11.8129218901 3.61893583725 6.57820211991 12.5884673396 7.63622409823 23.5565228524 4.9836877039 1.70422535211 21.4404852161 0.780608052588 10.9344369418 17.6718606783 11.7549472686 11.9798234552 29.8771455955 20.9922822492 16.9255276782 5.35671100363 11.7256435914 19.273318872 50.7198763166 40.1046207498 14.6416532317 16.1490082245 49.6060651107 8.74184979474 27.6949345475 11.1907321151 45.9210262578 17.6722352616 -Bacteria|Bacteroidetes|Bacteroidia 9.90838958534 3.44287949922 6.02799579254 11.3354217427 6.55218726017 20.6759697862 4.22994712566 1.59154929577 18.4382107657 0.780608052588 10.3027662819 17.0302474794 10.4396255481 11.6519546028 29.2933693474 18.8313120176 15.2528872959 4.89721886336 10.0791412717 17.6681127983 50.0628080008 37.8378378378 14.0554008501 15.8297048863 49.2641593578 7.41366819609 26.374501992 10.4024841753 45.2395269593 14.7866905978 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales 9.90838958534 3.44287949922 6.02799579254 11.3354217427 6.55218726017 20.6759697862 4.22994712566 1.59154929577 18.4382107657 0.780608052588 10.3027662819 17.0302474794 10.4396255481 11.6519546028 29.2933693474 18.8313120176 15.2528872959 4.89721886336 10.0791412717 17.6681127983 50.0628080008 37.8378378378 14.0554008501 15.8297048863 49.2641593578 7.41366819609 26.374501992 10.4024841753 45.2395269593 14.7866905978 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Bacteroidaceae 6.36451301832 0.811815336463 2.89667448823 6.69451212438 2.05295471988 4.68569965433 1.96872539093 0.450704225352 9.82562547384 0.369761709121 7.88499237639 8.81759853346 4.18296006636 3.26607818411 18.6198483924 9.18412348401 2.79769016328 0.713422007255 2.28327117256 7.12581344902 18.5428543821 18.064516129 1.9199765499 3.89937106918 14.0627322729 0.50712388312 2.2766078543 1.82730204228 25.355782722 4.87367113075 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Bacteroidaceae|Bacteroides 6.36451301832 0.811815336463 2.89667448823 6.69451212438 2.05295471988 4.68569965433 1.96872539093 0.450704225352 9.82562547384 0.369761709121 7.88499237639 8.81759853346 4.18296006636 3.26607818411 18.6198483924 9.18412348401 2.79769016328 0.713422007255 2.28327117256 7.12581344902 18.5428543821 18.064516129 1.9199765499 3.89937106918 14.0627322729 0.50712388312 2.2766078543 1.82730204228 25.355782722 4.87367113075 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Bacteroidales_incertae_sedis 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.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 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Bacteroidales_incertae_sedis|Phocaeicola 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.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 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Marinilabiaceae 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.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 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Marinilabiaceae|Alkaliflexus 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.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 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Porphyromonadaceae 1.35004821601 0.0586854460094 0.833400760579 1.71713655877 1.21834228703 3.91755217002 0.44999437507 0.183098591549 2.16830932525 0.0205423171734 0.588107166195 3.2080659945 2.39364853656 1.86633039092 4.09514681537 4.80705622933 3.20589406611 0.677146311971 3.98435367961 4.05639913232 19.866653783 11.3862249346 6.75655869852 6.6473149492 21.4360041623 1.52137164936 14.4109277177 2.46028902424 10.483062738 2.11238437112 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Porphyromonadaceae|Barnesiella 0.554484088717 0.0195618153365 0.347924589368 1.11381830839 0.412509593246 3.39265138907 0.202497468782 0.140845070423 1.47081122062 0.0 0.413853191026 2.80476626948 1.63526484181 0.731399747793 3.50265748889 3.91400220507 2.52887295898 0.519951632406 2.68352588011 2.08242950108 11.4020678326 6.29468177855 4.22101714788 4.1122399613 13.4532481047 0.893503984545 9.2999430848 1.81535889168 5.43195029064 0.7455474251 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Porphyromonadaceae|Butyricimonas 0.0 0.0 0.0 0.0 0.0 0.0128024580719 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.428751576293 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 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Porphyromonadaceae|Odoribacter 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.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 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Porphyromonadaceae|Paludibacter 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.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 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Porphyromonadaceae|Parabacteroides 0.216972034716 0.0195618153365 0.299376972247 0.440886413737 0.383729854183 0.0896172065036 0.0674991562605 0.0140845070423 0.0 0.0 0.130690481377 0.0 0.0829482166133 0.0 0.0174261566611 0.0992282249173 0.0 0.0 0.0727735831893 0.195227765727 1.11121847521 0.366172624237 0.0146563095413 0.203193033382 0.639215103315 0.120743781695 0.443938531588 0.0477726024125 1.32291040289 0.22090294077 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Porphyromonadaceae|Petrimonas 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.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 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Porphyromonadaceae|Proteiniphilum 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.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 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Porphyromonadaceae|Tannerella 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.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 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Prevotellaceae 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.00871307833057 0.0 0.0199123855038 0.0483675937122 0.0 0.0 0.0193255386994 0.0174367916303 0.0 0.00967585873246 0.0297309350379 0.0 0.0 0.0 0.0 0.0 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Prevotellaceae|Hallella 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.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 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Prevotellaceae|Paraprevotella 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.00995619275189 0.0120918984281 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Prevotellaceae|Prevotella 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.00871307833057 0.0 0.0 0.0362756952842 0.0 0.0 0.0193255386994 0.0 0.0 0.0 0.014865467519 0.0 0.0 0.0 0.0 0.0 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Prevotellaceae|Xylanibacter 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.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 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Rikenellaceae 0.26518804243 2.36697965571 1.47261105267 0.8121591832 1.38142747506 4.78811931891 1.09123635955 0.549295774648 0.636846095527 0.267050123254 1.41581354825 2.21814848763 0.947979618438 4.52711223203 2.44837501089 2.00661521499 4.42054958184 3.15598548972 1.14618393523 3.95878524946 0.135278770896 0.836965998256 2.5941667888 1.00628930818 0.460829493088 2.87370200435 1.57085941946 4.71754448824 0.180396873121 2.78889962723 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Rikenellaceae|Alistipes 0.168756027001 2.33763693271 1.35933327939 0.742545538926 1.29508825787 4.36563820253 0.978737765778 0.464788732394 0.606520090978 0.12325390304 1.41581354825 1.8148487626 0.758383694751 4.38839848676 2.33510499259 1.46637265711 3.81322182397 2.52720677146 0.936959883562 3.4273318872 0.096627693497 0.767218831735 1.81738238312 0.435413642961 0.401367623012 1.81115672543 0.92202618099 4.06067120506 0.100220485067 1.94670716554 -Bacteria|Bacteroidetes|Bacteroidia|Bacteroidales|Rikenellaceae|Rikenella 0.0482160077146 0.0 0.00809126952019 0.0 0.00959324635457 0.0128024580719 0.0 0.0 0.0 0.0 0.0 0.0366636113657 0.0118497452305 0.0126103404792 0.0261392349917 0.0441014332966 0.0696933492632 0.0483675937122 0.00909669789866 0.0542299349241 0.0 0.0 0.0293126190825 0.0290275761974 0.0 0.26563631973 0.0113830392715 0.0119431506031 0.0200440970134 0.0138064337981 -Bacteria|Bacteroidetes|Flavobacteria 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.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 -Bacteria|Bacteroidetes|Flavobacteria|Flavobacteriales 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.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 -Bacteria|Bacteroidetes|Flavobacteria|Flavobacteriales|Cryomorphaceae 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.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 -Bacteria|Bacteroidetes|Flavobacteria|Flavobacteriales|Flavobacteriaceae 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.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 -Bacteria|Bacteroidetes|Sphingobacteria 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.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 -Bacteria|Bacteroidetes|Sphingobacteria|Sphingobacteriales 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.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 -Bacteria|Bacteroidetes|Sphingobacteria|Sphingobacteriales|Chitinophagaceae 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.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 -Bacteria|Bacteroidetes|Sphingobacteria|Sphingobacteriales|Chitinophagaceae|Sediminibacterium 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.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 -Bacteria|Bacteroidetes|Sphingobacteria|Sphingobacteriales|Cyclobacteriaceae 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.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 -Bacteria|Bacteroidetes|Sphingobacteria|Sphingobacteriales|Cytophagaceae 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.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 -Bacteria|Bacteroidetes|Sphingobacteria|Sphingobacteriales|Sphingobacteriaceae 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.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 -Bacteria|Bacteroidetes|Sphingobacteria|Sphingobacteriales|Sphingobacteriaceae|Nubsella 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.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 -Bacteria|Chlamydiae 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.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 -Bacteria|Chlamydiae|Chlamydiae 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.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 -Bacteria|Chlamydiae|Chlamydiae|Chlamydiales 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.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 -Bacteria|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 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 -Bacteria|Chloroflexi|Thermomicrobia 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.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 -Bacteria|Chloroflexi|Thermomicrobia|Sphaerobacterales|Sphaerobacteraceae 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.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 -Bacteria|Chloroflexi|Thermomicrobia|Sphaerobacterales|Sphaerobacteraceae|Sphaerobacter 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.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 -Bacteria|Cyanobacteria 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.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 -Bacteria|Cyanobacteria|Cyanobacteria 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.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 -Bacteria|Deferribacteres 3.08582449373 2.69953051643 1.5616150174 0.440886413737 0.997697620875 0.98578927154 0.686241421982 3.0985915493 0.833965125095 2.28019720624 1.677194511 1.59486709441 2.0618556701 2.42118537201 1.42023176788 5.31422271224 2.19036240542 3.276904474 1.3917947785 1.431670282 2.16446033433 1.36006974717 4.29429869559 5.89259796807 0.178385610227 1.66626418739 0.956175298805 1.38540546996 1.66366005211 1.39444981361 -Bacteria|Deferribacteres|Deferribacteres 3.08582449373 2.69953051643 1.5616150174 0.440886413737 0.997697620875 0.98578927154 0.686241421982 3.0985915493 0.833965125095 2.28019720624 1.677194511 1.59486709441 2.0618556701 2.42118537201 1.42023176788 5.31422271224 2.19036240542 3.276904474 1.3917947785 1.431670282 2.16446033433 1.36006974717 4.29429869559 5.89259796807 0.178385610227 1.66626418739 0.956175298805 1.38540546996 1.66366005211 1.39444981361 -Bacteria|Deferribacteres|Deferribacteres|Deferribacterales 3.08582449373 2.69953051643 1.5616150174 0.440886413737 0.997697620875 0.98578927154 0.686241421982 3.0985915493 0.833965125095 2.28019720624 1.677194511 1.59486709441 2.0618556701 2.42118537201 1.42023176788 5.31422271224 2.19036240542 3.276904474 1.3917947785 1.431670282 2.16446033433 1.36006974717 4.29429869559 5.89259796807 0.178385610227 1.66626418739 0.956175298805 1.38540546996 1.66366005211 1.39444981361 -Bacteria|Deferribacteres|Deferribacteres|Deferribacterales|Deferribacteraceae 3.08582449373 2.69953051643 1.5616150174 0.440886413737 0.997697620875 0.98578927154 0.686241421982 3.0985915493 0.833965125095 2.28019720624 1.677194511 1.59486709441 2.0618556701 2.42118537201 1.42023176788 5.31422271224 2.19036240542 3.276904474 1.3917947785 1.431670282 2.16446033433 1.36006974717 4.29429869559 5.89259796807 0.178385610227 1.66626418739 0.956175298805 1.38540546996 1.66366005211 1.39444981361 -Bacteria|Deferribacteres|Deferribacteres|Deferribacterales|Deferribacteraceae|Geovibrio 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.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 -Bacteria|Deferribacteres|Deferribacteres|Deferribacterales|Deferribacteraceae|Mucispirillum 3.08582449373 2.69953051643 1.55352374788 0.440886413737 0.98810437452 0.972986813468 0.686241421982 3.0985915493 0.833965125095 2.28019720624 1.6554127641 1.57653528873 2.02630643441 2.35813366961 1.41151868955 5.27012127894 2.19036240542 3.26481257557 1.3917947785 1.40997830803 2.16446033433 1.36006974717 4.27964238605 5.86357039187 0.178385610227 1.66626418739 0.933409220262 1.38540546996 1.66366005211 1.39444981361 -Bacteria|Deinococcus-Thermus 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.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 -Bacteria|Deinococcus-Thermus|Deinococci 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.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 -Bacteria|Deinococcus-Thermus|Deinococci|Thermales 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.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 -Bacteria|Deinococcus-Thermus|Deinococci|Thermales|Thermaceae 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.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 -Bacteria|Deinococcus-Thermus|Deinococci|Thermales|Thermaceae|Marinithermus 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.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 -Bacteria|Firmicutes 74.7107039537 88.8791079812 85.2738894733 81.726418378 87.3177283193 66.4703623096 88.6938913264 83.6901408451 69.1281273692 90.2629416598 81.0280984535 75.7470210816 77.1299917052 75.4854981084 60.4339113009 64.1786108049 75.159299084 85.1027811366 81.7338306195 72.3752711497 31.3943376172 48.491717524 65.7335482925 65.0217706821 31.0688271146 51.1229171698 46.2379055208 79.6608145229 28.7231910202 73.7953886511 -Bacteria|Firmicutes|Bacilli 2.91706846673 3.40375586854 1.18132534995 29.8062420234 6.55218726017 3.2390218922 0.652491843852 5.04225352113 33.1159969674 1.45850451931 4.83554781093 7.66269477544 7.10984713829 4.99369482976 5.41953472162 14.0904079383 1.56312226205 3.5792019347 2.7199126717 13.8177874187 1.90356556189 4.91717523976 6.22893155503 9.83067247218 20.4102869035 2.80125573533 4.88332384747 49.7551654126 4.65023050712 2.27806157669 -Bacteria|Firmicutes|Bacilli|Bacillales 0.0482160077146 0.0782472613459 0.0404563476009 0.278454577097 0.0 0.0768147484317 0.0674991562605 0.281690140845 0.181956027293 0.0205423171734 0.435634937922 1.88817598533 1.63526484181 1.36191677175 0.496645464843 0.0220507166483 0.0 0.0362756952842 1.02792686255 0.29284164859 0.338196927239 2.85963382738 1.55356881137 0.832123850992 0.341905752936 0.50712388312 1.18383608423 0.286635614475 2.3852475446 0.800773160293 -Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae 0.0 0.0 0.0 0.0116022740457 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.0362756952842 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|Bacillus 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|Cerasibacillus 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|Filobacillus 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|Jeotgalibacillus 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|Lysinibacillus 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.0362756952842 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|Natronobacillus 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|Salirhabdus 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|Vulcanibacillus 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Bacillales_incertae_sedis 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Bacillales_incertae_sedis|Rummeliibacillus 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Paenibacillaceae 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Paenibacillaceae|Paenibacillus 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Paenibacillaceae|Saccharibacillus 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Planococcaceae 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0482975126781 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Bacilli|Bacillales|Planococcaceae|Filibacter 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Planococcaceae|Kurthia 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Planococcaceae|Sporosarcina 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Staphylococcaceae 0.0482160077146 0.0782472613459 0.0404563476009 0.266852303051 0.0 0.0768147484317 0.0674991562605 0.281690140845 0.181956027293 0.0205423171734 0.413853191026 1.8148487626 1.62341509658 1.2736443884 0.479219308182 0.0110253583241 0.0 0.0 1.01883016465 0.27114967462 0.338196927239 2.63295553618 1.46563095413 0.735365263667 0.267578415341 0.362231345086 1.08138873079 0.286635614475 2.2449388655 0.7455474251 -Bacteria|Firmicutes|Bacilli|Bacillales|Staphylococcaceae|Jeotgalicoccus 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Staphylococcaceae|Nosocomiicoccus 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Staphylococcaceae|Staphylococcus 0.0482160077146 0.0782472613459 0.0323650780808 0.255250029006 0.0 0.0768147484317 0.0674991562605 0.267605633803 0.181956027293 0.0205423171734 0.413853191026 1.72318973419 1.58786586088 1.22320302648 0.479219308182 0.0110253583241 0.0 0.0 1.00063676885 0.27114967462 0.338196927239 2.51089799477 1.39234940642 0.696661828737 0.252712947822 0.362231345086 1.05862265225 0.286635614475 2.12467428342 0.7455474251 -Bacteria|Firmicutes|Bacilli|Bacillales|Thermoactinomycetaceae 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Thermoactinomycetaceae|Desmospora 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Thermoactinomycetaceae|Planifilum 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Thermoactinomycetaceae|Seinonella 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.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 -Bacteria|Firmicutes|Bacilli|Bacillales|Thermoactinomycetaceae|Thermoflavimicrobium 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales 2.38669238187 3.29616588419 1.14086900235 29.1101055807 6.3986953185 3.16220714377 0.573742828215 4.56338028169 32.5549658832 1.43796220214 4.24744064474 5.62786434464 5.35608484418 3.40479192938 4.90546310011 13.9581036384 1.52329749104 3.51874244256 1.66469571546 13.1778741866 1.5557058653 1.9529206626 4.52879964825 8.8824383164 19.9048610079 1.83530548177 3.67672168469 48.990803774 2.02445379836 1.33922407842 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Aerococcaceae 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Aerococcaceae|Abiotrophia 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Aerococcaceae|Dolosicoccus 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Aerococcaceae|Facklamia 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Aerococcaceae|Globicatella 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Aerococcaceae|Ignavigranum 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Carnobacteriaceae 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.0 0.0 0.0108459869848 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Carnobacteriaceae|Atopococcus 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Carnobacteriaceae|Atopostipes 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Carnobacteriaceae|Carnobacterium 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Carnobacteriaceae|Desemzia 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Carnobacteriaceae|Dolosigranulum 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Carnobacteriaceae|Isobaculum 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Carnobacteriaceae|Lacticigenium 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Carnobacteriaceae|Trichococcus 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Enterococcaceae 0.0 0.0 0.0 0.0 0.0 0.422481116374 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.0096627693497 0.0 0.0 0.0 0.014865467519 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Enterococcaceae|Atopobacter 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Enterococcaceae|Bavariicoccus 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Enterococcaceae|Catellicoccus 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Enterococcaceae|Enterococcus 0.0 0.0 0.0 0.0 0.0 0.268851619511 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.0 0.014865467519 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Enterococcaceae|Melissococcus 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Enterococcaceae|Pilibacter 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Enterococcaceae|Tetragenococcus 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Enterococcaceae|Vagococcus 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Lactobacillaceae 0.53037608486 1.72143974961 0.695849178736 15.0365471632 2.47505755948 1.17782614262 0.281246484419 2.28169014085 17.2100075815 0.965488907149 2.04748420823 2.43813015582 2.97428605285 1.39974779319 2.7359065958 7.66262403528 0.677021107129 2.10399032648 0.88237969617 6.99566160521 0.850323702773 0.959023539669 1.8466950022 5.06047411708 8.20573807046 0.941801497223 1.50256118384 28.2216648752 0.681499298457 0.579870219522 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Lactobacillaceae|Lactobacillus 0.409836065574 1.50625978091 0.639210292095 13.3890242488 1.88986953185 1.03699910383 0.258746765665 2.02816901408 14.8445792267 0.944946589975 1.80788499238 1.99816681943 2.82023936485 1.19798234552 2.52679271587 6.92392502756 0.517722023098 1.95888754534 0.74592922769 6.13882863341 0.773021547976 0.854402789887 1.40700571596 4.51862602806 6.42188196819 0.796908959189 1.22936824132 25.8330347546 0.64141110443 0.455612315339 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Lactobacillaceae|Paralactobacillus 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Lactobacillaceae|Pediococcus 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Leuconostocaceae 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Leuconostocaceae|Leuconostoc 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Streptococcaceae 0.79556412729 0.156494522692 0.113277773283 0.56851142824 0.498848810437 0.243246703367 0.146248171898 0.0422535211268 0.212282031842 0.0616269515201 0.39207144413 0.0733272227314 0.201445668918 0.15132408575 0.261392349917 0.154355016538 0.089605734767 0.0483675937122 0.118257072683 0.195227765727 0.0386510773988 0.0348735832607 0.146563095413 0.135462022254 0.0743273375948 0.0 0.0796812749004 0.107488355428 0.100220485067 0.110451470385 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Streptococcaceae|Lactococcus 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.0118497452305 0.0 0.0 0.0 0.0 0.0 0.0 0.0108459869848 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Streptococcaceae|Lactovum 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.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 -Bacteria|Firmicutes|Bacilli|Lactobacillales|Streptococcaceae|Streptococcus 0.79556412729 0.146713615023 0.113277773283 0.56851142824 0.498848810437 0.230444245295 0.146248171898 0.0422535211268 0.212282031842 0.0616269515201 0.39207144413 0.0733272227314 0.189595923688 0.15132408575 0.261392349917 0.154355016538 0.089605734767 0.0483675937122 0.118257072683 0.184381778742 0.0386510773988 0.0348735832607 0.146563095413 0.135462022254 0.0743273375948 0.0 0.0796812749004 0.107488355428 0.100220485067 0.110451470385 -Bacteria|Firmicutes|Clostridia 69.5515911283 80.5653364632 80.0954769803 49.5997215454 78.9716039908 59.7490718218 86.0164247947 77.323943662 33.6012130402 84.5110928513 74.2975386626 66.2144821265 67.2354544377 66.973518285 53.7074148297 46.7144432194 66.3381123059 75.4776299879 72.9919039389 53.8937093275 26.1764421683 40.470793374 54.9025355416 50.7498790518 9.32064813438 44.1197778314 37.1770062607 27.2303833751 22.2489476849 67.9690735883 -Bacteria|Firmicutes|Clostridia|Clostridiales 69.3346190935 80.3697183099 79.9983817461 49.5649147233 78.7893323101 59.6210472411 85.9151760603 77.2957746479 33.5860500379 84.3467543139 74.2539751688 66.1594867094 67.1525062211 66.9230769231 53.6812755947 46.6372657111 66.1389884508 75.3446191052 72.9191303557 53.7635574837 26.1088027829 40.3661726242 54.7999413748 50.2467343977 9.30578266686 43.8299927554 37.0973249858 27.0870655679 21.9683303267 67.6791384785 -Bacteria|Firmicutes|Clostridia|Clostridiales|Clostridiaceae 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.0 0.0 0.0 0.0096627693497 0.0 0.0 0.0 0.0 0.0 0.0113830392715 0.0 0.0 0.0 -Bacteria|Firmicutes|Clostridia|Clostridiales|Eubacteriaceae 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Eubacteriaceae|Eubacterium 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Eubacteriaceae|Garciella 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Eubacteriaceae|Pseudoramibacter 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Gracilibacteraceae 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Gracilibacteraceae|Gracilibacter 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Gracilibacteraceae|Lutispora 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Heliobacteriaceae 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Heliobacteriaceae|Heliobacillus 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae 17.5506268081 16.539514867 13.1806780484 11.5558649495 13.689562548 13.5834080143 19.1585105186 44.2535211268 8.00606520091 21.322925226 32.5854933566 27.2593950504 16.9806849153 29.0290037831 25.1895094537 25.170893054 21.9633612107 22.4425634825 26.5168743746 18.3188720174 11.7885786066 11.2292938099 15.7701890664 13.8945331398 5.1731826966 18.1840135233 12.1001707456 7.73916159083 12.7280016035 15.6426894933 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Acetitomaculum 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Anaerosporobacter 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Anaerostipes 0.0 0.0 0.00809126952019 0.0 0.0 0.0128024580719 0.112498593768 0.0 0.0 0.0 0.0 0.0183318056829 0.023699490461 0.0126103404792 0.0 0.0882028665932 0.109518120271 0.0604594921403 0.00909669789866 0.0325379609544 0.0386510773988 0.0174367916303 0.0732815477063 0.0 0.0 0.0724462690171 0.0455321570859 0.0119431506031 0.0200440970134 0.0138064337981 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Butyrivibrio 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Catonella 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Coprococcus 0.0241080038573 0.0 0.00809126952019 0.0 0.0 0.0128024580719 0.0112498593768 0.0 0.0 0.0 0.0 0.0183318056829 0.0 0.0126103404792 0.00871307833057 0.0 0.0 0.0241837968561 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Dorea 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.0 0.0 0.0108459869848 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Hespellia 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Johnsonella 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Lachnobacterium 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Marvinbryantia 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.00995619275189 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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Moryella 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Oribacterium 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Parasporobacterium 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Pseudobutyrivibrio 0.0 0.00978090766823 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0138064337981 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Robinsoniella 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Roseburia 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.0 0.0 0.0 0.589428930331 0.418482999128 0.0439689286238 0.0193517174649 0.178385610227 0.0 0.125213431986 0.0 0.360793746242 0.0828386027889 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Shuttleworthia 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Sporobacterium 0.0 0.0 0.0 0.0 0.00959324635457 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.00909669789866 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0138064337981 -Bacteria|Firmicutes|Clostridia|Clostridiales|Lachnospiraceae|Syntrophococcus 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Peptococcaceae 0.0 0.0 0.0 0.0 0.0 0.0128024580719 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.00995619275189 0.0 0.00909669789866 0.0 0.0 0.0 0.0732815477063 0.0387034349299 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Clostridia|Clostridiales|Peptostreptococcaceae 0.0 0.0 0.0 0.0 0.0 0.0128024580719 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.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Clostridia|Clostridiales|Peptostreptococcaceae|Filifactor 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Peptostreptococcaceae|Peptostreptococcus 0.0 0.0 0.0 0.0 0.0 0.0128024580719 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.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Clostridia|Clostridiales|Peptostreptococcaceae|Tepidibacter 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae 6.65380906461 7.65845070423 5.67197993365 4.24643230073 7.27168073676 6.09397004225 9.66362920463 9.35211267606 4.2153146323 8.09367296631 10.9562186887 12.3556370302 17.0280838962 13.4300126103 11.4141326131 6.86879823594 7.93508562326 13.1318016929 6.54962248704 7.79826464208 4.6284665185 4.37663469922 9.39469441595 7.04402515723 1.47168128438 5.02294131852 6.05577689243 4.08455750627 3.38745239527 6.55805605412 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Acetanaerobacterium 0.0 0.0 0.00809126952019 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Acetivibrio 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Anaerofilum 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Anaerotruncus 0.192864030858 0.185837245696 0.145642851363 0.0348068221371 0.0959324635457 0.0128024580719 0.0674991562605 0.0845070422535 0.0303260045489 0.0616269515201 0.108908734481 0.0916590284143 0.154046687996 0.113493064313 0.0435653916529 0.0661521499449 0.0298685782557 0.0241837968561 0.0636768852906 0.0542299349241 0.0773021547976 0.0348735832607 0.058625238165 0.0967585873246 0.0445964025569 0.024148756339 0.0910643141719 0.0238863012063 0.0 0.0414193013944 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Butyricicoccus 0.26518804243 0.33255086072 0.153734120884 0.0696136442743 0.143898695318 0.102419664576 0.427494656317 0.859154929577 0.106141015921 0.636811832375 0.370289697234 0.109990834097 0.343642611684 0.0 0.357236211554 0.13230429989 0.169255276782 0.157194679565 0.281997634859 0.0976138828633 0.222243695043 0.191804707934 0.381064048073 0.416061925496 0.0445964025569 0.0482975126781 0.159362549801 0.0836020542219 0.0801763880537 0.138064337981 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Ethanoligenens 0.0 0.0 0.0 0.0 0.00959324635457 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Faecalibacterium 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.0261392349917 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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Hydrogenoanaerobacterium 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Lactonifactor 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Oscillibacter 0.964320154291 0.635758998435 0.890039647221 1.29945469312 1.17037605526 1.4594802202 0.618742265722 0.774647887324 0.576194086429 0.636811832375 0.588107166195 0.733272227314 0.959829363669 1.03404791929 0.853881676396 1.10253583241 2.27996814018 3.42200725514 0.673155644501 0.911062906725 0.502464006184 0.435919790759 0.908691191558 0.70633768747 0.0743273375948 0.869355228206 1.10415480933 0.394123969903 0.380837843255 1.13212757145 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Papillibacter 0.0 0.00978090766823 0.0 0.0116022740457 0.0 0.0256049161439 0.0 0.0281690140845 0.0 0.0 0.0435634937922 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.00909669789866 0.0 0.0386510773988 0.0348735832607 0.102594166789 0.0677310111272 0.014865467519 0.024148756339 0.0569151963574 0.0119431506031 0.0200440970134 0.0414193013944 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Ruminococcus 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.0126103404792 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.0138064337981 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Sporobacter 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Ruminococcaceae|Subdoligranulum 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.00871307833057 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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Syntrophomonadaceae 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Syntrophomonadaceae|Syntrophomonas 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Syntrophomonadaceae|Thermosyntropha 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Veillonellaceae 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.024148756339 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Clostridia|Clostridiales|Veillonellaceae|Anaerovibrio 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.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 -Bacteria|Firmicutes|Clostridia|Clostridiales|Veillonellaceae|Dialister 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.024148756339 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Clostridia|Clostridiales|Veillonellaceae|Propionispira 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.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 -Bacteria|Firmicutes|Clostridia|Halanaerobiales 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.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 -Bacteria|Firmicutes|Clostridia|Halanaerobiales|Halanaerobiaceae 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.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 -Bacteria|Firmicutes|Clostridia|Thermoanaerobacterales 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.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 -Bacteria|Firmicutes|Clostridia|Thermoanaerobacterales|Thermoanaerobacteraceae 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.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 -Bacteria|Firmicutes|Clostridia|Thermoanaerobacterales|Thermoanaerobacteraceae|Ammonifex 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.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 -Bacteria|Firmicutes|Clostridia|Thermoanaerobacterales|Thermoanaerobacteraceae|Caldanaerobius 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.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 -Bacteria|Firmicutes|Clostridia|Thermoanaerobacterales|Thermoanaerobacteraceae|Mahella 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.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 -Bacteria|Firmicutes|Clostridia|Thermoanaerobacterales|Thermoanaerobacteraceae|Thermoanaerobacterium 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.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 -Bacteria|Firmicutes|Erysipelotrichi 0.0 0.0 0.0242738085606 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0261392349917 0.0 0.0 0.0 0.0 0.0 0.0579766160982 0.0 0.0 0.0 0.014865467519 0.0 0.0 0.0477726024125 0.0 0.0 -Bacteria|Firmicutes|Erysipelotrichi|Erysipelotrichales 0.0 0.0 0.0242738085606 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0261392349917 0.0 0.0 0.0 0.0 0.0 0.0579766160982 0.0 0.0 0.0 0.014865467519 0.0 0.0 0.0477726024125 0.0 0.0 -Bacteria|Firmicutes|Erysipelotrichi|Erysipelotrichales|Erysipelotrichaceae 0.0 0.0 0.0242738085606 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0261392349917 0.0 0.0 0.0 0.0 0.0 0.0579766160982 0.0 0.0 0.0 0.014865467519 0.0 0.0 0.0477726024125 0.0 0.0 -Bacteria|Firmicutes|Erysipelotrichi|Erysipelotrichales|Erysipelotrichaceae|Allobaculum 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.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 -Bacteria|Firmicutes|Erysipelotrichi|Erysipelotrichales|Erysipelotrichaceae|Coprobacillus 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.0 0.0 0.0 0.0289883080491 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Firmicutes|Erysipelotrichi|Erysipelotrichales|Erysipelotrichaceae|Holdemania 0.0 0.0 0.0161825390404 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.00871307833057 0.0 0.0 0.0 0.0 0.0 0.0193255386994 0.0 0.0 0.0 0.014865467519 0.0 0.0 0.0358294518094 0.0 0.0 -Bacteria|Firmicutes|Erysipelotrichi|Erysipelotrichales|Erysipelotrichaceae|Sharpea 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.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 -Bacteria|Firmicutes|Erysipelotrichi|Erysipelotrichales|Erysipelotrichaceae|Turicibacter 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.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 -Bacteria|Fusobacteria 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.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 -Bacteria|Fusobacteria|Fusobacteria 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.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 -Bacteria|Fusobacteria|Fusobacteria|Fusobacteriales 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.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 -Bacteria|Fusobacteria|Fusobacteria|Fusobacteriales|Leptotrichiaceae 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.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 -Bacteria|Proteobacteria 5.85824493732 3.59937402191 5.51015454325 3.97957999768 2.50383729854 6.45243886826 4.60119248509 9.3661971831 6.26231993935 4.58093672966 4.63951208887 3.22639780018 6.00782083185 8.39848675914 6.68293107955 7.0341786108 3.84309040223 3.04715840387 4.0844173565 4.79392624729 6.3967533095 4.35919790759 3.07782500366 7.66328011611 2.97309350379 1.49722289302 7.28514513375 5.86408694614 4.75045099218 4.445671683 -Bacteria|Proteobacteria|Alphaproteobacteria 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.0 0.0 0.0 0.0 0.0 0.0 0.00967585873246 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Alphaproteobacteria|Rhizobiales 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.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 -Bacteria|Proteobacteria|Alphaproteobacteria|Rhodobacterales 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.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 -Bacteria|Proteobacteria|Alphaproteobacteria|Rhodobacterales|Rhodobacteraceae 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.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 -Bacteria|Proteobacteria|Alphaproteobacteria|Rhodobacterales|Rhodobacteraceae|Rhodobacter 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.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 -Bacteria|Proteobacteria|Alphaproteobacteria|Rhodospirillales 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.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 -Bacteria|Proteobacteria|Alphaproteobacteria|Rhodospirillales|Acetobacteraceae 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.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 -Bacteria|Proteobacteria|Alphaproteobacteria|Rhodospirillales|Acetobacteraceae|Acidisphaera 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.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 -Bacteria|Proteobacteria|Alphaproteobacteria|Rhodospirillales|Acetobacteraceae|Tanticharoenia 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.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 -Bacteria|Proteobacteria|Alphaproteobacteria|Sphingomonadales 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.0 0.0 0.0 0.0 0.0 0.0 0.00967585873246 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Alphaproteobacteria|Sphingomonadales|Sphingomonadaceae 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.0 0.0 0.0 0.0 0.0 0.0 0.00967585873246 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Alphaproteobacteria|Sphingomonadales|Sphingomonadaceae|Sphingomonas 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.0 0.0 0.0 0.0 0.0 0.0 0.00967585873246 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Betaproteobacteria 0.289296046287 0.0293427230047 0.218464277045 1.43868198167 0.393323100537 0.371271284087 0.0674991562605 0.056338028169 2.6686884003 0.0 0.370289697234 1.06324472961 0.936129873208 1.62673392182 2.76204583079 0.804851157663 0.0995619275189 0.0362756952842 0.427544801237 0.119305856833 0.975939704319 0.50566695728 0.498314524403 0.793420416062 1.51627768693 0.0482975126781 1.47979510529 1.06294040368 0.681499298457 0.0552257351926 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales 0.241080038573 0.0293427230047 0.218464277045 1.43868198167 0.393323100537 0.371271284087 0.0674991562605 0.056338028169 2.62319939348 0.0 0.370289697234 1.06324472961 0.936129873208 1.62673392182 2.76204583079 0.804851157663 0.0995619275189 0.0362756952842 0.427544801237 0.119305856833 0.975939704319 0.50566695728 0.498314524403 0.793420416062 1.51627768693 0.0482975126781 1.47979510529 1.06294040368 0.681499298457 0.0552257351926 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales|Alcaligenaceae 0.216972034716 0.0293427230047 0.194190468485 1.25304559694 0.316577129701 0.320061451799 0.0674991562605 0.0281690140845 2.38059135709 0.0 0.370289697234 0.824931255729 0.829482166133 1.33669609079 2.61392349917 0.694597574421 0.0995619275189 0.0362756952842 0.391158009642 0.108459869848 0.830998164074 0.418482999128 0.46900190532 0.686985970005 1.35275754422 0.0482975126781 1.29766647695 0.95545204825 0.64141110443 0.0414193013944 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales|Alcaligenaceae|Parasutterella 0.120540019286 0.0293427230047 0.186099198964 1.05580693816 0.249424405219 0.243246703367 0.0562492968838 0.0140845070423 1.83472327521 0.0 0.217817468961 0.586617781852 0.73468420429 1.03404791929 2.12599111266 0.474090407938 0.0995619275189 0.0120918984281 0.291094332757 0.0759219088937 0.657068315779 0.278988666085 0.395720357614 0.522496371553 1.08517912888 0.0482975126781 1.11553784861 0.740475337394 0.501102425336 0.0414193013944 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales|Burkholderiaceae 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.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 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales|Burkholderiales_incertae_sedis 0.0241080038573 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales|Burkholderiales_incertae_sedis|Aquabacterium 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.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 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales|Burkholderiales_incertae_sedis|Tepidimonas 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.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 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales|Comamonadaceae 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.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 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales|Comamonadaceae|Verminephrobacter 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.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 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales|Oxalobacteraceae 0.0 0.0 0.0 0.0 0.0 0.0384073742158 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.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales|Oxalobacteraceae|Janthinobacterium 0.0 0.0 0.0 0.0 0.0 0.0384073742158 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.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales|Oxalobacteraceae|Massilia 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.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 -Bacteria|Proteobacteria|Betaproteobacteria|Burkholderiales|Oxalobacteraceae|Oxalobacter 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.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 -Bacteria|Proteobacteria|Deltaproteobacteria 0.79556412729 0.342331768388 0.639210292095 0.266852303051 0.642747505756 0.665727819741 0.663741703229 0.507042253521 0.697498104625 0.328677074774 0.370289697234 0.568285976169 0.545088280602 0.819672131148 0.575063169818 0.738699007718 1.11509358821 0.967351874244 0.536705176021 0.715835140998 1.02425355107 0.48823016565 0.498314524403 0.696661828737 0.312174817898 0.458826370442 0.933409220262 0.310521915681 0.541190619363 0.800773160293 -Bacteria|Proteobacteria|Deltaproteobacteria|Desulfobacterales 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.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 -Bacteria|Proteobacteria|Deltaproteobacteria|Desulfobacterales|Desulfobacteraceae 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.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 -Bacteria|Proteobacteria|Deltaproteobacteria|Desulfobacterales|Desulfobacteraceae|Desulfocella 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.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 -Bacteria|Proteobacteria|Deltaproteobacteria|Desulfobacterales|Desulfobulbaceae 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.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 -Bacteria|Proteobacteria|Deltaproteobacteria|Desulfovibrionales 0.602700096432 0.312989045383 0.598753944494 0.232045480914 0.566001534919 0.601715529382 0.607492406345 0.352112676056 0.576194086429 0.267050123254 0.348507950338 0.494958753437 0.509539044911 0.693568726356 0.531497778165 0.672546857773 0.94583831143 0.882708585248 0.47302829073 0.596529284165 0.93728862692 0.435919790759 0.46900190532 0.599903241413 0.267578415341 0.362231345086 0.819578827547 0.286635614475 0.440970134295 0.676515256109 -Bacteria|Proteobacteria|Deltaproteobacteria|Desulfovibrionales|Desulfohalobiaceae 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.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 -Bacteria|Proteobacteria|Deltaproteobacteria|Desulfovibrionales|Desulfohalobiaceae|Desulfohalobium 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.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 -Bacteria|Proteobacteria|Deltaproteobacteria|Desulfovibrionales|Desulfohalobiaceae|Desulfonatronovibrio 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.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 -Bacteria|Proteobacteria|Deltaproteobacteria|Desulfovibrionales|Desulfovibrionaceae 0.216972034716 0.205399061033 0.113277773283 0.0464090961829 0.067152724482 0.0896172065036 0.281246484419 0.0985915492958 0.121304018196 0.0205423171734 0.108908734481 0.109990834097 0.189595923688 0.290037831021 0.130696174959 0.264608599779 0.288729589805 0.229746070133 0.145547166379 0.238611713666 0.135278770896 0.104620749782 0.23450095266 0.164489598452 0.0 0.0724462690171 0.22766078543 0.0597157530156 0.0801763880537 0.096645036587 -Bacteria|Proteobacteria|Deltaproteobacteria|Desulfovibrionales|Desulfovibrionaceae|Desulfovibrio 0.168756027001 0.185837245696 0.105186503762 0.0348068221371 0.067152724482 0.0768147484317 0.258746765665 0.0985915492958 0.106141015921 0.0205423171734 0.108908734481 0.109990834097 0.189595923688 0.226986128625 0.130696174959 0.264608599779 0.278773397053 0.205562273277 0.145547166379 0.238611713666 0.135278770896 0.0871839581517 0.23450095266 0.164489598452 0.0 0.0482975126781 0.22766078543 0.0597157530156 0.0801763880537 0.096645036587 -Bacteria|Proteobacteria|Deltaproteobacteria|Desulfovibrionales|Desulfovibrionaceae|Lawsonia 0.0482160077146 0.0195618153365 0.00809126952019 0.0 0.0 0.0128024580719 0.0224997187535 0.0 0.0151630022745 0.0 0.0 0.0 0.0 0.0504413619168 0.0 0.0 0.0 0.0241837968561 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Epsilonproteobacteria 4.58052073288 3.17879499218 4.62011489603 2.22763661678 1.35264773599 2.30444245295 3.84745190685 8.64788732394 2.7899924185 4.25225965489 3.85536920061 1.55820348304 4.49105344235 5.88902900378 3.31968284395 5.39140022051 2.50896057348 2.00725513906 3.00191030656 3.87201735358 4.36757174606 3.34786399303 2.05188333578 6.13449443638 1.12977553144 0.869355228206 4.81502561184 4.28759106652 3.46762878332 3.52064061853 -Bacteria|Proteobacteria|Epsilonproteobacteria|Campylobacterales 4.53230472517 3.17879499218 4.62011489603 2.22763661678 1.35264773599 2.30444245295 3.84745190685 8.64788732394 2.7899924185 4.25225965489 3.85536920061 1.55820348304 4.49105344235 5.86380832282 3.31968284395 5.39140022051 2.49900438072 2.00725513906 3.00191030656 3.85032537961 4.36757174606 3.34786399303 2.05188333578 6.13449443638 1.12977553144 0.77276020285 4.81502561184 4.28759106652 3.46762878332 3.52064061853 -Bacteria|Proteobacteria|Epsilonproteobacteria|Campylobacterales|Helicobacteraceae 4.50819672131 3.16901408451 4.61202362651 2.22763661678 1.33346124328 2.30444245295 3.84745190685 8.60563380282 2.7899924185 4.25225965489 3.85536920061 1.55820348304 4.49105344235 5.86380832282 3.31968284395 5.39140022051 2.48904818797 2.00725513906 3.00191030656 3.83947939262 4.36757174606 3.34786399303 2.05188333578 6.11514271892 1.12977553144 0.748611446511 4.81502561184 4.27564791592 3.46762878332 3.52064061853 -Bacteria|Proteobacteria|Epsilonproteobacteria|Campylobacterales|Helicobacteraceae|Helicobacter 2.12150433944 2.10289514867 3.84335302209 1.54310244808 0.815425940138 1.65151709128 2.92496343796 5.35211267606 1.3040181956 2.95809367297 2.63559137443 0.806599450046 3.3060789193 3.49306431274 2.64877581249 3.71554575524 1.43369175627 1.33010882709 2.33785135996 2.36442516269 3.43994588849 2.26678291194 1.15784845376 4.51862602806 0.728407908429 0.362231345086 3.09618668184 3.069389705 2.10463018641 1.71199779097 -Bacteria|Proteobacteria|Epsilonproteobacteria|Campylobacterales|Helicobacteraceae|Sulfurimonas 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.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 -Bacteria|Proteobacteria|Epsilonproteobacteria|Campylobacterales|Helicobacteraceae|Wolinella 0.192864030858 0.0391236306729 0.0161825390404 0.0464090961829 0.0 0.0128024580719 0.0224997187535 0.253521126761 0.0454890068234 0.0410846343468 0.0 0.0 0.0355492356914 0.0756620428752 0.0 0.0330760749724 0.0497809637595 0.0120918984281 0.0181933957973 0.130151843818 0.0 0.052310374891 0.0 0.0677310111272 0.0 0.169041294373 0.0341491178145 0.0 0.0801763880537 0.165677205578 -Bacteria|Proteobacteria|Gammaproteobacteria 0.0723240115718 0.0 0.0161825390404 0.0348068221371 0.0863392171911 3.0597874792 0.0 0.112676056338 0.0454890068234 0.0 0.0435634937922 0.0183318056829 0.023699490461 0.0126103404792 0.0174261566611 0.0551267916207 0.0497809637595 0.0 0.081870281088 0.0216919739696 0.0096627693497 0.0 0.0 0.0 0.0 0.024148756339 0.0341491178145 0.179147259047 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Aeromonadales 0.0 0.0 0.0 0.0 0.0 0.0128024580719 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.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Aeromonadales|Aeromonadaceae 0.0 0.0 0.0 0.0 0.0 0.0128024580719 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.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Aeromonadales|Aeromonadaceae|Aeromonas 0.0 0.0 0.0 0.0 0.0 0.0128024580719 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.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Chromatiales 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Enterobacteriales 0.0241080038573 0.0 0.0161825390404 0.0348068221371 0.0863392171911 3.00857764691 0.0 0.112676056338 0.0454890068234 0.0 0.0435634937922 0.0183318056829 0.023699490461 0.0126103404792 0.0174261566611 0.0551267916207 0.0497809637595 0.0 0.081870281088 0.0108459869848 0.0096627693497 0.0 0.0 0.0 0.0 0.024148756339 0.0341491178145 0.179147259047 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Enterobacteriales|Enterobacteriaceae 0.0241080038573 0.0 0.0161825390404 0.0348068221371 0.0863392171911 3.00857764691 0.0 0.112676056338 0.0454890068234 0.0 0.0435634937922 0.0183318056829 0.023699490461 0.0126103404792 0.0174261566611 0.0551267916207 0.0497809637595 0.0 0.081870281088 0.0108459869848 0.0096627693497 0.0 0.0 0.0 0.0 0.024148756339 0.0341491178145 0.179147259047 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Enterobacteriales|Enterobacteriaceae|Escherichia/Shigella 0.0241080038573 0.0 0.0161825390404 0.0348068221371 0.0767459708365 2.71412111125 0.0 0.112676056338 0.0454890068234 0.0 0.0217817468961 0.0183318056829 0.023699490461 0.0126103404792 0.0174261566611 0.0551267916207 0.0298685782557 0.0 0.0727735831893 0.0108459869848 0.0 0.0 0.0 0.0 0.0 0.0 0.022766078543 0.167204108444 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Enterobacteriales|Enterobacteriaceae|Klebsiella 0.0 0.0 0.0 0.0 0.0 0.0128024580719 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.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Enterobacteriales|Enterobacteriaceae|Kluyvera 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Enterobacteriales|Enterobacteriaceae|Plesiomonas 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Enterobacteriales|Enterobacteriaceae|Rahnella 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Enterobacteriales|Enterobacteriaceae|Trabulsiella 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Oceanospirillales 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Oceanospirillales|Hahellaceae 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Oceanospirillales|Hahellaceae|Halospina 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Oceanospirillales|Oceanospirillaceae 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Oceanospirillales|Oceanospirillaceae|Oceanobacter 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Pasteurellales 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Pasteurellales|Pasteurellaceae 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Pseudomonadales 0.0 0.0 0.0 0.0 0.0 0.0384073742158 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.0108459869848 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Pseudomonadales|Moraxellaceae 0.0 0.0 0.0 0.0 0.0 0.0128024580719 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.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Pseudomonadales|Moraxellaceae|Acinetobacter 0.0 0.0 0.0 0.0 0.0 0.0128024580719 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.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Pseudomonadales|Pseudomonadaceae 0.0 0.0 0.0 0.0 0.0 0.0256049161439 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.0108459869848 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Pseudomonadales|Pseudomonadaceae|Pseudomonas 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.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 -Bacteria|Proteobacteria|Gammaproteobacteria|Thiotrichales 0.0482160077146 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Thiotrichales|Thiotrichaceae 0.0482160077146 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|Proteobacteria|Gammaproteobacteria|Thiotrichales|Thiotrichaceae|Thiothrix 0.0482160077146 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.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Bacteria|TM7 0.0 0.00978090766823 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0252206809584 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.0113830392715 0.0 0.0 0.0 -Bacteria|Verrucomicrobia 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.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
--- a/test-data/lefse_output_a Tue May 13 21:57:00 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11553 +0,0 @@ -(dp0 -S'class_sl' -p1 -(dp2 -S'rag2' -p3 -(I0 -I10 -tp4 -sS'truc' -p5 -(I10 -I30 -tp6 -ssS'class_hierarchy' -p7 -(dp8 -g3 -(lp9 -S'rag2_subcl' -p10 -asg5 -(lp11 -S'truc_subcl' -p12 -assS'feats' -p13 -(dp14 -S'Bacteria.Actinobacteria.Actinobacteria.Coriobacteriales.Coriobacteriaceae' -p15 -(lp16 -F552.4098881370206 -aF1403.08679094 -aF1195.0286806852373 -aF3073.770491803074 -aF734.7538574575511 -aF2378.4748030299997 -aF1064.4474550016819 -aF879.5074758127307 -aF1046.755059315813 -aF1160.42935885933 -aF1626.89804772 -aF1182.6783115031262 -aF2787.5409041296684 -aF3087.0344552912557 -aF7831.458195452485 -aF5758.157389638737 -aF3656.99873897 -aF4858.3955445 -aF3850.3850385039605 -aF872.4100327155379 -aF411.0996916756056 -aF6216.83093252 -aF281.7695125387165 -aF337.79979732034064 -aF2178.370066630947 -aF1055.4596046800034 -aF1740.34110686 -aF1133.2361988057178 -aF586.9118654018354 -aF482.5090470451561 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Streptococcaceae' -p17 -(lp18 -F1104.8197762720406 -aF1002.20485067 -aF1075.525812617714 -aF796.9034608381303 -aF0.0 -aF743.273375948 -aF1354.7513063621402 -aF1465.8457930262184 -aF348.91835310560447 -aF386.8097862877777 -aF1952.2776572700002 -aF1182.6783115031262 -aF484.7897224575951 -aF896.2358095993966 -aF1544.2311934697857 -aF2617.344268014877 -aF1513.2408575 -aF2014.45668918 -aF733.4066740004686 -aF3925.845147221923 -aF616.6495375124077 -aF2122.82031842 -aF422.654268808575 -aF1463.7991217218096 -aF2434.6488980004706 -aF4989.445403948199 -aF5685.1142824 -aF1133.2361988057178 -aF1565.0983077408946 -aF7961.3992762360685 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Eubacteriaceae' -p19 -(lp20 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Euryarchaeota.Methanopyri.Methanopyrales' -p21 -(lp22 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Bacillaceae.Jeotgalibacillus' -p23 -(lp24 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Micromonosporaceae' -p25 -(lp26 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Lactobacillaceae.Paralactobacillus' -p27 -(lp28 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Anaerostipes' -p29 -(lp30 -F138.102472033755 -aF200.440970134 -aF119.50286806852372 -aF455.3734061927887 -aF734.7538574575511 -aF0.0 -aF0.0 -aF732.9228965111089 -aF174.45917655230195 -aF386.8097862877777 -aF325.379609544 -aF90.9752547306866 -aF605.987153072495 -aF1095.3993228459296 -aF882.4178248404493 -aF0.0 -aF126.103404792 -aF236.99490461 -aF183.35166850061725 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF1125.9993244044717 -aF128.1394156837612 -aF0.0 -aF0.0 -aF80.94544277159405 -aF0.0 -aF0.0 -asS'Archaea.Crenarchaeota' -p31 -(lp32 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Sphingobacteria' -p33 -(lp34 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Thermoanaerobacterales.Thermoanaerobacteraceae.Mahella' -p35 -(lp36 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Acidimicrobiales.Acidimicrobiaceae' -p37 -(lp38 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Enterobacteriales.Enterobacteriaceae.Escherichia_Shigella' -p39 -(lp40 -F0.0 -aF0.0 -aF1673.0401529653357 -aF227.68670309689443 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF108.45986984800001 -aF727.8020378456928 -aF0.0 -aF298.74526986679894 -aF551.5111405247806 -aF174.48961786732468 -aF126.103404792 -aF236.99490461 -aF183.35166850061725 -aF218.10250817888448 -aF0.0 -aF454.890068234 -aF1127.078050154866 -aF0.0 -aF27165.556125029438 -aF767.6069852231846 -aF348.068221371 -aF161.89088554338815 -aF0.0 -aF241.25452352257804 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Bacteroidaceae.Bacteroides' -p41 -(lp42 -F48750.17262812257 -aF253557.82722 -aF18283.938814541165 -aF22768.67030968944 -aF5143.277002205901 -aF140627.322729 -aF38997.48403325161 -aF19202.579888540447 -aF180739.7069082769 -aF185571.99497181855 -aF71258.1344902 -aF22834.788937365734 -aF7150.6484062500285 -aF27982.473610817826 -aF91881.75601144225 -aF186442.15669138313 -aF32660.7818411 -aF41829.600663599995 -aF88192.15254864786 -aF78953.1079607742 -aF3699.8972250784486 -aF98256.2547384 -aF4508.312200619464 -aF19704.988176978168 -aF46899.026140402726 -aF20533.48685475644 -aF66945.12124380001 -aF28978.468512250474 -aF8118.947471388388 -aF63691.19420988855 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Acetivibrio' -p43 -(lp44 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Bacillaceae.Bacillus' -p45 -(lp46 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Flavobacteria' -p47 -(lp48 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes' -p49 -(lp50 -F176771.1642035265 -aF459210.262578 -aF111974.1873801597 -aF276980.874316777 -aF88660.2987999786 -aF496060.651107 -aF161505.7093092252 -aF146437.99472273214 -aF401256.1060713951 -aF507591.1420563835 -aF192733.18872 -aF117267.10334812767 -aF53690.461762217245 -aF169288.9862575527 -aF210015.442312211 -aF299162.44983396924 -aF119798.234552 -aF117549.47268600001 -aF176751.008434439 -aF109487.45910537745 -aF7810.894141824499 -aF214404.85216100002 -aF17047.055508569843 -aF49881.7700708939 -aF235776.52485916155 -aF76376.89502968936 -aF125884.673396 -aF65808.64497326124 -aF36192.89836648318 -aF118214.7165262934 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Veillonellaceae.Anaerovibrio' -p51 -(lp52 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Papillibacter' -p53 -(lp54 -F414.3074161022653 -aF200.440970134 -aF119.50286806852372 -aF569.2167577412359 -aF244.91795248551233 -aF148.65467519 -aF677.3756531830702 -aF1026.0920551173529 -aF348.91835310560447 -aF386.8097862877777 -aF0.0 -aF90.9752547306866 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF436.20501635776895 -aF0.0 -aF0.0 -aF281.7695125387165 -aF0.0 -aF256.2788313685233 -aF0.0 -aF116.022740457 -aF0.0 -aF97.81864423360588 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Planococcaceae' -p55 -(lp56 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF489.83590497203886 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae' -p57 -(lp58 -F65598.67421625869 -aF33874.5239527 -aF40869.98087953318 -aF60564.6630236939 -aF50942.9341170677 -aF14716.8128438 -aF70447.06793105131 -aF93960.71533274757 -aF43789.253314774876 -aF46320.471907898325 -aF77982.64642080001 -aF65502.18340614236 -aF131620.40964761493 -aF79366.66002790324 -aF68718.28810939546 -aF114290.69970389371 -aF134300.12610300002 -aF170280.83896199998 -aF123579.02456866989 -aF109705.56161359538 -aF80986.63925999824 -aF42153.146323 -aF93547.47816291392 -aF96723.34196593176 -aF60994.361865726554 -aF72730.76184991299 -aF42464.3230073 -aF56742.75538285551 -aF76591.99843497251 -aF66586.2484921835 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Lactobacillaceae.Lactobacillus' -p59 -(lp60 -F4557.38157713092 -aF6414.111044300001 -aF258484.70363316438 -aF12295.081967212296 -aF8082.292432042191 -aF64218.8196819 -aF45190.632862381404 -aF14072.119613003691 -aF8548.49965108581 -aF7736.195725755553 -aF61388.286334100005 -aF7459.970887915102 -aF19633.983759491508 -aF5178.2513443498465 -aF69269.79924991324 -aF25300.99459086722 -aF11979.823455200001 -aF28202.393648499998 -aF19985.33186650627 -aF18102.508178884458 -aF9455.29290852492 -aF148445.792267 -aF20287.404902747578 -aF2589.7984461162723 -aF10379.292670445711 -aF18902.322011132797 -aF133890.242488 -aF6394.689978955829 -aF15064.07121200111 -aF4101.326899882825 -asS'Bacteria.Deferribacteres' -p61 -(lp62 -F13948.34967542826 -aF16636.6005211 -aF13862.332695952755 -aF9562.841530059564 -aF16899.338721490207 -aF1783.85610227 -aF58931.68182696311 -aF42949.28173555919 -aF13607.81577114559 -aF21661.34803208753 -aF14316.70282 -aF13919.213973845255 -aF32844.50369648653 -aF21907.986456918592 -aF53165.67394663407 -aF14220.903856190467 -aF24211.8537201 -aF20618.556700999998 -aF15951.595159530696 -aF16793.89312977711 -aF22816.03288792206 -aF8339.651250949999 -aF30994.646379308833 -aF6868.595878839253 -aF9866.735007686644 -aF9978.8908079064 -aF4408.86413737 -aF15622.470454950964 -aF26997.945808460423 -aF30880.579010845955 -asS'Bacteria.Firmicutes.Erysipelotrichi.Erysipelotrichales' -p63 -(lp64 -F0.0 -aF0.0 -aF478.01147227509546 -aF0.0 -aF0.0 -aF148.65467519 -aF0.0 -aF0.0 -aF0.0 -aF580.2146794316665 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF261.7344268014877 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF242.83632831508226 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Corynebacteriaceae' -p65 -(lp66 -F138.102472033755 -aF0.0 -aF0.0 -aF113.84335154844722 -aF0.0 -aF0.0 -aF193.53590090930578 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF272.9257641922598 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF218.10250817888448 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF0.0 -aF116.022740457 -aF80.94544277159405 -aF195.63728846761182 -aF241.25452352257804 -asS'Bacteria.Deinococcus_Thermus.Deinococci' -p67 -(lp68 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Planococcaceae.Kurthia' -p69 -(lp70 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Butyricicoccus' -p71 -(lp72 -F1381.0247203375502 -aF801.7638805370001 -aF836.5200764816673 -aF1593.806921678261 -aF489.83590497203886 -aF445.964025569 -aF4161.0218695565745 -aF3811.1990618601667 -aF1919.0509420823255 -aF2224.156271153721 -aF976.138828633 -aF2820.232896656685 -aF1575.566597990692 -aF1692.8898625755266 -aF1323.6267372626749 -aF3577.037166294675 -aF0.0 -aF3436.4261168400003 -aF1100.1100109997028 -aF3707.74263904404 -aF6372.045220967884 -aF1061.41015921 -aF8593.970132428354 -aF4278.79743272298 -aF1025.1153254780968 -aF1439.2630972890952 -aF696.136442743 -aF1537.9634126641881 -aF3325.8339039444004 -aF2653.799758745356 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Syntrophomonadaceae.Syntrophomonas' -p73 -(lp74 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Flavobacteria.Flavobacteriales.Flavobacteriaceae' -p75 -(lp76 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Deferribacteres.Deferribacteres.Deferribacterales.Deferribacteraceae.Geovibrio' -p77 -(lp78 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Porphyromonadaceae.Petrimonas' -p79 -(lp80 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Carnobacteriaceae' -p81 -(lp82 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF108.45986984800001 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Enterobacteriales' -p83 -(lp84 -F0.0 -aF0.0 -aF1792.5430210328589 -aF341.53005464534164 -aF244.91795248551233 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF96.70244657194442 -aF108.45986984800001 -aF818.7772925767795 -aF0.0 -aF497.90878311133156 -aF551.5111405247806 -aF174.48961786732468 -aF126.103404792 -aF236.99490461 -aF183.35166850061725 -aF436.20501635776895 -aF0.0 -aF454.890068234 -aF1127.078050154866 -aF0.0 -aF30112.762685819 -aF863.5578583764577 -aF348.068221371 -aF161.89088554338815 -aF0.0 -aF241.25452352257804 -asS'Bacteria.Bacteroidetes.Flavobacteria.Flavobacteriales' -p85 -(lp86 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Thermoanaerobacterales' -p87 -(lp88 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Alphaproteobacteria.Rhizobiales' -p89 -(lp90 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Coriobacteriales.Coriobacteriaceae.Slackia' -p91 -(lp92 -F138.102472033755 -aF601.3229104029999 -aF358.50860420657176 -aF227.68670309689443 -aF0.0 -aF297.30935037899997 -aF193.53590090930578 -aF0.0 -aF174.45917655230195 -aF386.8097862877777 -aF216.91973969600002 -aF90.9752547306866 -aF0.0 -aF99.5817566221663 -aF441.20891242022464 -aF1570.4065608069236 -aF126.103404792 -aF592.487261524 -aF550.0550055008515 -aF218.10250817888448 -aF0.0 -aF303.260045489 -aF0.0 -aF0.0 -aF0.0 -aF95.95087315297307 -aF464.090961829 -aF0.0 -aF0.0 -aF241.25452352257804 -asS'Bacteria.Proteobacteria.Alphaproteobacteria.Rhodospirillales.Acetobacteraceae' -p93 -(lp94 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Deltaproteobacteria.Desulfovibrionales' -p95 -(lp96 -F6767.021129675 -aF4409.70134295 -aF2868.068833650573 -aF8196.721311478197 -aF3673.7692872928274 -aF2675.7841534100003 -aF5999.61292819948 -aF4690.7065376678975 -aF4361.479413822557 -aF9380.137317469602 -aF5965.29284165 -aF4730.713245992503 -aF8847.412434854617 -aF9460.266879110299 -aF6728.435914406926 -aF5321.933344967922 -aF6935.687263559999 -aF5095.39044911 -aF4950.495049503664 -aF3489.640130866157 -aF2672.147995889435 -aF5761.940864290001 -aF3522.118906731456 -aF6080.396351762128 -aF6022.5525371638005 -aF5661.10151601911 -aF2320.45480914 -aF5989.962765097358 -aF3130.196615471788 -aF6031.363088059446 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales.Oxalobacteraceae' -p97 -(lp98 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF384.41824705228447 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Epsilonproteobacteria' -p99 -(lp100 -F35216.130368752565 -aF34676.2878332 -aF42901.52963667106 -aF48155.737704948166 -aF8817.046289498729 -aF11297.7553144 -aF61350.88058831693 -aF20521.841102347054 -aF33496.16189816604 -aF43709.505850474845 -aF38720.1735358 -aF30021.834061148584 -aF20118.77348202728 -aF25094.60266882311 -aF53937.78954337896 -aF33240.27220382999 -aF58890.290037800005 -aF44910.5344235 -aF15584.891822487454 -aF38604.14394766556 -aF42548.81808838715 -aF27899.924184999996 -aF86503.24034937097 -aF38509.1768944768 -aF23065.094823157087 -aF13529.073114525496 -aF22276.3661678 -aF46219.8478225953 -aF31791.05937597442 -aF45838.35946921977 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Thiotrichales' -p101 -(lp102 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF482.5090470451561 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Anaerofilum' -p103 -(lp104 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Cyanobacteria' -p105 -(lp106 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Enterococcaceae.Tetragenococcus' -p107 -(lp108 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales.Burkholderiaceae' -p109 -(lp110 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Aerococcaceae.Facklamia' -p111 -(lp112 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Leuconostocaceae' -p113 -(lp114 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Deferribacteres.Deferribacteres.Deferribacterales.Deferribacteraceae' -p115 -(lp116 -F13948.34967542826 -aF16636.6005211 -aF13862.332695952755 -aF9562.841530059564 -aF16899.338721490207 -aF1783.85610227 -aF58931.68182696311 -aF42949.28173555919 -aF13607.81577114559 -aF21661.34803208753 -aF14316.70282 -aF13919.213973845255 -aF32844.50369648653 -aF21907.986456918592 -aF53165.67394663407 -aF14220.903856190467 -aF24211.8537201 -aF20618.556700999998 -aF15951.595159530696 -aF16793.89312977711 -aF22816.03288792206 -aF8339.651250949999 -aF30994.646379308833 -aF6868.595878839253 -aF9866.735007686644 -aF9978.8908079064 -aF4408.86413737 -aF15622.470454950964 -aF26997.945808460423 -aF30880.579010845955 -asS'Archaea.Crenarchaeota.Thermoprotei.Desulfurococcales' -p117 -(lp118 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Peptostreptococcaceae.Tepidibacter' -p119 -(lp120 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Aerococcaceae.Globicatella' -p121 -(lp122 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Paenibacillaceae' -p123 -(lp124 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Deltaproteobacteria.Desulfobacterales.Desulfobacteraceae.Desulfocella' -p125 -(lp126 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Bifidobacteriales.Bifidobacteriaceae.Metascardovia' -p127 -(lp128 -F0.0 -aF2204.85067148 -aF0.0 -aF455.3734061927887 -aF4653.441097234876 -aF1040.58272633 -aF193.53590090930578 -aF879.5074758127307 -aF174.45917655230195 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF126.103404792 -aF236.99490461 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Deinococcus_Thermus.Deinococci.Thermales' -p129 -(lp130 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Alphaproteobacteria.Sphingomonadales.Sphingomonadaceae.Sphingomonas' -p131 -(lp132 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF96.76795045475289 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Oscillibacter' -p133 -(lp134 -F11324.402706825927 -aF3808.3784325499996 -aF3943.5946462682873 -aF11042.805100144373 -aF8817.046289498729 -aF743.273375948 -aF7064.060383201162 -aF9088.243916736552 -aF4361.479413822557 -aF5028.527221737107 -aF9110.62906725 -aF6732.1688500724085 -aF34298.8728638934 -aF22804.222266447974 -aF11030.222810455594 -aF8549.991275519937 -aF10340.4791929 -aF9598.29363669 -aF7334.066740004686 -aF5888.767720832885 -aF6372.045220967884 -aF5761.940864290001 -aF7748.661594817206 -aF6192.996284204577 -aF14607.893387982806 -aF11706.00652468732 -aF12994.546931199999 -aF8903.998704876345 -aF6358.211875184882 -aF9650.180940893113 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Parasporobacterium' -p135 -(lp136 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Rikenellaceae' -p137 -(lp138 -F27896.69935095655 -aF1803.96873121 -aF47203.63288722196 -aF15710.382513615707 -aF29145.236345867248 -aF4608.29493088 -aF10063.866847335905 -aF25945.470536463054 -aF8374.040474526504 -aF1353.8342520092233 -aF39587.8524946 -aF11462.882096054911 -aF31632.529390347554 -aF44214.29994025023 -aF20075.005515067198 -aF24515.79131041369 -aF45271.122320300005 -aF9479.79618438 -aF22185.551888565686 -aF14176.663031662536 -aF2672.147995889435 -aF6368.46095527 -aF5494.505494507473 -aF10922.19344672738 -aF47924.14146592086 -aF13816.925734047327 -aF8121.591832 -aF14732.070584384297 -aF23672.111904516023 -aF2653.799758745356 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Pseudomonadales.Pseudomonadaceae' -p139 -(lp140 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF108.45986984800001 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF256.2788313685233 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Pseudomonadales.Pseudomonadaceae.Pseudomonas' -p141 -(lp142 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Chloroflexi.Thermomicrobia.Sphaerobacterales' -p143 -(lp144 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Thermoactinomycetaceae.Planifilum' -p145 -(lp146 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Sphingobacteria.Sphingobacteriales.Chitinophagaceae.Sediminibacterium' -p147 -(lp148 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Thermoanaerobacterales.Thermoanaerobacteraceae.Caldanaerobius' -p149 -(lp150 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Deltaproteobacteria.Desulfobacterales.Desulfobulbaceae' -p151 -(lp152 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Deferribacteres.Deferribacteres.Deferribacterales.Deferribacteraceae.Mucispirillum' -p153 -(lp154 -F13948.34967542826 -aF16636.6005211 -aF13862.332695952755 -aF9335.15482696267 -aF16899.338721490207 -aF1783.85610227 -aF58641.37797557265 -aF42802.69715626956 -aF13607.81577114559 -aF21661.34803208753 -aF14099.7830803 -aF13919.213973845255 -aF32723.30626585259 -aF21907.986456918592 -aF52724.465034179826 -aF14133.659047262312 -aF23581.3366961 -aF20263.0643441 -aF15768.243491059084 -aF16575.790621559172 -aF22816.03288792206 -aF8339.651250949999 -aF30994.646379308833 -aF6868.595878839253 -aF9738.595592001882 -aF9882.939934749125 -aF4408.86413737 -aF15541.525012181268 -aF26997.945808460423 -aF30880.579010845955 -asS'Bacteria.Actinobacteria.Actinobacteria.Bifidobacteriales.Bifidobacteriaceae' -p155 -(lp156 -F138.102472033755 -aF132892.363199 -aF3704.588910133241 -aF139685.79234963967 -aF26206.22091602081 -aF141667.905456 -aF23901.68376234777 -aF102169.45177406645 -aF17445.917655230198 -aF28430.519292133646 -aF108.45986984800001 -aF272.9257641922598 -aF0.0 -aF0.0 -aF882.4178248404493 -aF785.2032804054644 -aF5170.23959647 -aF8294.82166133 -aF3483.681701500726 -aF218.10250817888448 -aF0.0 -aF1516.3002274500002 -aF140.8847562698584 -aF0.0 -aF768.8364941055698 -aF287.8526194588192 -aF116.022740457 -aF0.0 -aF97.81864423360588 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Streptococcaceae.Streptococcus' -p157 -(lp158 -F1104.8197762720406 -aF1002.20485067 -aF1075.525812617714 -aF796.9034608381303 -aF0.0 -aF743.273375948 -aF1354.7513063621402 -aF1465.8457930262184 -aF348.91835310560447 -aF386.8097862877777 -aF1843.81778742 -aF1182.6783115031262 -aF484.7897224575951 -aF896.2358095993966 -aF1544.2311934697857 -aF2617.344268014877 -aF1513.2408575 -aF1895.95923688 -aF733.4066740004686 -aF3925.845147221923 -aF616.6495375124077 -aF2122.82031842 -aF422.654268808575 -aF1463.7991217218096 -aF2306.5094823157087 -aF4989.445403948199 -aF5685.1142824 -aF1133.2361988057178 -aF1467.279663499588 -aF7961.3992762360685 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Gracilibacteraceae' -p159 -(lp160 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Chlamydiae.Chlamydiae.Chlamydiales' -p161 -(lp162 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Euryarchaeota.Methanopyri.Methanopyrales.Methanopyraceae.Methanopyrus' -p163 -(lp164 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Porphyromonadaceae.Butyricimonas' -p165 -(lp166 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF4287.51576293 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Bifidobacteriales.Bifidobacteriaceae.Scardovia' -p167 -(lp168 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales.Oxalobacteraceae.Oxalobacter' -p169 -(lp170 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Pseudomonadales' -p171 -(lp172 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF108.45986984800001 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF384.41824705228447 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Thermoactinomycetaceae.Thermoflavimicrobium' -p173 -(lp174 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Carnobacteriaceae.Trichococcus' -p175 -(lp176 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales' -p177 -(lp178 -F414.30741610226534 -aF0.0 -aF0.0 -aF341.53005464534164 -aF0.0 -aF0.0 -aF580.6077027289174 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF818.7772925767795 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF654.3075245366534 -aF0.0 -aF0.0 -aF0.0 -aF337.79979732034064 -aF384.4182470522845 -aF0.0 -aF1160.2274045709999 -aF242.83632831498218 -aF391.27457693522365 -aF723.7635705677342 -asS'Archaea.Crenarchaeota.Thermoprotei.Sulfolobales' -p179 -(lp180 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Microbacteriaceae.Microbacterium' -p181 -(lp182 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Dorea' -p183 -(lp184 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF108.45986984800001 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Epsilonproteobacteria.Campylobacterales.Helicobacteraceae.Helicobacter' -p185 -(lp186 -F17124.706532241635 -aF21046.3018641 -aF30712.237093643616 -aF30965.39162109763 -aF3673.7692872928274 -aF7284.0790842900005 -aF45190.632862381404 -aF11580.181764880123 -aF22679.692951809262 -aF34426.07097958019 -aF23644.2516269 -aF23380.640465830264 -aF13331.717367628968 -aF14339.772953570342 -aF37171.850871418435 -aF26522.42191586139 -aF34930.6431274 -aF33060.789193 -aF8067.473414011155 -aF26390.403489664048 -aF29599.1778006476 -aF13040.181956 -aF53536.20738240616 -aF29275.98243443619 -aF16529.984623254237 -aF8155.824217998211 -aF15431.024480799999 -aF38449.085316504665 -aF21031.008510230768 -aF21230.39806996285 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales.Comamonadaceae' -p187 -(lp188 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Bifidobacteriales.Bifidobacteriaceae.Bifidobacterium' -p189 -(lp190 -F276.2049440685103 -aF259771.497294 -aF7409.177820266482 -aF276297.81420777633 -aF46044.57506735745 -aF280362.71740699996 -aF47029.22392105432 -aF201846.9656990092 -aF34542.91695746184 -aF56861.03858426729 -aF216.91973969600002 -aF545.8515283845196 -aF0.0 -aF0.0 -aF1764.8356496768968 -aF1570.4065608069236 -aF10088.2723834 -aF16115.653513399999 -aF6967.363403011454 -aF436.20501635776895 -aF0.0 -aF3032.60045489 -aF281.7695125387165 -aF0.0 -aF1537.6729882071363 -aF575.7052389176384 -aF232.045480914 -aF0.0 -aF195.63728846761182 -aF0.0 -asS'Bacteria.Proteobacteria.Epsilonproteobacteria.Campylobacterales.Helicobacteraceae' -p191 -(lp192 -F35216.130368752565 -aF34676.2878332 -aF42782.02676863355 -aF48155.737704948166 -aF7592.456527071166 -aF11297.7553144 -aF61157.34468745663 -aF20521.841102347054 -aF33496.16189816604 -aF43709.505850474845 -aF38394.7939262 -aF30021.834061148584 -aF20118.77348202728 -aF24895.439155516568 -aF53937.78954337896 -aF33240.27220382999 -aF58638.0832282 -aF44910.5344235 -aF15584.891822487454 -aF38604.14394766556 -aF42548.81808838715 -aF27899.924184999996 -aF86080.58608063041 -aF38509.1768944768 -aF23065.094823157087 -aF13337.171368210948 -aF22276.3661678 -aF46138.90237982561 -aF31693.240731723112 -aF45114.595898671054 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Heliobacteriaceae.Heliobacillus' -p193 -(lp194 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Ethanoligenens' -p195 -(lp196 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF95.95087315297307 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Erysipelotrichi.Erysipelotrichales.Erysipelotrichaceae' -p197 -(lp198 -F0.0 -aF0.0 -aF478.01147227509546 -aF0.0 -aF0.0 -aF148.65467519 -aF0.0 -aF0.0 -aF0.0 -aF580.2146794316665 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF261.7344268014877 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF242.83632831508226 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Enterobacteriales.Enterobacteriaceae.Rahnella' -p199 -(lp200 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Erysipelotrichi.Erysipelotrichales.Erysipelotrichaceae.Sharpea' -p201 -(lp202 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Enterococcaceae.Pilibacter' -p203 -(lp204 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Peptostreptococcaceae' -p205 -(lp206 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Coriobacteriales.Coriobacteriaceae.Olsenella' -p207 -(lp208 -F0.0 -aF0.0 -aF0.0 -aF113.84335154844722 -aF0.0 -aF148.65467519 -aF96.76795045475289 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF118.497452305 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Verrucomicrobia' -p209 -(lp210 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Lachnobacterium' -p211 -(lp212 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Aerococcaceae' -p213 -(lp214 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Staphylococcaceae.Nosocomiicoccus' -p215 -(lp216 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Rikenellaceae.Rikenella' -p217 -(lp218 -F138.102472033755 -aF200.440970134 -aF119.50286806852372 -aF113.84335154844722 -aF2694.097477350778 -aF0.0 -aF290.3038513644587 -aF293.1691586042436 -aF0.0 -aF0.0 -aF542.299349241 -aF90.9752547306866 -aF484.7897224575951 -aF697.072296354864 -aF441.20891242022464 -aF261.7344268014877 -aF126.103404792 -aF118.497452305 -aF366.7033370002343 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF95.95087315297307 -aF0.0 -aF80.94544277159405 -aF0.0 -aF482.5090470451561 -asS'Bacteria.Proteobacteria' -p219 -(lp220 -F44468.99599498714 -aF47504.5099218 -aF58675.908221824255 -aF72859.7449909062 -aF15184.91305412205 -aF29730.9350379 -aF76640.2167601811 -aF30782.76165342057 -aF43614.79413822557 -aF64017.0196306132 -aF47939.2624729 -aF40847.88937409489 -aF30541.752514842523 -aF38438.558056160786 -aF70372.8215309488 -aF66916.76845230076 -aF83984.8675914 -aF60078.2083185 -aF32269.893656004617 -aF46455.8342421094 -aF45837.61562174797 -aF62623.1993935 -aF93688.36291916076 -aF46053.37236793071 -aF64582.265504839845 -aF25043.17789289827 -aF39795.7999768 -aF55123.84652746164 -aF35997.26107798057 -aF58624.84921594743 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Microbacteriaceae' -p221 -(lp222 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF112.59993244044718 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Sphingobacteria.Sphingobacteriales.Chitinophagaceae' -p223 -(lp224 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Bacteroidaceae' -p225 -(lp226 -F48750.17262812257 -aF253557.82722 -aF18283.938814541165 -aF22768.67030968944 -aF5143.277002205901 -aF140627.322729 -aF38997.48403325161 -aF19202.579888540447 -aF180739.7069082769 -aF185571.99497181855 -aF71258.1344902 -aF22834.788937365734 -aF7150.6484062500285 -aF27982.473610817826 -aF91881.75601144225 -aF186442.15669138313 -aF32660.7818411 -aF41829.600663599995 -aF88192.15254864786 -aF78953.1079607742 -aF3699.8972250784486 -aF98256.2547384 -aF4508.312200619464 -aF19704.988176978168 -aF46899.026140402726 -aF20533.48685475644 -aF66945.12124380001 -aF28978.468512250474 -aF8118.947471388388 -aF63691.19420988855 -asS'Bacteria.Proteobacteria.Alphaproteobacteria.Rhodobacterales' -p227 -(lp228 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Paenibacillaceae.Paenibacillus' -p229 -(lp230 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales.Alcaligenaceae' -p231 -(lp232 -F414.3074161022653 -aF6414.111044300001 -aF9560.22944550191 -aF12978.14207651298 -aF489.83590497203886 -aF13527.575442199999 -aF6870.524482290855 -aF4690.7065376678975 -aF4187.020237263252 -aF8316.410405185217 -aF1084.59869848 -aF3911.9359534157234 -aF363.59229184369747 -aF995.8175662216629 -aF6949.040370614036 -aF26173.44268014877 -aF13366.9609079 -aF8294.82166133 -aF8250.825082512772 -aF3707.74263904404 -aF0.0 -aF23805.9135709 -aF281.7695125387165 -aF675.5995946396804 -aF3203.485392109043 -aF3166.378814050012 -aF12530.4559694 -aF1942.6906265226585 -aF293.4559327009177 -aF2171.290711706204 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Gracilibacteraceae.Gracilibacter' -p233 -(lp234 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Carnobacteriaceae.Isobaculum' -p235 -(lp236 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Sphingobacteria.Sphingobacteriales.Sphingobacteriaceae.Nubsella' -p237 -(lp238 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Alphaproteobacteria.Rhodospirillales.Acetobacteraceae.Acidisphaera' -p239 -(lp240 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Deltaproteobacteria.Desulfovibrionales.Desulfohalobiaceae' -p241 -(lp242 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Enterococcaceae.Atopobacter' -p243 -(lp244 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Bifidobacteriales.Bifidobacteriaceae.Parascardovia' -p245 -(lp246 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Epsilonproteobacteria.Campylobacterales.Helicobacteraceae.Wolinella' -p247 -(lp248 -F1657.2296644130622 -aF801.7638805370001 -aF0.0 -aF341.53005464534164 -aF1714.4256673985863 -aF0.0 -aF677.3756531830702 -aF0.0 -aF523.3775296579065 -aF0.0 -aF1301.51843818 -aF181.9505094611732 -aF121.19743061489991 -aF497.90878311133156 -aF330.90668431466827 -aF0.0 -aF756.620428752 -aF355.49235691399997 -aF0.0 -aF0.0 -aF411.0996916756056 -aF454.890068234 -aF2535.9256128534507 -aF225.19986487989345 -aF128.1394156837612 -aF0.0 -aF464.090961829 -aF161.89088554338815 -aF391.27457693422355 -aF1930.0361881766212 -asS'Bacteria.Deinococcus_Thermus' -p249 -(lp250 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Roseburia' -p251 -(lp252 -F828.6148322055308 -aF3607.93746242 -aF0.0 -aF1252.2768670279186 -aF0.0 -aF1783.85610227 -aF193.53590090930578 -aF439.7537379068654 -aF4187.020237263252 -aF5898.849240881604 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Alphaproteobacteria.Rhodobacterales.Rhodobacteraceae' -p253 -(lp254 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Hydrogenoanaerobacterium' -p255 -(lp256 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Acetitomaculum' -p257 -(lp258 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Alphaproteobacteria' -p259 -(lp260 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF96.76795045475289 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Micrococcaceae.Sinomonas' -p261 -(lp262 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Coriobacteriales.Coriobacteriaceae.Collinsella' -p263 -(lp264 -F0.0 -aF0.0 -aF0.0 -aF113.84335154844722 -aF0.0 -aF148.65467519 -aF0.0 -aF0.0 -aF0.0 -aF96.70244657194442 -aF0.0 -aF181.9505094611732 -aF0.0 -aF99.5817566221663 -aF110.30222810455594 -aF610.7136625371384 -aF126.103404792 -aF236.99490461 -aF366.7033370002343 -aF0.0 -aF0.0 -aF758.150113723 -aF0.0 -aF0.0 -aF128.1394156837612 -aF95.95087315297307 -aF116.022740457 -aF404.72721385746996 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Bacillaceae.Natronobacillus' -p265 -(lp266 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Aeromonadales.Aeromonadaceae.Aeromonas' -p267 -(lp268 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Syntrophomonadaceae.Thermosyntropha' -p269 -(lp270 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Bacillaceae' -p271 -(lp272 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF363.59229184369747 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF116.022740457 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Planococcaceae.Filibacter' -p273 -(lp274 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Betaproteobacteria' -p275 -(lp276 -F552.4098881370206 -aF6814.99298457 -aF10635.755258139638 -aF14799.635701248131 -aF489.83590497203886 -aF15162.776869300002 -aF7934.971937292537 -aF4983.875696277141 -aF5059.316120029764 -aF9766.947103759381 -aF1193.05856833 -aF4275.83697234207 -aF363.59229184369747 -aF995.8175662216629 -aF8052.062651669599 -aF27656.604432027536 -aF16267.3392182 -aF9361.29873208 -aF10634.396773053804 -aF3707.74263904404 -aF0.0 -aF26686.884003000003 -aF563.539025077433 -aF675.5995946396804 -aF3716.0430548480917 -aF3933.9857992681955 -aF14386.819816700001 -aF2185.5269548317383 -aF293.4559327009177 -aF2895.0542822649318 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Microbacteriaceae.Curtobacterium' -p277 -(lp278 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Butyrivibrio' -p279 -(lp280 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Moryella' -p281 -(lp282 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Oceanospirillales.Oceanospirillaceae.Oceanobacter' -p283 -(lp284 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea' -p285 -(lp286 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Euryarchaeota.Methanopyri.Methanopyrales.Methanopyraceae' -p287 -(lp288 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Veillonellaceae.Dialister' -p289 -(lp290 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF244.91795248551233 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes' -p291 -(lp292 -F738157.7130229762 -aF287231.910202 -aF797084.1300192846 -aF462431.6939894625 -aF518491.30541321903 -aF310688.271146 -aF650280.6270556274 -aF657431.8381699537 -aF485170.9699933095 -aF314186.24891249463 -aF723752.711497 -aF817412.6637556182 -aF852987.5166639792 -aF751742.6807405571 -aF642069.2697997605 -aF605129.9947659367 -aF754854.981084 -aF771299.917052 -aF757609.0942431221 -aF811341.3304255302 -aF903186.0226101087 -aF691281.273692 -aF837137.2217530321 -aF887737.867357571 -aF665299.8462330429 -aF873344.8474383997 -aF817264.1837800001 -aF853084.0213700056 -aF888878.0201507165 -aF747647.7683957418 -asS'Archaea.Crenarchaeota.Thermoprotei.Sulfolobales.Sulfolobaceae' -p293 -(lp294 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Lactonifactor' -p295 -(lp296 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae' -p297 -(lp298 -F156470.10081477158 -aF127280.016035 -aF77437.8585086155 -aF121015.48269595437 -aF184423.21822192546 -aF51731.82696599999 -aF138958.77685289955 -aF157725.00732923305 -aF112351.7096995504 -aF117976.98481743193 -aF183188.72017400002 -aF265192.86754001246 -aF224942.431220717 -aF219677.3551088055 -aF251819.98676349857 -aF252224.7426280184 -aF290290.037831 -aF169806.849153 -aF272643.9310596947 -aF326281.3522359556 -aF213360.73997974733 -aF80060.6520091 -aF442659.90419882885 -aF191757.68494517673 -aF135955.92004061176 -aF136921.89598957874 -aF115558.649495 -aF131860.12627503162 -aF165411.3273992583 -aF175633.2931242927 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Porphyromonadaceae.Parabacteroides' -p299 -(lp300 -F2209.639552544081 -aF13229.104028900001 -aF478.01147227509546 -aF4439.89071038444 -aF1224.5897624275617 -aF6392.151033149999 -aF2032.1269595532112 -aF146.58457930262185 -aF3663.6427076053446 -aF11120.781355718565 -aF1952.2776572700002 -aF727.8020378456928 -aF0.0 -aF0.0 -aF992.7200529450052 -aF174.48961786732468 -aF0.0 -aF829.482166133 -aF0.0 -aF1308.615049077312 -aF0.0 -aF0.0 -aF140.8847562698584 -aF675.5995946396804 -aF896.975909789331 -aF3838.0349261209235 -aF4408.86413737 -aF2994.981382548679 -aF195.63728846761182 -aF2171.290711706204 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Bacillaceae.Vulcanibacillus' -p301 -(lp302 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Coriobacteriales.Coriobacteriaceae.Paraeggerthella' -p303 -(lp304 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Coriobacteriales.Coriobacteriaceae.Enterorhabdus' -p305 -(lp306 -F0.0 -aF1002.20485067 -aF717.0172084131435 -aF1593.806921678261 -aF489.83590497203886 -aF1040.58272633 -aF0.0 -aF293.1691586042436 -aF523.3775296579065 -aF580.2146794316665 -aF0.0 -aF181.9505094611732 -aF727.1845836863926 -aF995.8175662216629 -aF2095.7423339975676 -aF348.9792357356507 -aF252.206809584 -aF473.989809219 -aF1283.46167950132 -aF436.20501635776895 -aF205.5498458378028 -aF1061.41015921 -aF140.8847562698584 -aF112.59993244044718 -aF1281.394156837612 -aF575.7052389176384 -aF116.022740457 -aF161.89088554338815 -aF0.0 -aF241.25452352257804 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Oceanospirillales.Hahellaceae.Halospina' -p307 -(lp308 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Crenarchaeota.Thermoprotei.Thermoproteales.Thermoproteaceae.Caldivirga' -p309 -(lp310 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Pasteurellales' -p311 -(lp312 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Robinsoniella' -p313 -(lp314 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Aquificae.Aquificae' -p315 -(lp316 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Halanaerobiales' -p317 -(lp318 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Chlamydiae' -p319 -(lp320 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Chloroflexi.Thermomicrobia.Sphaerobacterales.Sphaerobacteraceae' -p321 -(lp322 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Staphylococcaceae.Staphylococcus' -p323 -(lp324 -F7457.533489848778 -aF21246.742834200002 -aF2868.068833650573 -aF10587.431694010591 -aF3673.7692872928274 -aF2527.12947822 -aF6967.292432741008 -aF13925.53503371407 -aF25122.12142359952 -aF3384.5856300130513 -aF2711.4967462 -aF10007.278020349524 -aF0.0 -aF0.0 -aF110.30222810455594 -aF4798.464491368952 -aF12232.0302648 -aF15878.6586088 -aF17235.056839032015 -aF4143.947655399806 -aF205.5498458378028 -aF1819.56027293 -aF2676.8103691203078 -aF675.5995946396804 -aF768.8364941055698 -aF0.0 -aF2552.50029006 -aF323.7817710867763 -aF782.5491538694472 -aF482.5090470451561 -asS'Bacteria.Deferribacteres.Deferribacteres' -p325 -(lp326 -F13948.34967542826 -aF16636.6005211 -aF13862.332695952755 -aF9562.841530059564 -aF16899.338721490207 -aF1783.85610227 -aF58931.68182696311 -aF42949.28173555919 -aF13607.81577114559 -aF21661.34803208753 -aF14316.70282 -aF13919.213973845255 -aF32844.50369648653 -aF21907.986456918592 -aF53165.67394663407 -aF14220.903856190467 -aF24211.8537201 -aF20618.556700999998 -aF15951.595159530696 -aF16793.89312977711 -aF22816.03288792206 -aF8339.651250949999 -aF30994.646379308833 -aF6868.595878839253 -aF9866.735007686644 -aF9978.8908079064 -aF4408.86413737 -aF15622.470454950964 -aF26997.945808460423 -aF30880.579010845955 -asS'Bacteria.Aquificae.Aquificae.Aquificales' -p327 -(lp328 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Bifidobacteriales' -p329 -(lp330 -F414.30741610226534 -aF395670.475045017 -aF11113.766730399722 -aF416666.6666667057 -aF76904.23708061314 -aF423219.8602645199 -aF71124.44358431139 -aF304895.9249488883 -aF52163.293789244344 -aF85291.55787640094 -aF325.379609544 -aF818.7772925767795 -aF0.0 -aF0.0 -aF2647.253474517346 -aF2355.609841212388 -aF15384.615384662 -aF24647.470079339997 -aF10451.045104512177 -aF654.3075245366534 -aF0.0 -aF4548.9006823400005 -aF422.654268808575 -aF0.0 -aF2306.509482312706 -aF863.5578583764576 -aF348.068221371 -aF0.0 -aF293.45593270121776 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Carnobacteriaceae.Lacticigenium' -p331 -(lp332 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Pseudomonadales.Moraxellaceae.Acinetobacter' -p333 -(lp334 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Deltaproteobacteria.Desulfovibrionales.Desulfovibrionaceae.Desulfovibrio' -p335 -(lp336 -F966.7173042392858 -aF801.7638805370001 -aF597.5143403436192 -aF2276.867030968944 -aF489.83590497203886 -aF0.0 -aF1645.0551577325996 -aF2345.3532688339487 -aF872.2958827635109 -aF1353.8342520092233 -aF2386.11713666 -aF1455.6040756953862 -aF2060.3563204462826 -aF2788.2891854214563 -aF2647.253474515345 -aF1308.672134012445 -aF2269.86128625 -aF1895.95923688 -aF1100.1100109997028 -aF1090.5125408994288 -aF205.5498458378028 -aF1061.41015921 -aF986.193293886008 -aF2589.7984461162723 -aF768.8364941055698 -aF671.6561120709116 -aF348.068221371 -aF1052.2907560260207 -aF1858.5542404348114 -aF1688.7816646570454 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Oceanospirillales.Hahellaceae' -p337 -(lp338 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Gracilibacteraceae.Lutispora' -p339 -(lp340 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Sphingobacteria.Sphingobacteriales.Cytophagaceae' -p341 -(lp342 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Carnobacteriaceae.Carnobacterium' -p343 -(lp344 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Bifidobacteriales.Bifidobacteriaceae.Gardnerella' -p345 -(lp346 -F0.0 -aF0.0 -aF0.0 -aF113.84335154844722 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Eubacteriaceae.Eubacterium' -p347 -(lp348 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Deltaproteobacteria' -p349 -(lp350 -F8009.9433779898 -aF5411.9061936299995 -aF3107.0745697856196 -aF9335.15482696267 -aF4653.441097234876 -aF3121.74817898 -aF6967.292432741008 -aF4983.875696277141 -aF4884.856943480463 -aF10250.459336644122 -aF7158.35140998 -aF5367.54002911111 -aF9695.794449151901 -aF11153.15674166582 -aF7390.249283038263 -aF5758.157389638737 -aF8196.72131148 -aF5450.882806019999 -aF5683.901723510133 -aF3707.74263904404 -aF3288.797533400842 -aF6974.981046249999 -aF5071.851225696897 -aF6643.396013964363 -aF6663.2496155776025 -aF6428.708501247296 -aF2668.52303051 -aF6394.689978955829 -aF3423.652548175706 -aF7961.3992762360685 -asS'Bacteria.Deinococcus_Thermus.Deinococci.Thermales.Thermaceae' -p351 -(lp352 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Acidimicrobiales.Acidimicrobiaceae.Ferrimicrobium' -p353 -(lp354 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Syntrophococcus' -p355 -(lp356 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Syntrophomonadaceae' -p357 -(lp358 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Coriobacteriales' -p359 -(lp360 -F1104.8197762730408 -aF3006.614552013 -aF2509.560229442 -aF6261.384335157595 -aF1714.425667401629 -aF4905.604281255999 -aF2128.8949100035634 -aF1759.0149516264612 -aF2267.9692951839274 -aF2514.263610866552 -aF3253.7960954419996 -aF2365.356623001452 -aF5817.4766694911405 -aF6472.81418044511 -aF16104.125303329196 -aF11778.04920607666 -aF7440.100882731999 -aF9953.785993601998 -aF7884.121745508539 -aF1744.8200654310758 -aF822.1993833512112 -aF13191.811978761998 -aF563.5390250784334 -aF675.5995946416823 -aF4869.297795993935 -aF2398.771828821227 -aF3480.6822137170006 -aF2428.3632831508226 -aF1565.0983077388944 -aF965.0180940903122 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Clostridiaceae' -p361 -(lp362 -F0.0 -aF0.0 -aF0.0 -aF113.84335154844722 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF96.70244657194442 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Acetanaerobacterium' -p363 -(lp364 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF80.94544277159405 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Hespellia' -p365 -(lp366 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Porphyromonadaceae.Barnesiella' -p367 -(lp368 -F7457.533489848778 -aF54319.5029064 -aF18164.43594650366 -aF93010.01821492636 -aF9061.96424198424 -aF134532.481047 -aF41126.37894331499 -aF42216.35883901107 -aF62979.76273549807 -aF114108.88695443406 -aF20824.2950108 -aF26837.70014560555 -aF5211.489516417643 -aF25293.766182029638 -aF39157.290977262426 -aF35072.41319142138 -aF7313.99747793 -aF16352.6484181 -aF28052.80528055743 -aF4143.947655399806 -aF0.0 -aF14708.1122062 -aF1408.8475626985842 -aF2026.7987839240457 -aF33956.945156361864 -aF4125.887545572742 -aF11138.1830839 -aF3480.654039176843 -aF195.63728846761182 -aF5548.854041010288 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Johnsonella' -p369 -(lp370 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales.Burkholderiales_incertae_sedis.Aquabacterium' -p371 -(lp372 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Chloroflexi.Thermomicrobia.Sphaerobacterales.Sphaerobacteraceae.Sphaerobacter' -p373 -(lp374 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Rubrobacterales.Rubrobacteraceae.Rubrobacter' -p375 -(lp376 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Aerococcaceae.Ignavigranum' -p377 -(lp378 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Aerococcaceae.Abiotrophia' -p379 -(lp380 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria' -p381 -(lp382 -F0.0 -aF0.0 -aF1792.5430210328589 -aF341.53005464534164 -aF244.91795248551233 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF96.70244657194442 -aF216.91973969600002 -aF818.7772925767795 -aF0.0 -aF497.90878311133156 -aF551.5111405247806 -aF174.48961786732468 -aF126.103404792 -aF236.99490461 -aF183.35166850061725 -aF436.20501635776895 -aF0.0 -aF454.890068234 -aF1127.078050154866 -aF0.0 -aF30625.32034857807 -aF863.5578583764577 -aF348.068221371 -aF161.89088554338815 -aF0.0 -aF723.7635705667334 -asS'Bacteria.Actinobacteria.Actinobacteria' -p383 -(lp384 -F828.6148322055308 -aF134495.89096 -aF4899.617590818478 -aF142873.4061929762 -aF27920.646583388974 -aF144195.034934 -aF25159.667118239755 -aF103048.9592494041 -aF18492.672714626053 -aF29590.94865103301 -aF1735.3579175700002 -aF1728.529839887646 -aF2787.5409041296684 -aF3087.0344552912557 -aF8713.876020290933 -aF6543.360670042199 -aF8827.238335439999 -aF13153.217205800001 -aF7334.066740004686 -aF1308.615049077312 -aF411.0996916756056 -aF7733.13115997 -aF422.654268808575 -aF450.3997297597869 -aF3075.345976424281 -aF1343.3122241418232 -aF2320.45480914 -aF1214.181641575411 -aF880.3677981027531 -aF723.7635705667334 -asS'Bacteria.Bacteroidetes.Sphingobacteria.Sphingobacteriales.Sphingobacteriaceae' -p385 -(lp386 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Enterobacteriales.Enterobacteriaceae.Plesiomonas' -p387 -(lp388 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Enterococcaceae.Catellicoccus' -p389 -(lp390 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Pseudobutyrivibrio' -p391 -(lp392 -F138.102472033755 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF97.81864423360588 -aF0.0 -asS'Bacteria.Fusobacteria.Fusobacteria.Fusobacteriales.Leptotrichiaceae' -p393 -(lp394 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Enterococcaceae.Enterococcus' -p395 -(lp396 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF148.65467519 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF2690.927729369995 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Bacillaceae.Cerasibacillus' -p397 -(lp398 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Enterococcaceae.Vagococcus' -p399 -(lp400 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Oceanospirillales.Oceanospirillaceae' -p401 -(lp402 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Streptococcaceae.Lactovum' -p403 -(lp404 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.TM7' -p405 -(lp406 -F0.0 -aF0.0 -aF0.0 -aF113.84335154844722 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF252.206809584 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF97.81864423360588 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Chromatiales' -p407 -(lp408 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Sporobacterium' -p409 -(lp410 -F138.102472033755 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF90.9752547306866 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF95.95087315297307 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Enterobacteriales.Enterobacteriaceae' -p411 -(lp412 -F0.0 -aF0.0 -aF1792.5430210328589 -aF341.53005464534164 -aF244.91795248551233 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF96.70244657194442 -aF108.45986984800001 -aF818.7772925767795 -aF0.0 -aF497.90878311133156 -aF551.5111405247806 -aF174.48961786732468 -aF126.103404792 -aF236.99490461 -aF183.35166850061725 -aF436.20501635776895 -aF0.0 -aF454.890068234 -aF1127.078050154866 -aF0.0 -aF30112.762685819 -aF863.5578583764577 -aF348.068221371 -aF161.89088554338815 -aF0.0 -aF241.25452352257804 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Carnobacteriaceae.Atopostipes' -p413 -(lp414 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Marinilabiaceae.Alkaliflexus' -p415 -(lp416 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Erysipelotrichi' -p417 -(lp418 -F0.0 -aF0.0 -aF478.01147227509546 -aF0.0 -aF0.0 -aF148.65467519 -aF0.0 -aF0.0 -aF0.0 -aF580.2146794316665 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF261.7344268014877 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF242.83632831508226 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Erysipelotrichi.Erysipelotrichales.Erysipelotrichaceae.Coprobacillus' -p419 -(lp420 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF290.10733971583323 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Euryarchaeota.Methanopyri' -p421 -(lp422 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Pseudomonadales.Moraxellaceae' -p423 -(lp424 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Deltaproteobacteria.Desulfovibrionales.Desulfohalobiaceae.Desulfohalobium' -p425 -(lp426 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Alphaproteobacteria.Sphingomonadales.Sphingomonadaceae' -p427 -(lp428 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF96.76795045475289 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Glycomycetaceae' -p429 -(lp430 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Anaerotruncus' -p431 -(lp432 -F414.3074161022653 -aF0.0 -aF239.00573613804806 -aF910.7468123865775 -aF244.91795248551233 -aF445.964025569 -aF967.6795045475291 -aF586.3383172084872 -aF348.91835310560447 -aF773.6195725755554 -aF542.299349241 -aF636.8267831146063 -aF242.39486122879754 -aF298.74526986679894 -aF661.813368630337 -aF436.2240446698137 -aF1134.9306431300001 -aF1540.46687996 -aF916.7583425010858 -aF1090.5125408994288 -aF616.6495375124077 -aF303.260045489 -aF845.3085376161497 -aF675.5995946396804 -aF128.1394156837612 -aF959.5087315297308 -aF348.068221371 -aF1457.017969884491 -aF1858.5542404348114 -aF1930.0361881766212 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Faecalibacterium' -p433 -(lp434 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF261.7344268014877 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Erysipelotrichi.Erysipelotrichales.Erysipelotrichaceae.Allobaculum' -p435 -(lp436 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Crenarchaeota.Thermoprotei' -p437 -(lp438 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Corynebacteriaceae.Corynebacterium' -p439 -(lp440 -F276.2049440685103 -aF0.0 -aF0.0 -aF227.68670309689443 -aF0.0 -aF0.0 -aF387.0718018196116 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF545.8515283845196 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF436.20501635776895 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF256.2788313685233 -aF0.0 -aF0.0 -aF161.89088554338815 -aF195.63728846761182 -aF482.5090470451561 -asS'Bacteria.Proteobacteria.Epsilonproteobacteria.Campylobacterales.Helicobacteraceae.Sulfurimonas' -p441 -(lp442 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Porphyromonadaceae.Proteiniphilum' -p443 -(lp444 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales' -p445 -(lp446 -F147907.74754850072 -aF452395.269593 -aF104086.99808768317 -aF263775.0455370971 -aF75189.8114132247 -aF492641.59357799997 -aF158312.36694393013 -aF140574.61155114733 -aF378576.41311898554 -aF501015.37568928703 -aF176681.127983 -aF100800.58224144793 -aF49084.95939882899 -aF152559.25114520398 -aF188396.2056029537 -aF293317.047635883 -aF116519.546028 -aF104396.255481 -aF170333.7000369324 -aF103162.48636905994 -aF7810.894141824499 -aF184382.107657 -aF15919.977458394971 -aF42337.57459743998 -aF206945.15633009007 -aF65534.44636346751 -aF113354.217427 -aF60304.354864822046 -aF34432.162770259674 -aF99155.60916767649 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Heliobacteriaceae' -p447 -(lp448 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Fusobacteria.Fusobacteria' -p449 -(lp450 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales.Burkholderiales_incertae_sedis.Tepidimonas' -p451 -(lp452 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Marinilabiaceae' -p453 -(lp454 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Euryarchaeota.Halobacteria' -p455 -(lp456 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Pasteurellales.Pasteurellaceae' -p457 -(lp458 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Aquificae' -p459 -(lp460 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Peptococcaceae' -p461 -(lp462 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF387.0718018196116 -aF732.9228965111089 -aF0.0 -aF0.0 -aF0.0 -aF90.9752547306866 -aF0.0 -aF99.5817566221663 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Fusobacteria.Fusobacteria.Fusobacteriales' -p463 -(lp464 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Enterococcaceae' -p465 -(lp466 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF148.65467519 -aF0.0 -aF0.0 -aF0.0 -aF96.70244657194442 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF4228.600717577131 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Porphyromonadaceae.Odoribacter' -p467 -(lp468 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Bifidobacteriales.Bifidobacteriaceae.Alloscardovia' -p469 -(lp470 -F0.0 -aF801.7638805370001 -aF0.0 -aF113.84335154844722 -aF0.0 -aF148.65467519 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Micrococcaceae' -p471 -(lp472 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Deinococcus_Thermus.Deinococci.Thermales.Thermaceae.Marinithermus' -p473 -(lp474 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Epsilonproteobacteria.Campylobacterales' -p475 -(lp476 -F35216.130368752565 -aF34676.2878332 -aF42901.52963667106 -aF48155.737704948166 -aF7837.374479556679 -aF11297.7553144 -aF61350.88058831693 -aF20521.841102347054 -aF33496.16189816604 -aF43709.505850474845 -aF38503.2537961 -aF30021.834061148584 -aF20118.77348202728 -aF24995.02091211983 -aF53937.78954337896 -aF33240.27220382999 -aF58638.0832282 -aF44910.5344235 -aF15584.891822487454 -aF38604.14394766556 -aF42548.81808838715 -aF27899.924184999996 -aF86503.24034937097 -aF38509.1768944768 -aF23065.094823157087 -aF13529.073114525496 -aF22276.3661678 -aF46219.8478225953 -aF31791.05937597442 -aF45355.850422220654 -asS'Bacteria.Firmicutes.Erysipelotrichi.Erysipelotrichales.Erysipelotrichaceae.Holdemania' -p477 -(lp478 -F0.0 -aF0.0 -aF358.50860420657176 -aF0.0 -aF0.0 -aF148.65467519 -aF0.0 -aF0.0 -aF0.0 -aF193.40489314388884 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF87.2448089338626 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF161.89088554338815 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Lactobacillaceae.Pediococcus' -p479 -(lp480 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli' -p481 -(lp482 -F22786.907885604585 -aF46502.3050712 -aF497848.94837432436 -aF48838.79781424884 -aF28410.482488380283 -aF204102.869035 -aF98316.23766203535 -aF62298.446203389256 -aF49197.487787903236 -aF19050.381974664044 -aF138177.874187 -aF27201.601164481894 -aF35874.43946183397 -aF15634.335789712813 -aF140966.24751862494 -aF54266.27115691721 -aF49936.9482976 -aF71098.4713829 -aF76640.99743313598 -aF48418.75681567029 -aF14594.039054469988 -aF331159.969674 -aF50436.742744475276 -aF6530.796081521915 -aF32419.272168084663 -aF65534.44636346751 -aF298062.420234 -aF11818.03464467534 -aF34040.88819325445 -aF29191.797346198917 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Staphylococcaceae.Jeotgalicoccus' -p483 -(lp484 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Alphaproteobacteria.Sphingomonadales' -p485 -(lp486 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF96.76795045475289 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales.Alcaligenaceae.Parasutterella' -p487 -(lp488 -F414.3074161022653 -aF5011.02425336 -aF7409.177820266482 -aF11156.64845177783 -aF489.83590497203886 -aF10851.7912888 -aF5225.469324558257 -aF3957.783641159788 -aF2791.3468248388326 -aF6575.766366886216 -aF759.219088937 -aF2911.208151380771 -aF121.19743061489991 -aF995.8175662216629 -aF4742.995808512913 -aF21287.733379871686 -aF10340.4791929 -aF7346.842042900001 -aF5867.25339201175 -aF2181.0250817888445 -aF0.0 -aF18347.2327521 -aF140.8847562698584 -aF562.9996622002341 -aF2434.6488980004706 -aF2494.7227019791003 -aF10558.069381599998 -aF1861.7451837429614 -aF293.4559327009177 -aF1206.2726176078866 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Thermoactinomycetaceae.Desmospora' -p489 -(lp490 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Prevotellaceae' -p491 -(lp492 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF297.30935037899997 -aF96.76795045475289 -aF0.0 -aF174.45917655230195 -aF193.40489314388884 -aF0.0 -aF0.0 -aF484.7897224575951 -aF199.1635132445326 -aF0.0 -aF87.2448089338626 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Coriobacteriales.Coriobacteriaceae.Adlercreutzia' -p493 -(lp494 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF183.35166850061725 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Enterococcaceae.Melissococcus' -p495 -(lp496 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Bacteroidales_incertae_sedis.Phocaeicola' -p497 -(lp498 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Chloroflexi.Thermomicrobia' -p499 -(lp500 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Oceanospirillales' -p501 -(lp502 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales' -p503 -(lp504 -F676978.3179116056 -aF219683.30326699998 -aF271032.50478010427 -aF371015.48269620445 -aF444526.0837623712 -aF93057.82666860001 -aF502515.9667118841 -aF548079.7420112959 -aF403872.9937191343 -aF261290.01063749992 -aF537635.574837 -aF729257.6419215983 -aF755181.1901585236 -aF661521.6092409979 -aF466578.4248838423 -aF537515.2678421106 -aF669230.769231 -aF671525.062211 -aF661716.1716168663 -aF743511.450381768 -aF843987.6670092138 -aF335860.50037900003 -aF773175.5424065583 -aF859925.6840444762 -aF596745.2588418953 -aF788044.5212055338 -aF495649.14723299997 -aF800307.5926825649 -aF803775.7996680805 -aF693848.0096499857 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Paenibacillaceae.Saccharibacillus' -p505 -(lp506 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Aerococcaceae.Dolosicoccus' -p507 -(lp508 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Streptococcaceae.Lactococcus' -p509 -(lp510 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF108.45986984800001 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF118.497452305 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Prevotellaceae.Hallella' -p511 -(lp512 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Carnobacteriaceae.Desemzia' -p513 -(lp514 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales.Oxalobacteraceae.Janthinobacterium' -p515 -(lp516 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF384.41824705228447 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Microbacteriaceae.Frigoribacterium' -p517 -(lp518 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Euryarchaeota.Halobacteria.Halobacteriales' -p519 -(lp520 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Peptostreptococcaceae.Peptostreptococcus' -p521 -(lp522 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Eubacteriaceae.Pseudoramibacter' -p523 -(lp524 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Euryarchaeota.Halobacteria.Halobacteriales.Halobacteriaceae' -p525 -(lp526 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Enterobacteriales.Enterobacteriaceae.Klebsiella' -p527 -(lp528 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Deltaproteobacteria.Desulfobacterales' -p529 -(lp530 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Carnobacteriaceae.Atopococcus' -p531 -(lp532 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Thermoactinomycetaceae.Seinonella' -p533 -(lp534 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Alphaproteobacteria.Rhodospirillales' -p535 -(lp536 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Catonella' -p537 -(lp538 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Alphaproteobacteria.Rhodospirillales.Acetobacteraceae.Tanticharoenia' -p539 -(lp540 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Nocardioidaceae.Nocardioides' -p541 -(lp542 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF696.136442743 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Shuttleworthia' -p543 -(lp544 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Flavobacteria.Flavobacteriales.Cryomorphaceae' -p545 -(lp546 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Coriobacteriales.Coriobacteriaceae.Eggerthella' -p547 -(lp548 -F138.102472033755 -aF0.0 -aF0.0 -aF569.2167577412359 -aF489.83590497203886 -aF594.6187007579999 -aF96.76795045475289 -aF146.58457930262185 -aF0.0 -aF0.0 -aF433.839479393 -aF90.9752547306866 -aF242.39486122879754 -aF398.3270264890652 -aF1323.6267372626749 -aF697.9584714713014 -aF882.7238335440001 -aF355.49235691399997 -aF916.7583425010858 -aF0.0 -aF205.5498458378028 -aF1364.6702047 -aF140.8847562698584 -aF112.59993244044718 -aF256.2788313685233 -aF0.0 -aF348.068221371 -aF242.83632831508226 -aF782.5491538694472 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Enterococcaceae.Bavariicoccus' -p549 -(lp550 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Coriobacteriales.Coriobacteriaceae.Asaccharobacter' -p551 -(lp552 -F276.2049440685103 -aF0.0 -aF119.50286806852372 -aF569.2167577412359 -aF0.0 -aF297.30935037899997 -aF677.3756531830702 -aF439.7537379068654 -aF523.3775296579065 -aF193.40489314388884 -aF976.138828633 -aF636.8267831146063 -aF2060.3563204462826 -aF1792.4716191987932 -aF4081.182439881575 -aF2704.589076953045 -aF2395.96469105 -aF3317.92866453 -aF733.4066740004686 -aF218.10250817888448 -aF0.0 -aF3487.49052312 -aF0.0 -aF112.59993244044718 -aF896.975909789331 -aF575.7052389176384 -aF696.136442743 -aF485.67265662916407 -aF195.63728846761182 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Veillonellaceae.Propionispira' -p553 -(lp554 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales' -p555 -(lp556 -F8009.9433779898 -aF23852.475446 -aF2868.068833650573 -aF11839.708560978503 -aF5143.277002205901 -aF3419.05752936 -aF8322.043739113149 -aF15537.965405999903 -aF28611.30495468558 -aF3384.5856300130513 -aF2928.4164859 -aF10280.203784581787 -aF363.59229184369747 -aF0.0 -aF220.60445621011232 -aF4972.954109235276 -aF13619.1677175 -aF16352.6484181 -aF18885.22185547656 -aF4362.050163577689 -aF205.5498458378028 -aF1819.56027293 -aF2817.6951253871653 -aF675.5995946396804 -aF768.8364941055698 -aF0.0 -aF2784.54577097 -aF404.72721385746996 -aF782.5491538694472 -aF482.5090470451561 -asS'Bacteria.Firmicutes.Clostridia.Thermoanaerobacterales.Thermoanaerobacteraceae.Ammonifex' -p557 -(lp558 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Alphaproteobacteria.Rhodobacterales.Rhodobacteraceae.Rhodobacter' -p559 -(lp560 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Deltaproteobacteria.Desulfovibrionales.Desulfohalobiaceae.Desulfonatronovibrio' -p561 -(lp562 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Microbacteriaceae.Leucobacter' -p563 -(lp564 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF225.19986487989345 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Thiotrichales.Thiotrichaceae.Thiothrix' -p565 -(lp566 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF482.5090470451561 -asS'Bacteria.Bacteroidetes.Bacteroidia' -p567 -(lp568 -F147907.74754850072 -aF452395.269593 -aF104086.99808768317 -aF263775.0455370971 -aF75189.8114132247 -aF492641.59357799997 -aF158312.36694393013 -aF140574.61155114733 -aF378576.41311898554 -aF501015.37568928703 -aF176681.127983 -aF100800.58224144793 -aF49084.95939882899 -aF152559.25114520398 -aF188396.2056029537 -aF293317.047635883 -aF116519.546028 -aF104396.255481 -aF170333.7000369324 -aF103162.48636905994 -aF7810.894141824499 -aF184382.107657 -aF15919.977458394971 -aF42337.57459743998 -aF206945.15633009007 -aF65534.44636346751 -aF113354.217427 -aF60304.354864822046 -aF34432.162770259674 -aF99155.60916767649 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Thermoactinomycetaceae' -p569 -(lp570 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Enterobacteriales.Enterobacteriaceae.Trabulsiella' -p571 -(lp572 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Prevotellaceae.Prevotella' -p573 -(lp574 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF148.65467519 -aF0.0 -aF0.0 -aF0.0 -aF193.40489314388884 -aF0.0 -aF0.0 -aF363.59229184369747 -aF0.0 -aF0.0 -aF87.2448089338626 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Sphingobacteria.Sphingobacteriales.Cyclobacteriaceae' -p575 -(lp576 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Sphingobacteria.Sphingobacteriales' -p577 -(lp578 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Enterobacteriales.Enterobacteriaceae.Kluyvera' -p579 -(lp580 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Subdoligranulum' -p581 -(lp582 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF87.2448089338626 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Bacillales_incertae_sedis.Rummeliibacillus' -p583 -(lp584 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Porphyromonadaceae.Tannerella' -p585 -(lp586 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Carnobacteriaceae.Dolosigranulum' -p587 -(lp588 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Ruminococcus' -p589 -(lp590 -F138.102472033755 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF126.103404792 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales' -p591 -(lp592 -F13395.939787317247 -aF20244.537983600003 -aF490200.76481792284 -aF36771.40255010344 -aF18613.76438895979 -aF199048.610079 -aF88832.97851748035 -aF45294.63500439313 -aF19539.427773921852 -aF15569.093898066038 -aF131778.741866 -aF16648.471615767852 -aF35268.45230876448 -aF15236.008763199743 -aF139642.62078126223 -aF49118.82742975554 -aF34047.9192938 -aF53560.8484418 -aF56288.962229586476 -aF42529.98909488748 -aF14388.489208666208 -aF325549.658832 -aF45646.66103128208 -aF5742.59655444479 -aF31650.43567399611 -aF63999.23239305115 -aF291101.055807 -aF11413.307430826873 -aF32964.88310669008 -aF23884.197828708206 -asS'Bacteria.Actinobacteria.Actinobacteria.Coriobacteriales.Coriobacteriaceae.Coriobacterium' -p593 -(lp594 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Coriobacteriales.Coriobacteriaceae.Gordonibacter' -p595 -(lp596 -F0.0 -aF0.0 -aF119.50286806852372 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF96.70244657194442 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF220.60445621011232 -aF87.2448089338626 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Bacillaceae.Lysinibacillus' -p597 -(lp598 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF363.59229184369747 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Chlamydiae.Chlamydiae' -p599 -(lp600 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Rubrobacterales.Rubrobacteraceae' -p601 -(lp602 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Bacteroidales_incertae_sedis' -p603 -(lp604 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Lactobacillaceae' -p605 -(lp606 -F5800.303825435715 -aF6814.99298457 -aF282385.277246669 -aF15027.322404415032 -aF9551.800146955266 -aF82057.3807046 -aF50609.63808786997 -aF18469.656992092347 -aF9595.254710401621 -aF8509.815298325104 -aF69956.6160521 -aF8824.599708876402 -aF21088.35292689837 -aF6771.559450312108 -aF76660.04853297152 -aF27394.870005243072 -aF13997.477931899999 -aF29742.8605285 -aF24385.771910525084 -aF20501.635768781096 -aF9660.842754368727 -aF172100.07581500002 -aF22823.330515691054 -aF2814.998311001171 -aF11788.826242958077 -aF24755.325273476457 -aF150365.471632 -aF6961.308078353686 -aF17216.081385129837 -aF5307.599517490712 -asS'Bacteria.Proteobacteria.Deltaproteobacteria.Desulfovibrionales.Desulfovibrionaceae' -p607 -(lp608 -F966.7173042392858 -aF801.7638805370001 -aF597.5143403436192 -aF2276.867030968944 -aF734.7538574575511 -aF0.0 -aF1645.0551577325996 -aF2345.3532688339487 -aF1046.755059315813 -aF1353.8342520092233 -aF2386.11713666 -aF1455.6040756953862 -aF2302.7511816740775 -aF2887.870942044723 -aF2647.253474515345 -aF1308.672134012445 -aF2900.37831021 -aF1895.95923688 -aF1100.1100109997028 -aF1090.5125408994288 -aF205.5498458378028 -aF1213.04018196 -aF986.193293886008 -aF2814.998311001171 -aF896.975909789331 -aF671.6561120709116 -aF464.090961829 -aF1133.2361988057178 -aF2054.191528907424 -aF2171.290711706204 -asS'Bacteria.Chloroflexi' -p609 -(lp610 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Rikenellaceae.Alistipes' -p611 -(lp612 -F19472.448556838477 -aF1002.20485067 -aF40630.975143358104 -aF9221.311475409222 -aF18368.846436464137 -aF4013.67623012 -aF4354.55777046688 -aF18176.487833513107 -aF7676.203768319297 -aF967.0244657194442 -aF34273.318871999996 -aF9370.45123726092 -aF25330.262998384784 -aF38139.81278625098 -aF14670.19633795296 -aF23381.608794247542 -aF43883.9848676 -aF7583.83694751 -aF18151.815181490096 -aF14176.663031662536 -aF1233.2990750228141 -aF6065.20090978 -aF4649.196956886322 -aF9796.194122282872 -aF43695.540748283674 -aF12953.367875681872 -aF7425.45538926 -aF13598.83438560859 -aF23378.655971862114 -aF1688.7816646570454 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Veillonellaceae' -p613 -(lp614 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF244.91795248551233 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Erysipelotrichi.Erysipelotrichales.Erysipelotrichaceae.Turicibacter' -p615 -(lp616 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Fusobacteria' -p617 -(lp618 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia' -p619 -(lp620 -F679878.4698247137 -aF222489.476849 -aF272466.5391965543 -aF371812.3861570385 -aF447465.09919150773 -aF93206.48134380001 -aF507547.900135652 -aF549105.8340665234 -aF404919.7487786303 -aF261966.92776302414 -aF538937.093275 -aF729985.4439595509 -aF756514.3618951964 -aF663513.2443740633 -aF467350.5404808874 -aF537777.0022689952 -aF669735.18285 -aF672354.544377 -aF662266.2266228813 -aF743947.655398204 -aF845632.0657760443 -aF336012.13040200004 -aF773457.311919252 -aF860939.0834365283 -aF598026.6529985426 -aF789867.587795072 -aF495997.215454 -aF801278.9379954011 -aF805732.1725521066 -aF696019.3003625325 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Coprococcus' -p621 -(lp622 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF242.39486122879754 -aF0.0 -aF0.0 -aF87.2448089338626 -aF126.103404792 -aF0.0 -aF183.35166850061725 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF112.59993244044718 -aF128.1394156837612 -aF0.0 -aF0.0 -aF80.94544277159405 -aF0.0 -aF241.25452352257804 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Prevotellaceae.Xylanibacter' -p623 -(lp624 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Deltaproteobacteria.Desulfovibrionales.Desulfovibrionaceae.Lawsonia' -p625 -(lp626 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF242.39486122879754 -aF0.0 -aF0.0 -aF0.0 -aF504.413619168 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF151.630022745 -aF0.0 -aF225.19986487989345 -aF128.1394156837612 -aF0.0 -aF0.0 -aF80.94544277159405 -aF195.63728846761182 -aF482.5090470451561 -asS'Bacteria.Actinobacteria.Actinobacteria.Rubrobacterales' -p627 -(lp628 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Eubacteriaceae.Garciella' -p629 -(lp630 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Planococcaceae.Sporosarcina' -p631 -(lp632 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Thermoanaerobacterales.Thermoanaerobacteraceae.Thermoanaerobacterium' -p633 -(lp634 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Thermoanaerobacterales.Thermoanaerobacteraceae' -p635 -(lp636 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Crenarchaeota.Thermoprotei.Thermoproteales.Thermoproteaceae' -p637 -(lp638 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Ruminococcaceae.Sporobacter' -p639 -(lp640 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Acidobacteria' -p641 -(lp642 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Nocardioidaceae' -p643 -(lp644 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF348.068221371 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Euryarchaeota' -p645 -(lp646 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Peptostreptococcaceae.Filifactor' -p647 -(lp648 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Lactobacillales.Leuconostocaceae.Leuconostoc' -p649 -(lp650 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Porphyromonadaceae.Paludibacter' -p651 -(lp652 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Thiotrichales.Thiotrichaceae' -p653 -(lp654 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF482.5090470451561 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Oribacterium' -p655 -(lp656 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Halanaerobiales.Halanaerobiaceae' -p657 -(lp658 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Aeromonadales.Aeromonadaceae' -p659 -(lp660 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales.Oxalobacteraceae.Massilia' -p661 -(lp662 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Euryarchaeota.Methanomicrobia' -p663 -(lp664 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Bacillaceae.Filobacillus' -p665 -(lp666 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales' -p667 -(lp668 -F552.4098881370206 -aF6814.99298457 -aF10635.755258139638 -aF14799.635701248131 -aF489.83590497203886 -aF15162.776869300002 -aF7934.971937292537 -aF4983.875696277141 -aF5059.316120029764 -aF9766.947103759381 -aF1193.05856833 -aF4275.83697234207 -aF363.59229184369747 -aF995.8175662216629 -aF8052.062651669599 -aF27656.604432027536 -aF16267.3392182 -aF9361.29873208 -aF10634.396773053804 -aF3707.74263904404 -aF0.0 -aF26231.9939348 -aF563.539025077433 -aF675.5995946396804 -aF3716.0430548480917 -aF3933.9857992681955 -aF14386.819816700001 -aF2185.5269548317383 -aF293.4559327009177 -aF2412.5452352257803 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Bacillales_incertae_sedis' -p669 -(lp670 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Anaerosporobacter' -p671 -(lp672 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Deferribacteres.Deferribacteres.Deferribacterales' -p673 -(lp674 -F13948.34967542826 -aF16636.6005211 -aF13862.332695952755 -aF9562.841530059564 -aF16899.338721490207 -aF1783.85610227 -aF58931.68182696311 -aF42949.28173555919 -aF13607.81577114559 -aF21661.34803208753 -aF14316.70282 -aF13919.213973845255 -aF32844.50369648653 -aF21907.986456918592 -aF53165.67394663407 -aF14220.903856190467 -aF24211.8537201 -aF20618.556700999998 -aF15951.595159530696 -aF16793.89312977711 -aF22816.03288792206 -aF8339.651250949999 -aF30994.646379308833 -aF6868.595878839253 -aF9866.735007686644 -aF9978.8908079064 -aF4408.86413737 -aF15622.470454950964 -aF26997.945808460423 -aF30880.579010845955 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales.Burkholderiales_incertae_sedis' -p675 -(lp676 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF241.25452352257804 -asS'Bacteria.Firmicutes.Clostridia.Clostridiales.Lachnospiraceae.Marvinbryantia' -p677 -(lp678 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF99.5817566221663 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Bacillaceae.Salirhabdus' -p679 -(lp680 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Prevotellaceae.Paraprevotella' -p681 -(lp682 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF121.19743061489991 -aF99.5817566221663 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Firmicutes.Bacilli.Bacillales.Staphylococcaceae' -p683 -(lp684 -F7457.533489848778 -aF22449.388655 -aF2868.068833650573 -aF10815.118397077482 -aF3673.7692872928274 -aF2675.7841534100003 -aF7354.36423456162 -aF14658.457930262186 -aF26343.33565944462 -aF3384.5856300130513 -aF2711.4967462 -aF10189.2285298377 -aF0.0 -aF0.0 -aF110.30222810455594 -aF4798.464491368952 -aF12736.443884 -aF16234.150965800001 -aF18151.815181490096 -aF4143.947655399806 -aF205.5498458378028 -aF1819.56027293 -aF2817.6951253871653 -aF675.5995946396804 -aF768.8364941055698 -aF0.0 -aF2668.52303051 -aF404.72721385746996 -aF782.5491538694472 -aF482.5090470451561 -asS'Bacteria.Proteobacteria.Gammaproteobacteria.Aeromonadales' -p685 -(lp686 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF128.1394156837612 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Actinomycetales.Beutenbergiaceae' -p687 -(lp688 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Actinobacteria.Actinobacteria.Acidimicrobiales' -p689 -(lp690 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Archaea.Crenarchaeota.Thermoprotei.Thermoproteales' -p691 -(lp692 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria' -p693 -(lp694 -F1000000.0 -aF1000000.0 -aF1000000.0 -aF1000000.0000000001 -aF1000000.0000000001 -aF1000000.0 -aF1000000.0 -aF999999.9999999999 -aF1000000.0 -aF999999.9999999999 -aF1000000.0 -aF999999.9999999999 -aF1000000.0 -aF1000000.0 -aF1000000.0 -aF999999.9999999999 -aF1000000.0 -aF1000000.0 -aF1000000.0 -aF1000000.0000000001 -aF999999.9999999999 -aF1000000.0 -aF1000000.0 -aF1000000.0000000001 -aF1000000.0 -aF1000000.0 -aF1000000.0 -aF1000000.0 -aF1000000.0 -aF1000000.0000000001 -asS'Bacteria.Bacteroidetes.Bacteroidia.Bacteroidales.Porphyromonadaceae' -p695 -(lp696 -F21129.678221271544 -aF104830.62737999999 -aF24617.5908221299 -aF144125.68306014413 -aF15429.831006617704 -aF214360.04162300003 -aF66479.58196241505 -aF67575.49105831565 -aF113921.84228879426 -aF198820.23015208586 -aF40563.9913232 -aF39847.16157200993 -aF6787.056114408335 -aF32065.325632351745 -aF48091.771453810485 -aF41005.06019893645 -aF18663.3039092 -aF23936.4853656 -aF32086.541987533004 -aF5888.767720832885 -aF205.5498458378028 -aF21683.093252500003 -aF1831.5018314991567 -aF4503.997297597869 -aF39210.661199417096 -aF12185.76089042368 -aF17171.365587700002 -aF8337.380605468485 -aF586.9118654018354 -aF13510.253317276378 -asS'Bacteria.Actinobacteria' -p697 -(lp698 -F828.6148322055308 -aF134495.89096 -aF4899.617590818478 -aF142873.4061929762 -aF27920.646583388974 -aF144195.034934 -aF25159.667118239755 -aF103048.9592494041 -aF18492.672714626053 -aF29590.94865103301 -aF1735.3579175700002 -aF1728.529839887646 -aF2787.5409041296684 -aF3087.0344552912557 -aF8713.876020290933 -aF6543.360670042199 -aF8827.238335439999 -aF13153.217205800001 -aF7334.066740004686 -aF1308.615049077312 -aF411.0996916756056 -aF7733.13115997 -aF422.654268808575 -aF450.3997297597869 -aF3075.345976424281 -aF1343.3122241418232 -aF2320.45480914 -aF1214.181641575411 -aF880.3677981027531 -aF723.7635705667334 -asS'Bacteria.Proteobacteria.Betaproteobacteria.Burkholderiales.Comamonadaceae.Verminephrobacter' -p699 -(lp700 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Cyanobacteria.Cyanobacteria' -p701 -(lp702 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -asS'Bacteria.Proteobacteria.Deltaproteobacteria.Desulfobacterales.Desulfobacteraceae' -p703 -(lp704 -F0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -aF0.0 -assS'subclass_sl' -p705 -(dp706 -g10 -(I0 -I10 -tp707 -sg12 -(I10 -I30 -tp708 -ssS'norm' -p709 -F1000000.0 -sS'cls' -p710 -(dp711 -S'class' -p712 -(S'rag2' -p713 -S'rag2' -p714 -S'rag2' -p715 -S'rag2' -p716 -S'rag2' -p717 -S'rag2' -p718 -S'rag2' -p719 -S'rag2' -p720 -S'rag2' -p721 -g3 -S'truc' -p722 -S'truc' -p723 -S'truc' -p724 -S'truc' -p725 -S'truc' -p726 -S'truc' -p727 -S'truc' -p728 -S'truc' -p729 -S'truc' -p730 -S'truc' -p731 -S'truc' -p732 -S'truc' -p733 -S'truc' -p734 -S'truc' -p735 -S'truc' -p736 -S'truc' -p737 -S'truc' -p738 -S'truc' -p739 -S'truc' -p740 -g5 -tp741 -sS'subclass' -p742 -(lp743 -S'rag2_subcl' -p744 -aS'rag2_subcl' -p745 -aS'rag2_subcl' -p746 -aS'rag2_subcl' -p747 -aS'rag2_subcl' -p748 -aS'rag2_subcl' -p749 -aS'rag2_subcl' -p750 -aS'rag2_subcl' -p751 -aS'rag2_subcl' -p752 -ag10 -aS'truc_subcl' -p753 -aS'truc_subcl' -p754 -aS'truc_subcl' -p755 -aS'truc_subcl' -p756 -aS'truc_subcl' -p757 -aS'truc_subcl' -p758 -aS'truc_subcl' -p759 -aS'truc_subcl' -p760 -aS'truc_subcl' -p761 -aS'truc_subcl' -p762 -aS'truc_subcl' -p763 -aS'truc_subcl' -p764 -aS'truc_subcl' -p765 -aS'truc_subcl' -p766 -aS'truc_subcl' -p767 -aS'truc_subcl' -p768 -aS'truc_subcl' -p769 -aS'truc_subcl' -p770 -aS'truc_subcl' -p771 -ag12 -ass. \ No newline at end of file