[med-svn] [metabit] 01/02: Imported Upstream version 0.0+20160617
Andreas Tille
tille at debian.org
Mon Jul 25 20:21:27 UTC 2016
This is an automated email from the git hooks/post-receive script.
tille pushed a commit to branch master
in repository metabit.
commit da41a3b2257a55396ab759f10c6242bcde1393ea
Author: Andreas Tille <tille at debian.org>
Date: Mon Jul 25 22:16:48 2016 +0200
Imported Upstream version 0.0+20160617
---
LICENSE | 21 +
README.md | 21 +
config.py | 144 ++
example/HMPII_10.tsv | 694 ++++++++
example/HMPII_689.tsv | 1876 ++++++++++++++++++++
example/HMP_10.tsv | 719 ++++++++
example/HMP_690.tsv | 719 ++++++++
.../SRS018978/fastexample_SRS018978.pair1.fastq | 1000 +++++++++++
.../SRS018978/fastexample_SRS018978.pair2.fastq | 1000 +++++++++++
.../fastexample_SRS018978.singleton.fastq | 1000 +++++++++++
.../tutorial_example_SRS018978.pair1.fastq.gz | Bin 0 -> 2608794 bytes
.../tutorial_example_SRS018978.pair2.fastq.gz | Bin 0 -> 2506488 bytes
.../tutorial_example_SRS018978.singleton.fastq.gz | Bin 0 -> 1700209 bytes
.../SRS024655/fastexample_SRS024655.pair1.fastq.gz | Bin 0 -> 38704 bytes
.../SRS024655/fastexample_SRS024655.pair2.fastq.gz | Bin 0 -> 41108 bytes
.../fastexample_SRS024655.singleton.fastq.gz | Bin 0 -> 37934 bytes
.../tutorial_example_SRS024655.pair1.fastq.gz | Bin 0 -> 2953012 bytes
.../tutorial_example_SRS024655.pair2.fastq.gz | Bin 0 -> 3136813 bytes
.../tutorial_example_SRS024655.singleton.fastq.gz | Bin 0 -> 2990089 bytes
example/Soil.tsv | 111 ++
example/SoilII.tsv | 160 ++
example/fastexample.yaml | 63 +
example/pcoa_symbols_and_color.R | 14 +
example/tutorial_example.yaml | 78 +
inputlib.py | 76 +
makefile.py | 417 +++++
metaBIT.py | 116 ++
nodes/__init__.py | 2 +
nodes/bam_rmdup.py | 38 +
nodes/bowtie2_simple.py | 99 ++
nodes/execute.py | 132 ++
nodes/metaphlan.py | 187 ++
nodes/picard_simple.py | 121 ++
nodes/remove_pair2.py | 46 +
nodes/samtools.py | 138 ++
nodes/tools/__init__.py | 1 +
nodes/tools/filterMetaphlan.py | 118 ++
nodes/tools/get_stats.py | 175 ++
nodes/tools/metaphlan2krona_2.py | 65 +
nodes/tools/reformat_taxa.py | 109 ++
nodes/tools/rmdup_collapsed.py | 156 ++
nodes/tools/statax_Rmodule/doBarplot.R | 129 ++
nodes/tools/statax_Rmodule/doClust.R | 136 ++
nodes/tools/statax_Rmodule/doDiv.R | 89 +
nodes/tools/statax_Rmodule/doHeatmap.R | 73 +
nodes/tools/statax_Rmodule/doPcoa.R | 221 +++
nodes/tools/statax_Rmodule/pvegclust-internal.R | 277 +++
nodes/tools/statax_Rmodule/pvegclust.R | 544 ++++++
parts.py | 455 +++++
pypeline/__init__.py | 25 +
pypeline/atomiccmd/__init__.py | 22 +
pypeline/atomiccmd/builder.py | 542 ++++++
pypeline/atomiccmd/command.py | 474 +++++
pypeline/atomiccmd/pprint.py | 198 +++
pypeline/atomiccmd/sets.py | 191 ++
pypeline/common/__init__.py | 22 +
pypeline/common/bamfiles.py | 138 ++
pypeline/common/bedtools.py | 179 ++
pypeline/common/console.py | 87 +
pypeline/common/fileutils.py | 346 ++++
pypeline/common/formats/__init__.py | 25 +
pypeline/common/formats/_common.py | 25 +
pypeline/common/formats/_graph.py | 295 +++
pypeline/common/formats/fasta.py | 113 ++
pypeline/common/formats/fastq.py | 76 +
pypeline/common/formats/msa.py | 230 +++
pypeline/common/formats/newick.py | 357 ++++
pypeline/common/formats/phylip.py | 90 +
pypeline/common/makefile.py | 882 +++++++++
pypeline/common/procs.py | 85 +
pypeline/common/sampling.py | 67 +
pypeline/common/sequences.py | 205 +++
pypeline/common/signals.py | 54 +
pypeline/common/system.py | 36 +
pypeline/common/testing.py | 113 ++
pypeline/common/text.py | 120 ++
pypeline/common/timer.py | 111 ++
pypeline/common/utilities.py | 303 ++++
pypeline/common/vcffilter.py | 397 +++++
pypeline/common/vcfwrap.py | 129 ++
pypeline/common/versions.py | 432 +++++
pypeline/config.py | 182 ++
pypeline/logger.py | 175 ++
pypeline/node.py | 313 ++++
pypeline/nodegraph.py | 444 +++++
pypeline/nodes/__init__.py | 22 +
pypeline/nodes/adapterremoval.py | 318 ++++
pypeline/nodes/bedtools.py | 63 +
pypeline/nodes/bowtie2.py | 133 ++
pypeline/nodes/bwa.py | 439 +++++
pypeline/nodes/examl.py | 290 +++
pypeline/nodes/formats.py | 257 +++
pypeline/nodes/gatk.py | 176 ++
pypeline/nodes/mafft.py | 93 +
pypeline/nodes/mapdamage.py | 285 +++
pypeline/nodes/misc.py | 54 +
pypeline/nodes/newick.py | 116 ++
pypeline/nodes/paleomix.py | 372 ++++
pypeline/nodes/phylip.py | 188 ++
pypeline/nodes/picard.py | 277 +++
pypeline/nodes/raxml.py | 348 ++++
pypeline/nodes/samtools.py | 156 ++
pypeline/nodes/sequences.py | 225 +++
pypeline/nodes/validation.py | 359 ++++
pypeline/pipeline.py | 442 +++++
pypeline/tools/__init__.py | 22 +
pypeline/tools/bam_pipeline/__init__.py | 23 +
pypeline/tools/bam_pipeline/config.py | 120 ++
pypeline/tools/bam_pipeline/makefile.py | 688 +++++++
pypeline/tools/bam_pipeline/mkfile.py | 298 ++++
pypeline/tools/bam_pipeline/nodes.py | 145 ++
pypeline/tools/bam_pipeline/parts/__init__.py | 7 +
pypeline/tools/bam_pipeline/parts/lane.py | 272 +++
pypeline/tools/bam_pipeline/parts/library.py | 236 +++
pypeline/tools/bam_pipeline/parts/prefix.py | 103 ++
pypeline/tools/bam_pipeline/parts/reads.py | 134 ++
pypeline/tools/bam_pipeline/parts/sample.py | 40 +
pypeline/tools/bam_pipeline/parts/statistics.py | 219 +++
pypeline/tools/bam_pipeline/parts/summary.py | 465 +++++
pypeline/tools/bam_pipeline/parts/target.py | 71 +
pypeline/tools/bam_pipeline/paths.py | 44 +
pypeline/tools/bam_pipeline/pipeline.py | 383 ++++
pypeline/tools/bam_pipeline/pipeline.pyp | 0
pypeline/tools/bam_pipeline/remap.py | 290 +++
pypeline/tools/bam_stats/__init__.py | 0
pypeline/tools/bam_stats/common.py | 171 ++
pypeline/tools/bam_stats/coverage.py | 191 ++
pypeline/tools/cat.py | 95 +
pypeline/tools/cleanup.py | 320 ++++
pypeline/tools/coverage.py | 169 ++
pypeline/tools/create_pileup.py | 125 ++
pypeline/tools/depths.py | 390 ++++
pypeline/tools/duphist.py | 100 ++
pypeline/tools/factory.py | 96 +
pypeline/tools/genotype.py | 518 ++++++
pypeline/tools/gtf_to_bed.py | 316 ++++
pypeline/tools/phylo_pipeline/__init__.py | 22 +
pypeline/tools/phylo_pipeline/config.py | 157 ++
pypeline/tools/phylo_pipeline/makefile.py | 697 ++++++++
pypeline/tools/phylo_pipeline/mkfile.py | 234 +++
pypeline/tools/phylo_pipeline/parts/__init__.py | 22 +
pypeline/tools/phylo_pipeline/parts/genotype.py | 392 ++++
pypeline/tools/phylo_pipeline/parts/msa.py | 92 +
pypeline/tools/phylo_pipeline/parts/paml.py | 175 ++
pypeline/tools/phylo_pipeline/parts/phylo.py | 266 +++
pypeline/tools/phylo_pipeline/pipeline.py | 133 ++
pypeline/tools/rmdup_collapsed.py | 151 ++
pypeline/tools/sample_pileup.py | 237 +++
pypeline/tools/vcf_filter.py | 71 +
pypeline/tools/vcf_to_fasta.py | 292 +++
pypeline/tools/zip.py | 67 +
pypeline/ui.py | 472 +++++
152 files changed, 33167 insertions(+)
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..980b38d
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+#
+# Copyright (c) 2015 Guillaume Louvel <guillaume.louvel at ens.fr>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..adf43f7
--- /dev/null
+++ b/README.md
@@ -0,0 +1,21 @@
+# metaBIT pipeline #
+
+An integrative and automated metagenomic pipeline for analysing microbial profiles from high-throughput sequencing shotgun data
+
+## Brief description ##
+
+The metaBIT pipeline proposes tools for visualising microbial profiles (barplots, heatmaps) and performing a range of statistical analyses (diversity indices, hierarchical clustering and principal coordinate analysis). It uses as input fastq files containing trimmed reads from shotgun high through-put sequencing.
+metaBIT has been developed by Guillaume Louvel in the research group of Dr. Ludovic Orlando, at the Centre for GeoGenetics, Natural History Museum of Denmark, University of Copenhagen, Denmark.
+
+For detailed instructions and an in-depth description of metaBIT, please refer to the companion Wiki site.
+
+For questions, bug reports, and/or suggestions contact Guillaume Louvel (guillaume.louvel at ens.fr) or Kristian Hanghøj (k.hanghoej at snm.ku.dk)
+
+## Citation ##
+
+Guillaume Louvel, Clio Der Sarkissian, Kristian Hanghøj, Ludovic Orlando. *An integrative and automated metagenomic pipeline for analysing microbial profiles from high-throughput sequencing shotgun data*. Molecular Ecology Resources (2016)
+
+
+***
+[Go to the wiki](https://bitbucket.org/Glouvel/metabit/wiki/Home)
+***
diff --git a/config.py b/config.py
new file mode 100644
index 0000000..1930e13
--- /dev/null
+++ b/config.py
@@ -0,0 +1,144 @@
+#!/usr/bin/env python
+
+
+"""Parse arguments from command line and return a tuple (config, args)"""
+
+from glob import glob
+import os.path
+import optparse
+
+import pypeline.ui
+
+from pypeline.config import PerHostConfig, PerHostValue, ConfigError
+
+
+__version_info__ = (1, 0, 1)
+__version__ = 'v%i.%i.%i' % __version_info__
+
+__foreword__ = """
+metaBIT, an integrative and automated metagenomic pipeline for analysing
+microbial profiles from high-throughput sequencing shotgun data
+
+Guillaume Louvel, Clio Der Sarkissian, Ludovic Orlando.
+Centre for GeoGenetics, Natural History Museum of Denmark, University of Copenhagen.
+Version: %s
+ -----
+""" % __version__
+
+__description__ = """%prog processes trimmed reads produced using shotgun
+high through-put DNA sequencing, provided in fastq (or compressed gz/bz2), and
+generates taxonomic microbial profiles as well as their statistical comparison
+across samples, libraries, environments, etc."""
+
+__epilog__ = """Please report bugs and suggestions for improvements to:
+Guillaume Louvel (guillaume.louvel at ens.fr)
+Clio Der Sarkissian (clio.dersarkissian at snm.ku.dk)
+Kristian hanghoej (k.hanghoej at snm.ku.dk)
+Ludovic Orlando (lorlando at snm.ku.dk)
+"""
+
+
+class metaBITHelpFormatter(optparse.IndentedHelpFormatter):
+ def format_usage(self, usage):
+ return usage + "\n"
+ def format_epilog(self, epilog):
+ return "\n" + epilog
+
+
+def _run_config_parser(argv):
+ # Helper class for optparse.OptionParser
+ # allows reading from and writing to a config file
+ per_host_cfg = PerHostConfig("metaBIT")
+
+ usage_str = ("Usage:\n %prog [options] makefile.yaml # yaml formatted file, "
+ "other extensions allowed\n"
+ " %prog [options] --write-config # configure metaBIT "
+ "dependencies for future runs")
+ version_str = "%%prog %s" % (__version__,)
+
+
+ parser = optparse.OptionParser(usage = __foreword__ + "\n" + usage_str,
+ version = version_str,
+ description = __description__,
+ epilog = __epilog__,
+ formatter=metaBITHelpFormatter(),
+ prog="metaBIT")
+
+ pypeline.ui.add_optiongroup(parser,
+ ui_default=PerHostValue("quiet"),
+ color_default=PerHostValue("on"))
+ pypeline.logger.add_optiongroup(parser, default = PerHostValue("warning"))
+
+ group = optparse.OptionGroup(parser, "Scheduling")
+ group.add_option("--bowtie2-max-threads", type = int, default = PerHostValue(2),
+ help = "Maximum number of threads to use per Bowtie 2 "
+ "instance [%default]")
+ group.add_option("--metaphlan-max-threads", type = int, default = PerHostValue(2),
+ help = "Maximum number of threads to use per MetaPhlAn "
+ "instance [%default]")
+ group.add_option("--max-threads", type = int, default = per_host_cfg.max_threads,
+ help = "Maximum number of threads to use in total [%default]")
+ group.add_option("--dry-run", action = "store_true", default = False,
+ help = "If passed, only a dry-run in performed, the dependency "
+ "tree is printed, and no tasks are executed.")
+ parser.add_option_group(group)
+
+ group = optparse.OptionGroup(parser, "Required paths")
+ group.add_option("--jar-root", default = PerHostValue("~/install/jar_root",
+ is_path = True),
+ help = "Folder containing Picard JARs (http://picard.sf.net) " \
+ "[%default]")
+ group.add_option("--temp-root", default = per_host_cfg.temp_root,
+ help = "Location for temporary files and folders [%default/]")
+ group.add_option("--destination", default = None,
+ help = "The destination folder for result files. By default, "
+ "files will be placed in ./out_{makefile name}/")
+ group.add_option("--metaphlan-path", default = PerHostValue("~/install/metaphlan",
+ is_path=True),
+ help = "Path to the folder containing metaphlan(2).py and " \
+ "the database [%default]")
+ group.add_option("--lefse-path", default = PerHostValue("~/install/lefse",
+ is_path = True),
+ help = "Path to the LEfSe executables [%default] "
+ "(https://bitbucket.org/nsegata/lefse, "
+ "\"Metagenomic biomarker discovery and explanation\", "
+ "Segata et al. 2011)")
+ parser.add_option_group(group)
+
+ group = optparse.OptionGroup(parser, "Misc")
+ group.add_option("--jre-option", dest = "jre_options", action = "append",
+ default = PerHostValue([]),
+ help = "May be specified one or more times with options to be "
+ "passed to the JRE (Jave Runtime Environment); e.g. to "
+ "change the maximum amount of dedicated RAM (default is %default)")
+ parser.add_option_group(group)
+
+ group = optparse.OptionGroup(parser, "Files and executables")
+ group.add_option("--list-output-files", action = "store_true", default = False,
+ help = "List all files generated by metaBIT for a given makefile")
+ group.add_option("--list-orphan-files", action = "store_true", default = False,
+ help = "List all files at destination not generated by the pipeline. " \
+ "This option is useful for rerunning metaBIT after editing the makefile from a previous analysis. If the same destination is required and the same name is given for the"
+ " set of analyses, metaBIT will NOT erase the results of previous analyses,"
+ " even if new parameters are required. It will then report the list of such "
+ "files for traceability. Useful only for cleaning up after making changes "
+ "to a makefile.")
+ group.add_option("--list-executables", action="store_true", default=False,
+ help="List all executables required by the pipeline, "
+ "with version requirements (if any).")
+ parser.add_option_group(group)
+
+ return per_host_cfg.parse_args(parser, argv)
+
+
+def parse_config(argv):
+ config, args = _run_config_parser(argv)
+ pypeline.ui.set_ui_colors(config.ui_colors)
+
+ if not glob( os.path.join(config.metaphlan_path, "metaphlan*.py")):
+ raise ConfigError(("Wrong metaphlan-path: %s\n'metaphlan*.py' not found"))
+
+ if config.list_output_files and config.list_orphan_files:
+ raise ConfigError("Error: Both --list-output-files and --list-orphan-files set!")
+
+ return config, args
diff --git a/example/HMPII_10.tsv b/example/HMPII_10.tsv
new file mode 100644
index 0000000..8952150
--- /dev/null
+++ b/example/HMPII_10.tsv
@@ -0,0 +1,694 @@
+ID mouth-SRS013239 mouth-SRS015154 nose-SRS019019 nose-SRS022006 skin-SRS019063 skin-SRS046688 stool-SRS013800 stool-SRS048870 vagina-SRS015072 vagina-SRS019600
+k__Archaea 0 0 0 0 0 0 0 0.03163 0 0
+k__Archaea|p__Euryarchaeota 0 0 0 0 0 0 0 0.03163 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria 0 0 0 0 0 0 0 0.03163 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales 0 0 0 0 0 0 0 0.03163 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae 0 0 0 0 0 0 0 0.03163 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter 0 0 0 0 0 0 0 0.03163 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter|s__Methanobrevibacter_smithii 0 0 0 0 0 0 0 0.02796 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter|s__Methanobrevibacter_smithii|t__Methanobrevibacter_smithii_unclassified 0 0 0 0 0 0 0 0.02796 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter|s__Methanobrevibacter_unclassified 0 0 0 0 0 0 0 0.00367 0 0
+k__Bacteria 100.0 91.91727 44.25983 91.49932 89.00753 99.96283 100.0 99.96837 100.0 100.0
+k__Bacteria|p__Actinobacteria 2.86909 14.45378 34.98131 50.89245 50.97086 99.51745 0.02604 0.13404 1.20058 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria 2.86909 14.45378 34.98131 50.89245 50.97086 99.51745 0.02604 0.13404 1.20058 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales 2.78757 14.44531 34.98131 50.89245 50.97086 98.57484 0 0 0.10885 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae 0.2863 1.87158 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces 0.2863 1.87158 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_graevenitzii 0.03131 0.03016 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_graevenitzii|t__Actinomyces_graevenitzii_unclassified 0.03131 0.03016 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_johnsonii 0 0.00394 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_johnsonii|t__Actinomyces_johnsonii_unclassified 0 0.00394 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_massiliensis 0 0.08071 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_massiliensis|t__Actinomyces_massiliensis_unclassified 0 0.08071 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_naeslundii 0 0.02864 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_naeslundii|t__GCF_000285995 0 0.02864 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_odontolyticus 0.06119 0.61461 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_odontolyticus|t__Actinomyces_odontolyticus_unclassified 0.06119 0.61461 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_oris 0.13859 1.02738 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_oris|t__GCF_000180155 0.13859 1.02738 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_viscosus 0.05522 0.08614 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_viscosus|t__GCF_000175315 0.05522 0.08614 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae 0.00828 1.10988 15.53018 31.38847 31.88976 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium 0.00828 1.10988 15.53018 31.38847 31.88976 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_accolens 0 0 15.1665 26.01059 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_accolens|t__Corynebacterium_accolens_unclassified 0 0 15.1665 26.01059 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_durum 0 0.04995 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_durum|t__GCF_000318135 0 0.04995 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_kroppenstedtii 0 0 0 0 28.0617 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_kroppenstedtii|t__GCF_000023145 0 0 0 0 28.0617 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_matruchotii 0.00828 1.05994 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_matruchotii|t__Corynebacterium_matruchotii_unclassified 0.00828 1.05994 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_pseudodiphtheriticum 0 0 0.26648 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_pseudodiphtheriticum|t__GCF_000466825 0 0 0.26648 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_pseudogenitalium 0 0 0.0374 5.23366 3.02238 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_pseudogenitalium|t__GCF_000156615 0 0 0.0374 5.23366 3.02238 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_tuberculostearicum 0 0 0.0598 0.14421 0.80568 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_tuberculostearicum|t__GCF_000175635 0 0 0.0598 0.14421 0.80568 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae 2.43649 11.4562 0 0.18462 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Kocuria 0 0 0 0.1227 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Kocuria|s__Kocuria_unclassified 0 0 0 0.1227 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia 2.43649 11.4562 0 0.06192 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_aeria 0 0.28042 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_aeria|t__Rothia_aeria_unclassified 0 0.28042 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_dentocariosa 0.45298 0.91913 0 0.06192 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_dentocariosa|t__Rothia_dentocariosa_unclassified 0.45298 0.91913 0 0.06192 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_mucilaginosa 1.98352 10.25664 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_mucilaginosa|t__Rothia_mucilaginosa_unclassified 1.98352 10.25664 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae 0.05649 0.00764 19.45113 19.31936 19.0811 98.57484 0 0 0.10885 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacteriaceae_unclassified 0.05514 0 4.11393 1.50223 0 0 0 0 0.10885 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium 0.00135 0.00764 15.33721 17.81713 19.0811 98.57484 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_acnes 0.00135 0 14.56893 16.95236 18.94845 98.56191 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_acnes|t__Propionibacterium_acnes_unclassified 0.00135 0 14.56893 16.95236 18.94845 98.56191 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_avidum 0 0 0.06138 0.05552 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_avidum|t__Propionibacterium_avidum_unclassified 0 0 0.06138 0.05552 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_granulosum 0 0 0.7069 0.80925 0.13265 0.01293 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_granulosum|t__Propionibacterium_granulosum_unclassified 0 0 0.7069 0.80925 0.13265 0.01293 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_propionicum 0 0.00764 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_propionicum|t__GCF_000277715 0 0.00764 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales 0.0217 0 0 0 0 0.83283 0.01028 0.00244 1.09173 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae 0.0217 0 0 0 0 0.83283 0.01028 0.00244 1.09173 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium 0 0 0 0 0 0 0.01028 0.00244 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_adolescentis 0 0 0 0 0 0 0.01028 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_adolescentis|t__Bifidobacterium_adolescentis_unclassified 0 0 0 0 0 0 0.01028 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_pseudocatenulatum 0 0 0 0 0 0 0 0.00244 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_pseudocatenulatum|t__GCF_000173435 0 0 0 0 0 0 0 0.00244 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Gardnerella 0 0 0 0 0 0.83283 0 0 1.09173 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Gardnerella|s__Gardnerella_vaginalis 0 0 0 0 0 0.83283 0 0 1.09173 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Gardnerella|s__Gardnerella_vaginalis|t__Gardnerella_vaginalis_unclassified 0 0 0 0 0 0.83283 0 0 1.09173 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Scardovia 0.0217 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Scardovia|s__Scardovia_wiggsiae 0.0217 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Scardovia|s__Scardovia_wiggsiae|t__Scardovia_wiggsiae_unclassified 0.0217 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales 0.05983 0.00847 0 0 0 0.10979 0.01576 0.1316 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae 0.05983 0.00847 0 0 0 0.10979 0.01576 0.1316 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Adlercreutzia 0 0 0 0 0 0 0.00212 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Adlercreutzia|s__Adlercreutzia_equolifaciens 0 0 0 0 0 0 0.00212 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Adlercreutzia|s__Adlercreutzia_equolifaciens|t__GCF_000478885 0 0 0 0 0 0 0.00212 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium 0.05983 0.00847 0 0 0 0.10979 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_parvulum 0.05983 0.00847 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_parvulum|t__GCF_000024225 0.05983 0.00847 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_vaginae 0 0 0 0 0 0.10979 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_vaginae|t__Atopobium_vaginae_unclassified 0 0 0 0 0 0.10979 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella 0 0 0 0 0 0 0.01364 0.1316 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_aerofaciens 0 0 0 0 0 0 0.01364 0.1316 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_aerofaciens|t__GCF_000169035 0 0 0 0 0 0 0.01364 0.1316 0 0
+k__Bacteria|p__Bacteroidetes 7.63093 3.81501 0 1.21937 0 0.03254 95.51547 80.9104 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname 0.0155 0.00934 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname|o__Bacteroidetes_noname 0.0155 0.00934 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname|o__Bacteroidetes_noname|f__Bacteroidetes_noname 0.0155 0.00934 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname|o__Bacteroidetes_noname|f__Bacteroidetes_noname|g__Bacteroidetes_noname 0.0155 0.00934 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname|o__Bacteroidetes_noname|f__Bacteroidetes_noname|g__Bacteroidetes_noname|s__Bacteroidetes_oral_taxon_274 0.0155 0.00934 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname|o__Bacteroidetes_noname|f__Bacteroidetes_noname|g__Bacteroidetes_noname|s__Bacteroidetes_oral_taxon_274|t__GCF_000163695 0.0155 0.00934 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia 5.70971 2.58536 0 1.21937 0 0.03087 95.51547 80.9104 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales 5.70971 2.58536 0 1.21937 0 0.03087 95.51547 80.9104 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae 0 0 0 1.15163 0 0 52.57161 62.16081 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides 0 0 0 1.15163 0 0 52.57161 62.16081 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_caccae 0 0 0 0.18454 0 0 0.00497 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_caccae|t__Bacteroides_caccae_unclassified 0 0 0 0.18454 0 0 0.00497 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_cellulosilyticus 0 0 0 0 0 0 6.59658 9.43027 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_cellulosilyticus|t__Bacteroides_cellulosilyticus_unclassified 0 0 0 0 0 0 6.59658 9.43027 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_dorei 0 0 0 0.01755 0 0 7.05914 7.80124 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_dorei|t__Bacteroides_dorei_unclassified 0 0 0 0.01755 0 0 7.05914 7.80124 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_eggerthii 0 0 0 0 0 0 1.32439 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_eggerthii|t__Bacteroides_eggerthii_unclassified 0 0 0 0 0 0 1.32439 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_faecis 0 0 0 0 0 0 2.13877 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_faecis|t__GCF_000226135 0 0 0 0 0 0 2.13877 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_finegoldii 0 0 0 0 0 0 13.75084 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_finegoldii|t__Bacteroides_finegoldii_unclassified 0 0 0 0 0 0 0.23409 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_finegoldii|t__GCF_000156195 0 0 0 0 0 0 13.51674 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_massiliensis 0 0 0 0 0 0 1.85621 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_massiliensis|t__Bacteroides_massiliensis_unclassified 0 0 0 0 0 0 1.85621 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_nordii 0 0 0 0 0 0 0.34648 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_nordii|t__GCF_000273175 0 0 0 0 0 0 0.34648 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_ovatus 0 0 0 0.58783 0 0 1.03787 7.29167 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_ovatus|t__Bacteroides_ovatus_unclassified 0 0 0 0.58783 0 0 1.03787 7.29167 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_salyersiae 0 0 0 0 0 0 8.92304 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_salyersiae|t__Bacteroides_salyersiae_unclassified 0 0 0 0 0 0 8.92304 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_sp_2_1_22 0 0 0 0 0 0 0 2.44631 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_sp_2_1_22|t__GCF_000162155 0 0 0 0 0 0 0 2.44631 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_stercoris 0 0 0 0 0 0 6.53316 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_stercoris|t__Bacteroides_stercoris_unclassified 0 0 0 0 0 0 6.53316 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_thetaiotaomicron 0 0 0 0 0 0 0.30603 4.12265 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_thetaiotaomicron|t__Bacteroides_thetaiotaomicron_unclassified 0 0 0 0 0 0 0.30603 4.12265 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_uniformis 0 0 0 0 0 0 1.60588 27.62148 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_uniformis|t__Bacteroides_uniformis_unclassified 0 0 0 0 0 0 1.60588 27.62148 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_vulgatus 0 0 0 0.36171 0 0 0.96221 3.41759 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_vulgatus|t__Bacteroides_vulgatus_unclassified 0 0 0 0.36171 0 0 0.96221 3.41759 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_xylanisolvens 0 0 0 0 0 0 0.12603 0.0296 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_xylanisolvens|t__Bacteroides_xylanisolvens_unclassified 0 0 0 0 0 0 0.12603 0.0296 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidales_noname 0 0 0 0 0 0 0.19925 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidales_noname|g__Bacteroidales_noname 0 0 0 0 0 0 0.19925 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidales_noname|g__Bacteroidales_noname|s__Bacteroidales_bacterium_ph8 0 0 0 0 0 0 0.19925 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidales_noname|g__Bacteroidales_noname|s__Bacteroidales_bacterium_ph8|t__GCF_000311925 0 0 0 0 0 0 0.19925 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae 0.00109 1.87721 0 0 0 0.03023 22.17702 5.38674 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Barnesiella 0 0 0 0 0 0 2.36721 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Barnesiella|s__Barnesiella_intestinihominis 0 0 0 0 0 0 2.36721 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Barnesiella|s__Barnesiella_intestinihominis|t__GCF_000296465 0 0 0 0 0 0 2.36721 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Butyricimonas 0 0 0 0 0 0 0.00084 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Butyricimonas|s__Butyricimonas_synergistica 0 0 0 0 0 0 0.00084 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Butyricimonas|s__Butyricimonas_synergistica|t__GCF_000379665 0 0 0 0 0 0 0.00084 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Coprobacter 0 0 0 0 0 0 0.289 0.71863 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Coprobacter|s__Coprobacter_fastidiosus 0 0 0 0 0 0 0.289 0.71863 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Coprobacter|s__Coprobacter_fastidiosus|t__GCF_000473955 0 0 0 0 0 0 0.289 0.71863 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Odoribacter 0 0 0 0 0 0 0.79425 1.21408 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Odoribacter|s__Odoribacter_splanchnicus 0 0 0 0 0 0 0.79425 1.21408 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Odoribacter|s__Odoribacter_splanchnicus|t__GCF_000190535 0 0 0 0 0 0 0.79425 1.21408 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides 0 0 0 0 0 0 18.72572 3.45403 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_distasonis 0 0 0 0 0 0 11.02681 1.74656 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_distasonis|t__Parabacteroides_distasonis_unclassified 0 0 0 0 0 0 11.02681 1.74656 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_goldsteinii 0 0 0 0 0 0 0.01782 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_goldsteinii|t__Parabacteroides_goldsteinii_unclassified 0 0 0 0 0 0 0.01782 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_merdae 0 0 0 0 0 0 7.68109 1.70747 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_merdae|t__Parabacteroides_merdae_unclassified 0 0 0 0 0 0 7.68109 1.70747 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas 0.00109 1.87721 0 0 0 0.03023 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_catoniae 0.00109 0.12003 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_catoniae|t__GCF_000318215 0.00109 0.12003 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_gingivalis 0 0 0 0 0 0.01548 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_gingivalis|t__Porphyromonas_gingivalis_unclassified 0 0 0 0 0 0.01548 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_gulae 0 0 0 0 0 0.01474 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_gulae|t__GCF_000378065 0 0 0 0 0 0.01474 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_sp_oral_taxon_279 0 1.75718 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_sp_oral_taxon_279|t__GCF_000292995 0 1.75718 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae 5.70862 0.70815 0 0.02386 0 0.00064 12.15899 0.00045 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Alloprevotella 3.90588 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Alloprevotella|s__Alloprevotella_unclassified 3.90588 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Paraprevotella 0 0 0 0 0 0 12.15899 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Paraprevotella|s__Paraprevotella_clara 0 0 0 0 0 0 2.62889 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Paraprevotella|s__Paraprevotella_clara|t__GCF_000233955 0 0 0 0 0 0 2.62889 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Paraprevotella|s__Paraprevotella_unclassified 0 0 0 0 0 0 9.47092 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Paraprevotella|s__Paraprevotella_xylaniphila 0 0 0 0 0 0 0.05918 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Paraprevotella|s__Paraprevotella_xylaniphila|t__GCF_000205165 0 0 0 0 0 0 0.05918 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella 1.80274 0.70815 0 0.02386 0 0.00064 0 0.00045 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Candidatus_Prevotella_conceptionensis 0 0.03478 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Candidatus_Prevotella_conceptionensis|t__GCF_000312305 0 0.03478 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_bivia 0 0 0 0 0 0 0 0.00045 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_bivia|t__Prevotella_bivia_unclassified 0 0 0 0 0 0 0 0.00045 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_copri 0 0 0 0.02386 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_copri|t__GCF_000157935 0 0 0 0.02386 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_denticola 0.01809 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_denticola|t__Prevotella_denticola_unclassified 0.01809 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_histicola 0.54093 0.054 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_histicola|t__GCF_000234055 0.54093 0.054 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_maculosa 0.03908 0.0071 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_maculosa|t__Prevotella_maculosa_unclassified 0.03908 0.0071 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_melaninogenica 0.13473 0.33638 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_melaninogenica|t__Prevotella_melaninogenica_unclassified 0.13473 0.33638 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_nanceiensis 0.53973 0.10676 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_nanceiensis|t__GCF_000379965 0.53973 0.10676 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_nigrescens 0.02809 0.07389 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_nigrescens|t__Prevotella_nigrescens_unclassified 0.02809 0.07389 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oris 0.04507 0.00769 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oris|t__Prevotella_oris_unclassified 0.04507 0.00769 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oulorum 0.25257 0.0343 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oulorum|t__GCF_000224615 0.25257 0.0343 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_pallens 0.00595 0.04114 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_pallens|t__GCF_000220255 0.00595 0.04114 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_saccharolytica 0.00304 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_saccharolytica|t__GCF_000318195 0.00304 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_salivae 0.16987 0.00539 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_salivae|t__GCF_000185845 0.16987 0.00539 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_timonensis 0 0 0 0 0 0.00064 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_timonensis|t__GCF_000177055 0 0 0 0 0 0.00064 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_veroralis 0.0256 0.00672 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_veroralis|t__Prevotella_veroralis_unclassified 0.0256 0.00672 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae 0 0 0 0.04388 0 0 8.4086 13.3624 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes 0 0 0 0.04388 0 0 8.4086 13.3624 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_finegoldii 0 0 0 0 0 0 0.08904 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_finegoldii|t__GCF_000265365 0 0 0 0 0 0 0.08904 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_indistinctus 0 0 0 0 0 0 0.0602 0.2023 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_indistinctus|t__GCF_000231275 0 0 0 0 0 0 0.0602 0.2023 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_onderdonkii 0 0 0 0.04388 0 0 0.98692 2.38486 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_onderdonkii|t__GCF_000374505 0 0 0 0.04388 0 0 0.98692 2.38486 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_putredinis 0 0 0 0 0 0 6.14538 10.77524 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_putredinis|t__GCF_000154465 0 0 0 0 0 0 6.14538 10.77524 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_senegalensis 0 0 0 0 0 0 0.07602 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_senegalensis|t__GCF_000312145 0 0 0 0 0 0 0.07602 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_shahii 0 0 0 0 0 0 0.98659 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_shahii|t__GCF_000210575 0 0 0 0 0 0 0.98659 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_sp_AP11 0 0 0 0 0 0 0.06445 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_sp_AP11|t__GCF_000321205 0 0 0 0 0 0 0.06445 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia 1.90572 1.2203 0 0 0 0.00167 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales 1.90572 1.2203 0 0 0 0.00167 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae 1.90572 1.2203 0 0 0 0.00167 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Bergeyella 0 0 0 0 0 0.00167 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Bergeyella|s__Bergeyella_zoohelcum 0 0 0 0 0 0.00167 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Bergeyella|s__Bergeyella_zoohelcum|t__Bergeyella_zoohelcum_unclassified 0 0 0 0 0 0.00167 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga 1.82428 1.12219 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_gingivalis 0 0.09612 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_gingivalis|t__GCF_000174755 0 0.09612 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_granulosa 0 0.01488 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_granulosa|t__GCF_000411115 0 0.01488 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_ochracea 0 0.04909 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_ochracea|t__Capnocytophaga_ochracea_unclassified 0 0.04909 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_329 1.82428 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_329|t__GCF_000213295 1.82428 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_unclassified 0 0.96211 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Riemerella 0.08144 0.09812 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Riemerella|s__Riemerella_unclassified 0.08144 0.09812 0 0 0 0 0 0 0 0
+k__Bacteria|p__Candidatus_Saccharibacteria 0 0.11568 0 0 0 0 0 0 0 0
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname 0 0.11568 0 0 0 0 0 0 0 0
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname 0 0.11568 0 0 0 0 0 0 0 0
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname 0 0.11568 0 0 0 0 0 0 0 0
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname|g__Candidatus_Saccharibacteria_noname 0 0.11568 0 0 0 0 0 0 0 0
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname|g__Candidatus_Saccharibacteria_noname|s__candidate_division_TM7_single_cell_isolate_TM7b 0 0.064 0 0 0 0 0 0 0 0
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname|g__Candidatus_Saccharibacteria_noname|s__candidate_division_TM7_single_cell_isolate_TM7b|t__GCF_000170655 0 0.064 0 0 0 0 0 0 0 0
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname|g__Candidatus_Saccharibacteria_noname|s__candidate_division_TM7_single_cell_isolate_TM7c 0 0.05167 0 0 0 0 0 0 0 0
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname|g__Candidatus_Saccharibacteria_noname|s__candidate_division_TM7_single_cell_isolate_TM7c|t__GCF_000170675 0 0.05167 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes 52.19624 22.04307 9.02315 39.38751 38.03667 0.41283 1.63385 18.3353 96.25038 99.92219
+k__Bacteria|p__Firmicutes|c__Bacilli 27.66044 19.2325 6.88319 35.29032 37.82996 0.39165 0.00522 0 96.25038 99.92219
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales 2.06325 11.52515 4.73513 19.6456 37.80301 0.31636 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname 2.06325 11.52515 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella 2.06325 11.52515 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_haemolysans 2.06325 11.07586 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_haemolysans|t__GCF_000204355 0 3.14645 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_haemolysans|t__Gemella_haemolysans_unclassified 2.06325 7.92941 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_morbillorum 0 0.08809 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_morbillorum|t__GCF_000185645 0 0.08809 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_sanguinis 0 0.19305 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_sanguinis|t__GCF_000204335 0 0.19305 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_unclassified 0 0.16815 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae 0 0 4.73513 19.6456 37.80301 0.31636 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus 0 0 4.73513 19.6456 37.80301 0.31636 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_caprae_capitis 0 0 0 0.2425 0.22819 0.01827 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_caprae_capitis|t__Staphylococcus_caprae_capitis_unclassified 0 0 0 0.2425 0.22819 0.01827 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_epidermidis 0 0 4.73513 19.4031 37.57482 0.2981 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_epidermidis|t__Staphylococcus_epidermidis_unclassified 0 0 4.73513 19.4031 37.57482 0.2981 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales 25.59719 7.70735 2.14806 15.64472 0.02695 0.07529 0.00522 0 96.25038 99.92219
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae 0.00949 0.05583 0 0.0804 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Abiotrophia 0.00949 0.05583 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Abiotrophia|s__Abiotrophia_defectiva 0.00949 0.05583 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Abiotrophia|s__Abiotrophia_defectiva|t__GCF_000160075 0.00949 0.05583 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Facklamia 0 0 0 0.0804 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Facklamia|s__Facklamia_unclassified 0 0 0 0.0804 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae 0.18767 1.52795 2.04654 15.45681 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Dolosigranulum 0 0 2.04654 15.45681 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Dolosigranulum|s__Dolosigranulum_pigrum 0 0 2.04654 15.45681 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Dolosigranulum|s__Dolosigranulum_pigrum|t__GCF_000245815 0 0 2.04654 15.45681 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella 0.18767 1.52795 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_adiacens 0.01474 0.21839 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_adiacens|t__GCF_000160675 0.01474 0.21839 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_elegans 0.17292 1.00836 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_elegans|t__GCF_000162475 0.17292 1.00836 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_unclassified 0 0.30119 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae 0 0 0 0 0 0.07492 0 0 96.25038 99.92219
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus 0 0 0 0 0 0.07492 0 0 96.25038 99.92219
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_coleohominis 0 0 0 0 0 0 0 0 0.00735 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_coleohominis|t__GCF_000161935 0 0 0 0 0 0 0 0 0.00735 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_crispatus 0 0 0 0 0 0 0 0 66.90238 99.92219
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_crispatus|t__Lactobacillus_crispatus_unclassified 0 0 0 0 0 0 0 0 66.90238 99.92219
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_iners 0 0 0 0 0 0.07492 0 0 28.86622 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_iners|t__Lactobacillus_iners_unclassified 0 0 0 0 0 0.07492 0 0 28.86622 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_jensenii 0 0 0 0 0 0 0 0 0.27418 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_jensenii|t__Lactobacillus_jensenii_unclassified 0 0 0 0 0 0 0 0 0.27418 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_vaginalis 0 0 0 0 0 0 0 0 0.20024 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_vaginalis|t__GCF_000159435 0 0 0 0 0 0 0 0 0.20024 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae 25.40003 6.12357 0.10151 0.10751 0.02695 0.00037 0.00522 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus 25.40003 6.12357 0.10151 0.10751 0.02695 0.00037 0.00522 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_australis 0 1.20762 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_australis|t__Streptococcus_australis_unclassified 0 1.20762 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_cristatus 0 0.14278 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_cristatus|t__Streptococcus_cristatus_unclassified 0 0.14278 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_gordonii 0.47722 0.03258 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_gordonii|t__GCF_000017005 0.47722 0.03258 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_infantis 0.06771 0.43638 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_infantis|t__Streptococcus_infantis_unclassified 0.06771 0.43638 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_intermedius 0.02456 0.02547 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_intermedius|t__Streptococcus_intermedius_unclassified 0.02456 0.02547 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_mitis_oralis_pneumoniae 21.36358 0.78698 0.10151 0.10751 0.02695 0.00037 0.00323 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_mitis_oralis_pneumoniae|t__Streptococcus_mitis_oralis_pneumoniae_unclassified 21.36358 0.78698 0.10151 0.10751 0.02695 0.00037 0.00323 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_mutans 0.02431 0.01724 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_mutans|t__Streptococcus_mutans_unclassified 0.02431 0.01724 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_oligofermentans 0 0.08823 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_oligofermentans|t__GCF_000385925 0 0.08823 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_parasanguinis 0.74446 0.20051 0 0 0 0 0.00132 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_parasanguinis|t__Streptococcus_parasanguinis_unclassified 0.74446 0.20051 0 0 0 0 0.00132 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_salivarius 0.92578 0.2064 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_salivarius|t__Streptococcus_salivarius_unclassified 0.92578 0.2064 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sanguinis 0.28288 2.61166 0 0 0 0 0.00067 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sanguinis|t__Streptococcus_sanguinis_unclassified 0.28288 2.61166 0 0 0 0 0.00067 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_thermophilus 0.0852 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_thermophilus|t__Streptococcus_thermophilus_unclassified 0.0852 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_tigurinus 0.5869 0.36771 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_tigurinus|t__Streptococcus_tigurinus_unclassified 0.5869 0.36771 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_vestibularis 0.81744 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_vestibularis|t__Streptococcus_vestibularis_unclassified 0.81744 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia 0.11367 0.43358 2.13996 4.09719 0.20672 0 1.33394 17.87493 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales 0.11367 0.43358 2.13996 4.09719 0.20672 0 1.33394 17.87493 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae 0 0 0 0 0 0 0.03513 0.00476 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridiaceae_noname 0 0 0 0 0 0 0.03513 0.0028 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridiaceae_noname|s__Clostridiaceae_bacterium_JC118 0 0 0 0 0 0 0.03513 0.0028 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridiaceae_noname|s__Clostridiaceae_bacterium_JC118|t__GCF_000313565 0 0 0 0 0 0 0.03513 0.0028 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium 0 0 0 0 0 0 0 0.00195 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_asparagiforme 0 0 0 0 0 0 0 0.00015 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_asparagiforme|t__GCF_000158075 0 0 0 0 0 0 0 0.00015 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_bolteae 0 0 0 0 0 0 0 0.00125 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_bolteae|t__Clostridium_bolteae_unclassified 0 0 0 0 0 0 0 0.00125 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hathewayi 0 0 0 0 0 0 0 9e-05 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hathewayi|t__Clostridium_hathewayi_unclassified 0 0 0 0 0 0 0 9e-05 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_leptum 0 0 0 0 0 0 0 0.00046 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_leptum|t__GCF_000154345 0 0 0 0 0 0 0 0.00046 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis 0.00902 0 0 0 0 0 0 0.00337 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis|g__Clostridiales_Family_XIII_Incertae_Sedis_noname 0 0 0 0 0 0 0 0.00113 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis|g__Clostridiales_Family_XIII_Incertae_Sedis_noname|s__Eubacterium_infirmum 0 0 0 0 0 0 0 0.00113 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis|g__Clostridiales_Family_XIII_Incertae_Sedis_noname|s__Eubacterium_infirmum|t__GCF_000242675 0 0 0 0 0 0 0 0.00113 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis|g__Clostridiales_Family_XIII_Incertae_Sedis_unclassified 0.00902 0 0 0 0 0 0 0.00224 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis 0 0.00707 2.13996 3.78808 0.20672 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Finegoldia 0 0 0.28552 0.85956 0.20672 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Finegoldia|s__Finegoldia_magna 0 0 0.28552 0.85956 0.20672 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Finegoldia|s__Finegoldia_magna|t__Finegoldia_magna_unclassified 0 0 0.28552 0.85956 0.20672 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Parvimonas 0 0.00707 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Parvimonas|s__Parvimonas_unclassified 0 0.00707 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus 0 0 1.85444 2.92852 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_rhinitidis 0 0 1.85444 2.92852 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_rhinitidis|t__GCF_000246925 0 0 1.85444 2.92852 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname 0 0 0 0 0 0 0.00506 0.0178 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Clostridiales_noname 0 0 0 0 0 0 0 0.00134 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Clostridiales_noname|s__Clostridiales_bacterium_1_7_47FAA 0 0 0 0 0 0 0 0.00134 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Clostridiales_noname|s__Clostridiales_bacterium_1_7_47FAA|t__GCF_000155435 0 0 0 0 0 0 0 0.00134 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Flavonifractor 0 0 0 0 0 0 0.00506 0.01028 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Flavonifractor|s__Flavonifractor_plautii 0 0 0 0 0 0 0.00506 0.01028 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Flavonifractor|s__Flavonifractor_plautii|t__GCF_000239295 0 0 0 0 0 0 0.00506 0.01028 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Pseudoflavonifractor 0 0 0 0 0 0 0 0.00619 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Pseudoflavonifractor|s__Pseudoflavonifractor_capillosus 0 0 0 0 0 0 0 0.00619 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Pseudoflavonifractor|s__Pseudoflavonifractor_capillosus|t__GCF_000169255 0 0 0 0 0 0 0 0.00619 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae 0 0.00277 0 0 0 0 0.2765 10.32672 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium 0 0.00277 0 0 0 0 0.2765 10.32672 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_brachy 0 0.00277 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_brachy|t__GCF_000488855 0 0.00277 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_eligens 0 0 0 0 0 0 0.05676 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_eligens|t__GCF_000146185 0 0 0 0 0 0 0.05676 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_hallii 0 0 0 0 0 0 0.00429 0.00639 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_hallii|t__GCF_000173975 0 0 0 0 0 0 0.00429 0.00639 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_ramulus 0 0 0 0 0 0 0.00527 0.1718 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_ramulus|t__GCF_000469345 0 0 0 0 0 0 0.00527 0.1718 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_rectale 0 0 0 0 0 0 0.13528 9.86474 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_rectale|t__Eubacterium_rectale_unclassified 0 0 0 0 0 0 0.13528 9.86474 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_siraeum 0 0 0 0 0 0 0 0.00381 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_siraeum|t__Eubacterium_siraeum_unclassified 0 0 0 0 0 0 0 0.00381 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_ventriosum 0 0 0 0 0 0 0.07489 0.27998 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_ventriosum|t__GCF_000153885 0 0 0 0 0 0 0.07489 0.27998 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae 0.10466 0.41663 0 0.23847 0 0 0.39265 1.96132 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes 0 0 0 0 0 0 0.00103 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes|s__Anaerostipes_hadrus 0 0 0 0 0 0 0.00103 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes|s__Anaerostipes_hadrus|t__GCF_000332875 0 0 0 0 0 0 0.00103 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia 0 0 0 0.22911 0 0 0.03163 0.56788 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_gnavus 0 0 0 0 0 0 0 0.00012 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_gnavus|t__Ruminococcus_gnavus_unclassified 0 0 0 0 0 0 0 0.00012 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_obeum 0 0 0 0 0 0 0.01221 0.07361 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_obeum|t__Ruminococcus_obeum_unclassified 0 0 0 0 0 0 0.01221 0.07361 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_torques 0 0 0 0.22911 0 0 0.01942 0.49414 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_torques|t__GCF_000210035 0 0 0 0 0 0 0 0.46811 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_torques|t__Ruminococcus_torques_unclassified 0 0 0 0.22911 0 0 0.01942 0.02603 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Catonella 0.01007 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Catonella|s__Catonella_morbi 0.01007 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Catonella|s__Catonella_morbi|t__GCF_000160035 0.01007 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus 0 0 0 0 0 0 0.17628 0.10697 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_catus 0 0 0 0 0 0 0.00881 0.01158 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_catus|t__GCF_000210555 0 0 0 0 0 0 0.00881 0.01158 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_comes 0 0 0 0 0 0 0.16748 0.09539 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_comes|t__GCF_000155875 0 0 0 0 0 0 0.16748 0.09539 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea 0 0 0 0 0 0 0.04929 0.19819 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_formicigenerans 0 0 0 0 0 0 0.01324 0.13719 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_formicigenerans|t__Dorea_formicigenerans_unclassified 0 0 0 0 0 0 0.01324 0.13719 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_longicatena 0 0 0 0 0 0 0.00038 0.061 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_longicatena|t__GCF_000154065 0 0 0 0 0 0 0.00038 0.061 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_unclassified 0 0 0 0 0 0 0.03567 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Johnsonella 0 0.00261 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Johnsonella|s__Johnsonella_ignava 0 0.00261 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Johnsonella|s__Johnsonella_ignava|t__GCF_000235445 0 0.00261 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnoanaerobaculum 0.05655 0.07688 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnoanaerobaculum|s__Lachnoanaerobaculum_saburreum 0.05655 0.07688 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnoanaerobaculum|s__Lachnoanaerobaculum_saburreum|t__Lachnoanaerobaculum_saburreum_unclassified 0.05655 0.07688 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname 0.03014 0.28377 0 0 0 0 0.04534 0.01249 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_3_1_46FAA 0 0 0 0 0 0 0.00099 0.00409 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_3_1_46FAA|t__GCF_000209405 0 0 0 0 0 0 0.00099 0.00409 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_7_1_58FAA 0 0 0 0 0 0 0.02233 0.0084 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_7_1_58FAA|t__GCF_000242155 0 0 0 0 0 0 0.02233 0.0084 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_8_1_57FAA 0 0 0 0 0 0 0.02202 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_8_1_57FAA|t__GCF_000185545 0 0 0 0 0 0 0.02202 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_ICM7 0 0.21978 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_ICM7|t__GCF_000287675 0 0.21978 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_oral_taxon_082 0.03014 0.03036 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_oral_taxon_082|t__GCF_000242315 0.03014 0.03036 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_oral_taxon_107 0 0.03363 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_oral_taxon_107|t__GCF_000209465 0 0.03363 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium 0 0.00911 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sinus 0 0.00911 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sinus|t__GCF_000160635 0 0.00911 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia 0 0 0 0.00937 0 0 0.08908 1.0758 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_hominis 0 0 0 0 0 0 0 0.26209 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_hominis|t__GCF_000225345 0 0 0 0 0 0 0 0.26209 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_intestinalis 0 0 0 0 0 0 0.06229 0.0025 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_intestinalis|t__Roseburia_intestinalis_unclassified 0 0 0 0 0 0 0.06229 0.0025 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_inulinivorans 0 0 0 0 0 0 0.01345 0.81121 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_inulinivorans|t__GCF_000174195 0 0 0 0 0 0 0.01345 0.81121 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_unclassified 0 0 0 0.00937 0 0 0.01334 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Stomatobaculum 0.00791 0.04426 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Stomatobaculum|s__Stomatobaculum_longum 0.00791 0.04426 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Stomatobaculum|s__Stomatobaculum_longum|t__GCF_000242235 0.00791 0.04426 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Oscillospiraceae 0 0 0 0 0 0 0.01693 0.06442 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Oscillospiraceae|g__Oscillibacter 0 0 0 0 0 0 0.01693 0.06442 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Oscillospiraceae|g__Oscillibacter|s__Oscillibacter_unclassified 0 0 0 0 0 0 0.01693 0.06442 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae 0 0.0071 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname 0 0.0071 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname|s__Eubacterium_yurii 0 0.0071 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname|s__Eubacterium_yurii|t__GCF_000146855 0 0.0071 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae 0 0 0 0.07064 0 0 0.60767 5.49655 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Anaerotruncus 0 0 0 0 0 0 0 0.05656 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Anaerotruncus|s__Anaerotruncus_unclassified 0 0 0 0 0 0 0 0.05656 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium 0 0 0 0 0 0 0.14485 1.65022 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_prausnitzii 0 0 0 0 0 0 0.14485 1.65022 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_prausnitzii|t__Faecalibacterium_prausnitzii_unclassified 0 0 0 0 0 0 0.14485 0.73425 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_prausnitzii|t__GCF_000162015 0 0 0 0 0 0 0 0.57715 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_prausnitzii|t__GCF_000166035 0 0 0 0 0 0 0 0.33883 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus 0 0 0 0 0 0 0.00055 0.01372 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_albus 0 0 0 0 0 0 0.00055 0.01172 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_albus|t__Ruminococcus_albus_unclassified 0 0 0 0 0 0 0.00055 0.01172 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_bromii 0 0 0 0 0 0 0 0.00077 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_bromii|t__GCF_000209875 0 0 0 0 0 0 0 0.00077 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_flavefaciens 0 0 0 0 0 0 0 0.00123 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_flavefaciens|t__Ruminococcus_flavefaciens_unclassified 0 0 0 0 0 0 0 0.00123 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Subdoligranulum 0 0 0 0.07064 0 0 0.46226 3.77605 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Subdoligranulum|s__Subdoligranulum_unclassified 0 0 0 0.07064 0 0 0.46226 3.77605 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia 0 0.01841 0 0 0 0 0.04958 0.00238 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales 0 0.01841 0 0 0 0 0.04958 0.00238 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae 0 0.01841 0 0 0 0 0.04958 0.00238 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname 0 0 0 0 0 0 0.04338 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Eubacterium_biforme 0 0 0 0 0 0 0.04338 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Eubacterium_biforme|t__GCF_000156655 0 0 0 0 0 0 0.04338 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania 0 0 0 0 0 0 0.0062 0.00238 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania|s__Holdemania_filiformis 0 0 0 0 0 0 0.0062 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania|s__Holdemania_filiformis|t__GCF_000157995 0 0 0 0 0 0 0.0062 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania|s__Holdemania_unclassified 0 0 0 0 0 0 0 0.00238 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Solobacterium 0 0.01841 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Solobacterium|s__Solobacterium_moorei 0 0.01841 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Solobacterium|s__Solobacterium_moorei|t__GCF_000186945 0 0.01841 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes 24.42213 2.35859 0 0 0 0.02118 0.24511 0.45798 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales 24.42213 2.35859 0 0 0 0.02118 0.24511 0.45798 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae 0 0 0 0 0 0 0 0.45756 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Phascolarctobacterium 0 0 0 0 0 0 0 0.45756 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Phascolarctobacterium|s__Phascolarctobacterium_succinatutens 0 0 0 0 0 0 0 0.45756 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Phascolarctobacterium|s__Phascolarctobacterium_succinatutens|t__GCF_000188175 0 0 0 0 0 0 0 0.45756 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae 24.42213 2.35859 0 0 0 0.02118 0.24511 0.00042 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas 0 0 0 0 0 0 0.19602 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_funiformis 0 0 0 0 0 0 0.01091 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_funiformis|t__GCF_000245775 0 0 0 0 0 0 0.01091 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_hypermegale 0 0 0 0 0 0 0.07906 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_hypermegale|t__GCF_000209975 0 0 0 0 0 0 0.07906 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_rupellensis 0 0 0 0 0 0 0.00553 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_rupellensis|t__GCF_000378365 0 0 0 0 0 0 0.00553 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_unclassified 0 0 0 0 0 0 0.10053 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera 0.03348 0.01124 0 0 0 0.02118 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_genomosp_type_1 0 0 0 0 0 0.02118 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_genomosp_type_1|t__GCF_000177555 0 0 0 0 0 0.02118 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_micronuciformis 0.03348 0.01124 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_micronuciformis|t__GCF_000165735 0.03348 0.01124 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Mitsuokella 0 0.01702 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Mitsuokella|s__Mitsuokella_unclassified 0 0.01702 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas 0.03192 0.21203 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_artemidis 0.01929 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_artemidis|t__GCF_000187125 0.01929 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_flueggei 0.00074 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_flueggei|t__GCF_000160695 0.00074 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_noxia 0.01189 0.21203 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_noxia|t__Selenomonas_noxia_unclassified 0.01189 0.21203 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella 24.35672 2.11829 0 0 0 0 0.04909 0.00042 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_atypica 0.11556 0.09135 0 0 0 0 0.02825 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_atypica|t__Veillonella_atypica_unclassified 0.11556 0.09135 0 0 0 0 0.02825 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_dispar 0.15879 0.0238 0 0 0 0 0.00156 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_dispar|t__GCF_000160015 0.15879 0.0238 0 0 0 0 0.00156 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_parvula 2.58775 0.35266 0 0 0 0 0.01528 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_parvula|t__Veillonella_parvula_unclassified 2.58775 0.35266 0 0 0 0 0.01528 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_oral_taxon_780 21.49463 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_oral_taxon_780|t__GCF_000221605 21.49463 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_unclassified 0 1.65048 0 0 0 0 0.004 0.00042 0 0
+k__Bacteria|p__Fusobacteria 1.65945 3.23503 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia 1.65945 3.23503 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales 1.65945 3.23503 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae 1.22467 2.63936 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium 1.22467 2.63936 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_nucleatum 1.22467 0.6214 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_nucleatum|t__Fusobacterium_nucleatum_unclassified 1.22467 0.6214 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_periodonticum 0 2.01796 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_periodonticum|t__Fusobacterium_periodonticum_unclassified 0 2.01796 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae 0.43478 0.59567 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia 0.33119 0.41568 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichiaceae_unclassified 0.10359 0.17999 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_buccalis 0 0.06144 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_buccalis|t__GCF_000023905 0 0.06144 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_goodfellowii 0 0.01414 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_goodfellowii|t__GCF_000176335 0 0.01414 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_hofstadii 0 0.02934 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_hofstadii|t__GCF_000162955 0 0.02934 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_shahii 0.01696 0.01927 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_shahii|t__GCF_000373045 0.01696 0.01927 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_unclassified 0.10667 0.12039 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_wadei 0.20756 0.1711 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_wadei|t__Leptotrichia_wadei_unclassified 0.20756 0.1711 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria 35.64429 48.2547 0.25536 0 0 0 2.82464 0.05831 2.34419 0.07781
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria 0.0357 6.68467 0 0 0 0 2.78932 0.00415 0.06353 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales 0 0.07565 0 0 0 0 2.78932 0.00415 0.06353 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae 0 0.07565 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Lautropia 0 0.07565 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Lautropia|s__Lautropia_mirabilis 0 0.07565 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Lautropia|s__Lautropia_mirabilis|t__GCF_000186425 0 0.07565 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname 0 0 0 0 0 0 0 0.00126 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname|g__Burkholderiales_noname 0 0 0 0 0 0 0 0.00126 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname|g__Burkholderiales_noname|s__Burkholderiales_bacterium_1_1_47 0 0 0 0 0 0 0 0.00126 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname|g__Burkholderiales_noname|s__Burkholderiales_bacterium_1_1_47|t__GCF_000144975 0 0 0 0 0 0 0 0.00126 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae 0 0 0 0 0 0 0.00115 0 0.06353 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Herbaspirillum 0 0 0 0 0 0 0 0 0.06353 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Herbaspirillum|s__Herbaspirillum_unclassified 0 0 0 0 0 0 0 0 0.06353 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Oxalobacter 0 0 0 0 0 0 0.00115 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Oxalobacter|s__Oxalobacter_formigenes 0 0 0 0 0 0 0.00115 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Oxalobacter|s__Oxalobacter_formigenes|t__Oxalobacter_formigenes_unclassified 0 0 0 0 0 0 0.00115 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae 0 0 0 0 0 0 2.78817 0.00288 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Parasutterella 0 0 0 0 0 0 0 0.00288 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Parasutterella|s__Parasutterella_excrementihominis 0 0 0 0 0 0 0 0.00288 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Parasutterella|s__Parasutterella_excrementihominis|t__GCF_000205025 0 0 0 0 0 0 0 0.00288 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella 0 0 0 0 0 0 2.78817 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella|s__Sutterella_wadsworthensis 0 0 0 0 0 0 2.78817 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella|s__Sutterella_wadsworthensis|t__Sutterella_wadsworthensis_unclassified 0 0 0 0 0 0 2.78817 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales 0.0357 6.60902 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae 0.0357 6.60902 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Eikenella 0 0.04589 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Eikenella|s__Eikenella_corrodens 0 0.04589 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Eikenella|s__Eikenella_corrodens|t__Eikenella_corrodens_unclassified 0 0.04589 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella 0 0.02949 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_denitrificans 0 0.00583 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_denitrificans|t__GCF_000190695 0 0.00583 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_oralis 0 0.02366 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_oralis|t__GCF_000160435 0 0.02366 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria 0.0357 6.53364 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_elongata 0 0.04251 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_elongata|t__GCF_000176755 0 0.04251 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_flavescens 0 0.38582 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_flavescens|t__Neisseria_flavescens_unclassified 0 0.38582 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_gonorrhoeae 0 0.00519 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_gonorrhoeae|t__Neisseria_gonorrhoeae_unclassified 0 0.00519 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_macacae 0 0.07706 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_macacae|t__GCF_000220865 0 0.07706 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_sicca 0 1.30682 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_sicca|t__Neisseria_sicca_unclassified 0 1.30682 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_subflava 0 0.18891 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_subflava|t__GCF_000173955 0 0.18891 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_unclassified 0.0357 4.52732 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria 0 0 0 0 0 0 0.03532 0.05416 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales 0 0 0 0 0 0 0.03532 0.05416 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae 0 0 0 0 0 0 0.03532 0.05416 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Bilophila 0 0 0 0 0 0 0.02775 0.05416 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Bilophila|s__Bilophila_unclassified 0 0 0 0 0 0 0.02373 0.05138 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Bilophila|s__Bilophila_wadsworthia 0 0 0 0 0 0 0.00401 0.00278 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Bilophila|s__Bilophila_wadsworthia|t__GCF_000185705 0 0 0 0 0 0 0.00401 0.00278 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio 0 0 0 0 0 0 0.00758 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio|s__Desulfovibrio_desulfuricans 0 0 0 0 0 0 0.00129 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio|s__Desulfovibrio_desulfuricans|t__Desulfovibrio_desulfuricans_unclassified 0 0 0 0 0 0 0.00129 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio|s__Desulfovibrio_piger 0 0 0 0 0 0 0.00629 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio|s__Desulfovibrio_piger|t__GCF_000156375 0 0 0 0 0 0 0.00629 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria 0.73021 0.09954 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales 0.73021 0.09954 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae 0.73021 0.09954 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter 0.73021 0.09954 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_concisus 0.51167 0.01506 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_concisus|t__GCF_000017725 0.51167 0.01506 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_gracilis 0 0.05726 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_gracilis|t__GCF_000175875 0 0.05726 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_showae 0.21854 0.02722 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_showae|t__Campylobacter_showae_unclassified 0.21854 0.02722 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria 34.87838 41.47049 0.25536 0 0 0 0 0 2.28066 0.07781
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales 0 0.07996 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae 0 0.07996 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacteriaceae_unclassified 0 0.0095 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacterium 0 0.07046 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacterium|s__Cardiobacterium_hominis 0 0.07046 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacterium|s__Cardiobacterium_hominis|t__GCF_000160655 0 0.07046 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales 0.00915 0 0 0 0 0 0 0 0 0.07781
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae 0.00915 0 0 0 0 0 0 0 0 0.07781
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia 0.00915 0 0 0 0 0 0 0 0 0.07781
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia|s__Escherichia_unclassified 0.00915 0 0 0 0 0 0 0 0 0.07781
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales 34.86923 41.39053 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae 34.86923 41.39053 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Actinobacillus 0.30607 0.5517 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Actinobacillus|s__Actinobacillus_unclassified 0.30607 0.5517 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter 0.00572 0.23126 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_segnis 0 0.01808 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_segnis|t__GCF_000185305 0 0.01808 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_unclassified 0.00572 0.21318 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus 34.55743 40.60757 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_haemolyticus 3.91628 0.55089 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_haemolyticus|t__GCF_000262285 3.91628 0.55089 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_parahaemolyticus 0 0.06185 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_parahaemolyticus|t__GCF_000262265 0 0.06185 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_parainfluenzae 30.56387 39.79658 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_parainfluenzae|t__Haemophilus_parainfluenzae_unclassified 30.56387 39.79658 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_paraphrohaemolyticus 0.07728 0.10619 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_paraphrohaemolyticus|t__GCF_000260675 0.07728 0.10619 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_sputorum 0 0.09206 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_sputorum|t__Haemophilus_sputorum_unclassified 0 0.09206 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales 0 0 0.25536 0 0 0 0 0 2.28066 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae 0 0 0.25536 0 0 0 0 0 2.28066 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas 0 0 0.25536 0 0 0 0 0 2.28066 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_unclassified 0 0 0.25536 0 0 0 0 0 2.28066 0
+k__Bacteria|p__Tenericutes 0 0 0 0 0 0 0 0 0.20486 0
+k__Bacteria|p__Tenericutes|c__Mollicutes 0 0 0 0 0 0 0 0 0.20486 0
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales 0 0 0 0 0 0 0 0 0.20486 0
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae 0 0 0 0 0 0 0 0 0.20486 0
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma 0 0 0 0 0 0 0 0 0.20486 0
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma|s__Ureaplasma_parvum 0 0 0 0 0 0 0 0 0.20486 0
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma|s__Ureaplasma_parvum|t__Ureaplasma_parvum_unclassified 0 0 0 0 0 0 0 0 0.20486 0
+k__Bacteria|p__Verrucomicrobia 0 0 0 0 0 0 0 0.53032 0 0
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae 0 0 0 0 0 0 0 0.53032 0 0
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales 0 0 0 0 0 0 0 0.53032 0 0
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae 0 0 0 0 0 0 0 0.53032 0 0
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae|g__Akkermansia 0 0 0 0 0 0 0 0.53032 0 0
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae|g__Akkermansia|s__Akkermansia_muciniphila 0 0 0 0 0 0 0 0.53032 0 0
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae|g__Akkermansia|s__Akkermansia_muciniphila|t__GCF_000020225 0 0 0 0 0 0 0 0.53032 0 0
+k__Eukaryota 0 0 0 0 0.73049 0.03717 0 0 0 0
+k__Eukaryota|p__Basidiomycota 0 0 0 0 0.73049 0.03717 0 0 0 0
+k__Eukaryota|p__Basidiomycota|c__Exobasidiomycetes 0 0 0 0 0.73049 0.03717 0 0 0 0
+k__Eukaryota|p__Basidiomycota|c__Exobasidiomycetes|o__Malasseziales 0 0 0 0 0.73049 0.03717 0 0 0 0
+k__Eukaryota|p__Basidiomycota|c__Exobasidiomycetes|o__Malasseziales|f__Malasseziaceae 0 0 0 0 0.73049 0.03717 0 0 0 0
+k__Eukaryota|p__Basidiomycota|c__Exobasidiomycetes|o__Malasseziales|f__Malasseziaceae|g__Malassezia 0 0 0 0 0.73049 0.03717 0 0 0 0
+k__Eukaryota|p__Basidiomycota|c__Exobasidiomycetes|o__Malasseziales|f__Malasseziaceae|g__Malassezia|s__Malassezia_globosa 0 0 0 0 0.73049 0.03717 0 0 0 0
+k__Eukaryota|p__Basidiomycota|c__Exobasidiomycetes|o__Malasseziales|f__Malasseziaceae|g__Malassezia|s__Malassezia_globosa|t__GCA_000181695 0 0 0 0 0.73049 0.03717 0 0 0 0
+k__Viruses 0 8.08273 55.74017 8.50068 10.26198 0 0 0 0 0
+k__Viruses|p__Viruses_noname 0 8.08273 55.74017 8.50068 10.26198 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname 0 8.08273 55.74017 8.50068 10.26198 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales 0 8.08273 55.40752 8.50068 10.26198 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae 0 8.08273 0 0 0 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__Myoviridae_noname 0 8.08273 0 0 0 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__Myoviridae_noname|s__Streptococcus_phage_EJ_1 0 8.08273 0 0 0 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__Myoviridae_noname|s__Streptococcus_phage_EJ_1|t__PRJNA14604 0 8.08273 0 0 0 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae 0 0 0 0.09737 0 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae|g__Epsilon15likevirus 0 0 0 0.09737 0 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae|g__Epsilon15likevirus|s__Epsilon15likevirus_unclassified 0 0 0 0.09737 0 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae 0 0 55.40752 8.4033 10.26198 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname 0 0 55.40752 8.4033 10.26198 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P100D 0 0 0 0 6.91449 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P100D|t__PRJNA177534 0 0 0 0 6.91449 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P101A 0 0 55.40752 8.4033 3.34749 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P101A|t__PRJNA177531 0 0 55.40752 8.4033 3.34749 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname 0 0 0.33265 0 0 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae 0 0 0.33265 0 0 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Gammaretrovirus 0 0 0.33265 0 0 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Gammaretrovirus|s__Porcine_type_C_oncovirus 0 0 0.33265 0 0 0 0 0 0 0
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Gammaretrovirus|s__Porcine_type_C_oncovirus|t__PRJNA14126 0 0 0.33265 0 0 0 0 0 0 0
diff --git a/example/HMPII_689.tsv b/example/HMPII_689.tsv
new file mode 100644
index 0000000..875b94e
--- /dev/null
+++ b/example/HMPII_689.tsv
@@ -0,0 +1,1876 @@
+ID SRS013946 SRS014473 SRS014687 SRS015060 SRS019025 SRS019125 SRS011090 SRS011144 SRS011247 SRS011310 SRS012281 SRS013239 SRS013506 SRS013711 SRS013825 SRS013881 SRS013945 SRS014126 SRS014472 SRS014575 SRS014686 SRS014890 SRS015040 SRS015059 SRS015154 SRS015274 SRS015374 SRS015436 SRS015646 SRS015745 SRS015799 SRS015895 SRS015921 SRS016039 SRS016088 SRS016196 SRS016297 SRS016349 SRS016503 SRS016533 SRS016600 SRS017013 SRS017080 SRS017127 SRS017215 SRS017441 SRS017537 SRS017687 SRS017810 [...]
+k__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter|s__Methanobrevibacter_smithii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter|s__Methanobrevibacter_smithii|t__Methanobrevibacter_smithii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter|s__Methanobrevibacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanosphaera 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanosphaera|s__Methanosphaera_stadtmanae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanosphaera|s__Methanosphaera_stadtmanae|t__GCF_000012545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria 99.5735 99.32448 98.4133 96.73694 63.61669 97.58664 96.76804 96.63055 45.60523 74.02667 100.0 100.0 93.56592 99.85457 99.49879 77.60977 95.53533 80.5969 100.0 99.69693 52.9409 100.0 80.75252 100.0 91.91727 99.63721 99.79802 94.77115 85.58899 95.74574 100.0 78.46911 80.93742 90.32285 100.0 100.0 98.56352 100.0 100.0 100.0 99.53347 99.98825 99.83603 99.99028 99.99899 100.0 92.76167 100.0 71.17382 95.78691 69.99524 70.39286 93.16229 85.13258 91.16073 84.87329 83.90655 100.0 99.2 [...]
+k__Bacteria|p__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.77092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00067 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteria_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.77092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteria_noname|o__Acidobacteria_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.77092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteria_noname|o__Acidobacteria_noname|f__Acidobacteria_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.77092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteria_noname|o__Acidobacteria_noname|f__Acidobacteria_noname|g__Candidatus_Chloracidobacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.77092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteria_noname|o__Acidobacteria_noname|f__Acidobacteria_noname|g__Candidatus_Chloracidobacterium|s__Candidatus_Chloracidobacterium_thermophilum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.77092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteria_noname|o__Acidobacteria_noname|f__Acidobacteria_noname|g__Candidatus_Chloracidobacterium|s__Candidatus_Chloracidobacterium_thermophilum|t__GCF_000226295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.77092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteriia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00067 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteriia|o__Acidobacteriales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteriia|o__Acidobacteriales|f__Acidobacteriaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteriia|o__Acidobacteriales|f__Acidobacteriaceae|g__Terriglobus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteriia|o__Acidobacteriales|f__Acidobacteriaceae|g__Terriglobus|s__Terriglobus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria 0.32716 1.30614 0.139 8.64086 7.42196 0.04942 3.18603 3.65177 1.5079 0.84166 2.46446 2.86909 1.15951 3.9969 16.89798 2.7164 11.40282 3.41777 16.87274 9.56981 6.41373 12.73526 4.71139 28.63833 14.45378 10.41577 3.14353 2.17616 1.22786 7.64462 1.93977 10.75331 20.28236 11.28646 75.2032 9.98603 8.55991 9.18699 24.62947 25.87228 5.51713 3.24301 38.40599 1.61482 0.33578 3.39477 3.78593 10.01807 3.46276 0.55887 2.89662 10.07109 4.80455 11.68314 18.29877 2.04414 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria 0.32716 1.30614 0.139 8.64086 7.42196 0.04942 3.18603 3.65177 1.5079 0.84166 2.46446 2.86909 1.15951 3.9969 16.89798 2.7164 11.40282 3.41777 16.87274 9.56981 6.41373 12.73526 4.71139 28.63833 14.45378 10.41577 3.14353 2.17616 1.22786 7.64462 1.93977 10.75331 20.28236 11.28646 75.2032 9.98603 8.55991 9.18699 24.62947 25.87228 5.51713 3.24301 38.40599 1.61482 0.33578 3.39477 3.78593 10.01807 3.46276 0.55887 2.89662 10.07109 4.80455 11.68314 1 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales 0.32716 1.30614 0.139 8.64086 7.27275 0.04942 3.18603 3.65177 1.48692 0.84166 2.46446 2.78757 1.14996 3.61843 16.73245 2.7164 11.40282 3.41777 16.87274 9.56981 5.71462 12.73526 4.71139 28.63833 14.44531 10.3784 3.14353 2.15532 1.21438 7.64462 1.93977 10.74564 20.25621 11.28646 75.2032 9.98603 8.36835 8.89028 24.61104 25.82169 5.49819 3.23506 38.19574 1.61482 0.32174 3.37605 3.78593 9.8533 3.07792 0.55526 2.84803 10.06667 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae 0.30988 0.21805 0.00257 2.47897 2.85615 0.01791 1.15545 0.60486 0.09791 0.13356 0.9776 0.2863 0.05704 2.91437 0.24307 0.61184 0.54779 0.17743 3.03024 0.99593 2.4749 1.40684 0.33222 5.11247 1.87158 0.78003 0.36475 0.46625 0.01842 1.47357 0.05747 0.44641 1.11862 9.11514 0.73862 0.84755 0.77891 0.29669 0.30805 0.25988 2.05339 0.04823 1.56932 1.07396 0.05549 0.26561 0.67806 1.07324 1.76921 0.17528 0.23998 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinobaculum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.45346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.36128 0 0 2.08012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.8591 0 0 0 0 5.78264 2.24451 0.74824 0.37787 0.29792 1.52958 1.49064 0.13316 0.36328 0 1.63272 1.60593 0.3674 3.3435 0.1012 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinobaculum|s__Actinobaculum_sp_oral_taxon_183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.45346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.36128 0 0 2.08012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.8591 0 0 0 0 5.78264 2.24451 0.74824 0.37787 0.29792 1.52958 1.49064 0.13316 0.36328 0 1. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinobaculum|s__Actinobaculum_sp_oral_taxon_183|t__GCF_000466165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.45346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.36128 0 0 2.08012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.8591 0 0 0 0 5.78264 2.24451 0.74824 0.37787 0.29792 1.52958 1.49064 0.1 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinobaculum|s__Actinobaculum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01501 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces 0.3092 0.21805 0.00257 2.47897 2.85615 0.01791 1.15545 0.60486 0.09791 0.13356 0.9776 0.2863 0.05704 2.91437 0.24307 0.61184 0.54779 0.17743 3.03024 0.99593 2.4749 1.40684 0.33222 5.11247 1.87158 0.78003 0.36475 0.46625 0.01842 1.47357 0.05747 0.44641 1.11862 0.66168 0.73862 0.84755 0.77891 0.29669 0.30805 0.25988 2.05339 0.04823 1.56932 1.07396 0.05549 0.26561 0.67806 1.07324 1.76921 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_cardiffensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01077 0.00869 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_cardiffensis|t__GCF_000364865 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01077 0.00869 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_georgiae 0 0.00023 0 0.01788 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04509 0 0 0.03344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00033 0.36983 0.03048 0 0.01167 0.00109 0.04318 0 0.00449 0.01398 0.00163 0 0 0.00123 0 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_georgiae|t__GCF_000277685 0 0.00023 0 0.01788 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04509 0 0 0.03344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00033 0.36983 0.03048 0 0.01167 0.00109 0.04318 0 0.00449 0.01398 0.00163 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_graevenitzii 0 0 0 0.00098 0.3834 0 0.10548 0.4129 0.08342 0 0 0.03131 0.00363 1.397 0 0 0 0 0 0.23771 0.17813 0.01174 0 0 0.03016 0 0 0.07231 0.01609 0 0 0.04093 0.09248 0 0 0 0.11376 0.02964 0 0 0.07588 0.00294 0.22377 0.00058 0.0199 0.0593 0 0.31856 0.69645 0.04035 0.07817 0.00846 0.28409 0.1093 2.39464 0 0 0.06627 0 0 0.00604 1.47773 0.07424 1.00143 0.06562 0.43291 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_graevenitzii|t__Actinomyces_graevenitzii_unclassified 0 0 0 0.00098 0.3834 0 0.10548 0.4129 0.08342 0 0 0.03131 0.00363 1.397 0 0 0 0 0 0.23771 0.17813 0.01174 0 0 0.03016 0 0 0.07231 0.01609 0 0 0.04093 0.09248 0 0 0 0.11376 0.02964 0 0 0.07588 0.00294 0.22377 0.00058 0.0199 0.0593 0 0.31856 0.69645 0.04035 0.07817 0.00846 0.28409 0.1093 2.39464 0 0 0.06627 0 0 0.00604 1. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_graevenitzii|t__GCF_000466185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_johnsonii 0 0 0 0.03597 0 0 0 0 0 0 0 0 0 0 0.01061 0 0 0 0 0.00801 0 0.16622 0 0.10392 0.00394 0 0 0.01155 0 0.01025 0 0 0.0113 0 0 0 0.25095 0 0 0 0.04101 0 0.00628 0.03005 0 0 0 0.14721 0 0.00166 0 0.01632 0 0 0.05422 0.04535 0 0 0.06971 0 0.00833 0 0 0 0 0 0.01024 0 0.3501 0.03361 0 0 0 0 0 0.04698 0.00897 0 0.01877 0 0 0 0 0 0.22493 0.03368 0.71259 0.01162 0.02798 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_johnsonii|t__Actinomyces_johnsonii_unclassified 0 0 0 0.03597 0 0 0 0 0 0 0 0 0 0 0.01061 0 0 0 0 0.00801 0 0.16622 0 0.10392 0.00394 0 0 0.01155 0 0.01025 0 0 0.0113 0 0 0 0.25095 0 0 0 0.04101 0 0.00628 0.03005 0 0 0 0.14721 0 0.00166 0 0.01632 0 0 0.05422 0.04535 0 0 0.06971 0 0.00833 0 0 0 0 0 0.01024 0 0.3501 0.03361 0 0 0 0 0 0.04698 0.00897 0 0.01877 0 0 0 0 0 0.224 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_johnsonii|t__GCF_000466205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.73524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_johnsonii|t__GCF_000466245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5019 0 0 0 0 0 0 0 0 0.3282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.96795 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_massiliensis 0 0.0089 0 0.31896 0 0 0 0 0.00536 0 0 0 0 0 0 0 0 0 0.5451 0 0 0 0 0 0.08071 0 0 0 0 0.03567 0 0 0.00947 0.06747 0 0 0.02952 0 0 0 0.01754 0 0.01998 0.12191 0 0 0 0.02844 0 0.00333 0 0 0 0 0 0.0173 0 0 0 0 0 0 0 0 0 0 0 0 0.09985 0 0.02876 0 0 0.06184 0 0 0.00257 0 0.00893 0 0 0 0 0.26544 0 0.16831 0.37091 0 0 0 0 0.01357 0.34411 0 0 0 0 0.00208 0 0.00261 0.9 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_massiliensis|t__Actinomyces_massiliensis_unclassified 0 0.0089 0 0.31896 0 0 0 0 0.00536 0 0 0 0 0 0 0 0 0 0.5451 0 0 0 0 0 0.08071 0 0 0 0 0.03567 0 0 0.00947 0.06747 0 0 0.02952 0 0 0 0.01754 0 0.01998 0.12191 0 0 0 0.02844 0 0.00333 0 0 0 0 0 0.0173 0 0 0 0 0 0 0 0 0 0 0 0 0.09985 0 0.02876 0 0 0.06184 0 0 0.00257 0 0.00893 0 0 0 0 0.26544 0 0.16831 0.37091 0 0 0 0 0.01 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_massiliensis|t__GCF_000296275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.60462 0 0 1.35869 2.49128 0 0.76614 0.21784 0.57989 0 0 0 0 0 0 0 0 0.14158 0 0 0 0 1.4 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_naeslundii 0 0.03386 0 0.32694 0 0 0 0 0 0.01348 0 0 0 0.01807 0.06906 0 0.02082 0 0.1796 0 0 0.03197 0 0 0.02864 0.13098 0.00586 0.00547 0 0.21436 0 0.00619 0.00769 0.11188 0 0.04143 0.1103 0 0 0 0.09615 0.00207 0.11352 0.84574 0.00147 0 0 0.13856 0.04097 0.01423 0 0.03331 0 0.00459 0 0.00402 0.04744 0.02653 0.05578 0 0.02049 0 0 0 0 0 0 0.01121 0.11273 0.01872 0.39151 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_naeslundii|t__GCF_000285995 0 0.03386 0 0.32694 0 0 0 0 0 0.01348 0 0 0 0.01807 0.06906 0 0.02082 0 0.1796 0 0 0.03197 0 0 0.02864 0.13098 0.00586 0.00547 0 0.21436 0 0.00619 0.00769 0.11188 0 0.04143 0.1103 0 0 0 0.09615 0.00207 0.11352 0.84574 0.00147 0 0 0.13856 0.04097 0.01423 0 0.03331 0 0.00459 0 0.00402 0.04744 0.02653 0.05578 0 0.02049 0 0 0 0 0 0 0.01121 0.11273 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_odontolyticus 0.30517 0.02348 0 0.12307 0.17782 0.01066 0 0 0.00564 0.01809 0 0.06119 0 0.07074 0.01021 0.51893 0.35302 0.03298 0 0.37745 0.46042 0.17945 0.01661 0.32017 0.61461 0 0 0.08735 0.00233 0.00167 0 0.03518 0.14247 0.05266 0.00532 0 0 0.09334 0 0 0.00767 0.00224 0.04666 0.01713 0.01867 0 0.00667 0.08483 0.19055 0.09396 0.02345 0.10109 0.39731 0.40194 0.72138 0.087 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_odontolyticus|t__Actinomyces_odontolyticus_unclassified 0.30517 0.02348 0 0.12307 0.17782 0.01066 0 0 0.00564 0.01809 0 0.06119 0 0.07074 0.01021 0.51893 0.35302 0.03298 0 0.37745 0.46042 0.17945 0.01661 0.32017 0.61461 0 0 0.08735 0.00233 0.00167 0 0.03518 0.14247 0.05266 0.00532 0 0 0.09334 0 0 0.00767 0.00224 0.04666 0.01713 0.01867 0 0.00667 0.08483 0.19055 0.09396 0.0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_oris 0.00236 0.09184 0 0.39032 0.84362 0 0.46159 0.17934 0 0.02959 0 0.13859 0.01145 0.04235 0.06294 0.05763 0.05592 0.06811 0.46011 0.09133 0.17509 0.70603 0.15769 2.15332 1.02738 0.1445 0.1239 0.19373 0 0.14086 0.02118 0.24124 0.58134 0.40174 0.22787 0.34946 0.10297 0.11602 0.11758 0.0922 0.90771 0.00807 0.23311 0.02844 0.0095 0.06047 0.60684 0.18711 0.03854 0.00147 0.07 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_oris|t__GCF_000180155 0.00236 0.09184 0 0.39032 0.84362 0 0.46159 0.17934 0 0.02959 0 0.13859 0.01145 0.04235 0.06294 0.05763 0.05592 0.06811 0.46011 0.09133 0.17509 0.70603 0.15769 2.15332 1.02738 0.1445 0.1239 0.19373 0 0.14086 0.02118 0.24124 0.58134 0.40174 0.22787 0.34946 0.10297 0.11602 0.11758 0.0922 0.90771 0.00807 0.23311 0.02844 0.0095 0.06047 0.60684 0.18711 0.0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_HPA0247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.48767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_HPA0247|t__GCF_000411415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.48767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_ICM39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.29633 0 0 0 0 0 0 0 0 0 0.284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_ICM39|t__GCF_000282935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.29633 0 0 0 0 0 0 0 0 0 0.284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_ICM47 0 0 0 0 0 0 0 0 0 0 0 0 0 1.33412 0 0 0 0 0 0 0.56399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.79303 0 0 0 0 0 0 0 0 0 0 0 3.75293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.84416 0 0 1.24714 0.31214 0 0 1.97323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_ICM47|t__GCF_000278725 0 0 0 0 0 0 0 0 0 0 0 0 0 1.33412 0 0 0 0 0 0 0.56399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.79303 0 0 0 0 0 0 0 0 0 0 0 3.75293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.84416 0 0 1.24714 0.31214 0 0 1.97323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.23547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.58901 1.07076 1.20223 0.88927 0.45338 0 0 0 0 0 0 1.82635 0.67599 1.68107 0.5992 0 0 0 3.8099 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_170|t__GCF_000195595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.23547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.58901 1.07076 1.20223 0.88927 0.45338 0 0 0 0 0 0 1.82635 0.67599 1.68107 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.72362 0.78298 0 0.64863 1.18332 0 0 1.05663 0.5347 0.68246 0 0 0.92595 1.19918 0 0 2.05861 0 2.1151 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_171|t__GCF_000186965 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.72362 0.78298 0 0.64863 1.18332 0 0 1.05663 0.5347 0.68246 0 0 0.92595 1.19918 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.76411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_172|t__GCF_000466265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.76411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.51634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_175|t__GCF_000223355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.51634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.24235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.113 0 0 0.12569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13061 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_180|t__GCF_000185285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.24235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.113 0 0 0.12569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13061 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_181|t__GCF_000318335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.66266 0 0 0 0 0.08324 0 0.35787 0 0 0.72653 0 0 0 0.67047 0.55295 1.18492 2.32298 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_448|t__GCF_000220835 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.66266 0 0 0 0 0.08324 0 0.35787 0 0 0.72653 0 0 0 0.67047 0.55295 1.18492 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_848 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14441 0 0 0 0 0.80433 0 0 0 0 0 0 0 0 0.14893 0 0 0 0 0 0 0 0 0 0 0 0.3849 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_848|t__GCF_000162895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14441 0 0 0 0 0.80433 0 0 0 0 0 0 0 0 0.14893 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.33661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16072 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_oral_taxon_849|t__GCF_000239715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.33661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_ph3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_sp_ph3|t__GCF_000308055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_timonensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07687 0 0 0 0 0.12904 0 0 0 0.02737 0 0 0 0.00393 0 0 0 0 0 0 0 0 0.00204 0 0 0 0 0.00064 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_timonensis|t__GCF_000295095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07687 0 0 0 0 0.12904 0 0 0 0.02737 0 0 0 0.00393 0 0 0 0 0 0 0 0 0.00204 0 0 0 0 0.00064 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_viscosus 0.00168 0.05975 0.00257 1.26485 1.45131 0.00725 0.58838 0.01262 0.00348 0.07241 0.9776 0.05522 0.04195 0.0521 0.09025 0.03528 0.11803 0.07634 1.84543 0.28142 0.60959 0.31142 0.15792 2.53506 0.08614 0.50456 0.23499 0.09583 0 1.07077 0.0363 0.12287 0.27388 0.02793 0.50542 0.45667 0.17142 0.0577 0.19047 0.16768 0.90744 0.03291 0.13298 0.0301 0.00595 0.14585 0.06454 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_viscosus|t__GCF_000175315 0.00168 0.05975 0.00257 1.26485 1.45131 0.00725 0.58838 0.01262 0.00348 0.07241 0.9776 0.05522 0.04195 0.0521 0.09025 0.03528 0.11803 0.07634 1.84543 0.28142 0.60959 0.31142 0.15792 2.53506 0.08614 0.50456 0.23499 0.09583 0 1.07077 0.0363 0.12287 0.27388 0.02793 0.50542 0.45667 0.17142 0.0577 0.19047 0.16768 0.90744 0.03291 0.13298 0.0301 0.00595 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Mobiluncus 0.00068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Mobiluncus|s__Mobiluncus_curtisii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Mobiluncus|s__Mobiluncus_curtisii|t__Mobiluncus_curtisii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Mobiluncus|s__Mobiluncus_unclassified 0.00068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Varibaculum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Varibaculum|s__Varibaculum_cambriense 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Varibaculum|s__Varibaculum_cambriense|t__GCF_000420065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Brevibacteriaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Brevibacteriaceae|g__Brevibacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Brevibacteriaceae|g__Brevibacterium|s__Brevibacterium_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae 0 0.7902 0 1.78048 2.35975 0 0 0.06326 0.03264 0.09847 0.05103 0.00828 0 0.09409 0.03833 0.00869 0.00011 0 1.63569 0.58113 0.07108 4.31621 0.00319 4.39335 1.10988 0.24152 0.08843 0.00043 0 1.46427 0.00213 0.00658 0.03635 0.61287 0.05335 0.23333 2.36739 0.20094 0 0 0.18388 0.02344 0.62994 0.06513 0.05387 0.27072 0.03034 3.48051 0.23446 0.02441 0.01797 0.0293 0.17145 0.00947 1.65595 0.02042 0 0.03279 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium 0 0.7902 0 1.78048 2.35975 0 0 0.06326 0.03264 0.09847 0.05103 0.00828 0 0.09409 0.03833 0.00869 0.00011 0 1.63569 0.58113 0.07108 4.31621 0.00319 4.39335 1.10988 0.24152 0.08843 0.00043 0 1.46427 0.00213 0.00658 0.03635 0.61287 0.05335 0.23333 2.36739 0.20094 0 0 0.18388 0.02344 0.62994 0.06513 0.05387 0.27072 0.03034 3.48051 0.23446 0.02441 0.01797 0.0293 0.17145 0.00947 1.65595 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_accolens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_accolens|t__Corynebacterium_accolens_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_amycolatum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_amycolatum|t__GCF_000173655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_bovis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_bovis|t__GCF_000183325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_durum 0 0.07536 0 0.23619 0 0 0 0 0.03264 0.01135 0 0 0 0 0.018 0.00869 0 0 0.23624 0.02233 0 0 0 0 0.04995 0.14147 0.0201 0 0 0.02874 0.00213 0.00658 0.03635 0.02091 0 0 0.25949 0.02334 0 0 0 0.01814 0.23197 0.02983 0.01522 0.16419 0 0.16875 0.06969 0.01403 0 0.01547 0.10757 0.00575 0 0.00259 0 0.03279 0 0 0.05034 0 0.01016 0.00879 0 0.00935 0 0.09127 0.19998 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_durum|t__GCF_000318135 0 0.07536 0 0.23619 0 0 0 0 0.03264 0.01135 0 0 0 0 0.018 0.00869 0 0 0.23624 0.02233 0 0 0 0 0.04995 0.14147 0.0201 0 0 0.02874 0.00213 0.00658 0.03635 0.02091 0 0 0.25949 0.02334 0 0 0 0.01814 0.23197 0.02983 0.01522 0.16419 0 0.16875 0.06969 0.01403 0 0.01547 0.10757 0.00575 0 0.00259 0 0.03279 0 0 0.05034 0 0.01016 0.00879 0 0.00935 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_genitalium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_genitalium|t__GCF_000143825 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_jeikeium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_jeikeium|t__Corynebacterium_jeikeium_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_kroppenstedtii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_kroppenstedtii|t__GCF_000023145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15578 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_matruchotii 0 0.71484 0 1.54429 2.35975 0 0 0.06326 0 0.08712 0.05103 0.00828 0 0.09409 0.02033 0 0.00011 0 1.39946 0.5588 0.07108 4.31621 0.00319 4.39335 1.05994 0.10005 0.06832 0.00043 0 1.43553 0 0 0 0.59196 0.05335 0.23333 2.1079 0.1776 0 0 0.18388 0.0053 0.39796 0.03531 0.03866 0.10653 0.03034 3.31176 0.16477 0.01038 0.01797 0.01384 0.06388 0.00372 1.65595 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_matruchotii|t__Corynebacterium_matruchotii_unclassified 0 0.71484 0 1.54429 2.35975 0 0 0.06326 0 0.08712 0.05103 0.00828 0 0.09409 0.02033 0 0.00011 0 1.39946 0.5588 0.07108 4.31621 0.00319 4.39335 1.05994 0.10005 0.06832 0.00043 0 1.43553 0 0 0 0.59196 0.05335 0.23333 2.1079 0.1776 0 0 0.18388 0.0053 0.39796 0.03531 0.03866 0.10653 0.03034 3.31176 0.16477 0.010 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_matruchotii|t__GCF_000158635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.8107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_propinquum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_propinquum|t__GCF_000375525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_pseudodiphtheriticum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_pseudodiphtheriticum|t__GCF_000466825 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00412 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_pseudogenitalium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_pseudogenitalium|t__GCF_000156615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_striatum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_striatum|t__GCF_000159135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_tuberculostearicum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_tuberculostearicum|t__GCF_000175635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Dermabacteraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Dermabacteraceae|g__Brachybacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Dermabacteraceae|g__Brachybacterium|s__Brachybacterium_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Dermabacteraceae|g__Dermabacteraceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Dermatophilaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05717 0.06585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00426 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Dermatophilaceae|g__Dermatophilaceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05717 0.06585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae 0.00862 0.28923 0.13643 4.35507 2.05686 0.03151 2.03057 2.98365 1.34782 0.58957 1.18932 2.43649 1.09292 0.59402 16.24632 2.09588 10.8502 3.23157 11.79887 7.78922 3.16863 6.88486 4.37598 19.1325 11.4562 9.30711 2.65082 1.6604 1.19596 4.6923 1.88017 10.29264 19.10124 1.55845 74.41124 8.90515 5.22205 7.90939 24.30299 25.5618 3.21458 3.13915 35.98548 0.40232 0.19226 2.82102 3.07418 5.19518 1.03885 0.35345 2. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Kocuria 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Kocuria|s__Kocuria_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Micrococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Micrococcus|s__Micrococcus_luteus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Micrococcus|s__Micrococcus_luteus|t__Micrococcus_luteus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia 0.00862 0.28923 0.13643 4.35507 2.05686 0.03151 2.03057 2.98365 1.34782 0.58957 1.18932 2.43649 1.09292 0.59402 16.24632 2.09588 10.8502 3.23157 11.79887 7.78922 3.16863 6.88486 4.37598 19.1325 11.4562 9.30711 2.65082 1.6604 1.19596 4.6923 1.88017 10.29264 19.10124 1.55845 74.41124 8.90515 5.22205 7.90939 24.30299 25.5618 3.21458 3.13915 35.98548 0.40232 0.19226 2.82102 3.07418 5.19518 1.03885 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_aeria 0.00484 0.07592 0 1.0536 0 0.01866 0.14965 0.22872 0.10258 0.07242 0 0 0.00954 0.19097 0.30858 0.09321 2.18699 0 1.78628 1.09507 0 1.45166 0.08405 1.0155 0.28042 0.30487 0.03192 0.10826 0.05415 0.33075 0.02378 0.32762 0.50874 0.84898 0.93667 0.23211 1.07915 0.02218 0 0 0.28745 0.09294 0.47674 0.29055 0.10889 1.39946 0.89595 1.38269 0.19728 0.22824 0.00576 0.30494 0.02439 1.03527 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_aeria|t__Rothia_aeria_unclassified 0.00484 0.07592 0 1.0536 0 0.01866 0.14965 0.22872 0.10258 0.07242 0 0 0.00954 0.19097 0.30858 0.09321 2.18699 0 1.78628 1.09507 0 1.45166 0.08405 1.0155 0.28042 0.30487 0.03192 0.10826 0.05415 0.33075 0.02378 0.32762 0.50874 0.84898 0.93667 0.23211 1.07915 0.02218 0 0 0.28745 0.09294 0.47674 0.29055 0.10889 1.39946 0.89595 1.38269 0.19728 0.22824 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_dentocariosa 0 0.17208 0.00235 2.83171 1.48924 0.0103 1.18527 2.08466 0.56802 0.49414 0.08736 0.45298 0.15875 0.0824 1.49231 0.69037 0.10245 2.53639 9.40024 2.84813 1.3321 2.92799 2.08732 10.61957 0.91913 7.89993 2.17088 1.16161 0.73042 0.9731 0.56754 3.55429 5.00136 0.34857 71.33959 8.49696 3.92673 6.82721 5.31442 5.63671 2.41514 0.21145 11.36603 0.10388 0.02725 0.69777 2.06155 2.171 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_dentocariosa|t__GCF_000143585 0 0 0 0.78942 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.47881 0 40.8864 0 0 2.63284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.45363 0 0 0 8.31839 0 0 0 0 0 0 0 0 4.93575 0 0 0.64051 0 0 0 0 1.54346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.74815 0 0 0 1.52332 9.5716 0 2.53384 0 0 0 0.76696 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_dentocariosa|t__GCF_000164695 0 0 0 1.11086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13.64669 0 0 0 0 0 0 0 1.98772 0 0 0 0 0 0 0 0 0 0 0 0 0.40408 0 0 0 0 0.59486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.13354 0 0 0 0 0 0 7.16027 0 0 0 0 0 0 0 0 3.04489 0 0 0.63637 0 0 0 0 1.64811 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.69402 0 0 0 0.94556 10.21903 0 1.44122 1.48508 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_dentocariosa|t__Rothia_dentocariosa_unclassified 0 0.17208 0.00235 0.93143 1.48924 0.0103 1.18527 2.08466 0.56802 0.49414 0.08736 0.45298 0.15875 0.0824 1.49231 0.69037 0.10245 2.53639 9.40024 2.84813 1.3321 2.92799 2.08732 10.61957 0.91913 7.89993 2.17088 1.16161 0.73042 0.9731 0.56754 3.55429 3.52255 0.34857 16.8065 8.49696 3.92673 4.19437 5.31442 5.63671 2.41514 0.21145 9.37832 0.1 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_mucilaginosa 0.00252 0.04123 0.13408 0.46976 0.56762 0.00255 0.69565 0.67027 0.67722 0.02301 0.98035 1.98352 0.92463 0.32065 14.44542 1.3123 8.56077 0.69519 0.61235 3.84602 1.83653 2.50522 2.20461 7.49743 10.25664 1.10231 0.44802 0.39053 0.41139 3.38845 1.28884 6.41073 13.59115 0.3609 2.13497 0.17609 0.21616 1.06 18.98857 19.92509 0.51199 2.83476 24.14271 0.00788 0.05612 0.72379 0.116 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_mucilaginosa|t__Rothia_mucilaginosa_unclassified 0.00252 0.04123 0.13408 0.46976 0.56762 0.00255 0.69565 0.67027 0.67722 0.02301 0.98035 1.98352 0.92463 0.32065 14.44542 1.3123 8.56077 0.69519 0.61235 3.84602 1.83653 2.50522 2.20461 7.49743 10.25664 1.10231 0.44802 0.39053 0.41139 3.38845 1.28884 6.41073 13.59115 0.3609 2.13497 0.17609 0.21616 1.06 18.98857 19.92509 0.51199 2.83476 24 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_unclassified 0.00125 0 0 0 0 0 0 0 0 0 0.12161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01693 0 0 0 0 0 0 0 0 0 0 0 0 0 0.26275 0 0 0 0.10071 0 0.27945 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae|g__Mycobacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae|g__Mycobacterium|s__Mycobacterium_abscessus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae|g__Mycobacterium|s__Mycobacterium_abscessus|t__Mycobacterium_abscessus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Promicromonosporaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Promicromonosporaceae|g__Promicromonosporaceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae 0.00867 0.00866 0 0.02634 0 0 0 0 0.00856 0.02005 0.2465 0.05649 0 0.01595 0.20474 0 0 0.00877 0.40793 0.20353 0 0.12735 0 0 0.00764 0.04974 0.03953 0.02824 0 0.01447 0 0 0 0 0 0 0 0.48326 0 0 0.04633 0.02423 0.011 0.07341 0.02012 0.0187 0.00335 0.10437 0.03539 0.00213 0.01885 0.03832 0.02117 0.0052 0 0.02434 0 0 0.06706 0 0.0062 0.12875 0 0 0.03555 0 0.09637 0.15768 1.28243 0.03789 0.11711 0.06273 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacteriaceae_unclassified 0.00867 0.00366 0 0 0 0 0 0 0.00518 0.02005 0.13078 0.05514 0 0 0.02313 0 0 0 0.40044 0.18173 0 0 0 0 0 0 0.03953 0.02824 0 0 0 0 0 0 0 0 0 0.28319 0 0 0.00374 0 0 0 0.01515 0 0 0.06998 0 0 0.01536 0 0 0 0 0 0 0 0 0 0.00438 0.12875 0 0 0.03555 0 0.08434 0.00454 0.66151 0.02974 0 0.01063 0 0 0 0.01145 0 0 0 0.16976 0 0 0.05198 0.14021 0.00292 0 0 0 0.00231 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium 0 0.005 0 0.02634 0 0 0 0 0.00338 0 0.11572 0.00135 0 0.01595 0.18161 0 0 0.00877 0.00749 0.02181 0 0.12735 0 0 0.00764 0.04974 0 0 0 0.01447 0 0 0 0 0 0 0 0.20007 0 0 0.04259 0.02423 0.011 0.07341 0.00497 0.0187 0.00335 0.03439 0.03539 0.00213 0.00349 0.03832 0.02117 0.0052 0 0.02434 0 0 0.06706 0 0.00182 0 0 0 0 0 0.01202 0.15314 0.62092 0.00815 0.11711 0.05209 0.3661 0.02749 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_acnes 0 0.005 0 0.00932 0 0 0 0 0.00338 0 0.11572 0.00135 0 0.01595 0.18161 0 0 0.00877 0.00749 0.02181 0 0.12735 0 0 0 0.04974 0 0 0 0 0 0 0 0 0 0 0 0.20007 0 0 0.04259 0.02423 0.011 0.07341 0.00497 0.0187 0.00335 0.03439 0.03539 0 0.00349 0.00133 0 0 0 0 0 0 0.0351 0 0.00182 0 0 0 0 0 0.01202 0.15314 0.62092 0.00815 0.06079 0.05209 0.3661 0 0.09522 0.0025 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_acnes|t__GCF_000221145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_acnes|t__Propionibacterium_acnes_unclassified 0 0.005 0 0.00932 0 0 0 0 0.00338 0 0.11572 0.00135 0 0.01595 0.18161 0 0 0.00877 0.00749 0.02181 0 0.12735 0 0 0 0.04974 0 0 0 0 0 0 0 0 0 0 0 0.20007 0 0 0.04259 0.02423 0.011 0.07341 0.00497 0.0187 0.00335 0.03439 0.03539 0 0.00349 0.00133 0 0 0 0 0 0 0.0351 0 0.00182 0 0 0 0 0 0.01202 0.15314 0.62092 0.00815 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_avidum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_avidum|t__Propionibacterium_avidum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_freudenreichii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_freudenreichii|t__GCF_000091725 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_granulosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_granulosum|t__Propionibacterium_granulosum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_propionicum 0 0 0 0.01702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00764 0 0 0 0 0.01447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00213 0 0.03698 0.02117 0.0052 0 0.02434 0 0 0.03196 0 0 0 0 0 0 0 0 0 0 0 0.05632 0 0 0.02749 0 0 0 0 0.04978 0 0 0 0 0 0 0.03836 0.09174 0.00045 0 0.00122 0 0.01306 0 0 0 0 0 0.04334 0 0.01862 0.15799 0.34861 0 0.04959 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_propionicum|t__GCF_000277715 0 0 0 0.01702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00764 0 0 0 0 0.01447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00213 0 0.03698 0.02117 0.0052 0 0.02434 0 0 0.03196 0 0 0 0 0 0 0 0 0 0 0 0.05632 0 0 0.02749 0 0 0 0 0.04978 0 0 0 0 0 0 0.03836 0.09174 0.00045 0 0.00122 0 0.01306 0 0 0 0 0 0.04334 0 0.01862 0.15799 0.34861 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_sp_KPL1844 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_sp_KPL1844|t__GCF_000477715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_sp_oral_taxon_192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_sp_oral_taxon_192|t__GCF_000413315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales 0 0 0 0 0 0 0 0 0 0 0 0.0217 0 0 0.07153 0 0 0 0 0 0.19926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00616 0 0 0 0 0.00053 0 0 0.01872 0 0.02649 0.04646 0 0 0 0 0 0.10398 0 0 0 0 0 0 0 0 0 0.03845 0 0 0 0 0 0 0 0 0 0.0528 0 0.00124 0.01792 0 0 0.00965 0 0 0.01008 0 0 1.17642 0 0.03669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01713 0 0 0 0.06418 0 0 0 0 0 0 0 0 0.0469 0 0 0 0.03375 0 0.00277 0 0 0.00842 0 0 0.00277 0 0 0 0 0 0 0.37777 0.01 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae 0 0 0 0 0 0 0 0 0 0 0 0.0217 0 0 0.07153 0 0 0 0 0 0.19926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00616 0 0 0 0 0.00053 0 0 0.01872 0 0.02649 0.04646 0 0 0 0 0 0.10398 0 0 0 0 0 0 0 0 0 0.03845 0 0 0 0 0 0 0 0 0 0.0528 0 0.00124 0.01792 0 0 0.00965 0 0 0.01008 0 0 1.17642 0 0.03669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01713 0 0 0 0.06418 0 0 0 0 0 0 0 0 0.0469 0 0 0 0.03375 0 0.00277 0 0 0.00842 0 0 0.00277 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__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.00616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06418 0 0 0 0 0 0 0 0 0.0469 0 0 0 0.03375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Alloscardovia|s__Alloscardovia_omnicolens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06418 0 0 0 0 0 0 0 0 0.0469 0 0 0 0.03375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Alloscardovia|s__Alloscardovia_omnicolens|t__Alloscardovia_omnicolens_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06418 0 0 0 0 0 0 0 0 0.0469 0 0 0 0.03375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_adolescentis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_adolescentis|t__Bifidobacterium_adolescentis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_angulatum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_angulatum|t__GCF_000156635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_animalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_animalis|t__Bifidobacterium_animalis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_bifidum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_bifidum|t__Bifidobacterium_bifidum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_breve 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_breve|t__Bifidobacterium_breve_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_catenulatum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_catenulatum|t__GCF_000173455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_dentium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_dentium|t__Bifidobacterium_dentium_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_longum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_longum|t__Bifidobacterium_longum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_pseudocatenulatum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_pseudocatenulatum|t__GCF_000173435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Gardnerella|s__Gardnerella_vaginalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Gardnerella|s__Gardnerella_vaginalis|t__Gardnerella_vaginalis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00069 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01008 0 0 0.01501 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Parascardovia|s__Parascardovia_denticolens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01008 0 0 0.01501 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Parascardovia|s__Parascardovia_denticolens|t__Parascardovia_denticolens_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01008 0 0 0.01501 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Scardovia 0 0 0 0 0 0 0 0 0 0 0 0.0217 0 0 0.07153 0 0 0 0 0 0.19926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00053 0 0 0.01872 0 0.02649 0.01421 0 0 0 0 0 0.10398 0 0 0 0 0 0 0 0 0 0.03845 0 0 0 0 0 0 0 0 0 0.0528 0 0.00124 0 0 0 0.00965 0 0 0 0 0 1.16142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00277 0 0 0.00842 0 0 0.00277 0 0 0 0 0 0 0.37777 0.01826 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Scardovia|s__Scardovia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01937 0 0 0 0 0 0.00537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00277 0 0 0 0 0 0.00277 0 0 0 0 0 0 0 0.00323 0.00136 0 0 0 0 0 0 0 0 0 0 0 0.00225 0 0 0.00187 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Scardovia|s__Scardovia_wiggsiae 0 0 0 0 0 0 0 0 0 0 0 0.0217 0 0 0.05215 0 0 0 0 0 0.19389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00053 0 0 0.01872 0 0.02649 0.01421 0 0 0 0 0 0.10398 0 0 0 0 0 0 0 0 0 0.03845 0 0 0 0 0 0 0 0 0 0.0528 0 0.00124 0 0 0 0.00965 0 0 0 0 0 1.16142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00842 0 0 0 0 0 0 0 0 0 0.37777 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Scardovia|s__Scardovia_wiggsiae|t__Scardovia_wiggsiae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0.0217 0 0 0.05215 0 0 0 0 0 0.19389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00053 0 0 0.01872 0 0.02649 0.01421 0 0 0 0 0 0.10398 0 0 0 0 0 0 0 0 0 0.03845 0 0 0 0 0 0 0 0 0 0.0528 0 0.00124 0 0 0 0.00965 0 0 0 0 0 1.16142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales 0 0 0 0 0.14921 0 0 0 0.02098 0 0 0.05983 0.00955 0.37847 0.094 0 0 0 0 0 0.49985 0 0 0 0.00847 0.03737 0 0.02084 0.01348 0 0 0.00767 0.02615 0 0 0 0.19156 0.29054 0.01843 0.0506 0.01894 0.00795 0.20973 0 0.01404 0 0 0.13828 0.33838 0.00361 0.0486 0.00442 0.07664 0.04101 0.55644 0 0.01375 0.03189 0 0 0.00559 0.44113 0.09785 0.21308 0.09879 0.08914 0 0.00138 0 0.0756 0.03621 0.07741 0 0.79838 0.36659 0 0.06242 0.01484 0.2 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae 0 0 0 0 0.14921 0 0 0 0.02098 0 0 0.05983 0.00955 0.37847 0.094 0 0 0 0 0 0.49985 0 0 0 0.00847 0.03737 0 0.02084 0.01348 0 0 0.00767 0.02615 0 0 0 0.19156 0.29054 0.01843 0.0506 0.01894 0.00795 0.20973 0 0.01404 0 0 0.13828 0.33838 0.00361 0.0486 0.00442 0.07664 0.04101 0.55644 0 0.01375 0.03189 0 0 0.00559 0.44113 0.09785 0.21308 0.09879 0.08914 0 0.00138 0 0.0756 0.03621 0.07741 0 0.79838 0.36659 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Adlercreutzia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Adlercreutzia|s__Adlercreutzia_equolifaciens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Adlercreutzia|s__Adlercreutzia_equolifaciens|t__GCF_000478885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium 0 0 0 0 0.14921 0 0 0 0.02098 0 0 0.05983 0.00955 0.37847 0.094 0 0 0 0 0 0.49985 0 0 0 0.00847 0.03737 0 0.02084 0.01348 0 0 0.00767 0.02615 0 0 0 0.19156 0.29054 0.01843 0.0506 0.01894 0.00795 0.20973 0 0.01404 0 0 0.13828 0.33838 0.00361 0.0486 0.00442 0.07664 0.04101 0.55644 0 0.01375 0.03189 0 0 0.00559 0.44113 0.09785 0.21308 0.09879 0.08914 0 0.00138 0 0.0756 0.03621 0.07741 0 0.7 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_parvulum 0 0 0 0 0.14921 0 0 0 0.02098 0 0 0.05983 0.00955 0.36456 0.02816 0 0 0 0 0 0.45208 0 0 0 0.00847 0.03737 0 0.02084 0.01348 0 0 0.00767 0.02615 0 0 0 0.19156 0.26673 0.01404 0.02117 0.01894 0.00131 0.20011 0 0.00614 0 0 0.11323 0.24924 0 0.0486 0.00442 0.07664 0.04101 0.47456 0 0.01375 0.03189 0 0 0.00559 0.44113 0.09785 0.21308 0.09879 0.08914 0 0.00138 0 0.0756 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_parvulum|t__GCF_000024225 0 0 0 0 0.14921 0 0 0 0.02098 0 0 0.05983 0.00955 0.36456 0.02816 0 0 0 0 0 0.45208 0 0 0 0.00847 0.03737 0 0.02084 0.01348 0 0 0.00767 0.02615 0 0 0 0.19156 0.26673 0.01404 0.02117 0.01894 0.00131 0.20011 0 0.00614 0 0 0.11323 0.24924 0 0.0486 0.00442 0.07664 0.04101 0.47456 0 0.01375 0.03189 0 0 0.00559 0.44113 0.09785 0.21308 0.09879 0.08914 0 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_rimae 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01391 0.06584 0 0 0 0 0 0.04777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02381 0.00438 0.02942 0 0.00664 0.00961 0 0.0079 0 0 0.02506 0.08914 0.00361 0 0 0 0 0.08188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.39756 0.06204 0 0 0 0 0 0.0337 0 0 0.0429 0 0 0.19265 0 0 0.01361 0 0 0 0 0 0 0 0 0.00106 0 0 0 0.00099 0.10303 0 0 0 0 0 0 0 0 0 0.00165 0 0 0.00 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_rimae|t__GCF_000174015 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01391 0.06584 0 0 0 0 0 0.04777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02381 0.00438 0.02942 0 0.00664 0.00961 0 0.0079 0 0 0.02506 0.08914 0.00361 0 0 0 0 0.08188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.39756 0.06204 0 0 0 0 0 0.0337 0 0 0.0429 0 0 0.19265 0 0 0.01361 0 0 0 0 0 0 0 0 0.00106 0 0 0 0.00099 0.10303 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_sp_ICM58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_sp_ICM58|t__GCF_000283035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_sp_oral_taxon_199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_sp_oral_taxon_199|t__GCF_000411555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_vaginae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_vaginae|t__Atopobium_vaginae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_vaginae|t__GCF_000179715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_aerofaciens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_aerofaciens|t__GCF_000169035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_intestinalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_intestinalis|t__GCF_000156175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_stercoris 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_stercoris|t__GCF_000156215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_tanakaei 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_tanakaei|t__GCF_000225705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Coriobacteriaceae_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Coriobacteriaceae_noname|s__Coriobacteriaceae_bacterium_phI 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Coriobacteriaceae_noname|s__Coriobacteriaceae_bacterium_phI|t__GCF_000311845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Cryptobacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00646 0 0 0 0 0 0 0 0 0 0.00056 0 0 0.01081 0.00038 0.01272 0 0.08603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00111 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Cryptobacterium|s__Cryptobacterium_curtum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00646 0 0 0 0 0 0 0 0 0 0.00056 0 0 0.01081 0.00038 0.01272 0 0.08603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Cryptobacterium|s__Cryptobacterium_curtum|t__GCF_000023845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00646 0 0 0 0 0 0 0 0 0 0.00056 0 0 0.01081 0.00038 0.01272 0 0.08603 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Eggerthella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Eggerthella|s__Eggerthella_lenta 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Eggerthella|s__Eggerthella_lenta|t__GCF_000024265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Eggerthella|s__Eggerthella_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Gordonibacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Gordonibacter|s__Gordonibacter_pamelaeae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Gordonibacter|s__Gordonibacter_pamelaeae|t__GCF_000210055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01955 0 0 0 0 0 0 0 0 0 0.00821 0 0 0.00364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00055 0 0 0 0 0 0 0 0 0 0 0 0.12923 0 0 0 0 0 0 0.04344 0.13902 0 0 0.01661 0.0066 0 0 0.00336 0 0.00422 0 0 0.0075 0 0.01986 0.00165 0.07675 0 0 0 0 0 0 0 0 0.0058 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Olsenella|s__Olsenella_uli 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12923 0 0 0 0 0 0 0 0.13902 0 0 0.01651 0 0 0 0 0 0 0 0 0 0 0.00105 0 0.07675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Olsenella|s__Olsenella_uli|t__GCF_000143845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12923 0 0 0 0 0 0 0 0.13902 0 0 0.01651 0 0 0 0 0 0 0 0 0 0 0.00105 0 0.07675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Olsenella|s__Olsenella_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01015 0 0 0 0 0 0 0 0 0 0.00821 0 0 0.00364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04344 0 0 0 0.0001 0.0066 0 0 0.00336 0 0.00422 0 0 0.0075 0 0.01881 0.00165 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Slackia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07194 0 0 0 0 0 0 0 0 0 0.00574 0.01309 0 0.00313 0 0 0 0 0 0 0 0 0.00662 0 0.01221 0 0.00505 0 0 0 0 0 0 0.00283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00594 0 0.00639 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Slackia|s__Slackia_exigua 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00743 0 0 0 0 0 0 0 0 0 0.00574 0.00515 0 0 0 0 0 0 0 0 0 0 0 0 0.0042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Slackia|s__Slackia_exigua|t__GCF_000162875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00743 0 0 0 0 0 0 0 0 0 0.00574 0.00515 0 0 0 0 0 0 0 0 0 0 0 0 0.0042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Slackia|s__Slackia_piriformis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Slackia|s__Slackia_piriformis|t__GCF_000296445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Slackia|s__Slackia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06452 0 0 0 0 0 0 0 0 0 0 0.00794 0 0.00313 0 0 0 0 0 0 0 0 0.00662 0 0.00801 0 0.00505 0 0 0 0 0 0 0.00283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes 11.92344 5.99301 0.07922 6.72864 8.21307 15.69894 3.93788 2.54455 5.82529 4.53406 1.96775 7.63093 2.01508 20.74479 3.9532 12.50955 1.5718 0.28291 6.59919 4.72076 5.42702 7.17109 2.06312 0.4443 3.81501 1.19988 0.56275 5.23114 1.34456 8.20281 2.20098 0.70436 0.78723 2.73144 0.25703 0.60388 21.96031 24.25586 0.53258 0.69276 10.42446 1.97585 6.23843 4.99745 4.2053 8.91691 2.80238 13.77582 18.66074 3.12092 3.43622 3.71903 11.26052 2.80322 10.957 12.24233 6.91356 1 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname 0 0 0 0 0 0.00214 0 0 0.0039 0.00587 0 0.0155 0 0.029 0.0137 0 0 0 0 0.01841 0 0 0 0 0.00934 0 0 0.0209 0.00349 0.08119 0 0 0 0.05025 0 0 0.23334 0.10316 0.02422 0.01211 0 0 0.02616 0 0.00322 0.0377 0.00509 0.11461 0.21505 0.01863 0 0 0 0 0.01291 0 0 0 0 0 0 0 0 0 0 0.27524 0 0 0 0 0.24789 0 0 0.19903 0 0.00301 0 0 0.22262 0 0.02288 0.00508 0.23011 0.00212 0.02604 0 0 0 0 0.06027 0 0 0 0 0 0.12794 0 0.03094 0 0.04154 0 0 0 0.08152 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname|o__Bacteroidetes_noname 0 0 0 0 0 0.00214 0 0 0.0039 0.00587 0 0.0155 0 0.029 0.0137 0 0 0 0 0.01841 0 0 0 0 0.00934 0 0 0.0209 0.00349 0.08119 0 0 0 0.05025 0 0 0.23334 0.10316 0.02422 0.01211 0 0 0.02616 0 0.00322 0.0377 0.00509 0.11461 0.21505 0.01863 0 0 0 0 0.01291 0 0 0 0 0 0 0 0 0 0 0.27524 0 0 0 0 0.24789 0 0 0.19903 0 0.00301 0 0 0.22262 0 0.02288 0.00508 0.23011 0.00212 0.02604 0 0 0 0 0.06027 0 0 0 0 0 0.12794 0 0.03094 0 0. [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname|o__Bacteroidetes_noname|f__Bacteroidetes_noname 0 0 0 0 0 0.00214 0 0 0.0039 0.00587 0 0.0155 0 0.029 0.0137 0 0 0 0 0.01841 0 0 0 0 0.00934 0 0 0.0209 0.00349 0.08119 0 0 0 0.05025 0 0 0.23334 0.10316 0.02422 0.01211 0 0 0.02616 0 0.00322 0.0377 0.00509 0.11461 0.21505 0.01863 0 0 0 0 0.01291 0 0 0 0 0 0 0 0 0 0 0.27524 0 0 0 0 0.24789 0 0 0.19903 0 0.00301 0 0 0.22262 0 0.02288 0.00508 0.23011 0.00212 0.02604 0 0 0 0 0.06027 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname|o__Bacteroidetes_noname|f__Bacteroidetes_noname|g__Bacteroidetes_noname 0 0 0 0 0 0.00214 0 0 0.0039 0.00587 0 0.0155 0 0.029 0.0137 0 0 0 0 0.01841 0 0 0 0 0.00934 0 0 0.0209 0.00349 0.08119 0 0 0 0.05025 0 0 0.23334 0.10316 0.02422 0.01211 0 0 0.02616 0 0.00322 0.0377 0.00509 0.11461 0.21505 0.01863 0 0 0 0 0.01291 0 0 0 0 0 0 0 0 0 0 0.27524 0 0 0 0 0.24789 0 0 0.19903 0 0.00301 0 0 0.22262 0 0.02288 0.00508 0.23011 0.00212 0.02604 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname|o__Bacteroidetes_noname|f__Bacteroidetes_noname|g__Bacteroidetes_noname|s__Bacteroidetes_bacterium_oral_taxon_272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08054 0 0.151 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname|o__Bacteroidetes_noname|f__Bacteroidetes_noname|g__Bacteroidetes_noname|s__Bacteroidetes_bacterium_oral_taxon_272|t__GCF_000442105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08054 0 0.151 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname|o__Bacteroidetes_noname|f__Bacteroidetes_noname|g__Bacteroidetes_noname|s__Bacteroidetes_oral_taxon_274 0 0 0 0 0 0.00214 0 0 0.0039 0.00587 0 0.0155 0 0.029 0 0 0 0 0 0.01841 0 0 0 0 0.00934 0 0 0.0209 0.00349 0.08119 0 0 0 0.05025 0 0 0.23334 0.10316 0.02422 0.01211 0 0 0.02616 0 0.00322 0.0377 0.00509 0.11461 0.21505 0.01863 0 0 0 0 0.01291 0 0 0 0 0 0 0 0 0 0 0.27524 0 0 0 0 0.24789 0 0 0.19903 0 0.00301 0 0 0.22262 0 0.02288 0.005 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidetes_noname|o__Bacteroidetes_noname|f__Bacteroidetes_noname|g__Bacteroidetes_noname|s__Bacteroidetes_oral_taxon_274|t__GCF_000163695 0 0 0 0 0 0.00214 0 0 0.0039 0.00587 0 0.0155 0 0.029 0 0 0 0 0 0.01841 0 0 0 0 0.00934 0 0 0.0209 0.00349 0.08119 0 0 0 0.05025 0 0 0.23334 0.10316 0.02422 0.01211 0 0 0.02616 0 0.00322 0.0377 0.00509 0.11461 0.21505 0.01863 0 0 0 0 0.01291 0 0 0 0 0 0 0 0 0 0 0.27524 0 0 0 0 0.24789 0 0 0.19903 0 0.00301 0 0 0.2226 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia 11.66179 5.38127 0.01986 5.52744 7.20478 15.41875 0.86021 2.23257 5.15442 2.94696 0.12875 5.70971 1.77121 18.82229 3.85083 8.47186 0.85009 0.05136 4.41556 4.05722 5.09648 3.7027 0.49524 0.4443 2.58536 1.19988 0.05205 3.38272 0.71013 4.83348 1.09799 0.356 0.3484 0.31809 0.25703 0.45792 1.14829 22.9491 0.28408 0.33338 7.69984 1.70191 5.42941 1.39054 2.47262 6.31966 2.30414 10.86791 17.61986 2.2731 2.05584 3.22296 10.55061 1.5478 10.05403 6.09357 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales 11.66179 5.38127 0.01986 5.52744 7.20478 15.41875 0.86021 2.23257 5.15442 2.94696 0.12875 5.70971 1.77121 18.82229 3.85083 8.47186 0.85009 0.05136 4.41556 4.05722 5.09648 3.7027 0.49524 0.4443 2.58536 1.19988 0.05205 3.38272 0.71013 4.83348 1.09799 0.356 0.3484 0.31809 0.25703 0.45792 1.14829 22.9491 0.28408 0.33338 7.69984 1.70191 5.42941 1.39054 2.47262 6.31966 2.30414 10.86791 17.61986 2.2731 2.05584 3.22296 10.55061 1.5478 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae 0 0.00081 0 0.00292 0 0 0 0.27848 0.01345 0 0 0 0 0.05411 0.27419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11.41987 0 0 0.53034 0.00312 0.00249 0 0.00021 0 0 0.02739 0.03031 0 0.00831 0 0 0 0 0 0 0 0 0 0 0 0.00075 0 0 0.21877 0.00549 0 0 0.00317 0 0.01003 0.4 0 1.31235 0.15399 0 7.57069 0.24522 0 0 0 0 0 0 0 0.00078 0 0 0.07762 0 0 0.00862 0 0 0 0 0.21346 0 0.06241 0 0 0 0.08018 0 0 0 0.13289 0.00359 0 0 0. [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides 0 0.00081 0 0.00292 0 0 0 0.27848 0.01345 0 0 0 0 0.05411 0.27419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11.41987 0 0 0.53034 0.00312 0.00249 0 0.00021 0 0 0.02739 0.03031 0 0.00831 0 0 0 0 0 0 0 0 0 0 0 0.00075 0 0 0.21877 0.00549 0 0 0.00317 0 0.01003 0.4 0 1.31235 0.15399 0 7.57069 0.24522 0 0 0 0 0 0 0 0.00078 0 0 0.07762 0 0 0.00862 0 0 0 0 0.21346 0 0.06241 0 0 0 0.08018 0 0 0 0.13289 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_caccae 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0487 0 0 0.03731 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1751 0 0 0 0 1.23227 0 0 0 0 0 0 0 0 0.00078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0102 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_caccae|t__Bacteroides_caccae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0487 0 0 0.03731 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1751 0 0 0 0 1.23227 0 0 0 0 0 0 0 0 0.00078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_caccae|t__GCF_000273725 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_cellulosilyticus 0 0 0 0 0 0 0 0.06874 0 0 0 0 0 0 0.02365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.42877 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00213 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_cellulosilyticus|t__Bacteroides_cellulosilyticus_unclassified 0 0 0 0 0 0 0 0.06874 0 0 0 0 0 0 0.02365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.42877 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_cellulosilyticus|t__GCF_000158035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_clarus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_clarus|t__GCF_000195615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_coprocola 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12354 0 0 0 0 0 0 0 0 0 0.00737 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_coprocola|t__GCF_000154845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12354 0 0 0 0 0 0 0 0 0 0.00737 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_coprophilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_coprophilus|t__GCF_000157915 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_dorei 0 0 0 0 0 0 0 0.20973 0 0 0 0 0 0 0.098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00333 0 0 3.84346 0.01797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00787 0 0.02204 0 0 0 0.01114 0 0 0 0 0.00136 0 0 0 0 0 0 0 0 0 0 0.00944 0 0 0 0.1789 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00358 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_dorei|t__Bacteroides_dorei_unclassified 0 0 0 0 0 0 0 0.20973 0 0 0 0 0 0 0.098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00333 0 0 3.84346 0.01797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00787 0 0.02204 0 0 0 0.01114 0 0 0 0 0.00136 0 0 0 0 0 0 0 0 0 0 0.00944 0 0 0 0.1789 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_eggerthii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_eggerthii|t__Bacteroides_eggerthii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_eggerthii|t__GCF_000155815 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_faecis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_faecis|t__GCF_000226135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_finegoldii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_finegoldii|t__Bacteroides_finegoldii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_finegoldii|t__GCF_000156195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_fluxus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_fluxus|t__GCF_000195635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_fragilis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13829 0 0 0.6319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_fragilis|t__Bacteroides_fragilis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13829 0 0 0.6319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_fragilis|t__GCF_000297735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_fragilis|t__GCF_000297755 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_gallinarum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_gallinarum|t__GCF_000374365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_intestinalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_intestinalis|t__GCF_000172175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_massiliensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.55765 0 0 0 0 0 0 0 0 0 0 0.01937 0 0.00346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01542 0 0 0 0 0 0 0 0 0 0.01464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_massiliensis|t__Bacteroides_massiliensis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.55765 0 0 0 0 0 0 0 0 0 0 0.01937 0 0.00346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01542 0 0 0 0 0 0 0 0 0 0.01464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_nordii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_nordii|t__GCF_000273175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_oleiciplenus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_oleiciplenus|t__GCF_000315485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_ovatus 0 0.00081 0 0.00292 0 0 0 0 0.00106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14354 0 0 0.02365 0.00018 0 0 0.00021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00075 0 0 0 0 0 0 0 0 0 0 0 0.61927 0 0 0.1765 0.03103 0 0 0 0 0 0 0 0 0 0 0.0131 0 0 0.00862 0 0 0 0 0.02636 0 0.00077 0 0 0 0.04385 0 0 0 0.02106 0.00224 0 0 0.10433 0 0 0 0 0 0 0 0 0 0 0 0.12716 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_ovatus|t__Bacteroides_ovatus_unclassified 0 0.00081 0 0.00292 0 0 0 0 0.00106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14354 0 0 0.02365 0.00018 0 0 0.00021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00075 0 0 0 0 0 0 0 0 0 0 0 0.61927 0 0 0.1765 0.03103 0 0 0 0 0 0 0 0 0 0 0.0131 0 0 0.00862 0 0 0 0 0.02636 0 0.00077 0 0 0 0.04385 0 0 0 0.02106 0.00224 0 0 0.10433 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_ovatus|t__GCF_000178275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_ovatus|t__GCF_000273195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_ovatus|t__GCF_000273215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_plebeius 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00087 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_plebeius|t__GCF_000187895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_salyersiae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_salyersiae|t__Bacteroides_salyersiae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_sp_1_1_30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_sp_1_1_30|t__GCF_000218365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_sp_1_1_6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_sp_1_1_6|t__GCF_000159875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_sp_2_1_22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_sp_2_1_22|t__GCF_000162155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_sp_4_3_47FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_sp_4_3_47FAA|t__GCF_000158515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_stercoris 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.0561 0 0 0 0 0.00094 0 0 0 0 0 0.00191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07626 0.00549 0 0 0 0 0 0.02053 0 0 0 0 0 0.07554 0 0 0 0 0 0 0 0 0 0 0.00232 0 0 0 0 0 0 0 0.10502 0 0.01399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_stercoris|t__Bacteroides_stercoris_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.0561 0 0 0 0 0.00094 0 0 0 0 0 0.00191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07626 0.00549 0 0 0 0 0 0.02053 0 0 0 0 0 0.07554 0 0 0 0 0 0 0 0 0 0 0.00232 0 0 0 0 0 0 0 0.10502 0 0.01399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_thetaiotaomicron 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.01444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01003 0 0 0 0 0 0.3248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01957 0 0 0 0 0 0.02519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00014 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_thetaiotaomicron|t__Bacteroides_thetaiotaomicron_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.01444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01003 0 0 0 0 0 0.3248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01957 0 0 0 0 0 0.02519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_uniformis 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00381 0.01705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.01282 0 0 0.1724 0 0 0 0 0 0 0.01313 0.00903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08603 0 0 0 0 0 0 0 0 0 0.02157 0 0.93298 0.02899 0 0 0 0 0 0 0 0 0 0 0.00982 0 0 0 0 0 0 0 0.01065 0 0.01096 0 0 0 0 0 0 0 0.03271 0 0 0 0 0 0 0 0 0 0 0.01652 0.01373 0 0 0 0.02464 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_uniformis|t__Bacteroides_uniformis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00381 0.01705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.01282 0 0 0.1724 0 0 0 0 0 0 0.01313 0.00903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08603 0 0 0 0 0 0 0 0 0 0.02157 0 0.93298 0.02899 0 0 0 0 0 0 0 0 0 0 0.00982 0 0 0 0 0 0 0 0.01065 0 0.01096 0 0 0 0 0 0 0 0.03271 0 0 0 0 0 0 0 0 0 0 0.01652 0.01373 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_uniformis|t__GCF_000154205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_vulgatus 0 0 0 0 0 0 0 0 0.01239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.46514 0 0 0.13272 0.00294 0.00154 0 0 0 0 0.01426 0 0 0.00485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05648 0 0 0 0 0 0 0.20436 0 0.55146 0.05821 0 0 0.09168 0 0 0 0 0 0 0 0 0 0 0.03696 0 0 0 0 0 0 0 0.044 0 0 0 0 0 0 0 0 0 0.07912 0 0 0 0.03268 0 0 0 0 0 0 0.02515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_vulgatus|t__Bacteroides_vulgatus_unclassified 0 0 0 0 0 0 0 0 0.01239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.46514 0 0 0.13272 0.00294 0.00154 0 0 0 0 0.01426 0 0 0.00485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05648 0 0 0 0 0 0 0.20436 0 0.55146 0.05821 0 0 0.09168 0 0 0 0 0 0 0 0 0 0 0.03696 0 0 0 0 0 0 0 0.044 0 0 0 0 0 0 0 0 0 0.07912 0 0 0 0.03268 0 0 0 0 0 0 0.02515 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_xylanisolvens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_xylanisolvens|t__Bacteroides_xylanisolvens_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidales_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06879 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidales_noname|g__Bacteroidales_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06879 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidales_noname|g__Bacteroidales_noname|s__Bacteroidales_bacterium_ph8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06879 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidales_noname|g__Bacteroidales_noname|s__Bacteroidales_bacterium_ph8|t__GCF_000311925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06879 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae 0 0.20354 0 0 3.71527 0 0 0.11201 1.82185 2.75472 0 0.00109 0.20647 5.34295 0.96574 6.89864 0.6624 0 2.16606 3.47243 0.47911 2.99603 0.03814 0 1.87721 0 0 1.88567 0.00647 2.63278 0.8436 0 0 0.00955 0 0.37294 0.03127 1.33721 0 0 6.30677 1.04571 0.1447 0 1.08903 4.61446 1.10759 4.66761 6.37548 1.5509 0.45191 1.27487 6.92886 0.47274 3.51116 5.2677 0.43318 0 2.65682 0 0.24155 0 1.09257 0.24361 0.7805 5.69021 1 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Barnesiella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.57196 0 0 0.01418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.07518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Barnesiella|s__Barnesiella_intestinihominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.57196 0 0 0.01418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.07518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00257 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Barnesiella|s__Barnesiella_intestinihominis|t__GCF_000296465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.57196 0 0 0.01418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.07518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Butyricimonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Butyricimonas|s__Butyricimonas_synergistica 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Butyricimonas|s__Butyricimonas_synergistica|t__GCF_000379665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Coprobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0997 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01858 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Coprobacter|s__Coprobacter_fastidiosus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0997 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01858 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Coprobacter|s__Coprobacter_fastidiosus|t__GCF_000473955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0997 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01858 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Dysgonomonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Dysgonomonas|s__Dysgonomonas_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Odoribacter 0 0 0 0 0 0 0 0.11201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.69762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Odoribacter|s__Odoribacter_laneus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.81654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Odoribacter|s__Odoribacter_laneus|t__GCF_000243215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.81654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Odoribacter|s__Odoribacter_splanchnicus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.88108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Odoribacter|s__Odoribacter_splanchnicus|t__GCF_000190535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.88108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Odoribacter|s__Odoribacter_unclassified 0 0 0 0 0 0 0 0.11201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02111 0.11267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.60539 0 0 0.00937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.34199 0 0 0 0 1.62718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00216 0 0 0 0 0 0.00 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_distasonis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11354 0 0 0.00937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.66493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00099 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_distasonis|t__Parabacteroides_distasonis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11354 0 0 0.00937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.66493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_goldsteinii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_goldsteinii|t__Parabacteroides_goldsteinii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_johnsonii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.49185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_johnsonii|t__GCF_000156495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_johnsonii|t__Parabacteroides_johnsonii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.49185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_merdae 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02111 0.02399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.96225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00117 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_merdae|t__GCF_000307345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_merdae|t__Parabacteroides_merdae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02111 0.02399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.96225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_sp_D13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_sp_D13|t__GCF_000162275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.34199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas 0 0.20354 0 0 3.59635 0 0 0 1.82185 2.75472 0 0.00109 0.20647 5.30479 0.74054 6.89864 0.6624 0 2.16606 3.47243 0.43482 2.99603 0.03814 0 1.87721 0 0 1.88567 0.00647 2.6033 0.8436 0 0 0.00955 0 0.37294 0.03127 0 0 0 6.28321 1.03106 0.11136 0 1.08903 4.61446 1.10759 4.61716 6.35097 1.54931 0.45191 1.27487 6.92886 0.47274 3.32705 5.2677 0.43318 0 2.65682 0 0.24155 0 1.09257 0.24361 0.7805 5.6 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_asaccharolytica 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_asaccharolytica|t__Porphyromonas_asaccharolytica_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_bennonis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_bennonis|t__GCF_000375645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_catoniae 0 0.00063 0 0 0.07512 0 0 0 0.0201 0.03094 0 0.00109 0 0.00289 0 0.02125 0 0 0 0 0 0.02119 0.03814 0 0.12003 0 0 0.04522 0 0.12832 0.01551 0 0 0.00955 0 0 0 0 0 0 0 0 0.02448 0 0.05537 0.2959 0 0.14424 0.08598 0.02017 0 0.01856 0.26565 0.02356 0 0.06424 0.00623 0 0.02753 0 0 0 0 0 0 0 0 0 0.04108 0.02859 0.74558 0.01598 0 0 0.02268 0.02175 0 0 0.02939 0 0.0014 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_catoniae|t__GCF_000318215 0 0.00063 0 0 0.07512 0 0 0 0.0201 0.03094 0 0.00109 0 0.00289 0 0.02125 0 0 0 0 0 0.02119 0.03814 0 0.12003 0 0 0.04522 0 0.12832 0.01551 0 0 0.00955 0 0 0 0 0 0 0 0 0.02448 0 0.05537 0.2959 0 0.14424 0.08598 0.02017 0 0.01856 0.26565 0.02356 0 0.06424 0.00623 0 0.02753 0 0 0 0 0 0 0 0 0 0.04108 0.02859 0.74558 0.01598 0 0 0.02268 0.02175 0 0 0.0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_endodontalis 0 0 0 0 0.4804 0 0 0 0.02581 0.00889 0 0 0 0.08639 0.17724 0.00346 0.00237 0 0.0195 0 0.17628 0 0 0 0 0 0 0 0.00104 0.23402 0 0 0 0 0 0 0.03127 0 0 0 0 0.22677 0.08688 0 0.01546 0 0.11658 0.36321 0.21383 0.03004 0 0.02647 0 0.00854 1.17389 0 0.00054 0 0 0 0 0 0 0.24361 0 0 0 0.08191 0 0.00085 0.01981 0.1522 0.70486 1.19449 0 0.19212 0 0 0.41758 0 0.34511 0 0.2 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_endodontalis|t__GCF_000174815 0 0 0 0 0.4804 0 0 0 0.02581 0.00889 0 0 0 0.08639 0.17724 0.00346 0.00237 0 0.0195 0 0.17628 0 0 0 0 0 0 0 0.00104 0.23402 0 0 0 0 0 0 0.03127 0 0 0 0 0.22677 0.08688 0 0.01546 0 0.11658 0.36321 0.21383 0.03004 0 0.02647 0 0.00854 1.17389 0 0.00054 0 0 0 0 0 0 0.24361 0 0 0 0.08191 0 0.00085 0.01981 0.1522 0.70486 1.19449 0 0.19212 0 0 0.4175 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_gingivalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.56331 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.51624 0 0.15584 0 0 0 0 0.00213 0 0.10736 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.01779 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_gingivalis|t__Porphyromonas_gingivalis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.56331 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.51624 0 0.15584 0 0 0 0 0.00213 0 0.10736 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_gulae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_gulae|t__GCF_000378065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_somerae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_somerae|t__GCF_000372405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_sp_oral_taxon_278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.69362 0 0.49638 0 0 0 0 0 0.8838 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.24769 0.85703 0 0 0.26857 0 0 0 0.68135 0 0 0.12073 0.22142 0.70225 0.11565 0.27553 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_sp_oral_taxon_278|t__GCF_000467855 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.69362 0 0.49638 0 0 0 0 0 0.8838 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.24769 0.85703 0 0 0.26857 0 0 0 0.68135 0 0 0.12073 0.22142 0.70225 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_sp_oral_taxon_279 0 0.20291 0 0 3.04083 0 0 0 1.77594 2.71489 0 0 0.20647 5.21551 0 6.87393 0.66003 0 2.14656 3.47243 0.25854 2.97484 0 0 1.75718 0 0 1.84046 0 2.24096 0.82809 0 0 0 0 0.37294 0 0 0 0 6.28321 0.8043 0 0 1.0182 4.31856 0.99101 4.10971 6.05116 1.49909 0.45191 1.22985 6.66321 0.44063 2.15316 5.20346 0.42641 0 2.62929 0 0.24155 0 1.09257 0 0.7805 5.69021 1.7315 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_sp_oral_taxon_279|t__GCF_000292995 0 0.20291 0 0 3.04083 0 0 0 1.77594 2.71489 0 0 0.20647 5.21551 0 6.87393 0.66003 0 2.14656 3.47243 0.25854 2.97484 0 0 1.75718 0 0 1.84046 0 2.24096 0.82809 0 0 0 0 0.37294 0 0 0 0 6.28321 0.8043 0 0 1.0182 4.31856 0.99101 4.10971 6.05116 1.49909 0.45191 1.22985 6.66321 0.44063 2.15316 5.20346 0.42641 0 2.62929 0 0.24155 0 1.09257 0 0.78 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_uenonis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05415 0 0 0 0 0 0 0 0 0 0.0034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_uenonis|t__GCF_000174775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05415 0 0 0 0 0 0 0 0 0 0.0034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Tannerella 0 0 0 0 0.11893 0 0 0 0 0 0 0 0 0.01705 0.11253 0 0 0 0 0 0.04429 0 0 0 0 0 0 0 0 0.02947 0 0 0 0 0 0 0 0 0 0 0 0.01465 0.03334 0 0 0 0 0.05045 0.02452 0.00159 0 0 0 0 0.18411 0 0 0 0 0 0 0 0 0 0 0 0 0.03905 0 0 0 0.01463 0 0.15759 0 0 0 0 0.03506 0 0.15568 0 0 0.03285 0.00161 0 0 0 0 0.04266 0 0 0 0 0 0 0 0 0 0.00078 0 0 0.00171 0.16771 0 0 0 0 0 0 0 0 0 0.04929 0 0 1.52357 0.01031 0.53057 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Tannerella|s__Tannerella_forsythia 0 0 0 0 0.11893 0 0 0 0 0 0 0 0 0.01705 0.11253 0 0 0 0 0 0.04429 0 0 0 0 0 0 0 0 0.02947 0 0 0 0 0 0 0 0 0 0 0 0.01465 0.03334 0 0 0 0 0.05045 0.02452 0.00159 0 0 0 0 0.18411 0 0 0 0 0 0 0 0 0 0 0 0 0.03905 0 0 0 0.01463 0 0.15759 0 0 0 0 0.03506 0 0.15568 0 0 0.03285 0.00161 0 0 0 0 0.04266 0 0 0 0 0 0 0 0 0 0.00078 0 0 0.00171 0.16771 0 0 0 0 0 0 0 0 0 0.04929 0 0 1 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Tannerella|s__Tannerella_forsythia|t__GCF_000238215 0 0 0 0 0.11893 0 0 0 0 0 0 0 0 0.01705 0.11253 0 0 0 0 0 0.04429 0 0 0 0 0 0 0 0 0.02947 0 0 0 0 0 0 0 0 0 0 0 0.01465 0.03334 0 0 0 0 0.05045 0.02452 0.00159 0 0 0 0 0.18411 0 0 0 0 0 0 0 0 0 0 0 0 0.03905 0 0 0 0.01463 0 0.15759 0 0 0 0 0.03506 0 0.15568 0 0 0.03285 0.00161 0 0 0 0 0.04266 0 0 0 0 0 0 0 0 0 0.00078 0 0 0.00171 0.16771 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae 11.66179 5.17692 0.01986 5.52452 3.4895 15.41875 0.86021 1.84208 3.31912 0.19224 0.12875 5.70862 1.56474 13.42524 2.56386 1.57321 0.18769 0.05136 2.24949 0.5848 4.61738 0.70666 0.4571 0.4443 0.70815 1.19988 0.05205 1.49705 0.70366 2.2007 0.25439 0.356 0.3484 0.30854 0.25703 0.08498 1.11702 9.07361 0.28408 0.33338 0.82605 0.65307 5.28222 1.39054 1.38338 1.7052 1.19655 6.17292 11.21406 0.7222 1.59562 1.94808 3.6 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Alloprevotella 4.09824 5.15889 0 5.47038 0.3664 2.19136 0 0.06647 0.01934 0.02445 0.12875 3.90588 1.24886 0.50252 0.30352 0.3943 0.00987 0 0.22084 0 0.19327 0.32653 0.08769 0 0 0 0 0.15193 0 0.47434 0.02692 0 0 0 0 0.03579 0.10026 0.15348 0 0 0.07332 0.09094 0.02281 1.38546 0.10304 0.07298 0 0.42583 0.63418 0.10655 0.1404 0.13741 0.24908 0.00573 1.02273 0.3787 2.84091 0.01817 2.46803 0 0.01394 0 0.07692 0.9 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Alloprevotella|s__Alloprevotella_rava 0 0 0 0 0.05249 0 0 0 0 0 0 0 0 0.04576 0.01717 0 0 0 0 0 0.02206 0 0 0 0 0 0 0 0 0.00177 0 0 0 0 0 0 0 0.14095 0 0 0 0 0 0 0 0 0 0.06704 0.26297 0.00122 0 0.02419 0 0 0.10997 0 0 0 0 0 0.00191 0 0 0 0 0 0 0.10627 0 0.02132 0 0 0 0.00493 0 0 0 0 0.09598 0 0.05814 0 0.02206 0 0 0 0 0 0 0.01612 0 0 0.41956 0 0 0 0.00593 0 0 0 0.00322 0 0 0.01814 0 0 0.00505 0.02069 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Alloprevotella|s__Alloprevotella_rava|t__GCF_000234115 0 0 0 0 0.05249 0 0 0 0 0 0 0 0 0.04576 0.01717 0 0 0 0 0 0.02206 0 0 0 0 0 0 0 0 0.00177 0 0 0 0 0 0 0 0.14095 0 0 0 0 0 0 0 0 0 0.06704 0.26297 0.00122 0 0.02419 0 0 0.10997 0 0 0 0 0 0.00191 0 0 0 0 0 0 0.10627 0 0.02132 0 0 0 0.00493 0 0 0 0 0.09598 0 0.05814 0 0.02206 0 0 0 0 0 0 0.01612 0 0 0.41956 0 0 0 0.00593 0 0 0 0.00322 0 0 0.01814 0 0 0.005 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Alloprevotella|s__Alloprevotella_tannerae 0 0 0 0 0.31391 0 0 0 0 0 0 0 0 0.21604 0.28635 0.01547 0.00259 0 0 0 0.17121 0 0 0 0 0 0 0.03839 0 0.0243 0 0 0 0 0 0 0 0 0 0 0 0.02438 0 0 0.04592 0.00973 0 0.35879 0.37121 0.10534 0.1404 0.11322 0.14221 0 0.91276 0 0.00034 0 0 0 0 0 0 0.33569 0 0.13892 0 0.11147 0 0 0.40271 0.02384 0 1.70485 0 0.01947 0.02496 0.09893 0.27601 0 0.28958 0 0.05741 0.16926 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Alloprevotella|s__Alloprevotella_tannerae|t__GCF_000159995 0 0 0 0 0.31391 0 0 0 0 0 0 0 0 0.21604 0.28635 0.01547 0.00259 0 0 0 0.17121 0 0 0 0 0 0 0.03839 0 0.0243 0 0 0 0 0 0 0 0 0 0 0 0.02438 0 0 0.04592 0.00973 0 0.35879 0.37121 0.10534 0.1404 0.11322 0.14221 0 0.91276 0 0.00034 0 0 0 0 0 0 0.33569 0 0.13892 0 0.11147 0 0 0.40271 0.02384 0 1.70485 0 0.01947 0.02496 0.09893 0.27601 0 0.28958 0 0.05741 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Alloprevotella|s__Alloprevotella_unclassified 4.09824 5.15889 0 5.47038 0 2.19136 0 0.06647 0.01934 0.02445 0.12875 3.90588 1.24886 0.24072 0 0 0.00728 0 0.22084 0 0 0.32653 0.08769 0 0 0 0 0.11353 0 0.44827 0.02692 0 0 0 0 0.03579 0.10026 0.01253 0 0 0.07332 0.06656 0.02281 1.38546 0.05712 0.06325 0 0 0 0 0 0 0.10687 0.00573 0 0.21787 2.84057 0.01817 0 0 0.01203 0 0.07692 0.64411 0 0.05893 0 0.18435 0 0.04 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Alloprevotella|s__Prevotella_sp_oral_taxon_473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.37883 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16083 0 0 2.46803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.39212 0 0 0 0 0 0 0 0.50856 0 0 0 0 0 0 0 0 0 0 0 3.13343 0 0 0 0.74611 0 1.49278 0.55571 0 0 0.3679 1.23193 0 0 0 0 0 0 0.32307 0.44332 0 0 0.42427 0.14 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Alloprevotella|s__Prevotella_sp_oral_taxon_473|t__GCF_000318095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.37883 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16083 0 0 2.46803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.39212 0 0 0 0 0 0 0 0.50856 0 0 0 0 0 0 0 0 0 0 0 3.13343 0 0 0 0.74611 0 1.49278 0.55571 0 0 0.3679 1.23193 0 0 0 0 0 0 0.32307 0.44332 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Paraprevotella 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02995 0.09828 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Paraprevotella|s__Paraprevotella_clara 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Paraprevotella|s__Paraprevotella_clara|t__GCF_000233955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Paraprevotella|s__Paraprevotella_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02995 0.08426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Paraprevotella|s__Paraprevotella_xylaniphila 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Paraprevotella|s__Paraprevotella_xylaniphila|t__GCF_000205165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella 7.56355 0.01802 0.01986 0.05414 3.1231 13.22739 0.86021 1.77562 3.29978 0.1678 0 1.80274 0.31587 12.89276 2.16207 1.17891 0.17782 0.05136 2.02866 0.5848 4.42411 0.38013 0.36942 0.4443 0.70815 1.19988 0.05205 1.34512 0.70366 1.72636 0.22747 0.356 0.3484 0.30854 0.25703 0.04919 1.01676 8.92013 0.28408 0.33338 0.75273 0.56213 5.25942 0.00508 1.28034 1.63222 1.19655 5.74709 10.57988 0.61564 1.45522 1 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Candidatus_Prevotella_conceptionensis 0 0 0 0 0.10371 0 0 0 0 0.01384 0 0 0 0.07234 0 0 0 0 0 0 0.01568 0 0 0 0.03478 0 0 0 0 0.03165 0 0 0 0.04591 0 0 0.0239 0 0 0 0 0.02247 0.07766 0 0 0.13547 0 0.18027 0.08465 0 0.03291 0 0.01493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06745 0 0.00167 0.04087 0 0 0.86777 0 0 0.05432 0 0 0 0.02929 0 0.03106 0.20588 0 0 0.02477 0 0 0.12363 0 0 0.2502 0 0 0.75389 0.0532 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Candidatus_Prevotella_conceptionensis|t__GCF_000312305 0 0 0 0 0.10371 0 0 0 0 0.01384 0 0 0 0.07234 0 0 0 0 0 0 0.01568 0 0 0 0.03478 0 0 0 0 0.03165 0 0 0 0.04591 0 0 0.0239 0 0 0 0 0.02247 0.07766 0 0 0.13547 0 0.18027 0.08465 0 0.03291 0 0.01493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06745 0 0.00167 0.04087 0 0 0.86777 0 0 0.05432 0 0 0 0.02929 0 0.03106 0.20588 0 0 0.02477 0 0 0.12363 0 0 0.2502 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_amnii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_amnii|t__Prevotella_amnii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_baroniae 0 0 0 0 0.02959 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00431 0 0 0.05758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00989 0 0.02125 0 0 0 0 0 0 0 0 0.0205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06957 0 0 0 0 0 0 0 0 0 0 0.53343 1.42027 0.04032 0 0 0 0.87139 0 0 0 0.02086 0.05998 0.03734 0 0 0 0 0 0 0 0 0 0 0.00187 0 0.0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_baroniae|t__GCF_000468635 0 0 0 0 0.02959 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00431 0 0 0.05758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00989 0 0.02125 0 0 0 0 0 0 0 0 0.0205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06957 0 0 0 0 0 0 0 0 0 0 0.53343 1.42027 0.04032 0 0 0 0.87139 0 0 0 0.02086 0.05998 0.03734 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_bergensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_bergensis|t__GCF_000160535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_bivia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_bivia|t__Prevotella_bivia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_buccae 0 0 0 0 0.00697 0 0 0 0 0 0 0 0 0.03088 0.00175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01554 0 0 0 0 0 0 0.04684 0 0 0 0 0 0.00449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02927 0 0 0 0 0 0 0.00309 0 0 0 0 0 0 0 0 0.01511 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02761 0 0 0 0 0 0 0 0 0 0 0 0 0.00762 0 0.52497 0 0 0.01086 0 0 0 0.03049 0.0527 0 0 0 0 0 0.0325 0 0.01106 0.01055 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_buccae|t__Prevotella_buccae_unclassified 0 0 0 0 0.00697 0 0 0 0 0 0 0 0 0.03088 0.00175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01554 0 0 0 0 0 0 0.04684 0 0 0 0 0 0.00449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02927 0 0 0 0 0 0 0.00309 0 0 0 0 0 0 0 0 0.01511 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02761 0 0 0 0 0 0 0 0 0 0 0 0 0.00762 0 0.52497 0 0 0.01086 0 0 0 0.03049 0.0527 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_buccalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_buccalis|t__GCF_000177075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_copri 0 0 0 0 0 0 0 0 0 0 0 0 0 0.19142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00428 0 0 1.30105 0 0 0 0 0.43304 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00136 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_copri|t__GCF_000157935 0 0 0 0 0 0 0 0 0 0 0 0 0 0.19142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00428 0 0 1.30105 0 0 0 0 0.43304 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_dentalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05983 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00923 0 0 0 0 0 0 0 0 0 0 0 0.00285 0 0 0 0.02112 0.01584 0.02808 0 0 0 0.01332 0.09935 0 0 0 0 0 0 0 0 0 0 0.01276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_dentalis|t__Prevotella_dentalis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05983 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00923 0 0 0 0 0 0 0 0 0 0 0 0.00285 0 0 0 0.02112 0.01584 0.02808 0 0 0 0.01332 0.09935 0 0 0 0 0 0 0 0 0 0 0.01276 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_denticola 0 0 0 0 0.01989 0 0 0 0.01031 0.01121 0 0.01809 0 0.10454 0.04709 0 0 0 0 0 0.0137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02857 0 0 0 0.00101 0.00162 0 0 0 0 0.31477 0.31312 0.00086 0.18432 0 0 0 0 0 0 0 0 0 0 0 0.05404 0 0 0 0 0 0.10783 0.02997 1.10865 0.04508 0 0 0.23265 0 0.06903 0 0.00341 0 0.06396 0 0.07615 0.17182 0 0 0.20321 0 0 0.15948 0 0 0 0 0 0 0 0.13539 0.00196 0 0. [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_denticola|t__Prevotella_denticola_unclassified 0 0 0 0 0.01989 0 0 0 0.01031 0.01121 0 0.01809 0 0.10454 0.04709 0 0 0 0 0 0.0137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02857 0 0 0 0.00101 0.00162 0 0 0 0 0.31477 0.31312 0.00086 0.18432 0 0 0 0 0 0 0 0 0 0 0 0.05404 0 0 0 0 0 0.10783 0.02997 1.10865 0.04508 0 0 0.23265 0 0.06903 0 0.00341 0 0.06396 0 0.07615 0.17182 0 0 0.20321 0 0 0.159 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_disiens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11859 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_disiens|t__Prevotella_disiens_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11859 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_histicola 0 0 0 0.0231 0 0 0 0 0.12446 0 0 0.54093 0.12116 1.67675 0 0 0 0 0.01476 0 0.10876 0 0.02365 0.12733 0.054 0.38853 0 0 0 0.00227 0 0.03034 0.03705 0 0.15177 0 0.02952 2.98304 0 0 0.01423 0 2.97292 0 0.03906 0.37042 0.072 0.32924 1.8292 0 0.27078 0 0.0517 0.02822 0 0 0 0.16759 0 0 0.01689 5.16151 0.73703 2.19703 0 0.01661 0 0.01074 0 1.84572 0 0.06366 0 0 0.92521 0 0.01044 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_histicola|t__GCF_000234055 0 0 0 0.0231 0 0 0 0 0.12446 0 0 0.54093 0.12116 1.67675 0 0 0 0 0.01476 0 0.10876 0 0.02365 0.12733 0.054 0.38853 0 0 0 0.00227 0 0.03034 0.03705 0 0.15177 0 0.02952 2.98304 0 0 0.01423 0 2.97292 0 0.03906 0.37042 0.072 0.32924 1.8292 0 0.27078 0 0.0517 0.02822 0 0 0 0.16759 0 0 0.01689 5.16151 0.73703 2.19703 0 0.01661 0 0.01074 0 1.84572 0 0.06366 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_intermedia 0 0 0 0 0 0 0 0 0 0 0 0 0 0.24661 0.17528 0.07976 0 0 0 0 0 0 0.00448 0 0 0 0 0.01055 0 0 0.01187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.18848 0 0.00462 0.00825 0 0 0 0 0.00567 0 0 0 0 0 0 0 0 0 0 0 0.29048 0 0 0 0.01675 0.10242 0.92079 0 0 0 0 0 0 0.61378 0 0.0576 0 0 0 0.14492 0 0 0.07923 0 0 0.10908 0 0 0 0 0 0 0.01528 0 0 0 0.49815 0 0 0 0 0 0 0 0 0 0 4.6146 26.77287 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_intermedia|t__GCF_000261025 0 0 0 0 0 0 0 0 0 0 0 0 0 0.24661 0.17528 0.07976 0 0 0 0 0 0 0.00448 0 0 0 0 0.01055 0 0 0.01187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.18848 0 0.00462 0.00825 0 0 0 0 0.00567 0 0 0 0 0 0 0 0 0 0 0 0.29048 0 0 0 0.01675 0.10242 0.92079 0 0 0 0 0 0 0.61378 0 0.0576 0 0 0 0.14492 0 0 0.07923 0 0 0.10908 0 0 0 0 0 0 0.01528 0 0 0 0.49815 0 0 0 0 0 0 0 0 0 0 4.61 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_loescheii 0 0 0 0 0 0 0 0 0.00978 0 0 0 0 0.0161 0 0.0079 0 0 0 0 0 0 0 0 0 0 0 0.08729 0 0.09621 0 0 0 0.00671 0 0 0 0.0081 0 0 0 0.00347 0 0 0.00208 0.10974 0 0.03361 0.02274 0.00693 0 0 0.16408 0 0 0.0509 0 0 0.00958 0 0 0 0 0 0 0.00343 0 0 0.01025 0.03325 0.03459 0 0 0 0.13066 0.02555 0 0 0.02132 0 0.00465 0 0.19299 0.0281 0 0.01003 0 0 0 0.01328 0 0 1.16165 0 0 0 0 0.01282 0 0. [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_loescheii|t__GCF_000378085 0 0 0 0 0 0 0 0 0.00978 0 0 0 0 0.0161 0 0.0079 0 0 0 0 0 0 0 0 0 0 0 0.08729 0 0.09621 0 0 0 0.00671 0 0 0 0.0081 0 0 0 0.00347 0 0 0.00208 0.10974 0 0.03361 0.02274 0.00693 0 0 0.16408 0 0 0.0509 0 0 0.00958 0 0 0 0 0 0 0.00343 0 0 0.01025 0.03325 0.03459 0 0 0 0.13066 0.02555 0 0 0.02132 0 0.00465 0 0.19299 0.0281 0 0.01003 0 0 0 0.01328 0 0 1.16165 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_maculosa 0.03206 0 0 0 0 0.02445 0 0 0 0 0 0.03908 0 0 0 0 0 0 0 0 0 0 0 0 0.0071 0 0 0 0 0.08458 0 0 0 0 0 0 0 0 0 0 0 0 0.01157 0 0.00333 0 0 0.08809 0.09889 0.0009 0.00109 0 0.00983 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01125 0.01387 0 0 0.30549 0 0 0.00764 0 0 0 0.02007 0 0 0.07807 0 0 0.04834 0 0 0.10882 0 0 0 0 0 0.01215 0.00327 0.00681 0 0.00618 0 0 0.03199 0.03361 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_maculosa|t__GCF_000243015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.20018 0 0 0 0 0 0 0 0 0.13654 0 0 0 0.76885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_maculosa|t__GCF_000382385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_maculosa|t__Prevotella_maculosa_unclassified 0.03206 0 0 0 0 0.02445 0 0 0 0 0 0.03908 0 0 0 0 0 0 0 0 0 0 0 0 0.0071 0 0 0 0 0.08458 0 0 0 0 0 0 0 0 0 0 0 0 0.01157 0 0.00333 0 0 0.08809 0.09889 0.0009 0.00109 0 0.00983 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01125 0.01387 0 0 0.30549 0 0 0.00764 0 0 0 0.02007 0 0 0.07807 0 0 0.04834 0 0 0.10882 0 0 0 0 0 0.01215 0.00327 0.00681 0 0.0061 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_marshii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01154 0.00923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.32845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00384 0 0.02629 0.02359 0.01935 0 0.07755 0.04056 0.07772 0 0 0 0 0 0.0044 0 0.0445 0 0.0439 0 0.24805 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_marshii|t__GCF_000146675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01154 0.00923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.32845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00384 0 0.02629 0.02359 0.01935 0 0.07755 0.04056 0.07772 0 0 0 0 0 0.0044 0 0.0445 0 0.0439 0 0. [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_melaninogenica 0 0.00412 0.01986 0.00644 1.80689 0.0003 0.65056 1.44397 1.42926 0.0457 0 0.13473 0.06923 6.71564 0.77543 0.18387 0.00607 0.00645 0.29054 0.216 3.13364 0 0.2521 0 0.33638 0.69636 0.05205 0.43932 0.47027 0.25432 0.01844 0.25249 0.22462 0.06203 0.10526 0.04032 0.54652 3.84991 0.02669 0.0225 0.37719 0.05438 0.54444 0.00508 0.24399 0.36466 0.28886 1.74616 3.39024 0.0899 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_melaninogenica|t__GCF_000144405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.86107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_melaninogenica|t__GCF_000163035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.74269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.50672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_melaninogenica|t__Prevotella_melaninogenica_unclassified 0 0.00412 0.01986 0.00644 1.80689 0.0003 0.65056 1.44397 1.42926 0.0457 0 0.13473 0.06923 6.71564 0.77543 0.18387 0.00607 0.00645 0.29054 0.216 3.13364 0 0.2521 0 0.33638 0.69636 0.05205 0.43932 0.47027 0.25432 0.01844 0.25249 0.22462 0.06203 0.10526 0.04032 0.54652 3.84991 0.02669 0.0225 0.37719 0.05438 0.54444 0.00508 0.2439 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_micans 0.01638 0 0 0 0 0.0115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02533 0 0 0 0 0 0 0 0 0 0 0 0.01062 0 0 0 0 0 0 0.0091 0 0 0.12997 0 0 0.05117 0 0.01671 0 0 0 0 0 0.03675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.20727 0.04239 0 0.05603 0.00168 0.28703 0 0 0.00793 0.14742 0 0 0.07127 0.03 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_micans|t__Prevotella_micans_unclassified 0.01638 0 0 0 0 0.0115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02533 0 0 0 0 0 0 0 0 0 0 0 0.01062 0 0 0 0 0 0 0.0091 0 0 0.12997 0 0 0.05117 0 0.01671 0 0 0 0 0 0.03675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.20727 0.04239 0 0.05603 0.00168 0.28703 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_multiformis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.18294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04557 0.36799 0 0 0 0 0 0 0 0 0 0 0 0 4.08676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_multiformis|t__GCF_000191065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.18294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04557 0.36799 0 0 0 0 0 0 0 0 0 0 0 0 4.08676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_nanceiensis 6.61865 0.00478 0 0 0.6511 12.89098 0.20965 0.18032 1.42861 0.04962 0 0.53973 0.09728 0.43719 0.1508 0.71918 0.09622 0.04491 0.33303 0.2007 0.44514 0.38013 0.01883 0 0.10676 0 0 0.66413 0.07772 0.93157 0.16219 0.07316 0.08674 0.18573 0 0.00887 0.00662 0.77005 0 0 0.2717 0.1902 0 0 0.6811 0.50223 0.60789 0.09673 1.03684 0.44459 0.11431 0.56086 1.31309 0.10661 1.31581 0.17 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_nanceiensis|t__GCF_000379965 6.61865 0.00478 0 0 0.6511 12.89098 0.20965 0.18032 1.42861 0.04962 0 0.53973 0.09728 0.43719 0.1508 0.71918 0.09622 0.04491 0.33303 0.2007 0.44514 0.38013 0.01883 0 0.10676 0 0 0.66413 0.07772 0.93157 0.16219 0.07316 0.08674 0.18573 0 0.00887 0.00662 0.77005 0 0 0.2717 0.1902 0 0 0.6811 0.50223 0.60789 0.09673 1.03684 0.44459 0.11431 0.56086 1.31309 0.1 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_nigrescens 0 0 0 0 0.11448 0 0 0 0.04189 0.01432 0 0.02809 0 0.18303 0.35137 0.03894 0.00223 0 1.01435 0.0363 0.08589 0 0.0021 0.31697 0.07389 0 0 0.04388 0 0.12566 0 0 0 0 0 0 0.15329 0.16382 0.07288 0.08979 0.01909 0.09697 0.03926 0 0.07251 0.08192 0.02937 0.55341 0.79549 0.0058 0.02327 0.02232 0.0158 0 0.41195 0.02492 0.01218 0 0 0 0.0003 0.05876 0.08289 0.2793 0.14041 0.12939 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_nigrescens|t__Prevotella_nigrescens_unclassified 0 0 0 0 0.11448 0 0 0 0.04189 0.01432 0 0.02809 0 0.18303 0.35137 0.03894 0.00223 0 1.01435 0.0363 0.08589 0 0.0021 0.31697 0.07389 0 0 0.04388 0 0.12566 0 0 0 0 0 0 0.15329 0.16382 0.07288 0.08979 0.01909 0.09697 0.03926 0 0.07251 0.08192 0.02937 0.55341 0.79549 0.0058 0.02327 0.02232 0.0158 0 0.41195 0.02492 0.01218 0 0 0 0.0003 0.0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oralis 0 0 0 0 0.0082 0 0 0 0 0 0 0 0 0.00357 0.00454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00337 0 0 0 0 0 0 0 0 0 0 0 0 0.05275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12178 0 0 0 0 0 0 0.01069 0 0.00323 0.0125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0136 0 0 0 0.00435 0 0 0 0 0 0 0 0 0 0 0 0 0.02466 0 0 0 0 0 0.017 0.47811 0 0.39302 0.28032 0.00557 0 0 0 0 0.33436 0 0.00947 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oralis|t__Prevotella_oralis_unclassified 0 0 0 0 0.0082 0 0 0 0 0 0 0 0 0.00357 0.00454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00337 0 0 0 0 0 0 0 0 0 0 0 0 0.05275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12178 0 0 0 0 0 0 0.01069 0 0.00323 0.0125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0136 0 0 0 0.00435 0 0 0 0 0 0 0 0 0 0 0 0 0.02466 0 0 0 0 0 0.017 0.47811 0 0.39302 0.28032 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oris 0 0 0 0 0.15671 0 0 0.15132 0.06047 0.02261 0 0.04507 0 0.25987 0.19802 0.02329 0.00091 0 0.30104 0 0.09509 0 0.06368 0 0.00769 0 0 0.06307 0.00274 0 0 0 0 0.00816 0 0 0.15386 0.28475 0.16429 0.18297 0.02245 0.05146 0.07949 0 0.05208 0 0 0.98574 0.46187 0.03861 0.09991 0.00995 0.02615 0 0.42948 0.00133 0.02663 0 0 0 0.00105 0 0.02756 0.46772 0.16801 0.01123 0 0 0.11589 0.10002 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oris|t__Prevotella_oris_unclassified 0 0 0 0 0.15671 0 0 0.15132 0.06047 0.02261 0 0.04507 0 0.25987 0.19802 0.02329 0.00091 0 0.30104 0 0.09509 0 0.06368 0 0.00769 0 0 0.06307 0.00274 0 0 0 0 0.00816 0 0 0.15386 0.28475 0.16429 0.18297 0.02245 0.05146 0.07949 0 0.05208 0 0 0.98574 0.46187 0.03861 0.09991 0.00995 0.02615 0 0.42948 0.00133 0.02663 0 0 0 0.00105 0 0.02756 0.46772 0.16 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oulorum 0.02202 0 0 0 0.02546 0.00545 0 0 0.00551 0 0 0.25257 0 0 0.03958 0 0 0 0 0 0.00221 0 0.00457 0 0.0343 0 0 0 0.04526 0 0 0 0 0 0 0 0.01612 0.1238 0.02022 0.03813 0 0 0.12996 0 0.00468 0.01196 0 0.15613 0.05524 0.00418 0.00453 0.0113 0.03432 0 0.01343 0 0 0 0 0 0 0 0 0.0147 0.00595 0.23287 0 0 0.08175 0.03405 0.1073 0.03262 0 0.50446 0.17551 0.04901 0.0289 0 0.25025 0 0.02029 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oulorum|t__GCF_000224615 0.02202 0 0 0 0.02546 0.00545 0 0 0.00551 0 0 0.25257 0 0 0.03958 0 0 0 0 0 0.00221 0 0.00457 0 0.0343 0 0 0 0.04526 0 0 0 0 0 0 0 0.01612 0.1238 0.02022 0.03813 0 0 0.12996 0 0.00468 0.01196 0 0.15613 0.05524 0.00418 0.00453 0.0113 0.03432 0 0.01343 0 0 0 0 0 0 0 0 0.0147 0.00595 0.23287 0 0 0.08175 0.03405 0.1073 0.03262 0 0.50446 0.17551 0.04901 0.0289 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_pallens 0.82628 0 0 0 0.08171 0.27934 0 0 0.13454 0 0 0.00595 0 1.6439 0.0887 0.12598 0 0 0 0.07268 0.27732 0 0 0 0.04114 0 0 0.02097 0.10238 0.0562 0 0 0 0 0 0 0 0.1147 0 0 0.04209 0 0.99484 0 0.07423 0.05396 0 0.0504 1.37633 0 0.03136 0.25745 0.19759 0.05077 0.21553 0 0 0.20635 0 0 0.01482 0.27086 0.26817 0.34831 0.59329 0.56966 0 0.06432 0 0.18123 0 0.11562 0 0.02484 1.31705 0 0. [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_pallens|t__GCF_000220255 0.82628 0 0 0 0.08171 0.27934 0 0 0.13454 0 0 0.00595 0 1.6439 0.0887 0.12598 0 0 0 0.07268 0.27732 0 0 0 0.04114 0 0 0.02097 0.10238 0.0562 0 0 0 0 0 0 0 0.1147 0 0 0.04209 0 0.99484 0 0.07423 0.05396 0 0.0504 1.37633 0 0.03136 0.25745 0.19759 0.05077 0.21553 0 0 0.20635 0 0 0.01482 0.27086 0.26817 0.34831 0.59329 0.56966 0 0.06432 0 0.18123 0 0.11562 0 0.0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_pleuritidis 0 0 0 0 0.04999 0 0 0 0.01225 0.00986 0 0 0 0.32776 0.01194 0 0.07239 0 0.07494 0 0.08517 0 0 0 0 0 0 0 0 0.12406 0.03497 0 0 0 0 0 0.01518 0 0 0 0 0.11425 0.03334 0 0.03518 0 0.19843 0.73634 0.07968 0.0127 0 0 0 0 0.22742 0.00169 0.02873 0 0 0 0 0 0 0.64399 0.00206 0 0 0 0 0 0.51472 0.02885 0.02463 0.8859 0 0 0 0 0.27346 0 0.03569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03019 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_pleuritidis|t__GCF_000468135 0 0 0 0 0.04999 0 0 0 0.01225 0.00986 0 0 0 0.32776 0.01194 0 0.07239 0 0.07494 0 0.08517 0 0 0 0 0 0 0 0 0.12406 0.03497 0 0 0 0 0 0.01518 0 0 0 0 0.11425 0.03334 0 0.03518 0 0.19843 0.73634 0.07968 0.0127 0 0 0 0 0.22742 0.00169 0.02873 0 0 0 0 0 0 0.64399 0.00206 0 0 0 0 0 0.51472 0.02885 0.02463 0.8859 0 0 0 0 0.27346 0 0.03569 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_saccharolytica 0.04815 0.00684 0 0 0 0.01536 0 0 0 0 0 0.00304 0 0 0 0 0 0 0 0.00895 0 0 0 0 0 0 0 0.00465 0 0.01403 0 0 0 0 0 0 0.02899 0 0 0 0 0 0 0 0.0019 0.00186 0 0 0.01196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02157 0 0 0 0 0 0.30385 0 0.01719 0 0 0 0 0.00078 0.02896 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01667 0.09841 0 0.13439 0.37092 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_saccharolytica|t__GCF_000318195 0.04815 0.00684 0 0 0 0.01536 0 0 0 0 0 0.00304 0 0 0 0 0 0 0 0.00895 0 0 0 0 0 0 0 0.00465 0 0.01403 0 0 0 0 0 0 0.02899 0 0 0 0 0 0 0 0.0019 0.00186 0 0 0.01196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02157 0 0 0 0 0 0.30385 0 0.01719 0 0 0 0 0.00078 0.02896 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01667 0.09841 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_salivae 0 0.00228 0 0.0246 0.05142 0 0 0 0.034 0 0 0.16987 0.00817 0.98317 0.03998 0 0 0 0 0.05017 0.15537 0 0 0 0.00539 0.01502 0 0 0.00529 0 0 0 0 0 0 0 0.04275 0.46204 0 0 0.00599 0 0.3743 0 0.02858 0 0 0.21292 0.89855 0 0.01372 0.01146 0.07004 0 0.01582 0 0 0.04264 0 0 0.01209 0.81672 0.10708 0.4589 0.72157 0.75354 0 0.08333 0 0.31434 0 0.05816 0 0.08215 0.83476 0 0.08605 0 1.69 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_salivae|t__GCF_000185845 0 0.00228 0 0.0246 0.05142 0 0 0 0.034 0 0 0.16987 0.00817 0.98317 0.03998 0 0 0 0 0.05017 0.15537 0 0 0 0.00539 0.01502 0 0 0.00529 0 0 0 0 0 0 0 0.04275 0.46204 0 0 0.00599 0 0.3743 0 0.02858 0 0 0.21292 0.89855 0 0.01372 0.01146 0.07004 0 0.01582 0 0 0.04264 0 0 0.01209 0.81672 0.10708 0.4589 0.72157 0.75354 0 0.08333 0 0.31434 0 0.05816 0 0.08215 0.83476 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_sp_C561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.95505 0 0 0 0 0 0 0 1.11532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.92674 0 0 0 0 0 0 0 0 0 0 0 0 7.86432 0 2.48726 0 1.07162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_sp_C561|t__GCF_000224595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.95505 0 0 0 0 0 0 0 1.11532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.92674 0 0 0 0 0 0 0 0 0 0 0 0 7.86432 0 2.48726 0 1.07162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_sp_oral_taxon_306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_sp_oral_taxon_306|t__GCF_000257925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_sp_oral_taxon_317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15898 0 0.43976 0 0.24057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.6 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_sp_oral_taxon_317|t__GCF_000162415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15898 0 0.43976 0 0.24057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_stercorea 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_stercorea|t__GCF_000235885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_timonensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_timonensis|t__GCF_000177055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_veroralis 0 0 0 0 0.01698 0 0 0 0.00871 0.00063 0 0.0256 0.02003 0 0.09466 0 0 0 0 0 0.00136 0 0 0 0.00672 0.09997 0 0.00836 0 0.00583 0 0 0 0 0 0 0 0.13134 0 0 0 0.00901 0 0 0.04163 0 0 0.06325 0.03037 0.00657 0.02895 0 0.01708 0 0.02202 0 0 0 0 0 0.0178 0.00589 0.08023 0.21243 0.01291 0 0 0.07064 0 0.02823 0 0.017 0 2.43338 0.03349 0.02488 0.0023 0.00579 0.03833 0 0.02467 0 0 0.02 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_veroralis|t__GCF_000377625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.60919 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_veroralis|t__Prevotella_veroralis_unclassified 0 0 0 0 0.01698 0 0 0 0.00871 0.00063 0 0.0256 0.02003 0 0.09466 0 0 0 0 0 0.00136 0 0 0 0.00672 0.09997 0 0.00836 0 0.00583 0 0 0 0 0 0 0 0.13134 0 0 0 0.00901 0 0 0.04163 0 0 0.06325 0.03037 0.00657 0.02895 0 0.01708 0 0.02202 0 0 0 0 0 0.0178 0.00589 0.08023 0.21243 0.01291 0 0 0.07064 0 0.02823 0 0.017 0 2.43338 0.03349 0.02488 0.00 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04704 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.07413 0 0 0.03668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0307 0 0 0 0 0 0 0 0 0.03859 0 1.57254 0.01634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00306 0 0 0 0 0 0.00121 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04704 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.07413 0 0 0.03668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0307 0 0 0 0 0 0 0 0 0.03859 0 1.57254 0.01634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00306 0 0 0 0 0 0.001 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_finegoldii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02736 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_finegoldii|t__GCF_000265365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02736 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_indistinctus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00978 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_indistinctus|t__GCF_000231275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00978 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_onderdonkii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00153 0 0 0 0 0 0.00013 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_onderdonkii|t__GCF_000374505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00153 0 0 0 0 0 0.0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_putredinis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04704 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.78007 0 0 0.03668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02072 0 0 0 0 0 0 0 0 0.03859 0 1.07461 0.01634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_putredinis|t__GCF_000154465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04704 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.78007 0 0 0.03668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02072 0 0 0 0 0 0 0 0 0.03859 0 1.07461 0.01634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_senegalensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00653 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_senegalensis|t__GCF_000312145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00653 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_shahii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.29406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00998 0 0 0 0 0 0 0 0 0 0 0.42077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_shahii|t__GCF_000210575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.29406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00998 0 0 0 0 0 0 0 0 0 0 0.42077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_sp_AP11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_sp_AP11|t__GCF_000321205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_sp_HGB5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_sp_HGB5|t__GCF_000183485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_sp_JC136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_sp_JC136|t__GCF_000285455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00093 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia 0.26165 0.61174 0.05936 1.2012 1.00829 0.27806 3.07767 0.31198 0.66697 1.58124 1.839 1.90572 0.24387 1.89349 0.08867 4.03769 0.72171 0.23155 2.18363 0.64512 0.33054 3.46839 1.56787 0 1.2203 0 0.5107 1.82752 0.63095 3.28814 1.103 0.34836 0.43883 2.36311 0 0.14596 20.57867 1.2036 0.22428 0.34726 2.72462 0.27395 0.78285 3.60691 1.72945 2.55955 0.49315 2.7933 0.82583 0.82919 1.38037 0.49607 0.70991 1.25543 0.89006 6.14876 0.68647 0.15805 3.83146 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales 0.26165 0.61174 0.05936 1.2012 1.00829 0.27806 3.07767 0.31198 0.66697 1.58124 1.839 1.90572 0.24387 1.89349 0.08867 4.03769 0.72171 0.23155 2.18363 0.64512 0.33054 3.46839 1.56787 0 1.2203 0 0.5107 1.82752 0.63095 3.28814 1.103 0.34836 0.43883 2.36311 0 0.14596 20.57867 1.2036 0.22428 0.34726 2.72462 0.27395 0.78285 3.60691 1.72945 2.55955 0.49315 2.7933 0.82583 0.82919 1.38037 0.49607 0.70991 1.25543 0.89006 6.14876 0.6 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae 0.26165 0.61174 0.05936 1.2012 1.00829 0.27806 3.07767 0.31198 0.66697 1.58124 1.839 1.90572 0.24387 1.89349 0.08867 4.03769 0.72171 0.23155 2.18363 0.64512 0.33054 3.46839 1.56787 0 1.2203 0 0.5107 1.82752 0.63095 3.28814 1.103 0.34836 0.43883 2.36311 0 0.14596 20.57867 1.2036 0.22428 0.34726 2.72462 0.27395 0.78285 3.60691 1.72945 2.55955 0.49315 2.7933 0.82583 0.82919 1.38037 0.49607 0.70991 1.2554 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Bergeyella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Bergeyella|s__Bergeyella_zoohelcum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Bergeyella|s__Bergeyella_zoohelcum|t__Bergeyella_zoohelcum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga 0.17683 0.48454 0.01147 1.13143 1.00829 0.08853 3.07767 0.31198 0.57299 1.46288 1.839 1.82428 0.05251 1.72064 0.04029 3.9929 0.41906 0.09336 1.72639 0.64512 0.33054 3.46839 1.41612 0 1.12219 0 0.5107 1.6608 0.58452 3.17454 0.94142 0.2811 0.35571 2.34641 0 0.0431 20.51979 1.2036 0.22428 0.34726 2.72462 0.21688 0.68742 0.02007 1.62153 2.31509 0.30006 2.55674 0.7388 0.663 1.22356 0.3539 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_gingivalis 0 0.00762 0 0.24753 0.14574 0 0 0 0.17692 0.10518 0.64137 0 0 0.31279 0 2.33956 0.06943 0 0.25104 0.23467 0.11514 0.24112 0.36351 0 0.09612 0 0 0.55384 0.04281 1.85385 0.45436 0.00479 0 0.52877 0 0 0.25399 0.02923 0.22428 0.23476 0.04764 0.02107 0.04812 0 0.36622 0.26334 0 0.07337 0.11448 0.07918 0.06301 0.04258 0.12591 0.50246 0.01283 0.91215 0.0431 0 1. [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_gingivalis|t__GCF_000174755 0 0.00762 0 0.24753 0.14574 0 0 0 0.17692 0.10518 0.64137 0 0 0.31279 0 2.33956 0.06943 0 0.25104 0.23467 0.11514 0.24112 0.36351 0 0.09612 0 0 0.55384 0.04281 1.85385 0.45436 0.00479 0 0.52877 0 0 0.25399 0.02923 0.22428 0.23476 0.04764 0.02107 0.04812 0 0.36622 0.26334 0 0.07337 0.11448 0.07918 0.06301 0.04258 0.12591 0.50246 0.01283 0. [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_granulosa 0 0 0 0.02112 0.01352 0 1.07684 0 0.00717 0.08521 0 0 0 1.38704 0 0.03235 0 0 0 0.01357 0 0.02835 0.07074 0 0.01488 0 0 0.04385 0 0.09974 0.01812 0.00803 0 0.03787 0 0 1.18197 0.23721 0 0 0.18401 0 0.16097 0 0.11631 0.04626 0 0.01469 0.01776 0.01756 0.12534 0.01571 0.00835 0.05035 0 0.16361 0 0 0.07821 0 0.00388 0 0.00241 0 0 0.0257 0 0.07318 0.03136 0.036 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_granulosa|t__GCF_000411115 0 0 0 0.02112 0.01352 0 1.07684 0 0.00717 0.08521 0 0 0 1.38704 0 0.03235 0 0 0 0.01357 0 0.02835 0.07074 0 0.01488 0 0 0.04385 0 0.09974 0.01812 0.00803 0 0.03787 0 0 1.18197 0.23721 0 0 0.18401 0 0.16097 0 0.11631 0.04626 0 0.01469 0.01776 0.01756 0.12534 0.01571 0.00835 0.05035 0 0.16361 0 0 0.07821 0 0.00388 0 0.00241 0 0 0.0257 0 0.07 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_ochracea 0 0.00226 0 0 0.03947 0 0 0 0.00296 0.00434 0 0 0 0.02082 0 0.00327 0.00417 0 0 0 0.00801 0 0.007 0 0.04909 0 0 0.0194 0.01637 0.03208 0 0 0 0.02846 0 0 0.2436 0.01496 0 0 0 0.00646 0.0078 0 0.00861 0.07198 0 0.06361 0.02898 0.00355 0.00607 0.01463 0.0482 0.05271 0.02319 0.02765 0.01343 0 0.15945 0 0 0 0 0 0 0 0 0.00785 0.00744 0.01123 0.07533 0 0 0.04905 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_ochracea|t__Capnocytophaga_ochracea_unclassified 0 0.00226 0 0 0.03947 0 0 0 0.00296 0.00434 0 0 0 0.02082 0 0.00327 0.00417 0 0 0 0.00801 0 0.007 0 0.04909 0 0 0.0194 0.01637 0.03208 0 0 0 0.02846 0 0 0.2436 0.01496 0 0 0 0.00646 0.0078 0 0.00861 0.07198 0 0.06361 0.02898 0.00355 0.00607 0.01463 0.0482 0.05271 0.02319 0.02765 0.01343 0 0.15945 0 0 0 0 0 0 0 0 0.007 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_CM59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12.34922 0 0 0 0 0 0 0 0 0 0 0 0 0 0.84135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55529 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09839 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.54149 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_CM59|t__GCF_000293175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12.34922 0 0 0 0 0 0 0 0 0 0 0 0 0 0.84135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55529 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09839 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.24565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_324|t__GCF_000318315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.24565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.89562 0 0 0 0 1.42878 0 0 0 0.72294 2.85956 0.51431 0.93826 0.69643 0 0.33104 0 0.70217 1.0775 0.80923 1 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_326|t__GCF_000318295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.89562 0 0 0 0 1.42878 0 0 0 0.72294 2.85956 0.51431 0.93826 0.69643 0 0.33104 0 0.70217 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_329 0.14665 0.47465 0 0.80092 0 0 0 0 0 0.95585 0 1.82428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.26632 0 0 0 0 0 0.59013 0 0 6.49101 0 0 0 2.13991 0 0 0 0.50083 0 0 0.9746 0 0.18616 0 0 0 0 0 0.35932 0 0 0 0 0 0 0 0 2.15654 0 0 0 0 0.28075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.17055 0 0 0 0 0 0 0 0 0 2.61562 0 0.47858 0 0 0 0 0.12875 0.91814 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_329|t__GCF_000213295 0.14665 0.47465 0 0.80092 0 0 0 0 0 0.95585 0 1.82428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.26632 0 0 0 0 0 0.59013 0 0 6.49101 0 0 0 2.13991 0 0 0 0.50083 0 0 0.9746 0 0.18616 0 0 0 0 0 0.35932 0 0 0 0 0 0 0 0 2.15654 0 0 0 0 0.28075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.17055 0 0 0 0 0 0 0 0 0 2.61562 0 0.47858 0 0 0 0 0.12875 0.91814 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21746 0 0 0 0 0.71134 0 0 2.87439 0.07725 0.16888 0 0 0.68873 0.61894 1.17973 0.05914 0 0.24967 0.20322 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_332|t__GCF_000318275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21746 0 0 0 0 0.71134 0 0 2.87439 0.07725 0.16888 0 0 0.68873 0.61894 1.17973 0.05914 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.30403 0 0 0 0 0 0 0 0 0 0 0.20205 3.09666 0.50044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_335|t__GCF_000277665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.30403 0 0 0 0 0 0 0 0 0 0 0.20205 3.09666 0.50044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.18787 0 0 0 0.30993 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_336|t__GCF_000411575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.18787 0 0 0 0.30993 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.98186 0 0.9354 1.20645 0.38298 1.25973 0 0 0 0.04897 0.25179 0 0 0.13713 0 0 0 0 0.14479 0.27434 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_338|t__GCF_000192225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.98186 0 0.9354 1.20645 0.38298 1.25973 0 0 0 0.04897 0.25179 0 0 0.13713 0 0 0 0 0.1447 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.3745 0 0 0 0.35684 0 0 0 0.71858 0 0 0 0.35768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_380|t__GCF_000318255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.3745 0 0 0 0.35684 0 0 0 0.71858 0 0 0 0.35768 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.53633 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_412|t__GCF_000271925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.30926 0 0.39882 0 0 0 0 0 1.47954 0 0.6257 0 0 0.07404 0.21301 0 0 0 0 0 0 0 0 0 0.09181 0.102 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sp_oral_taxon_863|t__GCF_000466425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.30926 0 0.39882 0 0 0 0 0 1.47954 0 0.6257 0 0 0.07404 0.21301 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sputigena 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.79581 0 2.04327 0 0.60028 0 0 0 0 0 0 0 2.73891 0 3.57004 0 0 0 0.46277 0.60127 0 0 1.4775 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sputigena|t__GCF_000173675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.79581 0 2.04327 0 0.60028 0 0 0 0 0 0 0 2.73891 0 3.57004 0 0 0 0.46277 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_unclassified 0.03018 0 0.01147 0.06186 0.80956 0.08853 2.00083 0.31198 0.38594 0.31231 1.19763 0 0.05251 0 0.04029 1.61772 0.34546 0.09336 1.47534 0.39688 0.20739 3.19893 0.97486 0 0.96211 0 0.5107 0.7774 0.52534 1.18887 0.46895 0.26829 0.35571 1.16118 0 0.0431 0 0.9222 0 0.11251 0.35306 0.18936 0.47052 0.02007 0.62957 1.93351 0.30006 1.43046 0.57758 0.37655 0.1878 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Cellulophaga 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Cellulophaga|s__Cellulophaga_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Elizabethkingia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Elizabethkingia|s__Elizabethkingia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Riemerella 0.08482 0.12721 0.04789 0.06976 0 0.18952 0 0 0.09398 0.11836 0 0.08144 0.19136 0.17285 0.04838 0.04479 0.30266 0.13819 0.45724 0 0 0 0.15175 0 0.09812 0 0 0.16671 0.04642 0.1136 0.16158 0.06725 0.08313 0.0167 0 0.10286 0.05888 0 0 0 0 0.05706 0.09544 3.58684 0.10792 0.24446 0.19308 0.23656 0.08703 0.16619 0.15681 0.14213 0.12697 0.25153 0 0.12802 0.09124 0 0.08139 0 0.1199 0 0.11035 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Riemerella|s__Riemerella_unclassified 0.08482 0.12721 0.04789 0.06976 0 0.18952 0 0 0.09398 0.11836 0 0.08144 0.19136 0.17285 0.04838 0.04479 0.30266 0.13819 0.45724 0 0 0 0.15175 0 0.09812 0 0 0.16671 0.04642 0.1136 0.16158 0.06725 0.08313 0.0167 0 0.10286 0.05888 0 0 0 0 0.05706 0.09544 3.58684 0.10792 0.24446 0.19308 0.23656 0.08703 0.16619 0.15681 0.14213 0.12697 0.25153 0 0.12802 0.09124 0 0.0 [...]
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteriia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteriia|o__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteriia|o__Sphingobacteriales|f__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteriia|o__Sphingobacteriales|f__Sphingobacteriaceae|g__Pedobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteriia|o__Sphingobacteriales|f__Sphingobacteriaceae|g__Pedobacter|s__Pedobacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Candidatus_Saccharibacteria 0 0.08414 0 0 0.06605 0 0 0 0 0.08974 0.03342 0 0 0.28064 0.01516 0 0 0 0.02555 0.027 0.00334 0.23824 0.01475 0.85762 0.11568 0 0 0.22724 0 1.5873 0 0 0 0.0055 0 0 1.90955 0.03731 0 0 0.10426 0 0.41759 0 0.01789 0.02377 0 0.71974 0.44647 0.01192 0 0 0.04217 0 0.12128 0.00271 0 0 0.00755 0 0.00712 0 0 1.30227 0 0.10188 0.03619 0.16077 0.23678 0.05857 0 0.02771 0 1.32622 0 0 0.0033 0 0.30277 0 0.01424 0.02775 0.03352 0 0.00921 0 0.09325 0.11246 0 [...]
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname 0 0.08414 0 0 0.06605 0 0 0 0 0.08974 0.03342 0 0 0.28064 0.01516 0 0 0 0.02555 0.027 0.00334 0.23824 0.01475 0.85762 0.11568 0 0 0.22724 0 1.5873 0 0 0 0.0055 0 0 1.90955 0.03731 0 0 0.10426 0 0.41759 0 0.01789 0.02377 0 0.71974 0.44647 0.01192 0 0 0.04217 0 0.12128 0.00271 0 0 0.00755 0 0.00712 0 0 1.30227 0 0.10188 0.03619 0.16077 0.23678 0.05857 0 0.02771 0 1.32622 0 0 0.0033 0 0.30277 0 0.01424 0.02775 [...]
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname 0 0.08414 0 0 0.06605 0 0 0 0 0.08974 0.03342 0 0 0.28064 0.01516 0 0 0 0.02555 0.027 0.00334 0.23824 0.01475 0.85762 0.11568 0 0 0.22724 0 1.5873 0 0 0 0.0055 0 0 1.90955 0.03731 0 0 0.10426 0 0.41759 0 0.01789 0.02377 0 0.71974 0.44647 0.01192 0 0 0.04217 0 0.12128 0.00271 0 0 0.00755 0 0.00712 0 0 1.30227 0 0.10188 0.03619 0.16077 0.23678 0.05857 0 0.02771 0 1.32622 0 [...]
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname 0 0.08414 0 0 0.06605 0 0 0 0 0.08974 0.03342 0 0 0.28064 0.01516 0 0 0 0.02555 0.027 0.00334 0.23824 0.01475 0.85762 0.11568 0 0 0.22724 0 1.5873 0 0 0 0.0055 0 0 1.90955 0.03731 0 0 0.10426 0 0.41759 0 0.01789 0.02377 0 0.71974 0.44647 0.01192 0 0 0.04217 0 0.12128 0.00271 0 0 0.00755 0 0.00712 0 0 1.30227 0 0.10188 0.03619 0.16077 [...]
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname|g__Candidatus_Saccharibacteria_noname 0 0.08414 0 0 0.06605 0 0 0 0 0.08974 0 0 0 0.28064 0.00901 0 0 0 0.02555 0 0.00334 0 0 0.21367 0.11568 0 0 0.22724 0 1.5873 0 0 0 0 0 0 1.90955 0.03731 0 0 0.10426 0 0.41759 0 0.01789 0.02377 0 0.71974 0.44647 0.00963 0 0 0.03358 0 0.07873 0.0004 0 0 0 0 0.00417 0 0 1.30227 0 0.10188 0 0.16077 0 [...]
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname|g__Candidatus_Saccharibacteria_noname_unclassified 0 0 0 0 0 0 0 0 0 0 0.03342 0 0 0 0.00615 0 0 0 0 0.027 0 0.23824 0.01475 0.64396 0 0 0 0 0 0 0 0 0 0.0055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00229 0 0 0.00859 0 0.04255 0.00231 0 0 0.00755 0 0.00295 0 0 0 0 0 0.03619 0 0.1131 0 0 0 0 0 0 0 0.0033 0 0 0 0.01424 0 0.03352 0 0.00316 0 0 0 [...]
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname|g__Candidatus_Saccharibacteria_noname|s__candidate_division_TM7_single_cell_isolate_TM7b 0 0.03739 0 0 0.0288 0 0 0 0 0.04292 0 0 0 0.18598 0.00901 0 0 0 0.02555 0 0 0 0 0 0.064 0 0 0.10572 0 0.798 0 0 0 0 0 0 0.83713 0.03731 0 0 0.03089 0 0.19458 0 0.00162 0 0 0.34066 0.23303 0.00273 0 0 0 0 0.07873 0 0 0 0 0 0.00068 0 0 0.51141 0 0 [...]
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname|g__Candidatus_Saccharibacteria_noname|s__candidate_division_TM7_single_cell_isolate_TM7b|t__GCF_000170655 0 0.03739 0 0 0.0288 0 0 0 0 0.04292 0 0 0 0.18598 0.00901 0 0 0 0.02555 0 0 0 0 0 0.064 0 0 0.10572 0 0.798 0 0 0 0 0 0 0.83713 0.03731 0 0 0.03089 0 0.19458 0 0.00162 0 0 0.34066 0.23303 0.00273 0 0 0 0 0.07873 0 0 0 0 0 0.0006 [...]
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname|g__Candidatus_Saccharibacteria_noname|s__candidate_division_TM7_single_cell_isolate_TM7c 0 0.04676 0 0 0.03725 0 0 0 0 0.04682 0 0 0 0.09466 0 0 0 0 0 0 0.00334 0 0 0.21367 0.05167 0 0 0.12152 0 0.7893 0 0 0 0 0 0 1.07242 0 0 0 0.07337 0 0.22301 0 0.01626 0.02377 0 0.37908 0.21344 0.0069 0 0 0.03358 0 0 0.0004 0 0 0 0 0.00349 0 0 0.7 [...]
+k__Bacteria|p__Candidatus_Saccharibacteria|c__Candidatus_Saccharibacteria_noname|o__Candidatus_Saccharibacteria_noname|f__Candidatus_Saccharibacteria_noname|g__Candidatus_Saccharibacteria_noname|s__candidate_division_TM7_single_cell_isolate_TM7c|t__GCF_000170675 0 0.04676 0 0 0.03725 0 0 0 0 0.04682 0 0 0 0.09466 0 0 0 0 0 0 0.00334 0 0 0.21367 0.05167 0 0 0.12152 0 0.7893 0 0 0 0 0 0 1.07242 0 0 0 0.07337 0 0.22301 0 0.01626 0.02377 0 0.37908 0.21344 0.0069 0 0 0.03358 0 0 0.0004 0 0 0 [...]
+k__Bacteria|p__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.95223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chloroflexi|c__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.95223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chloroflexi|c__Chloroflexi|o__Chloroflexales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.95223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chloroflexi|c__Chloroflexi|o__Chloroflexales|f__Chloroflexaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.95223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chloroflexi|c__Chloroflexi|o__Chloroflexales|f__Chloroflexaceae|g__Roseiflexus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.95223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chloroflexi|c__Chloroflexi|o__Chloroflexales|f__Chloroflexaceae|g__Roseiflexus|s__Roseiflexus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.95223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Deinococcus_Thermus|c__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Deinococcus_Thermus|c__Deinococci|o__Deinococcales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00345 0 0 0 0 0 0 [...]
+k__Bacteria|p__Deinococcus_Thermus|c__Deinococci|o__Deinococcales|f__Deinococcaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. [...]
+k__Bacteria|p__Deinococcus_Thermus|c__Deinococci|o__Deinococcales|f__Deinococcaceae|g__Deinococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Deinococcus_Thermus|c__Deinococci|o__Deinococcales|f__Deinococcaceae|g__Deinococcus|s__Deinococcus_radiodurans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Deinococcus_Thermus|c__Deinococci|o__Deinococcales|f__Deinococcaceae|g__Deinococcus|s__Deinococcus_radiodurans|t__GCF_000008565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Deinococcus_Thermus|c__Deinococci|o__Deinococcales|f__Deinococcaceae|g__Deinococcus|s__Deinococcus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes 52.8591 53.692 70.90732 36.08958 38.46817 51.98601 60.40161 57.17404 20.97488 30.62261 65.99024 52.19624 39.22239 52.58133 40.66922 12.7577 8.8279 71.81927 55.31734 20.19157 30.90779 45.45066 49.47484 60.64476 22.04307 75.70541 42.35372 43.88658 65.95616 25.08978 28.05603 25.74651 24.72235 36.492 14.38119 73.66697 21.60266 42.89427 30.82475 29.00829 63.35627 41.83662 35.02875 74.39253 55.21887 47.15578 71.65429 49.66341 23.8641 48.01583 40.21023 16.3513 32.1773 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli 17.79595 46.38982 70.41389 22.24485 20.72435 25.5654 56.39104 51.45089 17.44106 21.94273 61.40422 27.66044 38.42199 37.35768 35.54555 12.06477 5.75728 68.81701 51.44769 16.13951 19.25745 42.61616 43.29229 57.03222 19.2325 64.09345 41.65515 39.87862 65.03906 19.71144 27.88787 16.26959 16.82325 16.09809 12.74731 65.07918 15.99194 30.85644 28.51978 26.72818 60.73858 40.39839 25.4671 60.91453 53.22804 42.82599 66.83828 40.3092 14.70262 44.52735 35.98567 1 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales 8.55689 12.3435 45.21615 2.59414 4.88508 16.33444 17.79463 9.34617 8.18604 2.55913 11.0322 2.06325 8.84116 17.06995 3.91065 6.14076 2.19758 22.22683 23.4754 5.28205 7.30494 5.88385 23.79119 3.25157 11.52515 0.76627 21.42013 21.67266 14.67174 9.60154 6.73421 4.43425 2.77 0.77371 0.9751 27.6866 0.78788 3.85918 3.60524 3.43446 27.34665 5.61537 0.58732 12.63986 28.34065 4.62084 38.93055 11.56947 2.99359 34.30146 25.05254 5.51175 5.2476 7.127 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname 8.55689 12.3435 45.21615 2.59414 4.88508 16.33444 17.79463 9.34617 8.18604 2.55913 11.0322 2.06325 8.84116 17.06995 3.91065 6.14076 2.19758 22.22683 23.4754 5.28205 7.30494 5.88385 23.79119 3.25157 11.52515 0.76627 21.42013 21.67266 14.67174 9.60154 6.73421 4.43425 2.77 0.77371 0.9751 27.6866 0.78788 3.85918 3.60524 3.43446 27.34665 5.61537 0.58732 12.62211 28.34065 4.62084 38.93055 11.56947 2.99359 34.30146 25.03806 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella 8.55689 12.3435 45.21615 2.59414 4.88508 16.33444 17.79463 9.34617 8.18604 2.55913 11.0322 2.06325 8.84116 17.06995 3.91065 6.14076 2.19758 22.22683 23.4754 5.28205 7.30494 5.88385 23.79119 3.25157 11.52515 0.76627 21.42013 21.67266 14.67174 9.60154 6.73421 4.43425 2.77 0.77371 0.9751 27.6866 0.78788 3.85918 3.60524 3.43446 27.34665 5.61537 0.58732 12.62211 28.34065 4.62084 38.93055 11.56947 2.99359 34.301 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_bergeri 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_bergeri|t__GCF_000469465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_haemolysans 6.31129 11.56834 45.19662 2.5627 3.84808 12.57815 16.86726 8.88758 7.19348 1.15301 9.60856 2.06325 7.86078 12.66677 3.77142 5.57396 2.07405 22.11363 23.08073 3.84836 5.90504 4.0263 22.01662 2.64046 11.07586 0.76627 21.42013 18.03265 14.31357 8.66857 6.68936 4.21928 2.66636 0.63939 0.9751 25.1281 0.24226 3.31999 2.9958 3.20407 24.30561 4.40713 0.47843 12.5865 26.37937 3.59646 33.06246 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_haemolysans|t__GCF_000173915 0 0 18.35077 0 0 0 0 0 2.69483 0 0 0 1.9374 0 0 1.61481 0.63421 11.05893 0 0 0 0 9.745 0 0 0 12.0333 6.72834 0 2.05192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.02269 0 0 0 0 10.41848 10.49275 0 0 0 0 2.90783 2.7287 0 0 0 0 0 6.4606 0 0 0 0 0 7.6918 1.11023 0 0 0 0 0 0 0 0 6.29137 0 0 0 0 0 0 0 0 11.74257 3.23486 0 0 0 0 0 0 0 0 1.98265 5.84623 3.85586 2.46544 0 0 2.50063 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_haemolysans|t__GCF_000204355 0 0 0 0 0 0 0 0 0 0 0 0 3.46736 0 0 0 0 0 0 0 0 0 0 0 3.14645 0 0 2.3942 0 2.97995 0 0 0 0 0 2.99308 0 0 0 0 0 1.45791 0 0 0 0 0 0 0 6.82352 0 0 0 0 0 1.6601 0 0 0 0 0 2.17846 0 0 0 0 6.11632 0 0 5.55803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.93105 0 0 0 0 0 0 0 0 0 2.6942 4.13457 0 0 0 0 0 5.3852 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.02522 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_haemolysans|t__Gemella_haemolysans_unclassified 6.31129 11.56834 26.84584 2.5627 3.84808 12.57815 16.86726 8.88758 4.49865 1.15301 9.60856 2.06325 2.45602 12.66677 3.77142 3.95915 1.43984 11.05469 23.08073 3.84836 5.90504 4.0263 12.27162 2.64046 7.92941 0.76627 9.38683 8.91011 14.31357 3.6367 6.68936 4.21928 2.66636 0.63939 0.9751 22.13502 0.24226 3.31999 2.9958 3.20407 24.30561 2.94922 0.47843 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_morbillorum 0 0.04648 0 0.03144 0.76898 0.00401 0 0 0.02103 1.35444 0 0 0.03019 0.74898 0 0.03831 0.04438 0 0.31718 0.10029 0.10872 0.19328 0.01493 0 0.08809 0 0 0.49945 0.03004 0.29281 0.01988 0 0 0.0201 0 0 0.36279 0.03586 0.00762 0.00935 0.18066 0.03339 0 0.02989 0.10992 0.58923 0.23674 0.33738 0.0993 0.1536 0.11123 0.07054 0.64304 0.06079 0.05694 1.24598 0.22865 0 0.83718 0 0.01562 0 0.18628 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_morbillorum|t__GCF_000185645 0 0.04648 0 0.03144 0.76898 0.00401 0 0 0.02103 1.35444 0 0 0.03019 0.74898 0 0.03831 0.04438 0 0.31718 0.10029 0.10872 0.19328 0.01493 0 0.08809 0 0 0.49945 0.03004 0.29281 0.01988 0 0 0.0201 0 0 0.36279 0.03586 0.00762 0.00935 0.18066 0.03339 0 0.02989 0.10992 0.58923 0.23674 0.33738 0.0993 0.1536 0.11123 0.07054 0.64304 0.06079 0.05694 1.24598 0.22865 0 0.83718 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_sanguinis 0 0.02455 0.01953 0 0.26802 0 0.09074 0.45859 0.5831 0.05168 0 0 0.11702 2.06211 0.13923 0.06975 0.07915 0.1132 0.07749 1.3334 1.29119 0.71234 0.10261 0 0.19305 0 0 0.65381 0.32812 0.64016 0.02497 0.21497 0.10365 0.11422 0 0.09755 0.18283 0.50333 0.22688 0.22105 0.75548 0.10426 0.10889 0.00571 0.15184 0.40015 0.54486 0.1822 0.15526 0.36852 0.29584 0.20238 0.36773 0.62557 0.86418 0.0311 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_sanguinis|t__GCF_000204335 0 0.02455 0.01953 0 0.26802 0 0.09074 0.45859 0.5831 0.05168 0 0 0.11702 2.06211 0.13923 0.06975 0.07915 0.1132 0.07749 1.3334 1.29119 0.71234 0.10261 0 0.19305 0 0 0.65381 0.32812 0.64016 0.02497 0.21497 0.10365 0.11422 0 0.09755 0.18283 0.50333 0.22688 0.22105 0.75548 0.10426 0.10889 0.00571 0.15184 0.40015 0.54486 0.1822 0.15526 0.36852 0.29584 0.20238 0.36773 0.625 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_noname|g__Gemella|s__Gemella_unclassified 2.24559 0.70414 0 0 0 3.75228 0.83662 0 0.38843 0 1.42364 0 0.83317 1.59209 0 0.45874 0 0 0 0 0 0.95193 1.65704 0.61111 0.16815 0 0 2.48675 0 0 0 0 0 0 0 2.46096 0 0 0.37494 0 2.10489 1.07059 0 0 1.69951 0.03501 5.08649 2.87329 0.56347 4.10249 0 0 0 0 0 0 0.1703 1.57752 0 0 0 0 0.009 0.64696 0 3.31078 0.23777 0.1557 1.29591 0 0.83747 0.21347 0.16546 0.37702 0.74655 0 1.11636 0 0 5.0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Listeriaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Listeriaceae|g__Listeria 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Listeriaceae|g__Listeria|s__Listeria_monocytogenes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Listeriaceae|g__Listeria|s__Listeria_monocytogenes|t__Listeria_monocytogenes_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03103 0 0 0 0 0 0 0 0 0 0 0.00862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03103 0 0 0 0 0 0 0 0 0 0 0.00862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_aureus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_aureus|t__Staphylococcus_aureus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_caprae_capitis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_caprae_capitis|t__Staphylococcus_caprae_capitis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_epidermidis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03103 0 0 0 0 0 0 0 0 0 0 0.00862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_epidermidis|t__Staphylococcus_epidermidis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03103 0 0 0 0 0 0 0 0 0 0 0.00862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_haemolyticus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_haemolyticus|t__Staphylococcus_haemolyticus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_hominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_hominis|t__Staphylococcus_hominis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_lugdunensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_lugdunensis|t__Staphylococcus_lugdunensis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_pasteuri 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_pasteuri|t__GCF_000494875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_pseudintermedius 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_pseudintermedius|t__Staphylococcus_pseudintermedius_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_saprophyticus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_saprophyticus|t__Staphylococcus_saprophyticus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_warneri 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_warneri|t__Staphylococcus_warneri_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales 9.23907 34.04632 25.19774 19.65071 15.83928 9.23096 38.59641 42.10472 9.25502 19.3836 50.37202 25.59719 29.58083 20.28773 31.63489 5.92401 3.5597 46.59019 27.97229 10.85747 11.95251 36.73231 19.5011 53.78065 7.70735 63.32717 20.23502 18.20596 50.36732 10.1099 21.15366 11.83535 14.05325 15.32438 11.7722 37.39258 15.20406 26.99726 24.91454 23.29371 33.39193 34.78302 24.87978 48.27467 24.88739 38.20515 27.90772 28.73973 11.70904 10.225 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae 0 0.00088 0.00536 0.11228 0.20278 0 0.11163 0.00608 0.102 3.02709 1.55038 0.00949 0.08888 0.19683 0.19314 0.3601 0.45685 0 0.09102 0.12543 0.04207 1.10599 0.33106 0 0.05583 0 0.04359 0.83671 0 0.3806 2.02015 1.10605 1.21925 0.05383 0 0.47158 0 0 0.01398 0.02644 0 0.29924 0 0.00727 0.07147 0.87121 0.42485 0.18188 0.15946 0.28354 0 0.33373 3.62347 0.26344 0.03964 5.34827 0.3263 0.03939 1.09795 0.03008 0.38943 0 0.0106 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Abiotrophia 0 0.00088 0.00536 0.11228 0.20278 0 0.11163 0.00608 0.102 3.02709 1.55038 0.00949 0.08888 0.19683 0.19314 0.3601 0.45685 0 0.09102 0.12543 0.04207 1.10599 0.33106 0 0.05583 0 0.04359 0.83671 0 0.3806 2.02015 1.10605 1.21925 0.05383 0 0.47158 0 0 0.01398 0.02644 0 0.29924 0 0.00727 0.07147 0.87121 0.42485 0.18188 0.15946 0.28354 0 0.33373 3.62347 0.26344 0.03964 5.34827 0.3263 0.03939 1.09795 0.03008 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Abiotrophia|s__Abiotrophia_defectiva 0 0.00088 0.00536 0.11228 0.20278 0 0.11163 0.00608 0.102 3.02709 1.55038 0.00949 0.08888 0.19683 0.19314 0.3601 0.45685 0 0.09102 0.12543 0.04207 1.10599 0.33106 0 0.05583 0 0.04359 0.83671 0 0.3806 2.02015 1.10605 1.21925 0.05383 0 0.47158 0 0 0.01398 0.02644 0 0.29924 0 0.00727 0.07147 0.87121 0.42485 0.18188 0.15946 0.28354 0 0.33373 3.62347 0.26344 0.03964 5.34827 0.3263 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Abiotrophia|s__Abiotrophia_defectiva|t__GCF_000160075 0 0.00088 0.00536 0.11228 0.20278 0 0.11163 0.00608 0.102 3.02709 1.55038 0.00949 0.08888 0.19683 0.19314 0.3601 0.45685 0 0.09102 0.12543 0.04207 1.10599 0.33106 0 0.05583 0 0.04359 0.83671 0 0.3806 2.02015 1.10605 1.21925 0.05383 0 0.47158 0 0 0.01398 0.02644 0 0.29924 0 0.00727 0.07147 0.87121 0.42485 0.18188 0.15946 0.28354 0 0.33373 3.62347 0.26344 0.0396 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Aerococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Aerococcus|s__Aerococcus_viridans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Aerococcus|s__Aerococcus_viridans|t__Aerococcus_viridans_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Facklamia|s__Facklamia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae 8.20202 7.33875 9.66176 3.42031 8.18796 6.64254 1.20988 0.97769 0.62536 3.04398 0.50165 0.18767 3.05524 0.63737 0.55786 0.57877 0.41431 0.16776 0.85605 0.4553 1.53234 0.86434 10.80476 0 1.52795 0.11511 0.07681 6.97378 0.88293 3.61936 2.39361 0.6125 0.71206 0.10704 0.15603 3.27801 0.16456 0.70271 0.7392 0.8621 0.50072 1.10305 0.45778 36.77438 20.97829 2.99278 0.63537 1.33254 1.61636 1.16777 1.10053 0.57464 0.8687 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Alloiococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Alloiococcus|s__Alloiococcus_otitis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Alloiococcus|s__Alloiococcus_otitis|t__GCF_000315445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Carnobacterium|s__Carnobacterium_maltaromaticum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Carnobacterium|s__Carnobacterium_maltaromaticum|t__Carnobacterium_maltaromaticum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00939 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Dolosigranulum|s__Dolosigranulum_pigrum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00939 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Dolosigranulum|s__Dolosigranulum_pigrum|t__GCF_000245815 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00939 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella 8.20202 7.33875 9.66176 3.42031 8.18796 6.64254 1.20988 0.97769 0.62536 3.04398 0.50165 0.18767 3.05524 0.63737 0.55786 0.57877 0.41431 0.16776 0.85605 0.4553 1.53234 0.86434 10.80476 0 1.52795 0.11511 0.07681 6.97378 0.88293 3.61936 2.39361 0.6125 0.71206 0.10704 0.15603 3.27801 0.16456 0.70271 0.7392 0.8621 0.50072 1.10305 0.45778 36.77438 20.97829 2.99278 0.63537 1.33254 1.61636 1.16777 1.10 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_adiacens 0.00411 0.17323 0.01011 1.21152 1.33528 0 0.36366 0.06194 0.15776 0.1559 0 0.01474 0.08022 0.37925 0.15678 0.16826 0.37496 0.14323 0.30966 0.1366 0.80814 0.31366 0.29711 0 0.21839 0.01856 0.02994 0.1371 0.08684 0.45697 0.14571 0.28112 0.2106 0.08345 0.15482 0.58311 0.16456 0.56179 0.33872 0.44093 0.20143 0.06954 0.26377 0.84156 0.13434 0.46871 0.06462 0.99643 0.35605 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_adiacens|t__GCF_000160675 0.00411 0.17323 0.01011 1.21152 1.33528 0 0.36366 0.06194 0.15776 0.1559 0 0.01474 0.08022 0.37925 0.15678 0.16826 0.37496 0.14323 0.30966 0.1366 0.80814 0.31366 0.29711 0 0.21839 0.01856 0.02994 0.1371 0.08684 0.45697 0.14571 0.28112 0.2106 0.08345 0.15482 0.58311 0.16456 0.56179 0.33872 0.44093 0.20143 0.06954 0.26377 0.84156 0.13434 0.46871 0.06462 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_elegans 8.19791 7.16552 9.65164 2.2088 5.76909 6.64254 0.39797 0.73114 0.03468 2.80609 0 0.17292 2.97502 0.18678 0.09725 0.32155 0.03935 0.02453 0.19589 0 0.21719 0.55068 9.70821 0 1.00836 0 0.03894 6.56209 0.65408 2.7001 2.2479 0.05493 0.02105 0.02196 0 2.6949 0 0.04447 0 0 0.07715 0.96687 0.00507 35.93282 20.84395 2.52407 0.3549 0.09282 1.04045 0.94409 1.00637 0.30366 0.5033 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_elegans|t__GCF_000162475 8.19791 7.16552 9.65164 2.2088 5.76909 6.64254 0.39797 0.73114 0.03468 2.80609 0 0.17292 2.97502 0.18678 0.09725 0.32155 0.03935 0.02453 0.19589 0 0.21719 0.55068 9.70821 0 1.00836 0 0.03894 6.56209 0.65408 2.7001 2.2479 0.05493 0.02105 0.02196 0 2.6949 0 0.04447 0 0 0.07715 0.96687 0.00507 35.93282 20.84395 2.52407 0.3549 0.09282 1.04045 0.94409 1.006 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_unclassified 0 0 0 0 1.08359 0 0.44825 0.18462 0.43291 0.082 0.50165 0 0 0.07135 0.30383 0.08896 0 0 0.3505 0.31869 0.50701 0 0.79945 0 0.30119 0.09655 0.00793 0.27459 0.14201 0.46229 0 0.27645 0.48042 0.00163 0.00121 0 0 0.09644 0.40048 0.42117 0.22213 0.06665 0.18894 0 0 0 0.21586 0.24329 0.21986 0.06299 0 0 0.05389 0.38698 1.01536 0 0 0.08026 0 0.10169 0.33579 0.17005 0.270 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae 0 0 0 0 0 0 0 0 0 0 0 0 0.02659 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00101 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus 0 0 0 0 0 0 0 0 0 0 0 0 0.02659 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_faecalis 0 0 0 0 0 0 0 0 0 0 0 0 0.02659 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_faecalis|t__Enterococcus_faecalis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0.02659 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_faecium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_faecium|t__Enterococcus_faecium_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_gallinarum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_gallinarum|t__GCF_000157255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae 0 0 0 0 0 0 4.64486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0726 0.21565 0 0.00165 0 0 0 0 0 0 0.00473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1244 0 0 0.00323 0 0.00939 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus 0 0 0 0 0 0 4.64486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0726 0.21565 0 0.00165 0 0 0 0 0 0 0.00473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1244 0 0 0.00323 0 0.00939 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_acidophilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_acidophilus|t__Lactobacillus_acidophilus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_casei_paracasei 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_casei_paracasei|t__Lactobacillus_casei_paracasei_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_coleohominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_coleohominis|t__GCF_000161935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_crispatus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_crispatus|t__Lactobacillus_crispatus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_curvatus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_curvatus|t__GCF_000235705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_delbrueckii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_delbrueckii|t__Lactobacillus_delbrueckii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_fermentum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_fermentum|t__Lactobacillus_fermentum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_gasseri 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0726 0 0 0.00165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_gasseri|t__Lactobacillus_gasseri_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0726 0 0 0.00165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_helveticus 0 0 0 0 0 0 4.64486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21565 0 0 0 0 0 0 0 0 0.00473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1244 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_helveticus|t__Lactobacillus_helveticus_unclassified 0 0 0 0 0 0 4.64486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21565 0 0 0 0 0 0 0 0 0.00473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_iners 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_iners|t__GCF_000179935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_iners|t__Lactobacillus_iners_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_jensenii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_jensenii|t__GCF_000162335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_jensenii|t__Lactobacillus_jensenii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_plantarum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_plantarum|t__Lactobacillus_plantarum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_reuteri 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_reuteri|t__Lactobacillus_reuteri_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_rhamnosus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_rhamnosus|t__Lactobacillus_rhamnosus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_ruminis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_ruminis|t__Lactobacillus_ruminis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_sp_7_1_47FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_sp_7_1_47FAA|t__GCF_000227195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_vaginalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00323 0 0.00939 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_vaginalis|t__GCF_000159435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00323 0 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Pediococcus|s__Pediococcus_acidilactici 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Pediococcus|s__Pediococcus_acidilactici|t__Pediococcus_acidilactici_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_carnosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_carnosum|t__Leuconostoc_carnosum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_lactis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_lactis|t__Leuconostoc_lactis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_mesenteroides 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_mesenteroides|t__Leuconostoc_mesenteroides_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae 1.03705 26.70669 15.53062 16.11812 7.44853 2.58842 32.63005 41.12094 8.52767 13.31253 48.32 25.40003 26.41012 19.45353 30.8839 4.98514 2.68855 46.42242 27.02522 10.27673 10.3781 34.76198 8.36528 53.78065 6.12357 63.21206 20.11463 10.39548 49.48439 6.10994 16.7399 10.1168 12.12193 15.16352 11.61617 33.64299 15.03949 26.29456 24.16136 22.40518 32.89121 33.38073 24.422 11.49301 3.83763 34.34115 26.8475 27.22532 9.93 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02438 0 0 0 0 0 0 0 0.40646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11471 0 0 0 0 0 0.06467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.33581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00033 0 0 0.01105 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Lactococcus|s__Lactococcus_lactis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02438 0 0 0 0 0 0 0 0.40646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11471 0 0 0 0 0 0.06467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.33581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Lactococcus|s__Lactococcus_lactis|t__Lactococcus_lactis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02438 0 0 0 0 0 0 0 0.40646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11471 0 0 0 0 0 0.06467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.33581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus 1.03705 26.70669 15.53062 16.11812 7.44853 2.58842 32.63005 41.12094 8.52767 13.31253 48.32 25.40003 26.41012 19.45353 30.8839 4.98514 2.68855 46.42242 27.02522 10.27673 10.3781 34.76198 8.36528 53.78065 6.12357 63.21206 20.11463 10.39548 49.48439 6.10994 16.7399 10.1168 12.12193 15.16352 11.61617 33.64299 15.03949 26.29456 24.16136 22.40518 32.89121 33.38073 24.39762 11.49301 3.83763 34.34115 26 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_agalactiae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_agalactiae|t__Streptococcus_agalactiae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_anginosus 0.0367 0 0 0 0 0.00823 0 0 0.00216 0 0 0 0 0.04706 0.01268 0 0 0.10497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01418 0.07989 0 0 0 0 0.08735 0 0 0.00091 0 0 0 0.01296 0.00077 0 0 0 0 0 0 0 0.1233 0 0 0 0 0 0 0 0 0 0.22382 0 0 0.00425 0 0 0 0 0 0.02488 0.05605 0 0 0.00171 0 0 0 0 0 0 0 0 0.01015 0 0 0 0 0 0 0.14749 0.03385 0 0 0.00071 0 0 0 0 0 0 0.00092 0.04506 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_anginosus|t__Streptococcus_anginosus_unclassified 0.0367 0 0 0 0 0.00823 0 0 0.00216 0 0 0 0 0.04706 0.01268 0 0 0.10497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01418 0.07989 0 0 0 0 0.08735 0 0 0.00091 0 0 0 0.01296 0.00077 0 0 0 0 0 0 0 0.1233 0 0 0 0 0 0 0 0 0 0.22382 0 0 0.00425 0 0 0 0 0 0.02488 0.05605 0 0 0.00171 0 0 0 0 0 0 0 0 0.01015 0 0 0 0 0 0 0.14749 0.03385 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_australis 0 0.01542 0 0 0 0.00019 0 0.259 0.12983 0.01841 0 0 0.24065 0.36046 3.44663 0.18268 0.10461 0.28639 0.15633 1.97115 0.06422 2.16708 0.01059 3.0877 1.20762 0.0433 0 0.50887 0.423 0.49184 0.09381 1.50384 2.49761 0.40598 1.20355 0.15134 0.2944 0 0.87131 0.57842 0.34111 0.3497 0 0.0008 0.07121 0.45279 0.30388 0.1281 0.15197 0.11019 0.0605 0.12747 0.22267 1.04437 0 0.10177 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_australis|t__Streptococcus_australis_unclassified 0 0.01542 0 0 0 0.00019 0 0.259 0.12983 0.01841 0 0 0.24065 0.36046 3.44663 0.18268 0.10461 0.28639 0.15633 1.97115 0.06422 2.16708 0.01059 3.0877 1.20762 0.0433 0 0.50887 0.423 0.49184 0.09381 1.50384 2.49761 0.40598 1.20355 0.15134 0.2944 0 0.87131 0.57842 0.34111 0.3497 0 0.0008 0.07121 0.45279 0.30388 0.1281 0.15197 0.11019 0. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_constellatus 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15822 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08209 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01043 0 0 0.00315 0.01775 0 0 0 0.00713 0 0 0 0.00325 0 0.03808 0 0 0 0 0 0 0 0 0 0.05641 0 0.01483 0 0 0 0 0 0 0 0 0 0 0.01573 0 0.01143 0 0.01255 0 0 0 0 0 0 0.0439 0 0 0 0 0 0.02118 0 0 0 0.11113 0.01328 0 0 0.04254 0 0 0.00483 0 0 0 0 0 0 0.00656 0.79354 2.13243 0 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_constellatus|t__Streptococcus_constellatus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15822 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08209 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01043 0 0 0.00315 0.01775 0 0 0 0.00713 0 0 0 0.00325 0 0.03808 0 0 0 0 0 0 0 0 0 0.05641 0 0.01483 0 0 0 0 0 0 0 0 0 0 0.01573 0 0.01143 0 0.01255 0 0 0 0 0 0 0.0439 0 0 0 0 0 0.02118 0 0 0 0.11113 0.01328 0 0 0.04254 0 0 0.00483 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_cristatus 0 0.31667 0 0.23891 0.17575 0 0.20716 0.41871 0.00834 0.05851 1.55171 0 0.00352 0.39449 0.08221 0 0.00239 0 1.59442 0.02764 0.03304 0.05581 0.08629 0 0.14278 0.02504 0 0.05021 0.00281 0.04849 0 0 0 0.20516 0 0 1.58959 0.30593 0 0.01843 0.5578 0.0314 0 0 0.01103 0.0111 0 0.17179 0.03404 0.00925 0.39597 0.04898 0.0618 0 0.02273 0.02479 0 0 0 0 0.00596 0.00979 0.09182 0.59 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_cristatus|t__Streptococcus_cristatus_unclassified 0 0.31667 0 0.23891 0.17575 0 0.20716 0.41871 0.00834 0.05851 1.55171 0 0.00352 0.39449 0.08221 0 0.00239 0 1.59442 0.02764 0.03304 0.05581 0.08629 0 0.14278 0.02504 0 0.05021 0.00281 0.04849 0 0 0 0.20516 0 0 1.58959 0.30593 0 0.01843 0.5578 0.0314 0 0 0.01103 0.0111 0 0.17179 0.03404 0.00925 0.39597 0.04898 0.0618 0 0.02273 0.02 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_dysgalactiae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_dysgalactiae|t__Streptococcus_dysgalactiae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_gordonii 0 0.00554 0.00908 0.0295 0.19311 0 1.71254 0.18558 0 2.4657 1.68733 0.47722 0.11007 0.08265 0.31728 0.08012 0.08068 0.04646 0.29535 0.17843 0.31468 1.90991 0.03912 0.25319 0.03258 0.03046 0.05143 2.61498 0.0784 0.47713 0.13931 0.28621 0.21121 0.20348 1.22341 1.14526 0.18712 0.25546 0 0 0.02847 0.04966 0 0.05543 0 0.37341 0.6655 0.19765 0.06937 0.02007 0.06889 0 0.69197 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_gordonii|t__GCF_000017005 0 0.00554 0.00908 0.0295 0.19311 0 1.71254 0.18558 0 2.4657 1.68733 0.47722 0.11007 0.08265 0.31728 0.08012 0.08068 0.04646 0.29535 0.17843 0.31468 1.90991 0.03912 0.25319 0.03258 0.03046 0.05143 2.61498 0.0784 0.47713 0.13931 0.28621 0.21121 0.20348 1.22341 1.14526 0.18712 0.25546 0 0 0.02847 0.04966 0 0.05543 0 0.37341 0.6655 0.19765 0.06937 0.02007 0. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_infantarius 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_infantarius|t__Streptococcus_infantarius_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_infantis 0.00182 0.07999 0.64202 0.06129 1.10717 0.0043 0.57705 2.17712 1.30411 0.56907 0.10305 0.06771 0.31723 0.95778 0.36551 1.09997 0.19438 1.433 2.93251 1.83373 0.66148 0.78145 0.53222 0.94562 0.43638 0.37395 0.51075 3.02137 0.75267 0.86327 1.29191 0.94628 0.5514 0.53867 0.52083 0.07042 0.59693 0.9639 1.84311 1.31264 0.82792 4.79429 0.49514 0 0.54745 1.97749 0.71937 2.01701 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_infantis|t__GCF_000223255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_infantis|t__Streptococcus_infantis_unclassified 0.00182 0.07999 0.64202 0.06129 1.10717 0.0043 0.57705 2.17712 1.30411 0.56907 0.10305 0.06771 0.31723 0.95778 0.36551 1.09997 0.19438 1.433 2.93251 1.83373 0.66148 0.78145 0.53222 0.94562 0.43638 0.37395 0.51075 3.02137 0.75267 0.86327 1.29191 0.94628 0.5514 0.53867 0.52083 0.07042 0.59693 0.9639 1.84311 1.31264 0.82792 4.79429 0.4 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_intermedius 0 0.00174 0 0.23717 0.05712 0 0 0 0.00365 0 0 0.02456 0 0.1057 0 0 0 0 0 0.07779 0.05398 0.15962 0 0 0.02547 0.01249 0 0 0 0.03765 0 0 0.00503 0.00502 0 0 0.05243 0.16157 0.11184 0.09093 0.01196 0 0.05414 0.0244 0 0 0.11069 0.09837 0.02616 0.00691 0 0.00456 0 0.04828 0.11186 0 0.00911 0 0 0 0.00269 0 0 0 0 0 0 0 0.0393 0.00408 0.02734 0 0 0.06424 0.10632 0.0221 0.0845 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_intermedius|t__Streptococcus_intermedius_unclassified 0 0.00174 0 0.23717 0.05712 0 0 0 0.00365 0 0 0.02456 0 0.1057 0 0 0 0 0 0.07779 0.05398 0.15962 0 0 0.02547 0.01249 0 0 0 0.03765 0 0 0.00503 0.00502 0 0 0.05243 0.16157 0.11184 0.09093 0.01196 0 0.05414 0.0244 0 0 0.11069 0.09837 0.02616 0.00691 0 0.00456 0 0.04828 0.11186 0 0.00911 0 0 0 0.00269 0 0 0 0 0 0 0 0.0393 0.00408 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_massiliensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02269 0 0 0 0 0 0 0 0 0 0.00079 0 0 0 0 0 0.00064 0 0 0.01271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02428 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_massiliensis|t__Streptococcus_massiliensis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02269 0 0 0 0 0 0 0 0 0 0.00079 0 0 0 0 0 0.00064 0 0 0.01271 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_mitis_oralis_pneumoniae 0.84135 26.04437 14.31611 8.96332 2.33187 2.39271 9.21139 12.42123 3.07767 8.43705 39.15186 21.36358 23.6323 0.89249 20.16474 2.81492 0.37303 43.39653 17.30755 3.2089 1.59345 25.8497 3.93846 21.78697 0.78698 19.83799 17.55965 2.99917 46.79935 2.94291 14.26689 3.62746 4.7824 1.77923 5.01713 27.86712 4.1641 15.0401 16.60064 15.63711 21.12841 24.67443 0.47765 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_mitis_oralis_pneumoniae|t__Streptococcus_mitis_oralis_pneumoniae_unclassified 0.84135 26.04437 14.31611 8.96332 2.33187 2.39271 9.21139 12.42123 3.07767 8.43705 39.15186 21.36358 23.6323 0.89249 20.16474 2.81492 0.37303 43.39653 17.30755 3.2089 1.59345 25.8497 3.93846 21.78697 0.78698 19.83799 17.55965 2.99917 46.79935 2.94291 14.26689 3.62746 4.7824 1.77923 5.01713 27.86712 4.16 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_mutans 0 0 0 0 0.09212 0 0 0 0 0 0 0.02431 0 0 0.00376 0 0 0 0 0 0.10152 0 0.02524 1.24398 0.01724 0.03299 0 0 0 0.0224 0 0 0 0 0 0 0.06712 0.04137 0 0 0 0 0 0 0 0 0 0 0 0.00094 0 0.00574 0 0 0.08909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5943 0 0 0 0 0 0 0 0 0 0 0 0.00951 0.10574 0 0 0.01134 0 0 0 0 0 0.0437 0 0 0.01485 0 0 0 0 0 0 0 0 0 0 0.00029 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_mutans|t__Streptococcus_mutans_unclassified 0 0 0 0 0.09212 0 0 0 0 0 0 0.02431 0 0 0.00376 0 0 0 0 0 0.10152 0 0.02524 1.24398 0.01724 0.03299 0 0 0 0.0224 0 0 0 0 0 0 0.06712 0.04137 0 0 0 0 0 0 0 0 0 0 0 0.00094 0 0.00574 0 0 0.08909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5943 0 0 0 0 0 0 0 0 0 0 0 0.00951 0.10574 0 0 0.01134 0 0 0 0 0 0.0437 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_oligofermentans 0 0.0162 0 0.03715 0.01333 0 0 0.2083 0.00234 0 0 0 0 0.05416 0.01149 0 0 0 0.07199 0 0 0 0 0 0.08823 0 0 0.00579 0 0.01566 0 0 0 0 0 0 0 0 0 0 0.01305 0.00575 0 0 0.01125 0.01275 0 0.40386 0.06592 0.00259 0 0.0323 0.09166 0.0039 0 0.01011 0 0 0 0 0 0 0.00942 0.22544 0.01599 0.00991 0 0.02778 0.07051 0.00882 0.07052 0 0 0 0 0 0.04183 0 0.01958 0 0.05086 0 0 0.1370 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_oligofermentans|t__GCF_000385925 0 0.0162 0 0.03715 0.01333 0 0 0.2083 0.00234 0 0 0 0 0.05416 0.01149 0 0 0 0.07199 0 0 0 0 0 0.08823 0 0 0.00579 0 0.01566 0 0 0 0 0 0 0 0 0 0 0.01305 0.00575 0 0 0.01125 0.01275 0 0.40386 0.06592 0.00259 0 0.0323 0.09166 0.0039 0 0.01011 0 0 0 0 0 0 0.00942 0.22544 0.01599 0.00991 0 0.02778 0.07051 0.00882 0.07052 0 0 0 0 0 0.04183 0 0.01958 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_parasanguinis 0 0.03781 0.44592 0.20998 1.54775 0 4.30629 1.58473 1.10956 0.07107 0 0.74446 0.27443 4.30928 1.56731 0.00651 0.03176 0.36001 0.37874 0.1831 3.49044 0 0.15498 3.35104 0.20051 6.57152 0.14792 0.09977 0.34986 0.09669 0 0.69418 0.76892 0.00509 0.41363 0.07169 0.51073 2.40909 0.79889 1.15165 0.09185 0.01333 4.57855 0 0.00424 0.22512 0.77838 2.00657 0.42417 0.00634 0.429 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_parasanguinis|t__GCF_000260695 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_parasanguinis|t__GCF_000507765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_parasanguinis|t__Streptococcus_parasanguinis_unclassified 0 0.03781 0.44592 0.20998 1.54775 0 4.30629 1.58473 1.10956 0.07107 0 0.74446 0.27443 4.30928 1.56731 0.00651 0.03176 0.36001 0.37874 0.1831 3.49044 0 0.15498 3.35104 0.20051 6.57152 0.14792 0.09977 0.34986 0.09669 0 0.69418 0.76892 0.00509 0.41363 0.07169 0.51073 2.40909 0.79889 1.15165 0.09185 0.01333 4.57855 0 0.00424 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_peroris 0 0.00311 0 0 0.19081 0 0 0 0.12016 0 0 0 0 0.03723 0.10697 0 0 0 0 0 0.44792 0 0.02428 0 0 0.10974 0 0.02379 0 0.006 0 0.00868 0 0 0 0 0 0 0 0 0.01236 0 0 0 0.00792 0 0 0.01902 0.0356 0.10422 0.01042 0.00676 0 0.02708 0.35411 0.00741 0.00459 0 0 0 0.01326 0 0.00852 0 0.02056 0.03855 0 0 0 0 0 0.00728 0 0 0 0 0 0 0.05486 0.02809 0.26363 0 0 0 0 0 0 0.00735 0.01857 0.05089 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_peroris|t__GCF_000187585 0 0.00311 0 0 0.19081 0 0 0 0.12016 0 0 0 0 0.03723 0.10697 0 0 0 0 0 0.44792 0 0.02428 0 0 0.10974 0 0.02379 0 0.006 0 0.00868 0 0 0 0 0 0 0 0 0.01236 0 0 0 0.00792 0 0 0.01902 0.0356 0.10422 0.01042 0.00676 0 0.02708 0.35411 0.00741 0.00459 0 0 0 0.01326 0 0.00852 0 0.02056 0.03855 0 0 0 0 0 0.00728 0 0 0 0 0 0 0.05486 0.02809 0.26363 0 0 0 0 0 0 0.0073 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_pseudopneumoniae 0.09533 0.0046 0 0 0 0.13007 0 0 0.00219 0 0 0 0.06044 0 0.02302 0.16276 0.01184 0 0 0 0 0 0 0 0 0 0 0.00731 0 0 0.7772 0 0 0 0 0.03402 0 0 0 0 0 0 0 0 0 0 0 0 0.04706 0.01941 1.60478 0.00319 0 0 0 0.04628 0.24782 0 0.03024 0.33909 0 0.05224 0 0 0 0 0 0.07554 1.05181 0.02849 0 0 0 0 0 0 0 0.00819 0.03338 0 0 0 0 0.00992 0 0.0206 0 0.00341 0 0.04252 0 0.01723 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_pseudopneumoniae|t__Streptococcus_pseudopneumoniae_unclassified 0.09533 0.0046 0 0 0 0.13007 0 0 0.00219 0 0 0 0.06044 0 0.02302 0.16276 0.01184 0 0 0 0 0 0 0 0 0 0 0.00731 0 0 0.7772 0 0 0 0 0.03402 0 0 0 0 0 0 0 0 0 0 0 0 0.04706 0.01941 1.60478 0.00319 0 0 0 0.04628 0.24782 0 0.03024 0.33909 0 0.05224 0 0 0 0 0 0.07554 1.05181 0.02849 0 0 0 0 0 0 0 0.00819 0.03338 0 0 0 0 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_salivarius 0 0.02062 0.01243 0.15947 0.03148 0 5.56024 3.8722 0.40959 0.1409 0.04595 0.92578 0.40293 8.41838 2.07876 0 0 0.04819 0.35158 0.57427 1.4893 0 0.21396 2.77095 0.2064 13.61944 0.16865 0.11977 0.44401 0.04466 0 0.22793 0.24088 0.1592 0.58925 0.04243 1.42379 1.84885 0.34252 0.39818 0.52741 0.10299 11.62445 0.0262 0.39731 0.55743 1.04242 1.02046 1.04296 0.59506 0.754 0.057 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_salivarius|t__Streptococcus_salivarius_unclassified 0 0.02062 0.01243 0.15947 0.03148 0 5.56024 3.8722 0.40959 0.1409 0.04595 0.92578 0.40293 8.41838 2.07876 0 0 0.04819 0.35158 0.57427 1.4893 0 0.21396 2.77095 0.2064 13.61944 0.16865 0.11977 0.44401 0.04466 0 0.22793 0.24088 0.1592 0.58925 0.04243 1.42379 1.84885 0.34252 0.39818 0.52741 0.10299 11.62445 0.0262 0.39731 0.55743 1. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sanguinis 0.06184 0.16061 0.01558 5.65301 0.14029 0.04843 5.29767 6.21154 0.66128 1.48484 5.7801 0.28288 0.79034 1.23362 1.39134 0.63819 1.76756 0.44564 0.75442 2.20976 0.08721 3.68285 0.7025 1.41506 2.61166 1.97425 1.66218 0.86236 0.43508 0.97543 0.17078 2.59769 2.88338 9.54889 2.2992 1.39693 6.15329 1.20017 3.06803 2.98096 3.68687 0.2732 4.90505 1.55465 0.15827 2.88454 10.43568 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sanguinis|t__Streptococcus_sanguinis_unclassified 0.06184 0.16061 0.01558 5.65301 0.14029 0.04843 5.29767 6.21154 0.66128 1.48484 5.7801 0.28288 0.79034 1.23362 1.39134 0.63819 1.76756 0.44564 0.75442 2.20976 0.08721 3.68285 0.7025 1.41506 2.61166 1.97425 1.66218 0.86236 0.43508 0.97543 0.17078 2.59769 2.88338 9.54889 2.2992 1.39693 6.15329 1.20017 3.06803 2.98096 3.68687 0.2732 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_2_1_36FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.68182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.12051 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_2_1_36FAA|t__GCF_000161955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.68182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_AS14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.54822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_AS14|t__GCF_000286495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.54822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_BS35b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.68282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.56462 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_BS35b|t__GCF_000286475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.68282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.56462 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_C300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.03164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.47067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.28414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_C300|t__GCF_000187645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.03164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.47067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.28414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_F0441 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.94556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_F0441|t__GCF_000314775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.94556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_F0442 0 0 0 0 0 0 0 0 0.47168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.80286 0 0 0 0.40418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_F0442|t__GCF_000314795 0 0 0 0 0 0 0 0 0.47168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.80286 0 0 0 0.40418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_GMD5S 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.03817 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.31688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_GMD5S|t__GCF_000298715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.03817 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.31688 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_HPH0090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_HPH0090|t__GCF_000411475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_I_G2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_I_G2|t__GCF_000479335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_M143 0 0 0 0 0 0 0 0 0 0 0 0 0 1.23955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.56726 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.94496 0 0 0 0 0 1.84738 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_M143|t__GCF_000162495 0 0 0 0 0 0 0 0 0 0 0 0 0 1.23955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.56726 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.94496 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_M334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.05757 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.61154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.20951 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_M334|t__GCF_000187745 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.05757 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.61154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.20951 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_SK140 0 0 0 0 0 0 0 0 0.92382 0 0 0 0 1.136 0 0 0 0 0 0 1.49992 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.81103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.87156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.63084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_SK140|t__GCF_000259525 0 0 0 0 0 0 0 0 0.92382 0 0 0 0 1.136 0 0 0 0 0 0 1.49992 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.81103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.87156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.63084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_oral_taxon_056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.40885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sp_oral_taxon_056|t__GCF_000220065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.40885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_thermophilus 0 0 0 0 0.01105 0 5.71686 0 0 0 0 0.0852 0 0 0 0 0 0 0 0 0.00617 0 0 0 0 0 0.01406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01547 0 0 0 0 0 0.10908 0 0.03262 0 0 0.00345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00196 0 0 0 0 0 0.00547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01374 0 0 0 0 0 0 0 0 0.0015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0004 0 0 0.22625 0 0 0 0.02936 0 0 0 0 0.00666 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_thermophilus|t__Streptococcus_thermophilus_unclassified 0 0 0 0 0.01105 0 5.71686 0 0 0 0 0.0852 0 0 0 0 0 0 0 0 0.00617 0 0 0 0 0 0.01406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01547 0 0 0 0 0 0.10908 0 0.03262 0 0 0.00345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00196 0 0 0 0 0 0.00547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01374 0 0 0 0 0 0 0 0 0.0015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0004 0 0 0.226 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_tigurinus 0 0 0.06442 0 1.15996 0.00449 0.04086 0 0.3013 0.05478 0 0.5869 0.44794 0.02646 0.93209 0 0.121 0.30123 0.18743 0.01197 0.34069 0.15557 0.50605 0 0.36771 0.97204 0 0 0.06797 0.06905 0 0.02141 0.01425 0 0 0.00886 0 0 0 0 2.49803 0.00379 0.19915 0.24639 0.0026 0 0.07408 2.03846 0.00819 0.00591 0.06068 0.0109 0.20132 0.02279 0.68924 0 0.30366 0 0.11446 1.04683 0.39546 0.10 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_tigurinus|t__Streptococcus_tigurinus_unclassified 0 0 0.06442 0 1.15996 0.00449 0.04086 0 0.3013 0.05478 0 0.5869 0.44794 0.02646 0.93209 0 0.121 0.30123 0.18743 0.01197 0.34069 0.15557 0.50605 0 0.36771 0.97204 0 0 0.06797 0.06905 0 0.02141 0.01425 0 0 0.00886 0 0 0 0 2.49803 0.00379 0.19915 0.24639 0.0026 0 0.07408 2.03846 0.00819 0.00591 0.06068 0.0109 0.20132 0.02279 0.68924 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_vestibularis 0 0 0.02505 0.52831 0.39671 0 0 13.78252 0 0.0122 0 0.81744 0.13027 0 0.38011 0 0.00129 0 2.9949 0 0.19408 0 2.13159 18.92615 0 19.60886 0 0 0.13125 0.01876 0 0.2031 0.16686 2.3128 0.34918 2.85493 0 4.06811 0.52501 0.23686 0.1278 0 1.96811 0 0.018 0 6.96156 0.03324 0.02854 0 0.1605 0 0 0 0.29583 0 0.52379 1.02734 0 0.13865 0.01365 10.15434 0.91322 2.54919 0.2745 2.46 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_vestibularis|t__Streptococcus_vestibularis_unclassified 0 0 0.02505 0.52831 0.39671 0 0 13.78252 0 0.0122 0 0.81744 0.13027 0 0.38011 0 0.00129 0 2.9949 0 0.19408 0 2.13159 18.92615 0 19.60886 0 0 0.13125 0.01876 0 0.2031 0.16686 2.3128 0.34918 2.85493 0 4.06811 0.52501 0.23686 0.1278 0 1.96811 0 0.018 0 6.96156 0.03324 0.02854 0 0.1605 0 0 0 0.29583 0 0.52379 1.02734 0 0.13865 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia 0.07338 0.01335 0 0.04733 2.01048 0.04401 0.08702 1.3651 0.33042 0.26271 0 0.11367 0.02388 4.55862 0.65059 0.13426 0.1218 0 0.6008 0.07753 2.06316 0.03201 0.0497 0 0.43358 0.08562 0 0.39264 0.06111 1.03009 0 0.05552 0.06037 0.15523 0 0 2.18806 3.37141 0.00167 0.01462 0.30993 0.25944 0.98364 0 0.84199 0.36967 0.26886 1.06924 1.59397 0.21818 0.16791 0.09245 0.55062 0.24968 3.10524 0.10112 0.13521 0.04687 0.05704 0 0.14382 1.09373 0.15284 0.76606 0.72 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales 0.07338 0.01335 0 0.04733 2.01048 0.04401 0.08702 1.3651 0.33042 0.26271 0 0.11367 0.02388 4.55862 0.65059 0.13426 0.1218 0 0.6008 0.07753 2.06316 0.03201 0.0497 0 0.43358 0.08562 0 0.39264 0.06111 1.03009 0 0.05552 0.06037 0.15523 0 0 2.18806 3.37141 0.00167 0.01462 0.30993 0.25944 0.98364 0 0.84199 0.36967 0.26886 1.06924 1.59397 0.21818 0.16791 0.09245 0.55062 0.24968 3.10524 0.10112 0.13521 0.04687 0.05704 0 0.14382 1.09373 0.1 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0315 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Butyricicoccus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Butyricicoccus|s__Butyricicoccus_pullicaecorum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Butyricicoccus|s__Butyricicoccus_pullicaecorum|t__GCF_000398925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridiaceae_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridiaceae_noname|s__Clostridiaceae_bacterium_JC118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridiaceae_noname|s__Clostridiaceae_bacterium_JC118|t__GCF_000313565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_asparagiforme 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_asparagiforme|t__GCF_000158075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_bolteae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_bolteae|t__Clostridium_bolteae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_bolteae|t__GCF_000154365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_bolteae|t__GCF_000371665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_celatum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_celatum|t__GCF_000320405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_citroniae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_citroniae|t__GCF_000233455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_clostridioforme 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_clostridioforme|t__Clostridium_clostridioforme_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hathewayi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hathewayi|t__Clostridium_hathewayi_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hathewayi|t__GCF_000160095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hathewayi|t__GCF_000371445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hylemonae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hylemonae|t__GCF_000156515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_leptum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_leptum|t__GCF_000154345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_methylpentosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_methylpentosum|t__GCF_000158655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_nexile 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_nexile|t__GCF_000156035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_perfringens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_perfringens|t__Clostridium_perfringens_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_scindens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_scindens|t__GCF_000154505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_sp_ATCC_BAA_442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_sp_ATCC_BAA_442|t__GCF_000466445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_sp_D5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_sp_D5|t__GCF_000190355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_sp_KLE_1755 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_sp_KLE_1755|t__GCF_000466465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_sp_L2_50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_sp_L2_50|t__GCF_000154245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_symbiosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_symbiosum|t__Clostridium_symbiosum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis 0 0 0 0 0.08987 0 0 0 0.07786 0.0052 0 0.00902 0 0.08074 0.09818 0 0 0 0.09765 0 0.13867 0 0 0 0 0 0 0.00708 0.02298 0.00613 0 0 0 0 0 0 0 0.0748 0 0 0.03331 0.00457 0.03349 0 0.01022 0.15082 0 0.06087 0.09225 0.00711 0.02626 0.01484 0.113 0.02151 0.26059 0.00135 0 0 0 0 0.00464 0.04701 0.01124 0.10117 0.02826 0.06133 0 0.04951 0 0.01616 0.02642 0 0 0.06648 0.14243 0 0.04727 0 0.05832 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis|g__Clostridiales_Family_XIII_Incertae_Sedis_noname 0 0 0 0 0.01305 0 0 0 0.00874 0 0 0 0 0.06973 0.0033 0 0 0 0 0 0.00477 0 0 0 0 0 0 0.00558 0.00175 0 0 0 0 0 0 0 0 0 0 0 0.00257 0.00275 0.00702 0 0.01022 0 0 0.0057 0.08652 0 0 0.00035 0.02809 0.01513 0.13578 0 0 0 0 0 0 0 0 0 0.01248 0.00485 0 0 0 0.00543 0.00618 0 0 0.06648 0.06619 0 0.00944 0 0.01096 0 0.02633 0 0.01008 0.11376 0 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis|g__Clostridiales_Family_XIII_Incertae_Sedis_noname|s__Eubacterium_infirmum 0 0 0 0 0.01305 0 0 0 0.00874 0 0 0 0 0.06973 0.0033 0 0 0 0 0 0.00477 0 0 0 0 0 0 0.00558 0.00175 0 0 0 0 0 0 0 0 0 0 0 0.00257 0.00275 0.00702 0 0.01022 0 0 0.0057 0.08652 0 0 0.00035 0.02809 0.01513 0.13578 0 0 0 0 0 0 0 0 0 0.01248 0.00485 0 0 0 0.00543 0.00618 0 0 0.06648 0.06619 0 0.00944 0 0.01096 0 0.02633 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis|g__Clostridiales_Family_XIII_Incertae_Sedis_noname|s__Eubacterium_infirmum|t__GCF_000242675 0 0 0 0 0.01305 0 0 0 0.00874 0 0 0 0 0.06973 0.0033 0 0 0 0 0 0.00477 0 0 0 0 0 0 0.00558 0.00175 0 0 0 0 0 0 0 0 0 0 0 0.00257 0.00275 0.00702 0 0.01022 0 0 0.0057 0.08652 0 0 0.00035 0.02809 0.01513 0.13578 0 0 0 0 0 0 0 0 0 0.01248 0.00485 0 0 0 0.00543 0.00618 0 0 0.06648 0.06619 0 0.00944 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis|g__Clostridiales_Family_XIII_Incertae_Sedis_unclassified 0 0 0 0 0.07682 0 0 0 0.06912 0.0052 0 0.00902 0 0.01101 0.09488 0 0 0 0.09765 0 0.1339 0 0 0 0 0 0 0.00149 0.02123 0.00613 0 0 0 0 0 0 0 0.0748 0 0 0.03075 0.00182 0.02647 0 0 0.15082 0 0.05517 0.00573 0.00711 0.02626 0.0145 0.08492 0.00639 0.12481 0.00135 0 0 0 0 0.00464 0.04701 0.01124 0.10117 0.01578 0.05648 0 0.04951 0 0.01073 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis|g__Mogibacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.06322 0.25464 0 0 0 0 0 0 0 0 1.31923 0.48093 0 0 0 0 0 0 0 0 0 0 0 0 0.20643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis|g__Mogibacterium|s__Mogibacterium_sp_CM50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.06322 0.25464 0 0 0 0 0 0 0 0 1.31923 0.48093 0 0 0 0 0 0 0 0 0 0 0 0 0.20643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XIII_Incertae_Sedis|g__Mogibacterium|s__Mogibacterium_sp_CM50|t__GCF_000293155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.06322 0.25464 0 0 0 0 0 0 0 0 1.31923 0.48093 0 0 0 0 0 0 0 0 0 0 0 0 0.20643 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis 0.0033 0 0 0 0.07654 0 0 0.04826 0.0164 0 0 0 0 0.24082 0.09475 0.00985 0.00259 0 0.15644 0.00672 0.14976 0 0.02809 0 0.00707 0 0 0.06648 0.00589 0.17221 0 0 0 0 0 0 0 0 0 0 0.03916 0.04801 0.0132 0 0.07149 0 0.00587 0.049 0.03293 0.0648 0.00417 0.02393 0.04834 0.00822 0.22692 0.03392 0.03594 0 0 0 0 0 0.02227 0.34176 0.01091 0.0108 0 0.05115 0 0.00708 0.23134 0 0 0.16796 0 0.14437 0.02347 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_hydrogenalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_hydrogenalis|t__Anaerococcus_hydrogenalis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_lactolyticus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_lactolyticus|t__GCF_000156575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_obesiensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_obesiensis|t__GCF_000311745 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_prevotii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_prevotii|t__Anaerococcus_prevotii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_tetradius 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_tetradius|t__GCF_000159095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_vaginalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_vaginalis|t__GCF_000163295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Finegoldia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Finegoldia|s__Finegoldia_magna 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Finegoldia|s__Finegoldia_magna|t__Finegoldia_magna_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Parvimonas 0.0033 0 0 0 0.07654 0 0 0.04826 0.0164 0 0 0 0 0.24082 0.09475 0.00985 0.00259 0 0.15644 0.00672 0.14976 0 0.02809 0 0.00707 0 0 0.06648 0.00589 0.17221 0 0 0 0 0 0 0 0 0 0 0.03916 0.04801 0.0132 0 0.07149 0 0.00587 0.049 0.03293 0.0648 0.00417 0.02393 0.04834 0.00822 0.22692 0.03392 0.03594 0 0 0 0 0 0.02227 0.34176 0.01091 0.0108 0 0.05115 0 0.00708 0.23134 0 0 0.16796 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Parvimonas|s__Parvimonas_micra 0.00047 0 0 0 0.02775 0 0 0 0 0 0 0 0 0.00974 0.05074 0 0.00063 0 0.01469 0 0.05174 0 0 0 0 0 0 0 0 0.0292 0 0 0 0 0 0 0 0 0 0 0 0.01047 0 0 0.00646 0 0 0.00396 0 0.01566 0 0.00184 0 0 0.07552 0.0017 0.00769 0 0 0 0 0 0 0.02473 0 0 0 0 0 0 0 0 0 0 0 0.0455 0 0 0 0 0.06255 0 0.04349 0 0 0.00331 0.005 0 0 0.00939 0 0 0 0 0 0 0 0.00755 0 0.05274 0.01241 0 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Parvimonas|s__Parvimonas_micra|t__GCF_000154405 0.00047 0 0 0 0.02775 0 0 0 0 0 0 0 0 0.00974 0.05074 0 0.00063 0 0.01469 0 0.05174 0 0 0 0 0 0 0 0 0.0292 0 0 0 0 0 0 0 0 0 0 0 0.01047 0 0 0.00646 0 0 0.00396 0 0.01566 0 0.00184 0 0 0.07552 0.0017 0.00769 0 0 0 0 0 0 0.02473 0 0 0 0 0 0 0 0 0 0 0 0.0455 0 0 0 0 0.06255 0 0.04349 0 0 0.00331 0.005 0 0 0.00939 0 0 0 0 0 0 0 0.00755 0 0.052 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Parvimonas|s__Parvimonas_sp_oral_taxon_110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.30947 0 0 0.20681 0 0 0 0 0 0 0 0 0 0.17345 0 0 0 0 0.09359 0 0 0 0 0 0 0 0 0 0.19856 0 0 0.137 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Parvimonas|s__Parvimonas_sp_oral_taxon_110|t__GCF_000214475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.30947 0 0 0.20681 0 0 0 0 0 0 0 0 0 0.17345 0 0 0 0 0.09359 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Parvimonas|s__Parvimonas_unclassified 0.00284 0 0 0 0.04879 0 0 0.04826 0.0164 0 0 0 0 0.23108 0.04401 0.00985 0.00195 0 0.14175 0.00672 0.09802 0 0.02809 0 0.00707 0 0 0.06648 0.00589 0.143 0 0 0 0 0 0 0 0 0 0 0.03916 0.03754 0.0132 0 0.06503 0 0.00587 0.04504 0.03293 0.04914 0.00417 0.02209 0.04834 0.00822 0.1514 0.03222 0.02825 0 0 0 0 0 0.02227 0.31703 0.01091 0.0108 0 0.05115 0 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_duerdenii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_duerdenii|t__GCF_000146345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_harei 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_harei|t__GCF_000183565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_lacrimalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_lacrimalis|t__Peptoniphilus_lacrimalis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_rhinitidis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_rhinitidis|t__GCF_000246925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Clostridiales_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Clostridiales_noname|s__Bacteroides_pectinophilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Clostridiales_noname|s__Bacteroides_pectinophilus|t__GCF_000155855 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Clostridiales_noname|s__Clostridiales_bacterium_1_7_47FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Clostridiales_noname|s__Clostridiales_bacterium_1_7_47FAA|t__GCF_000155435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Flavonifractor 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Flavonifractor|s__Flavonifractor_plautii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Flavonifractor|s__Flavonifractor_plautii|t__GCF_000239295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Pseudoflavonifractor 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Pseudoflavonifractor|s__Pseudoflavonifractor_capillosus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_noname|g__Pseudoflavonifractor|s__Pseudoflavonifractor_capillosus|t__GCF_000169255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae 0 0 0 0 0.13683 0 0 0 0.00495 0 0 0 0 0.03655 0.0407 0 0.0012 0 0.3467 0 0.12579 0 0.00141 0 0.00277 0 0 0 0 0.15344 0 0 0 0 0 0 0.01645 0.82021 0 0 0.00391 0.03857 0.01283 0 0.0336 0 0.14716 0.28163 0.03028 0.00656 0 0 0 0.00276 0.44986 0 0.00951 0 0 0 0 0 0 0.2315 0 0.01132 0 0 0 0 0.00174 0.01227 0.35313 0.54744 0 0.03489 0.02008 1.14239 0.0066 0 0.20668 0 0.04614 0.12553 0 0 0 0 0 0.25786 0 0 0 0 0 0 0 0 0 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Anaerofustis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Anaerofustis|s__Anaerofustis_stercorihominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Anaerofustis|s__Anaerofustis_stercorihominis|t__GCF_000154825 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacteriaceae_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00365 0 0 0 0 0 0 0 0.00293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04922 0 0 0 0 0 0 0.0166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00929 0 0 0 0.06546 0 0 0 0 0 0 0 0 0 0 0.07825 0.14991 0.0012 0 0 0 0.05274 0 0.00185 0 0.5911 0.18845 0.24089 0 0 0 0.00028 0 0 0.07464 0 0.00095 0 0.18131 0.00813 0.2 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacteriaceae_noname|s__Eubacteriaceae_bacterium_ACC19a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01836 0 0 0 0 0 0 0 0 0 0 0.07825 0.14991 0 0 0 0 0.05274 0 0 0 0.40807 0.12108 0.18051 0 0 0 0 0 0 0.02829 0 0 0 0.07139 0.00074 0.01281 0 0.00202 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacteriaceae_noname|s__Eubacteriaceae_bacterium_ACC19a|t__GCF_000238115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01836 0 0 0 0 0 0 0 0 0 0 0.07825 0.14991 0 0 0 0 0.05274 0 0 0 0.40807 0.12108 0.18051 0 0 0 0 0 0 0.02829 0 0 0 0.07139 0.00074 0. [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacteriaceae_noname|s__Eubacteriaceae_bacterium_CM2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00077 0 0 0 0 0 0 0 0 0.00017 0 0 0 0 0 0.1093 0 0 0 0 0 0.00221 0 0 0 0 0 0 0 0 0.00215 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacteriaceae_noname|s__Eubacteriaceae_bacterium_CM2|t__GCF_000238095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00077 0 0 0 0 0 0 0 0 0.00017 0 0 0 0 0 0.1093 0 0 0 0 0 0.00221 0 0 0 0 0 0 0 0 0.00215 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacteriaceae_noname|s__Eubacteriaceae_bacterium_CM5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00028 0 0 0.01248 0 0.00095 0 0.00265 0 0.02271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00292 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacteriaceae_noname|s__Eubacteriaceae_bacterium_CM5|t__GCF_000238135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00028 0 0 0.01248 0 0.00095 0 0.00265 0 0.02271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacteriaceae_noname|s__Eubacteriaceae_bacterium_OBRC8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00929 0 0 0 0.0069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00185 0 0 0 0.00733 0 0 0 0 0 0 0.01752 0 0 0 0.01395 0.00739 0.03661 0.00111 0 0 0 0 0 0 0 0.01443 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacteriaceae_noname|s__Eubacteriaceae_bacterium_OBRC8|t__GCF_000293035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00929 0 0 0 0.0069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00185 0 0 0 0.00733 0 0 0 0 0 0 0.01752 0 0 0 0.01395 0.00739 0.03661 0.00111 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacteriaceae_noname|s__Eubacteriaceae_noname_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00365 0 0 0 0 0 0 0 0.00293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04922 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.018 0 0 0 0 0 0 0 0 0 0 0 0 0.0012 0 0 0 0 0 0 0 0.18226 0.06737 0.05305 0 0 0 0 0 0 0.01617 0 0 0 0.09332 0 0.02424 0 0.00583 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium 0 0 0 0 0.13683 0 0 0 0.00495 0 0 0 0 0.03655 0.0407 0 0.0012 0 0.3467 0 0.12505 0 0.00141 0 0.00277 0 0 0 0 0.15344 0 0 0 0 0 0 0.01645 0.82021 0 0 0.00391 0.03492 0.01283 0 0.0336 0 0.14716 0.28163 0.03028 0.00363 0 0 0 0.00276 0.44986 0 0.00951 0 0 0 0 0 0 0.2315 0 0.01132 0 0 0 0 0.00174 0.01227 0.35313 0.49822 0 0.03489 0.02008 1.14239 0.0066 0 0.19008 0 0.04614 0.12553 0 0 0 0 0 0.25786 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_brachy 0 0 0 0 0.13683 0 0 0 0.00347 0 0 0 0 0 0.03055 0 0.0012 0 0.3467 0 0.12505 0 0.00141 0 0.00277 0 0 0 0 0.15344 0 0 0 0 0 0 0.01645 0 0 0 0 0.03492 0.01053 0 0.0336 0 0.14716 0.24428 0.03028 0.00363 0 0 0 0.00276 0.44986 0 0.00951 0 0 0 0 0 0 0.2315 0 0 0 0 0 0 0.00174 0.01227 0.25382 0.13459 0 0.03489 0.02008 0.01476 0 0 0.14937 0 0.04614 0.12169 0 0 0 0 0 0.20966 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_brachy|t__GCF_000488855 0 0 0 0 0.13683 0 0 0 0.00347 0 0 0 0 0 0.03055 0 0.0012 0 0.3467 0 0.12505 0 0.00141 0 0.00277 0 0 0 0 0.15344 0 0 0 0 0 0 0.01645 0 0 0 0 0.03492 0.01053 0 0.0336 0 0.14716 0.24428 0.03028 0.00363 0 0 0 0.00276 0.44986 0 0.00951 0 0 0 0 0 0 0.2315 0 0 0 0 0 0 0.00174 0.01227 0.25382 0.13459 0 0.03489 0.02008 0.01476 0 0 0.14937 0 0.04614 0.12169 0 0 0 0 0 0.2 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_eligens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.72862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_eligens|t__GCF_000146185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.72862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_hallii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_hallii|t__GCF_000173975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_limosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_limosum|t__GCF_000152245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_ramulus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_ramulus|t__GCF_000469345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_rectale 0 0 0 0 0 0 0 0 0.00148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.82021 0 0 0.00391 0 0.0023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01132 0 0 0 0 0 0 0.0993 0 0 0 0 0.25682 0.0066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_rectale|t__Eubacterium_rectale_unclassified 0 0 0 0 0 0 0 0 0.00148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.82021 0 0 0.00391 0 0.0023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01132 0 0 0 0 0 0 0.0993 0 0 0 0 0.25682 0.0066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_rectale|t__GCF_000209935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_saphenum 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03655 0.01015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.36363 0 0 0 0 0 0 0.04071 0 0 0.00385 0 0 0 0 0 0.0482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11314 0 0.00474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_saphenum|t__GCF_000161975 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03655 0.01015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.36363 0 0 0 0 0 0 0.04071 0 0 0.00385 0 0 0 0 0 0.0482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11314 0 0.00474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_siraeum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_siraeum|t__Eubacterium_siraeum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_siraeum|t__GCF_000209915 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_sp_3_1_31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_sp_3_1_31|t__Eubacterium_sp_3_1_31_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_ventriosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_ventriosum|t__GCF_000153885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Pseudoramibacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07923 0.06856 0 0 0 0 0 0 0 0 0 0 0.00327 0 0.00886 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Pseudoramibacter|s__Pseudoramibacter_alactolyticus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07923 0.06856 0 0 0 0 0 0 0 0 0 0 0.00327 0 0.00886 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Pseudoramibacter|s__Pseudoramibacter_alactolyticus|t__GCF_000185505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07923 0.06856 0 0 0 0 0 0 0 0 0 0 0.00327 0 0.00886 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae 0.0223 0.0022 0 0.03756 1.5112 0.04401 0 1.07595 0.19519 0.25751 0 0.10466 0.02388 3.9838 0.29062 0.08661 0.11801 0 0 0.07081 1.53857 0 0.02019 0 0.41663 0.08562 0 0.24912 0.02841 0.65342 0 0.05552 0.06037 0.15523 0 0 2.16202 0.62141 0.00167 0.01462 0.22213 0.16104 0.88302 0 0.68035 0.17607 0.10494 0.53846 1.2638 0.12927 0.12603 0.03844 0.3458 0.18075 1.70367 0.05327 0.08976 0 0.05596 0 0.13918 1.04673 0.11544 0. [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes|s__Anaerostipes_caccae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes|s__Anaerostipes_caccae|t__GCF_000154305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes|s__Anaerostipes_hadrus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes|s__Anaerostipes_hadrus|t__GCF_000332875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes|s__Anaerostipes_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02835 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.50198 0.03442 0 0 0 0 0 0 0 0 0 0 0 0 0 0.49132 0 0 0 0 0 0 0 0 0 0 0.00033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0072 0 0 0 0 0 0 0 0 0 0 0 0.00654 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Blautia_hansenii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Blautia_hansenii|t__GCF_000156675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Blautia_hydrogenotrophica 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Blautia_hydrogenotrophica|t__GCF_000157975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Blautia_producta 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Blautia_producta|t__GCF_000373885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_gnavus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_gnavus|t__Ruminococcus_gnavus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_obeum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_obeum|t__GCF_000153905 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_obeum|t__Ruminococcus_obeum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_torques 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02835 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.45731 0.03442 0 0 0 0 0 0 0 0 0 0 0 0 0 0.49132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0072 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_torques|t__GCF_000210035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Blautia|s__Ruminococcus_torques|t__Ruminococcus_torques_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02835 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.45731 0.03442 0 0 0 0 0 0 0 0 0 0 0 0 0 0.49132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Butyrivibrio 0 0 0 0 0 0 0 0.24247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12.31432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Butyrivibrio|s__Butyrivibrio_crossotus 0 0 0 0 0 0 0 0.24247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12.31432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Butyrivibrio|s__Butyrivibrio_crossotus|t__GCF_000156015 0 0 0 0 0 0 0 0.24247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12.31432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Butyrivibrio|s__Butyrivibrio_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Catonella 0 0.00142 0 0 0 0.03394 0 0 0 0 0 0.01007 0 0.02217 0.00747 0 0 0 0 0 0 0 0 0 0 0 0 0.0047 0 0.01579 0 0 0 0 0 0 0.0153 0 0 0.00535 0 0.01802 0 0 0.01373 0 0.02974 0.02878 0.04566 0.001 0 0 0 0 0 0.00227 0 0 0 0 0 0 0 0 0 0.00374 0 0.00879 0 0.00654 0.00467 0 0 0.32965 0 0 0.02773 0 0 0 0.04688 0 0.0283 0 0 0 0 0 0 0.02023 0 0 0 0 0 0.09157 0 0.01163 0 0.00643 0 0 0 0.10241 0 0 0 0 0 0 0 0 0 0.00225 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Catonella|s__Catonella_morbi 0 0.00142 0 0 0 0.03394 0 0 0 0 0 0.01007 0 0.02217 0.00747 0 0 0 0 0 0 0 0 0 0 0 0 0.0047 0 0.01579 0 0 0 0 0 0 0.0153 0 0 0.00535 0 0.01802 0 0 0.01373 0 0.02974 0.02878 0.04566 0.001 0 0 0 0 0 0.00227 0 0 0 0 0 0 0 0 0 0.00374 0 0.00879 0 0.00654 0.00467 0 0 0.32965 0 0 0.02773 0 0 0 0.04688 0 0.0283 0 0 0 0 0 0 0.02023 0 0 0 0 0 0.09157 0 0.01163 0 0.00643 0 0 0 0.10241 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Catonella|s__Catonella_morbi|t__GCF_000160035 0 0.00142 0 0 0 0.03394 0 0 0 0 0 0.01007 0 0.02217 0.00747 0 0 0 0 0 0 0 0 0 0 0 0 0.0047 0 0.01579 0 0 0 0 0 0 0.0153 0 0 0.00535 0 0.01802 0 0 0.01373 0 0.02974 0.02878 0.04566 0.001 0 0 0 0 0 0.00227 0 0 0 0 0 0 0 0 0 0.00374 0 0.00879 0 0.00654 0.00467 0 0 0.32965 0 0 0.02773 0 0 0 0.04688 0 0.0283 0 0 0 0 0 0 0.02023 0 0 0 0 0 0.09157 0 0.01163 0 0.00643 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.19134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_catus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_catus|t__GCF_000210555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_comes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.19134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_comes|t__GCF_000155875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.19134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_eutactus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_eutactus|t__GCF_000154425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_sp_ART55_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_sp_ART55_1|t__GCF_000210595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06928 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_formicigenerans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_formicigenerans|t__Dorea_formicigenerans_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_formicigenerans|t__GCF_000225745 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_longicatena 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03898 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_longicatena|t__GCF_000154065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03898 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__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.00261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00114 0 0 0 0 0 0 0 0 0 0.00675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15262 0 0.07117 0.70751 0 0.25764 0 0 0.86047 0 0 0.13264 0.23205 0 0.08276 0 0 0.00534 0.03099 0 0.01899 0.11411 0.063 0.25295 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Johnsonella|s__Johnsonella_ignava 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00114 0 0 0 0 0 0 0 0 0 0.00675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15262 0 0.07117 0.70751 0 0.25764 0 0 0.86047 0 0 0.13264 0.23205 0 0.08276 0 0 0.00534 0.03099 0 0.01899 0.11411 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Johnsonella|s__Johnsonella_ignava|t__GCF_000235445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00114 0 0 0 0 0 0 0 0 0 0.00675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15262 0 0.07117 0.70751 0 0.25764 0 0 0.86047 0 0 0.13264 0.23205 0 0.08276 0 0 0.00534 0.03099 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnoanaerobaculum 0 0.00078 0 0.03756 0.64517 0 0 0.05254 0.00149 0.07374 0 0.05655 0 0.05782 0.02228 0 0 0 0 0 0.06264 0 0.01223 0 0.07688 0 0 0.01635 0 0.13947 0 0 0 0.14948 0 0 0.35898 0.01899 0.00167 0.00135 0.07147 0 0.16002 0 0.00756 0 0 0.17455 0.06303 0 0.00774 0 0 0 0.24088 0 0 0 0 0 0.00424 0 0 0 0 0.06361 0 0 0.00208 0.03845 0.00796 0 0 0.2098 0.03009 0 0.05136 0 0 0 0.00078 0.01948 0 0.30049 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnoanaerobaculum|s__Lachnoanaerobaculum_saburreum 0 0.00078 0 0.03756 0.64517 0 0 0.05254 0.00149 0.07374 0 0.05655 0 0.05782 0.02228 0 0 0 0 0 0.06264 0 0.01223 0 0.07688 0 0 0.01635 0 0.13947 0 0 0 0.14948 0 0 0.35898 0.01899 0.00167 0.00135 0.07147 0 0.16002 0 0.00756 0 0 0.17455 0.06303 0 0.00774 0 0 0 0.24088 0 0 0 0 0 0.00424 0 0 0 0 0.06361 0 0 0.00208 0.03845 0.00796 0 0 0.2098 0.03009 0 0.05136 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnoanaerobaculum|s__Lachnoanaerobaculum_saburreum|t__GCF_000185385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.49474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnoanaerobaculum|s__Lachnoanaerobaculum_saburreum|t__Lachnoanaerobaculum_saburreum_unclassified 0 0.00078 0 0.03756 0.64517 0 0 0.05254 0.00149 0.07374 0 0.05655 0 0.05782 0.02228 0 0 0 0 0 0.06264 0 0.01223 0 0.07688 0 0 0.01635 0 0.13947 0 0 0 0.14948 0 0 0.35898 0.01899 0.00167 0.00135 0.07147 0 0.16002 0 0.00756 0 0 0.17455 0.06303 0 0.00774 0 0 0 0.24088 0 0 0 0 0 0.00424 0 0 0 0 0.06361 0 0 0.00208 0. [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname 0.0223 0 0 0 0.19576 0.01006 0 0.09277 0.12069 0.17295 0 0.03014 0 0.64581 0.10215 0.05325 0.05749 0 0 0.02743 0.00075 0 0.00601 0 0.28377 0 0 0.13065 0.01972 0.47731 0 0.01178 0.00369 0.00575 0 0 1.78773 0.08681 0 0 0.06762 0.03121 0.23539 0 0.57731 0.09955 0.01776 0.04331 0.37884 0.08477 0.02018 0.03799 0.10856 0.09347 0.07328 0.047 0.05883 0 0.0492 0 0.13278 0.11309 0.03852 0 0.20526 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_1_1_57FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_1_1_57FAA|t__GCF_000218445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_1_4_56FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_1_4_56FAA|t__GCF_000218385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_2_1_46FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_2_1_46FAA|t__GCF_000209385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_2_1_58FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_2_1_58FAA|t__GCF_000218465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_3_1_46FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_3_1_46FAA|t__GCF_000209405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_3_1_57FAA_CT1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_3_1_57FAA_CT1|t__GCF_000218405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_4_1_37FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_4_1_37FAA|t__GCF_000191805 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_5_1_57FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_5_1_57FAA|t__GCF_000218425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_5_1_63FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_5_1_63FAA|t__GCF_000185525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_6_1_63FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_6_1_63FAA|t__GCF_000209425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_7_1_58FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_7_1_58FAA|t__GCF_000242155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_8_1_57FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_8_1_57FAA|t__GCF_000185545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_9_1_43BFAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_9_1_43BFAA|t__GCF_000209445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_ICM7 0.0223 0 0 0 0.14876 0.01006 0 0.09277 0.11514 0.17295 0 0 0 0.62648 0.02692 0.01281 0.05749 0 0 0.02743 0 0 0.00601 0 0.21978 0 0 0.10182 0.01972 0.45905 0 0.01178 0.00369 0.00575 0 0 0 0.0226 0 0 0.06762 0.02795 0.01045 0 0.33692 0.09955 0.01776 0.04331 0.27974 0.06284 0.02018 0.03799 0.0775 0.09176 0.07328 0.03098 0.05883 0 0 0 0.13214 0 0.03237 0 0.1 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_ICM7|t__GCF_000287675 0.0223 0 0 0 0.14876 0.01006 0 0.09277 0.11514 0.17295 0 0 0 0.62648 0.02692 0.01281 0.05749 0 0 0.02743 0 0 0.00601 0 0.21978 0 0 0.10182 0.01972 0.45905 0 0.01178 0.00369 0.00575 0 0 0 0.0226 0 0 0.06762 0.02795 0.01045 0 0.33692 0.09955 0.01776 0.04331 0.27974 0.06284 0.02018 0.03799 0.0775 0.09176 0.07328 0.03098 0.05883 0 0 0 0.1321 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_oral_taxon_082 0 0 0 0 0.01131 0 0 0 0.00234 0 0 0.03014 0 0.01933 0.07522 0 0 0 0 0 0.00075 0 0 0 0.03036 0 0 0.01222 0 0 0 0 0 0 0 0 0 0.06422 0 0 0 0 0.22493 0 0.02093 0 0 0 0.09594 0 0 0 0.02165 0 0 0 0 0 0 0 0.00064 0.11309 0.00615 0 0.01092 0.07435 0 0 0 0.05902 0 0 0 0 0 0 0 0 0.13374 0 0 0 0 0 0 0 0.03101 0 0.01553 0 0 0 0 0 0 0.0386 0 0 0 0 0 0 0.005 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_bacterium_oral_taxon_082|t__GCF_000242315 0 0 0 0 0.01131 0 0 0 0.00234 0 0 0.03014 0 0.01933 0.07522 0 0 0 0 0 0.00075 0 0 0 0.03036 0 0 0.01222 0 0 0 0 0 0 0 0 0 0.06422 0 0 0 0 0.22493 0 0.02093 0 0 0 0.09594 0 0 0 0.02165 0 0 0 0 0 0 0 0.00064 0.11309 0.00615 0 0.01092 0.07435 0 0 0 0.05902 0 0 0 0 0 0 0 0 0.13374 0 0 0 0 0 0 0 0.03101 0 0.01553 0 0 0 0 0 0 0.0386 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_oral_taxon_107 0 0 0 0 0.03569 0 0 0 0.00321 0 0 0 0 0 0 0.04044 0 0 0 0 0 0 0 0 0.03363 0 0 0.01661 0 0.01825 0 0 0 0 0 0 1.78773 0 0 0 0 0.00326 0 0 0.21946 0 0 0 0.00316 0.02192 0 0 0.00942 0.0017 0 0.01602 0 0 0.0492 0 0 0 0 0 0.00954 0.00511 0 0 0 0.02164 0.09087 0 0 0 0 0.01849 0 0 0.01634 0 0.03192 0 0 0 0 0.03159 0.09588 0 0.04542 0.05171 0 0 0 0 0 0.02621 0.35 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Lachnospiraceae_noname|s__Lachnospiraceae_oral_taxon_107|t__GCF_000209465 0 0 0 0 0.03569 0 0 0 0.00321 0 0 0 0 0 0 0.04044 0 0 0 0 0 0 0 0 0.03363 0 0 0.01661 0 0.01825 0 0 0 0 0 0 1.78773 0 0 0 0 0.00326 0 0 0.21946 0 0 0 0.00316 0.02192 0 0 0.00942 0.0017 0 0.01602 0 0 0.0492 0 0 0 0 0 0.00954 0.00511 0 0 0 0.02164 0.09087 0 0 0 0 0.01849 0 0 0.01634 0 0.03192 0 0 0 0 0.03159 0.09588 0 0.04542 0.05171 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Marvinbryantia|s__Marvinbryantia_formatexigens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Marvinbryantia|s__Marvinbryantia_formatexigens|t__GCF_000173815 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium 0 0 0 0 0.25772 0 0 0.68817 0.06456 0.00141 0 0 0.02388 2.9738 0.1177 0.02838 0.04839 0 0 0.03184 1.29764 0 0 0 0.00911 0.05679 0 0.06994 0.0087 0 0 0.0224 0.02637 0 0 0 0 0.14228 0 0.00792 0.07707 0.08115 0.18369 0 0.06733 0.07652 0.05744 0.29182 0.60005 0.03956 0.09441 0.00045 0.21249 0.07631 0.98019 0.00197 0.03093 0 0 0 0.00146 0.49051 0.07692 0.03038 0.42085 0.49343 0 0.00953 0.00788 0.30056 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sinus 0 0 0 0 0.23455 0 0 0.68817 0.06456 0.00141 0 0 0.02388 2.26553 0.11589 0.02838 0.04839 0 0 0.03184 1.29293 0 0 0 0.00911 0.05679 0 0.06994 0.0087 0 0 0.0224 0.02637 0 0 0 0 0.14228 0 0.00792 0.07707 0.08115 0.18369 0 0.06733 0.07652 0.05744 0.29182 0.60005 0.03956 0.09441 0.00045 0.21028 0.07403 0.89288 0.00197 0 0 0 0 0.00146 0.49051 0.07692 0.03038 0.42085 0.49343 0 0.0095 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sinus|t__GCF_000160635 0 0 0 0 0.23455 0 0 0.68817 0.06456 0.00141 0 0 0.02388 2.26553 0.11589 0.02838 0.04839 0 0 0.03184 1.29293 0 0 0 0.00911 0.05679 0 0.06994 0.0087 0 0 0.0224 0.02637 0 0 0 0 0.14228 0 0.00792 0.07707 0.08115 0.18369 0 0.06733 0.07652 0.05744 0.29182 0.60005 0.03956 0.09441 0.00045 0.21028 0.07403 0.89288 0.00197 0 0 0 0 0.00146 0.49051 0.07692 0.03038 0.42085 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sp_ACB1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.70827 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sp_ACB1|t__GCF_000238055 0 0 0 0 0 0 0 0 0 0 0 0 0 0.70827 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sp_ACB7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sp_ACB7|t__GCF_000238075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sp_ACB8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sp_ACB8|t__GCF_000277505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sp_oral_taxon_078 0 0 0 0 0.02317 0 0 0 0 0 0 0 0 0 0.00181 0 0 0 0 0 0.00472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00221 0.00228 0.08731 0 0.03093 0 0 0 0 0 0 0 0 0 0 0 0 0.00839 0 0 0 0.33174 0 0 0 0 0 0 0.00214 0 0 0.25052 0 0 0.35113 0 0 0 0 0 0 0 0 0.2315 0 0 0 0 0 0 0.01714 0.03459 0 0 0 0 0 0 0 0 0 0.00055 0 0 0.00064 0 0 0.0095 0 0.00389 0.64521 1. [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sp_oral_taxon_078|t__Oribacterium_sp_oral_taxon_078_unclassified 0 0 0 0 0.02317 0 0 0 0 0 0 0 0 0 0.00181 0 0 0 0 0 0.00472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00221 0.00228 0.08731 0 0.03093 0 0 0 0 0 0 0 0 0 0 0 0 0.00839 0 0 0 0.33174 0 0 0 0 0 0 0.00214 0 0 0.25052 0 0 0.35113 0 0 0 0 0 0 0 0 0.2315 0 0 0 0 0 0 0.01714 0.03459 0 0 0 0 0 0 0 0 0 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sp_oral_taxon_108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sp_oral_taxon_108|t__GCF_000214455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__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.21961 0 0 0.00596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.18436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_hominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_hominis|t__GCF_000225345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_intestinalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_intestinalis|t__GCF_000210655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_intestinalis|t__Roseburia_intestinalis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_inulinivorans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.20758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0956 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_inulinivorans|t__GCF_000174195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.20758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0956 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Shuttleworthia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00188 0.03221 0.0062 0 0.04122 0.00023 0 0 0 0 0 0.00878 0 0 0.00354 0 0.02769 0 0.07448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Shuttleworthia|s__Shuttleworthia_satelles 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00188 0.03221 0.0062 0 0.04122 0.00023 0 0 0 0 0 0.00878 0 0 0.00354 0 0.02769 0 0.07448 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Shuttleworthia|s__Shuttleworthia_satelles|t__GCF_000160115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00188 0.03221 0.0062 0 0.04122 0.00023 0 0 0 0 0 0.00878 0 0 0.00354 0 0.02769 0 0.07448 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Stomatobaculum 0 0 0 0 0.41256 0 0 0 0.00846 0.0094 0 0.00791 0 0.25585 0.03571 0.00498 0.01214 0 0 0.01153 0.17753 0 0.00194 0 0.04426 0.02883 0 0.02748 0 0.02085 0 0.02133 0.03031 0 0 0 0 0.15372 0 0 0 0.01014 0.30392 0 0.01441 0 0 0 0.16048 0.00394 0.00371 0 0.02475 0.01097 0.40932 0.00203 0 0 0 0 0.0007 0.44313 0 0.06125 0 0.08715 0 0 0.07016 0.15807 0.01409 0.04914 0 0.28033 0.02176 0 0 0 0.07205 0 0.0131 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Stomatobaculum|s__Stomatobaculum_longum 0 0 0 0 0.41256 0 0 0 0.00846 0.0094 0 0.00791 0 0.25585 0.03571 0.00498 0.01214 0 0 0.01153 0.17753 0 0.00194 0 0.04426 0.02883 0 0.02748 0 0.02085 0 0.02133 0.03031 0 0 0 0 0.15372 0 0 0 0.01014 0.30392 0 0.01441 0 0 0 0.16048 0.00394 0.00371 0 0.02475 0.01097 0.40932 0.00203 0 0 0 0 0.0007 0.44313 0 0.06125 0 0.08715 0 0 0.07016 0.15807 0.01409 0.04914 0 0.28033 0.021 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Stomatobaculum|s__Stomatobaculum_longum|t__GCF_000242235 0 0 0 0 0.41256 0 0 0 0.00846 0.0094 0 0.00791 0 0.25585 0.03571 0.00498 0.01214 0 0 0.01153 0.17753 0 0.00194 0 0.04426 0.02883 0 0.02748 0 0.02085 0 0.02133 0.03031 0 0 0 0 0.15372 0 0 0 0.01014 0.30392 0 0.01441 0 0 0 0.16048 0.00394 0.00371 0 0.02475 0.01097 0.40932 0.00203 0 0 0 0 0.0007 0.44313 0 0.06125 0 0.08715 0 0 0.07016 0.15807 0.01409 0.0491 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Oscillospiraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Oscillospiraceae|g__Oscillibacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Oscillospiraceae|g__Oscillibacter|s__Oscillibacter_sp_KLE_1728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Oscillospiraceae|g__Oscillibacter|s__Oscillibacter_sp_KLE_1728|t__GCF_000469425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Oscillospiraceae|g__Oscillibacter|s__Oscillibacter_sp_KLE_1745 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Oscillospiraceae|g__Oscillibacter|s__Oscillibacter_sp_KLE_1745|t__GCF_000469445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Oscillospiraceae|g__Oscillibacter|s__Oscillibacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae 0 0 0 0 0.19603 0 0 0 0.02987 0 0 0 0 0.19141 0.12633 0.0378 0 0 0 0 0.11037 0.03201 0 0 0.0071 0 0 0.06995 0.00383 0.0449 0 0 0 0 0 0 0.00959 0 0 0 0.01141 0.00725 0.03264 0 0.04633 0.04278 0.01089 0.1265 0.1598 0.01044 0.00452 0.01524 0.04348 0.03643 0.46421 0.01258 0 0.04687 0.00108 0 0 0 0.00388 0 0.05082 0.04699 0 0.06236 0 0.02706 0.16293 0.00743 0 0.5055 0.32529 0.01265 0.02193 0 0.20341 0 0.32112 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Filifactor 0 0 0 0 0.16646 0 0 0 0 0 0 0 0 0.04279 0.08662 0 0 0 0 0 0.06107 0 0 0 0 0 0 0.01301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00576 0 0 0 0 0.04387 0 0 0 0 0 0 0.36852 0.00719 0 0 0 0 0 0 0 0 0 0 0 0.06236 0 0 0 0 0 0.15557 0 0 0 0 0.06542 0 0.18621 0 0 0 0 0 0.00329 0 0 0.03151 0 0 0 0 0 0 0.09356 0 0 0.00433 0 0 0 0.18971 0 0 0 0 0 0 0 0 0 0.01229 0.45051 2.53546 0.22822 0.00395 0 0 0.17439 0 0 0 0.27 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Filifactor|s__Filifactor_alocis 0 0 0 0 0.16646 0 0 0 0 0 0 0 0 0.04279 0.08662 0 0 0 0 0 0.06107 0 0 0 0 0 0 0.01301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00576 0 0 0 0 0.04387 0 0 0 0 0 0 0.36852 0.00719 0 0 0 0 0 0 0 0 0 0 0 0.06236 0 0 0 0 0 0.15557 0 0 0 0 0.06542 0 0.18621 0 0 0 0 0 0.00329 0 0 0.03151 0 0 0 0 0 0 0.09356 0 0 0.00433 0 0 0 0.18971 0 0 0 0 0 0 0 0 0 0.01229 0.45051 2.53546 0.22822 0.00395 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Filifactor|s__Filifactor_alocis|t__GCF_000163895 0 0 0 0 0.16646 0 0 0 0 0 0 0 0 0.04279 0.08662 0 0 0 0 0 0.06107 0 0 0 0 0 0 0.01301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00576 0 0 0 0 0.04387 0 0 0 0 0 0 0.36852 0.00719 0 0 0 0 0 0 0 0 0 0 0 0.06236 0 0 0 0 0 0.15557 0 0 0 0 0.06542 0 0.18621 0 0 0 0 0 0.00329 0 0 0.03151 0 0 0 0 0 0 0.09356 0 0 0.00433 0 0 0 0.18971 0 0 0 0 0 0 0 0 0 0.01229 0.45051 2.53546 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00415 0 0 0 0 0 0 0 0 0 0 0.0071 0 0 0 0 0.01141 0 0 0 0 0 0 0 0 0 0 0 0.00182 0 0 0.00211 0.02243 0 0 0 0.00148 0 0 0 0.00104 0 0 0 0 0.00108 0 0 0 0 0 0 0 0 0 0 0 0.04762 0 0 0 0 0 0 0 0 0 0.0227 0 0 0 0 0 0 0 0 0.02555 0 0 0 0 0 0 0 0.03959 0 0.00523 0.00373 0 0 0.01006 0 0 0.00091 0 0 0 0 0.05311 0 0 0 0 0 0.01136 0 0.18501 0.01564 0.15212 0.40 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname|s__Clostridium_bartlettii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname|s__Clostridium_bartlettii|t__GCF_000154445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname|s__Clostridium_difficile 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname|s__Clostridium_difficile|t__Clostridium_difficile_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname|s__Clostridium_hiranonis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname|s__Clostridium_hiranonis|t__GCF_000156055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname|s__Eubacterium_yurii 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00415 0 0 0 0 0 0 0 0 0 0 0.0071 0 0 0 0 0.01141 0 0 0 0 0 0 0 0 0 0 0 0.00182 0 0 0.00211 0.02243 0 0 0 0.00148 0 0 0 0.00104 0 0 0 0 0.00108 0 0 0 0 0 0 0 0 0 0 0 0.04762 0 0 0 0 0 0 0 0 0 0.0227 0 0 0 0 0 0 0 0 0.02555 0 0 0 0 0 0 0 0.03959 0 0.00523 0.00373 0 0 0.01006 0 0 0.00091 0 0 0 0 0 0 0 0 0 0 0.01136 0 0.18501 0.015 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname|s__Eubacterium_yurii|t__GCF_000146855 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00415 0 0 0 0 0 0 0 0 0 0 0.0071 0 0 0 0 0.01141 0 0 0 0 0 0 0 0 0 0 0 0.00182 0 0 0.00211 0.02243 0 0 0 0.00148 0 0 0 0.00104 0 0 0 0 0.00108 0 0 0 0 0 0 0 0 0 0 0 0.04762 0 0 0 0 0 0 0 0 0 0.0227 0 0 0 0 0 0 0 0 0.02555 0 0 0 0 0 0 0 0.03959 0 0.00523 0.00373 0 0 0.01006 0 0 0.00091 0 0 0 0 0 0 0 0 0 0 0.0113 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcaceae_noname|s__Peptostreptococcaceae_noname_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus 0 0 0 0 0.02957 0 0 0 0.02987 0 0 0 0 0.14447 0.03971 0.0378 0 0 0 0 0.0493 0.03201 0 0 0 0 0 0.05694 0.00383 0.03349 0 0 0 0 0 0 0.00959 0 0 0 0.01141 0.00543 0.02688 0 0.04422 0.02036 0.01089 0.08263 0.1598 0.00896 0.00452 0.01524 0.04348 0.03539 0.09569 0.00539 0 0.04687 0 0 0 0 0.00388 0 0.05082 0.04699 0 0 0 0.02706 0.11531 0.00743 0 0.34993 0.32529 0.01265 0.02193 0 0.13798 0 0.1 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus|s__Peptostreptococcus_anaerobius 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus|s__Peptostreptococcus_anaerobius|t__Peptostreptococcus_anaerobius_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus|s__Peptostreptococcus_stomatis 0 0 0 0 0.01842 0 0 0 0.00853 0 0 0 0 0.08107 0.03971 0.00424 0 0 0 0 0.04021 0 0 0 0 0 0 0.01652 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00543 0.02688 0 0.00741 0 0 0 0.06032 0.00336 0 0 0.01137 0.0024 0.00428 0.00467 0 0 0 0 0 0 0 0 0 0.00828 0 0 0 0 0.04387 0 0 0.34993 0.08221 0.00153 0.00203 0 0.05516 0 0.0774 0 0.07163 0 0 0 0.01113 0 0 0.0598 0 0 0 0 0.00015 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus|s__Peptostreptococcus_stomatis|t__GCF_000147675 0 0 0 0 0.01842 0 0 0 0.00853 0 0 0 0 0.08107 0.03971 0.00424 0 0 0 0 0.04021 0 0 0 0 0 0 0.01652 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00543 0.02688 0 0.00741 0 0 0 0.06032 0.00336 0 0 0.01137 0.0024 0.00428 0.00467 0 0 0 0 0 0 0 0 0 0.00828 0 0 0 0 0.04387 0 0 0.34993 0.08221 0.00153 0.00203 0 0.05516 0 0.0774 0 0.07163 0 0 0 0.01113 0 0 0.0598 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus|s__Peptostreptococcus_unclassified 0 0 0 0 0.01115 0 0 0 0.02134 0 0 0 0 0.0634 0 0.03356 0 0 0 0 0.00909 0.03201 0 0 0 0 0 0.04042 0.00383 0.03349 0 0 0 0 0 0 0.00959 0 0 0 0.01141 0 0 0 0.0368 0.02036 0.01089 0.08263 0.09948 0.0056 0.00452 0.01524 0.0321 0.03299 0.09142 0.00072 0 0.04687 0 0 0 0 0.00388 0 0.05082 0.03871 0 0 0 0.02706 0.07144 0.00743 0 0 0.24308 0.01113 0.0199 0 0.08 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae 0.04778 0.01114 0 0.00977 0 0 0.08702 0.2409 0.00615 0 0 0 0 0.0253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.85499 0 0 0 0 0.00847 0 0 0 0 0.01278 0.01491 0 0.00693 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01306 0 0.05312 0 0 0.00464 0 0 0 0 0 0 0 3.79978 0.02457 0.0286 0 0 0 0 0 0 0 0 0 0 0 0 0.15148 0 0.00195 0 0 0.01121 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01319 0 0.00161 0 0 0 0 0.01547 0.03346 0 0 0 0.04973 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Anaerotruncus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Anaerotruncus|s__Anaerotruncus_colihominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Anaerotruncus|s__Anaerotruncus_colihominis|t__GCF_000154565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Anaerotruncus|s__Anaerotruncus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00782 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0394 0 0 0 0 0.00847 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_prausnitzii 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00782 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0394 0 0 0 0 0.00847 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_prausnitzii|t__Faecalibacterium_prausnitzii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00782 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0394 0 0 0 0 0.00847 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_prausnitzii|t__GCF_000162015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_prausnitzii|t__GCF_000166035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_prausnitzii|t__GCF_000210735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcaceae_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcaceae_noname|s__Ruminococcaceae_bacterium_D16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcaceae_noname|s__Ruminococcaceae_bacterium_D16|t__GCF_000177015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus 0 0 0 0 0 0 0 0 0.00615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.46044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.24688 0.00335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7e-05 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_albus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_albus|t__Ruminococcus_albus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_bromii 0 0 0 0 0 0 0 0 0.00615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.46044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.17849 0.00335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00355 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_bromii|t__GCF_000209875 0 0 0 0 0 0 0 0 0.00615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.46044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.17849 0.00335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_callidus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_callidus|t__GCF_000468015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_champanellensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_champanellensis|t__GCF_000210095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_flavefaciens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_flavefaciens|t__Ruminococcus_flavefaciens_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_lactaris 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_lactaris|t__Ruminococcus_lactaris_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_sp_5_1_39BFAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_sp_5_1_39BFAA|t__GCF_000159975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Subdoligranulum 0.04778 0.01114 0 0.00977 0 0 0.08702 0.2409 0 0 0 0 0 0.01748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35516 0 0 0 0 0 0 0 0 0 0.01278 0.01491 0 0.00693 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01306 0 0.05312 0 0 0.00464 0 0 0 0 0 0 0 2.99613 0.02122 0.0286 0 0 0 0 0 0 0 0 0 0 0 0 0.15148 0 0.00195 0 0 0.01121 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01319 0 0.00161 0 0 0 0 0 0.0264 0 0 0 0.04973 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Subdoligranulum|s__Subdoligranulum_sp_4_3_54A2FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Subdoligranulum|s__Subdoligranulum_sp_4_3_54A2FAA|t__GCF_000238635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Subdoligranulum|s__Subdoligranulum_unclassified 0.04778 0.01114 0 0.00977 0 0 0.08702 0.2409 0 0 0 0 0 0.01748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35516 0 0 0 0 0 0 0 0 0 0.01278 0.01491 0 0.00693 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01306 0 0.05312 0 0 0.00464 0 0 0 0 0 0 0 2.99613 0.02122 0.0286 0 0 0 0 0 0 0 0 0 0 0 0 0.15148 0 0.00195 0 0 0.01121 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01319 0 0.00161 0 0 0 0 0 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Subdoligranulum|s__Subdoligranulum_variabile 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Subdoligranulum|s__Subdoligranulum_variabile|t__GCF_000157955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia 0.002 0 0 0 0.05913 0 0 0.03858 0.02332 0 0 0 0.00114 0.38286 0.03545 0.03734 0 0 0 0 0.14611 0 0 0 0.01841 0 0 0.02908 0.03964 0.00271 0 0 0 0 0 0 0 0.05007 0 0 0.02529 0.00578 0.10761 0 0.03415 0.00171 0 0.03449 0.35997 0.0059 0.00169 0.01326 0.05017 0.02055 0.09172 0.0003 0 0 0 0 0.00538 0.31766 0 0 0.08842 0.0964 0 0 0 0.05588 0.08184 0.01791 0 0.27861 0.27031 0 0.00073 0 0.41036 0 0.05958 0 0.01353 0.00774 0 0.01518 0.03995 0 0.04783 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales 0.002 0 0 0 0.05913 0 0 0.03858 0.02332 0 0 0 0.00114 0.38286 0.03545 0.03734 0 0 0 0 0.14611 0 0 0 0.01841 0 0 0.02908 0.03964 0.00271 0 0 0 0 0 0 0 0.05007 0 0 0.02529 0.00578 0.10761 0 0.03415 0.00171 0 0.03449 0.35997 0.0059 0.00169 0.01326 0.05017 0.02055 0.09172 0.0003 0 0 0 0 0.00538 0.31766 0 0 0.08842 0.0964 0 0 0 0.05588 0.08184 0.01791 0 0.27861 0.27031 0 0.00073 0 0.41036 0 0.05958 0 0.01353 0.00774 0 0.01518 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae 0.002 0 0 0 0.05913 0 0 0.03858 0.02332 0 0 0 0.00114 0.38286 0.03545 0.03734 0 0 0 0 0.14611 0 0 0 0.01841 0 0 0.02908 0.03964 0.00271 0 0 0 0 0 0 0 0.05007 0 0 0.02529 0.00578 0.10761 0 0.03415 0.00171 0 0.03449 0.35997 0.0059 0.00169 0.01326 0.05017 0.02055 0.09172 0.0003 0 0 0 0 0.00538 0.31766 0 0 0.08842 0.0964 0 0 0 0.05588 0.08184 0.01791 0 0.27861 0.27031 0 0.00073 0 0.41036 0 0.05958 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Bulleidia 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02132 0 0 0 0 0 0 0.01547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00674 0.27751 5.01981 0.03052 0.00963 0.1662 0.1373 0.06718 0.07817 0.00378 0 0.00872 1.31831 0.19556 0.01516 0.00206 0 0 0 0 0 0 0 0 0.07927 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Bulleidia|s__Bulleidia_extructa 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02132 0 0 0 0 0 0 0.01547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00674 0.27751 5.01981 0.03052 0.00963 0.1662 0.1373 0.06718 0.07817 0.00378 0 0.00872 1.31831 0.19556 0.01516 0.00206 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Bulleidia|s__Bulleidia_extructa|t__GCF_000177375 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02132 0 0 0 0 0 0 0.01547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00674 0.27751 5.01981 0.03052 0.00963 0.1662 0.1373 0.06718 0.07817 0.00378 0 0.00872 1.31831 0.19556 0. [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Catenibacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Catenibacterium|s__Catenibacterium_mitsuokai 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Catenibacterium|s__Catenibacterium_mitsuokai|t__GCF_000173795 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Coprobacillus|s__Coprobacillus_sp_29_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Coprobacillus|s__Coprobacillus_sp_29_1|t__GCF_000186525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Coprobacillus|s__Coprobacillus_sp_D6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Coprobacillus|s__Coprobacillus_sp_D6|t__GCF_000269565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Coprobacillus|s__Coprobacillus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Eggerthia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05278 0.00929 0 0 0 0 0 0 0 0 0 0 0 0 0.03132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Eggerthia|s__Eggerthia_catenaformis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05278 0.00929 0 0 0 0 0 0 0 0 0 0 0 0 0.03132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Eggerthia|s__Eggerthia_catenaformis|t__GCF_000340375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05278 0.00929 0 0 0 0 0 0 0 0 0 0 0 0 0.03132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Clostridium_innocuum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Clostridium_innocuum|t__GCF_000371425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Clostridium_ramosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Clostridium_ramosum|t__GCF_000154485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Clostridium_spiroforme 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Clostridium_spiroforme|t__GCF_000154805 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Erysipelotrichaceae_bacterium_21_3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Erysipelotrichaceae_bacterium_21_3|t__GCF_000242195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Erysipelotrichaceae_bacterium_2_2_44A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Erysipelotrichaceae_bacterium_2_2_44A|t__GCF_000225685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Erysipelotrichaceae_bacterium_3_1_53 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Erysipelotrichaceae_bacterium_3_1_53|t__GCF_000165065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Erysipelotrichaceae_bacterium_5_2_54FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Erysipelotrichaceae_bacterium_5_2_54FAA|t__GCF_000163515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Erysipelotrichaceae_bacterium_6_1_45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Erysipelotrichaceae_bacterium_6_1_45|t__GCF_000242175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Eubacterium_biforme 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Eubacterium_biforme|t__GCF_000156655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Eubacterium_cylindroides 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Eubacterium_cylindroides|t__GCF_000469305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Eubacterium_dolichum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Erysipelotrichaceae_noname|s__Eubacterium_dolichum|t__GCF_000154285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania|s__Holdemania_filiformis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania|s__Holdemania_filiformis|t__GCF_000157995 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania|s__Holdemania_sp_AP2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania|s__Holdemania_sp_AP2|t__GCF_000327285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania|s__Holdemania_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Solobacterium 0.002 0 0 0 0.05913 0 0 0.03858 0.02332 0 0 0 0.00114 0.36154 0.03545 0.03734 0 0 0 0 0.10994 0 0 0 0.01841 0 0 0.02908 0.03964 0.00271 0 0 0 0 0 0 0 0.05007 0 0 0.02529 0.00578 0.10761 0 0.03415 0.00171 0 0.01608 0.35997 0.0059 0.00169 0.01326 0.05017 0.02055 0.09172 0.0003 0 0 0 0 0.00538 0.31766 0 0 0.08842 0.0964 0 0 0 0.05588 0.08184 0.01791 0 0.27861 0.27031 0 0.00073 0 0.410 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Solobacterium|s__Solobacterium_moorei 0.002 0 0 0 0.05913 0 0 0.03858 0.02332 0 0 0 0.00114 0.36154 0.03545 0.03734 0 0 0 0 0.10994 0 0 0 0.01841 0 0 0.02908 0.03964 0.00271 0 0 0 0 0 0 0 0.05007 0 0 0.02529 0.00578 0.10761 0 0.03415 0.00171 0 0.01608 0.35997 0.0059 0.00169 0.01326 0.05017 0.02055 0.09172 0.0003 0 0 0 0 0.00538 0.31766 0 0 0.08842 0.0964 0 0 0 0.05588 0.08184 0.01791 0 0.27861 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Solobacterium|s__Solobacterium_moorei|t__GCF_000186945 0.002 0 0 0 0.05913 0 0 0.03858 0.02332 0 0 0 0.00114 0.36154 0.03545 0.03734 0 0 0 0 0.10994 0 0 0 0.01841 0 0 0.02908 0.03964 0.00271 0 0 0 0 0 0 0 0.05007 0 0 0.02529 0.00578 0.10761 0 0.03415 0.00171 0 0.01608 0.35997 0.0059 0.00169 0.01326 0.05017 0.02055 0.09172 0.0003 0 0 0 0 0.00538 0.31766 0 0 0.08842 0.0964 0 0 0 0.05588 0.08184 0. [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Turicibacter|s__Turicibacter_sanguinis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Turicibacter|s__Turicibacter_sanguinis|t__GCF_000178255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichia|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Turicibacter|s__Turicibacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes 34.98777 7.28884 0.49343 13.7974 15.67421 26.37661 3.92356 4.31947 3.18008 8.41717 4.58602 24.42213 0.77538 10.28217 4.43764 0.52133 2.94881 3.00226 3.26885 3.97453 9.44107 2.8025 6.13285 3.61254 2.35859 11.52635 0.69856 3.58625 0.81634 4.34553 0.16815 9.42139 7.83873 20.23868 1.63389 8.58779 3.42266 8.61635 2.3033 2.26549 2.28247 1.17301 8.47039 13.47801 1.11469 3.95841 4.54715 8.25048 7.20753 3.26439 4.05495 4.78848 7.00933 5.79415 27.26112 6. [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales 34.98777 7.28884 0.49343 13.7974 15.67421 26.37661 3.92356 4.31947 3.18008 8.41717 4.58602 24.42213 0.77538 10.28217 4.43764 0.52133 2.94881 3.00226 3.26885 3.97453 9.44107 2.8025 6.13285 3.61254 2.35859 11.52635 0.69856 3.58625 0.81634 4.34553 0.16815 9.42139 7.83873 20.23868 1.63389 8.58779 3.42266 8.61635 2.3033 2.26549 2.28247 1.17301 8.47039 13.47801 1.11469 3.95841 4.54715 8.25048 7.20753 3.26439 4.05495 4.78848 7.00933 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcaceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcus|s__Acidaminococcus_intestini 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcus|s__Acidaminococcus_intestini|t__GCF_000230275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcus|s__Acidaminococcus_sp_D21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcus|s__Acidaminococcus_sp_D21|t__GCF_000174215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcus|s__Acidaminococcus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Phascolarctobacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Phascolarctobacterium|s__Phascolarctobacterium_succinatutens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Phascolarctobacterium|s__Phascolarctobacterium_succinatutens|t__GCF_000188175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae 34.98777 7.28884 0.49343 13.7974 15.67421 26.37661 3.92356 4.31947 3.18008 8.41717 4.58602 24.42213 0.77538 10.28217 4.43764 0.52133 2.94881 3.00226 3.26885 3.97453 9.44107 2.8025 6.13285 3.61254 2.35859 11.52635 0.69856 3.58625 0.81634 4.34553 0.16815 9.42139 7.83873 20.23868 1.63389 8.58779 3.42266 8.61635 2.3033 2.26549 2.28247 1.17301 8.47039 13.47801 1.11469 3.95841 4.54715 8.25048 7.20753 3.26439 4.054 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Anaeroglobus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02058 0.02784 0 0 0 0 0.01779 1.40845 0 0 0.55331 0.15078 0.06404 0 0 0.00567 0 0.12984 0 0 0.01567 0 0 0 0.1077 0 0 0 0 0 0 0 0 0.01235 0 0 0 0 0.13492 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Anaeroglobus|s__Anaeroglobus_geminatus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02058 0.02784 0 0 0 0 0.01779 1.40845 0 0 0.55331 0.15078 0.06404 0 0 0.00567 0 0.12984 0 0 0.01567 0 0 0 0.1077 0 0 0 0 0 0 0 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Anaeroglobus|s__Anaeroglobus_geminatus|t__GCF_000239275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02058 0.02784 0 0 0 0 0.01779 1.40845 0 0 0.55331 0.15078 0.06404 0 0 0.00567 0 0.12984 0 0 0.01567 0 0 0 0.1077 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Centipeda 0.00209 0.00135 0 0.01741 0 0.00049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00898 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07626 0 0 0 0 0 0 0 0.019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00715 0.00083 0.34289 0.25091 0.02305 0.03813 0.02999 0.07565 0.08227 0 0.01959 0.02669 0.011 0.00945 0.01303 0.2412 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Centipeda|s__Centipeda_periodontii 0.00209 0.00135 0 0.01741 0 0.00049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00898 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07626 0 0 0 0 0 0 0 0.019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00715 0.00083 0.34289 0.25091 0.02305 0.03813 0.02999 0.07565 0.08227 0 0.01959 0.02669 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Centipeda|s__Centipeda_periodontii|t__GCF_000213975 0.00209 0.00135 0 0.01741 0 0.00049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00898 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07626 0 0 0 0 0 0 0 0.019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00715 0.00083 0.34289 0.25091 0.02305 0.03813 0.02999 0.07565 0.08227 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister 0 0 0 0 0.00395 0 0 0 0 0.00218 0 0 0 0.10782 0.05677 0 0 0 0 0 0.03186 0 0 0 0 0 0 0.01602 0 0.01856 0 0 0 0 0 0 0.00858 0.04091 0.00508 0.00268 0 0.01442 0.0015 0 0.01343 0 0 0.00732 0.17071 0.00738 0.13226 0.0053 0 0 0.00857 0.00372 0 0 0 0 0 0 0.01859 0 0 0 0 0 0.0063 0.01459 0.06071 0.00461 0 1.19914 0.23528 0 0.05671 0.38446 0 0 0.11403 0 0.02727 0.23132 0 0 0.074 0 0 0.1047 0 0 0 0 0 0.09 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister|s__Dialister_invisus 0 0 0 0 0.00395 0 0 0 0 0.00218 0 0 0 0.10782 0.05677 0 0 0 0 0 0.03186 0 0 0 0 0 0 0.01602 0 0.01856 0 0 0 0 0 0 0.00858 0.04091 0.00508 0.00268 0 0.01442 0.0015 0 0.01343 0 0 0.00732 0.17071 0.00738 0.13226 0.0053 0 0 0.00857 0 0 0 0 0 0 0 0.01859 0 0 0 0 0 0.0063 0.01459 0.06071 0.00461 0 1.19914 0.23528 0 0.05671 0.38446 0 0 0.11403 0 0.02727 0.23132 0 0 0.074 0 0 0.1047 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister|s__Dialister_invisus|t__GCF_000160055 0 0 0 0 0.00395 0 0 0 0 0.00218 0 0 0 0.10782 0.05677 0 0 0 0 0 0.03186 0 0 0 0 0 0 0.01602 0 0.01856 0 0 0 0 0 0 0.00858 0.04091 0.00508 0.00268 0 0.01442 0.0015 0 0.01343 0 0 0.00732 0.17071 0.00738 0.13226 0.0053 0 0 0.00857 0 0 0 0 0 0 0 0.01859 0 0 0 0 0 0.0063 0.01459 0.06071 0.00461 0 1.19914 0.23528 0 0.05671 0.38446 0 0 0.11403 0 0.02727 0.23132 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister|s__Dialister_micraerophilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0023 0 0 0 0 0 0 0 0 0 0 0 0 0.0322 0 0 0 0.01304 0 0 0 0 0 0.00162 0 0 0 0 0 0.00435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister|s__Dialister_micraerophilus|t__Dialister_micraerophilus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0023 0 0 0 0 0 0 0 0 0 0 0 0 0.0322 0 0 0 0.01304 0 0 0 0 0 0.00162 0 0 0 0 0 0.00435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister|s__Dialister_succinatiphilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister|s__Dialister_succinatiphilus|t__GCF_000242435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_funiformis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_funiformis|t__GCF_000245775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_hypermegale 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_hypermegale|t__GCF_000209975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_rupellensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_rupellensis|t__GCF_000378365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera 0.00886 0 0 0 0.0481 0 0 0 0.02268 0 0 0.03348 0.00135 0.55157 0 0 0 0 0 0.01408 0.14788 0 0 0 0.01124 0 0 0.01534 0.0066 0 0 0.00709 0.01296 0 0 0 0 0.22544 0 0 0 0 0.30945 0 0 0 0 0.02328 0.64951 0 0.02669 0.00042 0.13601 0.00784 0.21744 0 0 0 0 0 0.00292 0.47191 0.09223 0.10978 0.02476 0.07229 0 0.03201 0 0.13168 0 0.06273 0 0.23688 0.24162 0 0 0 0.56232 0 0.00226 0 0 0 0 0.01333 0.30768 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_elsdenii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_elsdenii|t__GCF_000283495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_genomosp_type_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_genomosp_type_1|t__GCF_000177555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_micronuciformis 0 0 0 0 0.0481 0 0 0 0.02268 0 0 0.03348 0.00135 0.55157 0 0 0 0 0 0.01408 0.14788 0 0 0 0.01124 0 0 0.01534 0.0066 0 0 0.00709 0.01296 0 0 0 0 0.22544 0 0 0 0 0.30945 0 0 0 0 0.02328 0.64951 0 0.02669 0.00042 0.13601 0.00784 0.21744 0 0 0 0 0 0.00292 0.47191 0.09223 0.10978 0.02476 0.07229 0 0.03201 0 0.13168 0 0.06273 0 0.23688 0.24162 0 0 0 0.56232 0 0.00226 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_micronuciformis|t__GCF_000165735 0 0 0 0 0.0481 0 0 0 0.02268 0 0 0.03348 0.00135 0.55157 0 0 0 0 0 0.01408 0.14788 0 0 0 0.01124 0 0 0.01534 0.0066 0 0 0.00709 0.01296 0 0 0 0 0.22544 0 0 0 0 0.30945 0 0 0 0 0.02328 0.64951 0 0.02669 0.00042 0.13601 0.00784 0.21744 0 0 0 0 0 0.00292 0.47191 0.09223 0.10978 0.02476 0.07229 0 0.03201 0 0.13168 0 0.06273 0 0.23688 0.24162 0 0 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_unclassified 0.00886 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09258 0 0 0 0.01348 0 0 0 0 0 0.0235 0 0 0 0 0 0.01321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Mitsuokella 0.37682 0.01965 0 0.0268 0 0.04249 0 0 0 0 0 0 0 0.05395 0 0 0 0 0 0 0 0 0 0 0.01702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00651 0 0 0 0 0 0 0.01533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02183 0 0 0 0 0 0 0 0.02597 0 0 0 0 0 0.15583 0 0 0 0 0 0 0 0 0 0 0.01592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09305 0 0.05081 0.02558 0 0 0 0.01656 0.0203 0 0.0014 0.01224 0.00425 0.00711 0.001 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Mitsuokella|s__Mitsuokella_multacida 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Mitsuokella|s__Mitsuokella_multacida|t__GCF_000155955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Mitsuokella|s__Mitsuokella_unclassified 0.37682 0.01965 0 0.0268 0 0.04249 0 0 0 0 0 0 0 0.05395 0 0 0 0 0 0 0 0 0 0 0.01702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00651 0 0 0 0 0 0 0.01533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02183 0 0 0 0 0 0 0 0.02597 0 0 0 0 0 0.15583 0 0 0 0 0 0 0 0 0 0 0.01592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09305 0 0.05081 0.02558 0 0 0 0.01656 0.0203 0 0.0014 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas 0.579 0.04373 0 0.23015 0.00636 0.16629 0 0 0 0 0 0.03192 0 0.16682 0.01587 0 0 0 0 0 0 0 0 0 0.21203 0 0 0 0 0.126 0 0 0 0.13789 0 0 0.09206 0 0 0 0 0 0.0884 0 0.00622 0.0103 0 0.18028 0.05059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03374 0 0 0.02029 0.00336 0.08635 0 0 1.12152 0.22802 0 0.05725 0 0.10168 0 0.00132 0 0 0.28881 0 0 0.0178 0.00305 0.01793 0.04251 0 0 0.15761 0 0 0.4129 0 0.02477 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_artemidis 0 0 0 0.00108 0 0 0 0 0 0 0 0.01929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08569 0 0.01888 0.0672 0.00921 0 0.02425 0.1666 0.01154 0.03836 0.08099 0.03026 1.1546 0.03527 0.52528 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_artemidis|t__GCF_000187125 0 0 0 0.00108 0 0 0 0 0 0 0 0.01929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08569 0 0.01888 0.0672 0.00921 0 0.02425 0.1666 0.01154 0.03836 0.08099 0.03026 1.1546 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_flueggei 0 0 0 0 0 0 0 0 0 0 0 0.00074 0 0.03879 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04965 0 0 0 0 0 0.02022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00291 0 0 0 0 0 0 0 0 0.04562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0077 0 0 0 0 0 0 0 0 0 0 0 0 0.05183 0.00063 0 0 0.21258 0 0.01721 0 0 0.00956 0.03195 0.0179 0.00295 0 0 0.00227 0.00212 0 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_flueggei|t__GCF_000160695 0 0 0 0 0 0 0 0 0 0 0 0.00074 0 0.03879 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04965 0 0 0 0 0 0.02022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00291 0 0 0 0 0 0 0 0 0.04562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0077 0 0 0 0 0 0 0 0 0 0 0 0 0.05183 0.00063 0 0 0.21258 0 0.01721 0 0 0.00956 0.03195 0.0179 0.00295 0 0 0.002 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_infelix 0.55318 0.02157 0 0.08351 0 0.15597 0 0 0 0 0 0 0 0.0088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00789 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04881 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02322 0 0 0 0 0 0 0.0016 0.01937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03277 0 0.1365 0.00477 0.12066 0.0429 0.07525 0.0596 0.04664 0.00249 0.03 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_infelix|t__GCF_000234095 0.55318 0.02157 0 0.08351 0 0.15597 0 0 0 0 0 0 0 0.0088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00789 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04881 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02322 0 0 0 0 0 0 0.0016 0.01937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03277 0 0.1365 0.00477 0.12066 0.0429 0.07525 0.0596 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_noxia 0.00096 0.01914 0 0.04197 0.00636 0 0 0 0 0 0 0.01189 0 0.06924 0.01234 0 0 0 0 0 0 0 0 0 0.21203 0 0 0 0 0.126 0 0 0 0.13789 0 0 0.09206 0 0 0 0 0 0.03239 0 0.00622 0.0103 0 0.1391 0.02434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02029 0.00045 0.08635 0 0 1.07271 0.22802 0 0.05725 0 0.00103 0 0 0 0 0.28881 0 0 0.01194 0.00305 0.01793 0.04251 0 0 0.15761 0 0 0.38968 0 0.024 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_noxia|t__GCF_000160555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.80655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_noxia|t__Selenomonas_noxia_unclassified 0.00096 0.01914 0 0.04197 0.00636 0 0 0 0 0 0 0.01189 0 0.06924 0.01234 0 0 0 0 0 0 0 0 0 0.21203 0 0 0 0 0.126 0 0 0 0.13789 0 0 0.09206 0 0 0 0 0 0.03239 0 0.00622 0.0103 0 0.1391 0.02434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02029 0.00045 0.08635 0 0 1.07271 0.22802 0 0.05725 0 0.00103 0 0 0 0 0.28881 0 0 0.01194 0.00305 0.01793 0.042 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_CM52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.46634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.38242 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_CM52|t__GCF_000292955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.46634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_F0473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.23555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.22555 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_F0473|t__GCF_000315545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.23555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_FOBRC6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.64609 0 0 0 0 0 0.16213 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_FOBRC6|t__GCF_000286455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.64609 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_FOBRC9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_FOBRC9|t__GCF_000287655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_oral_taxon_137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06242 0 0 0.28528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13716 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_oral_taxon_137|t__GCF_000183625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06242 0 0 0.28528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_oral_taxon_149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.40807 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_oral_taxon_149|t__GCF_000146365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.40807 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_oral_taxon_892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.20976 0 0 0 0.27214 0.13727 0.70777 0.1171 0 0.23961 0 0 0 0 0 0 0 0 0.11781 0 0 0 0 0.25079 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sp_oral_taxon_892|t__GCF_000468035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.20976 0 0 0 0.27214 0.13727 0.70777 0.1171 0 0.23961 0 0 0 0 0 0 0 0 0.11781 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sputigena 0.02486 0.00303 0 0.10358 0 0.01031 0 0 0 0 0 0 0 0.04999 0.00354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00637 0 0 0 0 0 0.00603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03374 0 0 0 0 0 0 0 0 0 0 0 0 0.05504 0 0.00132 0 0 0 0 0 0.00586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02234 0 0 0 0 0 0 0 0 0 0 0 0 0.01501 0 0 0 0.12508 0 0.15136 0.30616 0.04988 0.02435 0.096 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sputigena|t__Selenomonas_sputigena_unclassified 0.02486 0.00303 0 0.10358 0 0.01031 0 0 0 0 0 0 0 0.04999 0.00354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00637 0 0 0 0 0 0.00603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03374 0 0 0 0 0 0 0 0 0 0 0 0 0.05504 0 0.00132 0 0 0 0 0 0.00586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02234 0 0 0 0 0 0 0 0 0 0 0 0 0.01501 0 0 0 0.12508 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella 34.02101 7.22411 0.49343 13.52303 15.61581 26.16734 3.92356 4.31947 3.1574 8.41499 4.58602 24.35672 0.77403 9.40202 4.36499 0.52133 2.94881 3.00226 3.26885 3.96045 9.26133 2.8025 6.13285 3.61254 2.11829 11.52635 0.69856 3.5549 0.80975 4.20097 0.16815 9.4143 7.82576 20.10079 1.63389 8.58779 3.32203 8.34999 2.29821 2.26281 2.28247 1.15208 8.06206 13.47801 1.09504 3.94812 4.54715 8.0396 6.25621 3 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_atypica 0 0.00366 0.01769 0.01709 0.25633 0 0.60996 1.13986 0.08596 0.01619 0 0.11556 0.05226 2.33675 0.50458 0 0 0 0.11981 0.25768 0.22378 0 0.1655 0.1139 0.09135 0.66245 0.13426 0.07371 0.24363 0.02461 0 0.01964 0.0192 0 0.3731 0 0.47294 1.07034 0.01123 0.02667 0.00642 0.0047 2.04191 0.01261 0.05268 0.12137 0.01554 0.24064 0.48508 0.01264 0.55898 0.12667 0.39791 0.04767 0.6795 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_atypica|t__GCF_000318355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.95589 0 0 0 0.74094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_atypica|t__Veillonella_atypica_unclassified 0 0.00366 0.01769 0.01709 0.25633 0 0.60996 1.13986 0.08596 0.01619 0 0.11556 0.05226 2.33675 0.50458 0 0 0 0.11981 0.25768 0.22378 0 0.1655 0.1139 0.09135 0.66245 0.13426 0.07371 0.24363 0.02461 0 0.01964 0.0192 0 0.3731 0 0.47294 1.07034 0.01123 0.02667 0.00642 0.0047 2.04191 0.01261 0.05268 0.12137 0.01554 0.24064 0.48508 0.01264 0. [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_dispar 0 0.00088 0.12451 0.01065 0.81195 0 0.03524 0.22658 0.19026 0.02063 0 0.15879 0.02259 0.21676 0.14184 0.00692 0 0 0.14518 0.03969 1.21148 0 0.02482 0 0.0238 0.68014 0.01025 0.02155 0.02017 0.03 0 0.06198 0.04645 1.43597 0.03108 0 0.04005 0.22767 0.00674 0.01276 0.0266 0.0093 0.42756 0 0.00148 0.04895 0.04978 0.31143 0.24801 0.01571 0.33548 0.19957 0.07518 0.1071 2.26964 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_dispar|t__GCF_000160015 0 0.00088 0.12451 0.01065 0.81195 0 0.03524 0.22658 0.19026 0.02063 0 0.15879 0.02259 0.21676 0.14184 0.00692 0 0 0.14518 0.03969 1.21148 0 0.02482 0 0.0238 0.68014 0.01025 0.02155 0.02017 0.03 0 0.06198 0.04645 1.43597 0.03108 0 0.04005 0.22767 0.00674 0.01276 0.0266 0.0093 0.42756 0 0.00148 0.04895 0.04978 0.31143 0.24801 0.01571 0.33548 0.19957 0.07518 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_parvula 0.05655 0.00912 0.03655 2.56297 2.29441 0.03342 1.314 0.55272 0.24672 2.0889 3.81448 2.58775 0.35285 1.52812 0.61556 0.23398 1.03784 0.33685 1.2596 0.79602 1.66852 0.66481 3.75201 0.89102 0.35266 1.27158 0.41313 1.19132 0.06179 2.28681 0.09079 4.19866 2.3259 12.11791 0.75413 1.44999 0.88897 0.28039 1.21864 1.28837 0.51952 0.08835 0.76336 0.67032 0.15969 1.02912 2.17878 1 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_parvula|t__GCF_000177435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.84351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.39212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10002 0.41537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_parvula|t__GCF_000215025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_parvula|t__Veillonella_parvula_unclassified 0.05655 0.00912 0.03655 2.56297 2.29441 0.03342 1.314 0.55272 0.24672 2.0889 3.81448 2.58775 0.35285 1.52812 0.61556 0.23398 1.03784 0.33685 1.2596 0.79602 1.66852 0.66481 3.75201 0.89102 0.35266 1.27158 0.41313 1.19132 0.06179 2.28681 0.09079 4.19866 2.3259 12.11791 0.75413 1.44999 0.88897 0.28039 1.21864 1.28837 0.51952 0.08835 0.763 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_ratti 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_ratti|t__GCF_000315505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_3_1_44 0 0 0 1.83349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.72062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5601 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.93122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.188 0 0 0 0 0 0 0 0 0 0 0 0 0.68687 0.40887 0 0 0 3.45842 0 0 0 0 0 0 0 0 0 0 0 0 0 7.65299 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_3_1_44|t__GCF_000163715 0 0 0 1.83349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.72062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5601 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.93122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.188 0 0 0 0 0 0 0 0 0 0 0 0 0.68687 0.40887 0 0 0 3.45842 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_6_1_27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.57075 0 0 0 0 0 0 4.49374 0.2738 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.29672 0 0.76356 0 0 0 0 0 0 0 0 0 0 0 0 9.74291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_6_1_27|t__GCF_000163735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.57075 0 0 0 0 0 0 4.49374 0.2738 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.29672 0 0.76356 0 0 0 0 0 0 0 0 0 0 0 0 9.74291 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_ACP1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_ACP1|t__GCF_000286635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_HPA0037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_HPA0037|t__GCF_000411535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_oral_taxon_158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.67053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.88864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.27568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_oral_taxon_158|t__GCF_000183505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.67053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.88864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.27568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_oral_taxon_780 33.96446 7.21044 0 9.09883 0 26.13391 0 0 0 0 0 21.49463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.67566 0 0 0 0 0 7.1378 0 0 0 0 0 1.04972 0 12.79508 0.3307 1.26573 0 0 0.87896 0 2.66779 0.1943 0 0 0 0.39508 6.26142 0 9.49758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.5194 0 0 0 0 0 0 0 0 3.38712 0.55309 0 0 0 0.83804 0 0 0 0 0 0 0 0.78018 0 1.81741 0 0.77563 0.60983 0.502 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_sp_oral_taxon_780|t__GCF_000221605 33.96446 7.21044 0 9.09883 0 26.13391 0 0 0 0 0 21.49463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.67566 0 0 0 0 0 7.1378 0 0 0 0 0 1.04972 0 12.79508 0.3307 1.26573 0 0 0.87896 0 2.66779 0.1943 0 0 0 0.39508 6.26142 0 9.49758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.5194 0 0 0 0 0 0 0 0 3.38712 0.55309 0 0 0 0.83804 0 0 0 0 0 0 0 0.78018 0 1.81741 0 0.77 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_unclassified 0 0 0.31468 0 12.25312 0 1.96436 2.40031 2.63447 6.28927 0.77155 0 0.34633 5.32039 3.10301 0.28043 1.91097 2.6654 1.74426 2.86705 6.15756 2.13769 2.19051 2.60762 1.65048 8.91219 0.14093 2.26832 0.48415 0.46808 0.07736 2.4134 5.43421 6.54691 0.47558 0 1.92006 6.77159 1.06161 0.93501 1.72992 0 4.82923 0 0.5505 1.48295 2.30305 4.51049 4.16527 3.01634 0 2.3919 3.44241 3 [...]
+k__Bacteria|p__Fusobacteria 1.44098 0.40362 0.02387 1.0756 4.47541 1.38216 4.17401 4.85773 1.09117 3.16684 5.49319 1.65945 0.74353 10.65343 1.92395 0.88414 2.16829 0.03735 3.52542 2.43955 2.7503 2.36773 1.05766 0.39521 3.23503 0.71437 0.14273 3.61199 1.70503 4.74834 0.26982 0.76581 0.49447 1.55266 0.04726 0.31012 26.69498 1.77829 0.77302 0.64848 2.18842 0.76316 4.11072 2.34635 4.19619 3.69201 3.14221 1.97107 2.9556 1.73537 1.02414 1.87956 2.28741 1.48693 5.86246 8.21678 1.78061 0.6281 2. [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia 1.44098 0.40362 0.02387 1.0756 4.47541 1.38216 4.17401 4.85773 1.09117 3.16684 5.49319 1.65945 0.74353 10.65343 1.92395 0.88414 2.16829 0.03735 3.52542 2.43955 2.7503 2.36773 1.05766 0.39521 3.23503 0.71437 0.14273 3.61199 1.70503 4.74834 0.26982 0.76581 0.49447 1.55266 0.04726 0.31012 26.69498 1.77829 0.77302 0.64848 2.18842 0.76316 4.11072 2.34635 4.19619 3.69201 3.14221 1.97107 2.9556 1.73537 1.02414 1.87956 2.28741 1.48693 5.86246 8.21678 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales 1.44098 0.40362 0.02387 1.0756 4.47541 1.38216 4.17401 4.85773 1.09117 3.16684 5.49319 1.65945 0.74353 10.65343 1.92395 0.88414 2.16829 0.03735 3.52542 2.43955 2.7503 2.36773 1.05766 0.39521 3.23503 0.71437 0.14273 3.61199 1.70503 4.74834 0.26982 0.76581 0.49447 1.55266 0.04726 0.31012 26.69498 1.77829 0.77302 0.64848 2.18842 0.76316 4.11072 2.34635 4.19619 3.69201 3.14221 1.97107 2.9556 1.73537 1.02414 1.87956 2.28741 1.486 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae 1.27923 0.21286 0.01349 0.39448 1.5332 0.82619 0.54658 2.15892 0.92977 1.68569 3.82235 1.22467 0.29041 7.88867 1.14267 0.64322 2.07122 0.03735 1.39493 1.99098 2.35686 1.84361 0.4231 0.05512 2.63936 0.0979 0.02901 3.04151 1.22655 3.28732 0.2224 0.51322 0.29382 0.76263 0 0.19554 4.83642 0.70253 0.73441 0.61699 1.22247 0.51374 0.88264 1.53582 3.18701 2.98215 2.57576 0.57829 1.467 1.28879 0.81623 1.16902 1.64 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium 1.27923 0.21286 0.01349 0.39448 1.5332 0.82619 0.54658 2.15892 0.92977 1.68569 3.82235 1.22467 0.29041 7.88867 1.14267 0.64322 2.07122 0.03735 1.39493 1.99098 2.35686 1.84361 0.4231 0.05512 2.63936 0.0979 0.02901 3.04151 1.22655 3.28732 0.2224 0.51322 0.29382 0.76263 0 0.19554 4.83642 0.70253 0.73441 0.61699 1.22247 0.51374 0.88264 1.53582 3.18701 2.98215 2.57576 0.57829 1.467 1.28879 0.8 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_gonidiaformans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_gonidiaformans|t__Fusobacterium_gonidiaformans_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_mortiferum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_mortiferum|t__GCF_000158195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_necrophorum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.22398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_necrophorum|t__Fusobacterium_necrophorum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.22398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_nucleatum 1.2694 0.20624 0.01167 0.39448 0.54098 0.78856 0.15045 1.3544 0.07261 1.04771 1.39105 1.22467 0.10445 0.91754 0.48722 0.3368 0.1805 0.02531 1.07632 0.33119 0.76592 0.51292 0.2513 0.05512 0.6214 0.0979 0.02901 0.61901 0.38152 1.27365 0.07732 0.05398 0.03084 0.64894 0 0.01704 4.21023 0.5569 0.48168 0.41731 0.3875 0.13692 0.47855 1.5334 0.58982 0.7347 1.06336 0.428 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_nucleatum|t__Fusobacterium_nucleatum_unclassified 1.2694 0.20624 0.01167 0.39448 0.54098 0.78856 0.15045 1.3544 0.07261 1.04771 1.39105 1.22467 0.10445 0.91754 0.48722 0.3368 0.1805 0.02531 1.07632 0.33119 0.76592 0.51292 0.2513 0.05512 0.6214 0.0979 0.02901 0.61901 0.38152 1.27365 0.07732 0.05398 0.03084 0.64894 0 0.01704 4.21023 0.5569 0.48168 0.41731 0.3875 0.13692 0.4 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_nucleatum|t__GCF_000218655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.29775 0 0.10808 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_periodonticum 0.00983 0.00662 0.00182 0 0.99222 0.03763 0.39613 0.80452 0.85716 0.63798 2.43131 0 0.18596 6.97113 0.65545 0.30641 1.89072 0.01205 0.31861 1.65979 1.59094 1.33069 0.1718 0 2.01796 0 0 2.4225 0.84503 2.01366 0.14508 0.45924 0.26297 0.11369 0 0.1785 0.62619 0.14563 0.25273 0.19969 0.83498 0.37683 0.40409 0.00242 2.59719 2.24745 1.5124 0.14995 1.06914 1.12377 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_periodonticum|t__Fusobacterium_periodonticum_unclassified 0.00983 0.00662 0.00182 0 0.99222 0.03763 0.39613 0.80452 0.85716 0.63798 2.43131 0 0.18596 6.97113 0.65545 0.30641 1.89072 0.01205 0.31861 1.65979 1.59094 1.33069 0.1718 0 2.01796 0 0 1.41812 0.84503 2.01366 0.14508 0.45924 0.26297 0.11369 0 0.1785 0.62619 0.14563 0.25273 0.19969 0.83498 0.37683 0.40409 0.00242 1. [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_periodonticum|t__GCF_000160475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25699 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.31781 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.89551 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_periodonticum|t__GCF_000163935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.51931 0 0 0 0 0 0 0 0 0 0 0.6475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_sp_oral_taxon_370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_sp_oral_taxon_370|t__GCF_000235465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_ulcerans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_ulcerans|t__Fusobacterium_ulcerans_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae 0.16175 0.19076 0.01038 0.68111 2.94221 0.55598 3.62743 2.69881 0.1614 1.48115 1.67084 0.43478 0.45312 2.76476 0.78128 0.24092 0.09707 0 2.13049 0.44857 0.39345 0.52413 0.63456 0.34009 0.59567 0.61647 0.11372 0.57048 0.47848 1.46102 0.04742 0.25259 0.20065 0.79003 0.04726 0.11458 21.85856 1.07576 0.03861 0.03149 0.96595 0.24942 3.22808 0.81054 1.00918 0.70986 0.56645 1.39278 1.48859 0.44657 0.20791 0.7105 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia 0.10854 0.13312 0.01038 0.51746 1.71768 0.18923 2.20994 1.79853 0.02792 0.48272 0.83629 0.33119 0.0873 2.24209 0.46192 0.01841 0.00991 0 1.48953 0.21284 0.14777 0.26054 0.33449 0.34009 0.41568 0.61647 0.06197 0.50357 0.34605 0.9148 0 0.01779 0.02327 0.48698 0.04726 0.1018 18.58139 0.73248 0 0.00669 0.53997 0.04215 2.27376 0.67768 0.99981 0.39033 0.30765 0.75299 1.33154 0.38337 0.20202 0.40 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichiaceae_unclassified 0.05321 0.05764 0 0.16366 1.22453 0.36675 1.4175 0.90028 0.13348 0.99843 0.83455 0.10359 0.36582 0.52266 0.31936 0.22251 0.08715 0 0.64096 0.23573 0.24567 0.26359 0.30006 0 0.17999 0 0.05175 0.06691 0.13243 0.54622 0.04742 0.23479 0.17738 0.30305 0 0.01277 3.27718 0.34328 0.03861 0.0248 0.42598 0.20727 0.95432 0.13286 0.00937 0.31952 0.25879 0.63979 0.15705 0.0632 0.0059 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_buccalis 0 0.00192 0 0 0.12812 0.0026 0 0 0 0.11135 0 0 0 0.12714 0.03659 0 0 0 0 0 0 0 0.00742 0 0.06144 0.04389 0 0.02112 0 0.00747 0 0 0 0.18415 0 0 0.73361 0.04847 0 0 0.03282 0 0.11164 0.00319 0.15226 0.01712 0 0.13465 0.00705 0.05511 0.00961 0.02605 0.02817 0 0 0.00289 0 0 0.00662 0 0 0 0.01252 0.15693 0.37945 0.05185 0 0.09939 0.0371 0.06549 0.04795 0 0 0 0 0 0 0 0.0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_buccalis|t__GCF_000023905 0 0.00192 0 0 0.12812 0.0026 0 0 0 0.11135 0 0 0 0.12714 0.03659 0 0 0 0 0 0 0 0.00742 0 0.06144 0.04389 0 0.02112 0 0.00747 0 0 0 0.18415 0 0 0.73361 0.04847 0 0 0.03282 0 0.11164 0.00319 0.15226 0.01712 0 0.13465 0.00705 0.05511 0.00961 0.02605 0.02817 0 0 0.00289 0 0 0.00662 0 0 0 0.01252 0.15693 0.37945 0.05185 0 0.09939 0.0371 0.06549 0.04795 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_goodfellowii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00344 0 0 0 0 0 0 0 0.01414 0 0 0 0 0.0694 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12336 0.0606 0 0 0 0 0 0 0 0 0 0 0.00223 0.15676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00938 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005 0 0 0 0 0.00313 0 0 0.0088 0 0 0 0 0 0 0 0 0 0 0 0.1549 0 0.00555 0 0.00758 0 0.02529 0.41471 0 0.01934 0 0.00247 0.11953 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_goodfellowii|t__GCF_000176335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00344 0 0 0 0 0 0 0 0.01414 0 0 0 0 0.0694 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12336 0.0606 0 0 0 0 0 0 0 0 0 0 0.00223 0.15676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00938 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005 0 0 0 0 0.00313 0 0 0.0088 0 0 0 0 0 0 0 0 0 0 0 0.1549 0 0.00555 0 0.00758 0 0.02529 0.41471 0 0.01934 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_hofstadii 0 0.00607 0 0.01121 0.14386 0 0 0.03959 0 0.05981 0 0 0 0.02279 0.02721 0 0 0 0 0 0.00258 0 0.03017 0 0.02934 0 0 0.00651 0 0.34754 0 0 0 0.02475 0 0 5.29387 0 0 0 0.05898 0.00053 0.1252 0.05099 0.03441 0.00703 0 0.07911 0.00847 0.01241 0.01343 0.05264 0 0 0 0.0019 0 0 0 0 0.00861 0 0 0 0 0 0 0 0.02683 0.0892 0.03653 0 0 0.0229 0 0 0.00733 0 0.08526 0 0.00132 0 0. [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_hofstadii|t__GCF_000162955 0 0.00607 0 0.01121 0.14386 0 0 0.03959 0 0.05981 0 0 0 0.02279 0.02721 0 0 0 0 0 0.00258 0 0.03017 0 0.02934 0 0 0.00651 0 0.34754 0 0 0 0.02475 0 0 5.29387 0 0 0 0.05898 0.00053 0.1252 0.05099 0.03441 0.00703 0 0.07911 0.00847 0.01241 0.01343 0.05264 0 0 0 0.0019 0 0 0 0 0.00861 0 0 0 0 0 0 0 0.02683 0.0892 0.03653 0 0 0.0229 0 0 0.00733 0 0.085 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_shahii 0.00241 0.01666 0 0.0571 0.02025 0.00549 0 0.13957 0 0.0023 0 0.01696 0 0.08723 0.05007 0 0 0 0 0 0 0 0 0 0.01927 0 0 0.01145 0.02059 0.02052 0 0 0 0 0 0 0.31898 0 0 0 0 0 0.32005 0.00134 0.0134 0 0 0 0.0361 0.00162 0 0.01808 0 0 0 0 0 0 0 0 0.0009 0.02334 0 0.16652 0.06711 0.02371 0 0.00778 0 0.04567 0 0 0 0 0 0.09881 0 0 0.10504 0 0.00651 0 0 0 0 0 0.00843 0.00395 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_shahii|t__GCF_000373045 0.00241 0.01666 0 0.0571 0.02025 0.00549 0 0.13957 0 0.0023 0 0.01696 0 0.08723 0.05007 0 0 0 0 0 0 0 0 0 0.01927 0 0 0.01145 0.02059 0.02052 0 0 0 0 0 0 0.31898 0 0 0 0 0 0.32005 0.00134 0.0134 0 0 0 0.0361 0.00162 0 0.01808 0 0 0 0 0 0 0 0 0.0009 0.02334 0 0.16652 0.06711 0.02371 0 0.00778 0 0.04567 0 0 0 0 0 0.09881 0 0 0.10504 0 0.00651 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_sp_oral_taxon_215 0 0 0 0 0 0 0 0 0 0 0 0 0 1.40517 0 0 0 0 0 0 0 0 0 0 0 0 0 0.44039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.66771 0 0 0 0.99514 0.31197 0 0 0 0 0 0.55457 0 0 0 0 0 0 0 0 0 0 0 0 0 0.45437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.86246 0 0 0 0 0 0 0 0.96823 0 0 0 1.86192 0 0 0 0 0 0 0 0 2.56755 1.27504 0 0 0 0 0 0 0 0 0.81325 0 0.91718 0 0.91867 0.5490 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_sp_oral_taxon_215|t__GCF_000469505 0 0 0 0 0 0 0 0 0 0 0 0 0 1.40517 0 0 0 0 0 0 0 0 0 0 0 0 0 0.44039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.66771 0 0 0 0.99514 0.31197 0 0 0 0 0 0.55457 0 0 0 0 0 0 0 0 0 0 0 0 0 0.45437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.86246 0 0 0 0 0 0 0 0.96823 0 0 0 1.86192 0 0 0 0 0 0 0 0 2.56755 1.27504 0 0 0 0 0 0 0 0 0.81325 0 0.91718 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_sp_oral_taxon_225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.35952 0 0 2.2327 0.56143 0 2.29291 1.15406 0 0.64514 0 0.32617 0 0 0 0.2705 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_sp_oral_taxon_225|t__GCF_000469525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.35952 0 0 2.2327 0.56143 0 2.29291 1.15406 0 0.64514 0 0.32617 0 0 0 0.2705 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_unclassified 0.06759 0.07785 0.01038 0.2501 1.00779 0.07285 1.9994 0.89653 0.0258 0.29492 0.61728 0.10667 0.04714 0 0.20038 0.01841 0.00648 0 1.38187 0.20248 0.12602 0.26054 0.27575 0.27013 0.12039 0.2228 0.06197 0 0.13625 0.26281 0 0.00811 0.02327 0.27596 0.04726 0.1018 11.56628 0.30992 0 0.00669 0.35965 0.03829 0.27139 0.37625 0 0.32076 0.17963 0.42768 0 0 0.1586 0.2582 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_wadei 0.03855 0.03062 0 0.19905 0.41766 0.10829 0.21054 0.72283 0.00211 0.01434 0.21901 0.20756 0.04016 0.59977 0.14768 0 0 0 0.10766 0.01037 0.01917 0 0.02115 0.06996 0.1711 0.34979 0 0.02409 0.18921 0.20706 0 0.00968 0 0.00212 0 0 0.66865 0.37409 0 0 0.08852 0.00334 1.44548 0.12255 0.07143 0.04543 0.12802 0.11155 0.28478 0.00226 0.02038 0.05166 0.12822 0 0.11468 0.00095 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_wadei|t__GCF_000373345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.03197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25402 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_wadei|t__GCF_000469405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.51497 0 0 0 0 0 0.29279 0 0 0 0.66906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_wadei|t__Leptotrichia_wadei_unclassified 0.03855 0.03062 0 0.19905 0.41766 0.10829 0.21054 0.72283 0.00211 0.01434 0.21901 0.20756 0.04016 0.59977 0.14768 0 0 0 0.10766 0.01037 0.01917 0 0.02115 0.06996 0.1711 0.34979 0 0.02409 0.18921 0.20706 0 0.00968 0 0.00212 0 0 0.66865 0.37409 0 0 0.08852 0.00334 1.44548 0.12255 0.07143 0.04543 0.12802 0.11155 0.28478 0.00226 0.02038 [...]
+k__Bacteria|p__Proteobacteria 33.01643 37.84556 27.26389 44.20227 4.9133 28.46997 25.06852 28.40246 16.20348 34.77175 24.05093 35.64429 50.4254 11.4012 35.88433 48.74199 71.56453 5.03959 17.65977 62.74825 7.40026 32.03702 23.43077 9.01979 48.2547 11.60178 53.59529 39.63805 15.34904 48.40565 67.5334 40.49912 34.65101 38.2548 10.11132 15.433 17.8361 21.84728 43.24019 43.77819 17.94293 52.16884 15.613 16.63913 35.99558 36.81676 11.37686 23.79699 21.6331 42.344 22.42803 38.37189 42.59035 45. [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02166 0 0.08803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00457 0 0 0 0 0 0 0 0 0 0.0091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00208 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Brevundimonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Brevundimonas|s__Brevundimonas_diminuta 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Brevundimonas|s__Brevundimonas_diminuta|t__Brevundimonas_diminuta_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Brevundimonas|s__Brevundimonas_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00457 0 0 0 0 0 0 0 0 0 0.0091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00208 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bartonellaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bartonellaceae|g__Bartonella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bartonellaceae|g__Bartonella|s__Bartonella_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Afipia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Afipia|s__Afipia_birgiae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00771 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Afipia|s__Afipia_birgiae|t__GCF_000308295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00771 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Afipia|s__Afipia_broomeae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Afipia|s__Afipia_broomeae|t__GCF_000314675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Afipia|s__Afipia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas|s__Rhodopseudomonas_palustris 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas|s__Rhodopseudomonas_palustris|t__Rhodopseudomonas_palustris_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02166 0 0.03864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02166 0 0.03864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae|g__Paracoccus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02166 0 0.03864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae|g__Paracoccus|s__Paracoccus_denitrificans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01066 0 0.03864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae|g__Paracoccus|s__Paracoccus_denitrificans|t__Paracoccus_denitrificans_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01066 0 0.03864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae|g__Paracoccus|s__Paracoccus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04939 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04939 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae|g__Sphingobium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae|g__Sphingobium|s__Sphingobium_yanoikuyae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae|g__Sphingobium|s__Sphingobium_yanoikuyae|t__Sphingobium_yanoikuyae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae|g__Sphingomonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04939 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae|g__Sphingomonas|s__Sphingomonas_echinoides 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04939 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae|g__Sphingomonas|s__Sphingomonas_echinoides|t__GCF_000241465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04939 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae|g__Sphingopyxis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae|g__Sphingopyxis|s__Sphingopyxis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria 10.85978 11.54615 0 14.62029 0 8.19425 2.97543 11.68478 1.62403 0.33426 10.22059 0.0357 4.41341 1.75352 1.81831 17.81625 17.37063 0.29489 7.49196 9.38864 0.01181 4.89348 1.26052 2.6166 6.68467 1.70817 2.32343 3.01251 2.14317 5.7226 11.15271 5.17881 6.67132 1.97142 2.55715 1.97868 6.52777 3.53145 0.08724 0.13289 4.8637 4.81873 2.8347 3.19427 6.02568 5.1372 0.41834 10.55028 3.61762 1.79595 0.18626 1.49724 5.987 3.85679 0 5.6935 1.4663 0.7 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales 0 0.00135 0 0.4434 0 0 0.11869 0.45192 0.06417 0.11711 1.14116 0 0.00141 0.31954 0.10305 0.03618 5.51371 0.06511 0.85427 0.79591 0 0.63071 0.03507 0.23719 0.07565 0.14848 0.07846 0.03064 0 0.20665 0 0.20671 0.67325 0.43698 0.32672 0.01537 0.20397 0.01296 0 0 0.1586 0.08259 0.29493 0.03202 0.08037 0.65926 0.27687 0.28143 0.58207 0.2952 0 0.29183 0.06187 1.41491 0 0.13706 0.03355 0 0.23562 0 0.00127 0 0.0441 0 0 0.47956 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Alcaligenaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00871 0.001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00353 0.00127 0 0 0 0 0 0 0.00133 0 0 0 0 0.00245 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Alcaligenaceae|g__Pusillimonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00871 0.001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00353 0.00127 0 0 0 0 0 0 0.00133 0 0 0 0 0.002 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Alcaligenaceae|g__Pusillimonas|s__Pusillimonas_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00871 0.001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00353 0.00127 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae 0 0.00135 0 0.44244 0 0 0.11869 0.45192 0.06417 0.11711 1.14116 0 0.00141 0.31954 0.09598 0.03618 5.51371 0 0.85427 0.5524 0 0.63071 0.03507 0.23719 0.07565 0.14848 0.07846 0.03064 0 0.20665 0 0.20671 0.67325 0.43698 0.32672 0.01537 0.20397 0.01296 0 0 0.1586 0.08259 0.29493 0.03202 0.08037 0.65926 0.27687 0.28143 0.58207 0.2952 0 0.29183 0 1.41491 0 0.13706 0.03355 0 0.23562 0 0.00127 0 0.0441 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia|s__Burkholderia_cenocepacia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia|s__Burkholderia_cenocepacia|t__Burkholderia_cenocepacia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia|s__Burkholderia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Lautropia 0 0.00135 0 0.44244 0 0 0.11869 0.45192 0.06417 0.11711 1.14116 0 0.00141 0.31954 0.09598 0.03618 5.51371 0 0.85427 0.5524 0 0.63071 0.03507 0.23719 0.07565 0.14848 0.07846 0.03064 0 0.20665 0 0.20671 0.67325 0.43698 0.32672 0.01537 0.20397 0.01296 0 0 0.1586 0.08259 0.29493 0.03202 0.08037 0.65926 0.27687 0.28143 0.58207 0.2952 0 0.29183 0 1.41491 0 0.13706 0.03355 0 0.23562 0 0.00127 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Lautropia|s__Lautropia_mirabilis 0 0.00135 0 0.44244 0 0 0.11869 0.45192 0.06417 0.11711 1.14116 0 0.00141 0.31954 0.09598 0.03618 5.51371 0 0.85427 0.5524 0 0.63071 0.03507 0.23719 0.07565 0.14848 0.07846 0.03064 0 0.20665 0 0.20671 0.67325 0.43698 0.32672 0.01537 0.20397 0.01296 0 0 0.1586 0.08259 0.29493 0.03202 0.08037 0.65926 0.27687 0.28143 0.58207 0.2952 0 0.29183 0 1.41491 0 0.13706 0.03 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Lautropia|s__Lautropia_mirabilis|t__GCF_000186425 0 0.00135 0 0.44244 0 0 0.11869 0.45192 0.06417 0.11711 1.14116 0 0.00141 0.31954 0.09598 0.03618 5.51371 0 0.85427 0.5524 0 0.63071 0.03507 0.23719 0.07565 0.14848 0.07846 0.03064 0 0.20665 0 0.20671 0.67325 0.43698 0.32672 0.01537 0.20397 0.01296 0 0 0.1586 0.08259 0.29493 0.03202 0.08037 0.65926 0.27687 0.28143 0.58207 0.2952 0 0.29183 0 1.414 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06364 0 0 0 0 0 0 0 0 0 0 0 0.07833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname|g__Burkholderiales_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname|g__Burkholderiales_noname|s__Burkholderiales_bacterium_1_1_47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname|g__Burkholderiales_noname|s__Burkholderiales_bacterium_1_1_47|t__GCF_000144975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname|g__Thiomonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname|g__Thiomonas|s__Thiomonas_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae 0 0 0 0.00096 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06511 0 0.24351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0055 0.00137 0 0 0 0 0 0 0 0 0 0 0 0 0.00393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Acidovorax 0 0 0 0.00096 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04067 0 0.13643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Acidovorax|s__Acidovorax_ebreus 0 0 0 0.00096 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04067 0 0.13643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00393 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Acidovorax|s__Acidovorax_ebreus|t__GCF_000022305 0 0 0 0.00096 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04067 0 0.13643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Alicycliphilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02444 0 0.10708 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Alicycliphilus|s__Alicycliphilus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02444 0 0.10708 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Comamonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02888 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Comamonas|s__Comamonas_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02888 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Limnohabitans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Limnohabitans|s__Limnohabitans_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Polaromonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Polaromonas|s__Polaromonas_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Herbaspirillum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Herbaspirillum|s__Herbaspirillum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Massilia|s__Massilia_timonae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Massilia|s__Massilia_timonae|t__GCF_000315425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Massilia|s__Massilia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Oxalobacter|s__Oxalobacter_formigenes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Oxalobacter|s__Oxalobacter_formigenes|t__GCF_000158495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Oxalobacter|s__Oxalobacter_formigenes|t__Oxalobacter_formigenes_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08138 0.00952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Parasutterella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Parasutterella|s__Parasutterella_excrementihominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Parasutterella|s__Parasutterella_excrementihominis|t__GCF_000205025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterellaceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella|s__Sutterella_wadsworthensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella|s__Sutterella_wadsworthensis|t__GCF_000186505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella|s__Sutterella_wadsworthensis|t__GCF_000297775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella|s__Sutterella_wadsworthensis|t__GCF_000411515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella|s__Sutterella_wadsworthensis|t__Sutterella_wadsworthensis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Gallionellales 0.01743 0.00581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02309 0 0 0.01349 0 0 0 0 0 0 0 0 0 0 0.00698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00588 0 0 0 0.01747 0 0.0321 0 0 0.00901 0 0 0 0 0 0 0 0.00743 0.01086 0 0 0 0.00418 0 0 0.00691 0 0.01171 0 0 0 0 0 0 0.00415 0 0 0 0 0.00606 0 0 0 0.00 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Gallionellales|f__Gallionellaceae 0.01743 0.00581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02309 0 0 0.01349 0 0 0 0 0 0 0 0 0 0 0.00698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00588 0 0 0 0.01747 0 0.0321 0 0 0.00901 0 0 0 0 0 0 0 0.00743 0.01086 0 0 0 0.00418 0 0 0.00691 0 0.01171 0 0 0 0 0 0 0.00415 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Gallionellales|f__Gallionellaceae|g__Gallionellaceae_unclassified 0.01743 0.00581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02309 0 0 0.01349 0 0 0 0 0 0 0 0 0 0 0.00698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00588 0 0 0 0.01747 0 0.0321 0 0 0.00901 0 0 0 0 0 0 0 0.00743 0.01086 0 0 0 0.00418 0 0 0.00691 0 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales 10.84235 11.53899 0 14.17689 0 8.19425 2.85674 11.23286 1.55986 0.21715 9.07943 0.0357 4.412 1.43398 1.71526 17.78006 11.85692 0.22978 6.63769 8.59273 0.01181 4.26277 1.22546 2.37942 6.60902 1.55968 2.24498 2.98188 2.14317 5.51595 11.15271 4.9721 5.99808 1.53445 2.23043 1.96331 6.3238 3.51849 0.08724 0.13289 4.70509 4.71305 2.53978 3.16225 5.93183 4.47795 0.14147 10.26885 3.03556 1.50075 0.18626 1.20541 5.92513 2.44188 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae 10.84235 11.53899 0 14.17689 0 8.19425 2.85674 11.23286 1.55986 0.21715 9.07943 0.0357 4.412 1.43398 1.71526 17.78006 11.85692 0.22978 6.63769 8.59273 0.01181 4.26277 1.22546 2.37942 6.60902 1.55968 2.24498 2.98188 2.14317 5.51595 11.15271 4.9721 5.99808 1.53445 2.23043 1.96331 6.3238 3.51849 0.08724 0.13289 4.70509 4.71305 2.53978 3.16225 5.93183 4.47795 0.14147 10.26885 3.03556 1.50075 0.18626 1.20541 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Eikenella 0.02165 0 0 0 0 0 0 0 0.00419 0.01764 0 0 0 0.11597 0 0.19918 0.00119 0 0 0 0 0.05854 0 0 0.04589 0 0 0.02659 0 0.03121 0.05554 0 0 0.01616 0 0 0 0.01122 0 0 0.00384 0.0025 0 0 0.01791 0.05281 0 0.03914 0 0.0092 0 0 0.02227 0.01185 0 0.56916 0.0015 0 0.14339 0 0 0 0 0 0 0.04276 0 0.03268 0.06941 0.01881 0 0 0 0 0 0 0.00821 0 0 0 0 0 0.00659 0 0.01275 0.48384 0.03183 0.03659 0 0.00522 0 0.132 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Eikenella|s__Eikenella_corrodens 0.02165 0 0 0 0 0 0 0 0.00419 0.01764 0 0 0 0.11597 0 0.19918 0.00119 0 0 0 0 0.05854 0 0 0.04589 0 0 0.02659 0 0.03121 0.05554 0 0 0.01616 0 0 0 0.01122 0 0 0.00384 0.0025 0 0 0.01791 0.05281 0 0.03914 0 0.0092 0 0 0.02227 0.01185 0 0.56916 0.0015 0 0.14339 0 0 0 0 0 0 0.04276 0 0.03268 0.06941 0.01881 0 0 0 0 0 0 0.00821 0 0 0 0 0 0.00659 0 0.01275 0.48384 0.03183 0. [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Eikenella|s__Eikenella_corrodens|t__Eikenella_corrodens_unclassified 0.02165 0 0 0 0 0 0 0 0.00419 0.01764 0 0 0 0.11597 0 0.19918 0.00119 0 0 0 0 0.05854 0 0 0.04589 0 0 0.02659 0 0.03121 0.05554 0 0 0.01616 0 0 0 0.01122 0 0 0.00384 0.0025 0 0 0.01791 0.05281 0 0.03914 0 0.0092 0 0 0.02227 0.01185 0 0.56916 0.0015 0 0.14339 0 0 0 0 0 0 0.04276 0 0.03268 0.06941 0.01881 0 0 0 0 0 0 0.00821 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Eikenella|s__Eikenella_corrodens|t__GCF_000158615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12876 0 0 0 0 0 0 0 0 0 0.09689 0 0 0 0 0 0 0 0 0 0 0 0.75674 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Eikenella|s__Eikenella_corrodens|t__GCF_000504685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16357 0 0 0 0 0.36323 0.31948 0 0 0 0 0 0.36953 0 0.49397 0 0 0 0.24348 0.23679 0.1472 0 0.32897 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella 0 0.01402 0 0.49865 0 0.00554 1.6328 0 0.10142 0.03963 0.17672 0 0 0 0.03069 0.26366 0 0 0 0 0.01181 0 0.04422 0 0.02949 0 0 0 0 0.07213 0.32142 0.02792 0.04201 0.26655 0 0 0.34068 0 0.07365 0.04529 0 0.01037 0.06065 0.04141 0.04024 0.17821 0 0.21059 0.04911 0.02068 0 0 0.04888 0.03803 0 0.0735 0 0 0.0297 0 0.04599 0.02938 0.11919 0 0 0.04103 0.02279 0.04559 0.05251 0.1511 0 0.02367 0 0.20302 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_denitrificans 0 0 0 0 0 0 0 0 0.09465 0 0 0 0 0 0 0.01014 0 0 0 0 0 0 0 0 0.00583 0 0 0 0 0 0.12961 0 0 0 0 0 0 0 0 0 0 0 0.00109 0 0.01105 0.03324 0 0 0 0 0 0 0 0 0 0.00418 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00585 0 0 0 0 0 0 0 0 0.04489 0 0 0 0 0 0 0.0032 0 0.06201 0 0 0 0 0 0 0 0 0 0 0.07312 0 0 0 0 0.08987 0 0.00522 0 0 0.04179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00031 0 0 0.48422 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_denitrificans|t__GCF_000190695 0 0 0 0 0 0 0 0 0.09465 0 0 0 0 0 0 0.01014 0 0 0 0 0 0 0 0 0.00583 0 0 0 0 0 0.12961 0 0 0 0 0 0 0 0 0 0 0 0.00109 0 0.01105 0.03324 0 0 0 0 0 0 0 0 0 0.00418 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00585 0 0 0 0 0 0 0 0 0.04489 0 0 0 0 0 0 0.0032 0 0.06201 0 0 0 0 0 0 0 0 0 0 0.07312 0 0 0 0 0.08987 0 0.00522 0 0 0.04179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00031 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_kingae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00544 0 0 0 0 0.01949 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_kingae|t__Kingella_kingae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00544 0 0 0 0 0.01949 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_oralis 0 0.0131 0 0.4502 0 0 1.6328 0 0.00588 0.03963 0 0 0 0 0.03069 0 0 0 0 0 0 0 0.04422 0 0.02366 0 0 0 0 0.07213 0 0.01713 0.04201 0.26655 0 0 0.23131 0 0.07365 0.0391 0 0 0.05957 0.0013 0 0.14497 0 0.2096 0 0.00029 0 0 0.04888 0.0074 0 0 0 0 0 0 0.04599 0 0 0 0 0 0 0 0.05251 0.01587 0 0 0 0 0.02106 0 0 0 0 0 0 0 0 0.04653 0.01456 0.00823 0.11384 0.19464 0 0 0 0.14434 0.17673 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_oralis|t__GCF_000160435 0 0.0131 0 0.4502 0 0 1.6328 0 0.00588 0.03963 0 0 0 0 0.03069 0 0 0 0 0 0 0 0.04422 0 0.02366 0 0 0 0 0.07213 0 0.01713 0.04201 0.26655 0 0 0.23131 0 0.07365 0.0391 0 0 0.05957 0.0013 0 0.14497 0 0.2096 0 0.00029 0 0 0.04888 0.0074 0 0 0 0 0 0 0.04599 0 0 0 0 0 0 0 0.05251 0.01587 0 0 0 0 0.02106 0 0 0 0 0 0 0 0 0.04653 0.01456 0.00823 0.11384 0.19464 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_unclassified 0 0.00092 0 0.04845 0 0.00554 0 0 0.0009 0 0.17672 0 0 0 0 0.25352 0 0 0 0 0.01181 0 0 0 0 0 0 0 0 0 0.19181 0.0108 0 0 0 0 0.10937 0 0 0.00619 0 0.01037 0 0.04012 0.02843 0 0 0.00099 0.04911 0.0204 0 0 0 0.03063 0 0.06932 0 0 0.0297 0 0 0.02938 0.11919 0 0 0.04103 0.02279 0 0 0.12938 0 0.02367 0 0.20302 0.10581 0.05257 0.01827 0 0 0 0 0 0 0.00432 0 0.08099 0 0 0 0 0. [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria 10.8207 11.37369 0 13.13916 0 8.18871 1.22394 11.23286 1.45425 0.15989 8.90271 0.0357 4.412 1.31801 1.68457 17.31723 11.85573 0.22978 6.63769 8.59273 0 4.20423 1.18124 2.37942 6.53364 1.55968 2.24498 2.95529 2.14317 5.41261 10.77575 4.94417 5.95607 1.25173 2.23043 1.93135 5.98312 3.50726 0.01359 0.0876 4.70125 4.70017 2.47913 3.12084 5.86678 4.24692 0.14147 10.01912 2.98644 1.44479 0.18626 1 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_bacilliformis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00401 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0049 0 0.014 0 0 0.03652 0 0 0.00415 0 0.32806 0 0 0 0 0.00304 0.00476 0.03756 0 0.08187 0.0006 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_bacilliformis|t__GCF_000194925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00401 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0049 0 0.014 0 0 0.03652 0 0 0.00415 0 0.32806 0 0 0 0 0.00304 0.00476 0.03756 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_cinerea 8.30579 6.26673 0 1.5852 0 6.37568 0 2.15523 0 0 0 0 3.05099 0 0 0.09768 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00907 0.07356 0 0 0 0 0 0 0 0 0 0 0.00088 0 1.38898 0.15437 0 0 0 0 0 0 0 0 0 0 0.09566 0.07076 0 0.14427 0 0 0 0 0 0 0 0 0 0 0.03887 0 0.19908 0 0 0 0 0 1.08998 0 0 0 0 0 0 0 0.06638 0 0.00604 0 0 0 0 0 0 0 0 0 0 0.05129 0 0.07676 0 0 0 0 2.22597 0 0 0.01667 0 0 0 0 0 0. [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_cinerea|t__GCF_000173895 8.30579 6.26673 0 1.5852 0 6.37568 0 2.15523 0 0 0 0 3.05099 0 0 0.09768 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00907 0.07356 0 0 0 0 0 0 0 0 0 0 0.00088 0 1.38898 0.15437 0 0 0 0 0 0 0 0 0 0 0.09566 0.07076 0 0.14427 0 0 0 0 0 0 0 0 0 0 0.03887 0 0.19908 0 0 0 0 0 1.08998 0 0 0 0 0 0 0 0.06638 0 0.00604 0 0 0 0 0 0 0 0 0 0 0.05129 0 0.07676 0 0 0 0 2.22597 0 0 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_elongata 0 0.01625 0 0.02883 0 0.00139 0 0 0.02325 0 0 0 0 0 0 0.26592 0.04872 0 0 0.0092 0 0 0 0 0.04251 0 0 0 0 0 0.11111 0.01577 0.03889 0.02473 0 0 0.65689 0 0 0 0 0 0.03543 0 0.07691 0.16985 0 0.72453 0.03191 0.12291 0 0.04619 0.04802 0.10825 0 0.01909 0.06824 0 0 0 0.04709 0 0.03082 0 0 0 0 0 0.08796 0.02996 0.09802 0 0 0 0 0 0.73142 0 0.23786 0 0 0 0.00706 0 0 0 0 0 0.045 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_elongata|t__GCF_000176755 0 0.01625 0 0.02883 0 0.00139 0 0 0.02325 0 0 0 0 0 0 0.26592 0.04872 0 0 0.0092 0 0 0 0 0.04251 0 0 0 0 0 0.11111 0.01577 0.03889 0.02473 0 0 0.65689 0 0 0 0 0 0.03543 0 0.07691 0.16985 0 0.72453 0.03191 0.12291 0 0.04619 0.04802 0.10825 0 0.01909 0.06824 0 0 0 0.04709 0 0.03082 0 0 0 0 0 0.08796 0.02996 0.09802 0 0 0 0 0 0.73142 0 0.23786 0 0 0 0.0070 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_flavescens 0 0.10313 0 0.16902 0 0 0 0.96515 0.47086 0 0.3637 0 0.05255 0.39452 0.13667 0.43924 0.03118 0.02345 2.11044 0.75837 0 0.59119 0.08485 0 0.38582 1.1555 0 1.18546 0.4773 0.43025 0.50066 0.54495 0.58287 0.06336 0 0.18907 2.0137 0.18369 0 0 1.3503 0.62569 0.20573 0.01095 3.78211 0.89559 0.06458 3.18635 0.85022 0.67282 0.04913 0.36531 1.63649 0.68456 0 0.1309 0.05254 0.30 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_flavescens|t__Neisseria_flavescens_unclassified 0 0.10313 0 0.16902 0 0 0 0.96515 0.47086 0 0.3637 0 0.05255 0.39452 0.13667 0.43924 0.03118 0.02345 2.11044 0.75837 0 0.59119 0.08485 0 0.38582 1.1555 0 1.18546 0.4773 0.43025 0.50066 0.54495 0.58287 0.06336 0 0.18907 2.0137 0.18369 0 0 1.3503 0.62569 0.20573 0.01095 3.78211 0.89559 0.06458 3.18635 0.85022 0.67282 0.04913 0.36531 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_gonorrhoeae 0.00144 0.27077 0 0.96917 0 0.00083 0 0.11154 0 0 0 0 0.00362 0 0 0 0 0 0 0 0 0 0 0 0.00519 0 0 0 0 0 0.00356 0 0 0 0 0 0 0 0 0 0 0 0 0.05755 0.0282 0 0 0.00817 0 0.00116 0 0 0 0 0 0.00133 0.00682 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01585 0 0 0 0 0 0 0 0.00739 0 0 0 0 0 0 0 0 0 0 0 0 0.04937 0 0.0105 0 0 0.00187 0 0.01711 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_gonorrhoeae|t__Neisseria_gonorrhoeae_unclassified 0.00144 0.27077 0 0.96917 0 0.00083 0 0.11154 0 0 0 0 0.00362 0 0 0 0 0 0 0 0 0 0 0 0.00519 0 0 0 0 0 0.00356 0 0 0 0 0 0 0 0 0 0 0 0 0.05755 0.0282 0 0 0.00817 0 0.00116 0 0 0 0 0 0.00133 0.00682 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01585 0 0 0 0 0 0 0 0.00739 0 0 0 0 0 0 0 0 0 0 0 0 0.04937 0 0.0105 0 0 0.00187 0 0.01711 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_lactamica 0 0.03065 0 0.02425 0 0 0 0 0.00839 0 0 0 0.03299 0 0 0.004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00948 0 0.01759 0.02285 0 0 0 0.00815 0 0 0 0 0 0 0.03543 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00349 0.00739 0.01143 0 0 0 0 0 0.01173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01119 0 0 0.0015 0 0.02493 0 0 0 0 0 0 0 0.00054 0 0 0 0.00104 0 0 0 0.01073 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_lactamica|t__Neisseria_lactamica_unclassified 0 0.03065 0 0.02425 0 0 0 0 0.00839 0 0 0 0.03299 0 0 0.004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00948 0 0.01759 0.02285 0 0 0 0.00815 0 0 0 0 0 0 0.03543 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00349 0.00739 0.01143 0 0 0 0 0 0.01173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01119 0 0 0.0015 0 0.02493 0 0 0 0 0 0 0 0.00054 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_macacae 0 0 0 0.0414 0 0 0 0 0.00416 0 1.52529 0 0 0.03367 0 0 0.00251 0 0.10863 0 0 0.31244 0.00686 0 0.07706 0 0 0.06978 0 0 0.07133 0.2929 0.22587 0 0.11819 0.04384 0.05401 0 0 0 0.41478 0.07418 0.08727 0.00508 0.49461 0.08543 0 0.07208 0.00262 0.02802 0 0.05962 0.49137 0.05934 0 0.40002 0 0 0.10525 0.04601 0.00768 0 0.01239 0 0 0.23929 0.18367 0 0.21585 0.06855 0.10065 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_macacae|t__GCF_000220865 0 0 0 0.0414 0 0 0 0 0.00416 0 1.52529 0 0 0.03367 0 0 0.00251 0 0.10863 0 0 0.31244 0.00686 0 0.07706 0 0 0.06978 0 0 0.07133 0.2929 0.22587 0 0.11819 0.04384 0.05401 0 0 0 0.41478 0.07418 0.08727 0.00508 0.49461 0.08543 0 0.07208 0.00262 0.02802 0 0.05962 0.49137 0.05934 0 0.40002 0 0 0.10525 0.04601 0.00768 0 0.01239 0 0 0.23929 0.18367 0 0.21585 0.06 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_meningitidis 0.00934 0.58416 0 0.16734 0 0.00443 0 0.05519 0.00611 0 0.43084 0 0.06853 0 0 0.02883 0.00057 0.00961 0 0 0 0.33956 0 0.15171 0 0 0.00378 0.00383 0.00758 0.02847 0.1785 0 0.00407 0 0.17462 0.01872 0.0395 0.10806 0 0 0 0.00945 0.03281 0.0547 0.02421 0 0 0.01586 0.00864 0 0.01394 0 0.05331 0 0 0.01837 0.00494 0.02658 0 0 0 0.03411 0 0 0.03626 0 0.00936 0 0 0 0 0.0704 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_meningitidis|t__Neisseria_meningitidis_unclassified 0.00934 0.58416 0 0.16734 0 0.00443 0 0.05519 0.00611 0 0.43084 0 0.06853 0 0 0.02883 0.00057 0.00961 0 0 0 0.33956 0 0.15171 0 0 0.00378 0.00383 0.00758 0.02847 0.1785 0 0.00407 0 0.17462 0.01872 0.0395 0.10806 0 0 0 0.00945 0.03281 0.0547 0.02421 0 0 0.01586 0.00864 0 0.01394 0 0.05331 0 0 0.01837 0.00494 0.02658 0 0 0 0.0341 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_polysaccharea 0.00184 0.00471 0 0.0011 0 0.00053 0 0 0 0 0 0 0.00436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01309 0 0 0 0 0 0 0 0 0 0 0.00937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00372 0 0 0 0 0 0 0 0.01003 0 0 0 0 0 0 0 0 0 0 0 0 0.00183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00285 0.0844 0 0 0.00208 0 0 0 0.01659 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00038 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_polysaccharea|t__GCF_000176735 0.00184 0.00471 0 0.0011 0 0.00053 0 0 0 0 0 0 0.00436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01309 0 0 0 0 0 0 0 0 0 0 0.00937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00372 0 0 0 0 0 0 0 0.01003 0 0 0 0 0 0 0 0 0 0 0 0 0.00183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00285 0.0844 0 0 0.00208 0 0 0 0.01659 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_sicca 0.00679 0 0 0.01832 0 0.00425 0 0 0 0 1.58868 0 0.22714 0.02107 0.08402 3.75704 0.28715 0.01074 0.33084 0.04869 0 0.91717 0.24369 0.12434 1.30682 0 1.41373 0.19857 0.34066 0 1.75376 0.04006 0.03713 0.23344 0.22993 0.42859 1.15262 0.52349 0 0 0.16092 0.20894 0.47254 0.26515 0.63868 0.37834 0.0093 1.89842 0.03708 0.0167 0.00984 0.17511 1.62356 0.06593 0 0.3832 0.03854 0 0.16 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_sicca|t__Neisseria_sicca_unclassified 0.00679 0 0 0.01832 0 0.00425 0 0 0 0 1.58868 0 0.22714 0.02107 0.08402 3.75704 0.28715 0.01074 0.33084 0.04869 0 0.91717 0.24369 0.12434 1.30682 0 1.41373 0.19857 0.34066 0 1.75376 0.04006 0.03713 0.23344 0.22993 0.42859 1.15262 0.52349 0 0 0.16092 0.20894 0.47254 0.26515 0.63868 0.37834 0.0093 1.89842 0.03708 0.0167 0.00984 0.17511 1.62356 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_sp_GT4A_CT1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.97536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.33264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.03077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.32166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.48769 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_sp_GT4A_CT1|t__GCF_000227275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.97536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.33264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.03077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.32166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.48769 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_sp_oral_taxon_014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08332 0 0 0 0 0 0 0 0 0 0 0 0 0.84814 0 0 0 0 0 0 1.89028 0 0 0 0 0 0 0 0 0 0 0 0 0.53431 0 0.44068 0 0 0 0.78301 0 0 3.68531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.84714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.87807 0 0 0 0.59727 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.66302 0 0 0 0 1.07058 0 0 0.67571 0 0 0.15629 0 0.31121 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_sp_oral_taxon_014|t__GCF_000090875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08332 0 0 0 0 0 0 0 0 0 0 0 0 0.84814 0 0 0 0 0 0 1.89028 0 0 0 0 0 0 0 0 0 0 0 0 0.53431 0 0.44068 0 0 0 0.78301 0 0 3.68531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.84714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.87807 0 0 0 0.59727 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.66302 0 0 0 0 1.07058 0 0 0.67571 0 0 0. [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_subflava 0 0.01224 0 0.00087 0 0 0 0.51186 0.41329 0 0.07689 0 0.05035 0.06749 0.08235 0.14619 0.00612 0 0.59637 1.88896 0 0.03628 0.03232 0 0.18891 0.40419 0 0.51255 0.03345 0.33141 0.04975 0.2819 0.28803 0 0 0.11388 0.17613 0.0903 0 0.01882 0.79422 0.35105 0.03541 0.00476 0.63175 0.21108 0 0.6223 0.30663 0.06886 0.0665 0.05546 0.11562 0.28198 0 0.06104 0.02482 0.23068 0.00685 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_subflava|t__GCF_000173955 0 0.01224 0 0.00087 0 0 0 0.51186 0.41329 0 0.07689 0 0.05035 0.06749 0.08235 0.14619 0.00612 0 0.59637 1.88896 0 0.03628 0.03232 0 0.18891 0.40419 0 0.51255 0.03345 0.33141 0.04975 0.2819 0.28803 0 0 0.11388 0.17613 0.0903 0 0.01882 0.79422 0.35105 0.03541 0.00476 0.63175 0.21108 0 0.6223 0.30663 0.06886 0.0665 0.05546 0.11562 0.28198 0 0.06104 0.02482 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_unclassified 2.49551 4.08507 0 10.13367 0 1.8016 1.22394 7.43389 0.52819 0.15989 4.91731 0.0357 0.92146 0.80127 1.38152 12.57834 11.39615 0.18598 3.4914 5.88752 0 2.00759 0.79455 2.10336 4.52732 0 0.82747 0.98509 1.28419 3.76526 8.03352 3.76861 4.77921 0.93021 1.70769 1.13725 0 2.60171 0.01359 0.06878 1.98104 3.42052 1.60994 1.31608 0 2.50664 0.06758 3.4914 0.76583 0 0.04685 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Simonsiella 0 0.15128 0 0.53908 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03196 0 0 0 0 0 0 0 0 0.0069 0 0 0 0 0.02608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0373 0 0 0 0 0 0 0 0 0 0 0 0 0.04048 0 0 0 0 0.01419 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05993 0 0 0 0 0 0 0 0.06359 0 0 0 0 0 0.00062 0 0 0 0.00853 0 0.05347 0 0.06149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Simonsiella|s__Simonsiella_muelleri 0 0.15128 0 0.53908 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03196 0 0 0 0 0 0 0 0 0.0069 0 0 0 0 0.02608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0373 0 0 0 0 0 0 0 0 0 0 0 0 0.04048 0 0 0 0 0.01419 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05993 0 0 0 0 0 0 0 0.06359 0 0 0 0 0 0.00062 0 0 0 0.00853 0 0.05347 0 0.06149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Simonsiella|s__Simonsiella_muelleri|t__GCF_000163775 0 0.15128 0 0.53908 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03196 0 0 0 0 0 0 0 0 0.0069 0 0 0 0 0.02608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0373 0 0 0 0 0 0 0 0 0 0 0 0 0.04048 0 0 0 0 0.01419 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05993 0 0 0 0 0 0 0 0.06359 0 0 0 0 0 0.00062 0 0 0 0.00853 0 0.05347 0 0.06149 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0026 0 0 0 0 0 0 0 0 0.00504 0.06402 0 0 0 0 0 0 0 0 0 0 0 0 0.01433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0026 0 0 0 0 0 0 0 0 0.00504 0.06402 0 0 0 0 0 0 0 0 0 0 0 0 0.01433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfobacterales|f__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0026 0 0 0 0 0 0 0 0 0.00504 0.06402 0 0 0 0 0 0 0 0 0 0 0 0 0.01433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfobacterales|f__Desulfobulbaceae|g__Desulfobulbus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0026 0 0 0 0 0 0 0 0 0.00504 0.06402 0 0 0 0 0 0 0 0 0 0 0 0 0.01433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfobacterales|f__Desulfobulbaceae|g__Desulfobulbus|s__Desulfobulbus_sp_oral_taxon_041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0026 0 0 0 0 0 0 0 0 0.00504 0.06402 0 0 0 0 0 0 0 0 0 0 0 0 0.01433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01183 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfobacterales|f__Desulfobulbaceae|g__Desulfobulbus|s__Desulfobulbus_sp_oral_taxon_041|t__Desulfobulbus_sp_oral_taxon_041_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0026 0 0 0 0 0 0 0 0 0.00504 0.06402 0 0 0 0 0 0 0 0 0 0 0 0 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Bilophila 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Bilophila|s__Bilophila_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Bilophila|s__Bilophila_wadsworthia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Bilophila|s__Bilophila_wadsworthia|t__GCF_000185705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio|s__Desulfovibrio_desulfuricans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio|s__Desulfovibrio_desulfuricans|t__Desulfovibrio_desulfuricans_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio|s__Desulfovibrio_piger 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio|s__Desulfovibrio_piger|t__GCF_000156375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria 1.31922 0.05592 0 0.29833 0.31481 1.03689 0.02546 2.46531 0.15455 0.00278 0 0.73021 0.0689 2.79652 0.25792 0.0551 0.00583 0 0 0.30522 0.58216 0 0.06144 0 0.09954 0.69518 0.01045 0.20372 0.11757 0.36024 0.00103 0.06588 0.03743 0.40315 0.23378 0 0.76643 0.48221 0.021 0.03168 0.15375 0.03738 0.57424 0 0.19493 1.15972 2.15811 0.67603 0.63316 0.037 0.12193 0.038 0.17317 0.11895 0.54457 0.03716 0.0067 0.14293 0.00121 0 0.01529 1.17914 0.17 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales 1.31922 0.05592 0 0.29833 0.31481 1.03689 0.02546 2.46531 0.15455 0.00278 0 0.73021 0.0689 2.79652 0.25792 0.0551 0.00583 0 0 0.30522 0.58216 0 0.06144 0 0.09954 0.69518 0.01045 0.20372 0.11757 0.36024 0.00103 0.06588 0.03743 0.40315 0.23378 0 0.76643 0.48221 0.021 0.03168 0.15375 0.03738 0.57424 0 0.19493 1.15972 2.15811 0.67603 0.63316 0.037 0.12193 0.038 0.17317 0.11895 0.54457 0.03716 0.0067 0.14293 0.00121 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae 1.31922 0.05592 0 0.29833 0.31481 1.03689 0.02546 2.46531 0.15455 0.00278 0 0.73021 0.0689 2.79652 0.25792 0.0551 0.00583 0 0 0.30522 0.58216 0 0.06144 0 0.09954 0.69518 0.01045 0.20372 0.11757 0.36024 0.00103 0.06588 0.03743 0.40315 0.23378 0 0.76643 0.48221 0.021 0.03168 0.15375 0.03738 0.57424 0 0.19493 0.0833 0.03398 0.67603 0.63316 0.037 0.12193 0.038 0.17317 0.11895 0.54457 0.03716 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter 1.31922 0.05592 0 0.29833 0.31481 1.03689 0.02546 2.46531 0.15455 0.00278 0 0.73021 0.0689 2.79652 0.25792 0.0551 0.00583 0 0 0.30522 0.58216 0 0.06144 0 0.09954 0.69518 0.01045 0.20372 0.11757 0.36024 0.00103 0.06588 0.03743 0.40315 0.23378 0 0.76643 0.48221 0.021 0.03168 0.15375 0.03738 0.57424 0 0.19493 0.0833 0.03398 0.67603 0.63316 0.037 0.12193 0.038 0.17317 0.11895 0. [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_concisus 1.31199 0.04873 0 0.25678 0.14331 1.02845 0.02546 2.46531 0.15061 0.00278 0 0.51167 0.0689 2.3463 0.23369 0.02557 0.00583 0 0 0.26606 0.55868 0 0.05191 0 0.01506 0.69518 0.01045 0.13987 0.11757 0.10372 0.00103 0.06588 0.03743 0.02193 0.23378 0 0.36105 0.47786 0.021 0.01972 0.15375 0.02562 0.55665 0 0.08341 0.06379 0.03398 0.45807 0.59343 0.02453 0.1 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_concisus|t__GCF_000017725 1.31199 0.04873 0 0.25678 0.14331 1.02845 0.02546 2.46531 0.15061 0.00278 0 0.51167 0.0689 2.3463 0.23369 0.02557 0.00583 0 0 0.26606 0.55868 0 0.05191 0 0.01506 0.69518 0.01045 0.13987 0.11757 0.10372 0.00103 0.06588 0.03743 0.02193 0.23378 0 0.36105 0.47786 0.021 0.01972 0.15375 0.02562 0.55665 0 0.08341 0.06379 0.03398 0.45807 0. [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_curvus 0 0 0 0.01164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00173 0 0 0.00277 0 0 0 0 0.05499 0.00636 0.041 0.02182 0.01186 0 0 0.14234 0 0.24575 0 0.00768 0 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_curvus|t__Campylobacter_curvus_unclassified 0 0 0 0.01164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00173 0 0 0.00277 0 0 0 0 0.05499 0.00636 0.041 0.02182 0.01186 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_gracilis 0 0 0 0.01432 0.06975 0 0 0 0 0 0 0 0 0.00746 0 0 0 0 0 0 0.02348 0 0 0 0.05726 0 0 0 0 0.17618 0 0 0 0.2011 0 0 0.05979 0.00435 0 0.01197 0 0 0.01759 0 0 0 0 0.08693 0.00177 0 0 0 0 0 0.18655 0 0.00607 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02062 0 0 0.15796 0.1311 0 0.01475 0 0 0 0 0 0 0.23257 0 0 0.66656 0.00108 0.10641 0.00441 0 0 0.23536 0 0 0.05996 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_gracilis|t__GCF_000175875 0 0 0 0.01432 0.06975 0 0 0 0 0 0 0 0 0.00746 0 0 0 0 0 0 0.02348 0 0 0 0.05726 0 0 0 0 0.17618 0 0 0 0.2011 0 0 0.05979 0.00435 0 0.01197 0 0 0.01759 0 0 0 0 0.08693 0.00177 0 0 0 0 0 0.18655 0 0.00607 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02062 0 0 0.15796 0.1311 0 0.01475 0 0 0 0 0 0 0.23257 0 0 0.66656 0.00108 0.10641 0.00441 0 0 0.23536 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_hominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_hominis|t__GCF_000017585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_rectus 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01513 0.01802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1068 0 0 0 0 0.00256 0 0.02529 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04821 0 0 0 0 0 0 0 0 0 0.00723 0.10191 0.19814 0.02909 0.00211 0.1978 0 0.0518 0.01977 0 3.6927 0.39274 0.742 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_rectus|t__GCF_000174175 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01513 0.01802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1068 0 0 0 0 0.00256 0 0.02529 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04821 0 0 0 0 0 0 0 0 0 0.00723 0.10191 0.19814 0.02909 0.00211 0.1978 0 0.0518 0.01977 0 3.6 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_showae 0.00723 0.0072 0 0.01559 0.10175 0.00843 0 0 0.00394 0 0 0.21854 0 0.42763 0.00621 0.02953 0 0 0 0.03917 0 0 0.00953 0 0.02722 0 0 0.06385 0 0.0485 0 0 0 0.18011 0 0 0.34559 0 0 0 0 0.01176 0 0 0.11152 0.0195 0 0.13102 0.03795 0.01247 0 0.0041 0.03469 0.00184 0.00669 0.02823 0 0 0.00121 0 0 0 0 0 0.01326 0.06617 0 0.10848 0.24812 0.00207 0.01175 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_showae|t__Campylobacter_showae_unclassified 0.00723 0.0072 0 0.01559 0.10175 0.00843 0 0 0.00394 0 0 0.21854 0 0.42763 0.00621 0.02953 0 0 0 0.03917 0 0 0.00953 0 0.02722 0 0 0.06385 0 0.0485 0 0 0 0.18011 0 0 0.34559 0 0 0 0 0.01176 0 0 0.11152 0.0195 0 0.13102 0.03795 0.01247 0 0.0041 0.03469 0.00184 0.00669 0.02823 0 0 0.00121 0 0 0 0 0 0.01326 0.06617 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_showae|t__GCF_000175655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_showae|t__GCF_000313615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_showae|t__GCF_000344295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.40444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_sp_10_1_50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_sp_10_1_50|t__GCF_000238755 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_ureolyticus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_ureolyticus|t__Campylobacter_ureolyticus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Helicobacteraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.07642 2.12413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07954 0.04069 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Helicobacteraceae|g__Helicobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.07642 2.12413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07954 0.04069 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Helicobacteraceae|g__Helicobacter|s__Helicobacter_pylori 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.07642 2.12413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Helicobacteraceae|g__Helicobacter|s__Helicobacter_pylori|t__Helicobacter_pylori_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.07642 2.12413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria 20.83744 26.2435 27.26389 29.28365 4.59849 19.23884 22.06763 14.25237 14.4249 34.43471 13.83034 34.87838 45.94309 6.85116 33.8081 30.87064 54.18806 4.72305 10.16781 52.96635 6.8063 27.14353 22.1088 6.40318 41.47049 9.19844 51.2614 36.42181 13.0883 42.32281 56.37967 35.25443 27.94225 35.88023 7.3204 13.45433 10.54191 17.83362 43.13195 43.61361 12.92549 47.31273 12.20406 13.44486 29.77496 30.51984 8.80042 12.57068 17.38232 40.51105 22.11 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales 0.00014 0.00188 0 0.00562 0.00416 0 0 0 0.02332 0 0 0 0 0 0 0.01242 0.00215 0 0 0.02701 0 0.0382 0 0 0.07996 0 0 0 0 0.06373 0.01925 0.00261 0.01395 0.1861 0 0 0.12719 0 0 0 0.02646 0 0.02296 0 0.02782 0.15808 0 0.06469 0.00605 0.00954 0 0.01815 0.01707 0.0237 0 0.0514 0 0 0.21295 0 0.00775 0 0 0 0 0.01456 0 0.011 0.04497 0.00797 0.15106 0.0092 0 0 0.01685 0 0.01009 0 0.04344 0 0 0 0 0.02714 0 0.07893 0.21579 0.001 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae 0.00014 0.00188 0 0.00562 0.00416 0 0 0 0.02332 0 0 0 0 0 0 0.01242 0.00215 0 0 0.02701 0 0.0382 0 0 0.07996 0 0 0 0 0.06373 0.01925 0.00261 0.01395 0.1861 0 0 0.12719 0 0 0 0.02646 0 0.02296 0 0.02782 0.15808 0 0.06469 0.00605 0.00954 0 0.01815 0.01707 0.0237 0 0.0514 0 0 0.21295 0 0.00775 0 0 0 0 0.01456 0 0.011 0.04497 0.00797 0.15106 0.0092 0 0 0.01685 0 0.01009 0 0.04344 0 0 0 0 0.02714 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacteriaceae_unclassified 0.00014 0.00062 0 0.00344 0.00416 0 0 0 0 0 0 0 0 0 0 0 0.00215 0 0 0.02701 0 0.02639 0 0 0.0095 0 0 0 0 0.05288 0 0 0.00808 0.05605 0 0 0.10149 0 0 0 0.0207 0 0.01124 0 0.00064 0.07214 0 0.01547 0 0 0 0.01649 0.01707 0.0068 0 0 0 0 0 0 0.00262 0 0 0 0 0.00557 0 0.011 0.04497 0.00426 0.09921 0.0092 0 0 0.00706 0 0.00901 0 0.01896 0 0 0 0 0.02714 0 0.04412 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacterium 0 0.00125 0 0.00218 0 0 0 0 0.02332 0 0 0 0 0 0 0.01242 0 0 0 0 0 0.01181 0 0 0.07046 0 0 0 0 0.01085 0.01925 0.00261 0.00587 0.13005 0 0 0.0257 0 0 0 0.00576 0 0.01171 0 0.02718 0.08594 0 0.04922 0.00605 0.00954 0 0.00165 0 0.0169 0 0.0514 0 0 0.21295 0 0.00513 0 0 0 0 0.009 0 0 0 0.00371 0.05185 0 0 0 0.00979 0 0.00108 0 0.02448 0 0 0 0 0 0 0.03481 0.14015 0 0 0.01729 0 0. [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacterium|s__Cardiobacterium_hominis 0 0.00125 0 0.00218 0 0 0 0 0.02332 0 0 0 0 0 0 0.01242 0 0 0 0 0 0.01181 0 0 0.07046 0 0 0 0 0.01085 0.01925 0.00261 0.00587 0.11004 0 0 0.0257 0 0 0 0.00576 0 0.01171 0 0.02718 0.08594 0 0.04922 0.00605 0.00954 0 0.00165 0 0.0169 0 0.04653 0 0 0.21295 0 0.00513 0 0 0 0 0.009 0 0 0 0.00371 0.05185 0 0 0 0.00979 0 0.00108 0 0.02448 0 0 0 0 0 0 0.03 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacterium|s__Cardiobacterium_hominis|t__GCF_000160655 0 0.00125 0 0.00218 0 0 0 0 0.02332 0 0 0 0 0 0 0.01242 0 0 0 0 0 0.01181 0 0 0.07046 0 0 0 0 0.01085 0.01925 0.00261 0.00587 0.11004 0 0 0.0257 0 0 0 0.00576 0 0.01171 0 0.02718 0.08594 0 0.04922 0.00605 0.00954 0 0.00165 0 0.0169 0 0.04653 0 0 0.21295 0 0.00513 0 0 0 0 0.009 0 0 0 0.00371 0.05185 0 0 0 0.00979 0 0.00108 0 0.02448 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacterium|s__Cardiobacterium_valvarum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03376 0 0.0007 0 0 0 0 0 0.00338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01907 0.2059 0.07852 0.34548 0.00131 0.02845 0.50302 0.07605 0.00041 0.29705 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacterium|s__Cardiobacterium_valvarum|t__GCF_000239355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03376 0 0.0007 0 0 0 0 0 0.00338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01907 0.2059 0.07852 0.34548 0.00131 0.02845 0.50302 0.0760 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales 0 0.00421 0 0 0 0 0 0.10622 0 0 0 0.00915 0 0 0 0 0 0 0 0.03298 0 0 0 0 0 0.03559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06912 0 0 0 0.05667 0 0 0 0 0 0 0 0 0.03109 0 0 0 0 0 0 0 0 0.0167 0 0.01116 0.04722 0 0.01484 0 0 0.0073 0 0 0 0.02379 0 0 0.16305 0.00541 0 0 0 0 0 0 0 0 0 0 0 0 0.03736 0 0 0 0 0.06634 0 0 0.08223 0 0 0 1.88678 0 0 0.0018 0 0 0 0 0 0.00168 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae 0 0.00421 0 0 0 0 0 0.10622 0 0 0 0.00915 0 0 0 0 0 0 0 0.03298 0 0 0 0 0 0.03559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06912 0 0 0 0.05667 0 0 0 0 0 0 0 0 0.03109 0 0 0 0 0 0 0 0 0.0167 0 0.01116 0.04722 0 0.01484 0 0 0.0073 0 0 0 0.02379 0 0 0.16305 0.00541 0 0 0 0 0 0 0 0 0 0 0 0 0.03736 0 0 0 0 0.06634 0 0 0.08223 0 0 0 1.88678 0 0 0.0018 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Buchnera 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Buchnera|s__Buchnera_aphidicola 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Buchnera|s__Buchnera_aphidicola|t__Buchnera_aphidicola_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Citrobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Citrobacter|s__Citrobacter_freundii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Citrobacter|s__Citrobacter_freundii|t__Citrobacter_freundii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Citrobacter|s__Citrobacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacteriaceae_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacteriaceae_noname|s__Enterobacteriaceae_bacterium_9_2_54FAA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacteriaceae_noname|s__Enterobacteriaceae_bacterium_9_2_54FAA|t__GCF_000185685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter|s__Enterobacter_aerogenes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter|s__Enterobacter_aerogenes|t__Enterobacter_aerogenes_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter|s__Enterobacter_cloacae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter|s__Enterobacter_cloacae|t__Enterobacter_cloacae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia 0 0.00421 0 0 0 0 0 0.10622 0 0 0 0.00915 0 0 0 0 0 0 0 0.03298 0 0 0 0 0 0.03559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06912 0 0 0 0.05667 0 0 0 0 0 0 0 0 0.03109 0 0 0 0 0 0 0 0 0.0167 0 0.01116 0.04722 0 0.01484 0 0 0.0073 0 0 0 0.02379 0 0 0.16305 0.00541 0 0 0 0 0 0 0 0 0 0 0 0 0.03736 0 0 0 0 0 0 0 0.08223 0 0 0 1.88678 0 0 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia|s__Escherichia_coli 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00815 0 0 0 0 0 0 0 0 0 0 0 0 0.01575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0073 0 0 0 0.00921 0 0 0 0.00541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05536 0 0 0 1.88678 0 0 0 0 0 0 0 0 0.00132 0 0 0 0 0 0 0 0 0 0 0.00158 0.0008 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia|s__Escherichia_coli|t__Escherichia_coli_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00815 0 0 0 0 0 0 0 0 0 0 0 0 0.01575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0073 0 0 0 0.00921 0 0 0 0.00541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05536 0 0 0 1.88678 0 0 0 0 0 0 0 0 0.00132 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia|s__Escherichia_unclassified 0 0.00421 0 0 0 0 0 0.10622 0 0 0 0.00915 0 0 0 0 0 0 0 0.03298 0 0 0 0 0 0.03559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06096 0 0 0 0.05667 0 0 0 0 0 0 0 0 0.01533 0 0 0 0 0 0 0 0 0.0167 0 0.01116 0.04722 0 0.01484 0 0 0 0 0 0 0.01458 0 0 0.16305 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03736 0 0 0 0 0 0 0 0.02687 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Klebsiella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Klebsiella|s__Klebsiella_pneumoniae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Klebsiella|s__Klebsiella_pneumoniae|t__Klebsiella_pneumoniae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Klebsiella|s__Klebsiella_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Pantoea 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Pantoea|s__Pantoea_ananatis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Pantoea|s__Pantoea_ananatis|t__Pantoea_ananatis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Pantoea|s__Pantoea_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Proteus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Proteus|s__Proteus_mirabilis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Proteus|s__Proteus_mirabilis|t__Proteus_mirabilis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia|s__Serratia_proteamaculans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia|s__Serratia_proteamaculans|t__GCF_000018085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Shigella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Shigella|s__Shigella_flexneri 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Shigella|s__Shigella_flexneri|t__Shigella_flexneri_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Yersinia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Yersinia|s__Yersinia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Oceanospirillales|f__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Oceanospirillales|f__Hahellaceae|g__Hahellaceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales 20.8373 26.22984 27.26389 29.27803 4.59433 19.23884 22.06763 14.14614 14.40158 34.43471 13.83034 34.86923 45.94309 6.85116 33.8081 30.85822 54.18591 4.61331 10.16781 52.55097 6.8063 27.10533 22.1088 5.85056 41.39053 9.16285 51.2614 36.42181 13.0883 42.25908 56.36041 35.25182 27.9283 35.69413 7.06985 13.45433 10.41472 17.83362 43.13195 43.61361 12.89902 47.31273 12.16136 13.40756 29.74714 30.36176 8.80042 12.44525 17.3 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae 20.8373 26.22984 27.26389 29.27803 4.59433 19.23884 22.06763 14.14614 14.40158 34.43471 13.83034 34.86923 45.94309 6.85116 33.8081 30.85822 54.18591 4.61331 10.16781 52.55097 6.8063 27.10533 22.1088 5.85056 41.39053 9.16285 51.2614 36.42181 13.0883 42.25908 56.36041 35.25182 27.9283 35.69413 7.06985 13.45433 10.41472 17.83362 43.13195 43.61361 12.89902 47.31273 12.16136 13.40756 29.74714 30.36176 8. [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Actinobacillus 0.15263 0.07373 0.013 0.02033 0.08801 0.02999 0.5331 0.49191 0.49651 0.56425 0 0.30607 4.73635 0.09559 0.02801 0.11989 0.01935 0.29094 0.16966 1.0888 0.02903 0.68328 0.53035 0 0.5517 0.25141 1.83444 0.39951 0.09862 0.49886 0.01333 0.46295 0.58228 0.8089 0.40376 0.38946 0.57863 0.26515 0.29598 0.25864 0.78658 0.37739 0.05834 0.14363 1.68278 0.43455 0.12151 0.14925 1.26448 2.43174 0. [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Actinobacillus|s__Actinobacillus_unclassified 0.15263 0.07373 0.013 0.02033 0.08801 0.02999 0.5331 0.49191 0.49651 0.56425 0 0.30607 4.73635 0.09559 0.02801 0.11989 0.01935 0.29094 0.16966 1.0888 0.02903 0.68328 0.53035 0 0.5517 0.25141 1.83444 0.39951 0.09862 0.49886 0.01333 0.46295 0.58228 0.8089 0.40376 0.38946 0.57863 0.26515 0.29598 0.25864 0.78658 0.37739 0.05834 0.14363 1.68278 0.43455 0.1 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter 0.06808 0.0053 0.00093 0 1.35402 0.05945 0.24216 1.06192 0.04101 1.73125 0.3598 0.00572 0.0987 0.1589 0.03285 0.11496 0.33302 0 1.26503 0.10683 0.01474 0.8608 0.04997 0 0.23126 0 0.13831 0.48049 0.0095 0.26228 0.04421 0.04019 0.00732 0.1941 0 0.04832 4.77024 0.39864 0 0 1.05464 0.40277 0.04019 0.01021 0.59804 0.54 0.19239 3.55524 0.17389 0.15542 0.21384 0.37593 0.32973 0.1252 0.54 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_actinomycetemcomitans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.22714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00012 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_actinomycetemcomitans|t__Aggregatibacter_actinomycetemcomitans_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.22714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01477 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_aphrophilus 0.06515 0 0 0 0 0.02827 0 0.99251 0.0106 0.08299 0 0 0.01865 0 0 0.00629 0.32258 0 0.42528 0.05106 0 0.09046 0 0 0 0 0 0.25714 0.0095 0.00306 0 0.04019 0.00732 0.16731 0 0 0.18982 0 0 0 0 0.27679 0 0 0.44149 0.14118 0 0.06555 0.05735 0.00699 0 0.0213 0 0.08588 0 0.09738 0.25952 0 0.57092 0 0 0 0 0 0 0.02774 0 0.01684 0 0.1514 0.09713 0 0 0 0 0.02057 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_aphrophilus|t__Aggregatibacter_aphrophilus_unclassified 0.06515 0 0 0 0 0.02827 0 0.99251 0.0106 0.08299 0 0 0.01865 0 0 0.00629 0.32258 0 0.42528 0.05106 0 0.09046 0 0 0 0 0 0.25714 0.0095 0.00306 0 0.04019 0.00732 0.16731 0 0 0.18982 0 0 0 0 0.27679 0 0 0.44149 0.14118 0 0.06555 0.05735 0.00699 0 0.0213 0 0.08588 0 0.09738 0.25952 0 0.57092 0 0 0 0 0 0 0.02774 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_segnis 0.00293 0.00127 0 0 0.14098 0.03119 0 0.06941 0.01808 0.2332 0 0 0.05104 0.03281 0.00134 0.06916 0.01045 0 0 0 0 0.18952 0.04997 0 0.01808 0 0 0.03165 0 0.04472 0.01039 0 0 0.02679 0 0.00631 0.23528 0.0697 0 0 0 0.12599 0.00877 0 0.15655 0.00374 0.00414 0.19722 0.0285 0.10591 0 0.12074 0.06534 0.03932 0.12326 0.02954 0.01598 0 0.1334 0 0 0 0.00944 0.22553 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_segnis|t__GCF_000185305 0.00293 0.00127 0 0 0.14098 0.03119 0 0.06941 0.01808 0.2332 0 0 0.05104 0.03281 0.00134 0.06916 0.01045 0 0 0 0 0.18952 0.04997 0 0.01808 0 0 0.03165 0 0.04472 0.01039 0 0 0.02679 0 0.00631 0.23528 0.0697 0 0 0 0.12599 0.00877 0 0.15655 0.00374 0.00414 0.19722 0.0285 0.10591 0 0.12074 0.06534 0.03932 0.12326 0.02954 0.01598 0 0.1334 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_sp_oral_taxon_458 0 0 0 0 0 0 0 0 0 1.41505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.34515 0 0 0 0 0 0 0 0 0 0 3.29247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.32038 2.2517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.79606 0 0 0 0 0 0 0 0 0 0 0 2.31553 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.29012 0 0 0 2.33194 0 0 0 0.50258 1.08241 0 1.86682 2.70692 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_sp_oral_taxon_458|t__GCF_000466335 0 0 0 0 0 0 0 0 0 1.41505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.34515 0 0 0 0 0 0 0 0 0 0 3.29247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.32038 2.2517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.79606 0 0 0 0 0 0 0 0 0 0 0 2.31553 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.29012 0 0 0 2.33194 0 0 0 0.50258 1.08241 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_unclassified 0 0.00403 0.00093 0 1.21305 0 0.24216 0 0.01234 0 0.3598 0.00572 0.02902 0.12609 0.03151 0.0395 0 0 0.83975 0.05576 0.01474 0.58082 0 0 0.21318 0 0.13831 0.1917 0 0.21451 0.03382 0 0 0 0 0.04201 0 0.32894 0 0 1.05464 0 0.03142 0.01021 0 0.39508 0.18825 0 0.08804 0.04252 0.21384 0.23389 0.26438 0 0.41735 0.06223 0 0 0 0 0.04917 0.02113 0.04812 1.246 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus 20.61659 26.15081 27.24995 29.2577 3.1523 19.1494 21.29237 12.59231 13.86406 32.1392 13.47053 34.55743 41.10804 6.59667 33.74724 30.62337 53.83353 4.32237 8.73312 51.35535 6.76252 25.56124 21.52848 5.85056 40.60757 8.91144 49.28865 35.53675 12.98017 41.49793 56.30287 34.74868 27.3387 34.69113 6.66609 13.01654 5.06584 17.16983 42.83596 43.35497 11.0578 46.53256 12.06283 13.25372 27.466 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_aegyptius 0 0 0 0 0.04938 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.7485 0 0 0 0 0.04344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01553 0 0 0 0 0 0 0 0 0 0 0 0 0.02046 0 0 0 0 0 0 0 0 0.00801 0.00172 0 0 0 0 0 0 0 0 0.00053 0 0.0008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_aegyptius|t__GCF_000195005 0 0 0 0 0.04938 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.7485 0 0 0 0 0.04344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01553 0 0 0 0 0 0 0 0 0 0 0 0 0.02046 0 0 0 0 0 0 0 0 0.00801 0.00172 0 0 0 0 0 0 0 0 0.00053 0 0.0008 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_haemolyticus 0.31295 3.32864 26.96679 1.02152 0.24962 3.71073 1.06464 2.12048 0.57803 1.11625 0 3.91628 3.54256 0.21016 0.29104 0.27023 0.25388 0.40622 0.8134 0.80762 0.16069 0.67157 0.922 0.10738 0.55089 0.3232 0.05093 4.02155 5.61261 1.11337 14.29842 1.3244 0.19646 1.73729 1.97542 0.22632 0.38509 1.13736 0 0 0.10877 0.87009 0.0327 11.06745 5.92291 0.8515 0.86746 1.657 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_haemolyticus|t__GCF_000262285 0.31295 3.32864 26.96679 1.02152 0.24962 3.71073 1.06464 2.12048 0.57803 1.11625 0 3.91628 3.54256 0.21016 0.29104 0.27023 0.25388 0.40622 0.8134 0.80762 0.16069 0.67157 0.922 0.10738 0.55089 0.3232 0.05093 4.02155 5.61261 1.11337 14.29842 1.3244 0.19646 1.73729 1.97542 0.22632 0.38509 1.13736 0 0 0.10877 0.87009 0.0327 11.06745 5.92291 0.8 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_influenzae 0.0058 0.0021 0 0 0.23938 0.00859 0 0 0 0 0 0 0.07427 0.22906 0.31807 0 0.00418 0 0 0 0.14875 0.52468 0.00805 0 0 0.15715 0 0 0.01029 0 0 0 0.15884 0.00371 0 0 0 1.55368 0 0 0 0 0 0 10.71155 0 0 0 0 9.53679 0 0 0 0 0.20652 0 0.0266 0 0.0351 0 0 0 0 0.09877 0.00663 0 0 0.08032 0 0.00256 0 0 0 0 0.16777 0 0 0.03592 0 0 0 0.19868 0 0 0 9.05234 0 0 2.8882 0 8.016 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_influenzae|t__Haemophilus_influenzae_unclassified 0.0058 0.0021 0 0 0.23938 0.00859 0 0 0 0 0 0 0.07427 0.22906 0.31807 0 0.00418 0 0 0 0.14875 0.52468 0.00805 0 0 0.15715 0 0 0.01029 0 0 0 0.15884 0.00371 0 0 0 1.55368 0 0 0 0 0 0 10.71155 0 0 0 0 9.53679 0 0 0 0 0.20652 0 0.0266 0 0.0351 0 0 0 0 0.09877 0.00663 0 0 0.08032 0 0.00256 0 0 0 0 0.16777 0 0 0.03592 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_parahaemolyticus 0 0 0 0 0 0 1.61028 0 0.71885 0.36283 0 0 0.0588 0.10111 0 0 0.00147 0.39874 0 0 0 0 0.03247 0 0.06185 0.03897 1.66349 0.47556 0.15841 0.48373 0 0.01278 0.00659 0 0 0.03924 1.3919 0 0 0 0.04163 0.03547 0.09145 0 0.01601 1.39727 0 0 1.30128 0.24222 1.33812 0 0 0 0 0.08477 0.03917 0.04678 0 0.07646 0 0 0.12656 0 1.41041 0.05427 0 0 0 0.01184 0 0 0 0 0 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_parahaemolyticus|t__GCF_000262265 0 0 0 0 0 0 1.61028 0 0.71885 0.36283 0 0 0.0588 0.10111 0 0 0.00147 0.39874 0 0 0 0 0.03247 0 0.06185 0.03897 1.66349 0.47556 0.15841 0.48373 0 0.01278 0.00659 0 0 0.03924 1.3919 0 0 0 0.04163 0.03547 0.09145 0 0.01601 1.39727 0 0 1.30128 0.24222 1.33812 0 0 0 0 0.08477 0.03917 0.04678 0 0.07646 0 0 0.12656 0 1.41041 0.05427 0 0 0 0.01 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_parainfluenzae 20.29784 22.75737 0.28316 28.23618 2.61392 15.43007 16.3923 6.83756 11.73352 30.00896 13.47053 30.56387 10.58603 5.68885 31.67001 29.73111 53.56747 2.92246 7.50578 47.11464 6.45309 24.11507 19.65378 5.74319 39.79658 7.13063 47.35863 30.59164 6.86564 39.3901 41.95335 32.43928 26.13899 31.60571 3.5601 11.44687 3.18644 13.53275 42.83596 43.35497 8.22515 43.5 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_parainfluenzae|t__Haemophilus_parainfluenzae_unclassified 20.29784 22.75737 0.28316 28.23618 2.61392 15.43007 16.3923 6.83756 11.73352 30.00896 13.47053 30.56387 10.58603 5.68885 31.67001 29.73111 53.56747 2.92246 7.50578 47.11464 6.45309 24.11507 19.65378 5.74319 39.79658 7.13063 47.35863 30.59164 6.86564 39.3901 41.95335 32.43928 26.13899 31.60571 3.5601 11.44687 3.18 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_paraphrohaemolyticus 0 0 0 0 0 0 0.13059 3.09285 0.67845 0.05466 0 0.07728 26.84638 0.06712 0 0.39503 0 0.38973 0 1.28963 0 0.05971 0.8122 0 0.10619 0 0.21561 0.1133 0.03298 0.36354 0 0.8318 0.69892 1.34443 1.08889 1.15361 0.10241 0.27301 0 0 1.01729 0.67389 0.01886 0.31571 5.06393 0.16779 0 0 0.17925 6.88386 0.13169 0.00133 0 0.01165 0 0.04031 0.00699 0.47548 0.00155 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_paraphrohaemolyticus|t__GCF_000260675 0 0 0 0 0 0 0.13059 3.09285 0.67845 0.05466 0 0.07728 26.84638 0.06712 0 0.39503 0 0.38973 0 1.28963 0 0.05971 0.8122 0 0.10619 0 0.21561 0.1133 0.03298 0.36354 0 0.8318 0.69892 1.34443 1.08889 1.15361 0.10241 0.27301 0 0 1.01729 0.67389 0.01886 0.31571 5.06393 0.16779 0 0 0.17925 6.88386 0.13169 0.00133 0 0.01165 0 0.04031 0.00699 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_pittmaniae 0 0 0 0 0 0 0 0 0.10819 0.0477 0 0 0 0.05345 1.13381 0 0 0 0 0.18723 0 0 0 0 0 0 0 0 0 0.03521 0 0 0 0 0 0 0 0.02928 0 0 0 0 0 0 0 0 0 0 0 0 0.01798 0 0 0 0 0 0 0 0 0 0 0 0 0 0.34062 0 0 0.09788 0 0 0 0 0 0 0 0 0 0 0 0 0.77574 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02053 0 0 0.00075 0 0.01484 0 0 0 0 0 0 0.16219 0 0 0 0 0 0.20348 0 0 0 0.12333 0 0.05601 0 0.1204 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_pittmaniae|t__GCF_000223275 0 0 0 0 0 0 0 0 0.10819 0.0477 0 0 0 0.05345 1.13381 0 0 0 0 0.18723 0 0 0 0 0 0 0 0 0 0.03521 0 0 0 0 0 0 0 0.02928 0 0 0 0 0 0 0 0 0 0 0 0 0.01798 0 0 0 0 0 0 0 0 0 0 0 0 0 0.34062 0 0 0.09788 0 0 0 0 0 0 0 0 0 0 0 0 0.77574 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02053 0 0 0.00075 0 0.01484 0 0 0 0 0 0 0.16219 0 0 0 0 0 0.20348 0 0 0 0.12333 0 0.056 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_sputorum 0 0.0627 0 0 0 0 2.09456 0.54142 0.04701 0.5488 0 0 0 0.24692 0.33432 0.22699 0.00653 0.20522 0.41394 1.95622 0 0.19021 0.09998 0 0.09206 1.26149 0 0.33471 0.30024 0.11198 0.05109 0.14042 0.1389 0 0.04167 0.1505 0 0.64376 0 0 1.66497 1.41328 0 0.00232 0.41884 1.05469 0.45136 0 2.51372 1.44443 0.08375 0.28153 0.09399 0.12689 0 0.05051 0.02444 0.08235 0.03979 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_sputorum|t__Haemophilus_sputorum_unclassified 0 0.0627 0 0 0 0 2.09456 0.54142 0.04701 0.5488 0 0 0 0.24692 0.33432 0.22699 0.00653 0.20522 0.41394 1.95622 0 0.19021 0.09998 0 0.09206 1.26149 0 0.33471 0.30024 0.11198 0.05109 0.14042 0.1389 0 0.04167 0.1505 0 0.64376 0 0 1.66497 1.41328 0 0.00232 0.41884 1.05469 0.45136 0 2.51372 1.44443 0.08375 0.28153 0.09399 0.12689 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Pasteurella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00186 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0138 0 0 0 0 0 0 0 0 0 0 0.07805 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00228 0 0 0 0 0 0.00826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00905 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00168 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Pasteurella|s__Pasteurella_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00186 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0138 0 0 0 0 0 0 0 0 0 0 0.07805 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00228 0 0 0 0 0 0.00826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00905 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales 0 0.00756 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10974 0 0.35538 0 0 0 0.55262 0 0 0 0 0 0 0 0 0 0 0.25055 0 0 0 0 0 0 0 0 0.03731 0 0 0 0.06074 0 0 0 0 0.1301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01531 0 0 0 0 0 0 0.30088 0 0 0 0 0 0 0 0 0 0.00323 0 0 0 0 0 0 0 0 0 0 0 0 0.00532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00506 0 0 0 0 0 0 0 0 0.0028 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_baumannii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_baumannii|t__Acinetobacter_baumannii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_bereziniae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_bereziniae|t__Acinetobacter_bereziniae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_johnsonii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_johnsonii|t__Acinetobacter_johnsonii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_junii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_junii|t__Acinetobacter_junii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_lwoffii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_lwoffii|t__Acinetobacter_lwoffii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_radioresistens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_radioresistens|t__Acinetobacter_radioresistens_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_ursingii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_ursingii|t__Acinetobacter_ursingii_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Enhydrobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Enhydrobacter|s__Enhydrobacter_aerosaccus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Enhydrobacter|s__Enhydrobacter_aerosaccus|t__GCF_000175915 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Moraxella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Moraxella|s__Moraxella_catarrhalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Moraxella|s__Moraxella_catarrhalis|t__Moraxella_catarrhalis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae 0 0.00756 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10974 0 0.35538 0 0 0 0.55262 0 0 0 0 0 0 0 0 0 0 0.25055 0 0 0 0 0 0 0 0 0.03731 0 0 0 0.06074 0 0 0 0 0.06104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01531 0 0 0 0 0 0 0.30088 0 0 0 0 0 0 0 0 0 0.00323 0 0 0 0 0 0 0 0 0 0 0 0 0.00532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00506 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas 0 0.00756 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10974 0 0.35538 0 0 0 0.55262 0 0 0 0 0 0 0 0 0 0 0.25055 0 0 0 0 0 0 0 0 0.03731 0 0 0 0.06074 0 0 0 0 0.06104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01531 0 0 0 0 0 0 0.30088 0 0 0 0 0 0 0 0 0 0.00323 0 0 0 0 0 0 0 0 0 0 0 0 0.00532 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_alcaligenes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_alcaligenes|t__Pseudomonas_alcaligenes_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_fragi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_fragi|t__Pseudomonas_fragi_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_unclassified 0 0.00756 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10974 0 0.35538 0 0 0 0.55262 0 0 0 0 0 0 0 0 0 0 0.25055 0 0 0 0 0 0 0 0 0.03731 0 0 0 0.06074 0 0 0 0 0.06104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01531 0 0 0 0 0 0 0.089 0 0 0 0 0 0 0 0 0 0.00323 0 0 0 0 0 0 0 0 0 0 0 0 0.00532 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Xanthomonadales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Xanthomonadales|f__Sinobacteraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Xanthomonadales|f__Sinobacteraceae|g__Sinobacteraceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes 0.00638 0 0 0 0.05873 0.00013 0 0 0.00251 0 0 0 0 0.06611 0.15495 0 0 0 0 0 0.03846 0 0 0 0 0 0 0 0.00634 0.06723 0 0 0 0 0 0 0 0 0 0 0 0.00077 0.02156 0 0.00088 0 0 0.0549 0.1292 0 0 0 0 0 0.08528 0 0 0 0 0 0 0 0 0 0 0 0 0.02787 0 0 0.03721 0.0071 0.11459 1.8018 0 0 0.01388 0 0.05756 0 0.22642 0 0.03172 0.07075 0 0 0 0 0 0.05572 0 0 0 0 0 0.06947 0.17649 0 0 0.0023 0.00338 0 0 0.43887 0 0 0 0 0 0 0 0 0 0.0461 0.88276 1.19884 1.46985 0.01582 0.74907 0.18473 0. [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia 0.00638 0 0 0 0.05873 0.00013 0 0 0.00251 0 0 0 0 0.06611 0.15495 0 0 0 0 0 0.03846 0 0 0 0 0 0 0 0.00634 0.06723 0 0 0 0 0 0 0 0 0 0 0 0.00077 0.02156 0 0.00088 0 0 0.0549 0.1292 0 0 0 0 0 0.08528 0 0 0 0 0 0 0 0 0 0 0 0 0.02787 0 0 0.03721 0.0071 0.11459 1.8018 0 0 0.01388 0 0.05756 0 0.22642 0 0.03172 0.07075 0 0 0 0 0 0.05572 0 0 0 0 0 0.06947 0.17649 0 0 0.0023 0.00338 0 0 0.43887 0 0 0 0 0 0 0 0 0 0.0461 0.88276 1.19884 1.46985 0.01582 0. [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales 0.00638 0 0 0 0.05873 0.00013 0 0 0.00251 0 0 0 0 0.06611 0.15495 0 0 0 0 0 0.03846 0 0 0 0 0 0 0 0.00634 0.06723 0 0 0 0 0 0 0 0 0 0 0 0.00077 0.02156 0 0.00088 0 0 0.0549 0.1292 0 0 0 0 0 0.08528 0 0 0 0 0 0 0 0 0 0 0 0 0.02787 0 0 0.03721 0.0071 0.11459 1.8018 0 0 0.01388 0 0.05756 0 0.22642 0 0.03172 0.07075 0 0 0 0 0 0.05572 0 0 0 0 0 0.06947 0.17649 0 0 0.0023 0.00338 0 0 0.43887 0 0 0 0 0 0 0 0 0 0.0461 0.88276 1.19884 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Brachyspiraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Brachyspiraceae|g__Brachyspira 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Brachyspiraceae|g__Brachyspira|s__Brachyspira_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae 0.00638 0 0 0 0.05873 0.00013 0 0 0.00251 0 0 0 0 0.06611 0.15495 0 0 0 0 0 0.03846 0 0 0 0 0 0 0 0.00634 0.06723 0 0 0 0 0 0 0 0 0 0 0 0.00077 0.02156 0 0.00088 0 0 0.0549 0.1292 0 0 0 0 0 0.08528 0 0 0 0 0 0 0 0 0 0 0 0 0.02787 0 0 0.03721 0.0071 0.11459 1.8018 0 0 0.01388 0 0.05756 0 0.22642 0 0.03172 0.07075 0 0 0 0 0 0.05572 0 0 0 0 0 0.06947 0.17649 0 0 0.0023 0.00338 0 0 0.43887 0 0 0 0 0 0 0 0 0 0.04 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema 0.00638 0 0 0 0.05873 0.00013 0 0 0.00251 0 0 0 0 0.06611 0.15495 0 0 0 0 0 0.03846 0 0 0 0 0 0 0 0.00634 0.06723 0 0 0 0 0 0 0 0 0 0 0 0.00077 0.02156 0 0.00088 0 0 0.0549 0.1292 0 0 0 0 0 0.08528 0 0 0 0 0 0 0 0 0 0 0 0 0.02787 0 0 0.03721 0.0071 0.11459 1.8018 0 0 0.01388 0 0.05756 0 0.22642 0 0.03172 0.07075 0 0 0 0 0 0.05572 0 0 0 0 0 0.06947 0.17649 0 0 0.0023 0.00338 0 0 0.43887 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_denticola 0 0 0 0 0.03173 0 0 0 0.00251 0 0 0 0 0.04872 0.12006 0 0 0 0 0 0.02671 0 0 0 0 0 0 0 0.00634 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02156 0 0 0 0 0.01307 0.01547 0 0 0 0 0 0.0653 0 0 0 0 0 0 0 0 0 0 0 0 0.02787 0 0 0 0.00238 0.11459 1.05377 0 0 0 0 0.02235 0 0.15643 0 0.03172 0.02228 0 0 0 0 0 0.02307 0 0 0 0 0 0 0.17649 0 0 0 0 0 0 0.15219 0 0 0 0 0 0 0 0 0 0.02626 0.18569 0.37857 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_denticola|t__Treponema_denticola_unclassified 0 0 0 0 0.03173 0 0 0 0.00251 0 0 0 0 0.04872 0.12006 0 0 0 0 0 0.02671 0 0 0 0 0 0 0 0.00634 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02156 0 0 0 0 0.01307 0.01547 0 0 0 0 0 0.0653 0 0 0 0 0 0 0 0 0 0 0 0 0.02787 0 0 0 0.00238 0.11459 1.05377 0 0 0 0 0.02235 0 0.15643 0 0.03172 0.02228 0 0 0 0 0 0.02307 0 0 0 0 0 0 0.17649 0 0 0 0 0 0 0.15219 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_lecithinolyticum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00088 0 0 0.01746 0.03598 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02494 0 0.01734 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05349 0 0 0 0 0 0 0 0 0 0.01277 0.49013 0.10033 0.03909 0.00676 0.09293 0.18473 0.03668 0.13076 0.04631 2.09787 4.56446 1.36 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_lecithinolyticum|t__GCF_000468055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00088 0 0 0.01746 0.03598 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02494 0 0.01734 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05349 0 0 0 0 0 0 0 0 0 0.01277 0.49013 0.10033 0.03909 0.00676 0.09293 0.18473 0.03668 0.13076 0.04631 2.0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_maltophilum 0.00377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0137 0 0 0 0 0 0 0 0.02356 0 0 0 0 0 0 0 0 0 0.00065 0 0.23782 0.26214 0 0.00739 0 0 0 0.57073 1.24249 0.19459 0.38045 0.47831 0.70485 0.08686 0 0.27732 0.04361 0.0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_maltophilum|t__GCF_000413055 0.00377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0137 0 0 0 0 0 0 0 0.02356 0 0 0 0 0 0 0 0 0 0.00065 0 0.23782 0.26214 0 0.00739 0 0 0 0.57073 1.24249 0.19459 0.38045 0.47831 0.70485 0.08686 0 0. [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_medium 0 0 0 0 0.02568 0 0 0 0 0 0 0 0 0.009 0.02397 0 0 0 0 0 0.01175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01695 0.05056 0 0 0 0 0 0.01997 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.33479 0 0 0 0 0.01027 0 0.03126 0 0 0.00938 0 0 0 0 0 0.01943 0 0 0 0 0 0 0 0 0 0.00198 0.00338 0 0 0.09698 0 0 0 0 0 0 0 0 0 0.00369 0.15106 0.41662 0.18154 0.00107 0.22305 0 0.02232 0.0378 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_medium|t__GCF_000413035 0 0 0 0 0.02568 0 0 0 0 0 0 0 0 0.009 0.02397 0 0 0 0 0 0.01175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01695 0.05056 0 0 0 0 0 0.01997 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.33479 0 0 0 0 0.01027 0 0.03126 0 0 0.00938 0 0 0 0 0 0.01943 0 0 0 0 0 0 0 0 0 0.00198 0.00338 0 0 0.09698 0 0 0 0 0 0 0 0 0 0.00369 0.15106 0.41662 0.18154 0.00107 0.22305 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_socranskii 0.0026 0 0 0 0 0.00013 0 0 0 0 0 0 0 0 0.01092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00614 0.02364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03721 0.00472 0 0.18565 0 0 0.01388 0 0 0 0.00109 0 0 0.03909 0 0 0 0 0 0 0 0 0 0 0 0.05282 0 0 0 0.00032 0 0 0 0.05102 0 0 0 0 0 0 0 0 0 0.00176 0 0.04044 0.30333 0.00013 0.0968 0 0.00871 0.03032 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_socranskii|t__GCF_000413015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.12207 0 0.34175 0.5932 0.54494 0.79466 0 0 0.18021 0.08386 0.38126 0 0 0.40283 0.14123 0.71724 0.09261 1.13666 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_socranskii|t__Treponema_socranskii_unclassified 0.0026 0 0 0 0 0.00013 0 0 0 0 0 0 0 0 0.01092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00614 0.02364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03721 0.00472 0 0.18565 0 0 0.01388 0 0 0 0.00109 0 0 0.03909 0 0 0 0 0 0 0 0 0 0 0 0.05282 0 0 0 0.00032 0 0 0 0.05102 0 0 0 0 0 0 0 0 0 0.00176 0 0.04044 0.30 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_vincentii 0 0 0 0 0.00132 0 0 0 0 0 0 0 0 0.0084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00128 0.00356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.18449 0 0 0 0 0 0 0.02029 0 0 0 0 0 0 0 0 0.01322 0 0 0 0 0 0.00295 0 0 0 0 0 0 0 0.06163 0 0 0 0 0 0 0 0 0 0.00096 0.05588 0.02507 0.02487 0 0.02549 0 0.00782 0.00725 0.7471 0.36116 1.63431 0.63428 0.633 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_vincentii|t__GCF_000175895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_vincentii|t__GCF_000412995 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.63428 0.63365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetia|o__Spirochaetales|f__Spirochaetaceae|g__Treponema|s__Treponema_vincentii|t__Treponema_vincentii_unclassified 0 0 0 0 0.00132 0 0 0 0 0 0 0 0 0.0084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00128 0.00356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.18449 0 0 0 0 0 0 0.02029 0 0 0 0 0 0 0 0 0.01322 0 0 0 0 0 0.00295 0 0 0 0 0 0 0 0.06163 0 0 0 0 0 0 0 0 0 0.00096 0.05588 0.02507 0.02487 0 0.02549 0 0.00782 0.00725 [...]
+k__Bacteria|p__Synergistetes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01965 0 0 0 0 0 0 0.01948 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03078 0 0 0 0 0 0 0 0 0 0.00611 0 0 0.06853 0 0 0 0.00328 0.14026 0.21579 0.60504 0.71365 0.05823 0.4114 0.07727 0.04543 0 0 0 0.00187 0.00016 0 0.03228 0 0.13077 6e-05 0.07986 0.00189 0.04172 0.00105 0 0 0 0 0 0.02917 0 0 0 0 0 0.00609 0 0 0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01965 0 0 0 0 0 0 0.01948 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03078 0 0 0 0 0 0 0 0 0 0.00611 0 0 0.06853 0 0 0 0.00328 0.14026 0.21579 0.60504 0.71365 0.05823 0.4114 0.07727 0.04543 0 0 0 0.00187 0.00016 0 0.03228 0 0.13077 6e-05 0.07986 0.00189 0.04172 0.00105 0 0 0 0 0 0.02917 0 0 0 0 0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01965 0 0 0 0 0 0 0.01948 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03078 0 0 0 0 0 0 0 0 0 0.00611 0 0 0.06853 0 0 0 0.00328 0.14026 0.21579 0.60504 0.71365 0.05823 0.4114 0.07727 0.04543 0 0 0 0.00187 0.00016 0 0.03228 0 0.13077 6e-05 0.07986 0.00189 0.04172 0.00105 0 0 0 0 0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01965 0 0 0 0 0 0 0.01948 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03078 0 0 0 0 0 0 0 0 0 0.00611 0 0 0.06853 0 0 0 0.00328 0.14026 0.21579 0.60504 0.71365 0.05823 0.4114 0.07727 0.04543 0 0 0 0.00187 0.00016 0 0.03228 0 0.13077 6e-05 0.07986 0.00189 0.04172 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Fretibacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01965 0 0 0 0 0 0 0.01948 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03078 0 0 0 0 0 0 0 0 0 0.00611 0 0 0.06853 0 0 0 0.00328 0.14026 0.21579 0.60504 0.71365 0.05823 0.4114 0.07727 0.04543 0 0 0 0.00187 0.00016 0 0.03228 0 0.13077 6e-05 0.0798 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Fretibacterium|s__Fretibacterium_fastidiosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01965 0 0 0 0 0 0 0.01948 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03078 0 0 0 0 0 0 0 0 0 0.00611 0 0 0.06853 0 0 0 0.00328 0.14026 0.21579 0.60504 0.71365 0.05823 0.4114 0.07727 0.04543 0 0 0 0.00187 0.00016 0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Fretibacterium|s__Fretibacterium_fastidiosum|t__GCF_000210715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01965 0 0 0 0 0 0 0.01948 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03078 0 0 0 0 0 0 0 0 0 0.00611 0 0 0.06853 0 0 0 0.00328 0.14026 0.21579 0.60504 0.71365 0.05823 0.4114 0.07727 0.04543 0 0 0 0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Jonquetella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Jonquetella|s__Jonquetella_anthropi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Jonquetella|s__Jonquetella_anthropi|t__Jonquetella_anthropi_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Pyramidobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Pyramidobacter|s__Pyramidobacter_piscolens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Pyramidobacter|s__Pyramidobacter_piscolens|t__GCF_000177335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02851 0 0 0 0.02184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03945 0 0 0 0 0 0 0 0.0182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00738 0 0.00308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02851 0 0 0 0.02184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03945 0 0 0 0 0 0 0 0.0182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00738 0 0.00308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02851 0 0 0 0.02184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03945 0 0 0 0 0 0 0 0.0182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00738 0 0.00308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02851 0 0 0 0.02184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03945 0 0 0 0 0 0 0 0.0182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00738 0 0.00308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Mycoplasma 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02851 0 0 0 0.02184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03945 0 0 0 0 0 0 0 0.0182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00738 0 0.00308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Mycoplasma|s__Mycoplasma_hominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Mycoplasma|s__Mycoplasma_hominis|t__Mycoplasma_hominis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Mycoplasma|s__Mycoplasma_orale 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02851 0 0 0 0.02184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03945 0 0 0 0 0 0 0 0.0182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00738 0 0.00308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Mycoplasma|s__Mycoplasma_orale|t__GCF_000420105 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02851 0 0 0 0.02184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03945 0 0 0 0 0 0 0 0.0182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00738 0 0.00308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma|s__Ureaplasma_parvum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma|s__Ureaplasma_parvum|t__Ureaplasma_parvum_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma|s__Ureaplasma_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Verrucomicrobia 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae|g__Akkermansia 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae|g__Akkermansia|s__Akkermansia_muciniphila 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00017 0 [...]
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae|g__Akkermansia|s__Akkermansia_muciniphila|t__GCF_000020225 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota 0 0.00972 0 0 0 0 0 0.80851 0.00151 0 0 0 0.02084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0347 0 0 0 0 0 0 0 0 0.00677 0 0 0 0 0 0 0 0 0 0.33611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.79305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02629 0 0 0 0 0 0 0 0 0 0.14213 0 0 0 0 0 0 0.03093 0 0 0 0 0 0 0.22357 0 0 0 0 0 0 0 0. [...]
+k__Eukaryota|p__Ascomycota 0 0.00972 0 0 0 0 0 0.80851 0.00151 0 0 0 0.02084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0347 0 0 0 0 0 0 0 0 0.00677 0 0 0 0 0 0 0 0 0 0.33611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.79305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02629 0 0 0 0 0 0 0 0 0 0.14213 0 0 0 0 0 0 0.03093 0 0 0 0 0 0 0.22357 0 [...]
+k__Eukaryota|p__Ascomycota|c__Eurotiomycetes 0 0.00972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Eurotiomycetes|o__Eurotiales 0 0.00972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00174 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Eurotiomycetes|o__Eurotiales|f__Aspergillaceae 0 0.00972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00174 0 [...]
+k__Eukaryota|p__Ascomycota|c__Eurotiomycetes|o__Eurotiales|f__Aspergillaceae|g__Aspergillaceae_unclassified 0 0.00972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Eurotiomycetes|o__Eurotiales|f__Aspergillaceae|g__Aspergillus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Eurotiomycetes|o__Eurotiales|f__Aspergillaceae|g__Aspergillus|s__Aspergillus_fumigatus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Eurotiomycetes|o__Eurotiales|f__Aspergillaceae|g__Aspergillus|s__Aspergillus_fumigatus|t__GCA_000002655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes 0 0 0 0 0 0 0 0.80851 0.00151 0 0 0 0.02084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0347 0 0 0 0 0 0 0 0 0.00677 0 0 0 0 0 0 0 0 0 0.33611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.79305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02629 0 0 0 0 0 0 0 0 0 0.14213 0 0 0 0 0 0 0.03093 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales 0 0 0 0 0 0 0 0.80851 0.00151 0 0 0 0.02084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0347 0 0 0 0 0 0 0 0 0.00677 0 0 0 0 0 0 0 0 0 0.33611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.79305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02629 0 0 0 0 0 0 0 0 0 0.14213 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Debaryomycetaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00772 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00513 0 0 0 0 0 0 0 0 0 0.02847 0 0 0 0 0 0 0.007 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Debaryomycetaceae|g__Debaryomycetaceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00772 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00513 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00725 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetaceae|g__Nakaseomyces 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetaceae|g__Nakaseomyces|s__Candida_glabrata 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetaceae|g__Nakaseomyces|s__Candida_glabrata|t__GCA_000002545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetaceae|g__Naumovozyma 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetaceae|g__Naumovozyma|s__Naumovozyma_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetaceae|g__Saccharomycetaceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00725 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0039 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetales_noname 0 0 0 0 0 0 0 0.80851 0.00151 0 0 0 0.02084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02698 0 0 0 0 0 0 0 0 0.00677 0 0 0 0 0 0 0 0 0 0.33611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02116 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetales_noname|g__Candida 0 0 0 0 0 0 0 0.80851 0.00151 0 0 0 0.02084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02698 0 0 0 0 0 0 0 0 0.00677 0 0 0 0 0 0 0 0 0 0.33611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetales_noname|g__Candida|s__Candida_albicans 0 0 0 0 0 0 0 0.80851 0.00151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.60677 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0211 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetales_noname|g__Candida|s__Candida_albicans|t__GCA_000182965 0 0 0 0 0 0 0 0.80851 0.00151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.60677 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetales_noname|g__Candida|s__Candida_dubliniensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetales_noname|g__Candida|s__Candida_dubliniensis|t__GCA_000026945 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetales_noname|g__Candida|s__Candida_tropicalis 0 0 0 0 0 0 0 0 0 0 0 0 0.02084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.33611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetales_noname|g__Candida|s__Candida_tropicalis|t__GCA_000006335 0 0 0 0 0 0 0 0 0 0 0 0 0.02084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.33611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Ascomycota|c__Saccharomycetes|o__Saccharomycetales|f__Saccharomycetales_noname|g__Candida|s__Candida_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00677 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Basidiomycota 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Basidiomycota|c__Exobasidiomycetes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Basidiomycota|c__Exobasidiomycetes|o__Malasseziales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Basidiomycota|c__Exobasidiomycetes|o__Malasseziales|f__Malasseziaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Basidiomycota|c__Exobasidiomycetes|o__Malasseziales|f__Malasseziaceae|g__Malassezia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Basidiomycota|c__Exobasidiomycetes|o__Malasseziales|f__Malasseziaceae|g__Malassezia|s__Malassezia_globosa 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Eukaryota|p__Basidiomycota|c__Exobasidiomycetes|o__Malasseziales|f__Malasseziaceae|g__Malassezia|s__Malassezia_globosa|t__GCA_000181695 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses 0.4265 0.6658 1.5867 3.26306 36.38331 2.41336 3.23196 2.56093 54.39326 25.97333 0 0 6.41325 0.14543 0.50121 22.39023 4.46467 19.4031 0 0.30307 47.0591 0 19.24748 0 8.08273 0.36279 0.20198 5.19415 14.41101 4.25426 0 21.53089 19.06258 9.67715 0 0 1.42971 0 0 0 0.46653 0.01175 0.16397 0.00972 0.00101 0 6.90222 0 28.82618 4.21309 30.00476 29.60714 6.83771 14.86742 8.83927 15.12671 16.09345 0 0.72276 60.70934 0.48303 1.03681 3.67711 0 0 1.96565 0 2.03765 7.24626 6.04006 0 70.57059 [...]
+k__Viruses|p__Viruses_noname 0.4265 0.6658 1.5867 3.26306 36.38331 2.41336 3.23196 2.56093 54.39326 25.97333 0 0 6.41325 0.14543 0.50121 22.39023 4.46467 19.4031 0 0.30307 47.0591 0 19.24748 0 8.08273 0.36279 0.20198 5.19415 14.41101 4.25426 0 21.53089 19.06258 9.67715 0 0 1.42971 0 0 0 0.46653 0.01175 0.16397 0.00972 0.00101 0 6.90222 0 28.82618 4.21309 30.00476 29.60714 6.83771 14.86742 8.83927 15.12671 16.09345 0 0.72276 60.70934 0.48303 1.03681 3.67711 0 0 1.96565 0 2.03765 7.24626 6 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname 0.4265 0.6658 1.5867 3.26306 36.38331 2.41336 3.23196 2.56093 54.39326 25.97333 0 0 6.41325 0.14543 0.50121 22.39023 4.46467 19.4031 0 0.30307 47.0591 0 19.24748 0 8.08273 0.36279 0.20198 5.19415 14.41101 4.25426 0 21.53089 19.06258 9.67715 0 0 1.42971 0 0 0 0.46653 0.01175 0.16397 0.00972 0.00101 0 6.90222 0 28.82618 4.21309 30.00476 29.60714 6.83771 14.86742 8.83927 15.12671 16.09345 0 0.72276 60.70934 0.48303 1.03681 3.67711 0 0 1.96565 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales 0.4265 0.6658 1.5867 3.26306 36.34748 2.41336 0 0 54.39326 25.97333 0 0 6.41325 0 0 22.39023 4.46467 19.4031 0 0.30307 47.0591 0 19.24748 0 8.08273 0.36279 0 5.07556 14.41101 4.25426 0 21.35154 19.06258 9.67715 0 0 0 0 0 0 0 0 0.00705 0 0 0 6.90222 0 28.75984 4.21309 29.92033 29.55374 6.83771 14.76517 8.83927 15.12671 16.09345 0 0.72276 60.70934 0.48303 1.03681 3.67711 0 0 1.96565 0 1.44331 6.29698 5.95119 0 70.57059 0 0 3.73 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae 0.4265 0.6658 1.5846 3.26306 36.34748 2.41336 0 0 54.39029 15.31759 0 0 6.41325 0 0 22.39023 4.46467 19.4031 0 0 47.05537 0 19.24748 0 8.08273 0 0 5.07556 10.71963 4.25025 0 21.35154 19.06258 7.00585 0 0 0 0 0 0 0 0 0 0 0 0 6.90222 0 1.00686 4.21309 28.18927 29.55374 6.83771 14.76517 8.83927 4.48588 16.09039 0 0.72276 37.68288 0 1.03681 3.67711 0 0 0 0 0 0 5.95119 0 70.57059 0 0 3.73266 1.63173 0 0 0.79733 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__Hpunalikevirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.69229 0 0 0 0 0 0 0 0 0 0 0 0 0 4.25025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.03681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.79733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.60011 4.31084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.42958 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.46337 0 0 0 0 0 0 0 0 0 0 0.05923 0 0 0 4.7 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__Hpunalikevirus|s__Haemophilus_phage_HP1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.69229 0 0 0 0 0 0 0 0 0 0 0 0 0 4.25025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.03681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.79733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.60011 4.31084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.42958 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.46337 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__Hpunalikevirus|s__Haemophilus_phage_HP1|t__PRJNA14078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.69229 0 0 0 0 0 0 0 0 0 0 0 0 0 4.25025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.03681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.79733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.60011 4.31084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.42958 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4633 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__Myoviridae_noname 0.4265 0.6658 1.5846 3.26306 36.34748 2.41336 0 0 54.39029 15.31759 0 0 6.41325 0 0 17.69793 4.46467 19.4031 0 0 47.05537 0 19.24748 0 8.08273 0 0 5.07556 10.71963 0 0 21.35154 19.06258 7.00585 0 0 0 0 0 0 0 0 0 0 0 0 6.90222 0 1.00686 4.21309 28.18927 29.55374 6.83771 14.76517 8.83927 4.48588 16.09039 0 0.72276 37.68288 0 0 3.67711 0 0 0 0 0 0 5.95119 0 70.57059 0 0 3.73266 1.63173 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__Myoviridae_noname|s__Streptococcus_phage_EJ_1 0.4265 0.6658 1.5846 3.26306 36.34748 2.41336 0 0 54.39029 15.31759 0 0 6.41325 0 0 17.69793 4.46467 19.4031 0 0 47.05537 0 19.24748 0 8.08273 0 0 5.07556 10.71963 0 0 21.35154 19.06258 7.00585 0 0 0 0 0 0 0 0 0 0 0 0 6.90222 0 1.00686 4.21309 28.18927 29.55374 6.83771 14.76517 8.83927 4.48588 16.09039 0 0.72276 37.68288 0 0 3.67711 0 0 0 0 0 0 5.95119 0 70.57059 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__Myoviridae_noname|s__Streptococcus_phage_EJ_1|t__PRJNA14604 0.4265 0.6658 1.5846 3.26306 36.34748 2.41336 0 0 54.39029 15.31759 0 0 6.41325 0 0 17.69793 4.46467 19.4031 0 0 47.05537 0 19.24748 0 8.08273 0 0 5.07556 10.71963 0 0 21.35154 19.06258 7.00585 0 0 0 0 0 0 0 0 0 0 0 0 6.90222 0 1.00686 4.21309 28.18927 29.55374 6.83771 14.76517 8.83927 4.48588 16.09039 0 0.72276 37.68288 0 0 3.67711 0 0 0 0 0 0 5.951 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__P2likeviruses 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__P2likeviruses|s__Yersinia_phage_L_413C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__P2likeviruses|s__Yersinia_phage_L_413C|t__PRJNA14280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__PhiCD119likevirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Myoviridae|g__PhiCD119likevirus|s__PhiCD119likevirus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae 0 0 0 0 0 0 0 0 0 5.28468 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10.64083 0 0 0 0 0 0 0 0 0 1.96565 0 0 6.28686 0 0 0 0 0 0 0 0 1.37058 8.896 0 0 0 0 37.77948 0 0 0 0 0 22.63941 4.91953 0 0 0 0 0 0 0 0 0 0 0 0 0.38918 0 0 0 0 0 0 18.47868 3.27536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.43392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.24124 0 0 0 0 0 0 0 0 0 0. [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae|g__Epsilon15likevirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae|g__Epsilon15likevirus|s__Epsilon15likevirus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae|g__P22likevirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae|g__P22likevirus|s__P22likevirus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae|g__Podoviridae_noname 0 0 0 0 0 0 0 0 0 5.28468 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10.64083 0 0 0 0 0 0 0 0 0 1.96565 0 0 6.28686 0 0 0 0 0 0 0 0 1.34775 8.896 0 0 0 0 37.77948 0 0 0 0 0 22.63941 4.91953 0 0 0 0 0 0 0 0 0 0 0 0 0.38918 0 0 0 0 0 0 18.47868 3.27536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.43392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2412 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae|g__Podoviridae_noname|s__Actinomyces_phage_Av_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.28686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18.47868 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.43392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.24124 0 0 0 0 0 0 0 0 0 0.93154 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae|g__Podoviridae_noname|s__Actinomyces_phage_Av_1|t__PRJNA20057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.28686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18.47868 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.43392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.24124 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae|g__Podoviridae_noname|s__Streptococcus_phage_Cp_1 0 0 0 0 0 0 0 0 0 5.28468 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10.64083 0 0 0 0 0 0 0 0 0 1.96565 0 0 0 0 0 0 0 0 0 0 0 1.34775 8.896 0 0 0 0 37.77948 0 0 0 0 0 22.63941 4.91953 0 0 0 0 0 0 0 0 0 0 0 0 0.38918 0 0 0 0 0 0 0 3.27536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Podoviridae|g__Podoviridae_noname|s__Streptococcus_phage_Cp_1|t__PRJNA14584 0 0 0 0 0 0 0 0 0 5.28468 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10.64083 0 0 0 0 0 0 0 0 0 1.96565 0 0 0 0 0 0 0 0 0 0 0 1.34775 8.896 0 0 0 0 37.77948 0 0 0 0 0 22.63941 4.91953 0 0 0 0 0 0 0 0 0 0 0 0 0.38918 0 0 0 0 0 0 0 3.27536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae 0 0 0.00211 0 0 0 0 0 0.00297 5.37106 0 0 0 0 0 0 0 0 0 0.30307 0.00372 0 0 0 0 0.36279 0 0 3.69138 0.00401 0 0 0 2.67129 0 0 0 0 0 0 0 0 0.00705 0 0 0 0 0 27.75298 0 1.73106 0 0 0 0 0 0.00307 0 0 23.02646 0.48303 0 0 0 0 0 0 1.44331 0.01012 0 0 0 0 0 0 4.23314 0.01286 0 0 0 0.13656 0 0 0 0 0 0 0 0 0 0.00134 0 0 0 0.11169 0 0 0 0 0 0 0 0 0 0 0.14283 0.12837 0.04746 0 0 0 0 0 0 0 0.45223 0 0.0009 0 2.69808 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__C2likevirus 0 0 0.00211 0 0 0 0 0 0.00297 0 0 0 0 0 0 0 0 0 0 0 0.00372 0 0 0 0 0 0 0 0 0.00401 0 0 0 0 0 0 0 0 0 0 0 0 0.00705 0 0 0 0 0 0 0 0.47719 0 0 0 0 0 0.00307 0 0 0 0 0 0 0 0 0 0 0 0.01012 0 0 0 0 0 0 0 0.01286 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04746 0 0 0 0 0 0 0 0 0 0.0009 0 0 0 0 0 0 0 0 0 0 0.00233 0 0 0 0.00683 0 0 0 0 0 0 0 0 0 0 0.00106 0 0 0 0 0 0 0 0.00109 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__C2likevirus|s__C2likevirus_unclassified 0 0 0.00211 0 0 0 0 0 0.00297 0 0 0 0 0 0 0 0 0 0 0 0.00372 0 0 0 0 0 0 0 0 0.00401 0 0 0 0 0 0 0 0 0 0 0 0 0.00705 0 0 0 0 0 0 0 0.47719 0 0 0 0 0 0.00307 0 0 0 0 0 0 0 0 0 0 0 0.01012 0 0 0 0 0 0 0 0.01286 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04746 0 0 0 0 0 0 0 0 0 0.0009 0 0 0 0 0 0 0 0 0 0 0.00233 0 0 0 0.00683 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__C2likevirus|s__Lactococcus_phage_bIL67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__C2likevirus|s__Lactococcus_phage_bIL67|t__PRJNA32321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Lambdalikevirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Lambdalikevirus|s__Enterobacteria_phage_lambda 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Lambdalikevirus|s__Enterobacteria_phage_lambda|t__PRJNA14204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname 0 0 0 0 0 0 0 0 0 5.37106 0 0 0 0 0 0 0 0 0 0.30307 0 0 0 0 0 0.36279 0 0 3.69138 0 0 0 0 2.67129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27.75298 0 1.25387 0 0 0 0 0 0 0 0 23.02646 0.48303 0 0 0 0 0 0 1.44331 0 0 0 0 0 0 0 4.23314 0 0 0 0 0.13656 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14283 0.12837 0 0 0 0 0 0 0 0 0.45223 0 0 0 2.69808 0 0 0 0 0 0 0 0 0 0 0 4.3764 0 1.50834 0 0 0 0 0 1.3 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactobacillus_phage_Lc_Nu 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactobacillus_phage_Lc_Nu|t__Lactobacillus_phage_Lc_Nu_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactobacillus_phage_Lv_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactobacillus_phage_Lv_1|t__PRJNA33535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactobacillus_phage_PL_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactobacillus_phage_PL_1|t__PRJNA227007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactococcus_phage_BM13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.25387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.44331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactococcus_phage_BM13|t__PRJNA213076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.25387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.44331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactococcus_phage_P680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactococcus_phage_P680|t__PRJNA213080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactococcus_phage_bIL285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactococcus_phage_bIL285|t__PRJNA14111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactococcus_phage_ul36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Lactococcus_phage_ul36|t__PRJNA14331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P100D 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P100D|t__PRJNA177534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P100_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P100_1|t__PRJNA177536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P100_A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P100_A|t__PRJNA177535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P101A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.39576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P101A|t__PRJNA177531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.39576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P104A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13656 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P104A|t__PRJNA177532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13656 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P14_4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_P14_4|t__PRJNA177530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_PA6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.48051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_PA6|t__PRJNA19767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.48051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_PAD20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.36279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_PAD20|t__PRJNA66341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.36279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_PAS50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_PAS50|t__PRJNA66339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_PHL060L00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Propionibacterium_phage_PHL060L00|t__PRJNA219122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Staphylococcus_phage_80alpha 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Staphylococcus_phage_80alpha|t__PRJNA19749 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Staphylococcus_phage_PVL 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.30307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Staphylococcus_phage_PVL|t__PRJNA14392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.30307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Staphylococcus_phage_phiETA2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Staphylococcus_phage_phiETA2|t__PRJNA18669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Staphylococcus_phage_phiSLT 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Staphylococcus_phage_phiSLT|t__PRJNA14137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_ALQ13_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_ALQ13_2|t__PRJNA42593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_Dp_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27.75298 0 0 0 0 0 0 0 0 0 0 23.02646 0.48303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_Dp_1|t__PRJNA64617 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27.75298 0 0 0 0 0 0 0 0 0 0 23.02646 0.48303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_PH10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.67129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.45223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.92185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.20258 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_PH10|t__PRJNA38365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.67129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.45223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.92185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_PH15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.37904 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_PH15|t__PRJNA30161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.37904 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_SM1 0 0 0 0 0 0 0 0 0 5.37106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.69138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.23314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.45454 0 1.50834 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.37621 0 0 0 0 0 0 0.494 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_SM1|t__PRJNA14295 0 0 0 0 0 0 0 0 0 5.37106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.69138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.23314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.45454 0 1.50834 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.37621 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_Sfi19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_Sfi19|t__PRJNA14045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_Sfi21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_Sfi21|t__PRJNA14133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_TP_778L 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_TP_778L|t__PRJNA227111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_TP_J34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Caudovirales|f__Siphoviridae|g__Siphoviridae_noname|s__Streptococcus_phage_TP_J34|t__PRJNA188154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Herpesvirales 0 0 0 0 0 0 0 2.56093 0 0 0 0 0 0.14543 0.21506 0 0 0 0 0 0 0 0 0 0 0 0.20198 0.11859 0 0 0 0.17935 0 0 0 0 1.42971 0 0 0 0.46653 0 0.15691 0 0.00101 0 0 0 0.06634 0 0.08443 0.0534 0 0.10225 0 0 0 0 0 0 0 0 0 0 0 0 0 0.59435 0.94928 0.08887 0 0 2.50722 0.80118 0.60476 0 0 0.12575 0 0 0.30138 0 0 0 0 0 0 0.7474 0 0.15315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.41998 0 0 0 0 0.06388 0 0 0.02822 1.12352 0.01599 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Herpesvirales|f__Herpesviridae 0 0 0 0 0 0 0 2.56093 0 0 0 0 0 0.14543 0.21506 0 0 0 0 0 0 0 0 0 0 0 0.20198 0.11859 0 0 0 0.17935 0 0 0 0 1.42971 0 0 0 0.46653 0 0.15691 0 0.00101 0 0 0 0.06634 0 0.08443 0.0534 0 0.10225 0 0 0 0 0 0 0 0 0 0 0 0 0 0.59435 0.94928 0.08887 0 0 2.50722 0.80118 0.60476 0 0 0.12575 0 0 0.30138 0 0 0 0 0 0 0.7474 0 0.15315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.41998 0 0 0 0 0.06388 0 0 0.02822 1.12352 0.0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Herpesvirales|f__Herpesviridae|g__Lymphocryptovirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02989 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Herpesvirales|f__Herpesviridae|g__Lymphocryptovirus|s__Human_herpesvirus_4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02989 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Herpesvirales|f__Herpesviridae|g__Lymphocryptovirus|s__Human_herpesvirus_4|t__Human_herpesvirus_4_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02989 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00582 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Herpesvirales|f__Herpesviridae|g__Roseolovirus 0 0 0 0 0 0 0 2.56093 0 0 0 0 0 0.14543 0.21506 0 0 0 0 0 0 0 0 0 0 0 0.20198 0.11859 0 0 0 0.17935 0 0 0 0 1.42971 0 0 0 0.46653 0 0.15691 0 0.00101 0 0 0 0.06634 0 0.08443 0.0534 0 0.10225 0 0 0 0 0 0 0 0 0 0 0 0 0 0.59435 0.94928 0.08887 0 0 2.50722 0.80118 0.60476 0 0 0.12575 0 0 0.30138 0 0 0 0 0 0 0.7474 0 0.12326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.41998 0 0 0 0 0.06388 0 0 0.0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Herpesvirales|f__Herpesviridae|g__Roseolovirus|s__Human_herpesvirus_7 0 0 0 0 0 0 0 2.56093 0 0 0 0 0 0.14543 0.21506 0 0 0 0 0 0 0 0 0 0 0 0.20198 0.11859 0 0 0 0.17935 0 0 0 0 1.42971 0 0 0 0.46653 0 0.15691 0 0 0 0 0 0.06634 0 0.08443 0.0534 0 0.10225 0 0 0 0 0 0 0 0 0 0 0 0 0 0.59435 0.94928 0.08887 0 0 2.50722 0.80118 0.60476 0 0 0.12575 0 0 0.30138 0 0 0 0 0 0 0.7474 0 0.12326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.41998 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Herpesvirales|f__Herpesviridae|g__Roseolovirus|s__Human_herpesvirus_7|t__PRJNA14625 0 0 0 0 0 0 0 2.56093 0 0 0 0 0 0.14543 0.21506 0 0 0 0 0 0 0 0 0 0 0 0.20198 0.11859 0 0 0 0.17935 0 0 0 0 1.42971 0 0 0 0.46653 0 0.15691 0 0 0 0 0 0.06634 0 0.08443 0.0534 0 0.10225 0 0 0 0 0 0 0 0 0 0 0 0 0 0.59435 0.94928 0.08887 0 0 2.50722 0.80118 0.60476 0 0 0.12575 0 0 0.30138 0 0 0 0 0 0 0.7474 0 0.12326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Herpesvirales|f__Herpesviridae|g__Roseolovirus|s__Roseolovirus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02822 0 0.01599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Nidovirales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Nidovirales|f__Coronaviridae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Nidovirales|f__Coronaviridae|g__Betacoronavirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Nidovirales|f__Coronaviridae|g__Betacoronavirus|s__Murine_coronavirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Nidovirales|f__Coronaviridae|g__Betacoronavirus|s__Murine_coronavirus|t__Murine_coronavirus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname 0 0 0 0 0.03583 0 3.23196 0 0 0 0 0 0 0 0.28614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01175 0 0.00972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.26317 0.01897 0 0 0 0 0.1178 0 0 0 0 0 0 0 0 0 0.0339 0 0 0.13689 0.01351 0 0 0 0 0 0 0.28176 0 0 0 0 0 0.00684 0 0 0 0 0 0 0 0 0.00971 0 0 0 0.01443 0 0 0 0 0 0 0 0 0 0.01108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Anelloviridae 0 0 0 0 0.03583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08834 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00684 0 0 0 0 0 0 0 0 0.00971 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Anelloviridae|g__Alphatorquevirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08834 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00971 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Anelloviridae|g__Alphatorquevirus|s__Torque_teno_virus_10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Anelloviridae|g__Alphatorquevirus|s__Torque_teno_virus_10|t__PRJNA48151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Anelloviridae|g__Alphatorquevirus|s__Torque_teno_virus_12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08834 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Anelloviridae|g__Alphatorquevirus|s__Torque_teno_virus_12|t__PRJNA48149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08834 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Anelloviridae|g__Alphatorquevirus|s__Torque_teno_virus_3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00971 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Anelloviridae|g__Alphatorquevirus|s__Torque_teno_virus_3|t__PRJNA48161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00971 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Anelloviridae|g__Anelloviridae_noname 0 0 0 0 0.03583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Anelloviridae|g__Anelloviridae_noname|s__Torque_teno_virus 0 0 0 0 0.03583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Anelloviridae|g__Anelloviridae_noname|s__Torque_teno_virus|t__PRJNA70005 0 0 0 0 0.03583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Caulimoviridae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Caulimoviridae|g__Cavemovirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Caulimoviridae|g__Cavemovirus|s__Tobacco_vein_clearing_virus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Caulimoviridae|g__Cavemovirus|s__Tobacco_vein_clearing_virus|t__PRJNA14150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Circoviridae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Circoviridae|g__Gyrovirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Circoviridae|g__Gyrovirus|s__Chicken_anemia_virus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Circoviridae|g__Gyrovirus|s__Chicken_anemia_virus|t__PRJNA15484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Orthomyxoviridae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Orthomyxoviridae|g__Influenzavirus_A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Orthomyxoviridae|g__Influenzavirus_A|s__Influenza_A_virus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Orthomyxoviridae|g__Influenzavirus_A|s__Influenza_A_virus|t__Influenza_A_virus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.26317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13689 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.26317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus|s__Alphapapillomavirus_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.26317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus|s__Alphapapillomavirus_11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus|s__Alphapapillomavirus_11|t__PRJNA15509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus|s__Alphapapillomavirus_14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus|s__Alphapapillomavirus_14|t__PRJNA15424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus|s__Alphapapillomavirus_1|t__PRJNA15508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.26317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus|s__Alphapapillomavirus_3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus|s__Alphapapillomavirus_3|t__PRJNA15451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus|s__Alphapapillomavirus_6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus|s__Alphapapillomavirus_6|t__PRJNA15510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus|s__Alphapapillomavirus_7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Alphapapillomavirus|s__Alphapapillomavirus_7|t__PRJNA15506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Betapapillomavirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Betapapillomavirus|s__Betapapillomavirus_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Betapapillomavirus|s__Betapapillomavirus_1|t__PRJNA15511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Betapapillomavirus|s__Betapapillomavirus_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Betapapillomavirus|s__Betapapillomavirus_2|t__PRJNA15456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Betapapillomavirus|s__Betapapillomavirus_3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Betapapillomavirus|s__Betapapillomavirus_3|t__PRJNA15455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Betapapillomavirus|s__Betapapillomavirus_4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Betapapillomavirus|s__Betapapillomavirus_4|t__PRJNA14406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Papillomaviridae_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13689 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Papillomaviridae_noname|s__Human_papillomavirus_type_144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13689 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Papillomaviridae|g__Papillomaviridae_noname|s__Human_papillomavirus_type_144|t__PRJNA167869 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.13689 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Polyomaviridae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Polyomaviridae|g__Polyomavirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Polyomaviridae|g__Polyomavirus|s__Merkel_cell_polyomavirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Polyomaviridae|g__Polyomavirus|s__Merkel_cell_polyomavirus|t__PRJNA28509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Polyomaviridae|g__Polyomavirus|s__Polyomavirus_HPyV6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Polyomaviridae|g__Polyomavirus|s__Polyomavirus_HPyV6|t__PRJNA51559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Polyomaviridae|g__Polyomavirus|s__Polyomavirus_HPyV7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Polyomaviridae|g__Polyomavirus|s__Polyomavirus_HPyV7|t__PRJNA51557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Potyviridae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00051 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Potyviridae|g__Potyvirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Potyviridae|g__Potyvirus|s__Dasheen_mosaic_virus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Potyviridae|g__Potyvirus|s__Dasheen_mosaic_virus|t__PRJNA15388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae 0 0 0 0 0 0 3.23196 0 0 0 0 0 0 0 0.28614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01175 0 0.00972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01897 0 0 0 0 0.02946 0 0 0 0 0 0 0 0 0 0.0339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01443 0 0 0 0 0 0 0 0 0 0.01108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0250 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Alpharetrovirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00419 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Alpharetrovirus|s__Avian_carcinoma_virus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Alpharetrovirus|s__Avian_carcinoma_virus|t__PRJNA14632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Alpharetrovirus|s__Avian_myelocytomatosis_virus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Alpharetrovirus|s__Avian_myelocytomatosis_virus|t__PRJNA14909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Alpharetrovirus|s__UR2_sarcoma_virus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Alpharetrovirus|s__UR2_sarcoma_virus|t__PRJNA15322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Gammaretrovirus 0 0 0 0 0 0 3.23196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01175 0 0.00972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02946 0 0 0 0 0 0 0 0 0 0.0339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Gammaretrovirus|s__Porcine_type_C_oncovirus 0 0 0 0 0 0 3.23196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01175 0 0.00972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02946 0 0 0 0 0 0 0 0 0 0.0339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Gammaretrovirus|s__Porcine_type_C_oncovirus|t__PRJNA14126 0 0 0 0 0 0 3.23196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01175 0 0.00972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02946 0 0 0 0 0 0 0 0 0 0.0339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Retroviridae_noname 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02088 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Retroviridae_noname|s__Avian_endogenous_retrovirus_EAV_HP 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Retroviridae|g__Retroviridae_noname|s__Avian_endogenous_retrovirus_EAV_HP|t__PRJNA15213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Togaviridae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Togaviridae|g__Alphavirus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Togaviridae|g__Alphavirus|s__Venezuelan_equine_encephalitis_virus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Viruses|p__Viruses_noname|c__Viruses_noname|o__Viruses_noname|f__Togaviridae|g__Alphavirus|s__Venezuelan_equine_encephalitis_virus|t__PRJNA15302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
diff --git a/example/HMP_10.tsv b/example/HMP_10.tsv
new file mode 100644
index 0000000..b1f2120
--- /dev/null
+++ b/example/HMP_10.tsv
@@ -0,0 +1,719 @@
+ID SRS013239 SRS015154 SRS019019 SRS022006 SRS019063 SRS046688 SRS013800 SRS048870 SRS015072 SRS019600
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae 0 0 0 0 0 0 5.71168 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodospirillales|f__Acetobacteraceae 0 0 0 0 0 0 0.00592 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_vaginae 0 0 0 0 0 0.05181 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae 0 0 0 0 0 0.0116 14.62121 3.32096 0 0
+k__Bacteria|p__Thermi|c__Deinococci|o__Deinococcales|f__Deinococcaceae|g__Deinococcus|s__Deinococcus_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_unclassified 0 0.00471 0.22566 0.15868 0.04605 0 0 0.00202 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Arthrobacter|s__Arthrobacter_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Spirochaetes|c__Spirochaetes 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Delftia|s__Delftia_acidovorans 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_unclassified 0 0 0 0 0 0 0 0 0.14815 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_kroppenstedtii 0 0 0 0 23.81555 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus 0 0 0 0 0 0 0.02264 0.33236 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_bivia 0 0 0 0 0 0 0 0.00091 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_saburreum 0.05913 0.09978 0 0 0 0 0 0 0 0
+k__Bacteria|p__Thermi|c__Deinococci|o__Deinococcales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_parasuis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_atypica 0.3284 0.07557 0 0 0 0 0.04222 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Butyrivibrio|s__Butyrivibrio_crossotus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_fragilis 0 0 0 0 0 0 0 0 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales 0 0 0 0 0 0 0 0.04369 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Rhizobiaceae|g__Agrobacterium 0 0 0 0 0 0 0 0 0 0
+k__Archaea|p__Euryarchaeota|c__Halobacteria|o__Halobacteriales|f__Halobacteriales_unclassified 0 0 0 0 0 0 0 0.00083 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales 0 0 0 0 0 0 0.09016 0.08068 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Chromatiales|f__Ectothiorhodospiraceae|g__Thioalkalivibrio|s__Thioalkalivibrio_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter 0.01015 0.11918 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Slackia|s__Slackia_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_pseudogenitalium 0 0 0.1412 3.05842 3.02034 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_pseudocatenulatum 0 0 0 0 0 0 0 0.00868 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae 2.22767 11.69621 0 0.0676 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Oscillatoriales|f__Oscillatoriaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Thermi|c__Deinococci 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_delbrueckii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Bilophila|s__Bilophila_wadsworthia 0 0 0 0 0 0 0.03861 0.06988 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Clostridiales_Family_XI_Incertae_Sedis_unclassified 0.00231 0 3.00325 3.59017 0.10421 0.01251 0 0 0.13856 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sanguinis 0.19375 1.9498 0 0 0 0 0.0019 0 0 0
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Treponemaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia|s__Serratia_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Olsenella 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Solobacterium|s__Solobacterium_moorei 0 0.02361 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_haemolyticus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Lentisphaerae|c__Lentisphaerae_uncl|o__Victivallales|f__Victivallaceae 0 0 0 0 0 0 0.00079 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria 1.8464 0.19125 0 0 0 0 0 0.0005 0 0
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Pyramidobacter 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Citrobacter 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Frankiaceae|g__Frankia|s__Frankia_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_infantis 0.04047 0.68844 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_noxia 0.01942 0.20504 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_botulinum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_uenonis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_hofstadii 0.02532 0.08863 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_intestinalis 0 0 0 0 0 0 0.02866 0 0 0
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae|g__Akkermansia 0 0 0 0 0 0 0 0.73901 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_albus 0 0 0 0 0 0 0.00061 0.00853 0 0
+k__Bacteria|p__Acidobacteria|c__Acidobacteria 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichiaceae|g__Leptotrichia 0.08721 0.2437 0 0 0 0 0 0 0 0
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Jonquetella 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_angulatum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Synechococcales|f__Synechococcaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_uncl|g__Gemella|s__Gemella_moribillum 0.01758 0.17439 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Xanthomonadales|f__Xanthomonadaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae 0.01461 0.01147 44.29831 19.32848 34.55072 99.27412 0 0 0 0.03947
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia 0.35615 0.45622 0 0.84922 0 0.01709 91.54167 81.22358 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Olsenella|s__Olsenella_uli 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales 0 0 0 0 0 0 0 0 0.14224 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Shuttleworthia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacterium|s__Cardiobacterium_hominis 0 0.12407 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales 1.8464 0.19125 0 0 0 0 0 0.0005 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales 1.21639 9.5621 5.77428 16.34592 34.80946 0.17707 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Actinobacillus|s__Actinobacillus_minor 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Psychrobacter 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Turicibacter|s__Turicibacter_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_jensenii 0 0 0 0 0 0 0 0 0.2518 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_infantarius 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_johnsonii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Aerococcus|s__Aerococcus_viridans 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_unclassified 0 0 0 0 0 0 0 0.32192 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Pediococcus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_uncl 0 0 0 0 0 0 0.04719 0.07896 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_tannerae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chloroflexi|c__Thermomicrobia|o__Thermomicrobia_unclassified 0 0 0 0 0 0 0 0.00137 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Phascolarctobacterium 0 0 0 0 0 0 0 0.58981 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Brevundimonas|s__Brevundimonas_subvibrioides 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Streptobacillus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_adolescentis 0 0 0 0 0 0 0.02476 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Oscillatoriales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_warneri 0 0 0 0.01666 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Butyrivibrio|s__Butyrivibrio_unclassified 0 0 0 0 0 0 0.00488 0.02283 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus 0.00226 0.07254 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia 0.07015 0.14947 4.77658 4.78495 0.40391 0.01251 1.18519 16.83136 0.13856 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae 0.10642 0.86092 0 0 0 0 0.00054 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas 0 0 0 0 0 0 0.3315 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_genitalium 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales 0 0 0 0 0.00067 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_salivarius 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Odoribacter|s__Odoribacter_splanchnicus 0 0 0 0 0 0 1.21083 1.51285 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes 4.08898 1.60283 0 0 0 0 0.39123 0.58981 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Abiotrophia|s__Abiotrophia_defectiva 0.01079 0.04556 0 0 0 0 0 0 0 0
+k__Bacteria|p__Synergistetes 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Mobiluncus|s__Mobiluncus_curtisii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_bolteae 0 0 0 0 0 0 0 0.0032 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Xanthomonadales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_longicatena 0 0 0 0 0 0 0.00495 0.07269 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus 0 0 0 0 0 0.05986 0 0 97.98762 99.96053
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae|g__Sphingopyxis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_gasicomitatum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_tuberculostearicum 0 0 0.06941 0.05042 1.14605 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Rhizobiaceae|g__Agrobacterium|s__Agrobacterium_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_prausnitzii 0 0 0 0 0 0 0.14609 1.65766 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Phascolarctobacterium|s__Phascolarctobacterium_unclassified 0 0 0 0 0 0 0 0.58981 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_striatum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_dentium 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_lwoffii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes 0.47076 1.02326 0 0.84922 0 0.01709 92.52302 81.38783 0 0
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae 0 0 0 0 0 0 0 0 0.14224 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_unclassified 0 0.02408 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Enhydrobacter|s__Enhydrobacter_aerosaccus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_putredinis 0 0 0 0.0274 0 0 12.71008 25.89922 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sinus 0.00391 0.01701 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria 23.66354 35.76302 0.12988 0.00723 0.00067 0.00061 5.81214 0.08914 0.67835 0
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae|g__Akkermansia|s__Akkermansia_muciniphila 0 0 0 0 0 0 0 0.73901 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Chromatiales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_elegans 0.09565 0.69095 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales 0.51205 0.31553 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteria 0.00891 0.0271 0 0 0 0 0.98014 0.16425 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_cellulosilyticus 0 0 0 0 0 0 4.50719 6.6809 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylobacteriaceae|g__Methylobacterium 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_eligens 0 0 0 0 0 0 0.09068 0.00036 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae 0.00226 0.07254 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_ulcerans 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae 0.03191 0.00979 0 0 0 0.05181 0.02794 0.27691 0 0
+k__Bacteria 100 100 100 100 100 100 100 99.95548 100 100
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_endodontalis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_elongata 0 0.07816 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_unclassified 0 0 0 0.01949 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_unclassified 0.04607 0.04538 0 0 0 0 0 0 0 0
+k__Bacteria|p__Thermi|c__Deinococci|o__Deinococcales|f__Deinococcaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_aphrophilus 0.0046 0.02856 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylobacteriaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Brevundimonas 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Delftia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Eggerthella|s__Eggerthella_lenta 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Bilophila 0 0 0 0 0 0 0.03861 0.06988 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae 0.01079 0.04556 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Catenibacterium 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacterium 0 0.12407 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae 0 0 5.77428 16.34592 34.80946 0.17707 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_unclassified 0.00226 0.07254 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Solobacterium 0 0.02361 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales 4.08898 1.60283 0 0 0 0 0.39123 0.58981 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_baumannii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Helicobacteraceae|g__Helicobacter|s__Helicobacter_pylori 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_coleohominis 0 0 0 0 0 0 0 0 0.01095 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_fluorescens 0 0 0 0 0 0 0 0 0.5302 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia|s__Serratia_proteamaculans 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_concisus 1.68543 0.08226 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales 0.23078 0.51686 0 0 0 0 0 0 0 0
+k__Bacteria|p__Synergistetes|c__Synergistia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus|s__Peptostreptococcus_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sputigena 0.01967 0.30685 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_plebeius 0 0 0 0 0 0 9.00E-05 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Flavobacterium|s__Flavobacterium_unclassified 0.00956 0 0 0 0 0 0.00121 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_catus 0 0 0 0 0 0 0.01814 0.01561 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Moraxella|s__Moraxella_catarrhalis 0 0 0.12988 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_distasonis 0 0 0 0 0 0 1.70388 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_veroralis 0.02715 0.01288 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_copri 0 0 0 0.05935 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Subdoligranulum 0 0 0 0 0 0 0.00085 0.01006 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_rimae 0.00039 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Bulleidia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Lautropia 0.00472 0.11351 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_buccalis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Micrococcus|s__Micrococcus_luteus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Actinobacillus|s__Actinobacillus_succinogenes 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_plantarum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfobacterales 0 0 0 0 0 0 0.0011 0.00796 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_parvulum 0.03152 0.00979 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Brucellaceae|g__Brucella 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Brachyspiraceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodospirillales|f__Acetobacteraceae|g__Acetobacteraceae_unclassified 0 0 0 0 0 0 0.00592 0 0 0
+k__Bacteria|p__Lentisphaerae|c__Lentisphaerae_uncl 0 0 0 0 0 0 0.00079 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Catonella 0.00479 0.00644 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Lactococcus 0.00226 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae 4.08898 1.60283 0 0 0 0 0.39123 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio 0 0 0 0 0 0 0.05155 0.0108 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides 0.0109 0.02443 0 0.74299 0 0 62.65775 51.19296 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Bulleidia|s__Bulleidia_extructa 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Pseudoramibacter|s__Pseudoramibacter_alactolyticus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae 0.36189 2.81749 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Gardnerella|s__Gardnerella_vaginalis 0 0 0 0 0 0.17415 0 0 0.99685 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_xylanisolvens 0 0 0 0 0 0 0.94246 2.35925 0 0
+k__Archaea|p__Euryarchaeota|c__Halobacteria|o__Halobacteriales 0 0 0 0 0 0 0 0.00083 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Eggerthella 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chloroflexi|c__Chloroflexi|o__Chloroflexales|f__Chloroflexaceae|g__Roseiflexus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella 0.34525 0.43179 0 0.05935 0 0.0055 0 0.00091 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_epidermidis 0 0 5.76171 16.17802 34.60265 0.16637 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_intestinalis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga 0.08189 0.53559 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria 0.74283 0.83239 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_hominis 0 0 0 0 0.00077 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_gordonii 0.47482 0.13044 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_acnes 0.01169 0.00451 42.65363 18.38453 25.06338 98.36302 0 0 0 0.02509
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae 0.0087 0.02345 0 0 0 0 0.50714 1.54853 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Herbaspirillum|s__Herbaspirillum_seropedicae 0 0 0 0 0 0 0 0 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter|s__Methanobrevibacter_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae|g__Mycobacterium|s__Mycobacterium_unclassified 0.01593 0.18643 1.17268 1.37329 2.16655 0.00588 0.0012 0.01395 0.02474 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_uniformis 0 0 0 0 0 0 0.03328 0 0 0
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Brachyspiraceae|g__Brachyspira 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_unclassified 0.00271 0.00839 0.05363 0.04181 0.01139 0.22365 0 0.01316 0.03165 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_gonidiaformans 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_pectinophilus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio|s__Desulfovibrio_piger 0 0 0 0 0 0 0.02809 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Cryptobacterium 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae 0.34525 0.43179 0 0.05935 0 0.0055 0 0.00091 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_pneumoniae 0.007 0.13644 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_scindens 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_perfringens 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_obeum 0 0 0 0 0 0 0.01633 0.04479 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_bergensis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Synechococcales|f__Synechococcaceae|g__Prochlorococcus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_parainfluenzae 16.90928 25.65636 0 0.00723 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Listeriaceae|g__Listeria|s__Listeria_monocytogenes 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium 0.02502 1.248 43.40971 57.05952 27.99501 0.00158 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_hallii 0 0 0 0 0 0 0.00821 0.00671 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_cf 0 0 0 0 0 0 0.03123 0.53044 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_meningitidis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae 0 0 0.12988 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_uncl|g__Blautia|s__Blautia_unclassified 0 0 0 0 0 0 0.04719 0.07896 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Synechococcales|f__Synechococcaceae|g__Prochlorococcus|s__Prochlorococcus_marinus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_unclassified 0.64084 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_gnavus 0 0 0 0 0 0 0 0.0018 0 0
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales 0 0 0 0 0 0 0 0.73901 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister 0.00471 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_crispatus 0 0 0 0 0 0 0 0 63.07849 99.96053
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter|s__Methanobrevibacter_smithii 0 0 0 0 0 0 0 0.04369 0 0
+k__Bacteria|p__Acidobacteria 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Afipia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Listeriaceae|g__Listeria 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_melaninogenica 0.14722 0.38324 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Abiotrophia 0.01079 0.04556 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Aurantimonadaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Pseudoflavonifractor 0 0 0 0 0 0 0 0.01962 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_breve 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_oralis 0.07192 0.9544 0 0 0 0 0 0 0 0
+k__Bacteria|p__Thermi 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium 0.51205 0.31553 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Marvinbryantia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae 0 0 0 0 0.00067 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_faecium 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Thermi|c__Deinococci|o__Deinococcales|f__Deinococcaceae|g__Deinococcus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Pasteurella|s__Pasteurella_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Archaea|p__Euryarchaeota 0 0 0 0 0 0 0 0.04452 0 0
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Pyramidobacter|s__Pyramidobacter_piscolens 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Oceanospirillales|f__Oceanospirillaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Coprobacillus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_uncl|g__Gemella|s__Gemella_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Slackia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Alkaliphilus|s__Alkaliphilus_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_acidophilus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_brevis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae|g__Mycobacterium|s__Mycobacterium_abscessus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae 0 0 0 0 0 0 0.00184 0.03849 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Mitsuokella 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_unclassified 0.0109 0.02443 0 0.39603 0 0 23.10423 26.03882 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanosphaera 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chloroflexi 0 0 0 0 0 0 0 0.00137 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylobacteriaceae|g__Methylobacterium|s__Methylobacterium_radiotolerans 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Pantoea|s__Pantoea_ananatis 0 0 0 0 0.00067 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_catenulatum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Listeriaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_parvula 2.9415 1.22643 0 0 0 0 0.01532 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_urogenitalis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_putida 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_gracilis 0.01356 0.08287 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli 68.28401 44.59892 6.15921 16.48788 34.87174 0.23859 0.01451 0.00121 97.98762 99.96053
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae 0 0 0 0.04689 0 0 14.26271 26.70875 0 0
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteria|o__Sphingobacteriales|f__Sphingobacteriaceae 0.00891 0.0271 0 0 0 0 0.98014 0.16425 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_mucilaginosa 1.90318 10.81816 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_limosum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Finegoldia 0 0 0.23081 0.49782 0.16417 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Klebsiella 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Shigella 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales 0.03593 6.8738 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_cristatus 0.01277 0.28035 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Chromatiales|f__Ectothiorhodospiraceae|g__Thioalkalivibrio 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Cronobacter 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae 0.01593 0.18643 1.17268 1.37329 2.16655 0.00588 0.0012 0.01395 0.02474 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_uncl|g__Gemella 1.21639 9.5621 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_aurimucosum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae 0.51205 0.31553 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas|s__Rhodopseudomonas_palustris 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_asparagiforme 0 0 0 0 0 0 0 0.00485 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides 0 0 0 0 0 0 13.41037 1.80806 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_varium 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Gordonibacter 0 0 0 0 0 0 0 0.00318 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_artemidis 0.01217 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_lactamica 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_salivarius 0.37986 0.11719 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Pantoea 0 0 0 0 0.00067 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Chromatiales|f__Ectothiorhodospiraceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chlamydiae|c__Chlamydiae|o__Chlamydiales 0 0.02872 0 0 0 0 0.002 0.00157 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_gingivalis 0 0.13124 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella 0.02284 0.08751 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Mobiluncus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Mannheimia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Histophilus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Lentisphaerae|c__Lentisphaerae_uncl|o__Victivallales 0 0 0 0 0 0 0.00079 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales 67.06762 35.03681 0.38492 0.14196 0.06228 0.06152 0.01451 0.00121 97.98762 99.96053
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Klebsiella|s__Klebsiella_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria 0 0 0 0 0 0 0.00592 0 0 0
+k__Bacteria|p__Acidobacteria|c__Acidobacteria|o__Acidobacteriales|f__Acidobacteriaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium 0.01461 0.01147 44.29831 19.32848 34.55072 99.27412 0 0 0 0.03947
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia|s__Burkholderia_cenocepacia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Treponemaceae|g__Treponema|s__Treponema_phagedenis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chloroflexi|c__Chloroflexi|o__Chloroflexales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae 0 0.12407 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Afipia|s__Afipia_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_casei 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfobacterales|f__Desulfobulbaceae|g__Desulfobulbaceae_unclassified 0 0 0 0 0 0 0.0011 0.00796 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_hypermegale 0 0 0 0 0 0 0.3315 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_curvus 0 0.00518 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales 0.1057 0.53994 0 0 0 0 0.00121 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_goodfellowii 0 0.02368 0 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Oscillatoriales|f__Oscillatoriaceae|g__Oscillatoriaceae_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Simonsiella 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodospirillales 0 0 0 0 0 0 0.00592 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_thetaiotaomicron 0 0 0 0 0 0 0.54676 3.77866 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Pediococcus|s__Pediococcus_acidilactici 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Cronobacter|s__Cronobacter_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_mucosa 0 5.09874 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_oralis 0.02284 0.06657 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_capitis 0 0 0.01258 0.15124 0.20605 0.0107 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Helicobacteraceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_gallinarum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus 0 0.0166 1.31687 0.51826 0.08948 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_ovatus 0 0 0 0.00997 0 0 0.95955 6.761 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae 0 0 0 0 0 0.05986 0 0 97.98762 99.96053
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae|g__Mycobacterium 0.01593 0.18643 1.17268 1.37329 2.16655 0.00588 0.0012 0.01395 0.02474 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter 0 0 0 0 0 0 0 0.04369 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Flavobacterium 0.00956 0 0 0 0 0 0.00121 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Streptobacillus|s__Streptobacillus_moniliformis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Eikenella 0 0.03902 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus 0 0.00471 0.22566 0.17617 0.04605 0 0 0.00202 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Oceanospirillales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylocystaceae|g__Methylocystaceae_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Pseudoramibacter 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Pseudoflavonifractor|s__Pseudoflavonifractor_capillosus 0 0 0 0 0 0 0 0.01962 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Eikenella|s__Eikenella_corrodens 0 0.03902 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Histophilus|s__Histophilus_somni 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae 0.03593 6.8738 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_iners 0 0 0 0 0 0.05986 0 0 34.53694 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria 0.04065 6.98731 0 0 0 0 5.71496 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae 0.00271 0.00839 0.05363 0.04181 0.01139 0.39781 0.02476 0.02184 1.0285 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_suis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sputigena 0.01906 0.0052 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus 66.94588 34.05779 0.38492 0.14196 0.06228 0.00167 0.01397 0.00121 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_unclassified 0.04376 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium 0 0 0 0 0 0 0.00184 0.01887 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus|s__Peptostreptococcus_stomatis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_lugdunensis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Subdoligranulum|s__Subdoligranulum_variabile 0 0 0 0 0 0 0.00085 0.01006 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella 3.99098 1.37318 0 0 0 0 0.05974 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Arthrobacter 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria 21.77649 28.58446 0.12988 0.00723 0.00067 0.00061 0 0 0.67835 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Lactococcus|s__Lactococcus_lactis 0.00226 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae|g__Paracoccus|s__Paracoccus_denitrificans 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_dispar 0.08025 0.07118 0 0 0 0 0.00219 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_gingivalis 0 0 0 0 0 0.0116 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_unclassified 0 0.0166 1.31687 0.51826 0.08948 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_intestinalis 0 0 0 0 0 0 0.10362 0.00634 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Gardnerella 0 0 0 0 0 0.17415 0 0 0.99685 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_adiacens 0.01077 0.16997 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Moraxella 0 0 0.12988 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_unclassified 0 0 0 0 0 0 0.00054 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_ruminis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Xanthomonadales|f__Xanthomonadaceae|g__Xanthomonas|s__Xanthomonas_campestris 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Mitsuokella|s__Mitsuokella_multacida 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes 0 0 0 0.04689 0 0 14.26271 26.70875 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae 0.05913 0.09978 0 0.00252 0 0 0.42822 12.6306 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_nucleatum 0.51205 0.30043 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_helveticus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_aerofaciens 0 0 0 0 0 0 0.02794 0.27373 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria 0.1057 0.53994 0 0 0 0 0.00121 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_mesenteroides 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma|s__Ureaplasma_unclassified 0 0 0 0 0 0 0 0 0.03277 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Anaerotruncus 0 0 0 0 0 0 0 0.00223 0 0
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Brachyspiraceae|g__Brachyspira|s__Brachyspira_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_agalactiae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chloroflexi|c__Thermomicrobia 0 0 0 0 0 0 0 0.00137 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_pyogenes 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Lautropia|s__Lautropia_mirabilis 0.00472 0.11351 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales 2.64512 15.9596 88.88069 77.8289 64.71229 99.28158 0.0012 0.01395 0.02474 0.03947
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia 2.22767 11.69621 0 0.05283 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_fermentum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_anginosus 0.00934 0.00521 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_johnsonii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Proteus|s__Proteus_mirabilis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium 0.05913 0.09978 0 0.00252 0 0 0.42822 12.6306 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Psychrobacter|s__Psychrobacter_arcticus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_finegoldii 0 0 0 0 0 0 21.72982 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Kocuria 0 0 0 0.01476 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Aerococcus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_radioresistens 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_uncl|g__Blautia|s__Blautia_hydrogenotrophica 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium 0.00391 0.01701 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_bromii 0 0 0 0 0 0 0 0.02892 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Mycoplasma 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_vaginalis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Frankiaceae|g__Frankia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Parascardovia|s__Parascardovia_denticolens 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_odontolyticus 0.06407 0.77066 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_oris 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Cryptobacterium|s__Cryptobacterium_curtum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Butyrivibrio 0 0 0 0 0 0 0.00488 0.02283 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_bovis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_torques 0 0 0 0 0 0 0.0057 0.24707 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria 0.01309 6.74728 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_dentocariosa 0.32449 0.87805 0 0.05283 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_flueggei 0.0036 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_methylpentosum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas 0 0 0 0 0 0 0 0 0.67835 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_animalis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella|s__Sutterella_wadsworthensis 0 0 0 0 0 0 5.71168 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_lacrimalis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hiranonis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_siraeum 0 0 0 0 0 0 0 0.01044 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_uncl|g__Blautia 0 0 0 0 0 0 0.04719 0.07896 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_uncl 1.21639 9.5621 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_bartlettii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Pediococcus|s__Pediococcus_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Helicobacteraceae|g__Helicobacter 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae 0 0 0 0 0 0 0.2008 2.53275 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Odoribacter 0 0 0 0 0 0 1.21083 1.51285 0 0
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Treponemaceae|g__Treponema|s__Treponema_vincentii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae 0.1057 0.53994 0 0 0 0 0.00121 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_dysgalactiae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae|g__Paracoccus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_australis 0.00077 3.73954 0 0 0 0 0 0 0 0
+k__Bacteria|p__Tenericutes 0 0 0 0 0 0 0 0 0.14224 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_amycolatum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium 0.00271 0.00839 0.05363 0.04181 0.01139 0.22365 0.02476 0.02184 0.03165 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Pasteurella|s__Pasteurella_dagmatis 0 0 0 0 0 0.00061 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Aurantimonadaceae|g__Aurantimonadaceae_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_gasseri 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales 0 0 0.12988 0 0 0 0 0 0.67835 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_hominis 0 0 0 0 0 0 0 0.0005 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_matruchotii 0.02502 1.248 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella 0.10642 0.86092 0 0 0 0 0.00054 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_shahii 0 0 0 0 0 0 1.55262 0.80953 0 0
+k__Bacteria|p__Chlamydiae|c__Chlamydiae 0 0.02872 0 0 0 0 0.002 0.00157 0 0
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Jonquetella|s__Jonquetella_anthropi 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_saphenum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chloroflexi|c__Chloroflexi 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_longum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_inulinivorans 0 0 0 0 0 0 0.02777 1.1278 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_cf 0 0 0 0 0 0 0 0.0062 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_stercoris 0 0 0 0 0 0 6.27607 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylobacteriaceae|g__Methylobacterium|s__Methylobacterium_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_sicca 0.01309 0.63912 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae 21.77649 28.46039 0 0.00723 0 0.00061 0 0 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae 0 0 0 0 0 0 0 0.04369 0 0
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae 0 0 0 0 0 0 0 0.73901 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Simonsiella|s__Simonsiella_muelleri 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_buccalis 0.01581 0.08602 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_paracasei 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Enhydrobacter 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_caccae 0 0 0 0.09312 0 0 0.05199 0 0 0
+k__Bacteria|p__Acidobacteria|c__Acidobacteria|o__Acidobacteriales|f__Acidobacteriaceae|g__Granulicella 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_mutans 0.02869 0.02288 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_cinerea 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chlamydiae|c__Chlamydiae|o__Chlamydiales|f__Chlamydiaceae|g__Chlamydiaceae_unclassified 0 0.02872 0 0 0 0 0.002 0.00157 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae 66.94814 34.05779 0.38492 0.14196 0.06228 0.00167 0.01397 0.00121 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Oxalobacter|s__Oxalobacter_formigenes 0 0 0 0 0 0 0.00328 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus 0 0 5.77428 16.34592 34.80946 0.17707 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Coprobacillus|s__Coprobacillus_bacterium 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae 0 0 0 0 0 0 0 0.58981 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hathewayi 0 0 0 0 0 0 0 0.00147 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_salanitronis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chloroflexi|c__Chloroflexi|o__Chloroflexales|f__Chloroflexaceae|g__Roseiflexus|s__Roseiflexus_castenholzii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_lactolyticus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter|s__Enterobacter_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Klebsiella|s__Klebsiella_variicola 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas 0.05425 0.21024 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseriaceae_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcaceae_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Mobiluncus|s__Mobiluncus_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chlamydiae|c__Chlamydiae|o__Chlamydiales|f__Chlamydiaceae 0 0.02872 0 0 0 0 0.002 0.00157 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_eggerthii 0 0 0 0 0 0 2.24947 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Marvinbryantia|s__Marvinbryantia_formatexigens 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae 0 0 0 0 0 0 0 0.73901 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_difficile 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Shuttleworthia|s__Shuttleworthia_satelles 0 0 0 0 0 0 0 0 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria 0 0 0 0 0 0 0 0.04369 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae|g__Sphingopyxis|s__Sphingopyxis_alaskensis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Oceanospirillales|f__Oceanospirillaceae|g__Marinomonas|s__Marinomonas_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Archaea|p__Euryarchaeota|c__Halobacteria 0 0 0 0 0 0 0 0.00083 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Anaerofustis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_disiens 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichiaceae 0.08721 0.2437 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_merdae 0 0 0 0 0 0 11.7065 1.48614 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter 1.8464 0.19125 0 0 0 0 0 0.0005 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_dorei 0 0 0 0 0 0 0.0978 0.31562 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_mitis 64.39467 24.71618 0.38492 0.14196 0.06228 0.00167 0.00881 0.00121 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_multiformis 0.00965 0.00052 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Klebsiella|s__Klebsiella_pneumoniae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_vaginalis 0 0 0 0 0 0 0 0 0.10944 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_amnii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_subflava 0 0.07142 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Shigella|s__Shigella_sonnei 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae 0.0109 0.02443 0 0.74299 0 0 62.65775 51.19296 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales 0 0.02361 0 0 0 0 0.01722 0.00149 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea 0 0 0 0 0 0 0.02387 0.21677 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hylemonae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria 0 0 0 0 0 0 0.09126 0.08864 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_vestibularis 0.71186 0.93559 0 0 0 0 0 0 0 0
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma|s__Ureaplasma_parvum 0 0 0 0 0 0 0 0 0.10947 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Citrobacter|s__Citrobacter_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia|s__Escherichia_coli 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_coprocola 0 0 0 0 0 0 0.00037 0 0 0
+k__Bacteria|p__Lentisphaerae|c__Lentisphaerae_uncl|o__Victivallales|f__Victivallaceae|g__Victivallis 0 0 0 0 0 0 0.00079 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_ochracea 0.01846 0.0975 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chloroflexi|c__Chloroflexi|o__Chloroflexales|f__Chloroflexaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_timonensis 0 0 0 0 0 0.0055 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus 0 0 0 0 0 0 0.347 0.17479 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_rhamnosus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister|s__Dialister_microaerophilus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_asaccharolytica 0 0 0 0 0 0 0 5.00E-05 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_oris 0.199 1.41608 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Turicibacter 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae 0 0 0 0 0 0 0.00328 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales 0 0.12407 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_citreum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Actinobacillus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_duerdenii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oris 0.04661 0.0189 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales 0.07015 0.14947 4.77658 4.78495 0.40391 0.01251 1.18519 16.83136 0.13856 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania 0 0 0 0 0 0 0.01722 0.00149 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium 0.03191 0.00979 0 0 0 0.05181 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_influenzae 4.85706 2.68484 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Proteus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_vulgatus 0 0 0 0.24386 0 0 2.13004 5.2587 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Kocuria|s__Kocuria_rhizophila 0 0 0 0.01476 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_bifidum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_mortiferum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_saccharolyticum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_showae 0.14276 0.01497 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oralis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Gordonibacter|s__Gordonibacter_pamelaeae 0 0 0 0 0 0 0 0.00318 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_freudenreichii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae 0.02502 1.248 43.40971 57.05952 27.99501 0.00158 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Oceanospirillales|f__Oceanospirillaceae|g__Marinomonas 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella 0 0 0 0 0 0 0.02794 0.27373 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi 0 0.02361 0 0 0 0 0.01722 0.00149 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Anaerofustis|s__Anaerofustis_stercorihominis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfobacterales|f__Desulfobulbaceae 0 0 0 0 0 0 0.0011 0.00796 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Actinobacillus|s__Actinobacillus_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_reuteri 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Treponemaceae|g__Treponema|s__Treponema_denticola 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma 0 0 0 0 0 0 0 0 0.14224 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera 0.03903 0.01942 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_salivae 0.11461 0.01624 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Shigella|s__Shigella_dysenteriae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Slackia|s__Slackia_exigua 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus|s__Peptostreptococcus_anaerobius 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Rhizobiaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Psychrobacter|s__Psychrobacter_cryohalolentis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_denitrificans 0 0.02094 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_rectus 0.00466 0.00597 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_harei 0 0 0 0.0175 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae 0.00472 0.11351 0 0 0 0 0 0 0 0
+k__Bacteria|p__Thermi|c__Deinococci|o__Deinococcales|f__Deinococcaceae|g__Deinococcus|s__Deinococcus_radiodurans 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Brucellaceae|g__Brucella|s__Brucella_ceti 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_uncl|g__Gemella|s__Gemella_haemolysans 1.19881 9.38771 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_aeruginosa 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Verrucomicrobia 0 0 0 0 0 0 0 0.73901 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_micronuciformis 0.03903 0.01942 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_hydrogenalis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter|s__Enterobacter_cancerogenus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_formicigenerans 0 0 0 0 0 0 0.01892 0.14409 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Mannheimia|s__Mannheimia_haemolytica 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_aureus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia|s__Escherichia_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis 0.00231 0.02623 4.77658 4.78243 0.40391 0.01251 0 0.00202 0.13856 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Acidovorax|s__Acidovorax_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_parasanguinis 0.56318 0.30521 0 0 0 0 0.00326 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_comes 0 0 0 0 0 0 0.32886 0.15918 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister|s__Dialister_invisus 0.00471 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Shigella|s__Shigella_boydii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Xanthomonadales|f__Xanthomonadaceae|g__Xanthomonas 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Anaerotruncus|s__Anaerotruncus_colihominis 0 0 0 0 0 0 0 0.00223 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Herbaspirillum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales 0.00472 0.11351 0 0 0 0 5.71496 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Pasteurella 0 0 0 0 0 0.00061 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichales_unclassified 0.14357 0.27316 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes|s__Anaerostipes_caccae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_jeikeium 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Cellulophaga|s__Cellulophaga_unclassified 0.01425 0.00434 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Micrococcus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteria|o__Sphingobacteriales 0.00891 0.0271 0 0 0 0 0.98014 0.16425 0 0
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Spirochaetes 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Finegoldia|s__Finegoldia_magna 0 0 0.23081 0.49782 0.16417 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Cellulophaga 0.01425 0.00434 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae 1.8464 0.19125 0 0 0 0 0 0.0005 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Catenibacterium|s__Catenibacterium_mitsuokai 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Synechococcales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Catonella|s__Catonella_morbi 0.00479 0.00644 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus 21.76634 28.34121 0 0.00723 0 0 0 0 0 0
+k__Bacteria|p__Acidobacteria|c__Acidobacteria|o__Acidobacteriales|f__Acidobacteriaceae|g__Granulicella|s__Granulicella_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Brucellaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_flavescens 0 0.85983 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Oxalobacter 0 0 0 0 0 0 0.00328 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Alkaliphilus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_eutactus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium 0 0 0 0 0 0 0.17732 2.1881 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_ventriosum 0 0 0 0 0 0 0.12152 0.39386 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae|g__Rhodobacter|s__Rhodobacter_sphaeroides 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_viscosus 0.09882 0.63074 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria 2.67974 15.97778 88.93433 77.87071 64.72368 99.7312 0.05389 0.3127 1.05324 0.03947
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces 0.36189 2.81749 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia 0 0 0 0 0 0 0.13139 1.13414 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_marshii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae 0 0 0 0 0 0 0.09016 0.08068 0 0
+k__Bacteria|p__Tenericutes|c__Mollicutes 0 0 0 0 0 0 0 0 0.14224 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_junii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Acidobacteria|c__Acidobacteria|o__Acidobacteriales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_accolens 0 0 43.1991 53.95069 0.01307 0.00158 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia|s__Burkholderia_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Parvimonas|s__Parvimonas_micros 0 0.00491 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Acidovorax 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chlamydiae 0 0.02872 0 0 0 0 0.002 0.00157 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_symbiosum 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylocystaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Mycoplasma|s__Mycoplasma_hominis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae|g__Rhodobacter 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteria|o__Sphingobacteriales|f__Sphingobacteriaceae|g__Sphingobacteriaceae_unclassified 0.00891 0.0271 0 0 0 0 0.98014 0.16425 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_stercoris 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes 72.44313 46.37482 10.93579 21.27284 35.27565 0.2511 1.60815 17.42387 98.12617 99.96053
+k__Bacteria|p__Fusobacteria 0.74283 0.83239 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria 2.67974 15.97778 88.93433 77.87071 64.72368 99.7312 0.05389 0.3127 1.05324 0.03947
+k__Bacteria|p__Lentisphaerae|c__Lentisphaerae_uncl|o__Victivallales|f__Victivallaceae|g__Victivallis|s__Victivallis_vadensis 0 0 0 0 0 0 0.00079 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_nexile 0 0 0 0 0 0 0 0 0 0
+k__Archaea 0 0 0 0 0 0 0 0.04452 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia|s__Escherichia_fergusonii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales 0.35615 0.45622 0 0.84922 0 0.01709 91.54167 81.22358 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Psychrobacter|s__Psychrobacter_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_coprophilus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_rectale 0 0 0 0.00252 0 0 0.20781 12.21923 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_periodonticum 0 0.0151 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Frankiaceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_unclassified 0.00292 0.00697 1.64468 0.94395 9.48734 0.9111 0 0 0 0.01439
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter|s__Enterobacter_cloacae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales 21.77649 28.46039 0 0.00723 0 0.00061 0 0 0 0
+k__Bacteria|p__Lentisphaerae 0 0 0 0 0 0 0.00079 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_saprophyticus 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Treponemaceae|g__Treponema 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_helcogenes 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_uncl|g__Blautia|s__Blautia_hansenii 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_thermophilus 0.05327 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio|s__Desulfovibrio_desulfuricans 0 0 0 0 0 0 0.02346 0.0108 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_peroris 0.0035 0.07613 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae 0 0 0 0 0 0 0 0 0.67835 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_unclassified 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcus|s__Acidaminococcus_fermentans 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_tetradius 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas 0 0 0 0 0 0.0116 0 5.00E-05 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales 0.00271 0.00839 0.05363 0.04181 0.01139 0.39781 0.02476 0.02184 1.0285 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Pasteurella|s__Pasteurella_multocida 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_leptum 0 0 0 0 0 0 0.00184 0.00315 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania|s__Holdemania_filiformis 0 0 0 0 0 0 0.01722 0.00149 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_pseudintermedius 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Parascardovia 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella 0 0 0 0 0 0 5.71168 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_buccae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_actinomycetemcomitans 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Parvimonas 0 0.00491 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales 0.03191 0.00979 0 0 0 0.05181 0.02794 0.27691 0 0
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_faecalis 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_gonorrhoeae 0 0 0 0 0 0 0 0 0 0
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanosphaera|s__Methanosphaera_stadtmanae 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_lactaris 0 0 0 0 0 0 0 0.00124 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_segnis 0.00555 0.06655 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_polysaccharea 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae 0 0.02361 0 0 0 0 0.01722 0.00149 0 0
diff --git a/example/HMP_690.tsv b/example/HMP_690.tsv
new file mode 100644
index 0000000..8205cfe
--- /dev/null
+++ b/example/HMP_690.tsv
@@ -0,0 +1,719 @@
+ID SRS013946 SRS014473 SRS014687 SRS015060 SRS019025 SRS019125 SRS011090 SRS011144 SRS011247 SRS011310 SRS012281 SRS013239 SRS013506 SRS013711 SRS013825 SRS013881 SRS013945 SRS014126 SRS014472 SRS014575 SRS014686 SRS014890 SRS015040 SRS015059 SRS015154 SRS015274 SRS015374 SRS015436 SRS015646 SRS015745 SRS015799 SRS015895 SRS015921 SRS016039 SRS016088 SRS016196 SRS016297 SRS016349 SRS016503 SRS016533 SRS016600 SRS017013 SRS017080 SRS017127 SRS017215 SRS017441 SRS017537 SRS017687 SRS017810 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.00E-05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodospirillales|f__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_vaginae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae 0 0 0 0 0.23614 0 0 0 0.03219 0.00663 0 0 0 0.12273 0.62933 0 0.00383 0 0.05204 0 0.2545 0 0.00319 0 0 0 0 0 0.01105 0.27709 0.00154 0 0 0 0 0 0.09623 0.50181 0 0 0 0.15668 0.05974 0 0.00932 0 0.04629 0.25362 0.20541 0.01758 0 0.01499 0 0.01383 0.75379 0 0.00073 0 0 0 0 0.00269 0 0.14188 0 0 0 0.00474 0 0.0025 0.00254 0.15616 0.78651 1.12376 0 0.13041 0.00198 1.19015 0.22713 0 0.7734 0 0.18776 0.505 0.0012 [...]
+k__Bacteria|p__Thermi|c__Deinococci|o__Deinococcales|f__Deinococcaceae|g__Deinococcus|s__Deinococcus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_unclassified 0 0.00591 0 0.00215 0.04399 0.0116 0 0 0.0016 0.00712 0 0 0 0.05508 0.02987 0 0.10974 0 0 0 0.12645 0.01515 0.01091 0 0.00471 0 0 0.02833 0 0.01241 0 0 0 0.00804 0 0 0.0372 0 0 0 0 0.00574 0.01416 0 0.00561 0 0.01157 0.06804 0.02151 0.00105 0 0 0 0.00678 0.15708 0.03318 0.14094 0 0.21599 0 0 0.01199 0 0 0.02199 0 0 0.00756 0.00475 0.00744 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Arthrobacter|s__Arthrobacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00047 0 0 0 0 0 0 0 0 0 0.0004 0 0 0 0 0 0 0 0 0 0.00066 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetes 0.00022 0 0 0 0.03474 0.00015 0 0 0.00157 0 0 0 0 0.1037 0.11441 0 0 0 0.00155 0 0.04833 0 0 0 0 0 0 0.00061 0.0023 0.00459 0 0 0 0 0 0 0 0 0 0 0 0 0.02256 0 0.00253 0 0 0.0299 0.04255 0.00061 0 0 0.00362 0 0.12051 0 0 0 0 0 0 0 0 0.02539 0 0 0 0.0078 0 0 0 0.0081 0.07855 0.94755 0 0 0 0 0.02778 0 0.16843 0 0.03152 0.06861 0 0 0.00427 0 0 0.05048 0 0 0 0 0 0.01027 0.03653 0 0 0.00931 0.00686 0 0 0.2626 0.00028 0 0 0.00951 0 0 0 0 0 0.04451 0.52 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Delftia|s__Delftia_acidovorans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_unclassified 0 0 0 0.00687 0 0 0 0 0 0 0 0 0 0 0 0 0.00125 0 0 0.01576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00058 0.00084 0 0 0 0 0.00053 0 0 0 0 0.00138 0 0 0 0.00355 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_kroppenstedtii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14888 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus 0 0 0 0 0 0 0 0 0.0112 0 0 0 0 0.00264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.38228 0 0 0 0 0 0 0 0 0 0 0.00087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00175 0 0 0 0 0 0 0 0 0 0.00324 0 0.35352 0.00477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04124 0 0 0 0 0 0 0 0 0 0.00161 0 0 0 0 0 0 0 0 0.00069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_bivia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_saburreum 0.00066 0.00353 0 0.02028 0.39996 0.00303 0 0.09735 0.01447 0.04933 0.05477 0.05913 0.0017 0.10815 0.03715 0.00592 0.00616 0 0.00554 0 0.07885 0.0021 0.01499 0.04959 0.09978 0.04155 0 0.0182 0.00109 0.16796 0 0.00152 0.00292 0.18087 0 0 0.76934 0.04457 0.01692 0.0174 0.03316 0.00343 0.22171 0 0.03267 0.00737 0.00118 0.10499 0.1197 0.00446 0.00837 0.00748 0.0293 0.01377 0.259 [...]
+k__Bacteria|p__Thermi|c__Deinococci|o__Deinococcales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00821 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_parasuis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.00E-05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_atypica 0 0.00365 0.0113 0.01165 0.13178 0 0.07925 0.89133 0.47599 0.01149 0 0.3284 0.1251 3.39376 1.04599 0.00053 0 0 0.02561 0.18492 0.9642 0 0.0878 0.16823 0.07557 1.96028 0.06697 0.03887 0.04668 0.02939 0 0.10434 0.07591 0.00713 0.26644 0.00568 0.55 1.99203 0.00875 0.02121 0.00507 0.00403 3.26662 0.00506 0.02874 0.01912 0.01274 0.33544 1.69776 0.00757 0.09832 0.0717 0.31183 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Butyrivibrio|s__Butyrivibrio_crossotus 0 0 0 0 0 0 0 0.16393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.40863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_fragilis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Rhizobiaceae|g__Agrobacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Halobacteria|o__Halobacteriales|f__Halobacteriales_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales 0 0.00161 0 0.00451 0 0 0 0 0 0 0 0 0 0 0.00428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00746 0 0 0 0.00394 0 0 0 0 0 0 0 0 0.0033 0 0 0 0 0.00352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01809 0 0 0 0 0 0 0 0 0.01843 0 0.00356 0 0 0 0.04151 0 0 0.00303 0 0.00261 0 0.00136 0.00658 0 0 0.00231 0 0 0 0 0 0 0 0 0 0.00149 0 0 0 0 0 0 0.0063 0 0.01041 0.08059 0.03494 0 0.02828 0.01096 0.03415 0.02051 0.03145 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Chromatiales|f__Ectothiorhodospiraceae|g__Thioalkalivibrio|s__Thioalkalivibrio_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00073 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter 0.07214 0.00449 0 0.00252 0.32298 0.07752 0.02344 0.82717 0.05166 0.36416 0.10769 0.01015 0.07356 0.17073 0.03764 0.10721 0.37018 0.00094 0.33922 0.12868 0.02236 0.43298 0.02977 0 0.11918 0 0.02756 0.31217 0.00948 0.20648 0.02149 0.0446 0.03328 0.31167 0 0.02815 1.45223 0.24844 0.00632 0.00175 0.18624 0.36256 0.0322 0.00923 0.2866 0.10983 0.05886 0.62735 0.17671 0.13093 0.03848 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Slackia|s__Slackia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00389 0 0 0.00461 0 0 0 0.00282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00381 0 0.00181 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_pseudogenitalium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_pseudocatenulatum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae 0.00597 0.14083 0.04092 2.12577 1.25474 0.01374 0.39226 3.26374 1.31194 0.36325 0.9364 2.22767 0.90035 0.602 14.51106 2.00818 10.59088 1.06424 2.86925 7.147 5.71201 2.89802 3.19699 18.99963 11.69621 9.14701 1.99988 1.22142 0.34249 5.07937 1.52164 8.73887 16.20753 1.01024 62.34921 5.0243 7.29568 6.99818 25.28661 27.71667 1.09229 3.19514 36.65908 0.07358 0.05138 0.42732 0.99856 2.37934 0.93925 0.10385 1.19 [...]
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Oscillatoriales|f__Oscillatoriaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Thermi|c__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00821 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_delbrueckii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Bilophila|s__Bilophila_wadsworthia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01809 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00063 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Clostridiales_Family_XI_Incertae_Sedis_unclassified 0 0 0 0 0 0 0 0 0 0 0 0.00231 0.00999 0 0 0.00602 0 0 0 0.00849 0 0 0 0 0 0 0 0 0 0 0.07616 0 0 0 0 0 0 0 0 0 0 0 3.00E-05 0 0 0 0 0 0 0 0.00037 0 0 0.00808 0 0 0 0 0 0 0 0 0 0 0 0 0.04689 0 0.04592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00703 0.01018 0 0 0 0.03543 0.05869 0.01067 0 0 0 0.00279 0 0 0 0 0 0 0.00888 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_sanguinis 0.04517 0.08502 0.00273 2.74043 0.06434 0.04831 0.84498 4.0468 0.50523 0.70993 3.70329 0.19375 0.46881 1.27692 1.21152 0.48421 2.03124 0.10159 0.17406 1.76764 0.11242 1.41279 0.45717 0.98234 1.9498 1.33383 0.9497 0.40121 0.08197 0.74903 0.09785 1.54667 1.46547 8.38974 1.75054 0.64527 6.4097 0.7719 2.07561 1.94294 1.2925 0.17315 3.58371 0.53975 0.06276 0.57646 3.08883 3. [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Treponemaceae 0.00022 0 0 0 0.03474 0.00015 0 0 0.00157 0 0 0 0 0.1037 0.11441 0 0 0 0.00155 0 0.04833 0 0 0 0 0 0 0.00061 0.0023 0.00459 0 0 0 0 0 0 0 0 0 0 0 0 0.02256 0 0.00253 0 0 0.0299 0.04255 0.00061 0 0 0.00362 0 0.12051 0 0 0 0 0 0 0 0 0.02539 0 0 0 0.0078 0 0 0 0.0081 0.07855 0.94755 0 0 0 0 0.02778 0 0.16843 0 0.03152 0.06861 0 0 0.00427 0 0 0.05048 0 0 0 0 0 0.01027 0.03653 0 0 0.00931 0.00686 0 0 0.2626 0.00028 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia|s__Serratia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Olsenella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00054 0 0.60664 0.00062 0 0 0 0.00352 0 0 0.34422 0 0.00144 0.05278 0 0 0 0 0 0 0 0 0 0 0.00306 0 0.14164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Solobacterium|s__Solobacterium_moorei 0.00198 0 0 0 0.028 0 0 0.04807 0.01988 0 0 0 0.00275 0.39723 0.02963 0.0312 0.00024 0 0 0.00207 0.14113 0 0 0 0.02361 0 0 0.0175 0.01009 0.00698 0 0.0004 0 0 0 0 0.03377 0.04692 0 0 0.0084 0.00515 0.10342 0 0.01369 0.00015 0.00138 0.01706 0.35296 0.00399 0.00131 0.01487 0.05444 0.01863 0.13781 0.00133 0.00082 0 0 0 0.00772 0.24028 0.00714 0 0.0306 0.02838 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_haemolyticus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Lentisphaerae|c__Lentisphaerae_uncl|o__Victivallales|f__Victivallaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria 10.96893 0.2808 0.00116 0.95756 0.31746 7.48077 0.04054 2.23751 0.33455 0.01828 0.10639 1.8464 0.07853 5.80339 0.42558 0.07115 0.01706 0.0006 0.03405 0.45271 1.40978 0.11311 0.07706 0.20646 0.19125 0.80737 0.02387 0.23056 0.05658 0.56541 0.0089 0.07968 0.06188 0.51963 0.56506 0 1.51082 0.64173 0.09462 0.11304 0.08131 0.05681 1.21072 0.0049 0.13787 0.32301 0.62344 0.68775 1.45008 0.03001 0.07843 0.07693 0.26369 0.20042 1.09493 0.05053 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Pyramidobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Citrobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Frankiaceae|g__Frankia|s__Frankia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_infantis 0.00179 0.05236 0.05905 0.04528 0.47858 0.00461 0.43655 1.42047 1.74258 0.25447 0.28091 0.04047 0.27479 2.2099 0.91887 1.32336 0.30624 0.69744 0.48439 2.62941 2.84726 0.44529 0.25325 2.78715 0.68844 0.44362 0.08835 1.61907 0.21828 0.64075 0.75061 0.44366 0.48127 0.22099 0.38514 0.19653 1.09863 2.32663 2.43802 2.01306 1.22948 3.12644 0.86498 0.00467 0.1784 0.50422 0.35717 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_noxia 0.06921 0.01728 0 0.05551 0.0125 0.00998 0 0 0 0 0.01326 0.01942 0 0.10122 0.01284 0 0 0 0 0.04982 0 0 0 0.02609 0.20504 0 0 0.00196 0 0.12755 0 0 0 0.14009 0 0 0.15139 0.00646 0 0 0 0 0.052 0 0.00547 0.00331 0 0.0925 0.02885 0.00022 0 0 0.00242 0 0 0 0 0 0 0 0 0 0.00027 0 0 0 0 0 0.02817 0.00466 0.07744 0 0 0.95301 0.13875 0 0.03775 0 0.00386 0 0.00106 0.00061 0 0.29029 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_botulinum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_uenonis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04468 0 0 0 0 0 0 0 0 0 0.01194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_hofstadii 0.00833 0.01606 3.00E-05 0.02908 0.2399 0.01561 0.09443 0.18798 0.00283 0.07323 0.06062 0.02532 0.00424 0.18321 0.10089 0.0019 0.00354 0 0.0816 0 0.0554 0 0.05439 0 0.08863 0.04543 0 0.02042 0.00628 0.45222 0 0 0 0.07128 0 0.00876 11.74776 0.09812 0 0 0.07374 0.01593 0.32791 0.07934 0.03504 0.02251 0.02635 0.09865 0.0699 0.03095 0.01887 0.11311 0.02906 0 0.0458 0.02 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_intestinalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae|g__Akkermansia 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_albus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichiaceae|g__Leptotrichia 0.03553 0.04168 0.00124 0.09326 0.57062 0.06264 0.2035 0.41872 0.01321 0.18296 0.34274 0.08721 0.01874 0.60833 0.23721 0.01283 0.00955 0 0.26103 0.10385 0.13952 0.06034 0.1327 0.02328 0.2437 0.21889 0.00686 0.06413 0.02677 0.6495 0.00022 0.002 0.00275 0.36388 0 0.03232 19.135 0.2815 0 0 0.19108 0.02553 0.93228 0.18413 0.1303 0.05502 0.0578 0.25641 0.24242 0.08961 0.04163 0.24269 0.13001 0.00 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Jonquetella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_angulatum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Synechococcales|f__Synechococcaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_uncl|g__Gemella|s__Gemella_moribillum 0.05641 0.10529 0.07214 0.02172 0.43686 0.14821 0.00893 0.05576 0.06278 0.66062 0.096 0.01758 0.12818 1.0748 0.0605 0.12011 0.07108 0.02596 0.14925 0.17838 0.36429 0.20238 0.0898 0 0.17439 0 0.04481 0.42653 0.02794 0.4199 0.07709 0.03743 0.02824 0.0416 0 0.13559 0.49929 0.0822 0.06162 0.04027 0.1363 0.07133 0.01244 0.06033 0.17391 0.15367 0.12706 0.23459 0.13337 0.26685 0.07278 0.13356 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Xanthomonadales|f__Xanthomonadaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae 0 0.00555 0 0.01421 0.00177 0 0.01189 0.1628 0.00736 0.02001 0.22349 0.01461 0 0.04811 0.26616 0.00343 0.00104 0.0099 0.03808 0.05895 0 0.1756 0 0.07365 0.01147 0.19099 0.01886 0.00177 0 0 0 0.00175 0.00641 0.00883 0.04337 0.00225 0 0.29621 0 0.00912 0.02749 0.03422 0.02713 0.06635 0.00938 0.00774 0.05185 0.04538 0.06467 0.00232 0.00846 0.01619 0.01897 0.00615 0 0 0 0 0.10763 0 0.00734 0.01013 0.00 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia 0.23888 0.03745 0.00487 0.03336 1.79703 0.40683 0.1291 1.51125 1.75788 0.08056 0.1169 0.35615 0.4374 12.3752 2.66354 0.25323 0.02348 0.00805 0.28328 0.30167 5.80263 0.04305 0.2423 0.09969 0.45622 0.81624 0.03787 0.428 0.15816 0.66393 0.02141 0.22482 0.21673 0.08978 0.10752 0.0313 1.15429 12.58215 0.15741 0.1701 0.47995 0.32816 1.33549 0.17674 0.25063 0.16528 0.19381 2.50901 6.80915 0.20933 0.43655 1.10402 2.00971 1.01771 5.41823 0.26388 0.2224 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Olsenella|s__Olsenella_uli 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00054 0 0.60664 0.00062 0 0 0 0.00352 0 0 0.34422 0 0.00144 0.05278 0 0 0 0 0 0 0 0 0 0 0.00306 0 0.14164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00054 0.00043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Shuttleworthia 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00033 0.01985 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00092 0.03093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04057 0 0 0 0 0 0 0.00345 0 0 0 0 0 0.00082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01425 0 0.02852 0.0673 0.02739 0 0.09779 0.01221 0.00472 0 0 0 0 0.01622 0 0.00032 0.00964 0 0.03272 0 0.09632 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacterium|s__Cardiobacterium_hominis 0 0.00265 0 0.0061 0.01092 0 0.00235 0 0.02904 0.00225 0 0 0 0 0 0.02094 0.0023 0 0 0.05205 0 0.05155 0.00017 0 0.12407 0 0 0 0 0.04026 0.02688 0.00924 0.02239 0.26691 0 0 0.18108 0 0 0 0.01511 0.00024 0.04359 0 0.02515 0.05154 0 0.06145 0.01815 0.0099 0 0.01858 0.0309 0.05611 0 0.07441 0.00086 0 0.37866 0 0.02266 0 0.00121 0 0 0.01403 0 0.00093 0. [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales 10.96893 0.2808 0.00116 0.95756 0.31746 7.48077 0.04054 2.23751 0.33455 0.01828 0.10639 1.8464 0.07853 5.80339 0.42558 0.07115 0.01706 0.0006 0.03405 0.45271 1.40978 0.11311 0.07706 0.20646 0.19125 0.80737 0.02387 0.23056 0.05658 0.56541 0.0089 0.07968 0.06188 0.51963 0.56506 0 1.51082 0.64173 0.09462 0.11304 0.08131 0.05681 1.21072 0.0049 0.13787 0.32301 0.62344 0.68775 1.45008 0.03001 0.07843 0.07693 0.26369 0. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales 5.42102 5.00103 9.25372 1.38947 2.28877 11.0735 3.22232 5.10595 8.55427 0.92553 5.14327 1.21639 3.70136 16.04501 2.04969 4.26515 2.64806 7.25579 6.85214 3.92755 4.90114 2.15503 15.10015 2.43227 9.5621 0.46554 16.24324 10.44059 3.35469 6.38485 2.6249 1.34781 1.02723 0.60327 0.81046 11.34271 0.89678 2.74775 2.59043 2.46376 13.7067 2.69472 0.30108 3.7702 7.66479 0.82469 10.94991 7.05293 3.13914 21.47686 10.2819 2.99278 3.54026 3.22358 2.359 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Actinobacillus|s__Actinobacillus_minor 0 0 0 0 0 0 0 0 0.00798 0.00171 0 0 0.00193 0 0 0 0 0.0008 0 0 0 0 0 0 0 0 0 0.00258 0 0.00272 0 0 0 0.00063 0 0 0 0 0 0 0.00157 0.00377 0 0 0.00324 0.00059 0 0 0.02128 0.00594 0.00027 0 0 0 0 0.00061 0 0 0 0 0 0 0 0 0.0126 0 0 0.00053 0 0 0 0 0 0 0 0.00063 0 0.00245 0.0041 0 0 0 0 0 0 0.00202 0 0.00403 0.00424 0.00099 0.00197 0 0 0 0 0 0 0.00046 0 0.00596 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Psychrobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Turicibacter|s__Turicibacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_jensenii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_infantarius 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_johnsonii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Aerococcus|s__Aerococcus_viridans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00259 0 0 0 0 0 0 0 0.01033 0 0 0 0 0 0 0 0 0 0 0.00604 0 0 0 0 0.02145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0002 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_uncl 0 0 0 0 0 0.00251 0 0 0 0 0 0 0 0.0078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00115 0 0.00198 0 0 0 0 0 0.00525 0 0 0 0 0 0 0 0 0 0 0 0 0.00803 0.00855 0 0 0 0 0.00565 0 0.01635 0.00271 0.00824 0 0.00389 0 0.01013 0.00222 0.00107 0.00327 0.00205 0.01931 0.00569 0.0155 0.00339 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_tannerae 0 0 0 0 0.19665 0 0 0.07056 0 0 0.06392 0 0 0.3303 0.23078 0.02516 0.00358 0 0 0 0.26111 0 0 0 0 0 0 0.0327 0 0.03422 0 0 0 0 0 0 0 0 0 0 0 0.02376 0 0 0.0227 0.01205 0 0.21572 0.39434 0.0736 0.06654 0.10764 0.16371 0 0.79567 0.00253 0.00549 0.00236 0 0 0 0 0.00043 0.18553 0 0.0602 0 0.02713 0 0.00406 0.37576 0.04207 0 1.69328 0 0.02127 0.02105 0.07994 0.1774 0 0.29336 0 0. [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chloroflexi|c__Thermomicrobia|o__Thermomicrobia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.17783 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00332 0 0 0 0 0 0 0 0 0.00137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00122 0 0 0 0 0 0 0 0.00114 0 0 0 0 0 0.00086 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Phascolarctobacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Brevundimonas|s__Brevundimonas_subvibrioides 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Streptobacillus 4.00E-05 0 0 0 0 0.0446 0 0 0 0 0 0 0.01429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00019 0 0 0 0 0 0 0 0 0 0 0 0.00732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_adolescentis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02756 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Oscillatoriales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_warneri 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Butyrivibrio|s__Butyrivibrio_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00097 0 0.00566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0023 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02288 0 0.0108 0 0 0 0.00424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0013 0 0.00452 0 0 0 0 0 0 0 0 0.0019 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus 0.10059 0.02174 0.01113 0.03192 0.02622 0.05875 0.00629 0 0.04558 0.04201 0 0.00226 0.06403 0.03429 0.01425 0.0105 0.0045 0.00304 0 0 0.0671 0 0.07798 0 0.07254 0.03425 0 0.07971 0.00386 0.09016 0.05367 0.00615 0.0032 0.00626 0.01948 0.0274 0 0.03106 0.00657 0.01449 0.00235 0.01627 0.00828 0.00236 0.0672 0.00902 0.00827 0.00291 0.05424 0.02261 0.00611 0.02098 0.0786 0.01606 0.03305 0.10802 0.05581 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia 0.00432 0.01065 0 0.02243 0.64926 0.04795 0.00213 0.85504 0.14886 0.06641 0.05477 0.07015 0.02845 3.60763 0.32613 0.05041 0.17592 0 0.06887 0.12052 2.20824 0.05811 0.03907 0.0751 0.14947 0.09998 0 0.16138 0.01648 0.33332 0.07616 0.02958 0.02556 0.19144 0 0 0.90513 2.39144 0.03391 0.04723 0.09316 0.1211 0.47464 0 0.10973 0.02203 0.05574 0.42975 0.98647 0.06456 0.04553 0.04522 0.36105 0.13664 1.37643 0.07239 0.17672 0.03317 0.24735 0 0.02179 0.52169 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae 6.74477 4.09164 1.60668 1.65804 3.07341 6.38699 0.13624 0.36116 0.4398 1.0343 0.04682 0.10642 1.49783 0.59994 0.25391 0.42934 0.47618 0.05437 0.11347 0.19443 1.71518 0.40256 4.85892 0.16051 0.86092 0.06897 0.0922 3.03444 0.12867 2.65129 1.31127 0.32414 0.26566 0.1539 0.19621 1.50325 0.38158 0.49455 0.58574 0.43672 0.17582 0.53295 0.29303 11.78992 6.81649 0.56735 0.08562 0.64777 1.16312 0.52382 0.29983 0.45344 0. [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05573 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03911 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_genitalium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01464 0 0 0 0.00291 0 0 0 0 0 0 0 0 0.01972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10087 0 0.00428 0 0 0 0.00599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.30885 0 0 0.09678 0 0 0 2.15258 0 0 0 0 0 0 0 0 0.00431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_salivarius 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Odoribacter|s__Odoribacter_splanchnicus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14462 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.59358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00353 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes 1.37323 0.20813 0.07569 3.03243 5.37474 0.32879 0.39171 1.77312 2.27214 2.95822 1.6889 4.08898 0.29643 7.93624 2.18497 0.29795 2.11873 0.53999 0.48669 2.21667 9.46109 0.73624 2.55963 1.67079 1.60283 5.60127 0.26288 1.41301 0.12299 2.77656 0.05945 4.02973 3.632 13.71399 0.69264 0.58651 3.19081 4.53517 1.28979 1.19954 0.57389 0.21958 5.79123 0.19614 0.32348 0.592 1.0058 2.87258 4.71201 1.2446 0.78814 2.7974 4.63082 3.97146 15.0635 4.18581 8.2144 2 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Abiotrophia|s__Abiotrophia_defectiva 0 0.00132 0.00108 0.06354 0.10679 0 0.03728 0.03449 0.12972 1.9557 0.99194 0.01079 0.06388 0.28217 0.16568 0.32008 0.50837 0 0.04799 0.1236 0.06235 0.50831 0.23912 0 0.04556 0 0.03821 0.62029 0 0.38497 1.44977 0.80448 0.84537 0.06197 0 0.32067 0 0 0.0232 0.02638 0 0.22043 0 0.00773 0.04144 0.23911 0.14675 0.11308 0.16254 0.18017 0 0.38524 3.70853 0.34177 0.06681 6.08362 0.3926 [...]
+k__Bacteria|p__Synergistetes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Mobiluncus|s__Mobiluncus_curtisii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_bolteae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Xanthomonadales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_longicatena 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus 0 0 0 0 0 0 0.648 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00596 0.00142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05752 0.23695 0 0.00639 0 0 0 0 0 0 0.0065 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15224 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae|g__Sphingopyxis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_gasicomitatum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_tuberculostearicum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Rhizobiaceae|g__Agrobacterium|s__Agrobacterium_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_prausnitzii 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00869 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.69413 0 0 0 0 0.00447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00095 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Phascolarctobacterium|s__Phascolarctobacterium_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_striatum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_dentium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0043 0 0 0 0 0 0 0 0 0 0 0.03795 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_lwoffii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes 0.29088 0.0897 0.00625 0.31306 2.12076 0.47515 0.16368 1.62751 2.18162 0.28707 0.94391 0.47076 0.56164 13.71513 2.69471 3.57072 0.32751 0.01118 0.47903 0.84695 6.16601 0.78253 0.8983 0.09969 1.02326 0.85264 0.08053 1.36595 0.20762 3.93133 0.48311 0.34111 0.2952 1.56272 0.10752 0.06991 5.32376 12.85273 0.41972 0.4039 0.62547 0.43488 1.58982 0.437 0.62799 0.41385 0.21518 2.98248 7.34538 0.461 0.54915 1.30914 2.67488 1.99969 5.93694 5.14711 0.62181 0.84248 3.626 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00054 0.00043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_unclassified 0 0 0 0 0.06159 0 0.02184 0 0 0 0.06588 0 0 0.00362 0 0 0 0 0 0 0 0 0 0 0.02408 0 0.01564 0 0 0 0 0 0 0 0 0 0.06293 0 0 0 0.05668 0 0.0016 0 0 0 0 0.14586 0 0 0.00337 0 0 0 0 0 0 0 0 0 0.00875 0 0 0.02785 0.00265 0 0.08451 0.00231 0.04492 0 0.03184 0 0 0 0 0 0.08504 0 0.01126 0 0 0.01912 0 0 0.0007 0.05349 0.00699 0 0 0 0 0.00982 0.02436 0 0 0 0.064 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Enhydrobacter|s__Enhydrobacter_aerosaccus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_putredinis 0 0 0 0 0 0 0 0.05999 0.00017 0 0 0 0 0 0.06978 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.20073 0 0 0.02266 0 0.0035 0 0 0 0 0 0.00024 0 0.00203 0 0 0 0 0 0 0 0 0 0 0 0.00312 0 0 0.01919 0.03857 0 0 0.00083 0 0 0.31704 0 0 0.04322 0 1.12516 0.01267 0 0 0 0 0 0 0 0 0 0 0.00941 0 0 0 0 0 0 0 0 0 0.0265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04576 0 0 0 0 0 0 0 0 0 0.00081 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium|s__Oribacterium_sinus 0.0017 0 0 0 0.13338 0.00011 0.00213 0.55555 0.07204 0.00606 0 0.00391 0.01676 2.87949 0.11424 0.02809 0.05603 0 0 0.09979 1.6947 0.04087 0 0.02551 0.01701 0.05843 0 0.05505 0.00573 0.00893 0 0.02248 0.02264 0.00253 0 0 0.0616 0.1118 0.01699 0.02602 0.04624 0.06412 0.15107 0 0.03466 0.01362 0.03362 0.18248 0.61403 0.02573 0.0318 0.0092 0.22478 0.09123 0.71227 0.00397 0.00423 [...]
+k__Bacteria|p__Proteobacteria 36.08385 20.93159 11.27324 23.39901 1.82332 33.64485 7.61646 32.60597 11.72083 14.3707 14.19507 23.66354 15.94328 13.95898 20.14082 42.17221 69.0163 3.15751 9.74234 49.11943 7.83783 12.57393 10.91867 7.43981 35.76302 7.51158 25.37114 27.85964 16.17251 43.97227 43.63256 21.11231 21.02942 29.39046 11.29042 8.37182 20.08931 12.67328 24.6923 24.41851 6.40207 30.86871 13.35996 9.00551 20.67236 9.39395 3.67294 16.65994 17.97968 22.61208 7.30789 26.64148 31.65459 3 [...]
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae|g__Akkermansia|s__Akkermansia_muciniphila 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00144 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00132 0 0 0 0 0 0 0 0 0 0 0 0 0.00042 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_elegans 6.73906 3.96495 1.60324 1.00637 2.30452 6.38624 0.03813 0.24816 0.03191 0.93613 0 0.09565 1.43776 0.1599 0.05514 0.19855 0.04027 0.00547 0.04787 0.00145 0.24655 0.15283 4.65882 0 0.69095 0 0.02266 2.9449 0.10378 2.14846 1.17325 0.02367 0.01857 0.02027 0 1.1936 0 0.03268 0 0 0.02793 0.47859 0.01102 11.46213 6.75527 0.46471 0.06181 0.03688 0.80637 0.41919 0.261 0.20764 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales 0.74397 0.08037 0.00137 0.12269 0.16624 0.77818 0.00483 0.49915 0.02985 0.38591 0.74709 0.51205 0.08121 0.59049 0.04816 0.17456 0.20302 0 0.02552 0.30476 0.41963 0.31948 0.09341 0 0.31553 0.07998 0.01764 0.36732 0.052 0.63261 0.03897 0.02175 0.0179 0.47098 0 0 3.60054 0.11977 0.1412 0.20642 0.15865 0.0292 0.16432 0.41316 0.26858 0.11193 0.08664 0.11622 0.07664 0.23499 0.0881 0.15943 0.34842 0.08705 0.35057 4.60962 0.30509 0.0 [...]
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteria 0.02211 0.00693 0.00087 0.01783 0.01763 0.05948 0 0 0.00273 0.02379 0 0.00891 0.11084 0.06976 0 0.07212 0.00567 0 0 0.01952 0 0 0.00799 0 0.0271 0 0 0.0024 0.00944 0.02933 0.01613 0.00567 0.00603 0.03711 0 0.02216 0.52458 0.01206 0 0 0.01399 0.0038 0.01629 0.24944 0.01072 0.00867 0 0.01667 0.02555 0.01598 0.03123 0.01665 0.05263 0.00459 0 0.03595 0.01213 0 0.05284 0 0.00187 0 0.01221 0 0.01278 0.00488 0 0.02217 0.0087 0.00457 0.01644 0 0 0. [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_cellulosilyticus 0 0 0 0 0 0 0 0.01184 0 0 0 0 0 0 0.00835 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00231 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylobacteriaceae|g__Methylobacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00054 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_eligens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae 0.10059 0.02174 0.01113 0.03192 0.02622 0.05875 0.00629 0 0.04558 0.04201 0 0.00226 0.06403 0.03429 0.01425 0.0105 0.0045 0.00304 0 0 0.0671 0 0.07798 0 0.07254 0.03425 0 0.07971 0.00386 0.09016 0.05367 0.00615 0.0032 0.00626 0.01948 0.0274 0 0.03106 0.00657 0.01449 0.00235 0.01627 0.00828 0.00236 0.0672 0.00902 0.00827 0.00291 0.05424 0.02261 0.00611 0.02098 0.0786 0.01606 0.03305 0.10802 0.05581 0 0.06771 0.0152 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_ulcerans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae 0 0 0 0 0.08752 0 0 0.01969 0.01543 0.00108 0 0.03191 0.0031 0.45046 0.09911 0 0 0 0 0.00609 0.73414 0 0 0.00857 0.00979 0.05312 0 0.01109 0.00232 0 0 0.0043 0.01383 0 0.00129 0 0.27711 0.19407 0.03777 0.05994 0.01034 0.00938 0.16513 0 0.00904 0.00252 0 0.08209 0.30295 0.00318 0.01333 0.00739 0.06258 0.03385 0.62005 0.00027 0.01398 0.01536 0 0 0.00405 0.30592 0.05267 0.08197 0.04163 0.01586 0 0.00076 [...]
+k__Bacteria 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 99.9898 100 100 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_endodontalis 0 0 0 0 0.23614 0 0 0 0.03219 0.00663 0 0 0 0.08904 0.12861 0 0.00383 0 0.05204 0 0.2545 0 0.00319 0 0 0 0 0 0.00847 0.27709 0.00154 0 0 0 0 0 0.09623 0 0 0 0 0.15668 0.05974 0 0.00932 0 0.04629 0.25362 0.20541 0.01758 0 0.01499 0 0.01383 0.75379 0 0.00073 0 0 0 0 0.00269 0 0.14188 0 0 0 0.00474 0 0.0025 0.00254 0.15616 0.78651 1.12376 0 0.13041 0.00198 0 0.22 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_elongata 0 0.01596 0 0.04991 0 0.01475 0 0 0.05237 0.01263 0 0 0.00246 0 0 0.39178 0.09961 0 0.04504 0.10902 0 0.04792 0.00304 0 0.07816 0 0.01888 0.01277 0.0007 0.03626 0.12352 0.04466 0.07046 0.07106 0 0.0034 1.41371 0 0.00925 0.03553 0.00614 0.00737 0.05705 0.00436 0.06381 0.09356 0 0.68224 0.07335 0.11386 0.01108 0.0674 0.11386 0.24789 0 0.04316 0.12509 0 0.00064 0 0.09557 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_unclassified 0 0 0 0 0 0 0 0 0.00149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00028 0 5.00E-05 0 0 0 0 0 0 0.00011 5.00E-05 0.00017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_unclassified 0.02325 0.0213 0.0012 0.05239 0.25384 0.0358 0.10244 0.14415 0.0084 0.0536 0.22803 0.04607 0.01178 0.19211 0.0703 0.01093 0 0 0.16164 0.08871 0.06981 0.03866 0.06484 0.02328 0.04538 0.11818 0.00686 0.02279 0.01654 0.07182 0.00022 0.002 0.00275 0.113 0 0.02356 5.79314 0.1366 0 0 0.08471 0.00472 0.45144 0.0463 0.00969 0.01467 0.01232 0.08124 0.11973 0.02155 0.01451 [...]
+k__Bacteria|p__Thermi|c__Deinococci|o__Deinococcales|f__Deinococcaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00821 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_aphrophilus 0.06346 0.00142 0 0.00044 0.03293 0.03749 0 0.68442 0.02155 0.10877 0 0.0046 0.03081 0.03302 0.02204 0.03145 0.34804 0 0.18704 0.08246 0.00424 0.2461 0.00369 0 0.02856 0 0 0.20633 0.00471 0.0518 0.00609 0.04406 0.03269 0.23526 0 0.01141 0.44766 0.01529 0.00632 0.00175 0.01817 0.21723 0.00398 0.00773 0.1825 0.06731 0.02375 0.07385 0.08687 0.01617 0.01 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylobacteriaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00054 0 0 0 0 0 0 0 0.00047 0 0.00103 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Brevundimonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Delftia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Eggerthella|s__Eggerthella_lenta 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Bilophila 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01809 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae 0 0.00132 0.00108 0.06354 0.10679 0 0.03728 0.03449 0.12972 1.9557 0.99194 0.01079 0.06388 0.28217 0.16568 0.32008 0.50837 0 0.04799 0.1236 0.06235 0.50831 0.23912 0 0.04556 0 0.03821 0.62029 0 0.38497 1.44977 0.80448 0.84537 0.06197 0 0.32067 0 0 0.0232 0.02638 0 0.22043 0 0.00773 0.04144 0.23911 0.14675 0.11308 0.16254 0.18017 0 0.38524 3.70853 0.34177 0.06681 6.08362 0.39261 0.02589 1.18882 0.03443 0.38991 0 0.01 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Catenibacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae|g__Cardiobacterium 0 0.00265 0 0.0061 0.01092 0 0.00235 0 0.02904 0.00225 0 0 0 0 0 0.02094 0.0023 0 0 0.05205 0 0.05155 0.00017 0 0.12407 0 0 0 0 0.04026 0.02688 0.00924 0.02239 0.26691 0 0 0.18108 0 0 0 0.01511 0.00024 0.04359 0 0.02515 0.05154 0 0.06145 0.01815 0.0099 0 0.01858 0.0309 0.05611 0 0.07441 0.00086 0 0.37866 0 0.02266 0 0.00121 0 0 0.01403 0 0.00093 0.01278 0.00674 0.08741 0.008 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0053 0 0 0 0 0.00233 0.00764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00204 0 0.01005 0 0 0 0.04109 0 0 0 0 0 0.00146 0 0 0 0.00403 0 0 0 0 0.03698 0 0 0 0 0 0 0 0 0 0 0.01668 0 0 0 0 0 0 0 0 0 0 0.00167 0 0 0 0 0 0 0 0 0 0.0206 0 0 0 0 0 0.00242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_unclassified 0.10059 0.02174 0.01113 0.03192 0.02622 0.05875 0.00629 0 0.04558 0.04201 0 0.00226 0.03623 0.03429 0.01425 0.0105 0.0045 0.00304 0 0 0.0671 0 0.07798 0 0.07254 0.03425 0 0.07971 0.00386 0.09016 0.05367 0.00615 0.0032 0.00626 0.01948 0.0274 0 0.03106 0.00657 0.01449 0.00235 0.01627 0.00828 0.00236 0.0672 0.00902 0.00827 0.00291 0.05424 0.02209 0.00611 0.02098 0.0786 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Solobacterium 0.00198 0 0 0 0.028 0 0 0.04807 0.01988 0 0 0 0.00275 0.39723 0.02963 0.0312 0.00024 0 0 0.00207 0.14113 0 0 0 0.02361 0 0 0.0175 0.01009 0.00698 0 0.0004 0 0 0 0 0.03377 0.04692 0 0 0.0084 0.00515 0.10342 0 0.01369 0.00015 0.00138 0.01706 0.35296 0.00399 0.00131 0.01487 0.05444 0.01863 0.13781 0.00133 0.00082 0 0 0 0.00772 0.24028 0.00714 0 0.0306 0.02838 0 0.00131 0 0.02827 0.0809 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales 1.37323 0.20813 0.07569 3.03243 5.37474 0.32879 0.39171 1.77312 2.27214 2.95822 1.6889 4.08898 0.29643 7.93624 2.18497 0.29795 2.11873 0.53999 0.48669 2.21667 9.46109 0.73624 2.55963 1.67079 1.60283 5.60127 0.26288 1.41301 0.12299 2.77656 0.05945 4.02973 3.632 13.71399 0.69264 0.58651 3.19081 4.53517 1.28979 1.19954 0.57389 0.21958 5.79123 0.19614 0.32348 0.592 1.0058 2.87258 4.71201 1.2446 0.78814 2.7974 4.63082 3.97146 15.06 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_baumannii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__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.0026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02498 0 0 0 0 0.02826 0 0.00083 0 0 0 0 0 0 0 0.02008 0 0 0 0 0 0 0 0 0 0.0009 0 0 0 0 0 0 0 0 0.00271 0 0 0 0.00037 0 0.00183 0 0 0 0 0.0006 0.002 0.00701 0.0009 0.00125 0 0 0 0 0.00181 0 0 0 0 0 0.00074 0 0.00289 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Helicobacteraceae|g__Helicobacter|s__Helicobacter_pylori 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.274 0.57794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_coleohominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_fluorescens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21938 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia|s__Serratia_proteamaculans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_concisus 10.95875 0.27442 0.00116 0.92843 0.14597 7.46953 0.04054 2.23751 0.31949 0.01144 0.04011 1.68543 0.07853 5.43467 0.34237 0.05298 0.01623 0.0006 0.03405 0.40314 1.31727 0.11093 0.06426 0.09531 0.08226 0.80056 0.02387 0.19854 0.05486 0.19948 0.0089 0.07968 0.06188 0.07522 0.56506 0 0.96054 0.59843 0.06471 0.07447 0.07347 0.0358 1.16456 0.0049 0.10259 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales 0.14784 0.0948 0.00124 0.29884 1.00156 1.08876 0.24403 1.23887 0.14244 0.4348 0.70004 0.23078 0.26206 2.84624 0.49572 0.10031 0.0873 0 0.59224 0.33097 0.35684 0.18051 0.36291 0.02328 0.51686 0.37023 0.08835 0.31054 0.1033 0.93397 0.02501 0.04634 0.04291 0.55677 0 0.08728 22.11739 0.56258 0.09705 0 0.20656 0.1158 2.39722 0.24448 0.40813 0.15792 0.11079 0.47031 1.04511 0.22903 0.06698 0.45603 0.63544 0.13888 0.61012 0.8394 0.289 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus|s__Peptostreptococcus_unclassified 0 0 0 0 0 0 0 0 0.00528 0 0 0 0 0.01812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00155 0.00289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00536 0 0 0.00146 0 0 0 0 0 0.00237 0 0 0 0.01696 0 0 0 0 0 0 0.00544 0 0 0 0 0.00257 0 0 0 0 0.00537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00267 0 0 0 0 0 0 0 0 0.00207 0 0.00071 0 0 0 0 0.0037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_sputigena 0.011 0.00952 0 0.08964 0.10203 0.00064 0.00604 0.02389 0.17017 0.05995 0.2634 0.01967 0.00227 0.51779 0.00697 1.0569 0.17047 0 0.07091 0.11775 0.07042 0.41953 0.34743 0 0.30685 0.00496 0.03158 0.50308 0.01886 0.41572 0.07287 0.07455 0.06063 0.58725 0 0 0.52143 0.08413 0 0 0.03682 0.06367 0.10683 0.00065 0.15273 0.09865 0.01092 0.09783 0.25392 0.15798 0.018 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_plebeius 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04142 0 0 0 0 0 0 0 0 0 0.00157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00187 0 0 0 0 0 0.00338 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Flavobacterium|s__Flavobacterium_unclassified 0.00196 0.00651 0 0.01072 0 0.00258 0 0 0 0 0 0.00956 0 0.00613 0 0 0.00824 0 0 0 0 0 0.00612 0 0 0 0 0.00182 0 0.0133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00087 0 0 0.0042 0.00923 0.0058 0.0014 0.00253 0.00789 0 0.06268 0.01399 0.00192 0 0 0 0 0 0 0 0 0.0037 0 0 0 0.00495 0 0 0 0 0 0 0.00301 0.00935 0 0 0 0 0 0 0 0.00357 0.03785 0.00193 0 0 0 0 0 0 0 0.01855 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_catus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Moraxella|s__Moraxella_catarrhalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_distasonis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00055 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_veroralis 0 0 0 0 0.00982 0 0 0.00991 0.06153 0.00644 0 0.02715 0.01546 0.23715 0.08911 0 0 0 0.00334 0 0.01541 0 0.00158 0.03695 0.01288 0.06386 0 0.00947 0 0.01528 0 0.00142 0 0 0 0 0 0.35682 0 0 0 0.00891 0.12327 0 0.0183 0.00222 0.00416 0.04952 0.2344 0.00439 0.01215 0.04339 0.02002 0 0.04473 0 0 0 0 0 0.01663 0.31442 0.0467 0.10247 0.01011 0 0 0.01412 0 0.09009 0 0.03221 0 1.86 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_copri 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00827 0 0 1.84284 0 0 0 0 0.44541 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0001 5.00E-05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_rimae 0 0 0 0 0.00334 0 0 0.0063 7.00E-05 0 0 0.00039 0 0.03194 0.07619 0 0 0 0 0 0.09452 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03216 0.02953 0.02069 0.03259 0 0.00861 0.01369 0 0.00533 0.00252 0 0.03274 0.12067 0.00268 0.00113 0 0.0019 0 0.11709 0 0 0 0 0 0 0 0.00535 0 0.00279 0 0 0 0 0 0 0.00587 0 0.369 0.04142 0.003 0 0 0 0 0.04571 0 0 0.06717 0 0 0.18139 0 0 0.04026 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Bulleidia 0 0 0 0 0.00234 0 0 0 0 0 0 0 0 0.0257 0 0 0 0 0 0 0.03316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01147 0 0 0 0 0 0 0.00423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00547 0 0 0 0 0 0.0027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0096 0.35958 11.58308 0.05258 0.01244 0.2237 0.15967 0.07372 0.07481 0.01358 0 0.02844 2.20643 0.36629 0.02883 0.00772 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Lautropia 0.00237 0.0031 0 0.45876 0.00041 0 0.0455 1.23585 0.07238 0.15505 0.95808 0.00472 0.00998 0.66045 0.1451 0.07184 7.75693 0.00179 0.44181 0.9575 0.00157 0.50452 0.03207 0.60465 0.11351 0.33585 0.11374 0.04042 0 0.39714 0.00753 0.27871 0.85734 0.79241 0.58174 0.02227 0.56099 0.04794 0 0 0.08072 0.14035 0.46498 0.02328 0.07245 0.32041 0.20762 0.3155 0.89041 0.20565 0.00417 0.42651 0.00942 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_buccalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Micrococcus|s__Micrococcus_luteus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Actinobacillus|s__Actinobacillus_succinogenes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_plantarum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfobacterales 0 0 0 0.00196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01592 0 0 0 0.00854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00171 0 0 0 0.00296 0 0 0 0 0 0 0 0 0 0 0 0.00332 0 0 0 0 0.0024 0 0 0 0 0 0.05083 0.05645 0.0379 0.01812 0.02696 0.04879 0.00741 0.00318 0.01694 0.0093 0.03678 0.01163 0.01037 0.04726 0.00492 0.01348 0.01379 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium|s__Atopobium_parvulum 0 0 0 0 0.08418 0 0 0.01339 0.01537 0.00108 0 0.03152 0.0031 0.41851 0.02173 0 0 0 0 0.00609 0.63962 0 0 0.00857 0.00979 0.05312 0 0.01109 0.00232 0 0 0.0043 0.01383 0 0.00129 0 0.24495 0.16454 0.01708 0.02735 0.01034 0.00077 0.15144 0 0.00371 0 0 0.04935 0.18147 0.0005 0.0122 0.00739 0.06068 0.03385 0.50296 0.00027 0.01398 0.01536 0 0 0.00405 0.30592 0.04732 0.0819 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Brucellaceae|g__Brucella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Brachyspiraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodospirillales|f__Acetobacteraceae|g__Acetobacteraceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Lentisphaerae|c__Lentisphaerae_uncl 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Catonella 0 0.00075 0 0 0 0.03071 0 0 0 0 0 0.00479 0 0.04464 0.00772 0.00083 0 0 0 0 0.00098 0 0 0 0.00644 0 0 0.00649 0 0.02084 0 0 0 0 0 0 0.03699 0 0 0.00031 0 0.00969 0 0 0.00552 0.00091 0 0.02243 0.02377 0.00149 0 0 0 0 0 0.00085 0 0 0 0 0 0 0 0 0 0.00301 0 0.00356 0 0.00305 0.02399 0 0 0.18276 0 0.00373 0.0095 0 0 0 0.03456 0 0.02051 0.00102 0 0 0 0 0 0.02252 0 0 0.0166 0 0 0.0671 0 0.0081 0 0.00529 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Lactococcus 0 0 0 0 0 0 0 0 0 0 0 0.00226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0312 0 0 0 0 0 0 0 0.11482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01486 0 0 0 0 0 0.06332 0 0 0.00585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.26256 0 0 0 0 0 0 0 0 0.01771 0 0 0 0 0.00934 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.00E-05 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae 1.37323 0.20813 0.07569 3.03243 5.37474 0.32879 0.39171 1.77312 2.27214 2.95822 1.6889 4.08898 0.29643 7.93624 2.18497 0.29795 2.11873 0.53999 0.48669 2.21667 9.46109 0.73624 2.55963 1.67079 1.60283 5.60127 0.26288 1.41301 0.12299 2.77656 0.05945 4.02973 3.632 13.71399 0.69264 0.58651 3.19081 4.53517 1.28979 1.19954 0.57389 0.21958 5.79123 0.19614 0.32348 0.592 1.0058 2.87258 4.71201 1.2446 0.78814 2.7974 4. [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio 0 0.00161 0 0.00451 0 0 0 0 0 0 0 0 0 0 0.00428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00746 0 0 0 0.00394 0 0 0 0 0 0 0 0 0.0033 0 0 0 0 0.00352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01843 0 0.00356 0 0 0 0.04151 0 0 0.00303 0 0.00261 0 0.00136 0.00658 0 0 0.00231 0 0 0 0 0 0 0 0 0 0.00149 0 0 0 0 0 0 0.0063 0 0.01041 0.08059 0.03494 0 0.02828 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides 0.23615 0.02938 0 0.01287 0.0265 0.4058 0 0.05927 0.02773 0.01205 0 0.0109 0.31306 0.18685 0.27686 0.02067 0.00611 0.00118 0 0 0.06261 0 0.00509 0 0.02443 0 0 0.02639 0.00143 0.03021 0.00476 0 0.00391 0 0 0 0.01747 6.4057 0 0 0.24049 0.02071 0.04263 0.17486 0.02669 0.02655 0 0.06816 0.25069 0.00725 0.01161 0.01074 0.02027 0.00924 0 0.02977 0.10632 0 0.16008 0 0.00243 0 0.02726 0 0.02695 0.05012 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Bulleidia|s__Bulleidia_extructa 0 0 0 0 0.00234 0 0 0 0 0 0 0 0 0.0257 0 0 0 0 0 0 0.03316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01147 0 0 0 0 0 0 0.00423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00547 0 0 0 0 0 0.0027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0096 0.35958 11.58308 0.05258 0.01244 0.2237 0.15967 0.07372 0.07481 0.01358 0 0.02844 2.20643 0.36 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Pseudoramibacter|s__Pseudoramibacter_alactolyticus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00401 0 0 0 0 0 0 0 0 0.15125 0.14183 0 0 0 0 0 0 0 0 0 0 0.00683 0 0.01272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae 0.43218 0.31006 0 3.68494 1.83269 0.04241 0.4515 0.83235 0.02925 0.17362 1.6471 0.36189 0.08236 0.61679 0.3014 0.9017 1.26811 0.09587 0.98518 1.52932 3.27922 1.61997 0.34727 11.18826 2.81749 2.28752 0.46537 0.60254 0.00853 3.01456 0.09714 1.6695 4.91878 1.53328 1.54911 0.83738 0.97151 0.41691 1.08936 1.36069 1.11031 0.09341 1.78385 0.17009 0.0323 0.1124 0.74927 0.53441 0.5194 0.08967 0.11368 0.49978 1. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Gardnerella|s__Gardnerella_vaginalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_xylanisolvens 0 0 0 0.00225 0 0 0 0 0.00362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.74741 0 0 0 0.00158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0278 0.04432 0 0.05155 0.00935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01013 0 0.00333 0 0 0 0 0 0 0 0 0 0 0 0.00784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Halobacteria|o__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Eggerthella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chloroflexi|c__Chloroflexi|o__Chloroflexales|f__Chloroflexaceae|g__Roseiflexus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.48678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella 0.00273 0.00806 0.00487 0.02049 1.53439 0.00103 0.1291 1.39147 1.69629 0.06187 0.1169 0.34525 0.12435 12.06563 1.68111 0.23256 0.01354 0.00687 0.23124 0.30167 5.48551 0.04305 0.23401 0.09969 0.43179 0.81624 0.03787 0.40161 0.14567 0.35663 0.01512 0.22482 0.21283 0.08978 0.10752 0.0313 1.04058 4.18344 0.15741 0.1701 0.21318 0.15077 1.22962 0.00188 0.21462 0.13872 0.14752 2.18723 6.35281 0.18449 0. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_epidermidis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0053 0 0 0 0 0.00233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00204 0 0.01005 0 0 0 0.04109 0 0 0 0 0 0.00146 0 0 0 0.00403 0 0 0 0 0.03698 0 0 0 0 0 0 0 0 0 0 0.01668 0 0 0 0 0 0 0 0 0 0 0.00167 0 0 0 0 0 0 0 0 0 0.00556 0 0 0 0 0 0.00242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_intestinalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga 0.02421 0.03449 0.0002 0.25013 0.30609 0.00382 0.03459 0.11626 0.42101 0.17567 0.82701 0.08189 0.00837 1.22083 0.03117 3.23627 0.28529 0.00312 0.19575 0.52575 0.36338 0.73948 0.63374 0 0.53559 0.0364 0.04266 0.91945 0.04003 3.21699 0.44115 0.10303 0.07244 1.43584 0 0.01645 3.62636 0.25852 0.2623 0.2338 0.13154 0.09665 0.23074 0.00313 0.36268 0.23167 0.02137 0.4526 0.50145 0.22301 0.07 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria 0.8918 0.17516 0.00261 0.42153 1.16779 1.86694 0.24885 1.73802 0.17229 0.82071 1.44713 0.74283 0.34327 3.43673 0.54388 0.27487 0.29031 0 0.61777 0.63574 0.77647 0.49999 0.45632 0.02328 0.83239 0.45021 0.10599 0.67786 0.1553 1.56658 0.06398 0.06809 0.06081 1.02775 0 0.08728 25.71793 0.68235 0.23825 0.20642 0.36521 0.14501 2.56154 0.65764 0.67671 0.26985 0.19743 0.58653 1.12175 0.46401 0.15508 0.61546 0.98386 0.22593 0.96068 5.44901 0.5949 0.1389 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_hominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_gordonii 0 0.01226 0.00422 0.05515 0.1313 0.00166 0.32654 0.09678 0.00243 1.9521 0.63807 0.47482 0.1275 0.15223 0.24956 0.09919 0.20332 0.04153 0.13912 0.12738 0.41135 0.41467 0.05791 0 0.13044 0.23715 0.05687 2.19764 0.01198 0.41484 0.17663 0.26323 0.25152 0.35134 0.03128 0.49577 0.53793 0.32476 0 0.00145 0.01216 0.09297 0.00665 0.01538 0.00139 0.17882 0.32438 0.12981 0.05943 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_acnes 0 0.00482 0 0.01011 0 0 0.01181 0.06306 0.00736 0.01179 0.22349 0.01169 0 0.04597 0.26616 0 0.00104 0.00891 0.03143 0.05895 0 0.14227 0 0 0.00451 0.16502 0.00678 0 0 0 0 0 0 0.00623 0 0 0 0.25481 0 0.0031 0.01831 0.03294 0.02713 0.0473 0.00581 0.00774 0.04234 0.0443 0.05185 0.00101 0.00846 0.01619 0.00531 0 0 0 0 0 0.06242 0 0.00734 0 0 0 0 0.0005 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae 0.0017 0.00075 0 0 0.13338 0.03082 0.00213 0.71948 0.07204 0.00606 0 0.0087 0.01676 2.92445 0.14181 0.02892 0.05603 0 0 0.09979 1.69568 0.04087 0 0.02551 0.02345 0.05843 0 0.06154 0.00573 0.02977 0 0.02248 0.02264 0.00253 0 0 0.09859 0.32739 0.01699 0.02634 0.04624 0.07381 0.15107 0 0.04018 0.01453 0.03362 0.20583 0.66872 0.02722 0.0318 0.0092 0.22478 0.09123 0.71227 0.00482 0.00423 0.00462 0.00027 0 0.00473 0.40 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Herbaspirillum|s__Herbaspirillum_seropedicae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter|s__Methanobrevibacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae|g__Mycobacterium|s__Mycobacterium_unclassified 0.00681 0.01555 0.00098 0.04568 0.06579 0 0.00838 0.01399 0.01298 0 0 0.01593 0.01605 0.05492 0.08568 0.02056 0.0922 0.0021 0.04104 0.08766 0.06705 0.01678 0.00897 0.30776 0.18643 0.06889 0.01753 0.01256 0.00168 0.07464 0.01384 0.0806 0.19866 0.07054 0.02757 0.02764 0.12237 0.02654 0.29978 0.27775 0.01662 0.03686 0.27179 0.00848 0.00085 0 0 0.05389 0.02741 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_uniformis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12843 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Brachyspiraceae|g__Brachyspira 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_unclassified 0.00908 0.00317 0 0.01654 0.00187 0 0 0.0179 0.00484 0.00265 0 0.00271 0 0.02947 0.00443 0.00351 0.0054 0 0.02423 0.04544 0.02005 0 0.00266 0 0.00839 0.0255 0.01038 0 0 0.01704 0 0.00188 0.01203 0.01758 0 0.00246 0 0 0.00404 0 0.0017 0 0.02415 0.00087 0.00036 0 0 0.00921 0 0.00092 0.00186 0.00111 0.00805 0.00764 0.09625 0.00414 0 0 0.00288 0 0.0089 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_gonidiaformans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_pectinophilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio|s__Desulfovibrio_piger 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Cryptobacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00729 0 0 0 0 0 0 0 0 0 0.00267 0 0 0.01741 0.00104 0.01661 0 0.1154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae 0.00273 0.00806 0.00487 0.02049 1.53439 0.00103 0.1291 1.39147 1.69629 0.06187 0.1169 0.34525 0.12435 12.06563 1.68111 0.23256 0.01354 0.00687 0.23124 0.30167 5.48551 0.04305 0.23401 0.09969 0.43179 0.81624 0.03787 0.40161 0.14567 0.35663 0.01512 0.22482 0.21283 0.08978 0.10752 0.0313 1.04058 4.18344 0.15741 0.1701 0.21318 0.15077 1.22962 0.00188 0.21462 0.13872 0.14752 2.18723 6.35281 0.18449 0.42292 1.0783 1 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_pneumoniae 0.00325 0.00225 0.00145 0.00123 0.00973 0.00141 0 0.06202 0.14916 0 0 0.007 0.04714 0 0.24827 0.05749 0.03781 0.11184 0 0 0 0.0398 0.05283 0 0.13644 0.02633 0.00646 0.10419 0.00193 0.0754 0.0381 0.11329 0.05526 0.05011 0.06258 0.61233 0 0 0.04026 0.03497 0.04161 0.20854 0 0.01579 0.03497 0.01374 0.06539 0 0.08108 0.32174 1.55075 0.12746 0.03449 0 0.01737 0.10209 0.3414 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_scindens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_perfringens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_obeum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00687 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_bergensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Synechococcales|f__Synechococcaceae|g__Prochlorococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_parainfluenzae 14.11018 10.29017 0.0469 10.50138 1.0303 12.76018 1.86651 3.622 8.75323 10.70561 6.1798 16.90928 5.21354 5.44589 17.61293 19.27968 42.96938 0.65194 1.75462 32.21132 6.19198 9.05285 8.72259 4.38483 25.65636 4.22039 22.49226 14.10392 1.3019 28.85058 21.16007 14.55567 12.92734 21.72896 2.50223 4.82911 3.07698 8.20966 24.46406 24.10436 2.94692 23.0487 7.52584 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Listeriaceae|g__Listeria|s__Listeria_monocytogenes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00666 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae 0 0 0 0 0.01008 0 0 0 0.0134 0 0 0 0 0.11752 0.02993 0.00504 0 0 0 0 0.05942 0 0 0 0 0 0 0.01138 0.00155 0.00589 0 0 0 0 0 0 0 0 0 0 0 0.00558 0.02751 0 0.01034 0 0 0.00581 0.07454 0.00244 0 0.00234 0.01477 0.00788 0.05339 0.00466 0 0.01696 0 0 0 0 0 0 0.00544 0.00266 0 0.00044 0 0.00299 0.04865 0 0 0.21232 0.04414 0.00391 0.00409 0 0.02635 0 0.08873 0 0.05877 0.00774 0 0 0.01805 0 0 0.0587 0 0 0 0 9.00E-05 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium 0 0.52567 0 1.19617 2.0353 0 0 0.18776 0.00112 0.08465 0.1095 0.02502 0.00504 0.16407 0.03834 0 0.00144 0 0.50247 0.58376 0.13584 3.01801 0.00441 5.00122 1.248 0.17376 0.07523 0.0068 0.0008 1.96861 0 0 0 0.88163 0.16632 0.20423 4.77879 0.21342 0 0 0.0845 0.01294 0.5293 0.02261 0.02859 0.05199 0.03518 2.52569 0.18197 0.00624 0.01464 0.02189 0.08029 0.0103 2.40403 0.03325 0 0.00254 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_hallii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_cf 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.31233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_meningitidis 0.59119 0.15471 0 0.07922 0 2.237 0 0.02336 0.00459 0 0 0 0.04139 0 0 0.03378 0.00692 0 0 0 0 0 0 0 0 0 0.00362 0.00407 0 0.01343 0.03262 0 0.00828 0 0 0.00335 0.2298 0 0 0 0 0.0093 0.00939 0.06085 0.01084 0.00381 0 0.03823 0.01828 0.00031 0.00159 0 0 0 0 0.01296 0.02263 0 0 0 0.00249 0 0.00256 0 0 0.00214 0 0 0 0 0.00696 0.0264 0 0.04023 0 0 0.00508 0.13706 0.11884 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae 0 0 0 0 0 0 0 0 0 0 0 0 0.00218 0 0 0 0.00035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00129 0 0 0.06271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00574 0 0 0.0032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_uncl|g__Blautia|s__Blautia_unclassified 0 0 0 0 0 0.00251 0 0 0 0 0 0 0 0.0078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00115 0 0.00198 0 0 0 0 0 0.00525 0 0 0 0 0 0 0 0 0 0 0 0 0.00803 0.00855 0 0 0 0 0.00565 0 0.01635 0.00271 0.00824 0 0.00389 0 0.01013 0.00222 0.00107 0.00327 0.0 [...]
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Synechococcales|f__Synechococcaceae|g__Prochlorococcus|s__Prochlorococcus_marinus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_unclassified 0.06082 0.03167 0.02586 0.96431 1.83817 0.03235 0.12241 0.26304 0.99741 0.33587 0.42951 0.64084 0 0.80906 0 0.133 0.28909 0.23935 0.133 1.17118 1.06671 0.47184 0.23355 0.7846 0 0.61797 0.02684 0.39214 0.03993 0.43135 0.01486 0.66032 0.68479 0.95416 0.05427 0.01529 0 0 0.57092 0.37185 0.3816 0.13458 0 0.00101 0.1792 0.25221 0.24695 1.06474 0.81367 0.65518 0.2554 0.68 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_gnavus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister 0 0 0 0 0.01047 0 0 0.00124 0.00602 0.00375 0 0.00471 0 0.16966 0.0635 0.00282 0 0 0.00123 0 0.06063 0 0 0 0 0 0 0.01561 0 0.03667 0 0 0 0 0 0 0.09203 0.05164 0.00634 0.01751 0 0.01838 0.01243 0 0.01324 0.00357 0.00052 0.01659 0.272 0.00581 0.06075 0.01666 0.02135 0 0.05441 0.00225 0 0 0 0 0 0 0.05021 0 0.00574 0 0 0.00202 0.00403 0.01548 0.08622 0.02003 0 1.61747 0.11258 0.00344 0.04125 0.33437 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_crispatus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter|s__Methanobrevibacter_smithii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Afipia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Listeriaceae|g__Listeria 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00666 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_melaninogenica 0 0.00503 0.00487 0.00516 1.12436 0.00103 0.1291 1.13249 1.52388 0.03849 0.01756 0.14722 0.09332 9.32247 0.82396 0.17886 0.00856 0.00687 0.09716 0.24053 4.78506 0.04305 0.17456 0 0.38324 0.71222 0.03787 0.29591 0.13434 0.29457 0.01512 0.21296 0.20611 0.07428 0.1017 0.0313 0.7598 3.11381 0.01811 0.02797 0.18181 0.05302 0.69929 0.00188 0.13161 0.10536 0.13455 1.10808 4. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Abiotrophia 0 0.00132 0.00108 0.06354 0.10679 0 0.03728 0.03449 0.12972 1.9557 0.99194 0.01079 0.06388 0.28217 0.16568 0.32008 0.50837 0 0.04799 0.1236 0.06235 0.50831 0.23912 0 0.04556 0 0.03821 0.62029 0 0.38497 1.44977 0.80448 0.84537 0.06197 0 0.32067 0 0 0.0232 0.02638 0 0.22043 0 0.00773 0.04144 0.23911 0.14675 0.11308 0.16254 0.18017 0 0.38524 3.70853 0.34177 0.06681 6.08362 0.39261 0.02589 1.18882 0.03443 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Aurantimonadaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02498 0 0 0 0 0 0 0.00083 0 0 0 0 0 0 0 0.02008 0 0 0 0 0 0 0 0 0 0.0009 0 0 0 0 0 0 0 0 0.00271 0 0 0 0 0 0.00183 0 0 0 0 0.0006 0.002 0.00701 0.0009 0.00125 0 0 0 0 0 0 0 0 0 0 0.00074 0 0.00289 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Pseudoflavonifractor 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_breve 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_oralis 0.03179 0.0519 2.76187 0.17488 0.90962 0.22399 0.07685 0.31336 0.26136 1.24031 0.6794 0.07192 1.52044 0.31065 0.78911 0.594 0.55636 0.26524 0.70059 0.36716 1.54827 0.34381 1.0541 0.43727 0.9544 2.83778 0.67878 2.75164 0.54261 1.21643 2.25306 1.3045 0.98837 1.02024 0.24763 0.06006 0.53075 1.96086 1.44688 1.75771 0.25028 0.61807 0.20424 0.44613 1.17625 0.19898 0.77444 1.5176 [...]
+k__Bacteria|p__Thermi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00821 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium 0.74392 0.08037 0.00137 0.12269 0.16624 0.73358 0.00483 0.49915 0.02985 0.38591 0.74709 0.51205 0.06692 0.59049 0.04816 0.17456 0.20302 0 0.02552 0.30476 0.41963 0.31948 0.09341 0 0.31553 0.07998 0.01764 0.36732 0.052 0.63261 0.03897 0.02175 0.0179 0.47098 0 0 3.60054 0.11977 0.1412 0.20642 0.15865 0.0292 0.16432 0.41316 0.26839 0.11193 0.08664 0.11622 0.07664 0.23499 0.0881 0.15943 0.3484 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01464 0 0 0 0.00291 0 0 0 0 0 0 0 0 0.01972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10087 0 0.00428 0 0 0 0.00599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.30885 0 0 0.09678 0 0 0 2.15258 0 0 0 0 0 0 0 0 0.00431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter 0 0 0 0 0 0 0 0 0 0 0 0 0.00218 0 0 0 0.00035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00129 0 0 0.06271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00574 0 0 0.0032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00109 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_faecium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Thermi|c__Deinococci|o__Deinococcales|f__Deinococcaceae|g__Deinococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0082 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Pasteurella|s__Pasteurella_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00063 0 [...]
+k__Archaea|p__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Pyramidobacter|s__Pyramidobacter_piscolens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Oceanospirillales|f__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.00461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00131 0 0 0 0 0 0 0 0 0 0 0 0 0.00151 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0011 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_uncl|g__Gemella|s__Gemella_unclassified 0.7715 0.03659 0 0 0 1.14729 0 0 0 0 0.39902 0 0.04417 0 0.11527 0 0 0 0 0 0.65511 0.59109 0 0 0 0 0 0 0 0 0.15535 0.17907 0.23826 0 0 0.3396 0 0 0 0 0 0.10305 0.05841 0 0.29617 0.00045 1.3559 0 0 0 0 0.31708 0 0.84358 0 0 0 0 0 0 0.59818 0 0 0 0 0 1.41733 0 0 0.29539 0.16528 0 0 0.07238 0 0.32572 0.01599 0 0 0.58815 0.67975 0 2.04775 0.02386 0 0.01848 1.72168 0 0 0.38776 0.0061 0.275 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Slackia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00515 0 0 0 0 0 0 0 0.26323 0 0 0 0 0.00877 0 0 0.00383 0 0.01058 0.03353 0 0.01259 0 0 0 0.0049 0 0.00037 0 0 0.00793 0 0.0156 0 0.01032 0 0 0 0 0 0 0.00388 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Alkaliphilus|s__Alkaliphilus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00957 0 0 0 0 0 0 0 0 0 0.01909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00198 0.01412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00948 0.00095 0 0 0 0 0 0 0 0 0.00311 0 0 0 0 0 0 0 0 0 0 0.00246 0 0.0057 0 0 0 0.00194 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_acidophilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_brevis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00077 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae|g__Mycobacterium|s__Mycobacterium_abscessus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00957 0 0 0 0 0 0 0 0 0 0.01909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00198 0.01412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00948 0.00095 0 0 0 0 0 0 0 0 0.00311 0 0 0 0 0 0 0 0 0 0 0.00246 0 0.0057 0 0 0 0.00194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00076 0 0.00057 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Mitsuokella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00016 0 0 0 0 0 0 0 0.00083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_unclassified 0.23615 0.02938 0 0.008 0.0265 0.4058 0 0.03833 0.00865 0.01205 0 0.0109 0.31306 0.16406 0.19384 0.02067 0.00611 0 0 0 0.06261 0 0.00509 0 0.02443 0 0 0.02639 0.00143 0.03021 0.00476 0 0.00391 0 0 0 0.01747 2.69745 0 0 0.07429 0.01913 0.0404 0.1739 0.02669 0.02655 0 0.06816 0.24617 0.00725 0.01161 0.01074 0.02027 0.00924 0 0.02977 0.10632 0 0.16008 0 0.00243 0 0.02 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanosphaera 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.66462 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00332 0 0 0 0 0 0 0 0 0.00137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00122 0 0 0 0 0 0 0 0.00114 0 0 0 0 0 0.00086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00082 0 0 0 0.00122 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylobacteriaceae|g__Methylobacterium|s__Methylobacterium_radiotolerans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Pantoea|s__Pantoea_ananatis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_catenulatum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0.00218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0007 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Listeriaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00666 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_parvula 0.01747 0.05093 0.00765 1.56122 2.88907 0.01191 0.1657 0.25585 0.26275 2.59472 1.24613 2.9415 0.13532 1.64673 0.8786 0.15914 1.82821 0.29784 0.27659 0.62978 4.40437 0.2644 2.20745 0.55511 1.22643 2.16939 0.15966 0.91896 0.01181 2.11625 0.0446 3.14373 2.76549 11.63243 0.3426 0.56555 2.24866 1.77663 0.68608 0.75982 0.16585 0.05062 1.08579 0.18904 0.08163 0.29745 0.71116 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_urogenitalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01127 0.28233 0.02366 0 0.00858 0.01539 0.00901 0.0031 0.02477 0.01398 0.0367 0.01867 0.0101 0.04444 0.02059 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_putida 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_gracilis 0.0007 0.00063 0 0.01458 0.10169 0 0 0 0.00743 0.00404 0 0.01356 0 0.01949 0.001 0 0 0 0 0 0.08378 0.00218 0 0.11115 0.08287 0.00681 0 0 0 0.25251 0 0 0 0.28241 0 0 0.19188 0.0433 0.02991 0.03857 0 0.00148 0.029 0 0.00255 0.01216 0 0.07447 0.01785 0.00057 0.00635 0 0 0 0.40773 0.00278 0.0118 0 0 0 0 0 0.0006 0.00445 0.0067 0.00144 0 0 0.00566 0.0007 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli 60.89108 77.58394 88.60031 65.72644 83.48999 63.5662 90.71312 56.85406 82.09258 80.83678 78.75372 68.28401 81.81728 54.81023 58.65505 50.65495 16.05333 95.11921 84.14351 37.60042 63.36817 77.62082 81.55648 55.11225 44.59892 73.53753 71.59221 66.62953 82.95688 37.23108 54.04692 63.92187 53.59223 50.59155 23.77256 84.78622 31.29383 58.65522 46.60165 44.30023 89.58576 64.82239 36.62989 89.35925 77.44088 88.70622 93.01668 70.75912 65.36201 74.92038 89.789 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae 0 0 0 0 0 0 0 0.06051 0.00167 0 0 0 0 0 0.07624 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.4912 0 0 0.02629 0 0.0035 0 0 0 0 0 0.00024 0 0.00203 0 0 0 0 0 0 0 0 0 0 0 0.00312 0 0 0.01919 0.06108 0 0 0.00138 0 0 0.31704 0 0 0.04322 0 1.41237 0.01267 0 0 0 0 0 0 0 0 0 0 0.00941 0 0 0 0 0 0 0 0 0 0.0265 0 0 0 0 0 0 0 0.00812 0 0 0 0 0 0 0 0 0 0 0.04576 0 0 0 0 0 0 0 0 0 0.00109 0 5.00E-05 0 0 0 0 0 0 0.00011 5. [...]
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteria|o__Sphingobacteriales|f__Sphingobacteriaceae 0.02211 0.00693 0.00087 0.01783 0.01763 0.05948 0 0 0.00273 0.02379 0 0.00891 0.11084 0.06976 0 0.07212 0.00567 0 0 0.01952 0 0 0.00799 0 0.0271 0 0 0.0024 0.00944 0.02933 0.01613 0.00567 0.00603 0.03711 0 0.02216 0.52458 0.01206 0 0 0.01399 0.0038 0.01629 0.24944 0.01072 0.00867 0 0.01667 0.02555 0.01598 0.03123 0.01665 0.05263 0.00459 0 0.03595 0.01213 0 0.05284 0 0.00187 0 0.01221 0 0.01278 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_mucilaginosa 0.00223 0.02973 0.02084 0.33445 0.35944 0.00124 0.17997 0.98943 0.67651 0.0245 0.83846 1.90318 0.76698 0.47936 13.30063 1.38463 10.39042 0.28808 0.18529 4.34279 3.49095 1.40672 1.77372 9.26123 10.81816 1.39982 0.44392 0.32827 0.14726 4.02151 1.11705 5.90742 12.43495 0.52899 2.1414 0.12759 0.33171 1.09949 20.2056 22.465 0.2038 2.72316 26.42461 0.00443 0.03289 0.21918 0.074 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_limosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Finegoldia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Klebsiella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Shigella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales 10.37296 7.5117 0 9.75611 0.0088 9.25403 0.96848 16.25019 1.76925 0.09797 6.84312 0.03593 3.27202 1.60273 1.64502 20.46584 17.8334 0.04563 2.32312 10.59334 0.02064 2.11932 1.17839 2.24387 6.8738 1.93481 2.38796 3.67673 0.64649 5.79482 11.43243 5.98061 6.97586 1.81749 2.1343 1.48572 11.80896 2.41476 0.1273 0.19936 2.69984 4.85012 2.46071 1.1942 4.8556 1.02408 0.18071 6.97541 2.88055 0.71445 0.11311 1.14454 7.71201 3.95833 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_cristatus 0 0.42876 0 0.422 0.18624 0 0.06534 0.70966 0.01773 0.04954 1.32896 0.01277 0.01772 0.98337 0.10176 0.00113 0.0117 0.00291 0.50104 0.09002 0.09882 0.09501 0.05871 0.0902 0.28035 0.08611 0.02596 0.04703 0.00623 0.14106 0 0.00141 0.00075 0.28619 0 0 3.07813 0.39821 0.00896 0.01236 0.32543 0.04273 0.01245 0.00569 0.01648 0.02142 0.02262 0.90124 0.18384 0.02309 0.16919 0.33 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Chromatiales|f__Ectothiorhodospiraceae|g__Thioalkalivibrio 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Cronobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae 0.00681 0.01555 0.00098 0.04568 0.06579 0 0.00838 0.01399 0.01298 0 0 0.01593 0.01605 0.05492 0.08568 0.02056 0.0922 0.0021 0.04104 0.08766 0.06705 0.01678 0.00897 0.30776 0.18643 0.06889 0.01753 0.01256 0.00168 0.07464 0.01384 0.0806 0.19866 0.07054 0.02757 0.02764 0.12237 0.02654 0.29978 0.27775 0.01662 0.03686 0.27179 0.00848 0.00085 0 0 0.05389 0.02741 0.00363 0.01954 0.06977 0.07069 0.25441 0.2975 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_uncl|g__Gemella 5.42102 5.00103 9.25372 1.38947 2.28877 11.0735 3.22232 5.10595 8.55427 0.92553 5.14327 1.21639 3.70136 16.04501 2.04969 4.26515 2.64806 7.25579 6.85214 3.92755 4.90114 2.15503 15.10015 2.43227 9.5621 0.46554 16.24324 10.44059 3.35469 6.38485 2.6249 1.34781 1.02723 0.60327 0.81046 11.34271 0.89678 2.74245 2.59043 2.46376 13.7067 2.69472 0.29875 3.76256 7.66479 0.82469 10.94991 7.05293 3.13914 21.47686 10.275 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_aurimucosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae 0.74397 0.08037 0.00137 0.12269 0.16624 0.77818 0.00483 0.49915 0.02985 0.38591 0.74709 0.51205 0.08121 0.59049 0.04816 0.17456 0.20302 0 0.02552 0.30476 0.41963 0.31948 0.09341 0 0.31553 0.07998 0.01764 0.36732 0.052 0.63261 0.03897 0.02175 0.0179 0.47098 0 0 3.60054 0.11977 0.1412 0.20642 0.15865 0.0292 0.16432 0.41316 0.26858 0.11193 0.08664 0.11622 0.07664 0.23499 0.0881 0.15943 0.34842 0.08705 0.35057 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas|s__Rhodopseudomonas_palustris 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_asparagiforme 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03369 0.03819 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.59657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00259 0 0 0 0 0 0 0 0.01033 0 0 0 0 0 0 0 0 0 0 0.00604 0 0 0 0 0.03787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0008 0 0 0 0 0 0 0 0 0 0 0.00341 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_varium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Gordonibacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_artemidis 0.00077 0.00147 0 0.00589 0 0 0 0 0 0 0 0.01217 0 0.00485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00128 0 0 0 0.0379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00043 0 0 0 0 0 0 0 0.00403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00561 0 0.00901 0.03124 0.11874 0.00604 0.04705 0.11756 0.01751 0 0.05 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_lactamica 0 0 0 0 0 0 0 0 0.00499 0 0 0 0 0 0 0.00242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00196 0 0 0 0 0 0 0 0 0 0 0.00816 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0004 0 0 0 0 0.00147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0032 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_salivarius 0 0.00808 0.0016 0.05719 0.01529 0 0.51469 1.45747 0.32401 0.04403 0.01742 0.37986 0.15887 6.28196 1.11374 0 0 0.00913 0.0729 0.34827 1.21651 0 0.07426 1.42885 0.11719 7.00794 0.06494 0.04458 0.0655 0.02774 0 0.09828 0.09204 0.10758 0.34173 0.01399 1.18811 0.93229 0.19966 0.19827 0.1264 0.05565 7.40148 0.00684 0.11022 0.09809 0.22923 0.37219 0.64967 0.30684 0.16862 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Pantoea 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Chromatiales|f__Ectothiorhodospiraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00132 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chlamydiae|c__Chlamydiae|o__Chlamydiales 0.0086 0 0 0.00178 0.02938 0.01382 0 0 0.00731 0.01486 0 0 0 0.04204 0.00422 0.01029 0.05859 0 0 0 0.01123 0 0.01123 0 0.02872 0 0 0.01834 0 0.02308 0.0052 0 0.00756 0 0 0 0 0.01329 0.00682 0 0.00278 0.00122 0.0065 0.00248 0.00073 0 0 0.01785 0.0236 0.01895 0 0.00209 0.00658 0.05938 0 0.0493 0.01307 0 0.04136 0 0.01156 0 0.00726 0 0 0.00611 0 0.00415 0 0.01226 0 0 0 0 0 0.01825 0.00498 0.01691 0.00625 0 0.02192 0 0.00709 0.00878 0.0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_gingivalis 0 0.00951 0 0.15875 0.10573 0 0.02782 0.08754 0.22455 0.07949 0.53308 0 0.00037 0.55874 0.01391 2.15935 0.10261 0.00097 0.1055 0.3659 0.21535 0.24721 0.28202 0 0.13124 0 0.00642 0.39771 0.01778 1.97896 0.36652 0.01559 0.01014 0.61935 0 0.01645 1.42466 0.07839 0.2623 0.2338 0.05917 0.02272 0.08131 0 0.19472 0.08045 0.00679 0.0621 0.15677 0.05922 0.05088 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella 0.00052 0.01723 0 0.46391 0.00473 0.00068 0.60974 0 0.11095 0.04774 0.24451 0.02284 0.00582 0.0536 0.05096 0.05513 0.00272 0 0.0146 0.02531 0.01952 0 0.06657 0 0.08751 0.04568 0.0372 0 0 0.17477 0.12616 0.05679 0.08896 0.51071 0.14101 0.03675 0.46772 0.02841 0.11639 0.15496 0.00887 0.01673 0.11924 0.01802 0.01765 0.06935 0.01727 0.25303 0.00517 0.00474 0.00735 0.01751 0.08878 0.0803 0 0.04838 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Mobiluncus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Mannheimia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0006 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Histophilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.00E-05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00017 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.00E-05 0 0 0 0 0 0 0.00018 0 0 0 0 0 0 0 0 0 0 0 8.00E-05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Lentisphaerae|c__Lentisphaerae_uncl|o__Victivallales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_unclassified 0 0 1.89973 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05202 0 0 0 0 0 0 0 0 0 0 0.50636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.65248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.22679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.78754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales 55.47006 72.58291 79.34659 64.33697 81.20122 52.4927 87.4908 51.74812 73.53831 79.91125 73.61045 67.06762 78.11591 38.76523 56.60537 46.3898 13.40527 87.86343 77.29137 33.67287 58.46703 75.46579 66.45632 52.67998 35.03681 73.07198 55.34896 56.18894 79.60219 30.84623 51.42203 62.57407 52.565 49.98827 22.9621 73.4435 30.39705 55.90747 44.01121 41.83647 75.87907 62.12767 36.32881 85.58905 69.77609 87.88153 82.06677 63.70619 62.22287 53 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Klebsiella|s__Klebsiella_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00057 0 0.00398 0 0 0 0 0 0 0 0 0.0026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02498 0 0 0 0 0.02826 0 0.00083 0 0 0 0 0 0 0 0.02008 0 0 0 0 0 0 0 0 0 0.0009 0 0 0 0 0 0 0 0 0.00271 0 0 0 0.00037 0 0.00183 0 0 0 0 0.0006 0.002 0.00701 0.0009 0.00125 0 0 0 0 0.00181 0 0 0 0 0 0.00074 0 0.00289 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteria|o__Acidobacteriales|f__Acidobacteriaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium 0 0.00555 0 0.01421 0.00177 0 0.01189 0.1628 0.00736 0.02001 0.22349 0.01461 0 0.04811 0.26616 0.00343 0.00104 0.0099 0.03808 0.05895 0 0.1756 0 0.07365 0.01147 0.19099 0.01886 0.00177 0 0 0 0.00175 0.00641 0.00883 0.04337 0.00225 0 0.29621 0 0.00912 0.02749 0.03422 0.02713 0.06635 0.00938 0.00774 0.05185 0.04538 0.06467 0.00232 0.00846 0.01619 0.01897 0.00615 0 0 0 0 0.10763 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia|s__Burkholderia_cenocepacia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Treponemaceae|g__Treponema|s__Treponema_phagedenis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chloroflexi|c__Chloroflexi|o__Chloroflexales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.48678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales|f__Cardiobacteriaceae 0 0.00265 0 0.0061 0.01092 0 0.00235 0 0.02904 0.00225 0 0 0 0 0 0.02094 0.0023 0 0 0.05205 0 0.05155 0.00017 0 0.12407 0 0 0 0 0.04026 0.02688 0.00924 0.02239 0.26691 0 0 0.18108 0 0 0 0.01511 0.00024 0.04359 0 0.02515 0.05154 0 0.06145 0.01815 0.0099 0 0.01858 0.0309 0.05611 0 0.07441 0.00086 0 0.37866 0 0.02266 0 0.00121 0 0 0.01403 0 0.00093 0.01278 0.00674 0.08741 0.00843 0 0.00096 0.0512 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Afipia|s__Afipia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_casei 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfobacterales|f__Desulfobulbaceae|g__Desulfobulbaceae_unclassified 0 0 0 0.00196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01592 0 0 0 0.00854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00171 0 0 0 0.00296 0 0 0 0 0 0 0 0 0 0 0 0.00332 0 0 0 0 0.0024 0 0 0 0 0 0.05083 0.05645 0.0379 0.01812 0.02696 0.04879 0.00741 0.00318 0.01694 0.0093 0. [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megamonas|s__Megamonas_hypermegale 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05573 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03911 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_curvus 0 0 0 0.00643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00518 0 0 0.0002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00317 0 0 0 0.01202 0 0 0.00896 0.00507 0.00718 0 0 0.07257 0.01085 0.07462 0.04709 0.01805 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales 0.02989 0.04532 0.0005 0.26187 0.30609 0.00884 0.03459 0.11626 0.42101 0.18273 0.82701 0.1057 0.01339 1.27016 0.03117 3.24536 0.29837 0.00312 0.19575 0.52575 0.36338 0.73948 0.648 0 0.53994 0.0364 0.04266 0.93556 0.04003 3.23807 0.44556 0.11062 0.07244 1.43584 0 0.01645 3.6449 0.25852 0.2623 0.2338 0.13154 0.10292 0.23804 0.01082 0.36664 0.2399 0.02137 0.45681 0.51068 0.23569 0.08136 0.18847 0.61254 0.97738 0.51871 4.84728 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_goodfellowii 0 0 0 0 0 0.00018 0 0 0.00069 0.00456 0 0 0 0.00959 0 0 0.00549 0 0 0.00761 0 0 0.00099 0 0.02368 0 0 0.00094 0 0.07842 0 0 0 0.01556 0 0 0.03937 0 0 0 0 0.00067 0.00112 0.04495 0.02372 0.0003 0 0 0.00197 0.00208 0.00013 0.00785 0 0 0 0.0274 0.13111 0 0.01504 0 0 0 0 0 0 0.006 0 0 0 0.00522 0 0 0 0 0 0 0 0 0 0 0.00985 0 0.0058 0 0 0.00246 0 0 0 0 0 0 0 0 0 0.0164 [...]
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Oscillatoriales|f__Oscillatoriaceae|g__Oscillatoriaceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00047 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Simonsiella 0 0.10185 0 0.30366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00206 0 0 0 0 0 0.01739 0 0 0 0 0 0 0 0 0.00764 0 0 0.00159 0 0.02051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01483 0 0 0 0 0 0 0 0 0 0 0 0 0.05135 0 0 0 0 0.00687 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04272 0 0 0 0 0 0 0 0.07053 0 0 0 0 0 0.00393 0 0 0 0.0113 0 0.07566 0.0074 0.08668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_unclassified 0.00312 0 0.01969 0 0 0 0 0 0 0 0.04765 0 0 0 0 0 0 0 0 0 0.04236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.29268 0 0 0 0 0 0 0 0.01731 0 0.42025 0 1.4409 2.0597 0 0.02571 0 0 0 0 0 0 0 0 0 0.14236 0 0 0 0 0 0 0 0 0 0 0.43595 0 0 0 0 0 0 0 0 0 0 1.63672 0 0.013 0 0 1.70318 0.32166 0 0 0 0 0.01758 0 0 0.33083 0 0 0 3.88078 0.16247 0 0 0 0 0 0.02157 0.80809 0.53734 0.52213 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_thetaiotaomicron 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00089 0 0 0 0 0 0.00744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Pediococcus|s__Pediococcus_acidilactici 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia 0 0 0 0.00876 0 0 0 0.01604 0 0 0 0 0 0 0 0 0.01559 0.00484 0 0.03418 0 0 0 0 0 0 0 0 0 0.0104 0 0 0.00546 0.00524 0 0 0 0 0 0 0 0 0 0.002 0.0039 0 0 0.00488 0.01074 0.00301 0 0.00298 0 0.0122 0 0.01892 0 0 0.0075 0 0 0 0 0 0 0.00837 0 0 0 0 0 0 0 0 0.01115 0 0 0 0.00442 0 0.00506 0 0 0 0 0 0 0.00443 0 0.01614 0 0 0 0 0 0 0 0 0.0026 0.0019 0 0 0 0 0 0 0 0 0 0 0 0.00852 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Cronobacter|s__Cronobacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_mucosa 0.02467 0.00593 0 2.82002 0 0.01826 0.08363 4.04007 0.15671 0 1.93148 0 0.89469 0.11225 0.40933 18.36133 6.94247 0.01042 1.02478 0.76878 0 0.43639 0.54857 0.84764 5.09874 0 0.75146 1.60144 0.35232 1.56914 9.90419 1.29498 2.05635 1.16158 1.37177 0.89238 2.34347 2.0078 0 0 0.47277 1.44402 0.91002 0.34559 0.70729 0.49932 0.06934 2.22188 0.56821 0.02787 0.01396 0.34963 3.8378 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_oralis 0 0.01723 0 0.4601 0.00377 0 0.60974 0 0.01858 0.04774 0.24451 0.02284 0.00582 0.01546 0.03247 0.01655 0.00272 0 0.0146 0.01944 0.01952 0 0.06657 0 0.06657 0.04568 0.00283 0 0 0.17283 0.01716 0.05679 0.08896 0.51071 0.14101 0.02114 0.46772 0.02713 0.10956 0.15496 0.00887 0.00454 0.10217 0.01241 0.00274 0.05296 0.01727 0.25303 0.00517 0.00402 0.00735 0.01751 0.08878 0.06327 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_capitis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Helicobacteraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.274 0.57794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10158 0.03758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_gallinarum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus 0.00064 0.00046 0 0 0.02034 0 0 0 0.02126 0.00389 0 0 0 0.19774 0.01002 0 0.00067 0 0 0 0.07056 0 0 0 0.0166 0 0 0.02469 0.00664 0.01438 0 0.00558 0 0 0 0 0 0.05215 0 0 0 0.00464 0.01662 0 0.0039 0 0.0077 0 0.07779 0.00034 0.00092 0.00816 0.05145 0.0049 0.02232 0.00154 0.00455 0.00811 0.00828 0 0.00276 0.07266 0.00309 0 0.002 0 0 0 0.00339 0.00349 0 0 0 0.02289 0 0.00154 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_ovatus 0 0 0 0.00262 0 0 0 0.0091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10052 0 0 0.0072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11363 0 0 0.15116 0.01239 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03025 0 0 0 0 0.00762 0 0 0 0 0 0.00418 0 0 0 0 0.00261 0 0 0.01968 0 0 0 0 0 0 0 0 0 0 0 0.13686 0 0 0 0 0 0 0 0 0 0 0 0 0.00029 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae 0 0 0 0 0 0 0.648 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00596 0.00142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05752 0.23695 0 0.00639 0 0 0 0 0 0 0.0065 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15224 0 0 0.00397 0 0.01466 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae|g__Mycobacterium 0.00681 0.01555 0.00098 0.04568 0.06579 0 0.00838 0.01399 0.01298 0 0 0.01593 0.01605 0.05492 0.08568 0.02056 0.0922 0.0021 0.04104 0.08766 0.06705 0.01678 0.00897 0.30776 0.18643 0.06889 0.01753 0.01256 0.00168 0.07464 0.01384 0.0806 0.19866 0.07054 0.02757 0.02764 0.12237 0.02654 0.29978 0.27775 0.01662 0.03686 0.27179 0.00848 0.00085 0 0 0.05389 0.02741 0.00363 0.01954 0.06977 0.070 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanobrevibacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Flavobacterium 0.00196 0.00651 0 0.01072 0 0.00258 0 0 0 0 0 0.00956 0 0.00613 0 0 0.00824 0 0 0 0 0 0.00612 0 0 0 0 0.00182 0 0.0133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00087 0 0 0.0042 0.00923 0.0058 0.0014 0.00253 0.00789 0 0.06268 0.01399 0.00192 0 0 0 0 0 0 0 0 0.0037 0 0 0 0.00495 0 0 0 0 0 0 0.00301 0.00935 0 0 0 0 0 0 0 0.00357 0.03785 0.00193 0 0 0 0 0 0 0 0.01855 0 0.01291 0 0.00164 0.01179 0 0. [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Streptobacillus|s__Streptobacillus_moniliformis 4.00E-05 0 0 0 0 0.0446 0 0 0 0 0 0 0.01429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00019 0 0 0 0 0 0 0 0 0 0 0 0.00732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Eikenella 0.0131 0 0 0.00346 0 0 0 0 0.00329 0.02244 0 0 0 0.1445 0 0.17246 0.00342 0 0.00932 0.00247 0.00112 0.07035 0 0 0.03902 0 0 0.02337 0 0.05032 0.03438 0 0.00193 0.03483 0 0 0.02397 0.03811 0 0 0.0031 0.00189 0 0 0.0135 0.01725 0 0.02244 0.01022 0.00661 0.00059 0 0.03811 0.02459 0 0.69402 0.00671 0 0.20066 0 0.00186 0 0 0 0 0.01549 0 0.0062 0.02524 0.01366 0 0.0016 0 0.01464 0.00648 0.00074 0. [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus 0 0.00591 0 0.00215 0.04399 0.0116 0 0 0.0016 0.00712 0 0 0 0.05508 0.02987 0 0.10974 0 0 0 0.12645 0.01515 0.01091 0 0.00471 0 0 0.02833 0 0.01241 0 0 0 0.00804 0 0 0.0372 0 0 0 0 0.00574 0.01416 0 0.00561 0 0.01157 0.06804 0.02151 0.00105 0 0 0 0.00678 0.15708 0.03318 0.14094 0 0.21599 0 0 0.01199 0 0 0.02199 0 0 0.00756 0.00475 0.00744 0 0 0 0.0512 0 0.02216 0.01627 0 0. [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__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.00461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00131 0 0 0 0 0 0 0 0 0 0 0 0 0.00151 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylocystaceae|g__Methylocystaceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Pseudoramibacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00401 0 0 0 0 0 0 0 0 0.15125 0.14183 0 0 0 0 0 0 0 0 0 0 0.00683 0 0.01272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Pseudoflavonifractor|s__Pseudoflavonifractor_capillosus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Eikenella|s__Eikenella_corrodens 0.0131 0 0 0.00346 0 0 0 0 0.00329 0.02244 0 0 0 0.1445 0 0.17246 0.00342 0 0.00932 0.00247 0.00112 0.07035 0 0 0.03902 0 0 0.02337 0 0.05032 0.03438 0 0.00193 0.03483 0 0 0.02397 0.03811 0 0 0.0031 0.00189 0 0 0.0135 0.01725 0 0.02244 0.01022 0.00661 0.00059 0 0.03811 0.02459 0 0.69402 0.00671 0 0.20066 0 0.00186 0 0 0 0 0.01549 0 0.0062 0.02524 0.01366 0 0.0016 0 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Histophilus|s__Histophilus_somni 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.00E-05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00017 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.00E-05 0 0 0 0 0 0 0.00018 0 0 0 0 0 0 0 0 0 0 0 8.00E-05 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae 10.37296 7.5117 0 9.75611 0.0088 9.25403 0.96848 16.25019 1.76925 0.09797 6.84312 0.03593 3.27202 1.60273 1.64502 20.46584 17.8334 0.04563 2.32312 10.59334 0.02064 2.11932 1.17839 2.24387 6.8738 1.93481 2.38796 3.67673 0.64649 5.79482 11.43243 5.98061 6.97586 1.81749 2.1343 1.48572 11.80896 2.41476 0.1273 0.19936 2.69984 4.85012 2.46071 1.1942 4.8556 1.02408 0.18071 6.97541 2.88055 0.71445 0.11311 1.1445 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_iners 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria 10.37533 7.5148 0 10.22688 0.00922 9.25403 1.01398 17.50208 1.84163 0.25302 7.8012 0.04065 3.282 2.26318 1.80077 20.53769 25.60592 0.09694 2.81587 11.87534 0.02222 2.62384 1.21266 2.84852 6.98731 2.27066 2.50169 3.71715 0.64649 6.20237 11.43996 6.25932 7.83865 2.61515 2.71604 1.50798 12.36995 2.4627 0.1273 0.19936 2.78057 4.99047 2.92569 1.21947 4.93195 1.34449 0.38832 7.29579 3.7817 0.92311 0.11728 1.57403 7.88247 7.20097 0.02705 8.749 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae 0.00908 0.00317 0 0.01654 0.00187 0 0 0.0179 0.00484 0.00265 0 0.00271 0 0.02947 0.00443 0.00351 0.0054 0 0.02423 0.04544 0.02005 0 0.00266 0 0.00839 0.0255 0.01038 0 0 0.01704 0 0.00188 0.01203 0.01758 0 0.00246 0 0.0043 0.00404 0 0.0017 0 0.02415 0.00087 0.00036 0 0 0.01251 0.03795 0.00092 0.00186 0.00111 0.00805 0.00764 0.09625 0.00414 0 0 0.00288 0 0.00897 0.02274 0 0.06521 0 0.00646 0.00353 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_suis 0 0 0.00012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_sputigena 0.10519 0.00919 0 0.26638 0 0.01581 0 0 0 0 0 0.01906 0 0.12027 0.01555 0 0 0 0 0 0 0 0 0.09166 0.0052 0 0 0 0 0 0 0 0 0.00155 0 0 0 0.00437 0 0 0 0 0.06943 0 0.00026 0 0 0.0289 0.01935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03836 0 0 0 0.00391 0 0.00048 0 0.10368 0.00966 0 0.00308 0 0.07335 0 0.01711 0 0 0.02237 0 0 0.04404 0 0 0 0 0 0.03354 0 0 0.01913 0.00251 0 0 0 0.006 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus 48.6247 68.46821 77.72769 62.58347 77.9948 46.04697 86.66298 51.35247 72.92321 76.87924 72.57169 66.94588 76.49018 37.84883 56.17154 45.62988 12.41622 87.80602 77.1299 33.35484 56.6224 74.55492 61.28031 52.51948 34.05779 72.96877 55.21856 52.4545 79.46966 27.71981 48.60731 61.4393 51.45077 49.76614 22.74641 71.59219 30.01547 55.38186 43.3957 41.35887 75.70089 61.35802 35.9963 73.78904 62.85096 87 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_unclassified 0.01279 0.00036 0.0002 0 0 0.00318 0.00074 0 0 0 0 0.04376 0.00572 0 0 0 0 0.00216 0 0 0 0 0 0 0 0 0.00467 0 0 0 0 0.01289 0.00166 0 0 0 0 0 0 0 0 0 0 0.00247 0 0 0.00366 0 0 0 0 0 0 0 0 0 0 0.00104 0 0.00083 0 0.02272 0 0 0.0356 0 0.01654 0 0 0 0 0.01178 0.02048 0 0 0 0 0 0 0.00097 0 0 0 0 0 0 0 0 0 0 0.00074 0 0 0 0 0 0 0 0 0.0037 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus|s__Peptostreptococcus_stomatis 0 0 0 0 0.01008 0 0 0 0.00812 0 0 0 0 0.0994 0.02993 0.00504 0 0 0 0 0.05942 0 0 0 0 0 0 0.01138 0 0.003 0 0 0 0 0 0 0 0 0 0 0 0.00558 0.02751 0 0.00498 0 0 0.00435 0.07454 0.00244 0 0.00234 0.01477 0.00552 0.05339 0.00466 0 0 0 0 0 0 0 0 0 0.00266 0 0.00044 0 0.00043 0.04865 0 0 0.21232 0.03877 0.00391 0.00409 0 0.02635 0 0.08873 0 0.05877 0.00774 0 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_lugdunensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Subdoligranulum|s__Subdoligranulum_variabile 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella 0.07829 0.08894 0.07569 2.54289 5.31312 0.04426 0.39171 1.73552 2.24059 2.95447 1.67564 3.99098 0.28634 6.41907 2.08252 0.29513 2.11873 0.53999 0.48546 2.06684 9.15151 0.73624 2.55963 1.53993 1.37318 5.58326 0.26288 1.38277 0.11351 2.61234 0.05945 4.02012 3.61953 13.57235 0.6633 0.58651 2.91744 4.22374 1.28345 1.18204 0.57197 0.2012 5.21921 0.19614 0.29561 0.5819 1.00528 2.68618 3.70712 1.2369 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Arthrobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00047 0 0 0 0 0 0 0 0 0 0.0004 0 0 0 0 0 0 0 0 0 0.00066 0 0 0 0 0 0 0 0 0.00076 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria 14.73959 13.13437 11.27208 12.2081 1.49665 16.91005 6.56194 12.86638 9.54465 14.09941 6.28749 21.77649 12.58275 5.89241 17.91019 21.56338 43.39332 3.0594 6.89242 36.7874 6.40583 9.83697 9.62895 4.38483 28.58446 4.43356 22.84557 23.91193 15.46685 37.19703 32.1837 14.7733 13.12888 26.25174 8.00933 6.86384 6.20854 9.56885 24.47038 24.10611 3.54019 25.82143 9.22024 7.78113 15.60254 7.72645 2.66117 8.66647 12.7479 21.65896 7.11218 24.99052 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Lactococcus|s__Lactococcus_lactis 0 0 0 0 0 0 0 0 0 0 0 0.00226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0312 0 0 0 0 0 0 0 0.11482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01486 0 0 0 0 0 0.06332 0 0 0.00585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.26256 0 0 0 0 0 0 0 0 0.01771 0 0 0 0 0.00934 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.00E-05 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae|g__Paracoccus|s__Paracoccus_denitrificans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00057 0 0.00398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Veillonella|s__Veillonella_dispar 0 0.00269 0.03088 0.0057 0.45409 0 0.02436 0.32529 0.50444 0.01238 0 0.08025 0.02592 0.56952 0.15793 0.00247 0.00143 0.00281 0.05027 0.08097 2.71623 0 0.03083 0.03199 0.07118 0.83563 0.0094 0.0328 0.01508 0.03535 0 0.11173 0.09335 0.97862 0 0 0.11877 0.45508 0.01771 0.02916 0.01945 0.01197 0.8668 0.00102 0.00604 0.01312 0.03442 0.34073 0.59117 0.01993 0.14409 0.17679 0.16 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_gingivalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.46253 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5296 0 0.09355 0 0 0 0 0.00464 0 0.09076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.5059 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_unclassified 0.00064 0.00046 0 0 0.02034 0 0 0 0.02126 0.00389 0 0 0 0.19774 0.01002 0 0.00067 0 0 0 0.07056 0 0 0 0.0166 0 0 0.02469 0.00664 0.01438 0 0.00558 0 0 0 0 0 0.05215 0 0 0 0.00464 0.01662 0 0.0039 0 0.0077 0 0.07779 0.00034 0.00092 0.00816 0.05145 0.0049 0.02232 0.00154 0.00455 0.00811 0.00828 0 0.00276 0.07266 0.00309 0 0.002 0 0 0 0.00339 0.0034 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_intestinalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_adiacens 0.00571 0.12669 0.00344 0.65167 0.76889 0.00075 0.06954 0.113 0.20755 0.09817 0 0.01077 0.06007 0.44004 0.14008 0.16931 0.43591 0.04308 0.0656 0.1593 1.27052 0.18044 0.2001 0.09173 0.16997 0.04691 0.0262 0.08954 0.02489 0.50283 0.13802 0.22197 0.18682 0.10229 0.19621 0.30965 0.24497 0.42233 0.37108 0.37069 0.09225 0.05436 0.24593 0.3278 0.06122 0.10264 0.02381 0.54912 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Moraxella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella|s__Granulicatella_unclassified 0 0 0 0 0 0 0.02857 0 0.20034 0 0.04682 0 0 0 0.05869 0.06148 0 0.00583 0 0.03368 0.19811 0.0693 0 0.06878 0 0.02205 0.04334 0 0 0 0 0.0785 0.06027 0.03134 0 0 0.13661 0.03954 0.21466 0.06603 0.05564 0 0.03608 0 0 0 0 0.06177 0 0 0 0 0 0.22159 0 0 0 0 0 0 0.16796 0.01096 0 0.11304 0 0.09019 0 0 0 0 0.15283 0 0 0 0.15562 0 0 0 0 0.01319 0 0.01721 0.09099 0.05422 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_ruminis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Xanthomonadales|f__Xanthomonadaceae|g__Xanthomonas|s__Xanthomonas_campestris 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Mitsuokella|s__Mitsuokella_multacida 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00016 0 0 0 0 0 0 0 0.00083 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes 0 0 0 0 0 0 0 0.06051 0.00167 0 0 0 0 0 0.07624 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.4912 0 0 0.02629 0 0.0035 0 0 0 0 0 0.00024 0 0.00203 0 0 0 0 0 0 0 0 0 0 0 0.00312 0 0 0.01919 0.06108 0 0 0.00138 0 0 0.31704 0 0 0.04322 0 1.41237 0.01267 0 0 0 0 0 0 0 0 0 0 0.00941 0 0 0 0 0 0 0 0 0 0.0265 0 0 0 0 0 0 0 0.00812 0 0 0 0 0 0 0 0 0 0 0.04576 0 0 0 0 0 0 0 0 0 0.00109 0 5.00E-05 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae 0.00066 0.00353 0 0.02028 0.39996 0.00303 0 0.09735 0.01791 0.04933 0.05477 0.05913 0.0017 0.13353 0.0442 0.00592 0.00616 0 0.00554 0 0.07921 0.0021 0.01499 0.04959 0.09978 0.04155 0 0.0182 0.00109 0.16814 0 0.00152 0.00292 0.18087 0 0 0.76934 0.62316 0.01692 0.0174 0.04198 0.00343 0.22531 0 0.03267 0.00737 0.00118 0.11879 0.1197 0.00446 0.00837 0.00748 0.0293 0.01377 0.25953 0.00843 0.00443 0.00348 0.02281 0 0.01 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_nucleatum 0.74392 0.08037 0.00137 0.12269 0.14002 0.73358 0.00483 0.41861 0.02841 0.37541 0.68723 0.51205 0.04451 0.52403 0.04654 0.17304 0.19308 0 0.02552 0.28629 0.39416 0.31605 0.09341 0 0.30043 0.07998 0.01764 0.34446 0.05008 0.6053 0.03897 0.02175 0.0179 0.46984 0 0 3.59796 0.0763 0.1412 0.20642 0.15045 0.02785 0.1444 0.41316 0.25504 0.11055 0.06814 0.10203 0.07434 0. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_helveticus 0 0 0 0 0 0 0.648 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.23695 0 0 0 0 0 0 0 0 0.0065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15224 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_aerofaciens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria 0.02989 0.04532 0.0005 0.26187 0.30609 0.00884 0.03459 0.11626 0.42101 0.18273 0.82701 0.1057 0.01339 1.27016 0.03117 3.24536 0.29837 0.00312 0.19575 0.52575 0.36338 0.73948 0.648 0 0.53994 0.0364 0.04266 0.93556 0.04003 3.23807 0.44556 0.11062 0.07244 1.43584 0 0.01645 3.6449 0.25852 0.2623 0.2338 0.13154 0.10292 0.23804 0.01082 0.36664 0.2399 0.02137 0.45681 0.51068 0.23569 0.08136 0.18847 0.61254 0.97738 0.51871 4.84728 0.38727 0.00104 3.2 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_mesenteroides 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma|s__Ureaplasma_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Anaerotruncus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Brachyspiraceae|g__Brachyspira|s__Brachyspira_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_agalactiae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chloroflexi|c__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.17783 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00332 0 0 0 0 0 0 0 0 0.00137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00122 0 0 0 0 0 0 0 0.00114 0 0 0 0 0 0.00086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00082 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_pyogenes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Lautropia|s__Lautropia_mirabilis 0.00237 0.0031 0 0.45876 0.00041 0 0.0455 1.23585 0.07238 0.15505 0.95808 0.00472 0.00998 0.66045 0.1451 0.07184 7.75693 0.00179 0.44181 0.9575 0.00157 0.50452 0.03207 0.60465 0.11351 0.33585 0.11374 0.04042 0 0.39714 0.00753 0.27871 0.85734 0.79241 0.58174 0.02227 0.56099 0.04794 0 0 0.08072 0.14035 0.46498 0.02328 0.07245 0.32041 0.20762 0.3155 0.89041 0.20565 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales 0.44496 0.99766 0.0419 7.06678 5.19029 0.05615 0.86404 4.46063 1.36265 0.64152 2.9165 2.64512 1.0038 1.48591 15.20264 2.93388 11.95367 1.1721 4.43601 9.40669 9.19413 7.72838 3.55765 35.57052 15.9596 11.86817 2.57687 1.8451 0.3535 10.13717 1.63262 10.49073 21.33137 3.50451 64.13557 6.0958 13.16836 7.95125 26.67576 29.36423 2.33121 3.37257 39.27115 0.34112 0.1225 0.59945 1.83485 5.53871 1.73269 0.20572 1.34792 11.15739 5.53 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia 0.00597 0.14083 0.04092 2.12577 1.25474 0.01374 0.39226 3.26374 1.31194 0.36325 0.9364 2.22767 0.90035 0.602 14.51106 2.00818 10.59088 1.06424 2.86925 7.147 5.71201 2.89802 3.19699 18.99963 11.69621 9.14701 1.99988 1.22142 0.34249 5.07937 1.52164 8.73887 16.20753 1.01024 62.34921 5.0243 7.29568 6.99818 25.28661 27.71667 1.09229 3.19514 36.65908 0.07358 0.05138 0.42732 0.99856 2.37934 0.93925 0. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_fermentum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_anginosus 0.03401 0.00069 0.00015 0.02273 0.01697 0.00872 0 0.00637 0.01182 0.00146 0 0.00934 0 0.11552 0.02182 0 0.00092 0.03271 0 0.01399 0.02976 0 0.00322 0 0.00521 0.01789 0 0.00394 0 0.00931 0 0 0 0.001 0 0 0.04345 0.05075 0.00311 0.00461 0.00396 0.0176 0.12812 0.00249 0.00073 0 0.0156 0.08625 0.01667 0.0053 0.00457 0.00171 0.00361 0.00839 0.05671 0.00465 0.00339 0 0 0 0.000 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_johnsonii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Proteus|s__Proteus_mirabilis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium 0.00066 0.00353 0 0.02028 0.39996 0.00303 0 0.09735 0.01791 0.04933 0.05477 0.05913 0.0017 0.13353 0.0442 0.00592 0.00616 0 0.00554 0 0.07885 0.0021 0.01499 0.04959 0.09978 0.04155 0 0.0182 0.00109 0.16814 0 0.00152 0.00292 0.18087 0 0 0.76934 0.62316 0.01692 0.0174 0.04198 0.00343 0.22531 0 0.03267 0.00737 0.00118 0.11879 0.1197 0.00446 0.00837 0.00748 0.0293 0.01377 0.25953 0.00843 0.00443 0.00348 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Psychrobacter|s__Psychrobacter_arcticus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_finegoldii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00776 0 0 0 0 0 0 0 0 0 0 0.00104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Kocuria 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Aerococcaceae|g__Aerococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_radioresistens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_uncl|g__Blautia|s__Blautia_hydrogenotrophica 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Oribacterium 0.0017 0 0 0 0.13338 0.00011 0.00213 0.55555 0.07204 0.00606 0 0.00391 0.01676 2.87949 0.11424 0.02809 0.05603 0 0 0.09979 1.6947 0.04087 0 0.02551 0.01701 0.05843 0 0.05505 0.00573 0.00893 0 0.02248 0.02264 0.00253 0 0 0.0616 0.1118 0.01699 0.02602 0.04624 0.06412 0.15107 0 0.03466 0.01362 0.03362 0.18248 0.61403 0.02573 0.0318 0.0092 0.22478 0.09123 0.71227 0.00397 0.00423 0.00462 0.00027 0 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_bromii 0 0 0 0 0 0 0 0 0.0112 0 0 0 0 0.00264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.38228 0 0 0 0 0 0 0 0 0 0 0.00087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00175 0 0 0 0 0 0 0 0 0 0.00324 0 0.12721 0.00477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04124 0 0 0 0 0 0 0 0 0 0.00161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus 0 0 0 0 0.01008 0 0 0 0.0134 0 0 0 0 0.11752 0.02993 0.00504 0 0 0 0 0.05942 0 0 0 0 0 0 0.01138 0.00155 0.00589 0 0 0 0 0 0 0 0 0 0 0 0.00558 0.02751 0 0.01034 0 0 0.00581 0.07454 0.00244 0 0.00234 0.01477 0.00788 0.05339 0.00466 0 0.01696 0 0 0 0 0 0 0.00544 0.00266 0 0.00044 0 0.00299 0.04865 0 0 0.21232 0.04414 0.00391 0.00409 0 0.02635 0 0.08873 0 0.05877 0.00774 0 0 0.01805 0 0 0 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Mycoplasma 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00054 0.00043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_vaginalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Frankiaceae|g__Frankia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Parascardovia|s__Parascardovia_denticolens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014 0 0 0.02719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_odontolyticus 0.42631 0.02091 0 0.15512 0.12911 0.02457 0.00044 0.10092 0.02339 0.02869 0 0.06407 0.01276 0.43129 0.04349 0.73826 0.50781 0.02244 0.02024 0.71692 1.43755 0.27504 0.01518 0.82016 0.77066 0.01591 0 0.12097 0.00688 0.01196 0.0037 0.06835 0.24863 0.14161 0.14125 0.00425 0 0.14337 0.00518 0.0125 0.03115 0.00924 0.22033 0.01801 0.01493 0.00617 0.03739 0.09126 0.3 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_oris 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Cryptobacterium|s__Cryptobacterium_curtum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00729 0 0 0 0 0 0 0 0 0 0.00267 0 0 0.01741 0.00104 0.01661 0 0.1154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Butyrivibrio 0 0 0 0 0 0 0 0.16393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00097 0 0.00566 0 0 0 0 0 7.40863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0023 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02288 0 0.0108 0 0 0 0.00424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0013 0 0.00452 0 0 0 0 0 0 0 0 0.0019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0012 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_bovis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_torques 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.17891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00117 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria 10.35933 7.39262 0 8.98508 0 9.25336 0.35873 16.25019 1.65502 0.02778 6.59861 0.01309 3.2662 1.40464 1.59406 20.23826 17.82726 0.0352 2.29921 10.56556 0 2.04897 1.11181 2.24387 6.74728 1.88913 2.35076 3.65337 0.64649 5.56767 11.27189 5.92382 6.88497 1.27195 1.99328 1.43158 11.31727 2.34824 0.01091 0.0444 2.68788 4.8315 2.34147 1.17617 4.81681 0.93748 0.16344 6.69836 2.86516 0.68259 0.10517 1 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Rothia|s__Rothia_dentocariosa 0.00062 0.1111 0.00039 1.79131 0.8953 0.01251 0.21229 2.2743 0.63542 0.33875 0.05029 0.32449 0.13337 0.12265 1.21043 0.62356 0.20045 0.77616 2.68395 2.80421 2.17869 1.4913 1.42328 9.7384 0.87805 7.74719 1.55596 0.89315 0.19523 1.05786 0.40458 2.83145 3.77258 0.48125 60.20781 4.89671 6.96397 5.89869 5.08101 5.25167 0.88849 0.17931 10.23447 0.06915 0.01849 0.20814 0.92382 1 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_flueggei 0.00218 0.00047 0 0.00716 0 0.0009 0 0 0 0 0 0.0036 0 0.03661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00419 0 0 0 0 0.03069 0 0 0 0 0.00201 0.02019 0 0 0 0 0 0 0 0 0 0 0 0 0.00079 0 0 0 0 0 0 0 0.00255 0 0 0 0.01221 0 0 0 0 0.03218 0 0 0 0 0 0 0 0.00972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00094 0.00708 0 0 0 0 0 0 0 0 0 0 0 0 0.03755 0.00127 0.02082 0 0.23395 0 0.08 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_methylpentosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas 0 0 0 0.00687 0 0 0 0 0 0 0 0 0 0 0 0 0.00125 0 0 0.01576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21938 0 0 0 0 0 0 0 0 0 0.00058 0.00084 0 0 0 0 0.00053 0 0 0 0 0.00138 0 0 0 0.00355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_animalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella|s__Sutterella_wadsworthensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.00E-05 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_lacrimalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hiranonis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_siraeum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_uncl|g__Blautia 0 0 0 0 0 0.00251 0 0 0 0 0 0 0 0.0078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00115 0 0.00198 0 0 0 0 0 0.00525 0 0 0 0 0 0 0 0 0 0 0 0 0.00803 0.00855 0 0 0 0 0.00565 0 0.01635 0.00271 0.00824 0 0.00389 0 0.01013 0.00222 0.00107 0.00327 0.00205 0.01931 0.00569 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_uncl 5.42102 5.00103 9.25372 1.38947 2.28877 11.0735 3.22232 5.10595 8.55427 0.92553 5.14327 1.21639 3.70136 16.04501 2.04969 4.26515 2.64806 7.25579 6.85214 3.92755 4.90114 2.15503 15.10015 2.43227 9.5621 0.46554 16.24324 10.44059 3.35469 6.38485 2.6249 1.34781 1.02723 0.60327 0.81046 11.34271 0.89678 2.74245 2.59043 2.46376 13.7067 2.69472 0.29875 3.76256 7.66479 0.82469 10.94991 7.05293 3.13914 21.47686 10.27524 2.99278 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_bartlettii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Pediococcus|s__Pediococcus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Helicobacteraceae|g__Helicobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.274 0.57794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10158 0.03758 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae 0 0 0 0 0 0 0 0.00416 0.0112 0 0 0 0 0.01133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.38874 0 0 0 0 0.01404 0 0 0 0 0 0.00087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00175 0 0 0 0 0 0 0 0 0 0.00324 0 0.73294 0.00477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04173 0.01357 0 0 0 0 0 0 0 0 0.00161 0 0 0 0 0 0 0 0 0.00069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__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.14462 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.59358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Treponemaceae|g__Treponema|s__Treponema_vincentii 0.00022 0 0 0 0.01641 0.00015 0 0 0 0 0 0 0 0.03965 0.03311 0 0 0 0.00155 0 0.02309 0 0 0 0 0 0 0.00061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00173 0 0 0.01667 0.02286 0.00048 0 0 0.00362 0 0.07971 0 0 0 0 0 0 0 0 0 0 0 0 0.00137 0 0 0 0.00578 0 0.33481 0 0 0 0 0.00673 0 0.04396 0 0.01027 0.03346 0 0 0 0 0 0.02558 0 0 0 0 0 0.01027 0.00437 0 0 0.00719 0.00544 0 0 0.10219 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae 0.02989 0.04532 0.0005 0.26187 0.30609 0.00884 0.03459 0.11626 0.42101 0.18273 0.82701 0.1057 0.01339 1.27016 0.03117 3.24536 0.29837 0.00312 0.19575 0.52575 0.36338 0.73948 0.648 0 0.53994 0.0364 0.04266 0.93556 0.04003 3.23807 0.44556 0.11062 0.07244 1.43584 0 0.01645 3.6449 0.25852 0.2623 0.2338 0.13154 0.10292 0.23804 0.01082 0.36664 0.2399 0.02137 0.45681 0.51068 0.23569 0.08136 0.18847 0.61254 0. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_dysgalactiae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae|g__Paracoccus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00057 0 0.00398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_australis 0.00042 0.01269 0.00031 0.00877 0.00125 0.00162 0.01083 0.20732 0.74927 0.05733 0.01211 0.00077 0.51479 1.14882 8.29199 0.58211 0.34582 0.13651 0.09195 3.1365 0.01117 1.20727 0.01173 2.99487 3.73954 0.08821 0 0.50375 0.11252 1.0603 0.26148 4.41893 4.18189 0.40092 1.15432 0.08694 0.4663 0.16105 2.13581 2.01554 0.43203 0.51426 0.00258 0.00746 0.08404 0.2104 0.13293 0.0839 [...]
+k__Bacteria|p__Tenericutes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00054 0.00043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_amycolatum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium 0.00908 0.00317 0 0.01654 0.00187 0 0 0.0179 0.00484 0.00265 0 0.00271 0 0.02947 0.00443 0.00351 0.0054 0 0.02423 0.04544 0.02005 0 0.00266 0 0.00839 0.0255 0.01038 0 0 0.01704 0 0.00188 0.01203 0.01758 0 0.00246 0 0.0043 0.00404 0 0.0017 0 0.02415 0.00087 0.00036 0 0 0.00921 0.03795 0.00092 0.00186 0.00111 0.00805 0.00764 0.09625 0.00414 0 0 0.00288 0 0.00897 0.02274 0 0.06521 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Pasteurella|s__Pasteurella_dagmatis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Aurantimonadaceae|g__Aurantimonadaceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02498 0 0 0 0 0 0 0.00083 0 0 0 0 0 0 0 0.02008 0 0 0 0 0 0 0 0 0 0.0009 0 0 0 0 0 0 0 0 0.00271 0 0 0 0 0 0.00183 0 0 0 0 0.0006 0.002 0.00701 0.0009 0.00125 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_gasseri 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05752 0 0 0.00639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales 0 0 0 0.00687 0 0 0 0 0 0 0 0 0.00218 0 0 0 0.00161 0 0 0.01576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01249 0 0 0 0 0 0 0.00129 0 0 0.06271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00574 0 0 0.0032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3145 0 0 0 0 0 0 0 0 0 0.00058 0.00084 0 0 0 0 0.00053 0 0 0 0 0.00138 0 0 0 0.00355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00109 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_hominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_matruchotii 0 0.52567 0 1.19617 2.0353 0 0 0.18776 0.00112 0.08465 0.1095 0.02502 0.00504 0.16407 0.03834 0 0.00144 0 0.50247 0.58376 0.13584 3.01801 0.00441 5.00122 1.248 0.17376 0.07523 0.0068 0.0008 1.96861 0 0 0 0.88163 0.16632 0.20423 4.77879 0.21342 0 0 0.0845 0.01294 0.5293 0.02261 0.02859 0.05199 0.03518 2.52569 0.18197 0.00624 0.01464 0.02189 0.08029 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Carnobacteriaceae|g__Granulicatella 6.74477 4.09164 1.60668 1.65804 3.07341 6.38699 0.13624 0.36116 0.4398 1.0343 0.04682 0.10642 1.49783 0.59994 0.25391 0.42934 0.47618 0.05437 0.11347 0.19443 1.71518 0.40256 4.85892 0.16051 0.86092 0.06897 0.0922 3.03444 0.12867 2.65129 1.31127 0.32414 0.26566 0.1539 0.19621 1.50325 0.38158 0.49455 0.58574 0.43672 0.17582 0.53295 0.29303 11.78992 6.81649 0.56735 0.08562 0.64777 1.16312 0.52382 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Rikenellaceae|g__Alistipes|s__Alistipes_shahii 0 0 0 0 0 0 0 0.00052 0 0 0 0 0 0 0.00647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.29047 0 0 0.00362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02251 0 0 0 0 0 0 0 0 0 0 0.28721 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00059 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chlamydiae|c__Chlamydiae 0.0086 0 0 0.00178 0.02938 0.01382 0 0 0.00731 0.01486 0 0 0 0.04204 0.00422 0.01029 0.05859 0 0 0 0.01123 0 0.01123 0 0.02872 0 0 0.01834 0 0.02308 0.0052 0 0.00756 0 0 0 0 0.01329 0.00682 0 0.00278 0.00122 0.0065 0.00248 0.00073 0 0 0.01785 0.0236 0.01895 0 0.00209 0.00658 0.05938 0 0.0493 0.01307 0 0.04136 0 0.01156 0 0.00726 0 0 0.00611 0 0.00415 0 0.01226 0 0 0 0 0 0.01825 0.00498 0.01691 0.00625 0 0.02192 0 0.00709 0.00878 0.00615 0.03327 0.0 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae|g__Jonquetella|s__Jonquetella_anthropi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_saphenum 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02538 0.00705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.27355 0 0 0 0 0 0 0.03546 0 0 0.02134 0 0 0 0 0 0.03567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1412 0 0.00513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chloroflexi|c__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.48678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_longum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_inulinivorans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.19466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_cf 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_stercoris 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.69513 0 0 0 0 0 0 0 0 0 0 0.00348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01379 0.00271 0 0 0 0 0 0 0 0 0 0 0 0.02267 0 0 0 0 0 0 0 0 0 0 0.00115 0 0 0 0 0 0 0 0.07296 0 0.00647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylobacteriaceae|g__Methylobacterium|s__Methylobacterium_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_sicca 0.02112 0.00625 0 4.46113 0 0.01704 0.2751 9.26134 0.29668 0 3.945 0.01309 0.08656 0.21168 1.02269 0.14517 10.70293 0 0.46833 0.79474 0 1.04168 0.49081 0.89637 0.63912 0 1.57363 0.33108 0.02323 2.60155 0.68361 3.54481 3.73877 0 0.62152 0.35556 3.35747 0.13172 0 0 0.86842 2.02908 1.08146 0.08321 1.25991 0.00182 0.01494 0.49047 0.81024 0.02841 0.01077 0.1637 1.97156 1.00432 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae 14.73959 13.13172 11.27208 12.19513 1.48573 16.91005 6.55959 12.86638 9.51561 14.09715 6.28749 21.77649 12.58058 5.89241 17.91019 21.54244 43.38942 3.0594 6.89242 36.7196 6.40583 9.78542 9.62878 4.38483 28.46039 4.43356 22.84557 23.91193 15.46685 37.15677 32.15682 14.76406 13.10649 25.98483 8.00933 6.86384 6.02745 9.56885 24.47038 24.10611 3.52508 25.8212 9.16416 7.78113 15.57739 7.67491 2.66117 8.6 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae|o__Verrucomicrobiales|f__Verrucomicrobiaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Simonsiella|s__Simonsiella_muelleri 0 0.10185 0 0.30366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00206 0 0 0 0 0 0.01739 0 0 0 0 0 0 0 0 0.00764 0 0 0.00159 0 0.02051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01483 0 0 0 0 0 0 0 0 0 0 0 0 0.05135 0 0 0 0 0.00687 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04272 0 0 0 0 0 0 0 0.07053 0 0 0 0 0 0.00393 0 0 0 0.0113 0 0.07566 0.0074 0.08668 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichiaceae|g__Leptotrichia|s__Leptotrichia_buccalis 0.00395 0.00432 0 0.01178 0.07688 0.01106 0.00663 0.08659 0.00129 0.05158 0.05408 0.01581 0.00272 0.22342 0.06601 0 0.00053 0 0.01779 0.00753 0.01431 0.02168 0.01248 0 0.08602 0.05529 0 0.01998 0.00396 0.04705 0 0 0 0.16403 0 0 1.55472 0.04678 0 0 0.03263 0.00421 0.15182 0.01354 0.06184 0.01754 0.01913 0.07652 0.05081 0.03503 0.00812 0.04119 0.05123 0.00476 0.03902 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_paracasei 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Enhydrobacter 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_caccae 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03182 0 0 0.0095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.58779 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00888 0 0 0 0 0 0.00086 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteria|o__Acidobacteriales|f__Acidobacteriaceae|g__Granulicella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_mutans 0 0 0 0 0.05953 0 0 0.00557 0 0 0 0.02869 0 0 0.01872 0 0 0 0 0 0.14339 0 0.02489 1.37798 0.02288 0.03407 0.00061 0 0 0.02792 0 0 0 0 0 0 0.13044 0.04905 0 0 0.003 0 0 0 0 0 0 0.01412 0 0.00219 0 0.01092 0 0 0.07282 0 0 0 0 0 0.00141 0 0.00328 0 0 0 0 0 0 0.00925 0 0 0 0 0 0 0 0 0.01584 0 0 0.00049 0 0 0 0 0.52906 0 0 0 0 0 0 0 0 0 0 0 0.01336 0.06147 0 0 0.01385 0 0 0.004 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_cinerea 8.39623 5.85284 0 1.18123 0 6.96223 0 1.98553 0.00388 0 0 0 1.96618 0 0 0.2153 0 0 0.03377 0 0 0 0.0006 0 0 0 0 0.00834 0 0.02835 0.10026 0 0 0 0 0 0 0 0 0 0 0.00705 0 0.64254 0.10748 0 0 0 0.02894 0 0 0 0 0 0 0.14765 0.07875 0 0.33616 0 0 0 0 0 0.00884 0 0 0 0 0.03037 0 0.24377 0 0 0 0 0 1.18403 0.00635 0 0 0 0 0 0 0.1571 0 0.02877 0 0 0 0 0 0 0 0 0 0.00154 0.07356 0 0. [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00057 0 0.00398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00271 [...]
+k__Bacteria|p__Chlamydiae|c__Chlamydiae|o__Chlamydiales|f__Chlamydiaceae|g__Chlamydiaceae_unclassified 0.0086 0 0 0.00178 0.02938 0.01382 0 0 0.00731 0.01486 0 0 0 0.04204 0.00422 0.01029 0.05859 0 0 0 0.01123 0 0.01123 0 0.02872 0 0 0.01834 0 0.02308 0.0052 0 0.00756 0 0 0 0 0.01329 0.00682 0 0.00278 0.00122 0.0065 0.00248 0.00073 0 0 0.01785 0.0236 0.01895 0 0.00209 0.00658 0.05938 0 0.0493 0.01307 0 0.04136 0 0.01156 0 0.00726 0 0 0.00611 0 0.00415 0 0.01226 0 0 0 0 0 0.01825 0.00498 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae 48.6247 68.46821 77.72769 62.58347 77.9948 46.04697 86.66298 51.35247 72.92321 76.87924 72.57169 66.94814 76.49018 37.84883 56.17154 45.62988 12.41622 87.80602 77.1299 33.35484 56.6224 74.55492 61.28031 52.51948 34.05779 72.96877 55.21856 52.4545 79.46966 27.71981 48.60731 61.4393 51.45077 49.76614 22.74641 71.59219 30.01547 55.38186 43.3957 41.35887 75.70089 61.35802 36.0275 73.78904 62.85096 87.06606 81.82613 6 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Oxalobacter|s__Oxalobacter_formigenes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0053 0 0 0 0 0.00233 0.00764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00204 0 0.01005 0 0 0 0.04109 0 0 0 0 0 0.00146 0 0 0 0.00403 0 0 0 0 0.03698 0 0 0 0 0 0 0 0 0 0 0.01668 0 0 0 0 0 0 0 0 0 0 0.00167 0 0 0 0 0 0 0 0 0 0.0206 0 0 0 0 0 0.00242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Coprobacillus|s__Coprobacillus_bacterium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00105 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hathewayi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_salanitronis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chloroflexi|c__Chloroflexi|o__Chloroflexales|f__Chloroflexaceae|g__Roseiflexus|s__Roseiflexus_castenholzii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.48678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_lactolyticus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter|s__Enterobacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Klebsiella|s__Klebsiella_variicola 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas 1.29494 0.11919 0 0.48954 0.01576 0.28453 0 0 0 0 0.01326 0.05425 0.00291 0.60925 0.03632 0 0 0 0 0.07136 0.00349 0 0 0.13085 0.21024 0.0072 0 0.00276 0.00708 0.12755 0 0 0 0.14164 0.02934 0 0.15139 0.051 0 0 0.00192 0 0.25025 0 0.01291 0.00652 0 0.1541 0.13399 0.00144 0 0.00782 0.00809 0 0 0 0 0 0 0 0 0.10561 0.00693 0 0.0018 0.04862 0 0.00145 0.02817 0.04079 0.07744 0.03456 0 1.1068 0.19832 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseriaceae_unclassified 0 0 0 0 0.00408 0 0 0 0 0 0 0 0 0 0 0 0 0.01043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.11787 0 0 0 0 0.02614 0 0 0 0 0 0 0 0 0.36066 0 0 0 0 0 0 0.00261 0 0 0 0.07108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03022 0 0 0 0.00733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcaceae_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Mobiluncus|s__Mobiluncus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chlamydiae|c__Chlamydiae|o__Chlamydiales|f__Chlamydiaceae 0.0086 0 0 0.00178 0.02938 0.01382 0 0 0.00731 0.01486 0 0 0 0.04204 0.00422 0.01029 0.05859 0 0 0 0.01123 0 0.01123 0 0.02872 0 0 0.01834 0 0.02308 0.0052 0 0.00756 0 0 0 0 0.01329 0.00682 0 0.00278 0.00122 0.0065 0.00248 0.00073 0 0 0.01785 0.0236 0.01895 0 0.00209 0.00658 0.05938 0 0.0493 0.01307 0 0.04136 0 0.01156 0 0.00726 0 0 0.00611 0 0.00415 0 0.01226 0 0 0 0 0 0.01825 0.00498 0.01691 0.00625 0 0.02192 0 0. [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_eggerthii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Marvinbryantia|s__Marvinbryantia_formatexigens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Verrucomicrobia|c__Verrucomicrobiae 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_difficile 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Shuttleworthia|s__Shuttleworthia_satelles 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00033 0.01985 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00092 0.03093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04057 0 0 0 0 0 0 0.00345 0 0 0 0 0 0.00082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01425 0 0.02852 0.0673 0.02739 0 0.09779 0.01221 0.00472 0 0 0 0 0.01622 0 0.00032 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Sphingomonadaceae|g__Sphingopyxis|s__Sphingopyxis_alaskensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Oceanospirillales|f__Oceanospirillaceae|g__Marinomonas|s__Marinomonas_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00131 0 0 0 0 0 0 0 0 0 0 0 0 0.0 [...]
+k__Archaea|p__Euryarchaeota|c__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Anaerofustis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_disiens 0.00053 0 0 0 0.00629 0 0 0 0.00012 0 0 0 0 0.00719 0.00191 0 0 0 0 0 0.01033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00822 0 0.00049 0 0 0.00205 0.01157 0.00012 0 0.0001 0 0 0.10627 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00135 0 0 0.02026 0 0 0 0 0.00191 0 0.00652 0 0 0 0 0 0 0 0 0.00291 0 0 0 0 0 0 0 0.00147 0 0.00043 0 0 0 0.02159 0 0 0 0.00379 0 0 0 0 0 0.00074 0.08524 0.50 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichiaceae 0.03553 0.04168 0.00124 0.09326 0.57062 0.06264 0.2035 0.41872 0.01321 0.18296 0.34274 0.08721 0.01874 0.60833 0.23721 0.01283 0.00955 0 0.26103 0.10385 0.13952 0.06034 0.1327 0.02328 0.2437 0.21889 0.00686 0.06413 0.02677 0.6495 0.00022 0.002 0.00275 0.36388 0 0.03232 19.135 0.2815 0 0 0.19108 0.02553 0.93228 0.18413 0.1303 0.05502 0.0578 0.25641 0.24242 0.08961 0.04163 0.24269 0.13001 0.00907 0.28432 0.07 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Parabacteroides|s__Parabacteroides_merdae 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03369 0.03819 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0006 0 0 0 0 0 0 0 0 0 0 0.00286 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter 10.96893 0.2808 0.00116 0.95756 0.31746 7.48077 0.04054 2.23751 0.33455 0.01828 0.10639 1.8464 0.07853 5.80339 0.42558 0.07115 0.01706 0.0006 0.03405 0.45271 1.40978 0.11311 0.07706 0.20646 0.19125 0.80737 0.02387 0.23056 0.05658 0.56541 0.0089 0.07968 0.06188 0.51963 0.56506 0 1.51082 0.64173 0.09462 0.11304 0.08131 0.05681 1.21072 0.0049 0.13787 0.04902 0.0455 0.68775 1.45 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_dorei 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_mitis 48.50827 67.78025 74.78622 58.69081 74.09292 45.74627 78.99923 32.22543 66.78622 72.48565 65.67281 64.39467 72.9133 20.22755 39.99426 42.40302 8.79915 78.84647 74.19895 24.10116 43.01594 70.58741 49.78747 26.97639 24.71618 29.10781 53.24131 43.03685 77.5837 23.05663 44.87377 52.62382 43.24297 36.23653 18.32273 68.36396 15.78877 41.76192 33.97521 32.3169 65.52472 55.96699 16 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_multiformis 0 0 0 0 0.03082 0 0 0 0.00881 0.00529 0 0.00965 0 0.08736 0.30416 0 0 0 0.00918 0 0.05482 0 0 0 0.00052 0 0 0.00623 0 0 0 0 0 0 0 0 0 0.04396 0 0 0.00343 0.00069 0.00693 0 0.00035 0 0.00222 0.10594 0.17794 0.00089 0.03915 0.00251 0.01986 0 0.16264 0.00476 0 0 0 0 0 0.00409 0.02395 0.00357 0.00437 0 0 0.0012 0.01737 0.01476 0.40486 0.02999 0 0 0.04092 0 0.02948 0 0.0118 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Klebsiella|s__Klebsiella_pneumoniae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_vaginalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0032 0 0.01466 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_amnii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae 0 0 0 0.00326 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04468 0.05094 0.29032 0 0 0.00221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07736 0 0 0 0 0 0.07257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01525 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_subflava 0.00018 0.01073 0 0.00091 0 0.00136 0 0.18354 0.24717 0.00106 0.1133 0 0.18375 0.02033 0.00886 0.06062 0.00954 0 0.26113 1.55153 0 0.02657 0.01746 0.08716 0.07142 0.23289 0.00316 0.2267 0.02478 0.07047 0.02758 0.12412 0.10898 0.0085 0 0.0409 0.17806 0.00807 0.00166 0.00887 0.28515 0.25282 0.01818 0.00235 0.2015 0.02381 0 0.3772 0.26905 0.02596 0.01508 0.03878 0.07285 0. [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Shigella|s__Shigella_sonnei 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae 0.23615 0.02938 0 0.01287 0.0265 0.4058 0 0.05927 0.02773 0.01205 0 0.0109 0.31306 0.18685 0.27686 0.02067 0.00611 0.00118 0 0 0.06261 0 0.00509 0 0.02443 0 0 0.02639 0.00143 0.03021 0.00476 0 0.00391 0 0 0 0.01747 6.4057 0 0 0.24049 0.02071 0.04263 0.17486 0.02669 0.02655 0 0.06816 0.25069 0.00725 0.01161 0.01074 0.02027 0.00924 0 0.02977 0.10632 0 0.16008 0 0.00243 0 0.02726 0 0.02695 0.05012 0.01579 0.01683 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales 0.00198 0 0 0 0.03034 0 0 0.04807 0.01988 0 0 0 0.00275 0.42293 0.02963 0.0312 0.00024 0 0 0.00207 0.17429 0 0 0 0.02361 0 0 0.0175 0.01009 0.00698 0 0.0004 0 0 0 0 0.03377 0.04692 0 0 0.0084 0.00515 0.10342 0 0.01369 0.00015 0.00138 0.02853 0.35296 0.00399 0.00131 0.01487 0.05444 0.01863 0.14204 0.00133 0.00082 0 0 0 0.00772 0.24028 0.00714 0 0.0306 0.02838 0 0.00131 0 0.02827 0.08099 0.03032 0 0.23305 0.07212 0.00042 0. [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_hylemonae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria 0 0.00161 0 0.00647 0 0 0 0 0 0 0 0 0 0 0.00428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00746 0 0 0 0.00394 0 0 0 0 0 0 0 0 0.0033 0 0 0 0 0.00352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01592 0 0 0 0.02663 0 0 0 0 0 0 0 0 0.01843 0 0.00356 0 0 0 0.04151 0 0 0.00474 0 0.00261 0 0.00433 0.00658 0 0 0.00231 0 0 0 0 0 0 0 0.00332 0 0.00149 0 0 0.0024 0 0 0 0.0063 0 0.06125 0.13704 0.07284 0.01812 0.05524 0.05975 0.04156 0.02369 0.04838 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_vestibularis 0 0.00069 0.00649 0.2416 0.74004 0.00974 3.79985 9.68146 1.09553 0.02483 0.23871 0.71186 0.21216 0.21489 1.69538 0.0075 0.04105 7.4411 0.6481 0 1.09106 0 9.30462 12.10564 0.93559 26.37593 0 1.59501 0.73057 0.05655 0.10714 0.05743 0.10809 2.65689 0.03088 1.05694 0.04481 4.34792 0.16981 0.17044 6.27702 0.3466 2.68178 0 0.02335 0.01028 2.74417 1.33132 0.50465 0.03155 0. [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma|s__Ureaplasma_parvum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Citrobacter|s__Citrobacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia|s__Escherichia_coli 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01464 0 0 0 0.00291 0 0 0 0 0 0 0 0 0.01972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00177 0 0 0 0.00599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09678 0 0 0 2.15258 0 0 0 0 0 0 0 0 0.00431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_coprocola 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28803 0 0 0 0 0 0 0 0 0 0.01474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Lentisphaerae|c__Lentisphaerae_uncl|o__Victivallales|f__Victivallaceae|g__Victivallis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Capnocytophaga|s__Capnocytophaga_ochracea 0.00042 0.01509 0 0.00174 0.09834 0 0 0.00483 0.0263 0.03623 0.03053 0.01846 0 0.1443 0.01029 0.02001 0.01222 0 0.01934 0.0421 0.07761 0.07275 0.00429 0 0.0975 0.03144 0 0.01867 0.00339 0.8223 0.00176 0 0 0.22924 0 0 1.68027 0.096 0 0 0.03555 0.01025 0.04261 0 0.01523 0.05256 0 0.29267 0.09076 0.0058 0.00887 0.05542 0.1994 0.16015 0.25982 0.04291 0.03277 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chloroflexi|c__Chloroflexi|o__Chloroflexales|f__Chloroflexaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.48678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_timonensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_rhamnosus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister|s__Dialister_microaerophilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00307 0 0 0 0 0 0 0 0 0 0 0 0 0.03727 0 0 0 0.01078 0 0 0 0 0 0.004 0 0 0 0 0 0.00719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas|s__Porphyromonas_asaccharolytica 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_oris 0.00259 0.12413 0 0.55144 1.01387 0.00296 0.2104 0.54002 0.00091 0.05057 0.20925 0.199 0.03098 0.08966 0.11099 0.10119 0.18498 0.02707 0.32121 0.21979 0.50236 0.82305 0.20852 3.26211 1.41608 0.69454 0.18355 0.37338 0 0.56465 0.0407 0.54938 1.17684 0.87331 0.44675 0.43502 0.43115 0.16535 0.34341 0.45551 0.49378 0.02669 0.64632 0.04292 0.01214 0.04352 0.46609 0.22936 0. [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Cardiobacteriales 0 0.00265 0 0.0061 0.01092 0 0.00235 0 0.02904 0.00225 0 0 0 0 0 0.02094 0.0023 0 0 0.05205 0 0.05155 0.00017 0 0.12407 0 0 0 0 0.04026 0.02688 0.00924 0.02239 0.26691 0 0 0.18108 0 0 0 0.01511 0.00024 0.04359 0 0.02515 0.05154 0 0.06145 0.01815 0.0099 0 0.01858 0.0309 0.05611 0 0.07441 0.00086 0 0.37866 0 0.02266 0 0.00121 0 0 0.01403 0 0.00093 0.01278 0.00674 0.08741 0.00843 0 0.00096 0.05126 0.00398 0.01553 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__Leuconostoc|s__Leuconostoc_citreum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Actinobacillus 0 0 0 0 0 0 0 0 0.00798 0.00171 0 0 0.00193 0 0 0 0 0.0008 0 0 0 0 0 0 0 0 0 0.00258 0 0.00272 0 0 0 0.00063 0 0 0 0 0 0 0.00157 0.00377 0 0 0.00324 0.00059 0 0 0.02128 0.00594 0.00027 0 0 0 0 0.00061 0 0 0 0 0 0 0 0 0.0126 0 0 0.00053 0 0 0 0 0 0 0 0.00063 0 0.00245 0.0041 0 0 0 0 0 0 0.00202 0 0.00403 0.00424 0.00099 0.00197 0 0 0 0 0 0 0.00046 0 0.00596 0.00112 0 0 0 0 0.00369 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Leuconostocaceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_duerdenii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oris 0 0 0 0 0.10239 0 0 0.1785 0.05548 0.01165 0.03542 0.04661 0.00348 0.34718 0.15639 0.02854 0.0014 0 0.12156 0 0.12351 0 0.0487 0.06274 0.0189 0.00429 0 0.05218 0.00423 0.00492 0 0.00919 0.00464 0.0155 0 0 0.1678 0.25134 0.13931 0.14212 0.01679 0.04402 0.06894 0 0.02501 0.01676 0.00659 0.57517 0.54964 0.02366 0.03864 0.02 0.03836 0 0.40515 0.00796 0.02639 0 0 0 0.00745 0 0.04252 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales 0.00432 0.01065 0 0.02243 0.64926 0.04795 0.00213 0.85504 0.14886 0.06641 0.05477 0.07015 0.02845 3.60763 0.32613 0.05041 0.17592 0 0.06887 0.12052 2.20824 0.05811 0.03907 0.0751 0.14947 0.09998 0 0.16138 0.01648 0.33332 0.07616 0.02958 0.02556 0.19144 0 0 0.90513 2.39144 0.03391 0.04723 0.09316 0.1211 0.47464 0 0.10973 0.02203 0.05574 0.42975 0.98647 0.06456 0.04553 0.04522 0.36105 0.13664 1.37643 0.07239 0.17672 0.03317 0.24735 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Atopobium 0 0 0 0 0.08752 0 0 0.01969 0.01543 0.00108 0 0.03191 0.0031 0.45046 0.09792 0 0 0 0 0.00609 0.73414 0 0 0.00857 0.00979 0.05312 0 0.01109 0.00232 0 0 0.0043 0.01383 0 0.00129 0 0.27711 0.19407 0.03777 0.05994 0.01034 0.00938 0.16513 0 0.00904 0.00252 0 0.08209 0.30214 0.00318 0.01333 0.00739 0.06258 0.03385 0.62005 0.00027 0.01398 0.01536 0 0 0.00405 0.30592 0.05267 0.08197 0.04163 0.01 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus|s__Haemophilus_influenzae 0.55728 2.83706 9.32546 1.69123 0.13245 4.07235 4.66963 8.4172 0.70274 3.02567 0 4.85706 7.29154 0.27579 0.25962 2.15555 0.04986 2.35371 4.79858 4.3796 0.19148 0.2996 0.87643 0 2.68484 0.21317 0.32575 9.49298 13.64911 8.09699 10.97525 0.16378 0.14586 3.94356 5.5071 2.00657 1.49825 1.11075 0 0 0.39035 2.40616 1.60613 6.5692 12.97271 2.47871 0.80372 5.03869 2.9 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Proteus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_vulgatus 0 0 0 0 0 0 0 0 0.01546 0 0 0 0 0 0 0 0 0.00118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.09225 0 0 0.0486 0 0.00223 0.00096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00726 0 0 0.01483 0 0.0017 0 0 0 0 0 0 0.0284 0.05647 0 0 0.03358 0 0 0 0 0 0 0 0 0 0 0.0213 0 0 0.15214 0 0 0 0 0.05932 0 0 0 0 0 0.00076 0 0 0 0.08904 0 0 0 0 0 0 0 0 0 0 0.04777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Kocuria|s__Kocuria_rhizophila 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_bifidum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_mortiferum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_saccharolyticum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_showae 0.00825 0.00575 0 0.00638 0.05443 0.011 0 0 0.00763 0 0.06628 0.14276 0 0.23815 0 0.01817 0.00083 0 0 0.04957 0 0 0.01028 0 0.01497 0 0 0.03014 0 0.02688 0 0 0 0.14906 0 0 0.35445 0 0 0 0.00784 0.00347 0.01716 0 0.03113 0.00568 0 0.04574 0.02247 0.00345 0.00115 0.00881 0.02781 0.0054 0.01057 0.01974 0.00073 0 0.0047 0 0 0.01526 0 0 0.00426 0.02327 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oralis 0 0 0 0 0.01656 0 0 0 0 0 0 0 0 0.01858 0.02208 0 0 0 0 0 0.00611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00628 0 0 0 0 0 0.00422 0 0.00081 0 0 0 0 0.05677 0 0 0 0 0 0 0 0 0 0.00045 0 0 0 0 0 0 0 0 0.1374 0 0 0.00273 0 0 0 0.01883 0 0.0214 0.01173 0 0 0 0 0 0.00677 0 0 0 0 0 0.0006 0.00215 0 0 0.01011 0 0 0 0.00955 0 0 0 0 0 0 0 0 0 0 0 0 0.04034 0 0 0 0.00367 0 0.07193 0.7 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Gordonibacter|s__Gordonibacter_pamelaeae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_freudenreichii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae 0 0.52567 0 1.19617 2.0353 0 0 0.18776 0.00112 0.08465 0.1095 0.02502 0.00504 0.16407 0.03834 0 0.00144 0 0.50247 0.58376 0.13584 3.01801 0.00441 5.00122 1.248 0.17376 0.07523 0.0068 0.0008 1.96861 0 0 0 0.88163 0.16632 0.20423 4.77879 0.21342 0 0 0.0845 0.01294 0.5293 0.02261 0.02859 0.05199 0.03518 2.52569 0.18197 0.00624 0.01464 0.02189 0.08029 0.0103 2.40403 0.03325 0 0.00254 0.03971 0 0.0142 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Oceanospirillales|f__Oceanospirillaceae|g__Marinomonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00131 0 0 0 0 0 0 0 0 0 0 0 0 0.00151 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi 0.00198 0 0 0 0.03034 0 0 0.04807 0.01988 0 0 0 0.00275 0.42293 0.02963 0.0312 0.00024 0 0 0.00207 0.17429 0 0 0 0.02361 0 0 0.0175 0.01009 0.00698 0 0.0004 0 0 0 0 0.03377 0.04692 0 0 0.0084 0.00515 0.10342 0 0.01369 0.00015 0.00138 0.02853 0.35296 0.00399 0.00131 0.01487 0.05444 0.01863 0.14204 0.00133 0.00082 0 0 0 0.00772 0.24028 0.00714 0 0.0306 0.02838 0 0.00131 0 0.02827 0.08099 0.03032 0 0.23305 0.07212 0.00042 0.00811 0.00132 0.24642 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Anaerofustis|s__Anaerofustis_stercorihominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfobacterales|f__Desulfobulbaceae 0 0 0 0.00196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01592 0 0 0 0.00854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00171 0 0 0 0.00296 0 0 0 0 0 0 0 0 0 0 0 0.00332 0 0 0 0 0.0024 0 0 0 0 0 0.05083 0.05645 0.0379 0.01812 0.02696 0.04879 0.00741 0.00318 0.01694 0.0093 0.03678 0.01163 0.01037 0.04726 0.0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Actinobacillus|s__Actinobacillus_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus_reuteri 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Treponemaceae|g__Treponema|s__Treponema_denticola 0 0 0 0 0.01833 0 0 0 0.00157 0 0 0 0 0.06405 0.08129 0 0 0 0 0 0.02524 0 0 0 0 0 0 0 0.0023 0.00459 0 0 0 0 0 0 0 0 0 0 0 0 0.02256 0 0.0008 0 0 0.01323 0.01969 0.00013 0 0 0 0 0.04079 0 0 0 0 0 0 0 0 0.02539 0 0 0 0.00643 0 0 0 0.00232 0.07855 0.61274 0 0 0 0 0.02105 0 0.12448 0 0.02125 0.03514 0 0 0.00427 0 0 0.0249 0 0 0 0 0 0 0.03216 0 0 0.00212 0.00142 0 0 0.16041 0.00 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Ureaplasma 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera 0 0 0 0 0.03538 0 0 0.03636 0.02553 0 0 0.03903 0.00719 0.73826 0.00263 0 0 0 0 0.07846 0.24545 0 0 0 0.01942 0.01081 0 0.01186 0.00241 0 0 0.00961 0.01247 0 0 0 0.02995 0.20878 0 0 0 0 0.30935 0 0.00172 0 0 0.01572 0.59891 0.00043 0.0122 0.00529 0.11611 0.01062 0.17874 0 0 0.01016 0 0 0.00558 0.43063 0.0745 0.12429 0.01168 0.04264 0 0.00822 0 0.09235 0 0.10022 0 0.21256 0.11528 0 0.0051 0 0.3 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_salivae 0.00171 0.00303 0 0.01534 0.0345 0 0 0 0.04646 0 0 0.11461 0.01208 1.22848 0.04625 0 0 0 0 0.06114 0.2283 0 0.00916 0 0.01624 0.03586 0 0.00512 0.0071 0.00764 0 0.00125 0.00207 0 0.00581 0 0.11298 0.40234 0 0 0.01115 0 0.32296 0 0.01569 0.00234 0 0.10865 0.89081 0 0.0067 0.01294 0.09572 0.00186 0.0691 0 0 0.05557 0 0 0.01674 0.66054 0.06867 0.17475 0.28194 0.23565 0 0.011 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Shigella|s__Shigella_dysenteriae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_unclassified 1.32535 0 0 0 0 0 0 0 0 0.01409 0 0 0 0 0 0 0 0.02314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21052 0 0 0 0 0 0 0 0 0 0 0 2.81582 0.24577 0.17983 0 0 0 0 0 0 0.0025 0 0 0 0.03454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.87798 0 0 0.01001 0.34949 0.02022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Slackia|s__Slackia_exigua 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00515 0 0 0 0 0 0 0 0.26323 0 0 0 0 0.00877 0 0 0.00383 0 0.0067 0.03353 0 0.00798 0 0 0 0.00208 0 0.00037 0 0 0.00793 0 0.0156 0 0.01032 0 0 0 0 0 0 0.00388 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Peptostreptococcaceae|g__Peptostreptococcus|s__Peptostreptococcus_anaerobius 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Rhizobiaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.30885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Psychrobacter|s__Psychrobacter_cryohalolentis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_denitrificans 0 0 0 0.00381 0 0 0 0 0.09237 0 0 0 0 0 0 0.01698 0 0 0 0 0 0 0 0 0.02094 0 0 0 0 0.00194 0.09853 0 0 0 0 0 0 0 0 0 0 0.00174 0.00872 0.00324 0.0096 0.01638 0 0 0 0 0 0 0 0 0 0.01159 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0094 0 0 0 0 0 0 0 0 0.04632 0 0 0 0 0 0 0.03403 0 0.06024 0 0 0 0.00177 0 0 0 0.01006 0 0 0.05218 0 0.00442 0 0 0.08752 0 0.02649 0 0 0.05025 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae|g__Campylobacter|s__Campylobacter_rectus 0.00123 0 0 0.00174 0.01538 0.00024 0 0 0 0.0028 0 0.00466 0 0.11108 0.08221 0 0 0 0 0 0.00873 0 0.00251 0 0.00597 0 0 0.00167 0.00173 0.08653 0 0 0 0.01294 0 0 0.00396 0 0 0 0 0.01606 0 0 0.00161 0 0 0.04258 0.02346 0.00152 0.00174 0 0.00456 0 0.04889 0.00432 0.0005 0 0 0 0 0 0 0 0 0.00173 0 0.00366 0 0 0.00338 0.009 0 0.33486 0 0.00169 0.00029 0 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Peptoniphilus|s__Peptoniphilus_harei 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae 0.00237 0.0031 0 0.46751 0.00041 0 0.0455 1.25189 0.07238 0.15505 0.95808 0.00472 0.00998 0.66045 0.1451 0.07184 7.77252 0.00663 0.44181 0.99168 0.00157 0.50452 0.03207 0.60465 0.11351 0.33585 0.11374 0.04042 0 0.40754 0.00753 0.27871 0.8628 0.79766 0.58174 0.02227 0.56099 0.04794 0 0 0.08072 0.14035 0.46498 0.02527 0.07635 0.32041 0.20762 0.32038 0.90115 0.20866 0.00417 0.42949 0.00942 3.24265 0.0 [...]
+k__Bacteria|p__Thermi|c__Deinococci|o__Deinococcales|f__Deinococcaceae|g__Deinococcus|s__Deinococcus_radiodurans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Brucellaceae|g__Brucella|s__Brucella_ceti 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Bacillales_uncl|g__Gemella|s__Gemella_haemolysans 4.59311 4.85915 9.18158 1.36775 1.85191 9.778 3.21338 5.05019 8.49149 0.26491 4.64825 1.19881 3.52901 14.97021 1.87392 4.14504 2.57698 7.22983 6.70289 3.74918 3.88174 1.36155 15.01035 2.43227 9.38771 0.46554 16.19844 10.01406 3.32675 5.96495 2.39247 1.13131 0.76073 0.56168 0.81046 10.86752 0.39749 2.66024 2.52881 2.42349 13.57039 2.52034 0.2279 3.70224 7.1947 0.67057 9.46695 6.81833 3. [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_aeruginosa 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Verrucomicrobia 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Megasphaera|s__Megasphaera_micronuciformis 0 0 0 0 0.03538 0 0 0.03636 0.02553 0 0 0.03903 0.00719 0.73826 0.00263 0 0 0 0 0.07846 0.24545 0 0 0 0.01942 0.01081 0 0.01186 0.00241 0 0 0.00961 0.01247 0 0 0 0.02995 0.20878 0 0 0 0 0.30935 0 0.00172 0 0 0.01572 0.59891 0.00043 0.0122 0.00529 0.11611 0.01062 0.17874 0 0 0.01016 0 0 0.00558 0.43063 0.0745 0.12429 0.01168 0.04264 0 0.00822 0 0.09235 0 0.10022 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_hydrogenalis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter|s__Enterobacter_cancerogenus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Dorea|s__Dorea_formicigenerans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Mannheimia|s__Mannheimia_haemolytica 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0006 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_aureus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia|s__Escherichia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10087 0 0.00251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis 0.00196 0.00637 0 0.00215 0.10584 0.0116 0 0.03405 0.03431 0.01101 0 0.00231 0.00999 0.40559 0.1102 0.01052 0.11373 0 0.06333 0.02072 0.37394 0.01515 0.02408 0 0.02623 0 0 0.07026 0.00811 0.12953 0.07616 0.00558 0 0.00804 0 0 0.0372 0.05215 0 0.0035 0.00494 0.03828 0.04714 0 0.02654 0.00013 0.02094 0.09932 0.1196 0.03045 0.00536 0.02619 0.0731 0.02375 0.35123 0.05448 0.16806 0.00811 0.22427 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Acidovorax|s__Acidovorax_unclassified 0 0 0 0.00326 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04468 0.05094 0.29032 0 0 0.00221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07736 0 0 0 0 0 0.07257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_parasanguinis 0 0.02794 0.09841 0.10953 1.03579 6.00E-05 0.81328 1.02199 1.04017 0.04351 0 0.56318 0.20571 4.78197 1.378 0.02337 0.05373 0.09709 0.11666 0.63068 4.90577 0.00887 0.10564 3.15511 0.30521 5.087 0.09883 0.06915 0.0924 0.18712 0.00353 0.49721 0.52976 0.01529 0.41957 0.03266 0.6248 2.03476 0.82618 0.81068 0.13435 0.03031 3.84142 0.00292 0.01263 0.04908 0.22215 0.91894 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_comes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Dialister|s__Dialister_invisus 0 0 0 0 0.01047 0 0 0.00124 0.00602 0.00375 0 0.00471 0 0.16966 0.0635 0.00282 0 0 0.00123 0 0.06063 0 0 0 0 0 0 0.01561 0 0.03667 0 0 0 0 0 0 0.09203 0.05164 0.00634 0.01751 0 0.01838 0.01243 0 0.01324 0.00357 0.00052 0.01659 0.272 0.00581 0.06075 0.01666 0.02135 0 0.05441 0 0 0 0 0 0 0 0.05021 0 0.00574 0 0 0.00202 0.00403 0.01548 0.08622 0.02003 0 1.61747 0.11258 0.00344 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Shigella|s__Shigella_boydii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Xanthomonadales|f__Xanthomonadaceae|g__Xanthomonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Anaerotruncus|s__Anaerotruncus_colihominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Herbaspirillum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales 0.00237 0.0031 0 0.47078 0.00041 0 0.0455 1.25189 0.07238 0.15505 0.95808 0.00472 0.00998 0.66045 0.15575 0.07184 7.77252 0.05131 0.49275 1.282 0.00157 0.50452 0.03427 0.60465 0.11351 0.33585 0.11374 0.04042 0 0.40754 0.00753 0.27871 0.8628 0.79766 0.58174 0.02227 0.56099 0.04794 0 0 0.08072 0.14035 0.46498 0.02527 0.07635 0.32041 0.20762 0.32038 0.90115 0.20866 0.00417 0.42949 0.17046 3.24265 0.02705 0.28382 0.04747 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Pasteurella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00074 0 0 0 0 0.00012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00063 0 0 7.00E-05 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Leptotrichales|f__Leptotrichales_unclassified 0.11231 0.05311 0 0.20558 0.43094 1.02611 0.04053 0.82015 0.12924 0.25184 0.3573 0.14357 0.24332 2.23791 0.25851 0.08748 0.07775 0 0.33121 0.22712 0.21732 0.12017 0.23021 0 0.27316 0.15134 0.08149 0.24642 0.07653 0.28447 0.02479 0.04434 0.04016 0.19289 0 0.05496 2.98239 0.28108 0.09705 0 0.01549 0.09027 1.46494 0.06036 0.27784 0.1029 0.05299 0.21391 0.80269 0.13942 0.02536 0.21334 0.50543 0.12981 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Anaerostipes|s__Anaerostipes_caccae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_jeikeium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Cellulophaga|s__Cellulophaga_unclassified 0.00372 0.00433 0.0003 0.00101 0 0.00243 0 0 0 0.00706 0 0.01425 0.00503 0.04321 0 0.0091 0.00484 0 0 0 0 0 0.00814 0 0.00434 0 0 0.01428 0 0.00777 0.00441 0.00759 0 0 0 0 0.01853 0 0 0 0 0.00627 0.00729 0.00769 0.00309 0.00823 0 0 0 0.00688 0.00123 0.00952 0 0.01313 0 0.03094 0.00979 0 0.0117 0 0.01005 0 0 0 0 0 0.00754 0.00264 0 0.00307 0 0 0 0 0 0.00422 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Micrococcus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteria|o__Sphingobacteriales 0.02211 0.00693 0.00087 0.01783 0.01763 0.05948 0 0 0.00273 0.02379 0 0.00891 0.11084 0.06976 0 0.07212 0.00567 0 0 0.01952 0 0 0.00799 0 0.0271 0 0 0.0024 0.00944 0.02933 0.01613 0.00567 0.00603 0.03711 0 0.02216 0.52458 0.01206 0 0 0.01399 0.0038 0.01629 0.24944 0.01072 0.00867 0 0.01667 0.02555 0.01598 0.03123 0.01665 0.05263 0.00459 0 0.03595 0.01213 0 0.05284 0 0.00187 0 0.01221 0 0.01278 0.00488 0 0.02217 0.0087 [...]
+k__Bacteria|p__Synergistetes|c__Synergistia|o__Synergistales|f__Synergistaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes 0.00022 0 0 0 0.03474 0.00015 0 0 0.00157 0 0 0 0 0.1037 0.11441 0 0 0 0.00155 0 0.04833 0 0 0 0 0 0 0.00061 0.0023 0.00459 0 0 0 0 0 0 0 0 0 0 0 0 0.02256 0 0.00253 0 0 0.0299 0.04255 0.00061 0 0 0.00362 0 0.12051 0 0 0 0 0 0 0 0 0.02539 0 0 0 0.0078 0 0 0 0.0081 0.07855 0.94755 0 0 0 0 0.02778 0 0.16843 0 0.03152 0.06861 0 0 0.00427 0 0 0.05048 0 0 0 0 0 0.01027 0.03653 0 0 0.00931 0.00686 0 0 0.2626 0.00028 0 0 0.00951 0 0 0 0 0 0.04451 0.52983 1.73866 1.05 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Roseburia|s__Roseburia_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Finegoldia|s__Finegoldia_magna 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Cellulophaga 0.00372 0.00433 0.0003 0.00101 0 0.00243 0 0 0 0.00706 0 0.01425 0.00503 0.04321 0 0.0091 0.00484 0 0 0 0 0 0.00814 0 0.00434 0 0 0.01428 0 0.00777 0.00441 0.00759 0 0 0 0 0.01853 0 0 0 0 0.00627 0.00729 0.00769 0.00309 0.00823 0 0 0 0.00688 0.00123 0.00952 0 0.01313 0 0.03094 0.00979 0 0.0117 0 0.01005 0 0 0 0 0 0.00754 0.00264 0 0.00307 0 0 0 0 0 0.00422 0 0 0.00661 0 0.01159 0 0 0 0. [...]
+k__Bacteria|p__Proteobacteria|c__Epsilonproteobacteria|o__Campylobacterales|f__Campylobacteraceae 10.96893 0.2808 0.00116 0.95756 0.31746 7.48077 0.04054 2.23751 0.33455 0.01828 0.10639 1.8464 0.07853 5.80339 0.42558 0.07115 0.01706 0.0006 0.03405 0.45271 1.40978 0.11311 0.07706 0.20646 0.19125 0.80737 0.02387 0.23056 0.05658 0.56541 0.0089 0.07968 0.06188 0.51963 0.56506 0 1.51082 0.64173 0.09462 0.11304 0.08131 0.05681 1.21072 0.0049 0.13787 0.04902 0.0455 0.68775 1.45008 0.03001 0.078 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Catenibacterium|s__Catenibacterium_mitsuokai 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Synechococcales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Catonella|s__Catonella_morbi 0 0.00075 0 0 0 0.03071 0 0 0 0 0 0.00479 0 0.04464 0.00772 0.00083 0 0 0 0 0.00098 0 0 0 0.00644 0 0 0.00649 0 0.02084 0 0 0 0 0 0 0.03699 0 0 0.00031 0 0.00969 0 0 0.00552 0.00091 0 0.02243 0.02377 0.00149 0 0 0 0 0 0.00085 0 0 0 0 0 0 0 0 0 0.00301 0 0.00356 0 0.00305 0.02399 0 0 0.18276 0 0.00373 0.0095 0 0 0 0.03456 0 0.02051 0.00102 0 0 0 0 0 0.02252 0 0 0.0166 0 0 0.0671 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Haemophilus 14.66745 13.12723 11.27208 12.19261 1.16274 16.83253 6.53615 12.03921 9.45597 13.73128 6.1798 21.76634 12.50509 5.72168 17.87255 21.43524 43.01924 3.05767 6.5532 36.59092 6.38347 9.35244 9.59902 4.38483 28.34121 4.43356 22.81801 23.5969 15.45737 36.94757 32.13533 14.71946 13.0732 25.67252 8.00933 6.83568 4.57522 9.32041 24.46406 24.10436 3.33727 25.45486 9.13197 7.77191 15.28754 7.564 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteria|o__Acidobacteriales|f__Acidobacteriaceae|g__Granulicella|s__Granulicella_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Brucellaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_flavescens 0 0.08596 0 0.14241 0 0.0019 0 0.73416 0.88863 0 0.60883 0 0.05207 1.06038 0.15317 1.02228 0.06515 0.00164 0.46615 7.34148 0 0.49641 0.05134 0.4127 0.85983 1.65624 0 1.46896 0.24277 1.24847 0.3669 0.91526 0.90211 0.03081 0 0.13599 3.7791 0.20066 0 0 1.0554 1.08187 0.26537 0.00908 2.44614 0.31517 0.07916 2.84641 1.09348 0.48437 0.0527 0.50752 1.56451 1.88985 0 0.23571 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Kingella|s__Kingella_unclassified 0.00052 0 0 0 0.00096 0.00068 0 0 0 0 0 0 0 0.03814 0.01848 0.0216 0 0 0 0.00587 0 0 0 0 0 0 0.03437 0 0 0 0.01047 0 0 0 0 0.01561 0 0.00129 0.00683 0 0 0.01045 0.00835 0.00237 0.00531 0 0 0 0 0.00072 0 0 0 0.01704 0 0.03679 0.00025 0 0.00039 0 0 0 0.00457 0 0.00843 0 0 0 0 0 0 0.02014 0 0.06078 0 0.00995 0.00325 0.00253 0 0 0 0.00633 0 0 0 0.05252 0 0 0 0.00216 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Alkaliphilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00957 0 0 0 0 0 0 0 0 0 0.01909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00198 0.01412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00948 0.00095 0 0 0 0 0 0 0 0 0.00311 0 0 0 0 0 0 0 0 0 0 0.00246 0 0.0057 0 0 0 0.00194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__Coprococcus|s__Coprococcus_eutactus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium 0 0 0 0 0 0 0 0.00416 0 0 0 0 0 0.00869 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.00646 0 0 0 0 0.01404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.37854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00049 0.01357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00172 0 0 0 0 0 9.00E-05 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_ventriosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae|g__Rhodobacter|s__Rhodobacter_sphaeroides 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces|s__Actinomyces_viscosus 0.00328 0.16501 0 2.97839 0.68971 0.01489 0.24067 0.19141 0.00494 0.09435 1.43785 0.09882 0.03862 0.09584 0.14692 0.06225 0.57532 0.04635 0.64372 0.59261 1.33931 0.52188 0.12357 7.106 0.63074 1.57707 0.28182 0.1082 0.00165 2.43795 0.05275 1.05177 3.4933 0.51836 0.9611 0.39812 0.54036 0.10819 0.74077 0.89267 0.58538 0.05749 0.9172 0.10916 0.00523 0.06271 0.24579 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria 0.45404 1.00083 0.0419 7.08331 5.27968 0.05615 0.86404 4.49821 1.38292 0.64526 2.9165 2.67974 1.0069 1.96583 15.30618 2.9374 11.95907 1.1721 4.46024 9.45821 9.94833 7.72838 3.5603 35.57909 15.97778 11.94679 2.58726 1.85619 0.35582 10.15422 1.63262 10.49691 21.35723 3.52209 64.13686 6.09826 13.44547 8.14961 26.71757 29.42416 2.34325 3.38195 39.46043 0.34199 0.1319 0.60197 1.83485 5.63332 2.07359 0.20982 1.36311 11.16588 5.60276 18.92792 19.1 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01464 0 0 0 0.00291 0 0 0 0 0 0 0 0 0.01972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10087 0 0.00428 0 0 0 0.00599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09678 0 0 0 2.15258 0 0 0 0 0 0 0 0 0.00431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Actinomycetaceae|g__Actinomyces 0.43218 0.31006 0 3.68494 1.83269 0.04241 0.4515 0.83235 0.02925 0.17362 1.6471 0.36189 0.08236 0.61679 0.3014 0.9017 1.26811 0.09587 0.98518 1.52932 3.27922 1.61997 0.34727 11.18826 2.81749 2.28752 0.46537 0.60254 0.00853 3.01456 0.09714 1.6695 4.91878 1.53328 1.54911 0.83738 0.97151 0.41691 1.08936 1.36069 1.11031 0.09341 1.78385 0.17009 0.0323 0.1124 0.74927 0.53441 0.5194 0.08967 0.1 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Lachnospiraceae|g__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.21559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_marshii 0.00049 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00047 0 0 0.01412 0.02454 0 0.00032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.27652 0 0 0 0 0 0 0.00211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00028 0 0 0 0 0 0 0 0.00721 0 0 0 0 0 0 0 0 0 0 0 0 0.00365 0 0 0.02027 0 0.03807 0.05113 0.07698 0 0.18542 0.08934 0.13857 0.0003 0 0.00 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae 0 0.00161 0 0.00451 0 0 0 0 0 0 0 0 0 0 0.00428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00746 0 0 0 0.00394 0 0 0 0 0 0 0 0 0.0033 0 0 0 0 0.00352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01809 0 0 0 0 0 0 0 0 0.01843 0 0.00356 0 0 0 0.04151 0 0 0.00303 0 0.00261 0 0.00136 0.00658 0 0 0.00231 0 0 0 0 0 0 0 0 0 0.00149 0 0 0 0 0 0 0.0063 0 0.01041 0.08059 0.03494 0 0.02828 0.01096 0. [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00054 0.00043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Faecalibacterium|s__Faecalibacterium_unclassified 0 0 0 0 0 0 0 0.00416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00077 0 0 0 0 0 9 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter_junii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00574 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00039 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Acidobacteria|c__Acidobacteria|o__Acidobacteriales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00043 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_accolens 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia|s__Burkholderia_unclassified 0 0 0 0.00876 0 0 0 0.01604 0 0 0 0 0 0 0 0 0.01559 0.00484 0 0.03418 0 0 0 0 0 0 0 0 0 0.0104 0 0 0.00546 0.00524 0 0 0 0 0 0 0 0 0 0.002 0.0039 0 0 0.00488 0.01074 0.00301 0 0.00298 0 0.0122 0 0.01892 0 0 0.0075 0 0 0 0 0 0 0.00837 0 0 0 0 0 0 0 0 0.01115 0 0 0 0.00442 0 0.00506 0 0 0 0 0 0 0.00443 0 0.01614 0 0 0 0 0 0 0 0 0.0026 0.0019 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Parvimonas|s__Parvimonas_micros 0.00132 0 0 0 0.04151 0 0 0.03405 0.01145 0 0 0 0 0.15277 0.07031 0.0045 0.00333 0 0.06333 0.01223 0.17693 0 0.01317 0 0.00491 0 0 0.01724 0.00147 0.10274 0 0 0 0 0 0 0 0 0 0.0035 0.00494 0.0279 0.01634 0 0.01702 0.00013 0.00167 0.03128 0.0203 0.02906 0.00407 0.01803 0.02166 0.00398 0.17183 0.01976 0.02257 0 0 0 0 0 0.01487 0.13222 0.00073 0.00577 0 0.0090 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Acidovorax 0 0 0 0.00326 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04468 0.05094 0.29032 0 0 0.00221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.16103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07736 0 0 0 0 0 0.07257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01525 0 0 0 0 0 0 [...]
+k__Bacteria|p__Chlamydiae 0.0086 0 0 0.00178 0.02938 0.01382 0 0 0.00731 0.01486 0 0 0 0.04204 0.00422 0.01029 0.05859 0 0 0 0.01123 0 0.01123 0 0.02872 0 0 0.01834 0 0.02308 0.0052 0 0.00756 0 0 0 0 0.01329 0.00682 0 0.00278 0.00122 0.0065 0.00248 0.00073 0 0 0.01785 0.0236 0.01895 0 0.00209 0.00658 0.05938 0 0.0493 0.01307 0 0.04136 0 0.01156 0 0.00726 0 0 0.00611 0 0.00415 0 0.01226 0 0 0 0 0 0.01825 0.00498 0.01691 0.00625 0 0.02192 0 0.00709 0.00878 0.00615 0.03327 0.04378 0.00473 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_symbiosum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylocystaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0006 [...]
+k__Bacteria|p__Tenericutes|c__Mollicutes|o__Mycoplasmatales|f__Mycoplasmataceae|g__Mycoplasma|s__Mycoplasma_hominis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00054 0.00043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae|g__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteria|o__Sphingobacteriales|f__Sphingobacteriaceae|g__Sphingobacteriaceae_unclassified 0.02211 0.00693 0.00087 0.01783 0.01763 0.05948 0 0 0.00273 0.02379 0 0.00891 0.11084 0.06976 0 0.07212 0.00567 0 0 0.01952 0 0 0.00799 0 0.0271 0 0 0.0024 0.00944 0.02933 0.01613 0.00567 0.00603 0.03711 0 0.02216 0.52458 0.01206 0 0 0.01399 0.0038 0.01629 0.24944 0.01072 0.00867 0 0.01667 0.02555 0.01598 0.03123 0.01665 0.05263 0.00459 0 0.03595 0.01213 0 0.05 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales|f__Coriobacteriaceae|g__Collinsella|s__Collinsella_stercoris 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes 62.27061 77.80272 88.676 68.78131 89.54432 63.94294 91.10696 59.53029 84.53347 83.8614 80.49739 72.44313 82.14491 66.77703 61.19579 51.03451 18.34821 95.65921 84.69907 39.93967 75.2118 78.41517 84.15518 56.85813 46.37482 79.23877 71.85508 68.22141 83.10644 40.34794 54.18253 67.98158 57.24978 64.49698 24.4652 85.37273 35.42353 65.62874 47.92535 45.54701 90.26121 65.16823 42.99919 89.55538 77.88778 89.32038 94.0796 74.08998 71.41346 76.23354 90.62477 60.26595 59.0 [...]
+k__Bacteria|p__Fusobacteria 0.8918 0.17516 0.00261 0.42153 1.16779 1.86694 0.24885 1.73802 0.17229 0.82071 1.44713 0.74283 0.34327 3.43673 0.54388 0.27487 0.29031 0 0.61777 0.63574 0.77647 0.49999 0.45632 0.02328 0.83239 0.45021 0.10599 0.67786 0.1553 1.56658 0.06398 0.06809 0.06081 1.02775 0 0.08728 25.71793 0.68235 0.23825 0.20642 0.36521 0.14501 2.56154 0.65764 0.67671 0.26985 0.19743 0.58653 1.12175 0.46401 0.15508 0.61546 0.98386 0.22593 0.96068 5.44901 0.5949 0.13894 1.86885 0.0033 [...]
+k__Bacteria|p__Actinobacteria 0.45404 1.00083 0.0419 7.08331 5.27968 0.05615 0.86404 4.49821 1.38292 0.64526 2.9165 2.67974 1.0069 1.96583 15.30618 2.9374 11.95907 1.1721 4.46024 9.45821 9.94833 7.72838 3.5603 35.57909 15.97778 11.94679 2.58726 1.85619 0.35582 10.15422 1.63262 10.49691 21.35723 3.52209 64.13686 6.09826 13.44547 8.14961 26.71757 29.42416 2.34325 3.38195 39.46043 0.34199 0.1319 0.60197 1.83485 5.63332 2.07359 0.20982 1.36311 11.16588 5.60276 18.92792 19.14223 2.19913 0.551 [...]
+k__Bacteria|p__Lentisphaerae|c__Lentisphaerae_uncl|o__Victivallales|f__Victivallaceae|g__Victivallis|s__Victivallis_vadensis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_nexile 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Escherichia|s__Escherichia_fergusonii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales 0.23888 0.03745 0.00487 0.03336 1.79703 0.40683 0.1291 1.51125 1.75788 0.08056 0.1169 0.35615 0.4374 12.3752 2.66354 0.25323 0.02348 0.00805 0.28328 0.30167 5.80263 0.04305 0.2423 0.09969 0.45622 0.81624 0.03787 0.428 0.15816 0.66393 0.02141 0.22482 0.21673 0.08978 0.10752 0.0313 1.15429 12.58215 0.15741 0.1701 0.47995 0.32816 1.33549 0.17674 0.25063 0.16528 0.19381 2.50901 6.80915 0.20933 0.43655 1.10402 2.00971 1.01771 5.4182 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Moraxellaceae|g__Psychrobacter|s__Psychrobacter_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_coprophilus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_rectale 0 0 0 0 0 0 0 0 0.00344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.56725 0 0 0.00882 0 0.00361 0 0 0 0 0.0052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00067 0 0 0.00038 0 0 0 0 0 0 0.13642 0 0 0 0 0.18208 0.00602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Fusobacteria|c__Fusobacteria|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_periodonticum 0 0 0 0 0.02621 0 0 0.08054 0.00143 0.0105 0.05986 0 0.0224 0.06646 0.00162 0.00152 0.00993 0 0 0.01847 0.02547 0.00343 0 0 0.0151 0 0 0.02286 0.00191 0.02731 0 0 0 0.00114 0 0 0.00259 0.04347 0 0 0.00819 0.00135 0.01992 0 0.01335 0.00138 0.0185 0.01419 0.0023 0.11674 0.01103 0.01183 0.0173 0 0.1221 0.03492 0.00345 0 0.02675 0 0.00064 0 0.00793 0 0.00117 0 0. [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Frankiaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_unclassified 0 0.00073 0 0.0041 0.00177 0 8.00E-05 0.09974 0 0.00822 0 0.00292 0 0.00214 0 0.00343 0 0.001 0.00665 0 0 0.03333 0 0.07365 0.00697 0.02597 0.01208 0.00177 0 0 0 0.00175 0.00641 0.00259 0.04337 0.00225 0 0.0414 0 0.00602 0.00917 0.00128 0 0.01905 0.00357 0 0.00951 0.00108 0.01281 0.00131 0 0 0.01366 0.00615 0 0 0 0 0.04521 0 0 0.01013 0.00267 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Enterobacter|s__Enterobacter_cloacae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales 14.73959 13.13172 11.27208 12.19513 1.48573 16.91005 6.55959 12.86638 9.51561 14.09715 6.28749 21.77649 12.58058 5.89241 17.91019 21.54244 43.38942 3.0594 6.89242 36.7196 6.40583 9.78542 9.62878 4.38483 28.46039 4.43356 22.84557 23.91193 15.46685 37.15677 32.15682 14.76406 13.10649 25.98483 8.00933 6.86384 6.02745 9.56885 24.47038 24.10611 3.52508 25.8212 9.16416 7.78113 15.57739 7.67491 2.66117 8.60502 12.72975 21.64 [...]
+k__Bacteria|p__Lentisphaerae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_saprophyticus 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales|f__Treponemaceae|g__Treponema 0.00022 0 0 0 0.03474 0.00015 0 0 0.00157 0 0 0 0 0.1037 0.11441 0 0 0 0.00155 0 0.04833 0 0 0 0 0 0 0.00061 0.0023 0.00459 0 0 0 0 0 0 0 0 0 0 0 0 0.02256 0 0.00253 0 0 0.0299 0.04255 0.00061 0 0 0.00362 0 0.12051 0 0 0 0 0 0 0 0 0.02539 0 0 0 0.0078 0 0 0 0.0081 0.07855 0.94755 0 0 0 0 0.02778 0 0.16843 0 0.03152 0.06861 0 0 0.00427 0 0 0.05048 0 0 0 0 0 0.01027 0.03653 0 0 0.00931 0.00686 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Bacteroidaceae|g__Bacteroides|s__Bacteroides_helcogenes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_uncl|g__Blautia|s__Blautia_hansenii 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_thermophilus 0 0 0 0.01142 0.0113 0 0.75546 0.01957 0.0087 0 0 0.05327 0.00462 0.00811 0.01926 0 0 0 0 0 0.09722 0 0 0.18368 0 0.11622 0.00675 0.00071 0 0 0 0.00165 0 0.01875 0 0.01289 0.00784 0.10386 0 0.00627 0.00131 0 0.31039 0 0.00148 0 0.00351 0.01013 0.12267 0.00475 0.00967 0 0 0.01039 0 0 0 0 0 0 0.00113 0.14046 0.03225 0.03279 0.00777 0.00073 0 0.00476 0.00106 0.01565 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Desulfovibrionales|f__Desulfovibrionaceae|g__Desulfovibrio|s__Desulfovibrio_desulfuricans 0 0.00161 0 0.00451 0 0 0 0 0 0 0 0 0 0 0.00428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00746 0 0 0 0.00394 0 0 0 0 0 0 0 0 0.0033 0 0 0 0 0.00352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01843 0 0.00356 0 0 0 0.04151 0 0 0.00303 0 0.00261 0 0.00136 0.00658 0 0 0.00231 0 0 0 0 0 0 0 0 0 0.00149 0 0 0 0 0 0 0.0063 0 0. [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Streptococcaceae|g__Streptococcus|s__Streptococcus_peroris 0 0.00532 0.00507 0.00245 0.2419 0.00057 0.01939 0.07819 0.229 0.01608 0 0.0035 0.02432 0.13695 0.11927 0.0545 0.02886 0.02247 0.00214 0.14262 1.09345 0 0.03451 0 0.07613 0.16886 0 0.07974 0.02197 0.05673 0.04513 0.06922 0.05336 0.01056 0 0.01485 0.06579 0.15791 0.0762 0.07365 0.04665 0.16472 0.05256 0.0019 0.01144 0.04134 0.00804 0.07689 0.08515 0.02892 0.03339 0.08562 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae 0 0 0 0.00687 0 0 0 0 0 0 0 0 0 0 0 0 0.00125 0 0 0.01576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21938 0 0 0 0 0 0 0 0 0 0.00058 0.00084 0 0 0 0 0.00053 0 0 0 0 0.00138 0 0 0 0.00355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Veillonellaceae|g__Selenomonas|s__Selenomonas_unclassified 1.11759 0.09078 0 0.15461 0.00326 0.25783 0 0 0 0 0 0 0.00291 0.34629 0.00794 0 0 0 0 0.02155 0.00349 0 0 0.0131 0 0.0072 0 0.0008 0.00708 0 0 0 0 0 0.02934 0 0 0.03598 0 0 0.00192 0 0.09814 0 0.00718 0.00321 0 0 0.0656 0.00122 0 0.00782 0.00567 0 0 0 0 0 0 0 0 0.10482 0.00666 0 0.0018 0.01026 0 0.00145 0 0.02839 0 0.03408 0 0 0.04991 0 0 0 0.19329 0 0 0 0.02984 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Negativicutes|o__Selenomonadales|f__Acidaminococcaceae|g__Acidaminococcus|s__Acidaminococcus_fermentans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Anaerococcus|s__Anaerococcus_tetradius 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Spirochaetes|c__Spirochaetes|o__Spirochaetales 0.00022 0 0 0 0.03474 0.00015 0 0 0.00157 0 0 0 0 0.1037 0.11441 0 0 0 0.00155 0 0.04833 0 0 0 0 0 0 0.00061 0.0023 0.00459 0 0 0 0 0 0 0 0 0 0 0 0 0.02256 0 0.00253 0 0 0.0299 0.04255 0.00061 0 0 0.00362 0 0.12051 0 0 0 0 0 0 0 0 0.02539 0 0 0 0.0078 0 0 0 0.0081 0.07855 0.94755 0 0 0 0 0.02778 0 0.16843 0 0.03152 0.06861 0 0 0.00427 0 0 0.05048 0 0 0 0 0 0.01027 0.03653 0 0 0.00931 0.00686 0 0 0.2626 0.00028 0 0 0.00951 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Porphyromonadaceae|g__Porphyromonas 0 0 0 0 0.23614 0 0 0 0.03219 0.00663 0 0 0 0.08904 0.59114 0 0.00383 0 0.05204 0 0.2545 0 0.00319 0 0 0 0 0 0.01105 0.27709 0.00154 0 0 0 0 0 0.09623 0 0 0 0 0.15668 0.05974 0 0.00932 0 0.04629 0.25362 0.20541 0.01758 0 0.01499 0 0.01383 0.75379 0 0.00073 0 0 0 0 0.00269 0 0.14188 0 0 0 0.00474 0 0.0025 0.00254 0.15616 0.78651 1.12376 0 0.13041 0.00198 0 0.22713 0 0.7734 0 0.18776 0.505 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales 0.00908 0.00317 0 0.01654 0.00187 0 0 0.0179 0.00484 0.00265 0 0.00271 0 0.02947 0.00443 0.00351 0.0054 0 0.02423 0.04544 0.02005 0 0.00266 0 0.00839 0.0255 0.01038 0 0 0.01704 0 0.00188 0.01203 0.01758 0 0.00246 0 0.0043 0.00404 0 0.0017 0 0.02415 0.00087 0.00036 0 0 0.01251 0.03795 0.00092 0.00186 0.00111 0.00805 0.00764 0.09625 0.00414 0 0 0.00288 0 0.00897 0.02274 0 0.06521 0 0.00646 0.00353 0 0.01609 0.00906 0.0120 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Pasteurella|s__Pasteurella_multocida 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.00E- [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiaceae|g__Clostridium|s__Clostridium_leptum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae|g__Holdemania|s__Holdemania_filiformis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus_pseudintermedius 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__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.0033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014 0 0 0.02719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Sutterellaceae|g__Sutterella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.00E-05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_buccae 0 0 0 0 0.01301 0 0 0 0 0 0 0 0 0.07032 0.00589 0 0 0 0 0 0.00086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0141 0 0 0 0 0 0.00377 0.05844 0.00068 0 0 0 0 0.0405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05955 0 0 0.0017 0 0 0 0.01233 0 0 0.01034 0 0 0 0 0 0.01746 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03448 0 0 0 0 0 0 0 0 0 0 0 0 0.01678 0 0.93255 0 0.00114 0.03993 0 0.00414 0 0.04942 0.1 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_actinomycetemcomitans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00019 0 0 0 0 0 0.00096 0 0 0 0 0 0 0 0.00169 0 0 0 0 0 0.0011 0 0 0 0 0 0 0 0.0021 0 0 0 0 0 0 0 0 0 0 0 0.22567 0 0 0 0 0 0 0 0.0024 0 0 0.00145 0 0 0.00101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0124 0 0.00393 0.01029 0 0 0 0.00436 0.00346 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Clostridiales_Family_XI_Incertae_Sedis|g__Parvimonas 0.00132 0 0 0 0.04151 0 0 0.03405 0.01145 0 0 0 0 0.15277 0.07031 0.0045 0.00333 0 0.06333 0.01223 0.17693 0 0.01317 0 0.00491 0 0 0.01724 0.00147 0.10274 0 0 0 0 0 0 0 0 0 0.0035 0.00494 0.0279 0.01634 0 0.01702 0.00013 0.00167 0.03128 0.0203 0.02906 0.00407 0.01803 0.02166 0.00398 0.17183 0.01976 0.02257 0 0 0 0 0 0.01487 0.13222 0.00073 0.00577 0 0.00909 0 0.00155 0.09555 0 [...]
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Coriobacteriales 0 0 0 0 0.08752 0 0 0.01969 0.01543 0.00108 0 0.03191 0.0031 0.45046 0.09911 0 0 0 0 0.00609 0.73414 0 0 0.00857 0.00979 0.05312 0 0.01109 0.00232 0 0 0.0043 0.01383 0 0.00129 0 0.27711 0.19407 0.03777 0.05994 0.01034 0.00938 0.16513 0 0.00904 0.00252 0 0.08209 0.30295 0.00318 0.01333 0.00739 0.06258 0.03385 0.62005 0.00027 0.01398 0.01536 0 0 0.00405 0.30592 0.05267 0.08197 0.04163 0.01586 0 0.00076 0.00214 0.04099 0.02 [...]
+k__Bacteria|p__Firmicutes|c__Bacilli|o__Lactobacillales|f__Enterococcaceae|g__Enterococcus|s__Enterococcus_faecalis 0 0 0 0 0 0 0 0 0 0 0 0 0.02779 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodobacterales|f__Rhodobacteraceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00057 0 0.00398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_gonorrhoeae 0 1.22314 0 0.24121 0 0 0 0.02219 0 0 0 0 0.01917 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00269 0 0.02959 0 0 0 0 0 0.01566 0 0 0 0 0 0 0.02016 0.00977 0 0 0.04192 0.00362 0.00164 0 0 0.0245 0 0 0.01022 0 0 0 0 0 0 0 0 0 0 0 0.00642 0 0 0 0 0 0 0.04686 0 0 0.01095 0.03169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05271 0 0.00597 0 0 0 0.00538 0.01895 0 0.04622 0 0 0 0.00294 0 [...]
+k__Archaea|p__Euryarchaeota|c__Methanobacteria|o__Methanobacteriales|f__Methanobacteriaceae|g__Methanosphaera|s__Methanosphaera_stadtmanae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Ruminococcaceae|g__Ruminococcus|s__Ruminococcus_lactaris 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...]
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pasteurellales|f__Pasteurellaceae|g__Aggregatibacter|s__Aggregatibacter_segnis 0.00867 0.00306 0 0.00208 0.22846 0.04003 0.00161 0.14275 0.03011 0.25539 0.04181 0.00555 0.04276 0.13408 0.0156 0.07576 0.02213 0.00094 0.15218 0.04622 0.01813 0.18688 0.02608 0 0.06655 0 0.01192 0.1049 0.00476 0.15468 0.0154 0.00055 0.00059 0.07641 0 0.01674 0.94164 0.23315 0 0 0.11138 0.14534 0.02661 0.0015 0.1041 0.04252 0.0351 0.40764 0.08983 0.11457 [...]
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Neisseriales|f__Neisseriaceae|g__Neisseria|s__Neisseria_polysaccharea 0.00061 0.03711 0 0.00904 0 0.00081 0 0 0 0 0 0 0.01993 0 0 0.00557 0.00064 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00362 0 0 0 0 0 0 0 0 0 0 0 0 0.00803 0.00812 0 0 0 0 0.00017 0 0 0 0 0 0.01466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02658 0 0 0 0 0 0 0 0.00417 0 0.00181 0 0 0 0 0 0 0 0 0 0 0.00526 0 0 0 0 0 0 0.01102 0 0 0 0 0 0.00663 0 0.00198 0.18937 0 0 0.00443 0 0.0 [...]
+k__Bacteria|p__Firmicutes|c__Erysipelotrichi|o__Erysipelotrichales|f__Erysipelotrichaceae 0.00198 0 0 0 0.03034 0 0 0.04807 0.01988 0 0 0 0.00275 0.42293 0.02963 0.0312 0.00024 0 0 0.00207 0.17429 0 0 0 0.02361 0 0 0.0175 0.01009 0.00698 0 0.0004 0 0 0 0 0.03377 0.04692 0 0 0.0084 0.00515 0.10342 0 0.01369 0.00015 0.00138 0.02853 0.35296 0.00399 0.00131 0.01487 0.05444 0.01863 0.14204 0.00133 0.00082 0 0 0 0.00772 0.24028 0.00714 0 0.0306 0.02838 0 0.00131 0 0.02827 0.08099 0.03032 0 0.2 [...]
\ No newline at end of file
diff --git a/example/SRS018978/fastexample_SRS018978.pair1.fastq b/example/SRS018978/fastexample_SRS018978.pair1.fastq
new file mode 100644
index 0000000..bcca557
--- /dev/null
+++ b/example/SRS018978/fastexample_SRS018978.pair1.fastq
@@ -0,0 +1,1000 @@
+ at HWUSI-EAS635_102902104:5:100:10129:5396/1
+TACCTCGACGATCTCGTTGACCGGACAGATCGATTCGACGGCTCTGACAGCACGGGGCGGCGGATTGGTCCCCGCTTACTTGCCAATCGTCGTGCC
++HWUSI-EAS635_102902104:5:100:10129:5396/1
+GGGGGGGGGGGGGGGEGGGEGGGGGFGGEDGFGFGGDGGGEGGGGGDGGGFDGGEBEGGGEGFB at CECACEEEDF?BCDC?ABAA:@@@@CA9AA#
+ at HWUSI-EAS635_102902104:5:100:10159:19587/1
+GGTTTATTTTGAAGATAGTAAAATTGATGCAAATCAATTAAATCCGGTAGCTAGGTTAGCTGGAAATGATTACTCTTTGTTAGGTCAAACATTTACGGTT
++HWUSI-EAS635_102902104:5:100:10159:19587/1
+GGGGGGGGGGGDGGGGGGGGGGGGGGGGGGDGFGGDGGGGGGGFBGGEGFFFEFFEGGGGGFGFEFFGEEGGG=GFBGFDEFEDCF:DDEEECFF>:;;:
+ at HWUSI-EAS635_102902104:5:100:10169:14113/1
+CAATCGTTTATGAAAATTGTTGTAGTTACAAGTATCGTTAATATTATAATACTTATTTTATCGATTGTTTTTGCCGATAAATCTATAAAGTATGCTAAGG
++HWUSI-EAS635_102902104:5:100:10169:14113/1
+GGGGGGGGGGGGGGGGGGGGGGFGGGGFGGGGFGGGGGGGGGGGFGGGGGGFGGGGGGGFGGBEGGFGGGGGGBEDDGEEEGEFEFDEDF at ECE:=AAA@
+ at HWUSI-EAS635_102902104:5:100:10215:16930/1
+ATAACAGACGTCGATGCCTGCGAAATCGAACAGCCCACAGCATCATAAGACACGTCAGTAATGACGTCCCCATCTACATGCACCCGCAGCAGCAACTCAT
++HWUSI-EAS635_102902104:5:100:10215:16930/1
+AFGGGGGGGGGGGGGGGGEGGGGGGGGGFGGGGGGGGGGGFGGGGGGGGEGGGGEGGGFGGGGGGGEGEGEDGDFEFFAFDGGGGFG?GGEEE?EA@@?:
+ at HWUSI-EAS635_102902104:5:100:1031:6726/1
+GCATGTTTAATAACATTATTAATTGCTTCTCTAAAAATCATAGANNNTATTGATTGTTTCGNNNNNNNTAATGATTTAGCCNCACTTTTATTGTTAAATT
++HWUSI-EAS635_102902104:5:100:1031:6726/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGF?GBEEEEA=;;!!!85 at BB==BGGFGG:!!!!!!!8747?:;FGEDB=!:=7><<;;BCCDABC5C?
+ at HWUSI-EAS635_102902104:5:100:10408:18152/1
+GTGTCTGACAAGGTGTCTCAAGTGTTCGGGTGGCTGGCGTTTGCGCTGGTACTGGGCGCATGCGTCGTCGTCATGGTGGCGATGCGCACTACGGGATGG
++HWUSI-EAS635_102902104:5:100:10408:18152/1
+BGFFGGFGGGGGFEEGFDGGFGEGGFFFDFEFGFGGDFGF=EFFFFGGGAFEBGDFGGGDAEEECEDCBDCBCCACABEEE::EECCBCCBBC:C=@?#
+ at HWUSI-EAS635_102902104:5:100:10436:13231/1
+CGCGTCCAGGTGTCTTCACCAACCCAGTGAGGCCGTTCGCGGCTGATTTGGTCCGTGGTGTGGCAG
++HWUSI-EAS635_102902104:5:100:10436:13231/1
+GGDGGGGGFFGGGGGFGGGGFFGGGFGEGEDFFFEEGGGGGGEDGCDEGDDCEEECEBCECEC at C#
+ at HWUSI-EAS635_102902104:5:100:10459:6101/1
+AGGGGGATCAGTGTGTTGCGTCGCGCAGTAGTGGGTGCGGTAACTGCGGCAGTAACGTCGACCACCGTGCTCTCAGTAGTTCCGGC
++HWUSI-EAS635_102902104:5:100:10459:6101/1
+GGGGGGGGGGGGGGGGGGGGGGGFGGGGEGEEEEEEEEEDBEEEEFFDFFFFEEGGDBAFGDDFEEACFEDF?BFEAEEE=EE?C#
+ at HWUSI-EAS635_102902104:5:100:10551:9023/1
+CGACTCATTCTCAGTCTATTACGTTGTATAAGCTTAAGTCTTTATTCGACTATTTGAATATAGAATTAACAACGATGGACACACCGCTACATGCGGAGAT
++HWUSI-EAS635_102902104:5:100:10551:9023/1
+GGGGGGGGGGGGGGGGGGFGGGGGGGGGGGFGGFGGEBGGFGGGGGGFDGGGGGFGBFGGFGDFGGFGDGEEGGFGDDFDDFEGDFFEBDFEEBBCDEDA
+ at HWUSI-EAS635_102902104:5:100:10556:14844/1
+TGACCAGCAAATAAAAAATAGCAAAAAGTTAAATAAAAAAGAAGTGTCTATTCAAAAAGATAATACAAAAGAAACTAAAATATTTATCGATATTAAAGGT
++HWUSI-EAS635_102902104:5:100:10556:14844/1
+GGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGGGGGGGGGGEGGDGFFFDGGGFGGGGGGGFGGFEDGGDGF at GGDDFFFG?GFGAFF?DE=FEEBAE:@
+ at HWUSI-EAS635_102902104:5:100:10587:16026/1
+TGGCTTAGTTTTATTTCTTCATGAAGGTGTTACATTATCGATGATTTTAGCTAAAAGAAACATTATTTCAATGAATCGTTTAGCAATTAAAAGGGGATGG
++HWUSI-EAS635_102902104:5:100:10587:16026/1
+GFGGGGGGGGGFGGGGGGGGGGGFGGGEGGFGFEEGGGGGGGGGGGGGGGGFGFGGEGGGEFDGDGGCGGGGGDGGF?=EFFFDBBFEEDE?EEEAFDAD
+ at HWUSI-EAS635_102902104:5:100:10639:4544/1
+TGCTGTATATCGTGCTTTTGTTGGTGAGTGAGAACAATATACTTATAAACATTTTTCGATTGATTTAAAGCAAATCGATATGATTTTTTTATTTGGTCCC
++HWUSI-EAS635_102902104:5:100:10639:4544/1
+GFGGGGGGDGGGGGFGGGFGGGGGGFFFFFFGGGGEGGGGGGGBGGGGFFGGFGGGFGAGGGGFGGG=AG:EBEEED=FFGF=FEGGGGEEEEEA:CC at C
+ at HWUSI-EAS635_102902104:5:100:10687:9383/1
+GTTTTTTATGAGTTTGCGCATATGCTTGTGAATTTTGCCAATCATAGAAAGCTTGTCTACTGTTCCATAGCGTGATGATAATGTAATGTCTCCCTTTGAC
++HWUSI-EAS635_102902104:5:100:10687:9383/1
+GGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGBGGGGGGGGGGGGGGGFGGGFDGGFGDGFGFEGGGGDFEFEFEBDEDEEEGGEFEEEEEEGE at CCDCC@
+ at HWUSI-EAS635_102902104:5:100:10752:20680/1
+ATAAGGTCTTTGAGACGGCATTAAAGAACGAGATTGTGCTTTTTGGCTTGATACACTCTGTTGTCCTTTATTTTTGGTTGCTGTTACACGACAGATCGGA
++HWUSI-EAS635_102902104:5:100:10752:20680/1
+GGGGGGEFGGGGGGFGGGGFGGGGGGGGFFGGGGGGDDGGGGGGGGGEGFFD=E?FFEFFEGEEEDDCFDFECAC8?CE=EEEECD=ABEAAEDDDE at C?
+ at HWUSI-EAS635_102902104:5:100:10772:1354/1
+AAAGGAGGGCTTATATGAGATATATCTTTAGTGTTATTAAAAATATTATTGCAGTATTAGCGATAATATTGATTATATATATAGCTCTTCAACATGCACC
++HWUSI-EAS635_102902104:5:100:10772:1354/1
+GGGGGGGGEGGGGGGGGGGGEFGGGGGGGGGFGGGGGGGFGGGFEGGGGGGGEEGGDGGDDDGGDDFGGGGGDCDGEGGGGGGFDBAFEF?BF=BCA5E?
+ at HWUSI-EAS635_102902104:5:100:10886:15850/1
+TGCACACCGCATCAGGTCGTTTCCGCCACCGAACTCGCCATCGTGGGAGCTAGGCTCTCATTATGAACGTCATGATCCCCGTTCGTCCGGACGGCTCAGT
++HWUSI-EAS635_102902104:5:100:10886:15850/1
+GGGGFGGGGGDGGGGGEFFGGGEFGDGFGGEGFGGGGGGFEGGAGFEEGDEEEEGDDBEAEDEEE=DDEBEEEEEDE at DFC?8C=1+::3;:?????6??
+ at HWUSI-EAS635_102902104:5:100:10914:18565/1
+GGCGCACTGTTCGACTAGGTCTGCCAAGATCTGCGTGGCATGGGGGTGGGCACTATAGTCGATGGCTGTAATGGACTGGCC
++HWUSI-EAS635_102902104:5:100:10914:18565/1
+GFGGGGGGGGGGGGGGGGGFGFGGFFGGFEGGGGE?FBFCDFDEEEAA??GBEDDFDECFEEBDCC?BABEEEEEE5DCE#
+ at HWUSI-EAS635_102902104:5:100:10960:14408/1
+GCGCGGGACCTGCCATCCAAGACGACGGGCGGCTGCCAGGGTTGAGGTCCAGGCAATCTGCCCTAGGCACATCACTGCACGCAGGGCGGC
++HWUSI-EAS635_102902104:5:100:10960:14408/1
+GGGGFBFGGGGGGEGGGGGEGGGGGGGBEGEDGAGGDE?BE?FFFEA?DEEEEDD=C?BBEDE?=@CCCB:AACAEBEBFFEABECCCC#
+ at HWUSI-EAS635_102902104:5:100:10976:4160/1
+CGATCTTCTCCTTAGCAGCGCCGACGGCTTCGTCGCTCTTGCTGTTGATCTTATCACTCAGGCCCA
++HWUSI-EAS635_102902104:5:100:10976:4160/1
+GDGG=GGGFGGEGGGGGGFFGGFEEBDD at FEE=BBBDDDD at DDB?BB-AA?BAAA=BA?@@A<AB#
+ at HWUSI-EAS635_102902104:5:100:11030:10751/1
+ATTCTTGATGATCGCAGATCCGGCAGGATTGCGGGGCTAGCAGATTCCAAGACACTATCTGCGGCCAAGAGAGAGGCCCTGTTTAACGTCATCATGGATA
++HWUSI-EAS635_102902104:5:100:11030:10751/1
+GGGGGGGGGGGGFGGGGGGGFFGGGGGGGGGFFGGGGGEFGEGFFEGGGGFDGEGGGGEFE=DEFDEDDDFGEBEDDDEDAAAEC=DDACEEEEECBA=8
+ at HWUSI-EAS635_102902104:5:100:11046:1349/1
+CTGCCCCTTGCTTGGCTACTCGCTATTATTATTCCTTGCCTCGCCCTCACGGTGCGCCGTCTCCACGACGTCAACCACTCG
++HWUSI-EAS635_102902104:5:100:11046:1349/1
+GGGGGGGDFGGFGGFGDGEFGGGGGGGGGFGGGGGFGGGDGGGEEE at F=C?A<BBCBA=:B?AA?@=4@@>C==A?@@5@#
+ at HWUSI-EAS635_102902104:5:100:1108:12556/1
+GCACCCTTCCACGTGGGGCACGGCGCGGGAGGATGGCCACGGAAAGAACGATTTCGCGCC
++HWUSI-EAS635_102902104:5:100:1108:12556/1
+GGGGGFAGGGGGDEGGGGFGGGFGFFFBDECC3CCC5?@CAB??AB???B:;5:?ACC@#
+ at HWUSI-EAS635_102902104:5:100:11134:9845/1
+TCCATCGTCTCAATAGTGCGATCTATGAGAGGCTTGCACGCTCGTGCCACCTCGGCCATCGGAATATGTAGGATCGTTGAATCCAGATCGA
++HWUSI-EAS635_102902104:5:100:11134:9845/1
+GGGGGGGFGGGGGGGGEGGGGGGGFGFGGGGGGBFBDEGDBBFDCEDF=BEAEBA:@5>?;>3<=;0<5<=>-5;=9>>=@@@@;8008@#
+ at HWUSI-EAS635_102902104:5:100:11194:14108/1
+GTGGTCGTGCAGCTGCGAGCTTGACTCCCCACTCCTTTCTAAATCATCCAACCGTAGGACGATCCCGGCTGACACGCTGTCAATATTCGTGTAAAGGAAC
++HWUSI-EAS635_102902104:5:100:11194:14108/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGEGGFGGDFDGGEGEGEEEDGFGGEFEDEEFAEFAEEEFEEE at A@A<
+ at HWUSI-EAS635_102902104:5:100:11199:16198/1
+CTCAGCCAGCGGCGCATAGAAAGATGGCCAACCACAGCTGGAGTGAAACTTCTGGGTAGAGCGGAACAACTCGGCTCCACATGCACGGCA
++HWUSI-EAS635_102902104:5:100:11199:16198/1
+GFGGGFGGGGGFGGFGGGGFEGGGGFFGGEGFGGFGGEGGFFGEGFEDGGGDGFEFEGBFFEDDFAAAB5=;;=>:@B?@>-:>;B6 at B#
+ at HWUSI-EAS635_102902104:5:100:11246:2596/1
+ACCCATCGATGACGCATAGCCCCCACAACGCCCCAATAACCCAAGGATGTGGGGCATTGGCCGCA
++HWUSI-EAS635_102902104:5:100:11246:2596/1
+GGGGGGGGGGGGGGAGGGGGGGGGEEAGB?AEEFDEEDBACC=C@@???:@?AA:3759>?9A?#
+ at HWUSI-EAS635_102902104:5:100:11247:8446/1
+CGTTGTTGCTAGTGTCTGGAAATCCTGGCTGACGGGATCGGGCATCCAGAGTTGGATGTACCGCCCATTTGGGCTGTCAGCCTGAGCGCCGGGCC
++HWUSI-EAS635_102902104:5:100:11247:8446/1
+GGGGGGGGFGFGEGFFFFFFEECEDEEEEEGBEEGEBEFBEGEGEEGEEABAABB5:@@ABDBBBB?@?@A=5AA:=??=ABA9AAA=>A<><?#
+ at HWUSI-EAS635_102902104:5:100:11296:15773/1
+AAGACCCGGTGATTCTCGACGTCATCTCCAACCATCCGCGGTTGGCCCTCGACGTCACTTCCCAGACCTTCGTTGAGGTGCTGACGCGTGCGATTACCGT
++HWUSI-EAS635_102902104:5:100:11296:15773/1
+GGGGGGGGGEGGFGGFGDGGFEGFGFGGGGGGGGBGGEGGDAFDDADFDFBCEAADDBDCEEE?C?ABAADC?C=7=??@A=?:@CC>>AAA?4?;:??:
+ at HWUSI-EAS635_102902104:5:100:11347:9546/1
+CGGAACTGCACCTCGACGCCACGTTCAACAAGTCGCCGTCCCAACAAGTACAGCGGCGGGG
++HWUSI-EAS635_102902104:5:100:11347:9546/1
+DGGGGGGGGGGGGGGGGGGGEGG?EFFFFFFFAFDEEDBBGGDDEEBE at EEEDB@???@?#
+ at HWUSI-EAS635_102902104:5:100:11407:11011/1
+GAACGTAAAATTATTTATGGTACAACTTTGCCTATTGCGCTTTTTATATGCCTTATATTCGGAGCAATTTTTTTCACTCCGCGTATAGGTATCATTGCCG
++HWUSI-EAS635_102902104:5:100:11407:11011/1
+GGGGGFGGGGGGEGFGGGGGEGGGGGGFGGGGGGGGGGGGEGGGGGGFGGEGGGCDGGGGBGEGEFBGEFFFGFEFDFGDFDFADBEBDC?EEA:C?BCE
+ at HWUSI-EAS635_102902104:5:100:11407:6169/1
+AACCGACCTCGCGGTAGTTCACTCGGCGTAGCAGGGTGCCATATTCGACGTGAACCTTCTCCCCAGGTGCGAGATCAACGCCCTTAAGCTCGGTCCTGAC
++HWUSI-EAS635_102902104:5:100:11407:6169/1
+GGGGGGGGFGGGGFECEEEEGGGGGGGGEGFGGEEEBFEDFA?GEEEBEGDFFEBFDGEEGDEEE?A<ABA:CA@>@8>=BB?A?3:;;=@>::8?5<:?
+ at HWUSI-EAS635_102902104:5:100:11430:16064/1
+GTAGAGAGTGGTCACATCCATGTCGATGGTGTGAGCGTAATGAAGGTCTACATCGCCCTGGTGAAGGCCTGCACCACTAGCGTCGGCACCATTTCCCCGC
++HWUSI-EAS635_102902104:5:100:11430:16064/1
+GGGGGGGGGGGFGGGGGGGGGGGGGGGGGEGEGGGGGGGGGGGGGGEEGGGGGEBGEGFEAEEDEEEFEBEEACCEEEEB=C@?BCCCDC?CCAAAEAE?
+ at HWUSI-EAS635_102902104:5:100:11449:11207/1
+CCTGAGCCACCGTGGACTTCGCGTTGGCACGGACTTTGTCGGCCTTGCTGATTTCCTTATTCAGAGTGTCAACGACAGCCTTGTCCTTCTTGCCAACGAT
++HWUSI-EAS635_102902104:5:100:11449:11207/1
+GGGGGGGGGGGGGGFGGGGGGGGEGGFFGFGFGFGGGGEFEGFEFEFFEFB=EFEEFFEGGEEE?:CECE=5???BDDDAC at CCBDDBCDAB=CA at BA,A
+ at HWUSI-EAS635_102902104:5:100:11547:8844/1
+TTACGGTAAGAGGTGTACTGATTGGCCCGCGGCTCATCCGAGACATGCCAGTACAGTGCATCAGACCAGCCATGGCGTCGTGACCACTGGTCTAGGGCCG
++HWUSI-EAS635_102902104:5:100:11547:8844/1
+GGGGGGGGGGGGGEGGGGGGGGGGGGGG?6ADDCDGGGGGGFDGFFEGEFGEEEFGEEFGGEDEFEGEEEEEEBEEEEEE at DAAC:AA@@?A?A;>>E8A
+ at HWUSI-EAS635_102902104:5:100:11563:20500/1
+TATCGCAGGAGATCGACCAACAAGACTCGGTTGATTCGAACACCAATGGTGGTGGGACCTCGCCGAGCCCTGAAGACATTGACGCTTTGAAATTGGCTGT
++HWUSI-EAS635_102902104:5:100:11563:20500/1
+GFGGGGGGGGGGGGGGGGGGGFGGGGFGGGFGGGGFGBGGGGGEEGGGEEEEEEEEEEEEEFFFFEEEEGE at EEECEDCCEEEE@EEEEEBCBBB at BAA#
+ at HWUSI-EAS635_102902104:5:100:11762:11596/1
+CGCCATCGGAGAAAACGGGGAGTACTACCACCTCGTCGTCACCGGTGGCTTCGCTGAGCGACTGCGCGGGGTCAAGCTTCACCCTTCCCTGCCCCC
++HWUSI-EAS635_102902104:5:100:11762:11596/1
+GGGGGGGGGGGGGGGGGBGGDGDGGGGFGGFGFGFEFFCEEEEEDBDDDCADBDC:??A?BA?A at AA@CC9%=69==99>A>CA6??@?=:?>AA#
+ at HWUSI-EAS635_102902104:5:100:11877:18462/1
+TAGGGCTTCTAGGGCAGTGACCACTGCGGTCTACATCGAGGTCAATCACGAGGATCTCGCGACTGTCGGGGCCTTCGTCCGAGAAGGGGTTCACCGCCCG
++HWUSI-EAS635_102902104:5:100:11877:18462/1
+GGGBFGGGG?GGGDFFFGGGGGAGBGDEFEGEGGGGFGGGFEGGGAFBFFFFFFEAFGGGDBGGFEGD5:7*<7:8;13;78:+678::)4-6/4=?B?#
+ at HWUSI-EAS635_102902104:5:100:11891:15093/1
+CAGCCGACGACCACGGCCAGCGTCTAGCCTGTAAGGCCGTCGATGAGGGGGCCGAGATGGTCCTCGCCCTTGGGGGTGACGGCACCGTCCGTCAAGTCAG
++HWUSI-EAS635_102902104:5:100:11891:15093/1
+GGGGDGGGGGGGGFDGGGGG.@<C;DBDDCF?FBEFDFFDFF:DFDEDFBEEBEAE?BBE=BBABED at D?EEEEEB5;/A??:,?==:>=95;58859;5
+ at HWUSI-EAS635_102902104:5:100:11950:6372/1
+GATTCGATGAGTCCGAGGAAATCTGCTTTACCGTCATCATTGGGATGGGAATGGACGCCCAGACAATGGCCGGTACCCGAGACCGA
++HWUSI-EAS635_102902104:5:100:11950:6372/1
+FGGGGGDGGGGFEGGGGFGDEGGGGGGGGGFGGEGGEGEGEG?EE at DDFDEEEEFEEEDDCFEEEB@CCDC@:>=BBA?9AAAAA#
+ at HWUSI-EAS635_102902104:5:100:11961:9168/1
+CGATCTGGGAAGGTTTCGACGACGAAGGCTGAGTACATCCCGATCCTCATCGGTTCTAAGAACGACGGTCCGATCCGGATTCATGCCGTCGATACTGAAC
++HWUSI-EAS635_102902104:5:100:11961:9168/1
+GGGGGGGGGGGGGGGGGGGGGGGFGGGGGEGGGFGFGFGFGGGGGEGGEGGBECEGFEEDFGGEEFEEEEED=EEEFE=BCEBCD=DDCDCC=?>BB7?B
+ at HWUSI-EAS635_102902104:5:100:12169:12934/1
+AGCCTGGGGAAATCAACATCGTTGCCGAGGGTCCGGGCTGCGACGACCGGAACCACCAACCTGGCGACAATTCCCAGTTGGGTTGCCGACAGTAGATCGG
++HWUSI-EAS635_102902104:5:100:12169:12934/1
+GGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGEGGGGGGGGFGFGGGGGGEGEFGGGGEGFFEEEEGGEE=EDEDEEG at FEBECCFDCECBBE@CECACBA
+ at HWUSI-EAS635_102902104:5:100:12211:15281/1
+CCTGGTATCAGGGGCCATTGATAATGCCGACGTTCTTGCCGCCCCTGACGACCTTGTTGCAGCACGACCTGCCGCCGCCAATGCTGTGTGGCTCAC
++HWUSI-EAS635_102902104:5:100:12211:15281/1
+GGGGGGGGGGGGFGGGFFGGGGGGGFGGGGGGEEGGGGGGGFGFGAGEGGEF?GBGEEEGEDGGGGEGEBGEGEEFCDA26::<5?6>6=AA?A?#
+ at HWUSI-EAS635_102902104:5:100:12217:14392/1
+GGGTGAGCGACAGCAGCTCGCCATTGCCAGGATCCTCATTCACCCTAAGCCGCTCATCATCTTAGACGAGGCTACGT
++HWUSI-EAS635_102902104:5:100:12217:14392/1
+GGFGGGGGGGGFGGFGGGGFGGGGFGGGGGGGGGGGGGEGGFGFGGFFGEGGGEGEEEGEEGEE=DDE=EB=DDD?#
+ at HWUSI-EAS635_102902104:5:100:12251:18111/1
+CTCTCAGTAGTTCCGGCTGGTGCTGTTCAGGAATCGCCGAACAACGGGATCAATTTCGAACTGCCCCAGCGGTGGAACGACAACTACAAGCCCG
++HWUSI-EAS635_102902104:5:100:12251:18111/1
+GFGGGGGGGFGGDGFEEEE::AAACB=DACFAFAFFEDEBEFDEEFEF?EEDEEEDD5FBBABBBBEB=E???A@&>>;-=5>>=?:???5??#
+ at HWUSI-EAS635_102902104:5:100:1226:8982/1
+CCACTGTCCTCGAGCATGTTGACTCTCTTCGTTCTCGGCTTGGCTTGGGTCCGGTGATGGTTTGCCATCAAGTACATGGCAACGAAGTGT
++HWUSI-EAS635_102902104:5:100:1226:8982/1
+GGGGGGGGGGGGGGGGGGGGGFGGGGGGGDGGGGGGBEGGDEFEEE:BECBCBEACAC?C:=>>=?@AA at CC<:CA?C5CACAC at A44A#
+ at HWUSI-EAS635_102902104:5:100:12278:4183/1
+AACGCTGCGTCAGGATCATCCTCAAGACGAGAAGTCGTCGATCCCAAAGCAAGAGCCACCAAGGCCGCCTCATGTTCGTTAACTACCAG
++HWUSI-EAS635_102902104:5:100:12278:4183/1
+FGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGEGFEFGCFGGCEEEEEEEGEEEFEEEEEEDD@=C?@C at 9A?:?:<??::=7???>>A#
+ at HWUSI-EAS635_102902104:5:100:12305:20683/1
+AGGTTCCGGACCGCTCATCTACCTCGTCCTATGGGCCATCATCCCCGACGAGGGCAGCGGATCGAGTATGGTGACAGACCTGGCCGACCGGACCC
++HWUSI-EAS635_102902104:5:100:12305:20683/1
+FGGGGGGGGGGGGGGGGDGGGGFGGGAGFFGAGAGGGEFGGFFBGGFBGGEGBEDE:EE,BBCBBACDCBCCCD?5A at A:.7478:?@?=AAAC#
+ at HWUSI-EAS635_102902104:5:100:12357:2531/1
+CCGAGCACGGCGATGACGACGCCCAGGGCAAGAGCCATGATTCCTGCCTGGACCCATCCCGTAGTGCGCATCGCCACCACGACGAC
++HWUSI-EAS635_102902104:5:100:12357:2531/1
+GGGGGGGGGGGGGGGGGGGFGGGGBDEFEEFGEFFEBGGEEEEEEEEGEB:CCCCC at CCD>8>98<;;<(4A?A95>==(73::?#
+ at HWUSI-EAS635_102902104:5:100:12437:16233/1
+AGGCGCCGGCCACAGCATCAGAAGCCTTGAAGACCAACGAAAGGTAGGGCGCAGACGAGTAAATGAGGTTAACGTAGCACCAGTAAACGCACAACCCAGC
++HWUSI-EAS635_102902104:5:100:12437:16233/1
+GGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGFGGFGGFEGFGDEGEEEGEFFFEFGDFEB??CC?EE>BCCCCADEF:DDEFADCDCAFBAAAA4CAC?
+ at HWUSI-EAS635_102902104:5:100:12447:8894/1
+GAGGACCCGGACCGGAAAGGGGCTCAGTCGTTCAGCAAACATCCGCCCTCTCCTTGGCAGAGTGCACCCCAGCACTAGTGCGAACTAACCTCACTGAACG
++HWUSI-EAS635_102902104:5:100:12447:8894/1
+GGGGGGDEGGFGAGFDEGGEGAFAFEECEEEEEEEDGCGFGE?GGFEGEFBFGCD5?C?BAA?BA??@@8C at ECCA:A7BCCC=:C?A9 at 5A@@0A=CC4
+ at HWUSI-EAS635_102902104:5:100:12464:18115/1
+TGGATCCTAACCCCATGCCTCGTAGCGCACGGTCGGCCATGATGCTCCTTCCTGCTTGTAGGCATCAGGCCCTGGTTGGGCCTCAATAACCCCAGCA
++HWUSI-EAS635_102902104:5:100:12464:18115/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEDEGGGGGEGEGGFGGGGGGDEGGFGEGGDD:CC?CC==C8??5@===@=@@@@A=CCC5?#
+ at HWUSI-EAS635_102902104:5:100:12517:2204/1
+TGACGATGAATGTAGTTTATTGTTTGACTGATTGCTGGAGCAATTGAATATACTTTATGAATATCATCAAGTGAATTTGAATGATGACCGTAAAGTGAAA
++HWUSI-EAS635_102902104:5:100:12517:2204/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGBGGGGGGGGGGFGGGGGFGGGGGGGGGGGBGEEGGFG?EGGDFCBAED at CCCE:C?@?
+ at HWUSI-EAS635_102902104:5:100:12563:14350/1
+TGGAATATGATTCAATCTCTCATTTGGGTATGCATCTTTCATACTTTCAAGTGATAGTGATTGATTATTAATACTGAAACGTACACTTATCGCTGTATGA
++HWUSI-EAS635_102902104:5:100:12563:14350/1
+GGGFFFGGGDGGFGGGGGGGGGGFFGGFDFGGFGGEGGGGGGDGFFEG?BECEEEFFBFFGFEBEGGFGGEFFGFFDEFFBBDE?GBDBD??CEEBFADB
+ at HWUSI-EAS635_102902104:5:100:12610:5645/1
+TCTCGCCTGCGGCGATACGCGAACCGTGAGCCTGTCCACCGACGACCGCTAGTCCGGTCAGGGCGGCATTGAGATCAGCGCGAGTCACCGCCCC
++HWUSI-EAS635_102902104:5:100:12610:5645/1
+GGGGDGGFFGGGGGGGDGGGGEGDFFCEEFFFDEDEFGFFBEEBDEGEEEBDAEDAC8CCC at CCC??5??AAC??A:=:@>=>>4:;<;:AC@#
+ at HWUSI-EAS635_102902104:5:100:12648:20126/1
+TCGCCGTTCTTAACTTGGAACCGTTCTTCGATGACTTTCGGGTCAAGGCCAATTACCGACTTCACGCCG
++HWUSI-EAS635_102902104:5:100:12648:20126/1
+DDDDD?BDAD>A?AADB?CDDDDB=DDDDDDBC:CDADD::A>A=9>=>@BB=:BBCB5CBBBBB-??#
+ at HWUSI-EAS635_102902104:5:100:12725:6789/1
+GTGGGCATGTTCTTGGGGTGCCGGGACGGATATTTAGAGCCCAGCGGTGGCGCTAACGTCATCCAGGGCACCGCGCC
++HWUSI-EAS635_102902104:5:100:12725:6789/1
+FGGFDGG?GGDEFFF:DDCDEDEEEGGDGDE=EDDFAFF?EEBDDD??D?BAA at CEEFBF>-=@>:B???EB=BBC#
+ at HWUSI-EAS635_102902104:5:100:12834:20190/1
+GGTTTTGGACACGCGCTGTCATTTCCTAGCTGGTACGGACACAACCTTGACGCACTGCGTGACTGCCTAGCTGACCTGGGAGGAGACACGGCAGTGTTAT
++HWUSI-EAS635_102902104:5:100:12834:20190/1
+GGGGGGGGGGFGGGGGGGGGGGGGGGGGDGGGGEFGGEGFGGGGGFFEGGGBGEDEEFDEGDFEFEFCBEEEDD?CDA?CBCABDCB at E@CC=C=A6?:7
+ at HWUSI-EAS635_102902104:5:100:12852:18783/1
+TCTTCCATTATTCCGTATCCGGGCCCGTGGCGTCAGGGATGGGCCTACCCGTATTCGTGAGATCGGGTCCTTGGCCGGTCTCCATCTGGGAAGCCAGACG
++HWUSI-EAS635_102902104:5:100:12852:18783/1
+GGFGGGGGGGGGGGGGGGGGGDGGGGGEGEFFDGDBEAFDEFFGGEEGFFE?DEEDACDCFEECADD at CDBCD@DBC:AB?A??=CA?:A9;AB4=:>>>
+ at HWUSI-EAS635_102902104:5:100:12959:20941/1
+TGGGGCGAGGTGACGTTCGTCGAGCAACTGACCGAAATCTTCTCCCAGCCCAATGCCATTTCTGTCCGGGATGAGCTTGGAACCGAATCGG
++HWUSI-EAS635_102902104:5:100:12959:20941/1
+GGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGFGGGGGFGGGGGGGGEFGGEDEEGFEEEGGE?EFFBEEEEEEEEBEEE==CCCEB;BE#
+ at HWUSI-EAS635_102902104:5:100:12990:9904/1
+CATGAGCCAGTTTGCGCAGGTTGGCCAGTATGTCCAGATGGATAACTGGGTGTTTCGTGCCGTCAGTGCCGCTGTGCCAGGGCGATATACCTTCATTCTC
++HWUSI-EAS635_102902104:5:100:12990:9904/1
+GGGGGFGGGFEFGGGGEEGFDGGEGFFFDDEFDFDGBGEGBBFFFB=EDE<DCCCEBCCCGGEEED at EECEE@BCDEAA:?@?@6,>=>6??,@=87;:;
+ at HWUSI-EAS635_102902104:5:100:13033:9777/1
+GCCTTACATACACATCAACTAGCACCAGAACAGGCCATCATCATCGGAGATACCAAGTTTGATATGATGGGAGCTCAAGAAACAGGCATTCAGAAATTGG
++HWUSI-EAS635_102902104:5:100:13033:9777/1
+GGEGGEFGGFGGGGGBGDGFFGGGDGGGGEAFFEFFGGGGGGGEDED?FE=EEE?DFCDBEEEEEFAEBEFEGEBEAEE?B??A?AE?CACCC1???@=?
+ at HWUSI-EAS635_102902104:5:100:13126:11648/1
+CCTTCTGGTCCGAGCAACGGCGAAGTGACGTCACACGCGACTGTCAGCTCTACCCCCGACA
++HWUSI-EAS635_102902104:5:100:13126:11648/1
+GGGFGGGGGGGGFGGGGGGGGGGGGEGGGGEGGGGFEGEFFBEFEEEBEF=CCCCCC3=@#
+ at HWUSI-EAS635_102902104:5:100:1312:10148/1
+CAGGCATGATCGACAACGCCAACACCACATTCACCACCATGGACGATGACCTAACCCGCACGTTCGCCCATGACGATCCGG
++HWUSI-EAS635_102902104:5:100:1312:10148/1
+FGGGGGGGGGGGGGGGGFGGGGGEGGGGGGGDGGGGGGG?EGGGGGFFGEEGBEEFBBDCCD?AACACC=,=====<@:@#
+ at HWUSI-EAS635_102902104:5:100:13136:18454/1
+CCAAATGGTTCCGAGCAGGCAGCCCCGTCGTCATTTGGGAAGGATGCTCACCCTCAGGAATGCTGTATTGAAAATTCCCCAACTGATCTCGACCG
++HWUSI-EAS635_102902104:5:100:13136:18454/1
+GGGGGDFGEGGGGGGGGDEGGFGGGFDCFFACCCC?BBC at ABAB?DE:EDEDE=EA?A,ACCA>ACACC?A@@AA at 4AAA-::+58:>6>:?3@#
+ at HWUSI-EAS635_102902104:5:100:13142:4590/1
+CTGGAATGCTCCGGGCTTCACAAAGAATGGGTTCGACGCATTGCGCGTTGACTTCACCTCG
++HWUSI-EAS635_102902104:5:100:13142:4590/1
+GGGGGGGEGFGGGGGGGGFGGEFGEEGGGGFAFFFCBCA at CDEDD>>(5?:>>?>?AA=A#
+ at HWUSI-EAS635_102902104:5:100:13157:8770/1
+ATATGGCAAAAATGCTACCGGTCAGCCCCATGAAGACTCGTTTGTTTGGTTTGTTCGTGCGCTGCGACGCCACCTAGGGCCTCAGAAACTCCTCACC
++HWUSI-EAS635_102902104:5:100:13157:8770/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGFGGGEGGEGGGFGGGGEBFFEFEDEFEGFDGFEEAEEEEFFA?BCBCECEEACC7C at BCAE:A#
+ at HWUSI-EAS635_102902104:5:100:13228:17583/1
+TCTGTGCTAACTTTAGCAGCCATAACCCCACTAGTACTCATCGAAGACCGCCATCGGCCTGACGACACTCG
++HWUSI-EAS635_102902104:5:100:13228:17583/1
+EEEDBDE:DEDEEE?BFFFDDFFDFFDFFEDFEFDFFBAEEDFF=DEEEEEEEAEBCCEABBBB=BCB5C#
+ at HWUSI-EAS635_102902104:5:100:13233:6117/1
+CTCTGGTATCTGAGTACCGCACTGGGCTTATTCCGCTTCCATGCACATCAGCAATGATCGGGTCCTTGCTGGCCTGGACTGTCGGCGTGGTCCTAGCTGG
++HWUSI-EAS635_102902104:5:100:13233:6117/1
+GGGGGGFGGGGGGGGEEEBEEGFGGG=G?FGBFGGFGGFGGGB5DDADEEGGGAGEGGAGBGDGGEBEEECCEEB=B?B at FDFF5CC=>>.<<4:BB at A=
+ at HWUSI-EAS635_102902104:5:100:13303:5864/1
+GTCGCTGCATTTCTACTTAGCCTGACCCCAAAGACACTTGGAGGTGGAATCTATGTGGCGCTTGAAAGTCTAGGCTCAAAAGGGCTATTCCCTGCGATGA
++HWUSI-EAS635_102902104:5:100:13303:5864/1
+GFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFDGGGGGGGGGFGGEGGEFGGGBGFFEGDDGDFGDEFGEBBDFDF:ECCCCCCCDA:???DDDF:@;<>:
+ at HWUSI-EAS635_102902104:5:100:13349:10003/1
+TAAACTCCTTTAATATAATCGCCGACTACGCCTGGTAGTTCTTCTTTTTCATAGCCAAAATGGGTCATGGAGGAAACGAAGTGTTCCAATTCTTCTTCTG
++HWUSI-EAS635_102902104:5:100:13349:10003/1
+;;;?;=>B:=AAACACACACDDDDA>A?A>=B:==17A7;7/7 at 56=+58?BA-CC:C5 at 0/5/0C:CC>B5A9BABB:AA:A,;>>><>BB:BB????@
+ at HWUSI-EAS635_102902104:5:100:13365:13390/1
+GCCCGTCCGGTCTCGGCGCTGATGCGGCCGGTGACTTCGGTGACCAGTGAGCACTCCATAAGGGCCCGCACCTCTACCATTTCTCGCAGACCGATGAAA
++HWUSI-EAS635_102902104:5:100:13365:13390/1
+GGGGGGGGGGDGGGGGGGGGBGDGDGGGGGF=FFFEEEE?CFDFFEFCFEFGGDGGEEEEBACCCFD?ECCDDE=CCC=A3<>985>5<<??=?,>??#
+ at HWUSI-EAS635_102902104:5:100:13365:2887/1
+CCTTGAAAACAAAAAAATAATTATTGTTCACGGTGGCGGCCAAGTCATCAGTAATTTATTAACTAAAAACAATCATTCAACTATTAAAATTGATGGCATG
++HWUSI-EAS635_102902104:5:100:13365:2887/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGDGEGGFFGGBFFFGGGGGFEEBFGFGFDADGFDGEFGGEEEGEDEEEEFAGGD?DDD=EBCB5CBCB
+ at HWUSI-EAS635_102902104:5:100:13423:2405/1
+TCCACCGGGGCCATGTCGACGACGGTGAGGCTACGGGCTAAGTCAGGGTTGTCGAGGACCGTCCGCATGACAACTTTGCCA
++HWUSI-EAS635_102902104:5:100:13423:2405/1
+GGGGGFGGFEDGGGGEGFBGDFGFAEGEEEEEEEEDEBEBEEEEEEAB?DBBEEB?B?AAA=AAAA<=>=8=2=:>AAAA#
+ at HWUSI-EAS635_102902104:5:100:13488:19810/1
+TCGCAGACACTCATCGAGGTCTGCGGGGAGTCACTTACTTGCACCCCTCACTAATCTTGGGGACACGTTTGCCGTTCTCCAAGAGATAACCCATCTGACC
++HWUSI-EAS635_102902104:5:100:13488:19810/1
+DD?DBAD?D?BDD??CBCD:CCCC=DDD?D->B>>D=ABDBBBBCCDACBCB=BBB=B:ABB=BBB=?BB::A>2@@>=C?5???5B?B?B?=?B50<:>
+ at HWUSI-EAS635_102902104:5:100:13533:3105/1
+GTCGTCAGTAACCTCTTGAGACCGTCGTCGATTGACAACCATAGGGACAAGGTAGGCGATCCATCCTACGAGAACGATAGCGATGAGG
++HWUSI-EAS635_102902104:5:100:13533:3105/1
+GGGGGGGGFGFGGFGGGGGGGGGEEEGDFFGGGFFFGE?DDDDFDE at EDD??3?@@?@??DBDC?EC?CCACAACC@?CAAA1<A:@#
+ at HWUSI-EAS635_102902104:5:100:13558:7527/1
+AATTAAATTAGATAGATATACCTTTTACAATGATAAAAATCATAAAGATTTTACAGTAAAAGTAAAAAATAAAACGCATAAGGTTAAAGGCATGGTTTTA
++HWUSI-EAS635_102902104:5:100:13558:7527/1
+GGGGFGGGGGGGGGGGGFGGFGGGGGGFGGGGGGGGGGGGGGGFGFFGGGGGGGFGGGGGFFDFFGGFEGDGGGG=EDD?DAEBEDB?E=DDDADBCEEE
+ at HWUSI-EAS635_102902104:5:100:13687:5456/1
+TGCCGGCTTTACGCTGAACACTGGGTTTACGGTACGGGGGATGGACCTCGCTGCAGGTTCCGCCCTCGCCGCTGCGAAATCGGTTGATCTAGCCTTGCGT
++HWUSI-EAS635_102902104:5:100:13687:5456/1
+GEFGGGGGGGGGGGGGGGGDGGGGGGFGGGFGGFFGGGGGGGDDGGGGGDGGFGFGGEFGGGGGGFGFGGFG:CGEC==CB@?:@AA:CAAEBEDCDFE:
+ at HWUSI-EAS635_102902104:5:100:13791:15916/1
+AAATTGGTTTGAGTTTTGAACAGAACCTTCAAGTACTTCATTATTATCTTTGCGTTGTTCTGCAAATTGGTAACCAACCCCTAATTGTAAACCTTCAATA
++HWUSI-EAS635_102902104:5:100:13791:15916/1
+GGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGFGGGGFGGGGGGGGFFGGGGGEGGDGGGGGGEEFEFFGBDGBGGGFGGEFGE?EAFDADEEEDEEC-EE
+ at HWUSI-EAS635_102902104:5:100:13860:17479/1
+AACGAGTGGGTATCCCCCGACTGTGAGGCGCGTGATGACGTTTGAACGGTCGGCTTCTTGGGCCCTTCTT
++HWUSI-EAS635_102902104:5:100:13860:17479/1
+FAFF5D at DDDEEDEEGGGD5FFFDFBGGGGEE=E-;=:?>ABEBBEEBE9@:@?3?@?@9BB:B)????#
+ at HWUSI-EAS635_102902104:5:100:13920:5610/1
+CCAATTAGACCCCAATCGACCCCGCGTGATACCAATATATCGACATATTGCCGAATCGTTTTATAATTATCCCGATACAGCCTGTCGGCAATAGCATCGT
++HWUSI-EAS635_102902104:5:100:13920:5610/1
+GGGGGGGGGGDGGGGGGGGGFFGGGGEGFFGGGFGGGGGGDGEGFFGGBFDGGEFFGECEFEEGFEEGGGE?DDEDFEED=?C:CDE=B=CACCCDAEDC
+ at HWUSI-EAS635_102902104:5:100:14042:11285/1
+TCGGGACCCGGTTCCTGCCTGACCAGTGGCAGTCATTGGTGGTGGAACTGACGGCCCCACTTGACCCCGGAAGTCACACCCTAGACATTCGTTTTGTCGA
++HWUSI-EAS635_102902104:5:100:14042:11285/1
+FGGGGGFGGGGGGFGGGGEGEGGFFDDFEEEFAF?BA=B=CE?CC=BCCBDD=BEEFB?CEEEEECDCC=,:=>,,14-:5(:;:AC1BCC>>AA?7?,@
+ at HWUSI-EAS635_102902104:5:100:1404:13931/1
+CCATGCCGTCACCGTTGATAGGACGGAGACGACGCCGGCTATTCCCACCTGTCCCCAGCCACGCTTGGTGCGAAGATCAGGGCGCACCGTC
++HWUSI-EAS635_102902104:5:100:1404:13931/1
+GGGGGFGGGGGGGGGGEGGFGGGFGFGFBGGEEEGEEDEEEEEEEEEEEEEEEEECBADB5;:;28=>9=AA1=A<<C:=9????@AA>@#
+ at HWUSI-EAS635_102902104:5:100:14068:18956/1
+TCTTAAAAGAGGGGCACTAGGTGTCGTTCAATTAATCATACTTTATATGCTCAGATCGCAAATATACACTCCCTATGATACACAAGAGATGGCGCATTAC
++HWUSI-EAS635_102902104:5:100:14068:18956/1
+GGGGGGFGGGGGFFGGGGGGGEGGGGFGFEGGGFGGGDGFGFGGGGFGGFBFFFGEDAEBGGGGDGDDGGEGGGDGGGDEG?FA at FAFDFDEB=FFEDDD
+ at HWUSI-EAS635_102902104:5:100:14191:14804/1
+TCGCGGGTGACGCGGGTCTGACCTTCCCCCACCTGCAGGATCCTGACAGCACTATCCAAGGCGCTTGGCAGATCAGTGGGGTGCCCGTCACCTTC
++HWUSI-EAS635_102902104:5:100:14191:14804/1
+GGGGFGGEGGGGGGGEEGGGEGGGGGGGGGGEGE:GGFFEEBGFFEGGDDGGGAGBFFAEEF?F@=BBBBEC:EDC?ACC?&8??27.74@???#
+ at HWUSI-EAS635_102902104:5:100:14280:10492/1
+TTAGGTTCATTTGTTAAGGTATGAACATAATTATCTTTAACTATTAATAAGCCATTGTGAGGTTCTATGGCTACGGTATGTCCTGTTTCATCAGTGACCA
++HWUSI-EAS635_102902104:5:100:14280:10492/1
+GGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGGGEEGGGGGGFGBGGGGGFGAGFEGGEEFGEGCEDEEBEDDEEEEEEEEEEDD?=ACCBAC
+ at HWUSI-EAS635_102902104:5:100:14496:6007/1
+GAAGCCCGGCGGCAACAATGAAGGTTATGAGGCCAGCGAGCCAGTGGTGCCCCAGTCCTTTAAGGAACCCGAGTAGATCGATCGG
++HWUSI-EAS635_102902104:5:100:14496:6007/1
+FEFF?GGFGGFFGGGGFFGGGFGEFGFBFFGGBGGFGGGDGGCDADEBEABCD@@CDDCC:@B=@EDDFD?5A:?CA:BCA-?@#
+ at HWUSI-EAS635_102902104:5:100:14507:20784/1
+AGGAGTGAGGATACAGGACTCGAGGCGGGAGAAATGGTCATCAAGATGGGAGAGCCGGTCTCGAGCCACGACATGGT
++HWUSI-EAS635_102902104:5:100:14507:20784/1
+FFGGGGFGGFGGGGGGGGGFGGEGGGGGFAEACEC?C at A=ACCECBBEAD:EAE?B at A5:<>:5:@@5@=;:*;7@#
+ at HWUSI-EAS635_102902104:5:100:1462:7951/1
+TATTCACTTCTATTAATGACGAATACAATCATTGTTATAATTTTTACCTATTTTATTTCAAAAATTGTTATGAGAATGAATGTTAAAACAGCATTATTGA
++HWUSI-EAS635_102902104:5:100:1462:7951/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGDEFEEFEGEGFGGBGEGGGFEFFEFFCEEEEEBAEDEGDD=
+ at HWUSI-EAS635_102902104:5:100:14768:18459/1
+TAAATACAACAATAAAAAAGAAAAAATTTAACGGAAATATAAGTCCCAATATATTAAAAAGCAATATGTCTCCATACCCTATAAATTTAGATGCGAATAG
++HWUSI-EAS635_102902104:5:100:14768:18459/1
+GGGGGGGGGGGGGGGGGGGGGGFGEGGGGGGGGGFGGGDGEFGFGGGEGGDGBFGFGEGBGDDED?F?FA=EFF?FDEEF?DDABFEFF?FFD:FD=D?B
+ at HWUSI-EAS635_102902104:5:100:14797:7498/1
+CAATCCGGCTGCTCGAATCGATGTACGCACGATCGGTTGGCGGGGCCTCGGGCAGGGGTATGGCTGTCTATCAGCCCAAGAACTTGAGGT
++HWUSI-EAS635_102902104:5:100:14797:7498/1
+GGGFGGGGGGFGGGDGGGGGGGGGGDGGGGDGDGEGCGDBFEDD=CDCDD=DBCEEBD?CAACAC????7AAAA:BA1?A>A;<=A:6?#
+ at HWUSI-EAS635_102902104:5:100:14824:11142/1
+ATCGTGATGACCTCACGATCCGGATCAGCCGCAGAAAACCCCCGCCGGACTGCTCGACAAGCCTTCCCAGAGCTCAGTGAGCCTTTAAACGAGTCAACGG
++HWUSI-EAS635_102902104:5:100:14824:11142/1
+GGGGFGGGGGGGGGEGGGDGDGGGEGFEGGGGFFEFGFBEGGGEEB at C?CADDCE5CCCCCC:ABCCCB@/>=>>AA7A1?????BEEE7CAC?A?A<@9
+ at HWUSI-EAS635_102902104:5:100:14870:1114/1
+TCAACAATGCATTTGGTGTCCAGTCCAGGTGGATCGGAATACTGGTTTTTGCAGCTCTGACGGCAATTATTGCCATGTTTGGGTATGACCTAATCCACAA
++HWUSI-EAS635_102902104:5:100:14870:1114/1
+GGGFGGGGGFGGGGGDFEGGGGGGGEFFFCGGGFGGGE?GDFFFFCDFEGGDGFBFGEFEEEEDEEEEG at B?@@DEEBEEC:B<AAA:@ADACCDA at C7C
+ at HWUSI-EAS635_102902104:5:100:14871:19496/1
+CGACCACATGGGTCGCTCCGCTCACCGAAGCTCCACGTGGGGTAAGGGCTGCGACCTTGTCCTTGAGCTCCAGGATCATTTTCGCCGCACCCTTGCGACC
++HWUSI-EAS635_102902104:5:100:14871:19496/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGEGEFGEGGGEGGEGGGFFGEEGEFFGEFEEEEEEEEEEEEEEEEEGABCDFAECDCAAEC=AC
+ at HWUSI-EAS635_102902104:5:100:14880:7930/1
+TCATCGCCTCGACGGTTATTCGTGGAGCTGTTGCGCAAGAGGTCCTGGACAAACGCGGAGCGAAGCTCTCTGACGCCGAACGTGACCAGATTGTCGCTCG
++HWUSI-EAS635_102902104:5:100:14880:7930/1
+GGGGFGGGGGGGGFGBGEFGBDEEEAGGEGEGGGDAGEEEEGEGGEEEBE?EDDEEDE=EBE-DB@:BAB@=AAAAB?,@=::=8?;,?5:;;:?A?)A=
+ at HWUSI-EAS635_102902104:5:100:14945:2254/1
+CTTAAAACAATATGAATCATTTTTTTGGTTAATAGGAATTTTTATCTTTTATCTTATAATGGCAATTCTAACACCATTATCAACTACGGATTGGCATGCA
++HWUSI-EAS635_102902104:5:100:14945:2254/1
+GGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGFGEFGGGFGGFGFFGGGGFDEGEFDEDDDADFGFFEEDEGGCGG?BG=CE:EACBE5
+ at HWUSI-EAS635_102902104:5:100:14989:19465/1
+ACAACTGTTCCCTTAGCTGACCCGAGCGTATCTGAATCGGGAAAAAATAGCCGGCTCCCAGTGTTTTTGCGAGGCGCGAGGGCGGTGCCGTTTCTCACG
++HWUSI-EAS635_102902104:5:100:14989:19465/1
+GEGGGGGGGGGGGGGGGGGFGGGGGG?GEGGFGGFGGGGGFDFFFDEECAEEEECGGEFEFAFCDEEC=FEEFEGAGE:DCCCCA*@=@@9=<>8:5?#
+ at HWUSI-EAS635_102902104:5:100:15006:13484/1
+TCCAGCTGACTGCTGACAACCTTGATCGTATCGTCGAGGACCTCATCGGCCCCTCCCGTCA
++HWUSI-EAS635_102902104:5:100:15006:13484/1
+GGGFGGGEGDGFGCGGGGGGGGDGGGGGEGDFFDFGGB?FGBEGEEFEEADCFCE;;)4A#
+ at HWUSI-EAS635_102902104:5:100:15100:16904/1
+AAGGCTCTGACTGATGGTGGGCCCAACGGTAGCTTGGAGGTGCTGCTCAATTACATGTATAAGCAGGCGTTCACTAACTCAGCTTATGGTTACGGTATGG
++HWUSI-EAS635_102902104:5:100:15100:16904/1
+GFGGFGGGGGGGGGGGFGGDGGGGGGGGGEEFFEEDDEEEEGDFGEGFEEFGGEFGGEFGEFGGGGEEEEDDDDDEEE=FCCDCCCEDCAAC?CA858/?
+ at HWUSI-EAS635_102902104:5:100:15151:9868/1
+CATCACCGCCCCACCATCCGGGCTGTCACTCCCACACTGTGAAGTCATGCTCCACCTTCTTCGCATCGTTCTTTTTTGTGTTGATCCCTGTCATACATCC
++HWUSI-EAS635_102902104:5:100:15151:9868/1
+GGGGGGGGGGGGGGGGGGGDFDFGGGGFGGGGGGEGEFFBFEEGEGEEEGDFEEEGEEEECE=ECCCCA?D?DB@;;8%8:@?:@CADDA??@-?:;<>=
+ at HWUSI-EAS635_102902104:5:100:15302:7808/1
+GGCGATCTCATGATCGTCGACCAGCACCATGACGGAGGCGGTGACGCGGTCGTACACATGTTCGGAGCCTTCCGCGCCACA
++HWUSI-EAS635_102902104:5:100:15302:7808/1
+FGGGGGGGGGGGGGFGGFGGGGGGFGGGFGFFGEBEDEEFCACA->=:>=@@;@?7@??@A<@4>AACC=:@A4A??@6?#
+ at HWUSI-EAS635_102902104:5:100:15354:19480/1
+TGCGCTCATCAGGTGGATGAGTGTTGTCGTCTTGGCTCACTGGATGAGTGCTACCGGGCGCTGCACACGTGGTTAGCGTCGCGATGACCTA
++HWUSI-EAS635_102902104:5:100:15354:19480/1
+GGGGGGFGGGGGGEGFEFFFGBGFFECEEEGFGGEFEEFGEGG?EECE:CBBCCBEEEFEF at EDDEEED?BCAA?ABB17?>>6:==8??#
+ at HWUSI-EAS635_102902104:5:100:15422:17588/1
+TAATAGTTAAGCCTAAATGACCTAACCAATCATCTGTTGTATCACTGAAAATTCGGTTATACATTGCATCATTTAGGTGCCCGTTATGATCTACCCAATC
++HWUSI-EAS635_102902104:5:100:15422:17588/1
+GGFGFGGFGGFGGGGGGDGGGGGGGGGGEFGBGGFGEGGGGGGFGFGEEEEEGF=FEFFGGBGD?ECFFEEE?EB?DCEACCCACCD?CCDDDDCC?CCC
+ at HWUSI-EAS635_102902104:5:100:15498:16295/1
+TAGGCATCGCGCAAGAAGGCCACGACTCGATCACGGTCGACGTCGTTGACAAGCCAGCCATCTTTTCCGGTTTGCCACGTCTGCCAACTGTTCATGCTTT
++HWUSI-EAS635_102902104:5:100:15498:16295/1
+GEGFGFGGFGGGDGGFGGGFGGGFGEFGGGGGBGDECFED?B at 3@ACBABEEEEEEEEEEEEEEBACCA?BCC at CBBBBBEEEEEA;A=C0???@=::>>
+ at HWUSI-EAS635_102902104:5:100:15545:19708/1
+ATTGTGGCCATCAGAGTAATGGTGTCGGGCCGTGACATCTTCGGTGCTGGGGTCGGGGCGATGCTCATAATTTATGCGAGTCTCGTAGCCCTGGTCGGAT
++HWUSI-EAS635_102902104:5:100:15545:19708/1
+GGGGGGGGGGGGGGFGGGGGGGDGFGGGGGGGFGEFGGGGGGGGEFGFGFGGEGFGGGGGBEFEFFEEEECDDDDDEDDDCCCFDEEEDECCC:A at 5?@@
+ at HWUSI-EAS635_102902104:5:100:15552:17713/1
+TGCCCGGATTGAAGGAGATTATGCCAAGCTTTCTCGCATCTTGGCGAATCTGATCAATAACGCTTTTAAATACTCTGCTCCAGGAACCAAGTTGGAAGTG
++HWUSI-EAS635_102902104:5:100:15552:17713/1
+GGGGGGGGGGGEGGGGGGGGGGGGGGFGGGGGGGGGGGGGFFFF5EBCEEGEEEFBGEGGEEEFEGEEDEGFFEEFEGFEEBE:EBEECAEADEDAACAB
+ at HWUSI-EAS635_102902104:5:100:15622:14127/1
+ACCAACGACCCTAGCGGTATCGCGGCCACGAAGCTGGCGCAAATCGATTCTGGCGCGTAGCCGCCGAGCGAGGGGACCAACGATGG
++HWUSI-EAS635_102902104:5:100:15622:14127/1
+GGGGGGGGGGAEGGCGGEGGGFEFFFEDEBGDDGDEAEEFEEGEEEC=CEEEEGEDEACD=CDCC at -@AAC at AA?7?A=AAB,A?#
+ at HWUSI-EAS635_102902104:5:100:15630:17310/1
+ATTATCCGCGTTTAATGCGCCTTCTTGTGAACGAGTAGCATTAAATGCTTTGTTATATGAGCCTTTCGCGCCTTGAACATAAACAGTTGCTTGAATTTTG
++HWUSI-EAS635_102902104:5:100:15630:17310/1
+FGGGGGGGDFEGGFGGGGGGGGGGEGFGFBEGGFGEGEGGGGGGGFFFGGGGEGFGGGGGGBGGEEGDGEFEADE:DDDCEEGEE@?A?BCCC5CC?DDA
+ at HWUSI-EAS635_102902104:5:100:15683:15899/1
+GATCTGACTTTCAACGGGCTTGCTCATCTGTCGGGCAGCCCACATCTCAGCCGTCACGCCGAAAGAGAAAGCCTTCAGTCCAGTTCCTCTTGACGGGCCA
++HWUSI-EAS635_102902104:5:100:15683:15899/1
+GGGGGGFGGGGGGFGGGGGGGGGEGGGGFGGGFDGGGGGGGGGGGGFGFEGGGEGGGEGGFDEDFBGEEF=FDECEBBBECDCADEEEEEC@?E==CABA
+ at HWUSI-EAS635_102902104:5:100:1573:18422/1
+AGCACCTGGGCTCACAGGGAGTGCGTCGCGTTGTCTCTCTGGCTGAGGAATGCGGATCGGG
++HWUSI-EAS635_102902104:5:100:1573:18422/1
+GEEGGGGFGGFAEGGEG5GDECEEECFFFECCECCEEEEECE5CD;?@)?=??>@(>==?#
+ at HWUSI-EAS635_102902104:5:100:15769:14805/1
+TAATTTGGGACCGACTCCCGACGCGGTTTGCACCAGCTCAAAAGCATCGCGATCATCAGCTTCGACGAACCCGTAAAGAGTCAGGGACTCCTCTCTCACA
++HWUSI-EAS635_102902104:5:100:15769:14805/1
+GGDGGGGGGGGEFGGGGGGGDGFGGDA=EEDFFFEEE:FFDEDBFFEFGGFADEEEFBDGD at DEDEC=CC?A?@,;5;99%61**20::'A=A?AAA6A#
+ at HWUSI-EAS635_102902104:5:100:15836:12610/1
+TGGCCGAGGTGACGATAACCATCGTCGTCGACCCTCCGATCTGACCCCACCTCGTAAAGAGGTAGCCGATCATGACAGTTTCCTCAAGGACTGCGTTCAT
++HWUSI-EAS635_102902104:5:100:15836:12610/1
+GGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGEGEFGEDGGGGGBGEEGEEDDC@?BC8?BC at BA9?CC at BC@BACADC=<==?:?A??CA6:5>=
+ at HWUSI-EAS635_102902104:5:100:15894:18346/1
+ATAATTTTAATTCTGAAATCAAAGTATTCATCAATGGAATTTGATTATCTTCATCTCTACCAAATAAATGTAATTCTGTTTGGTAACCACTTTGCAAAAA
++HWUSI-EAS635_102902104:5:100:15894:18346/1
+DEEEEDDDEDGAFDGGEGGFGGGDBFFFFEFDDGGDFGDDGGGEDEFGGGGGGGGGDGGFDGGGEF:CCCAEEEEGGBDEGEDDG?DDED5?ACD6626:
+ at HWUSI-EAS635_102902104:5:100:15926:7214/1
+GGGGTTGTATATAACCCGATGTCCATCAGCCTCGGTGATCATCCCCTCAACGTTCACGTGCCGACCAGCCCGCAGACCGGGAATGCGCCTGCGCCCCC
++HWUSI-EAS635_102902104:5:100:15926:7214/1
+GFGGDEGFGGGEGGGGGFEGEGGGFFDGGGGGGDGCFGFGFGGGGFFGFGGEBDDAEB?EFEE:EEDEFEC5C7AAAC=:80,8;@=>>>?=5BAA?#
+ at HWUSI-EAS635_102902104:5:100:16023:7707/1
+CGGCAGTTCAGACCCGTAGATTCTCGATACACGCTCGTCGCACCAGGTCGGTCCATTCAAATCCGCGCAGGGGAACATGCCGGACGCATCGTCGT
++HWUSI-EAS635_102902104:5:100:16023:7707/1
+GGGGGEGGGGGGGGEFGGGGGGFEGGEGGGGGEGGEEDFAD?BEBBA:CBB at CC@CEEBC=CEABEEF=@CCE:CD at A@@A5=AB5A-?A?:??#
+ at HWUSI-EAS635_102902104:5:100:16034:17373/1
+CCGCTTCACGCATGACGACACCGATCTGGTTGGCAGCCGCCAGACCCACCTCATCAAGAAGGGCCTCGCGATTCGCGAAGTGACGG
++HWUSI-EAS635_102902104:5:100:16034:17373/1
+GGGGGEGGGGFEGGEGGEGGFGGGGGGGGEGGFGGGBGEGGFEFEEGBEFDGBFFD at DCECAEDFCFDEA:@<AABB<@B9BABA#
+ at HWUSI-EAS635_102902104:5:100:16113:20066/1
+TTGCGCCGATGTCATGGGCCACGGACGCAAAGGTGGTCTTGAGTAAAAATCACACGGACGCCTTTTACATCACCACTGACAGCGGTGTCCCCGTCGTCAA
++HWUSI-EAS635_102902104:5:100:16113:20066/1
+GGGGGGGGFGGGGGGGGGGGGGGEGGFGGGEFFAFFDEEFGFGFGGFEGGEBGEGEEGG?GDDDDGGBFGGDBGBFB:BDEC?C at A=CBADDAADC=CAA
+ at HWUSI-EAS635_102902104:5:100:16151:3802/1
+CGTCATGTATGTCATTGCGGAATGGATTTGCCGCAGCAATGAACGTAAGCGCTCGACCGACAATATGGGTATTGATAAGTCAGAATTCGATATTCAGATC
++HWUSI-EAS635_102902104:5:100:16151:3802/1
+GGGGGEGGGGEGGGGDGGGFGGGEEGDGGGGGGGGGFEGGGGGGGEFEGFFGADGEDBGD??=BBCCCC5@=??@5@?@@AAA:@DDEDCD=?5D?@-=?
+ at HWUSI-EAS635_102902104:5:100:16159:19923/1
+CGTGGTGGTCATTGTGCGATCAAGCTGCCGGGGTCTGTCAGCGTGATGAACCCGTTATGTACTGGTGTTCGGTGGTCTCTCTGGCCATTCTCGGACTCAT
++HWUSI-EAS635_102902104:5:100:16159:19923/1
+DDDDBABDC=DDDDCDDB?5 at DC=DDDDCD:AA>CAACCABD=?@>?A=5@=>=>2?:767====?AA?==+377?A?AAB?B?B??5??????????75
+ at HWUSI-EAS635_102902104:5:100:16207:14533/1
+ATCAGCCTACCCATCAGGTAAACATCGATAAATTCCCCTTCTTCTATGTACGCACCGCGCTCTTGTATACCTTCAATTACAAAGCCATGCTTTTGATATA
++HWUSI-EAS635_102902104:5:100:16207:14533/1
+GGGGGGGFFGGGGGGGGGEGGGGGFGGGGGGGGGGFEGGGGFGGGEFGEGGEGEGFFGEEEEFEEAEBDDCCDEBDCDDDB?CA at C:=CACAAB at C?DBA
+ at HWUSI-EAS635_102902104:5:100:16350:15610/1
+TTCGTAAAAGTCACCCGACAAACAATAGTCACATTTTTCCTCGTCGCCGATCAAAGCGGAGAGCTCCCCCAATCTGTGACCACACCCGATCGATCT
++HWUSI-EAS635_102902104:5:100:16350:15610/1
+GGGGGGGGGGGGFGGGGGGGGGGGGGGGEGGGAGGGGGGGGGGEGDGFGDCE=-CCBC??CCCEACAC?>+,<;=:@@5 at DCDCCAC@BC@@,=@#
+ at HWUSI-EAS635_102902104:5:100:16442:15310/1
+ATCGTCCTTCAAATCGGAAGTCTCACTGCTCGTCTGCGTGTCGATCTGGGTGTCCTCAGACTGGTAAAGAAACTTAGCGAAGTCGTTAGTGGCGTCAGCG
++HWUSI-EAS635_102902104:5:100:16442:15310/1
+GGGGGGGGGGGGFGGGGGGGGGFGDGFGEGGGGGEGGEDGFGGFDEEFEFFGECEFDEDDEFBDCCCCBDECC?DEACEB=C?CCCA at CAC=C5===:?#
+ at HWUSI-EAS635_102902104:5:100:16452:18194/1
+GTGCTACCGACCGACACCGTATACGGTATTGGTGCTGACGCCCTCAACGCTTTAGCAGTACAGCGTCTGCTCAACGCTAAGGAGCGGGGCCGCGATATGC
++HWUSI-EAS635_102902104:5:100:16452:18194/1
+GGGGGGGFDGGGGGGGGGGGGGGGGGEGGGGGGGGFGGGGGDGDGG?GGEGGGGFGGGGGGGGGGEFEGGBFFEGFDA=DCC:5ECCAE at AA:5:@5?@@
+ at HWUSI-EAS635_102902104:5:100:16500:6022/1
+ATAGGTGGAACAGTAGTCATTGAAAATTTATTTGATATTCCTGGGTTAGGCTATTTTTTAGTTGACAGTATAAAGTCGAGAGATTATCCAGTCATTCAAG
++HWUSI-EAS635_102902104:5:100:16500:6022/1
+GGGGGGGGFGGGGGGGFGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGDGGFEBGGGGGEGDGDGFDFGGGFEGFEFFFDFFFDBEFFDFFDBEEBCDEBE
+ at HWUSI-EAS635_102902104:5:100:16540:13347/1
+GCAAAGGCCGTCTATGATTCCCTTAACATGGGCCTTGGGTTGCGTATTCACAGCGTTCTGAGTGGGGGCGGAGTC
++HWUSI-EAS635_102902104:5:100:16540:13347/1
+GEGADFC=BFEEEEE:@@ACDB=AC@>@=A at E=C5?;>>:@CAA at B?@BBB@@?E@@@EB-@=>=@@:?<;)A?#
+ at HWUSI-EAS635_102902104:5:100:16583:20491/1
+CGATAAAGATGGAACTGCAAATGGTCACAATCGTCACTACGACGAGGATAAACAATGTGTTCTCAAACGCCCGGACGAAAGCGGGATCGTGGATGAGGGC
++HWUSI-EAS635_102902104:5:100:16583:20491/1
+GGGGGGGFGGGEGGGGGGFGGGGFGGGGGFGGFGGGGGGGGGGGGGGGFGEGEGGGFEGEGGEGGEGGFFFGEAGGFEEA at EACBB:B?A@?=7@@????
+ at HWUSI-EAS635_102902104:5:100:16593:6442/1
+GGCGAGTATTGCTCATCGGCGTGGTCCAGGTACCGCTCATGCTGCTGTTTTCAGTGTGTCTGGCATTATTGCTGGACGCCCGTAGGGTGAAAGCCCGGCA
++HWUSI-EAS635_102902104:5:100:16593:6442/1
+GGGEFGDGGGFEGGGGGDGGGEGFDFFFFFCGEGGCFFECBFFEFDFDEEFBDFDFCFDEDEDFDEEE at G=EEDEBEEBCC?4A:88)3*3=;;:CCBC?
+ at HWUSI-EAS635_102902104:5:100:16616:19758/1
+AAGGCTTCTGATGCTGTGGCCGGCGCCTTTGGTATCTTCAATACTGGATTGTTGGGGATCATTTCCGGGCTGGTGGCCGGGGTACTCGCTGACTACCTGT
++HWUSI-EAS635_102902104:5:100:16616:19758/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGEGGGAFCDFDFFEFEFBFGFDCEFFDFFDEE?CAEEEEDBDDBC:BCBBAAC?C?B=A@@CCA:C5A-5==<=5
+ at HWUSI-EAS635_102902104:5:100:16675:3732/1
+AGGGTATTGAAGAATTCCTGGAGACGATCTATGTCGCCCTTCCAGCGTGATTCATAGGCCGTGCTCTTAAGGTTGT
++HWUSI-EAS635_102902104:5:100:16675:3732/1
+EEEEEGGFGGGGGGFGDGBGEGFGGGGGGGGGGCGEGFGAFGGECAB5BA<?<;<AA5:AB7A5 at 9;28:BB, at B#
+ at HWUSI-EAS635_102902104:5:100:16753:11162/1
+CTATTAAAATTGATGGCATGAGAGTAACTGCTAAAAATGATTTACCTATCATATATGATGCTTTAATTAACATAGTTGGCCATCAACTTTTAGAAAGACT
++HWUSI-EAS635_102902104:5:100:16753:11162/1
+GGGGGGGFGGGGGGGFGGGGGGGGFGGEEGFGGGGGGGEDGGGGFGGGGGGGEGDGGFGGFDFGGGGGFFDFDFEBEEEDGFGGGFGDEGFF:FCCADE:
+ at HWUSI-EAS635_102902104:5:100:16802:3599/1
+CCAAGTTCGGCCATCGTCATATGAGTAGATCTCCACGATGTGATTGGTGTTGAAGACCTGAAGGATCGAGTCCTTGTAGAA
++HWUSI-EAS635_102902104:5:100:16802:3599/1
+GGGGGGGGGGGGGFGGGFGGGGFFGGGGDGFGGGFGGEGGDFEFFEECEEBECBEEEEGEDADDB=CEBBA?C at AB>AC?#
+ at HWUSI-EAS635_102902104:5:100:16920:7805/1
+CGTACCCAGATTTCGTCCGCGCCGGGATGATGACTTTGCTCTCCTCCACCATCCTCGGAGCCGTTGTGGCCGTCATCGTCACCCTTGTTCGCAAACATCG
++HWUSI-EAS635_102902104:5:100:16920:7805/1
+GFGGGGGGGGGGGGGGGFEGGGEGGEGFGGGGGGFEGGEGGGGEGGGGGEEGGEGGEBEEDEEBADCDCEEEBEAACCAAAACC=CAACA??>;AAA/A=
+ at HWUSI-EAS635_102902104:5:100:16933:18895/1
+CATCATCACGAGTGCTGGTGAGGCGCGTGCGTCGCTGTATCAGGCTCTTGACAAAGCTCGGGCTGGTGAGATGGCTGAGAGTGAACAATGCATGATTGAG
++HWUSI-EAS635_102902104:5:100:16933:18895/1
+GGGGGGGGDGGGGGGGGGEGGGFGGGGEGEFCEEFEEDEFEEEDBEEDGBBFFFEEAEFEEE at CEA:A?AA=CB5BCAB=?:@?@=CC??CAAC@?CCA:
+ at HWUSI-EAS635_102902104:5:100:17035:13181/1
+TCGGTCGTCAGAGCGGACGCTACGTGGTGACGATGGTGACGAATTACGTGTGCCTAACCCTGGGATTGTCGTCCTTGCTGGAATCCTTGGGCGTTCATTT
++HWUSI-EAS635_102902104:5:100:17035:13181/1
+GGGGFGGGGGFGGGFGGFEGGGGGDGGEGGDF=FFFCDDDFDFFFGEGEGEDEEAEEEEEBDBE at CEDADE>BCCC at BCA=@A7 at DA@C:CDDC9@?4?A
+ at HWUSI-EAS635_102902104:5:100:17082:2877/1
+GGTCGTTGATCAGTTGGAGATGGTCTACCGAAAGGCGGTTGCCGACCACGGTATGGCTGGG
++HWUSI-EAS635_102902104:5:100:17082:2877/1
+GGGGGGGGFGDFGGGGGGGGGGGFGGGGGGFDGGFFGECEFFEBDBFCEDA4@@AA=:A@#
+ at HWUSI-EAS635_102902104:5:100:17129:9303/1
+GTTTCTTCTCCTGTAGTAGCTAATAAACGTATCGTACCTTGCTTTAATGCGTTTGATTGTTTCAATTCAATCATCGCGATGACCATCGCCATAAGACCAC
++HWUSI-EAS635_102902104:5:100:17129:9303/1
+FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGDFGGGGGGGFEGGFGGGGFDGGGGGGFFEFDGEGFGEFG5DCBBEEBEEBFBDEEEBE?BEDEE
+ at HWUSI-EAS635_102902104:5:100:17139:15290/1
+TAGTCGTCAAATCACTCAACTCGAAAAAGAATTGGGGGTGACATTATTTAAAAGAAGTGGGAGAAATATCATATTAACTGTTGAAGGTAGACAGTTACTC
++HWUSI-EAS635_102902104:5:100:17139:15290/1
+GGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGEEGGEGEGFGEGGGGGEGGGDGCGGGGGGGGGFDAGGGDGDGFGGGFFGECFFEFFF at DGEBD
+ at HWUSI-EAS635_102902104:5:100:17140:12889/1
+TCTTAGGTATCCCGTATGCCAAACCATTCAATAAGATATCTCGATTCCAACATTCAAAGTTTATGGAACTAAGCAAACCAATGATTGATGCAACTCATAT
++HWUSI-EAS635_102902104:5:100:17140:12889/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGEDGGGGEFGGGGGEGGGBFGGGGEGDDDEEECEGGGEGFEEEGEF=EED::CAC=@?A
+ at HWUSI-EAS635_102902104:5:100:17241:2852/1
+GGGAATTGTCGCCAGGTTGGTGGTTCCGGTCGTCGCAGCCCGGACCCTCGGCAACGATGTTGAT
++HWUSI-EAS635_102902104:5:100:17241:2852/1
+EEE=AEDBB?DDD=C,<;=6?BC?DC?AA*=B8B4B;9:9C=:@=>>:>3*92)523.7/???#
+ at HWUSI-EAS635_102902104:5:100:17261:16469/1
+CCCTTCGGGAGCACCCAATACCCCAGTACTGATCCTAGAAGAAACAGGGGGATAGACGATCCCAGGAATCGCAGAGCCCACTTCTTCTCATTGAC
++HWUSI-EAS635_102902104:5:100:17261:16469/1
+GGGGGFGFGGGGEGGGFGGGFGFGDFAFGGGFDGBAFFFFGEGGEAGEGFC@@C578;23A>A??EEA:D=AC:@?5?@?D9CED=BBCAA=5A#
+ at HWUSI-EAS635_102902104:5:100:17327:12699/1
+GCGGTAACCACCCAACACGCTCCGCCGCGACGGAAAGATACGAGACGACCGTCTCGAAAAAGGGATTACGCAAGTTGGGAAGGATTATTCCCAATACCGG
++HWUSI-EAS635_102902104:5:100:17327:12699/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGFGGGDGGGDGEFGEAFGF?DF=FEDEF at BEF5C@>@>CBCCCEEE?ECCCACCDCBBCC at BA
+ at HWUSI-EAS635_102902104:5:100:17352:13833/1
+TGCCCGAGGCCCCGCCAACCGATCGTGCGTACATCGATTCGAGCAGCCGGATTGGGCCAGGGCCCCAGCACTACCAGAGTTGAACCTCGGGAACGCAACC
++HWUSI-EAS635_102902104:5:100:17352:13833/1
+GGGGGGGGGGGGGGGGGGGGGGGGGFGGGEFGGFGGGGGGCFGFG-DDDBEACECEEEEEEGEFEGEEEGEEGFEEE=E at EDCCDCBDC@CCCCC)5?@@
+ at HWUSI-EAS635_102902104:5:100:17505:20321/1
+TGACGTCTCCGCCATGACTTTCTACCGACACTTCGGCAGCAAGGAAGCCGTCGTCACCAGCGTCGCCA
++HWUSI-EAS635_102902104:5:100:17505:20321/1
+GGEGGGFGGG=EEEEDFFFAFFFFEFEFFFFEFFCE?DDEA?5ACD?@B=5=>.=;>A><=?0??1?#
+ at HWUSI-EAS635_102902104:5:100:17542:5416/1
+ATCCAGTCTCCGCGAATGAGTTCGGCCTCTAGCTGGCCGGGCACCCATTCGGCGTATCCCGCGAAGATCCGGACGTCGGTGAACGCACCTTCCACA
++HWUSI-EAS635_102902104:5:100:17542:5416/1
+GGGGGGGGGGGGGGDEFEGGEFGFGFFEFEEGFEDGDFDEFF:EBEB??AABBC??CCCCCCB5CC:9 at C?@=AA,=;;32.0045:;;3;??;?#
+ at HWUSI-EAS635_102902104:5:100:17648:5119/1
+GAGCTCCGTGGCCTTTGTCTTTTACCGTCCGCTGGTTGAGATCGTCATGCATCCGTACCAGCAGGCGAGCCTCGCCATCAAGGCGAAGAACCCGACGGC
++HWUSI-EAS635_102902104:5:100:17648:5119/1
+GGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGFGGEAGCGGEGGEGDEGGGFGGGEFGEGEFD?AFEEA:E:EBEC?@CE5CCBCC:CC3 at CCC?C at A#
+ at HWUSI-EAS635_102902104:5:100:17703:7884/1
+CGTGACGGTCCGTCGATTAGGCTGTGATGGTGAATTTCCCTTCAGGATCAGTGGTCTACTCCGAGAGGCTCTGGGCGCCGTTGTCGTGGTGGCTTATTGG
++HWUSI-EAS635_102902104:5:100:17703:7884/1
+GGGGGGGGFGGGEGGEFGGGEEDFCECEEE=BEEEEFFEDC5CCEE at DE@DCECCDE?DDEEBE:@??@@B=A?AECDAD=4@:?;7>-5:;3;=:?@7:
+ at HWUSI-EAS635_102902104:5:100:17726:5365/1
+CTCGCCGACGGCGTCAAGACCGGCCAGCAGACGCTGACGCGTGACGTCATCAATATGGAACGG
++HWUSI-EAS635_102902104:5:100:17726:5365/1
+EFGFGGGFGDGFGGGDGGFGFGGDGGGFDFEEDFBGFFBEA9B?=A=?;=>,>>;CCBC@=@#
+ at HWUSI-EAS635_102902104:5:100:17765:5689/1
+GTTTGCAACAGTCCGACGAGACGAGCGCGAGCTAGCTTGCGATTCGCAAGCTGAGACCGCTCATCATGAACCGTTACCGTCAACACACCGC
++HWUSI-EAS635_102902104:5:100:17765:5689/1
+GGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGFGEFGGFDDEEGGBEEGEEEGEEEEEEEEEEEDCCD<CB>CCCCCAEEEEEA@@CC#
+ at HWUSI-EAS635_102902104:5:100:17804:7398/1
+ACCCGTGGTTACTAAGTTGTAGACCGCCATAATCGGGCTGAAATCGGGGTCGATGCGGGGCGCGGG
++HWUSI-EAS635_102902104:5:100:17804:7398/1
+GFGGGEGGEGGGGGFGGGGEFGFGFEGGEEFEEFEEEGEAEEGEGEDDEBEE??DGEDEEDEBCA#
+ at HWUSI-EAS635_102902104:5:100:17936:13573/1
+CTCTAGGGCACGTTTGTCGTCCTGGGTATCTTGCAGCAGCAGGTTTTCACGAATTGTGCCATCGAATACGGGTGGATCCTGGGATACGTACGCCACAGAT
++HWUSI-EAS635_102902104:5:100:17936:13573/1
+GGGGGEGFGGGGFGFGGFGGGFGGGGEDFGEGGGAGFGGFFGGEGEFGFGEDDEGGEGGFEEGEGEEGFEEB>CEACCDCDCD:,?A=:??AA:ACCCC2
+ at HWUSI-EAS635_102902104:5:100:17940:10151/1
+AGATCTGCGCAAGACGATGAACGTGGACAAGAAAACCAGGGTAGACCCGCAGACCGGGCGTCAAGTGTTGCGGTTTGTCGGTATTCACAAACCC
++HWUSI-EAS635_102902104:5:100:17940:10151/1
+GGEGGGEFGGGBGGGGFGGGGGGFFFGGGGGGGBFGFGGDGDFGGBFFFFEECAECEEBE=BAAB?A@@:@?B7 at CCABCB,@?:AAA@@A?@#
+ at HWUSI-EAS635_102902104:5:100:17978:7983/1
+ACGGGTGAATAGCATGACCGTTAGGCACCTCTAACCCATCGACACCACGGCTCACCAATGCGTCGACGTCGACCATCG
++HWUSI-EAS635_102902104:5:100:17978:7983/1
+EEEEECGGGGGGGGGGGGDGEBFGEEGGGGGBGGGEDEDDEEEGEDDEBAEBEBD?=B=?>=6=-881.8?:8?=;@#
+ at HWUSI-EAS635_102902104:5:100:17979:9003/1
+GACGGACTCAGGAACCTGTTCGGGCATCCTGAATGTCAGGTTATGCTTATAACAGATGCGCATCACTTCAACGGCCAGCAGCGCTAAGATCATCGCAGGG
++HWUSI-EAS635_102902104:5:100:17979:9003/1
+BGGAFDFGGGGGGGDGFGGGGGEGFFDGGGFFEFEFFGGDBGEGAGGFGFDAGDFGG?:GE?EEABF:FFDFE:EEFBGEEEEEA at B?BB5AAC:C@>==
+ at HWUSI-EAS635_102902104:5:100:1809:12873/1
+AGTTACGCCATGTGTACGGTTCAGGAGAGGGTGCCAGCCTGATTGGCACTGACCCATACGGTGACGAGATTGTGCCATTCATGCAGGTGG
++HWUSI-EAS635_102902104:5:100:1809:12873/1
+DGDEGGEGGGEDGAFFFFFDFDFFFEGGGGFDFFF?BBEEEBBBAFFDEFADDDDDEEEE?:@??>:>:3696<;;,???85:=:AA=A#
+ at HWUSI-EAS635_102902104:5:100:18415:16960/1
+GTTCATGGGTGATTCCGGAGCTCTGCTACTTGGCTTATTGCTAGCTACCTCGACGATCTCGTTGACCGGACAGATCGATTCGACGGCTCTGACAGCACGG
++HWUSI-EAS635_102902104:5:100:18415:16960/1
+GGGGGGGGGDGGGGGFGFGGGGGGFGGFGGFGGGGGGGGGGGBFGGGGGFGE:EGBDEEGGEEGEECF=CCDEE=BBBCCDEBD at BECBD=5=>>@::=8
+ at HWUSI-EAS635_102902104:5:100:18428:10679/1
+GGGCCGATGCAGATGGATAGCGACGATGGTTGGTTGGGCAGGAAGAGGATGACCCGTCATCTCACCATGGGATCGACGCAACCACTTCATGACATCAGGC
++HWUSI-EAS635_102902104:5:100:18428:10679/1
+GGFGGGGGGGGGGGGGEGGFGEFGGGGGGGGGEGGGGGGFGGDGDGGGGFGGDFFGGDDGCGCGFGFGDFGG=G=GGDFBCECFEBEDADFEAFEFGD::
+ at HWUSI-EAS635_102902104:5:100:18504:9380/1
+ATCATCATACGTAAATCTTTGGCAATAGGTTGTTGTCTCGTAATTAGCATGATTACCTTCTCG
++HWUSI-EAS635_102902104:5:100:18504:9380/1
+GGGGGGGGGGGGGGEGFGGGGGFGBGFF?FFDFFFEFFFFEFFEFGGGBGGFGFD:@BCC9?#
+ at HWUSI-EAS635_102902104:5:100:18611:4891/1
+TAGCCGGAGTATTGTGGGCCTGCTATGCCACCGCTATTGGTGCTGGGGCGGCCAGTTTCTTGGGCAACAATCACATTCTTGCTGCCACCGTGGGGA
++HWUSI-EAS635_102902104:5:100:18611:4891/1
+DFEGEFFADEGGGGGEABFDFGEGEGGEFDFGFGGAEEEEFGGGEGGDGGE>BBABAC at DFFGGACAB?DEBAACBC=EEDDACEA@:=A;A:AA#
+ at HWUSI-EAS635_102902104:5:100:18760:8643/1
+TGGAAAGTTGGCGAATCCGGCGCCCTCATGATTGTCAAGGAGCGACAAGAGTACCTTCGTCCCACGACGCT
++HWUSI-EAS635_102902104:5:100:18760:8643/1
+GGGGGBGGDDDGFDGGGGFFGGCFGGEEFGECBFEDFECCEEEDBBDCEDE=EA:6::;3CA?:A6=>=?#
+ at HWUSI-EAS635_102902104:5:100:18958:20048/1
+TCCTAGGATTCCGTACCTGCTTGGACTCAACTTGAGTCTAATGGAACCGAAGCCTAACCGTACGACGCTATCTCCATCTCCCGTAAGGCCCAAAGTGTCA
++HWUSI-EAS635_102902104:5:100:18958:20048/1
+GFGGGGGGGDGGGGGGGGGGGGGFDGFGCFGGFGFGEGGGFGGEB=FFFEGG:EEEED at A:@@?@BCBA-CECCCD=E=DAEC9C>8=?:@????3>3>:
+ at HWUSI-EAS635_102902104:5:100:19283:19624/1
+CTAAGAGCCAGACTCCAAAAGCTTGACCACCAATAGCTGAAATATAGGTGATGAACTGGGAAAAAGAGTAAGCTTCCATCAGATCATCTTCAGCTACTTC
++HWUSI-EAS635_102902104:5:100:19283:19624/1
+DGAFDGGDGEGGDGGGGGFDGGDGGGDGGBGDDGBFDFF=GGEGGGGDDEFDEABE?:DDFF5DDFC at DFDDF5=FFEFDAAFBFGGF=BFFDDAEB at E#
+ at HWUSI-EAS635_102902104:5:100:19284:9074/1
+CCCACCGATGGCCGGGTGGAGGGTGGTTGTCAGGGAACCATGCGTTTCACCCTTGAGGTGCCGGGGCGGGCGGCCCATTCAGCTCGT
++HWUSI-EAS635_102902104:5:100:19284:9074/1
+FFFDEAFF=BBFFFEGDEE:DCD?DEEEEEC:EEEBDEEEBEBEB5 at A@@DDF at FDFEAEDBEB:BDE7=>BB<::(;:;?B-@@A#
+ at HWUSI-EAS635_102902104:5:100:19298:7465/1
+ACGTGGAGTTGTCTCCGAATGAGGAGTTTCACTTTTGGCATCGGTATCCCAAAGCTGATGACGCCTTTGTTACCGAGATGCGCAAGGCAGTCAGAG
++HWUSI-EAS635_102902104:5:100:19298:7465/1
+FFFFFGGDGDFEFE==ACE??DB=@C at ABA=B?CBEDBDD at AA=:?5A;5?<<(>=>=@=B at B<@@@BA@???BCBE?@E5@==+=:>=>@?<@@#
+ at HWUSI-EAS635_102902104:5:100:19653:7345/1
+TGACAAAGGTGAAAAACAAACCACAACCGTGGTGAAATTTGACACTGATTTGCCTATTAATTACGCAAACGTGCACAATGAAGCAGGTGACAAT
++HWUSI-EAS635_102902104:5:100:19653:7345/1
+D:EDBEB-D:A?CCCAD at BCC:?EA?DDDBEEBEEDDB55CCAC?DD5CDEC55AEEABDBEE:DAC=-B:931:)?80A>56 at 0<38;092@#
+ at HWUSI-EAS635_102902104:5:100:2043:11684/1
+CAGACGTACTCGAGGTGTTCAACAGAGAGAATTCGCCATCACATTTTTTCCGCATACCGTTCATGGTGTCTACGGCCAATGACACATTGGTCATAGGCTG
++HWUSI-EAS635_102902104:5:100:2043:11684/1
+GFGGGFGGGGGGGGGEGGGGGEGEGGGFGF?FGFEGGBGGGG?GGGGGGGFGGEAGGFG at DGDDBCAEED@@C==CCCAAEE at EEDBCC?@CC=D@=BAB
+ at HWUSI-EAS635_102902104:5:100:2142:3726/1
+TAACATACATTGATTATGATAGGATTTTTGATGTAATTCCAATAAATAATGTAATGTTTTTTCAGGTGTACATGGTAAATGAATAGCGTAATGTTCATAC
++HWUSI-EAS635_102902104:5:100:2142:3726/1
+GGGGGGGGGGGGFGGFGDEGGGGGGGGGFGGDGGGGGGGGFGGGGGGGGGEEFFFGFGEGGGCCDFBFEFAEFFFEEBDGEBEEDD:D at B=BCABDDEDE
+ at HWUSI-EAS635_102902104:5:100:2208:5484/1
+ATTACCGGCGTCTGTACTTCTAATAAAACAGCATTTTTAGCTAAAGAATTAGCTATGAATATAGTTGATGTAAATGATGTTGAGAA
++HWUSI-EAS635_102902104:5:100:2208:5484/1
+GGGGGGGFGGEEEDAAEDFDEBEDEFEEEFDEBBDEEFA=EAADDEEE at EBBBBBEEA@EA@?@?DB?@DA@?A@:@?B???:B?#
+ at HWUSI-EAS635_102902104:5:100:2278:11842/1
+TCCACCAAATACGCCTTGAGCAATTCGGCTGACTTTACCCAAACTAGACATCGATATACCGACAATTCGGCATGTTGTGTGCTTCGCTGTGAGTGACATG
++HWUSI-EAS635_102902104:5:100:2278:11842/1
+GGGGGGGGGGGGGGGGG:GGGGGGGGGGGGGGGFGGBGFGGGGGGDGGGGGEGFFDGGGBBBEEDDBF=CECDDCEEBECDDBDE:ECCCB at CAC??CAA
+ at HWUSI-EAS635_102902104:5:100:2484:20859/1
+ATCGATGCTGTGCTCGGCCTTGTCTAGCCGACGACGCGCCTTGCGTACCTTGCGATCAGCCTTTTCGGCC
++HWUSI-EAS635_102902104:5:100:2484:20859/1
+GGGGGGGGGEFGGGGGGGGGGGFGGFFGGGGGEEEGEEEEABEDDCCDBBACCCA?A5?A5>=>=?37?#
+ at HWUSI-EAS635_102902104:5:100:2553:16508/1
+ACACATTCAGGCTACTCAGCCGATCGAACCCTCAGATCTCAACTCGGCGTACCGGGACTCAGGGTTAGTTCCAGAGA
++HWUSI-EAS635_102902104:5:100:2553:16508/1
+GGGGGGGGGGGGGFGGGGGGGGGGGFGGGGDDFEDCCCEECDDBECDBD<CCCACA<=>A:@@=548703;3:?6A#
+ at HWUSI-EAS635_102902104:5:100:2814:15807/1
+CGTCAAAGACGTTGACGGCCATCCCGGGGACGGCAAGCGGGTCGTTCTCCCTTAACAGGAGGTGGGTCAGCA
++HWUSI-EAS635_102902104:5:100:2814:15807/1
+GGGGGEGGFDGGGFGGGFGGGGGGCFGGEEGGEGE at DBFBE6EECBC@CCD6C at CC?@:ABA5A@???@@@#
+ at HWUSI-EAS635_102902104:5:100:2872:21432/1
+TAGAATTAATTCATAAGTACGATTTACCTGNNNNNNNNNGAGCACAAGCATTTCATATAGATGATCTTGATGCTGATATTATACTTACCATGACGCA
++HWUSI-EAS635_102902104:5:100:2872:21432/1
+EEEEDEEECEFFDFFGDDGGFFFEDCBBCC!!!!!!!!!;=A>=<GGBEEEEFEGFGG?FEEEE?EAEEEEGEDEEEEE?BDBBBEBE;EB?B@:@#
+ at HWUSI-EAS635_102902104:5:100:2884:13943/1
+ACACGGTCCAAAGCCCGTAAACAGGCTCTCGACATTCTGTTCGAGGCAGACCTCATAGGTACTGATCCGCTCGCAGTCCTCGCA
++HWUSI-EAS635_102902104:5:100:2884:13943/1
+GGGGFFDGGFGFDGFFDEFGFEFEDDDGEEBCA=EEEEDEECBBDC:CEACCA:9=>>>,=83?53=??>8??)0;5535?9?#
+ at HWUSI-EAS635_102902104:5:100:3033:13909/1
+CTACGTCAAAAGGGGAAAAAGACACAAGTATGCCTGGTATGCATATCACTTTGAATTTTGAAGAAGTAAAAGGAAAGACTACTGTAACATCGACATCGAC
++HWUSI-EAS635_102902104:5:100:3033:13909/1
+GGGGGFGGGFDGGFGDFGGFGGGGGFGGEGGGBGGGFGEGGGGGBGGAGDGGGBGFGFGG?DFEFGD?EDFGEEEBGEG?EBEDDB=?EEF=EFFDBFED
+ at HWUSI-EAS635_102902104:5:100:3071:6991/1
+AGCGGCGTGCAGACATTTCAGCCCCGCAAGGTGGCAGTAGTCCACAACTCTGTCAAGACGCAGAACAACCC
++HWUSI-EAS635_102902104:5:100:3071:6991/1
+FFFEFFFFFE?B?@:BDDBB?BCEE74/:8>2>@29::9;59>>>+8)16:::::?@?5??==@@B at B7?#
+ at HWUSI-EAS635_102902104:5:100:3111:10730/1
+GAGGTCCTTCCCGACGGTCACCCTTTCCACCTTGCCAAGATCGGCAAAGAATGCCTCACCAGGCTCG
++HWUSI-EAS635_102902104:5:100:3111:10730/1
+GGFGGGGGGGGFFGGGFEGGGGGEGGEEFEEEBDDDEEDE at DCDDEEEEED?CBDEEEEE?:8::?#
+ at HWUSI-EAS635_102902104:5:100:3128:21238/1
+TAGTCGATCCGCTCGGCGCACAGGCGAGCTGACCGGTGACCCTCGGTCGGTCTGGGGTGCC
++HWUSI-EAS635_102902104:5:100:3128:21238/1
+GGGGGEGGGGGGGGFGGGGGGGGEEFDEBABA=CB=8>+,=>:=+<7>-<6=5:=?)6??#
+ at HWUSI-EAS635_102902104:5:100:3141:7733/1
+CGGGGCATGAGCCGGGCAAGCCAACACGTCAACACCACGCGGGGTCTCATCTAGTTCGTCACCAGGGTGGTACAGGATCGTCCCA
++HWUSI-EAS635_102902104:5:100:3141:7733/1
+GGGFGGGGGGGGGGGGGGGEGGGGEGFFFGGGFEGGGGFEEEEEEDBDCCEFEEEEEEEEEEEEB<@>CC;?CAAA>=A=9@=A#
+ at HWUSI-EAS635_102902104:5:100:3176:9678/1
+TAGAGGTGAGTAGCTCAACTAGTTGCCACTGGGACACCCAGAAGGTGAAACAGACCCTCACCGTCACGTCTGGGTCGGATCGCATCT
++HWUSI-EAS635_102902104:5:100:3176:9678/1
+GGGGGGGGGGGGGGGGGGGFGGGGGGGGGFEGFFGFGEFFEFBEF?FEAFFEFFEDDGGGFDD?DDCDAE?:@?3@@??:BB?)?@#
+ at HWUSI-EAS635_102902104:5:100:3248:19610/1
+CGCCATTCTTCTACAGTAAACAAATGCAACGCTAACGCATGAACACCGCCATTAAGCTCATCTGCAAGCAATTGATAAACACGTTGATGACGCTGTACTT
++HWUSI-EAS635_102902104:5:100:3248:19610/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGEGGGFFDGFGGGFBGGCGGGDFGGGEFGGBGEGGEGEDEBDDB at F?DDDC5BABA?C at A
+ at HWUSI-EAS635_102902104:5:100:3264:6058/1
+CGGTTCCGAAGATCGGCGCGAAATCGTTCTTTCCGTGGCCATCCTCCCGCGCCGTGCCCCA
++HWUSI-EAS635_102902104:5:100:3264:6058/1
+GFGDFFFFDFFADFFEFFFBBBBEEEADEEEEEDE at EBEEFBDDEFBF?DBBB:??????#
+ at HWUSI-EAS635_102902104:5:100:3265:17721/1
+AGATCCTCCAGCGGAACGCTGGTATCGATAACGACATCGGCAACTGCCAGACGTTCCTCACGAGAAGCCTGAGCGCGAATCCTCGCCCA
++HWUSI-EAS635_102902104:5:100:3265:17721/1
+GGGGGGGGGFFFGGEGEEDEGGAFEBFEEDFEEDEEEEEEEEE at EEDFAD@AC>ACCCCBEEEEE?CA5?C?@CCCA2:4??=@:A>A#
+ at HWUSI-EAS635_102902104:5:100:3277:16374/1
+CAAACCAGAAATAGTAATAGCCAGGCGCTTGTCATCACTTTTTCTATCCTTATCTAGCCAAACAACACTACCTTGCGATATATAGGACAGCT
++HWUSI-EAS635_102902104:5:100:3277:16374/1
+GGGGGGGAGGDGGGGGGGGFGGGGEGGGEGB?BBBEEEDFGGGEGEGDGBGDDDDBCCEBEE5=EEEECCBC:?CC=?CCEEE:5A:AA@?#
+ at HWUSI-EAS635_102902104:5:100:3339:2185/1
+CCTGATCGGAGGCGAACCATTGCTCTGACAGCGATTGGGGCACGGAGTCTGGACGTACGCGAGTGGAGAGA
++HWUSI-EAS635_102902104:5:100:3339:2185/1
+GGGGGGGGGGGGEGGGGGFFEEGGGCGFGGEEGEEEEEEEEBDE??@3@?CCACC=ACCCCAC=C?6 at 0@#
+ at HWUSI-EAS635_102902104:5:100:3353:16913/1
+GAGGTCGTTGCAGAGCTGGGAGAGTTCTGGTGCGACCCATGCGCCCCTGAGCATCGCGAGCCCGAGTCGGACAGGAGGATTGTATGAGCGGCAGCC
++HWUSI-EAS635_102902104:5:100:3353:16913/1
+GGGGDGGGGFGEGFGDAGGBEGGGEFBEFB5DCDBEFFDFDGGEEDADF5CEC=BDDCABC?CC@@6 at A?5=5<=9CA74<AA9A@:@9??<8AA#
+ at HWUSI-EAS635_102902104:5:100:3364:13994/1
+CGCTAGCGAGGTCTCGGGGCTGAGCCAGAGGTGCCAACACGAGTAGTGGGTGTACATCCGGTGCACGAGTTGGGTTGCTTCATCGACAAGCT
++HWUSI-EAS635_102902104:5:100:3364:13994/1
+GGGFGGGGGGGEGGFDGGGGFGGGGGGGEGEDGGGGFGCGGDGCEECEE?@CA?AACBCCEEEEABAAA8??>>>8@:=@AACCA at C?*A?#
+ at HWUSI-EAS635_102902104:5:100:3452:10755/1
+CCCGACATCGTAACCGCTCGATTCCTCACCGGTTGAGCAATCCAGTCACGCGCTGACGGATAGCCTCACTGATCTCCTTGCGACTCTTCCG
++HWUSI-EAS635_102902104:5:100:3452:10755/1
+GGGGGGGGGGGGGEGFFEEGEFFGDGFGGEEF at GE?FDEBDFEEEBEDDEEA=ABBB at B=AA:?BABAE:;<=><AB at 4=:?6??A?AAA#
+ at HWUSI-EAS635_102902104:5:100:3499:7865/1
+TGCGCCGTTCGAATTTTCTGACTGAAGCACTTGACGAGTTGGGCTTGGACGATAGGGTGACCGTCGTCCGTGGCCGAGCCGAGGA
++HWUSI-EAS635_102902104:5:100:3499:7865/1
+GGGGGGGGGGGGGGGGGFGGGGGGGGGGFGGGGBFGGGEGGFFEGGDDDDFEGEEGBEGDDEFCEEDFEE?DDBDB at A@A at 3??#
+ at HWUSI-EAS635_102902104:5:100:3629:6498/1
+AATTTGGATGGCCAGACTCCGGTACGTACCCGGCCGCGCGTGGGTGAGGAGCAGTGGGCCCCGGCGGCAGTGCCTACGACGAAACG
++HWUSI-EAS635_102902104:5:100:3629:6498/1
+GGGGGFGGGGFFFFFGGGGG=AEEEGEGGFEEBEEEE=EE@?BA7C at BB=DBCBDCA=EABB?=B:1;,=:>4>:.17*8??,:?#
+ at HWUSI-EAS635_102902104:5:100:3711:14418/1
+GAGATCCTTCGCCACGCGGGTGAAGTTCTTTCCTTGCCCAAATACCCCGTGACACCAATACACGTCCTGCTGGCCGTTCCCGAGGGTGGTCAGATGAAGC
++HWUSI-EAS635_102902104:5:100:3711:14418/1
+GGGGGGGGFGGGFGGGGGGF at EEBEFFFFFFFFFFFFFFFFFFFFFFFFEEEFEFEEEFEEEFF?AB?@A??-??=5=>=A at 7@?@7??6<7>5-@<<?@
+ at HWUSI-EAS635_102902104:5:100:3740:8941/1
+GCTGCTGGCAGCCTGGCTAGGATTGCGTCTCGGCGTCCCGGTCGAGCGGGTGACAACCGACGCGCCCGGCATCTCC
++HWUSI-EAS635_102902104:5:100:3740:8941/1
+FGGGGEFFGGGFGFGFEEGGGEEFGEFDGEGEEGEEEEECC8C=A@??@?->.>;@:@A???C=ACC?CA7?:=?#
+ at HWUSI-EAS635_102902104:5:100:3812:6841/1
+AACGTCCGACATCGATCTCGATGAGTCGATCATCCAACTGCACGCCCAATCCAGCACAAGCGCCGATTGCCTGAGCTGTGTCGCGCGCACG
++HWUSI-EAS635_102902104:5:100:3812:6841/1
+GGGGGGGGGGEGGGGGGGGGGGGGGGEGGGGGGGGGDFEFGGGBGFF4?FEEEEEEGABBACBCC at 9@@CB@@:BCC?=CAD?BDCBC*C#
+ at HWUSI-EAS635_102902104:5:100:3865:8457/1
+AGCCATATTGCTTGTGGAACCTTCTTGTAAAACGTGAGTAGCACTGCAATAATGGTAGCCACAATTAAAATGATCTTAACATCACCAAAGGTAGCGCAAA
++HWUSI-EAS635_102902104:5:100:3865:8457/1
+GGEGGGFGGGDGGGGDGFGGGGGFGGGGGGFGGEBFGGFGGGGBEFGED?FEFDCDDGFEEFB=EFFEEF?B=EDDE=DE=CCCCGE at E?=<ABA@>==/
+ at HWUSI-EAS635_102902104:5:100:3905:5861/1
+GCACTCTTGAGCCTCGCCTGATTCCCCATACCCGACTTAAGTTCAGTATCGACGGCATGAATCCGGATCGG
++HWUSI-EAS635_102902104:5:100:3905:5861/1
+GGGGGGGGGGGGGGGGFGGDBEGFGGGEEGGDGE5??CB=BADCBFBEDFDDDDAB-ABABAA?=?-???#
+ at HWUSI-EAS635_102902104:5:100:4060:17217/1
+AAGGTGAGAGACCTAACAGGGGGTGAGGAGGTGTGAGCCACATAGTCTTAGACCACCTTGGGAGATAGCCTTGTCGCATTGCGGCATGAGTTCCATGGCA
++HWUSI-EAS635_102902104:5:100:4060:17217/1
+DEEECGGGGDEGGGGDGGGEGGEDGGGGFGGEGGFGGGGDEGEGFEFBEGGGGEAGGFGG?ECEDC?DC at FEDDF=CBBCEEEAE?BCCCBCCBBC@@C#
+ at HWUSI-EAS635_102902104:5:100:4074:14886/1
+CGGCCACCTGTGTACGAAGGAGACGGCGCTGTGATACTTCGTCCCGGCATAGTTGCCTCGCTGGTACCGTCCTACTCCCGGGTTCTCGACCTGGGCTGCG
++HWUSI-EAS635_102902104:5:100:4074:14886/1
+GGGGGGGGGGGGGGGGGGGFGGDGGGGGGGGEGFEEEGGGEEGGGEDGEEDECEDEGEFEECCEADDECAEE=EECDDEBCC at ADCC=:B<5?,???=??
+ at HWUSI-EAS635_102902104:5:100:4083:15646/1
+GGCTGACTAGCTGCTGTAGTTCTGATGAATACACGTAGGAAAGGCGGAGTGAGGCGCCAAGCATGGCAGGATGTTCGGTATGACCTTGGTGAGTGACGAT
++HWUSI-EAS635_102902104:5:100:4083:15646/1
+GGGGGGGGGGGGGGGGGFGGGGGGFGGGGGFGGGGGFGGGGGDGGGFFGEGGEDGFGGEFGGFFEFFGEECCEACCCC at BDEBBCBBBC=C=C=C5@@:?
+ at HWUSI-EAS635_102902104:5:100:4227:18393/1
+CCAGCATCGCACATACGGGTGCTAGCGGGGCTAGTTGCGGCCTGCGCGGTCCTCATCGGCG
++HWUSI-EAS635_102902104:5:100:4227:18393/1
+FGGGDGGGGGGGGAFGFFEDGGFGGGGGGFGDEGEGGG?=FEEDEBC=B=BCBC=BEBAE#
+ at HWUSI-EAS635_102902104:5:100:4231:13969/1
+CTTGTGGATTATCTTTCTCAGCATCAATTTTCGCTAGAATAGTACCTGTTCCACCACGAATAAAACTTGTTTTAACATCAAATTTTTTCTCAAATGCCAT
++HWUSI-EAS635_102902104:5:100:4231:13969/1
+GGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGEGFGGGGGGGGFGGGGFGGEFGEACDCCGGEGGEFFDEEGGEEEFGEDEDFDFDGGGA>=-BBB-BCB
+ at HWUSI-EAS635_102902104:5:100:4271:13277/1
+CTAGCTCTTTTCCCTGGTGTATCACCCGGAGCCAGCTGTGTCCGGTGTGATACCACGGGTGGTGATCCAGACGGACCCGTGCTGCG
++HWUSI-EAS635_102902104:5:100:4271:13277/1
+GGGGGGGGGGGGGGGEFFFFGGGGGGGGEGDFFFEFEEDFGGGFGBFDGEGFGFFGGBEEFF at FEBECCCEGEEEEEEE@@C<AC#
+ at HWUSI-EAS635_102902104:5:100:4310:14416/1
+CAGAAGGTGAAACAGACCCTCACCGTCACGTCTGGGTCGGATCGCATCTGGTCGACCGATGATTGCGGTTCCTGGGGGCCGAAGGGTGTGCACGAGATCA
++HWUSI-EAS635_102902104:5:100:4310:14416/1
+GGGEGGGGGGGGGGGGGGGGGGGEFGGGGGDGGFGECDEEADEDDBFFDEBAEE?E?DECE at DCE=BA05CCC5CDBDEC at 59>:92;,6512..@?:?#
+ at HWUSI-EAS635_102902104:5:102:7595:7808/1
+GATATGGGAATGAATAGTCTCCAGTTGCTATAAATATATAATCTGCTGTATACACGCCATAGTCCGTTGATACATGATATATACCATCTATGTATGTTAC
++HWUSI-EAS635_102902104:5:102:7595:7808/1
+FGGGGGGGGFGGGGGGGFGGGGGGGGGGGGFGGGGGGGDGGGGGGGGEGGGGGGGGGFGGGFEFFGCDF?DEEDDGEEECEDEEDEEFFEEEEBFBCBEB
+ at HWUSI-EAS635_102902104:5:102:7735:17205/1
+AGATAGGACACAACGTCGTGCTGCACCATTTCCAAAACATTATCTGAATGCTATACAAGATTATGCTCATAAGCAAGAAAAAATTGAATGGCCACCACAA
++HWUSI-EAS635_102902104:5:102:7735:17205/1
+GGGGGGFGGGGGGGGGGGGGGGGGGGGFGGGGGGGFGGEGGFGEGGFFFGGGGEGFGBGGGGGGBG?GEGGGGFFGFFEEEEEE?D=EDDBDEAFF?FE=
+ at HWUSI-EAS635_102902104:5:102:7802:6196/1
+AATGACAATCATTGCCGTTATAGTAGCAATAATTGTTGGTGTCGTACTACAAATTGTCTTTAAACTACCCTTAATCGTGAGTTTAGTGGGGTCAGTATTT
++HWUSI-EAS635_102902104:5:102:7802:6196/1
+FFF5FGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGEGGGDGFEFGFDCFFFFEFFFGGBGEFFFDGFEDDGEACEBEDEFD?ACAB9?C5???>A=
+ at HWUSI-EAS635_102902104:5:102:8193:4675/1
+AAGATGAGGGCATAGGTATCGTTCCAGAACTTCAATCACGTATCTTTGAAAGAACGTTTAGAGTTGAAGATTCTCGAAATACTAAGACTGGTGGTTCGGG
++HWUSI-EAS635_102902104:5:102:8193:4675/1
+GGGGGGGGGGGGEGGGGGGGGGGGGDGGGFGGGGGGGGGFEGEGDGGGGFGGGFGGDGGGABECEGFEFGDB?=GDCCEEGFDEBGEEABC>EB?B at BBB
+ at HWUSI-EAS635_102902104:5:102:8273:4957/1
+AAGATAAAACGATTAGAAATATATTCATTTGGACAATGTGGTTATGACATCTCAACTGGCATTGAGTCACATAATGAAAAAGATTTTAATAAGATGACTC
++HWUSI-EAS635_102902104:5:102:8273:4957/1
+GGGGGGGGGGGGGGGGGGGFGGGGGGGFGFGGGEGGGGEGGBGEGGGFEGFGGGGGGEGGGFGGEGEFDFFDEGGDAFFFFECCEGGFGDDFFFGFEFAG
+ at HWUSI-EAS635_102902104:5:102:8298:13388/1
+GTCATATCTATTTCTTCCAATTTTAATAATTTTATTTTGTTGTCTAAAGTACCTCCGTATCCTGTTAAATTTCCATCTTTACCAACCACTCGATGACATG
++HWUSI-EAS635_102902104:5:102:8298:13388/1
+GEGGGGGGGGGGGGGGGGGFGGGGGGGGEGGGGGGGGGFGEGGGGFGGGBGFBGGADFFFEGEGBFFEEGEFFDEFEGEGE?:CAEADBCC at 5?:;=:::
+ at HWUSI-EAS635_102902104:5:102:8526:2532/1
+TAAATCGTAATAATTACGTTTTGAAGAAATAAATTCAGAAAGGATGTACTATCATGTCTCATCATCGCGTCATTATCATCGGCGCAGGCGCAGCTGGTGT
++HWUSI-EAS635_102902104:5:102:8526:2532/1
+GGGGGGGGGGGGGGGGGFGGGGGGGGGGFGGGGGGGGFGGFGGGGGEGFFGGGFGGEFEGEGGFFGBDGEEGGGFGGEEG=DDEEEEEAEDAA@@?>9>8
+ at HWUSI-EAS635_102902104:5:102:9042:11725/1
+TGTTGTTTGATTATTGTTACCATATATAGAACTAGACCCATAGCAAGAATAACTGCGAATGAATGTGCATCCTTGAAAACACTTCTAAGTGATTCCTCAT
++HWUSI-EAS635_102902104:5:102:9042:11725/1
+GGGGGGGGEGGGGGGGGGGGGEGFGGGGGGGGGGFGGGGGGGGGABGGEGGGGGFEGGEGFGGGDEFBEDEAAEG?EEEGGGGEGGE at G?FEEEDFEEEF
+ at HWUSI-EAS635_102902104:5:102:9282:16605/1
+TACGGAGATTTAGAAGATGGCTCACATTCAGATGGACGTGTGTCAAATAGCTCTTCTCAATCGCTTCAATATTTACTAAGAGGTAGCACTAAGTCTTATC
++HWUSI-EAS635_102902104:5:102:9282:16605/1
+GGFGFGGGGGGGGFGGGFDGGGGGGGFFGE:EEEEGDGCGGGGFDEGGFGGEGEGGDGFDGEAFEGFEEFAFDAFEEE:E5C:5?AAAACBCEAC=?B:@
+ at HWUSI-EAS635_102902104:5:102:9318:10537/1
+TGCTAGGCCTTGAGCAAGTCCACTGATAAATAAAACCATAATCGCCATTAGAAAAATAATGAACATGATTAATATAAATCTGAACTTATAAAATTTAATC
++HWUSI-EAS635_102902104:5:102:9318:10537/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFBGGGGGGFGGGGGGGGGFDEGGGGFFGGFGEGFEEFBFFBEFBDFEEEAGEEGGEG=
+ at HWUSI-EAS635_102902104:5:102:9337:16165/1
+CGCATGCTGCGCTCTTGAACCTACAATTGAATCTTTTCCTAAGAATGCCAAATTCACATATTGATATTTAATTTTGTTTGTATCAATATACTTCTTCTTA
++HWUSI-EAS635_102902104:5:102:9337:16165/1
+GGGGGGGFGGGBGGGGGGGFGGGGGGDDGGGGGGGGGGBGGEGFGEGGGGFFGEGEGGGFEEFEGEGGG?EGEGFDEEEEGEGG?DFGGEGDGBGEEEEE
+ at HWUSI-EAS635_102902104:5:102:9768:9183/1
+ATGAAATGATATTAAGATTTATCAAGTCTACTATGATTCTTATGCTACTTTATATCATAATGAGTTTAGTCATATCTAATGATCCGATAGAATCTATTCT
++HWUSI-EAS635_102902104:5:102:9768:9183/1
+GFGFGGGGEGEGGGGGAGFFGGGGGGFGGGGGGGGGGGGGGGGGFFGGGGGGGEGGDEFGFE=FDEDBDC7+*;=@@>>BF:BBFEF?F=B5EDDACCE?
+ at HWUSI-EAS635_102902104:5:102:9852:6095/1
+AGTACCTCCGTATCCTGTTAAATTTCCATCTTTACCAACCACTCGATGACATGGTATAAGTATAGAAATAGGATTACTCCCAACAGCACCTCCTACAGCC
++HWUSI-EAS635_102902104:5:102:9852:6095/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGEGFGFGEGDGFGGGAGGDGDEDG=GFGEGFFFBGGGFGFFFCFEB:
+ at HWUSI-EAS635_102902104:5:103:11071:8464/1
+TGACCCAAACCTTGATATATATCTTTCACAGCAATATCGACGACTTGGAAAACTGTACCACCATCCCCAATCACTCGCCCCATACCAATCAACATATCAT
++HWUSI-EAS635_102902104:5:103:11071:8464/1
+DEDEDEEDE?EE?EEDBDEDBEEEEEEDEEEAEEDEEEAEEDCADEEDDEBEEE?B?C:AC??DBBAEE=EBBE5E=B=CE@?=?EBEB?EEEEB5@??@
+ at HWUSI-EAS635_102902104:5:103:11570:7211/1
+ACTCCCAATTGAAGTGGATGAACGTATTCACATCTTAAATTTCACAGACATTATCGCATTATCTGTTAATAATGGGATTACAACGATAGATACAACAAAA
++HWUSI-EAS635_102902104:5:103:11570:7211/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGDGDGEGDGGBFDFGGGFFGDGFEGGFGFBDFFEFDAFG=BCCBD?ED?EBECB<
+ at HWUSI-EAS635_102902104:5:103:12206:12070/1
+GAGGTTTATATCACTTTTGATTTAGTAATTTCTCTAACTGATTAAGTGTTGAATTCATACCTGTTTCTACACCCATGTCTATCGCTTGCTGAGCGGCACT
++HWUSI-EAS635_102902104:5:103:12206:12070/1
+FGGGGGFGGGFFGGGGGFGGGGGGGGGGFGGFGGGGGGDGDFFFFGEGFGGFEGGGEGGBBEGEGFGDEDGGEGFDFDGEGDBDDEBEDEDADFEAEB?B
+ at HWUSI-EAS635_102902104:5:103:1343:5153/1
+AAGCGCACTGAAATGTACGATGATGCAGATAACTCACCCATTGTTAAAATACTAAATCCTATAATTAGAAGTAGATATGTTGTATCTTTAAATGCTGGTT
++HWUSI-EAS635_102902104:5:103:1343:5153/1
+GF5GGGGGGGGFFGGEGGGAGGFFGGGGFEGGEEGGGEG?FFAEEEEEFFDFFFE?FEDFGGAFGG?GBGFAFDBE?EDB?E:BBCAACB5>@=@CEEB?
+ at HWUSI-EAS635_102902104:5:103:13482:11944/1
+ATATTATTGGAAATGAGATTGTATGACCTGCAGTAAATAAAGTTATGGAATTAAGATTTAATTTTTTTGATAACGGATTAGTTCCAATATCGATAAATTG
++HWUSI-EAS635_102902104:5:103:13482:11944/1
+GGGGGGGGGGGGGGGEGGGGGGFGFGGGGGGFGGGGGGGGCEEFDGGGGDGGGGGEGFGGEGGGFGGGGDDG?F:FFDGGFAFEFBFDAEC=?C=?@BBD
+ at HWUSI-EAS635_102902104:5:103:13497:6538/1
+TTTTCATATCTAGCCGCTAAGCAATTTGAATCACATGAACAGTATGACTTCATTCCATTATCTAACTTGCATGAAGTCATTCAATCCGTATCTAAAGATA
++HWUSI-EAS635_102902104:5:103:13497:6538/1
+GGFGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGFGGGGGGGGFGGGGGGGGGFGEGGEGEEEGGGFAGGDGFGEFGEGEAGBBFEFE=EBGAE
+ at HWUSI-EAS635_102902104:5:103:13832:12313/1
+AATTAATATTAACAATTCAGCGTAATTTGTTTGCATTACAACTCAATCCAATGATTTTCTTTATCATTAACTTTATTCTTATTTCATATTTGTACGATAA
++HWUSI-EAS635_102902104:5:103:13832:12313/1
+GGGGGGGGGGGGGGGGGGGDGFGFGGGGGGGGGGEGGGGFGGFGFGGGFEGGGDGGGGFGGGEGGCGGEEGFEGEGGFGGFGGGGDDEFDEGEGECABCA
+ at HWUSI-EAS635_102902104:5:103:13832:19933/1
+TCACAGCAATATCGACGATTTGGAAAACTGTACCACCATCCCCAATCACTCGCCCCATACCAATCAACATATCATTCTCATAAAGGGTCACATTAAAACA
++HWUSI-EAS635_102902104:5:103:13832:19933/1
+EGGGGGGGFGGGGGGGGGGGGGGGGGGGGBGGGGGGGGGFGGGGEGGGGEGFFGGGGFGGEG:DFFEEFEGGFEECGEGDBCBCCCC?DEEEECECEDFF
+ at HWUSI-EAS635_102902104:5:103:13957:16135/1
+TTTATTATTTCTAATGTTTATGACAAATTAATTGAACTATTACCTAAATATTTGCAATATAGTGAAACGCAAAATGAACTTGAACTCAATGAATTATTTA
++HWUSI-EAS635_102902104:5:103:13957:16135/1
+GGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFFGGGGGGFFGGFGGGGGGGEBGGFGGDBFGFGGAEGGGFGFFDDDGFAFFAFDEFFBEGEDGEGE
+ at HWUSI-EAS635_102902104:5:103:14072:9872/1
+ATTGTCGGTTATAAACGGTACATCTTCATTAACTCTTCTGCTTACATGAATATCATAAGTACGCTCAATTTTTTTTGCAACTTGGTACCAATTAAATTTA
++HWUSI-EAS635_102902104:5:103:14072:9872/1
+FFFFFFFFDF:@@@@52 at 48>C@?=A5-?A9=3;>?A,A:=>@=2<?>>A4:<44:;=(/<;798B5?-BBBDD<((249A??-A=:=>5>:>55>:<?5
+ at HWUSI-EAS635_102902104:5:103:15154:13453/1
+AAATGATGCAATGTATAACCGAATTTTCAGTGATACAACAGATGATTGGTTAGGTCATTTACGCTTAACTATTAATGCCATTCAATCTTATCAATATACC
++HWUSI-EAS635_102902104:5:103:15154:13453/1
+GGGGGGGGGGGGGGGGGGGGFFGGGGGGGGEGGGGFGGGGFGGGEGGGGFGGEGEGDEGGE-DEDGEEFDAFFFFGFBGGFGGDEGDFFDGGBDGBFFDB
+ at HWUSI-EAS635_102902104:5:103:15500:3607/1
+ATCTTGCTGAATCTGATAACCATTAATATTTAAATGACCATTATCTAGGGAATTAATAAATTGAGGTTGAGTTAAAAATGTTGGATTTTCACCAGCCTCA
++HWUSI-EAS635_102902104:5:103:15500:3607/1
+GGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGEGGGFGGEGGEG?GGDGGEFDFFAEEFFDBFFF=CBBBE=AAC@=B:EB
+ at HWUSI-EAS635_102902104:5:103:15870:1164/1
+TACTTGAAATAGTTGTTCTATTAAAGGGTTTTGGGTAACATCAAATCCAGTTGCGATAATCGGTTCAGTATGAGAGTGAACAATATGTCCATTATCAAAA
++HWUSI-EAS635_102902104:5:103:15870:1164/1
+GGGGGGGGFGGGGGGGGGGGGGGGG,7@=@FFFFFGGFGGDGAGGGFGGGEGGGEEGGGGGBGGDE?DC?GGFGEGBGE?E?BEBGEGFFGEEGGD55@?
+ at HWUSI-EAS635_102902104:5:103:15961:11694/1
+TTTTATTGTAGAAATTGGGGGGGATATTTATATTTATTGCGATTACATATCATAAACAACTGACTAGGGACGATTTACAGCATTATAAACATATCGAAGA
++HWUSI-EAS635_102902104:5:103:15961:11694/1
+GGGGGGGGFGGGGGGGGEGGGFGEFGEGGGGGGFGGEGGDFDGGGDEDDFGFGGGGGGFFECDFDDEEEEEB=DDGG?FF=EGEEFF?EEFGDGG==BC:
+ at HWUSI-EAS635_102902104:5:103:16004:10615/1
+CTCCTTTACTAATGCATAATGTTGCCCATGTGTTTCAATGGATACTTGTCTCTCATTCGCATCTTTGACACTTATATTAATAATTAAGTGATTAGGAGGA
++HWUSI-EAS635_102902104:5:103:16004:10615/1
+FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFGGGEGGGGGEFEGGGGEGFEEDEGGGGGEBEEGGEEGEGEBEE?9ECBAA at A=ECCB?CDDC
+ at HWUSI-EAS635_102902104:5:103:16033:7130/1
+GCGCGCTCATCATCACTATAATCAATATATTTAGGTGTGATAGTTTTATCTTTGTTTTTTGGTTTATCTTTAGCCATGTCAACTTTATTTACAGCTTGAT
++HWUSI-EAS635_102902104:5:103:16033:7130/1
+GGGGGGFGGGFGGGGGGGGGGGGGGGGGGGGGGGGEGGGGDFFDFGGGGEGGGCGGGGGG0?>ACAE?BECBBBCBCACC=DC=DC5CC?1@:?@BB=AC
+ at HWUSI-EAS635_102902104:5:103:16233:19310/1
+CATTACAGTGAAATTCAAACATTCACTCAATTAAAAGGTGATGCTTTTACAATCATTGGTGGTAATGAGAGTGCTTTTGATGCAGCCATAAACCTTAGTC
++HWUSI-EAS635_102902104:5:103:16233:19310/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGDGGAGGGGGEGGGGDBBFFFGFGGBGGDGFGGFBCGEGGF=7;)+*6976?CDD:DDEFADAFCF
+ at HWUSI-EAS635_102902104:5:103:16696:9907/1
+ATTTAGAAAAAAATCTTGAGATGTCAAAGGGACATACAGATGTATCGCAAGAGTCGAGCAATGGGGAAGAACAAGTAACACAAGAGCATTCTCAACATGT
++HWUSI-EAS635_102902104:5:103:16696:9907/1
+GGGGGFGGGGGGGGGGGGGEGGGGGFFGGGGFGGFGEEDGGGGGGG?GFEFBGEFDEGEFGGDEFGEGBFFFGFGEGEGFDFGFCFGEGBDAGDEGFG=@
+ at HWUSI-EAS635_102902104:5:103:16853:13233/1
+CTTTGACTGCAAATTTCTCGTGAGCGGTTGCAAAGATAATATGTGGTGATCGCTTCATTTTATTAATTTTTTGAGCTAAATCAATACCACTTTCATCCAT
++HWUSI-EAS635_102902104:5:103:16853:13233/1
+GGGGGGGFGDGGEGGGGGFGGGGAGGGGGGFFGGFEFGEGGGGFGGEGDBCGGFGDEGGGEGFGGEFGGGGGG:FDFFEEFGBCGFG at EGFBEGC?EEEB
+ at HWUSI-EAS635_102902104:5:103:17429:12482/1
+TTATAACCTACTACCTCATTTTCTTTTTTGATTTCTACCACACCATGTTTTTGTTCATATTCAAAAGGACCAACTGAAGGTTCAATTTGAATAAATGCAA
++HWUSI-EAS635_102902104:5:103:17429:12482/1
+GGGGGGGGGGGGGGGGGEGGGGGGGGGGGGFGGGGGGFEDFGGFFGGEGFGGFEGEEFGGGGBBEFGADEFEGGDEDCED?CBBBDBEE=DDECCE at 5BC
+ at HWUSI-EAS635_102902104:5:103:1751:13371/1
+TAAAAGCAGCATATATCGTTGGTATATCTAGTCAAGCTGCTCTTGTTTCACAGGCTAATGCGGCACATTACGGTGCATCGAAAGCAGG
++HWUSI-EAS635_102902104:5:103:1751:13371/1
+GGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGFGGGGGGGGGFFGGGGGEFBGGEFEGEEDEEEEEEGEEFBEDD at DDECEE:=?#
+ at HWUSI-EAS635_102902104:5:103:17636:10601/1
+TGAGACAGGAAATGGTCAATCAGATTTATCAAAAGGAATTAAAGAAGGTAACCATCACTATTATAACTTTTTTGGTATTGGTGCTTTTGATGAAGATGCT
++HWUSI-EAS635_102902104:5:103:17636:10601/1
+GGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGEGGGGGGGFFFGGEEEFFEFGBGG=GFFDGGGGGFGGGEFDGFGFFFGFCEFBFBEF?DFEBCB:
+ at HWUSI-EAS635_102902104:5:103:17656:12595/1
+ATACATTTATAAAAAGTAATCAGTCTGGTGTGGTGATCAGTGTGATTTGTTGTCTATTAATAACGGGAGTTTTGACATACACCTTGGATGATTTTTATAA
++HWUSI-EAS635_102902104:5:103:17656:12595/1
+GGGGGGGGGGGGGGGGGGFGGGGGGGGGEGFGGEGGGGGGGGGGGGGGGGGGGGGDGGGFGFGGDGGEGEEDGGBGFGGGEEGEEGEEEFBEEEGEDEED
+ at HWUSI-EAS635_102902104:5:103:17667:13837/1
+TTTAATTCTGTATGATTTAAAGGGATTTTAGTCCAATTTACGTGATCATATAGTAAAGAATTTTGACTAGAAATAATAAATCCCTTATTATGACTCAAAA
++HWUSI-EAS635_102902104:5:103:17667:13837/1
+GGGGGGFGGFGGGGGGGGGGGGGGEGGGGGFGGGGGGGGGFFGGGGGDGGGEGEGGGFFGGGGGGFEDGADEGEGGEEGGGGBEGFGFGGFG:D5C==>>
+ at HWUSI-EAS635_102902104:5:103:18459:5653/1
+ATTAAGTTTTTCAATAACTTTAAAGATTTCAAAGACAATCTTAAAGTTTTCTATTGTTTATTTATTTCACTAACATTACTGATTATGTTTATAAGTATGT
++HWUSI-EAS635_102902104:5:103:18459:5653/1
+GGGGFGGGGGGGGGGEGGGGGFGGGGGGGGGGGFFFGEG=GGGEDGFGGGGGDGFGFGGDGGGFDGGGAFGGFFGGGGGFF?EGDGFDGGDEE=ECDEEA
+ at HWUSI-EAS635_102902104:5:103:18968:14941/1
+ATCAACATTCATAATTAACCGTTCATTTGTAGCTATGAAGGCACCTTCAAATTTAGTCTGACCCTGCACGTTATACTCAATCATACCTAATACAGAAGGC
++HWUSI-EAS635_102902104:5:103:18968:14941/1
+EGEEGGGGGGGGGGGGGGDGGFGGEGGGGGFGFGGGGGGGFGAEDGGG?GGGGGEFDGGECC:CDEEB?EDBDFDCEE?DEFBEF:BBBBACB:AA5AA#
+ at HWUSI-EAS635_102902104:5:103:19356:14364/1
+AAATTCAACATAAACAATTCTCTTTACAAGAAGATATTATTCACCAAATAAATCAGTCAAAGGAATTCGAATCATTTTTATCAACTTATTATGTAAATAA
++HWUSI-EAS635_102902104:5:103:19356:14364/1
+DGAGGFDFFFGDEGFDGDGEEDGGG?DEGEAGGGGGEGGGDDAEDGGBGDBAC?BDDD5BA=CCCE5?EEFGGDGFGGFFEE?BECC-CC?DBADBD?EA
+ at HWUSI-EAS635_102902104:5:103:1996:10243/1
+TAAAGATAAAGCCAATACATGCCACAATATAATAAATCATATTAGGCAAAGAAGTGAATGCTAAAAGTATAATACCAACAGTAATCGATACCGGACCTAA
++HWUSI-EAS635_102902104:5:103:1996:10243/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGFGGGGGGGGGGGGDGGGFGGDGGFGGFEEGGFGDDGDFGGFEDGGGGDAEGE?DEDFADBDECD=?
+ at HWUSI-EAS635_102902104:5:103:2261:16993/1
+CTTGATAGTCATGAAGTATTTTAATAGCCTCATTGAGTTGTAGTTCTCTATTTCCAATATTGCTCCCTAATCCTAAATAAGCTTTAACCATTTAGTCATT
++HWUSI-EAS635_102902104:5:103:2261:16993/1
+GGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGFGGGFGGFGGGGFGGGGGGGEFGEGGDFGGGDEFGGFBBEADFGFDGGEEEGGEDEEE
+ at HWUSI-EAS635_102902104:5:103:2409:15564/1
+AAGCTAAGCTATTAATGATAATTAGGGGAATAGTACTTATATATAAACAACTCACAGCAAATAGCCCCACAGTATAAAAATGATGACTAAGTTGTAAAAT
++HWUSI-EAS635_102902104:5:103:2409:15564/1
+GGGGFGGFGFGGGGGGGGGGGGGGGFGGGGGEGEGGGGGGFGGFGGGGGDGEF?FFGEGFGGGFAACCBEDF==FDCE??>CBCCECBCCC:BBA?8?@?
+ at HWUSI-EAS635_102902104:5:103:2497:19848/1
+AAACAAACGCACCAAACAAAAAATATTCTTGTTTTACATAGCTCGCATTTATCAGGGGACCAAATAAAAAAATCATATCGATTTGCTTTAAATCAATCAA
++HWUSI-EAS635_102902104:5:103:2497:19848/1
+GGGGFGGGGFDFGGGGGGGGGGGGFGGGGGGGGGGEBGEGGGGFDGGEGGGGFDEEEGEBDDEEEDBCDCEEGFEEDDCA=BACC?:BCBACEE?ACB:7
+ at HWUSI-EAS635_102902104:5:103:2629:5162/1
+AGTAATAGCGTTAAAATCGGGTAATAGTAATTTGACGGGTTTATTAAGATTTGATTTAAATATGAGTTCCAAAGTTTTTGACATACTGATGTATCCTCCT
++HWUSI-EAS635_102902104:5:103:2629:5162/1
+GGGEGGGGGGGGGGGGFGGGFDFFFEEEEEGGGGGGGFGEGGBGGGFGGGFFFGGGGGBGGFFGGGEDGGFFAF at EDEEEBFDGDGEFFFDEFFDDEEGG
+ at HWUSI-EAS635_102902104:5:103:2990:5660/1
+AAATTATGAGTCATTGGCCTAAACATCCAACCAATCCCTACAAAGGCTATGTTGGTCATCCTTTGTTAGTTAAATTTGGCCATCATCAAACAATATTTCC
++HWUSI-EAS635_102902104:5:103:2990:5660/1
+GGGGGGGGGGGGGGGG=GGGGGGFGGGGGGGGGGGGGGGFGGFFGGGGDGFFGFGEGGGGGGGFGGGD?FDBDFFFEEBAEGGGEDFDBFFFAF=C5BCB
+ at HWUSI-EAS635_102902104:5:103:3557:8849/1
+CAGCCGAACCATTCATAAGCATGTGTATGCCTATAGGTACAGCAATTCGTTTTGTGTAAACATAAGCAAGTGAGAAAATGACTCCCATTCCAAAATATAC
++HWUSI-EAS635_102902104:5:103:3557:8849/1
+DD-DDCDDDDFFFEFE?EEEEEEEEEEEEEBDEE=C?@ACEEDEEDBDDA?CCCCD??BDC=EEEE=5EE?=DD?>9C;;@=>?BBDA:=A>-:5B>AA?
+ at HWUSI-EAS635_102902104:5:103:3593:18470/1
+ATTCAGCTAATTGATGAAGAATATGAAATTAAACAATTAATAACAAAATTTAATTACTATAAATCTAAAGCTATTAGCAACAACGAATCAATAACTTTAT
++HWUSI-EAS635_102902104:5:103:3593:18470/1
+GGGGGFGGGGGGGGGGGBGGGFGGGGGGGGGGFGGGFGEFEEGEDBFCCFGFGGGFEEDAFEFFDDDAFF?EAECDEAADGGGFGB=EDBEACEEEDEAB
+ at HWUSI-EAS635_102902104:5:103:3784:3498/1
+ACTTGTCATATTTATGATAGTTGGATTAATCGGTACATCATTATCATTTATTAAGTTAATTAAAATTGATCCTATTGAAGCTATTGGAGGTGGCCAATAA
++HWUSI-EAS635_102902104:5:103:3784:3498/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGFGGGGGGGGGFGGEGGGGEGGGGDGFEFEGFG?EDDFEFFGF=EDCEE?C@@A5A
+ at HWUSI-EAS635_102902104:5:103:4692:18026/1
+AACATGATAAATTATTAGATCAAATCCTTTCCAATCAATTGGATCTTGCAATCACTGAATTTACTCCTGTGTTAGAACGGGAAACACATTTACGCGTCAT
++HWUSI-EAS635_102902104:5:103:4692:18026/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFGGGGGGGFGGDEGGGBGFEBFGFGGGFGGFGBGFGGAGGFDGEEGGEEDEECFFF:DCCCBC
diff --git a/example/SRS018978/fastexample_SRS018978.pair2.fastq b/example/SRS018978/fastexample_SRS018978.pair2.fastq
new file mode 100644
index 0000000..2a3c014
--- /dev/null
+++ b/example/SRS018978/fastexample_SRS018978.pair2.fastq
@@ -0,0 +1,1000 @@
+ at HWUSI-EAS635_102902104:5:100:10129:5396/2
+CTTGTCCGCAACGAAGAACCACGTCCCTCGCCATGTCCTCCGGACATAGCCCATGACAAGGTCCAGAAAAGGGATGGCCAGCACCATCAGTGGCACGACG
++HWUSI-EAS635_102902104:5:100:10129:5396/2
+GGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGFGGEGGEEGGGEGEDDBFFED at EEEFEBBABC?DDDDE@=C:ABC:?CD=CBA/9<88:>@>?>=>==
+ at HWUSI-EAS635_102902104:5:100:10159:19587/2
+GTATCAATGTGGGATAATCATTAAAAACGTAAAAGATAATCAGTCCTATGACGAAAATGAGCAATGGCATGAATTTATATAGATATGCTTTCATCAATGA
++HWUSI-EAS635_102902104:5:100:10159:19587/2
+GGGGGGGGGGGEEGGGGGGGGGGGFGGGGEGGGGFGGGGGGFGDFFGFGGFGGGGGGGDBGFDDGBEFDFAFDEEEGGGGEFBGGFGBDEEGBEDEEEEE
+ at HWUSI-EAS635_102902104:5:100:10169:14113/2
+GATGAAAGAATATGGATAATAACAGTGATTAAAATAATCAATGGTAATATTTTGCTTGCAAATCTAATCCAATCTGAACTTTCCTTAGCATACTTTATAG
++HWUSI-EAS635_102902104:5:100:10169:14113/2
+GGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGEGGGGGGFGGGGGGGEGGGGGGGGGEFEGEGGEFGGEFEGEEGEEEBEEEEEEFEE
+ at HWUSI-EAS635_102902104:5:100:10215:16930/2
+AGATCATCCTGGACCACTACCGGGAGAAGCATCACAGCGGTCTGCGCGAGAACTATGACGCCGAGGTAACGCAGGTCAACCCGTCTTGTGGGGATGAGTT
++HWUSI-EAS635_102902104:5:100:10215:16930/2
+GGGGFGGGGGGGGGGGFGGGGGEGGGGGGGGDGGGGGGDGGDGGFGGGDGGGEG?FGEEDGEGAGEA=CFEEDDBCDD?DDBFCBBCEAECDC7?B:B=@
+ at HWUSI-EAS635_102902104:5:100:1031:6726/2
+TAAACTCATAGATACTAATCCAAAAGAAGCAAAAAATGAANNNNNNNNNATAAATCAACTNTNNACAGAAGCCTTAAATAA
++HWUSI-EAS635_102902104:5:100:1031:6726/2
+GGGFGGGGGGGGGGGGGFGGDGGGGGGEGGGGGFGDDDDD!!!!!!!!!6?;<>>CBB at D!7!!@=?>A7F??FCEB?EE#
+ at HWUSI-EAS635_102902104:5:100:10408:18152/2
+CGAGCACGGCGATGACGACGCCCAGGGCAAGAGCCATGATTCCTGCCTGGACCCATCCCGTAGTGCGCATCGCCACCATGACGACGACGCATGCGCCCAG
++HWUSI-EAS635_102902104:5:100:10408:18152/2
+GGGGGGGGGGGGGFGGGGGEEGFGEDGGGFGFGGGFGGGFFGGFFGFGGGFGEGFGFEFEACBAEFFD5?EEECEEGE=EEFEEADDEDFC=CDCC?CAC
+ at HWUSI-EAS635_102902104:5:100:10436:13231/2
+ATGCAAGATCTCAAACGCACCGAGGCGGGCGAGAATACGGTCCACCCGCGGCATCCGGGCCAGTGTCCAGCCTTCAGAAAGGCAATCAGTCAGGACCGAG
++HWUSI-EAS635_102902104:5:100:10436:13231/2
+GGGGGGGGGGFGGGGGGGGGGGGGGGGGFGGGGDFGGGGFEGGGGFFGGEEE=EDEEEEEC=:ADAECBBDD at DDCCACCC@C@@@CCC>C at CCC=CC:C
+ at HWUSI-EAS635_102902104:5:100:10459:6101/2
+AGTTGTCGTTCCACCGCTGGGGCAGTTCGAAATTGATCCCGTTGTTCGGCGATTCCTGAACAGCACCAGCCGGAACTACTGAGAGCACGGTGGTCGACGT
++HWUSI-EAS635_102902104:5:100:10459:6101/2
+GGGGGGGADGGGGGGEGGGFGGGFGGGGEGGGGGGGFGGGGEEGGDFFFFFDDFFGFGEFGGBF=GFEFEDG?DE?DEEDGEGEEFBFDD<BB5BA?AA:
+ at HWUSI-EAS635_102902104:5:100:10551:9023/2
+TGGTAATTTTCTTTCACCATAAACTTCAGGAGATTGACCGAGGGTACCTTTAATTTTTTTAATATCATCATCATTTCTTGCCACATTAATCGCATTTCAT
++HWUSI-EAS635_102902104:5:100:10551:9023/2
+FFFFFFFFFF5FEEEGGGGGEGGGGGGGGGEGGGFFGGGGFGGGEGGGGGGGFGGGGGGGGGGGGGFGGGGGGGFDGDEGAED?FFGEGGF=AFADEFDF
+ at HWUSI-EAS635_102902104:5:100:10556:14844/2
+TACCTCTGCTTTATTTAAAGCATCAATGACTCTATTCGAAGAAGACATTTCATATACATTCGGATGTTTAACAGCACCTTTAATATCGATAAATATTTTA
++HWUSI-EAS635_102902104:5:100:10556:14844/2
+GGGGGGGGGGGGGGGGGGEGGGGGGGGEGGGGGGGGFGFFGGGGGFGGGGGGGGGGFGGGGBFEGGEFGGDFGEFDGGBGFFBGGGEFGFE at DGDFADFD
+ at HWUSI-EAS635_102902104:5:100:10587:16026/2
+TGGTTTAAATAAGTTATAAATATGAATGGTCTCATGAATAGGTTGATTGCACTGGATACATTTACGCATCAATCCATCCCCTTTTAATTGCTAAACGATT
++HWUSI-EAS635_102902104:5:100:10587:16026/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGFGDFFFFFFDFEGGGGGGFGGGGGGGGGGGFGGFGDGGEFGEGGFEGGDEFFBECC:FECDBE=?=C
+ at HWUSI-EAS635_102902104:5:100:10639:4544/2
+ACCAAACAAAAAACATTTTTGTTTTACATAGCTCGCATTTATCAGGGGACCAAATAAAAAAATCATATCGATTTGCTTTAAATCAATCGAAAAATGTTTA
++HWUSI-EAS635_102902104:5:100:10639:4544/2
+FGGGGGGGGGGGFGGGGGGGGEGGGGGGGGGFFGGGFGGGGGGDGFGGCFGGGGFGGGGEGGEGGGGEEDGDEEEEDEGEADEBADEADDDDDEDB@?CB
+ at HWUSI-EAS635_102902104:5:100:10687:9383/2
+TAAAGCGAAATCAACATTTGCAAGATGTGCCTGGTTTTAAAGCGTTAAGATTTCTTAGACCGGTAGTCAAAGGGAGACATTACATTATCATCACGCTATG
++HWUSI-EAS635_102902104:5:100:10687:9383/2
+GGGGGFGGGGGGGGGGGGGGGGGGGGGGGFGGGGEGGGGFGGDGGGGGGGGGGGGGGDGDGGGCGFEFEEGFFFGFGDFBEGFEEEDDGFFGDG?EE=GE
+ at HWUSI-EAS635_102902104:5:100:10752:20680/2
+GTCGTGTAACAGCAACCAAAAATAAAGGACAACAGAGTGTATCAAGCCAAAAAGCACAATCTCGTTCTTTAATGCCGTCTCAAAGACCTTATAGATCGGA
++HWUSI-EAS635_102902104:5:100:10752:20680/2
+GFGGEGGGGGGGGGGGGGGGFGGFGGGFGGEGGFGGGEGEFFGBEGGGFEFEEEGEEEEGDEEEEEBGEEEEEEEEEECEEEEEEEEEEEEEEEEE@=EB
+ at HWUSI-EAS635_102902104:5:100:10772:1354/2
+TCTTGATTTTTGAGAAATGGTGCATGTTGAAGAGCTATATATATAATCAATATTATCGCTAATACTGCAATAATATTTTTAATAACACTAAAGATATATC
++HWUSI-EAS635_102902104:5:100:10772:1354/2
+GGGGGGGGGGGFGGFEGGGGEGGGGGGGGEGGFGGFGGGGGGFGGFGGGEGFGGDGGGFFGFGFGDGGBGGFFBDGFGGGBCEEEEFCEFDDBFEFFFB@
+ at HWUSI-EAS635_102902104:5:100:10886:15850/2
+ACCTTCAGTGCCCTCATTATGGAGGCGGTCCCACTCAACCTTAAAGGGGTGCCAGTCGGT
++HWUSI-EAS635_102902104:5:100:10886:15850/2
+GGGGFGGGGGGGGGGGDFGFGGGEGDFFCEEE:B3:*=:9:?-??4>'<52/<48:???#
+ at HWUSI-EAS635_102902104:5:100:10914:18565/2
+CAGGTTGAGGTCCTTCCACCATTTGCAGGAGGGTGAATGCACGCCAAGATCAGTGACGAGCCGCTGAACGTCGCCAAGGTCGTCAGCTTGGTGAGT
++HWUSI-EAS635_102902104:5:100:10914:18565/2
+DGGGGGGGGDGEGGDGGEGFGFGEGEGGAGEDEBEDFFFEFGDDGEFFEGFGDFFFDFDGGCGF:A?BB at EGEBGDEC:CCC at CCEEBDD??@5@#
+ at HWUSI-EAS635_102902104:5:100:10960:14408/2
+TTTACCGCGCTTTATATGACGCCGACATTGCCTCACAAGCACAGAGCATTGACGCTGCGGATGGTCTCACCCTTCACGACTGTCGCATCATCGCCCCGGT
++HWUSI-EAS635_102902104:5:100:10960:14408/2
+GGGGGGGGGGGGBGGGGGGFGFGFEDGFDGDGGGGGGGGFGGGGEG?EGGFGGGGGGGBFBEEE=EEDBBGFEEFDDFEBBC?EEEB5F=EFDEDEE<5A
+ at HWUSI-EAS635_102902104:5:100:10976:4160/2
+CCTAGTCGAACTTGGGTAGCCGAGTAAAATATGGGTATGTCCCTGGGCTGACCTGCGGCCCTGGGACCAACGAAAG
++HWUSI-EAS635_102902104:5:100:10976:4160/2
+FFDFEGGFEGGGGGEFFDFFDEEDBEDADEFDDFEEGBGFF:FFBGGGBGBBEEE=B:?AB?B5BA@@A at A5?:@#
+ at HWUSI-EAS635_102902104:5:100:11030:10751/2
+ATCATGATGCGATCCCTGGCCACTTTGGCCACGATGGAGGCAGCTGCCACACACGCACACACTGAATCGCCCTTCCACATTCCCAGATCGGGAACCGTGA
++HWUSI-EAS635_102902104:5:100:11030:10751/2
+GGGEGGFGGGGGGGGDGFGGFGFG?GFGDGGGGFEDEEGGEEFDEEEGEGGEGEB=DDBEBE:BBBACCADC?ACD=D?=C at CC@A=9B==:<C5=;614
+ at HWUSI-EAS635_102902104:5:100:11046:1349/2
+TCATCATGATCGCGGACACGATGCCGCAGAGAGTCGGTGCCATGACCCACCATCCCGAGTGGGTGA
++HWUSI-EAS635_102902104:5:100:11046:1349/2
+GGEGDEGGEGGGG:BFGGGEGGGFGGGFG=EEECEEECEEGGEGEEGECBEF5EFEB=E?@@(??#
+ at HWUSI-EAS635_102902104:5:100:1108:12556/2
+ATAGCCGGAGTACTGAGAACCTTTGGGAGCGACAGGTACCTCCTCGTGACAGATCGACACG
++HWUSI-EAS635_102902104:5:100:1108:12556/2
+GGDFGGDFGGCFGGGGEFEFFEGGGGGGGGGEFEEEA?=EBEE at CEBDBDCCACC5=???#
+ at HWUSI-EAS635_102902104:5:100:11134:9845/2
+GTCGGGAACGCAACCTTCTCGTCGATCTGGATTCAACGATCCTACATATTCCGATGGCCGAGGTGGCACGAGCGTGCAAGCCTCTCATAGATCGCACTAT
++HWUSI-EAS635_102902104:5:100:11134:9845/2
+GGGEGGGGGGGGGGGFGGGGGFGGEEGGGGDEEDEDCEDDEEEFECBEEBEGEEEEEDEFEEEBFBCCCCACCC2A@::@BC<A19':09<<AAA<<1=8
+ at HWUSI-EAS635_102902104:5:100:11194:14108/2
+GGCGAGGGGGCAGCGTACGCGGTTGTCGGTGACTGCACGAAAGGTGTTGGGGGAGGTGGGTTCCTTTACACGAATATTGACAGCGTGTCAGCCGGGATCG
++HWUSI-EAS635_102902104:5:100:11194:14108/2
+GGGGGGGGGGGGGGGFGGGGFFDFFEGGGDGFFFGGGGGEEDGGBFCFFFGGFCGA2EEE?CCCCEEEDEEEEEEBEEEE@?DDEEGEE@@ACCCC@?CD
+ at HWUSI-EAS635_102902104:5:100:11199:16198/2
+CACACCGCGACATACGACCTACAGCCTCACCTCGTGCTCACCCCTGAACAGTGGCACGAGCGTCTAAGCGACGAGGAATACTACGTGTTGCGCGAAGCGG
++HWUSI-EAS635_102902104:5:100:11199:16198/2
+GGGDGGGGGDGGGGGFGGGGGGFGGGGGFGFCEBCDFCDDGEFEB at C@@@BACCCACC?@?@<B=@C;@AA>=AA?<A;AA>=?A>A>?289282:@@::
+ at HWUSI-EAS635_102902104:5:100:11246:2596/2
+GCATGGATGGCGAGTATCAACGGCGTCATTGCGGCCAATGCCCCACATCCTTGGGTTATTGGGGCGTTGTGGGGG
++HWUSI-EAS635_102902104:5:100:11246:2596/2
+GFGFGGGGGGGGEFEFGGGFEGGGGEGGGEGFEEFEEEEEAEEEEEEEEE?AAAA)?:?@C=CCAD@?A<AAAB#
+ at HWUSI-EAS635_102902104:5:100:11247:8446/2
+GAAAACGGCAACCGGAGAGTTGTCACATGCCTGACCCTGGGCCCGGCGCTCAGGCTGACAGCCCAAATGGGCGGTACATCCAACTCTGGATGC
++HWUSI-EAS635_102902104:5:100:11247:8446/2
+GDGGGGBBFGGEDEGGGEGDEGDEEGEEFGEEFDEEEGGBDEBEEEGEEADBBDEEAEAEEEAEEEEEEEAB at A9A?A<>BB?BBA??99>@#
+ at HWUSI-EAS635_102902104:5:100:11296:15773/2
+CATAGTTGAGCCTCTCGCGTCCGACCTCTTCTCTCGAAGACGTCCGCTCGTGCAGATCAGCGCTCACCACACCAGCCTTGACGGTAATCGCACGCG
++HWUSI-EAS635_102902104:5:100:11296:15773/2
+GGGGDGGGGGGGGGGFGGGGGGGFGGFGFGGEGAEDCEEEFEABEBCBBB:==?A@@A at AECDCEEEE?E?BC?BBC=A-07::+9=;=>=5AAA#
+ at HWUSI-EAS635_102902104:5:100:11347:9546/2
+TCCGCTCGGTCATGGGTTCGACGTTGACGCGGTTCAGCCCGAGGGGCGGGCCCTGCTTATTGGTGGG
++HWUSI-EAS635_102902104:5:100:11347:9546/2
+FFGDGGGGGGDDGGGG=GFEGGEGGGAFGGGGEGF?EEECFGGGGBBGG?5AA?B;>59:?5==>?#
+ at HWUSI-EAS635_102902104:5:100:11407:11011/2
+ACTCCCATATGACACCAGCAAACACACCTATAATTAGTCCGGCAATGATACCTATACGCGGAGTGAAAAAAATTGCTCCGAATATAAGGCATATAAAAAG
++HWUSI-EAS635_102902104:5:100:11407:11011/2
+EGGGGFGGGGGGGGGGGGGGGGGF,CCC at CGFGGGGGGGDEEE?EDDDDDG=GGEFEGGGGDGAGGFGDGEGDDDD=FFDFEBDBE at ECE>?AA?EEE at F
+ at HWUSI-EAS635_102902104:5:100:11407:6169/2
+AAGGGCCAGTACCACTTCACTCCTGTCACTGACACCGTCGTGGGAGCTCAATTCGCTGGATACGTGAACTGGAATCCCGCCGCCG
++HWUSI-EAS635_102902104:5:100:11407:6169/2
+GGGEGGGGGFGGGEGGGGDGGGGFGGBGGFEFGGGDGGFDDD=DAEAEDFFBBBFEBCB4A@:A=:-??;=??55@@D?@C?AA#
+ at HWUSI-EAS635_102902104:5:100:11430:16064/2
+CCAGATCGGTGTCGTCCTCTGGTGCTGCTCGGCGTGGCATACTCATGTCAGACATTCTGTCAAGATATGGGGCATGATGTCTTGTCCGACGCGGGGAAAT
++HWUSI-EAS635_102902104:5:100:11430:16064/2
+GGGGGGGGGGGGGGGGFGGGGGFGGGGGGGGGGGFGGGFGGEGGGFGGGGGGGGGGGGFFEFDGDEFEGFGFF=BFB:ACEDEGEE at FCEEFGAFEAAC?
+ at HWUSI-EAS635_102902104:5:100:11449:11207/2
+CCAGGTTCAAGACGAGATCAAAGCACTCAAGGCTCGTATCGACAAGGTCTCCGCCTACCCCGATCTCAGCAAAGATGACACTGCGACTATCGCCT
++HWUSI-EAS635_102902104:5:100:11449:11207/2
+GGGGGEGGGGGGGGGGGGGFEEEE-<<=>@GGGFEGEGEGGEEFGDDAFDEBDDEAEFAGEB5?CDD=DDDCCDBBCCCDDA at DCAA:A2@:??#
+ at HWUSI-EAS635_102902104:5:100:11547:8844/2
+TGGAAGTCGACCGTCCGGCTGACGTCTACGATGCCGACGGCAACCACCTCTTCGGTTCCCATCTGCCTACTGAGGGGTACCGCGATTTCCTGGCCA
++HWUSI-EAS635_102902104:5:100:11547:8844/2
+GGGGGGGGGGGGGFGGGGGGGGGGEGGGFG=DGGGFDFBF5:@?ACCE=C?@?:A8=??@09:74:A55=8:37:A?&,A=;<:(@7A3 at 7,@@@#
+ at HWUSI-EAS635_102902104:5:100:11563:20500/2
+TGTGTGCTTTGCGATCGGCTTTTTCGGCCCGGGCGACGGCGGCCTCGACAGCCAATTTCAAAGCGTCAATGTCTTCAGGGCTCGGCGAGGTCCC
++HWUSI-EAS635_102902104:5:100:11563:20500/2
+GGGGFGGGGGGGGGGGGGGGGGGGGEFGFGGGEEGBGGFEFFEE=BDCC at DDC?CEEEBBBCABC>CACCC?CCCC?CB=A;@?CCC>AC5:@#
+ at HWUSI-EAS635_102902104:5:100:11762:11596/2
+GCATGGTTCGGACGTGACTACTTGAGGTCCAAGAGACGCCGTCGACTAGGTGGTCAGCGTCACGCCCCGGCCGCCGTCGAAGCCTAACGAGAGTCAATCA
++HWUSI-EAS635_102902104:5:100:11762:11596/2
+GGGGGGGGFGGGGGFGGGEDGGGGGGFEFGGGEFEGGGGGFEGFEE at ECD:CEAEDDEEAFEEDEDEFCDEGEEEC>C@>=>>>88?@???6A5A at C;A?
+ at HWUSI-EAS635_102902104:5:100:11877:18462/2
+GCCGCAAAAATCATAGCCAGATCGAAGACCGGGCGGTGAACCCCTTCTCGGACGAAGGCCCCGACAGTCGCGAGATCCTCGTGATTGACCTCGATGTAGA
++HWUSI-EAS635_102902104:5:100:11877:18462/2
+GGGFGGGGGFGGGEFGGGGGFGFGGGGEGEGEEGGBBFFBBEDEBBGEEBDAEEEEEBE at BB?@E@?=@@AA5 at A<?AAA>6>8:=:5==@A=><?<?:<
+ at HWUSI-EAS635_102902104:5:100:11891:15093/2
+CATCCCAAGTATTCCCATGGGGACCCCAGTGTTGGCTAGGCCTGCACTGACTTGACGGACGGTGCCGTCACCCCCAAGGGCGAGGACCATCTCGGCCCCC
++HWUSI-EAS635_102902104:5:100:11891:15093/2
+GGGGGGGGGGFGGGGGGGGGGEGGGGGGGEGGGGGGGGGGFGGGGFGGGEGEEEDEEEBEDE at FDBBABAAEEE@;AAA@:AAAA:AA5A:=BA?BAABA
+ at HWUSI-EAS635_102902104:5:100:11950:6372/2
+CGGCGTCCGTCGACGCTTGCTCTGACTTGGAATCCCGGCTGCACCAGGGTCAGGGCACCCGAGGCG
++HWUSI-EAS635_102902104:5:100:11950:6372/2
+GGGGGGGGGEGFDGEAFF:E=DCECFFG==EFDEGFA=ECDF at DBAABA5B?BBADC:DD?4AC@#
+ at HWUSI-EAS635_102902104:5:100:11961:9168/2
+TGCGGGTCAGTCGGCATTCAGGCCTCCGTGACGCCGTCGACCCCAAGTGATGTGACGATTCGGGAAATATCTTGTTGGGCACTCTTGAGCCTCGCCTGAT
++HWUSI-EAS635_102902104:5:100:11961:9168/2
+GGGGGGGGGGGGGFGGGGFGGGGGGGFGEGGEGGGGEGDEGGGGDEFCFEBEBCBBECECBFDFDDDEDEEFEDC?ECCC=@CDD at C5CCDCDCD?CC,?
+ at HWUSI-EAS635_102902104:5:100:12169:12934/2
+ACTGTCGGCAACCCAACTGGGAATTGTCGCCAGGTTGGTGGTTCCGGTCGTCGCAGCCCGGACCCTCGGCAACGATGTTGATTTCCCCAGGCTAGATCGG
++HWUSI-EAS635_102902104:5:100:12169:12934/2
+GGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGEGGGEFGGGGGGGEGGEFGFEGGGGEGEGEGEGEFFBDDECCEADECCCBE,CCCCCC?CCCAAC:
+ at HWUSI-EAS635_102902104:5:100:12211:15281/2
+TCTCCGGTCCATTCCTGGCGCCCTGTGAGCCACACAGCATTGGCGGCGGCAGGTCGTGCTGCAACAAGGGCGGCAGGGGCGG
++HWUSI-EAS635_102902104:5:100:12211:15281/2
+GGGGGGGGGGGGGGGGGGGGGGGGDEFFGBGGGGGGGFFGGEFEFBDDE?:>?3=;:=4968:<8=>3?(;;%.3?AAA??#
+ at HWUSI-EAS635_102902104:5:100:12217:14392/2
+CCAAGACGATGATCTCGTCCGCCGTTGCCAACGTCTTCAACTTATGCGACACGATGATCAAGATGCTGTCTGACGCAACCTGTTGAATCACCGCCATGGA
++HWUSI-EAS635_102902104:5:100:12217:14392/2
+GGGGGGFGGGGGGGGGGGGGGGGGEGFGGFGGGEGGGFGFGGGGEGGGGEFGGEEFEEEEGEEEEEEEEEEDEGEEEEEBCDADEEEEEEEECECA>AA=
+ at HWUSI-EAS635_102902104:5:100:12251:18111/2
+TGACGTACACGCCCCGCGTCCCCTGCGGCGTACAACGAGTGCCGGGCTTGTAGTTGTCGTTCCACCGCTGGGGCAGTTCGAAATTGATCCCGTTGTTCGG
++HWUSI-EAS635_102902104:5:100:12251:18111/2
+DFFFFFFFFEFFFFFFFFFFEFEFFFFFFFBEEEFFFEC at EEAF=EBBEEDDB at DEBEEDEEEEED@DBB at BBB4@<@;:?=???BBBB?AA??@?0???
+ at HWUSI-EAS635_102902104:5:100:1226:8982/2
+CCTCAACGCGATTCCCAAGATACCTCTGGGGAATCCATCCCTCGACGTCGTCTGGGCGGACCCGCCACAC
++HWUSI-EAS635_102902104:5:100:1226:8982/2
+GGGGGGGGGGFGGGGGGGGFGGGEGGGGGGGEBEEFEFGEGEDEECC=CC;CACACCCC9CCA<=C9AA#
+ at HWUSI-EAS635_102902104:5:100:12278:4183/2
+CCGACCCGCTGGTAGTTAACGAACATGAGGCGGCCTTGGTGGCTCTTGCTTTGGGATCGACGACTTCTCGTCTTGA
++HWUSI-EAS635_102902104:5:100:12278:4183/2
+GGGGGGGGGGGGDGGBEEEEGGEGGFGEGGGGGBDEEAEAEE?=CCEEACBECBE5CCCAABA?AC=CC@>:?C?#
+ at HWUSI-EAS635_102902104:5:100:12305:20683/2
+CTCAGCGGGGTTATGGTGATGGTTCCGGGCGACGTCGCAGGCCCGACCGTCAATCCTTGTACGGGTCGAAGGGGGCGCTGGAACCTTGCGTGCCTTCAGG
++HWUSI-EAS635_102902104:5:100:12305:20683/2
+EGGGGGGGGGGGGGGFEFFFFFEFFGGGGGEGGGGGGGGGGBBEG at DEECB@BB?CCCECCCEDDA?C5ABBBBBA=8<C?7=,?3==7504;:53>9>?
+ at HWUSI-EAS635_102902104:5:100:12357:2531/2
+CTCTACGCCGGCATGGTCATCGTGATGGTTCCAGTGCTTTTGCTCTATGCCACCATCCAAAAGCGGCTAGTCACTGGCA
++HWUSI-EAS635_102902104:5:100:12357:2531/2
+GGGGGGGGGGGGGGGGEGGGFFDFDFFDAFEEEEBGFDCGGEEGGFA?EFGEGEEEGGEGEEGDEEE=ECA=CCAAEC#
+ at HWUSI-EAS635_102902104:5:100:12437:16233/2
+GTGGTGATTGGTGCATTGGCGCTTTGGTCTGGTCATACGACGACGGTGATGCGCGGATTCGCGATCGCCTACACTCTCGTTCTCGTACCACTCATCTTCG
++HWUSI-EAS635_102902104:5:100:12437:16233/2
+DBDD?EEFEEGEGFFGGGFGGGGGGGFEGFGGEFGGFGEEGGGEGEEEEEEEFEFEEEEEEFDEEBCDA?AA?A7A<C7ABBB>:AACAAC<CA4642;9
+ at HWUSI-EAS635_102902104:5:100:12447:8894/2
+AGGTAACGGTGGTCAGGCACCACCACAACCGTTCAGTGAGGTTAGTTCGCACTAGTGCTGGGGTGCACTCTGCCA
++HWUSI-EAS635_102902104:5:100:12447:8894/2
+EEECEEEEEEFF;DFEGDGGEGGEDGEGEG:ACC?EBCBED:BAD at BAB?CCCAC?EBAA?:?(?468165>=?#
+ at HWUSI-EAS635_102902104:5:100:12464:18115/2
+GTCTGGACGGTTAATGAGATCTCAGAGGCTCGAGAACTGATGGATATGGGGGGCGACGGCATCGTCACAGATCGCCCAGACCTCATGTGCGAGTTTGCCC
++HWUSI-EAS635_102902104:5:100:12464:18115/2
+GGGGGGGFGGDGGGGFFFFFGGFGGFGFGEGEAEEDCCD?BCC5AABABB@@&?3,<=>;BBBB7CCCCC<)C=C??-@?AC=A2;::7?6(69:36=?#
+ at HWUSI-EAS635_102902104:5:100:12517:2204/2
+CAGGCTGTCGGAATTGTCCCTATTGAAAACTCTATTGAAGGTACTATTAACATTGTCGCTGATTCATTAGCACATCATGAAGTATACGCACATGGTGA
++HWUSI-EAS635_102902104:5:100:12517:2204/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGEGGGGGGFFGEEGEEGEFEEEEEDEEEEGE===>565893<<=<<CBCDD=@#
+ at HWUSI-EAS635_102902104:5:100:12563:14350/2
+ATCACCAAACAAACGAAACCAAACAATCTCATAGCTTTTCTTTAGAAGGTGAGGCTGGTGAAAATCCAACATTTTTAACTCAACCTCAATTTATTAATTC
++HWUSI-EAS635_102902104:5:100:12563:14350/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGEGGGGFGGGGFGGGEEGFGGGGGGEFDEFFEGDGGGFEGGGGEEGEGEEFEFGGDDEEGGEDEBF@
+ at HWUSI-EAS635_102902104:5:100:12610:5645/2
+TCTTGCGCGATGCCTACGTTGACGGTCGGCTCTCGCCCGACGACTTCGACGATAGGGTGACTCGCGCTTTGGGGGCGGTGACTCGCGCTGA
++HWUSI-EAS635_102902104:5:100:12610:5645/2
+GGGGGGGGGGGGGGGGGGGGGFGFGGGGGGDGGGGGGGFEGGFEEAFDFFGD?EFCC?ECEEFFFEF:BEFE:GDA<>0D/=8>=<?<-A#
+ at HWUSI-EAS635_102902104:5:100:12648:20126/2
+GTATTCGCGTGTGGTCATTGCTGCCGACGGTGTGAATTCATTTCTGAGTCGTGACGCTGGG
++HWUSI-EAS635_102902104:5:100:12648:20126/2
+C at CACDDDDCDCD=CADDBD=?CD?BBBD=:C=C=?CCB at A5:CC@@??=B?B:BBB?BB#
+ at HWUSI-EAS635_102902104:5:100:12725:6789/2
+CCAGGGCTCGATCCGAGATGGAACCATCCTTGTGGATGACGAGAGCGTAGGCGTAACGCTCGGCTGGCG
++HWUSI-EAS635_102902104:5:100:12725:6789/2
+FFFEDFFDGFGGFGD?EEEEDGGFGGGFDFBFEFFFGGGBE:=EEDD@?EBBC=DBCCEBBB?B5@=?#
+ at HWUSI-EAS635_102902104:5:100:12834:20190/2
+TCATCGAGACGCTGACCAATGGCCTTAACTAGCCGACCCCAATCCTGGGGATTGTCGCGCTCAAAGGGCTGCCATCCGGTCCATAACACTGCCGTGTCTC
++HWUSI-EAS635_102902104:5:100:12834:20190/2
+GGGGGGGGGGGGGGFGGGGGGGGFGGGGGGGGFGGGGGGGDGEDGAEEEEEEGFEEFEEEEEEFECCDAADDE-CCECC=CC=@CAECB=CAC==?>A:>
+ at HWUSI-EAS635_102902104:5:100:12852:18783/2
+CGGATCTTCCCGAGGGCGATTTGAGTGCTGAGAGCCTGCGCTCAGTTCGCTTCGCAGTGGTGCCACGGGGCTACTCAATGAGTCAGGTGGATCAGCTCCT
++HWUSI-EAS635_102902104:5:100:12852:18783/2
+GGGDGFDGGGGGGGFGGGEEGGGFGGGGGFGGEFGDEGEGGFGEFEEGGGFEGDFC?CBCAFEB?CA:AAE=@DCC=-C?@A?A@?=:>>AACAACADC=
+ at HWUSI-EAS635_102902104:5:100:12959:20941/2
+GAGGGTTGAGCACGCGGTTGTGCGGCCAGGTCTTGCCTCCGTCGAAACTTTGACGCAGCACACCACAACCCCGGAACGGGAGCATCATCGACGCAT
++HWUSI-EAS635_102902104:5:100:12959:20941/2
+GGGGGFEGGGGGGGGGGEBGDGFGAFFFEFCEEBFEE:FFFBDFADEED:EDDDDEEEEEEEGFEBDDECCEAC?:?@@?'5287CAAA5:A@?A#
+ at HWUSI-EAS635_102902104:5:100:12990:9904/2
+CAGCATGACCTTCGGAACATCACGAGTGGCATTGAGAATGAAGGTATATCGCCCTGGCACAGCGGCACTGACGGCACGAAACACCCAGTTATCCATCTGG
++HWUSI-EAS635_102902104:5:100:12990:9904/2
+GGGFGGGGGGDDEGFGGGGGFGGGGGGGGFDDEEDFFFFFEEEECFFFFFBGGGFFFG=FEGGFFGFEGEEFFFDBEFF:E?DBDDDDA=BCCCCEEEE#
+ at HWUSI-EAS635_102902104:5:100:13033:9777/2
+GAGCGATAAAATCAGGATGATAGTTTAGCAAGTCTGCTTGCTCTCCAAATCCCCAAGTGACGGCCAATTTCTGAATGCCTGTTTCTTGAGCTCCCATCAT
++HWUSI-EAS635_102902104:5:100:13033:9777/2
+GGGGGGGGGGGGFGGFFGEGEFGE?DEEEEFGEGGGGEFGGFGDGGGDFBBGFEFEEEGEFDCEDEEEDEDEE:CFEEEBECBBAAC@:AC at C?CA5BA:
+ at HWUSI-EAS635_102902104:5:100:13126:11648/2
+AATTTCTCCCGGGGCAGCAGGGTTGACGGAACTCACACGCCTCGACCTGTCCGGACTCAATCGAAAATTGTCGGGGGTAGAGCTGACAGTCGCGT
++HWUSI-EAS635_102902104:5:100:13126:11648/2
+GGGGGGGGGGGGGGGGGGGGGGEGGFGGGGGGFGGGGGGGFGGGGGFEEEEGEDBGEGEEEEEAEADCD?BCDC=CC4CCCC?ACABC at 4CCCA#
+ at HWUSI-EAS635_102902104:5:100:1312:10148/2
+CGACCGGGGCGACGGTCGTTATCCACGACGGCCTTGAGCGGAAGGATGAGCTCTGGGCAACGTTGGATCTCGTCAAT
++HWUSI-EAS635_102902104:5:100:1312:10148/2
+DGGGGGGGGGFDFDF=AECEEBEEBEDCEBEBC5A at 5??=@8<>=6=;3>>=>5:AAA,A3>69=BA;<A>?89,@#
+ at HWUSI-EAS635_102902104:5:100:13136:18454/2
+CTGAATTGGCGCGTAGGCTAGCTGCCGAGGGAATAGTCGTGAGCCAGGGCACTCTTTCCCGAGACCTCAAGGATGTAGGGGCGGCGCGCGG
++HWUSI-EAS635_102902104:5:100:13136:18454/2
+GGGGGGGGGGGGGEGFFGGGGGGFGGGFGGGEFEGGEFGEFGGGFGGFEGGDEGEEEEFGG at EEEDEEE?DE?DDCADCBEDE=@EEEED#
+ at HWUSI-EAS635_102902104:5:100:13142:4590/2
+GTGAATTACCGACGAGGTACATCTTGCCTGGACCCGTGATCGAGGTGAAGTCAACGCGCAATGCGTCGAACCCATTCTTTGTGAAGC
++HWUSI-EAS635_102902104:5:100:13142:4590/2
+GGGGGGGGGGGGFGGGFEGGGGEGGGAEEGGEFEEEBEDCABACA<BBBB=AAAADCDBCAA at AC9AA@,>:=6:>A>A?57754@#
+ at HWUSI-EAS635_102902104:5:100:13157:8770/2
+TTAGCCGATGGCCCAATCGAGTACAAGGTGAGGAGTTTCTGAGGCCCTAGGTGGCGTCGCAGCGCACGAACAAACCAAACAAACGAGTCTTCATGGGGCT
++HWUSI-EAS635_102902104:5:100:13157:8770/2
+GGGGGGGGGGGGGGGGGFGEGEGGGGGGCGEGGFGEFGDGGGGGDFEEEFEAEEEFCFFEBEEEEDBDCBC=@EEEEEEEFBE;EC?>5>?AA?A<1?A5
+ at HWUSI-EAS635_102902104:5:100:13228:17583/2
+GGCTTATTCCGCTTCCATGCACATCAGCAATGATCGGGTCCTTGCTGGCCTGGACTGTCGGCGTGGTCCTAGCTGGTTGGCAGCCGCAGCGAATCTAT
++HWUSI-EAS635_102902104:5:100:13228:17583/2
+FFFFFFFFFFFDFFFFFFFFFFFFDFFFFFFFFEFFFFEEEDEFFEEEFEEEEEEFAEEEEEEEDD>@D@=B?@BB;??B?@B@@?70?2?);:???#
+ at HWUSI-EAS635_102902104:5:100:13233:6117/2
+CCACTAGTACTCATCGAAGACCGCCATCGGCCTGACGACACTCGGCATTGGCTGGATCGGGATCTTCCGGATCTTCATAGATTCG
++HWUSI-EAS635_102902104:5:100:13233:6117/2
+GGGGGGGGGFGGFGGGFGGGGEGDDGFFGGBEED?DE?EE?EE?EE?BCEEBCEE=?@?,:===>>=,3=:3;8:99987C8=C#
+ at HWUSI-EAS635_102902104:5:100:13303:5864/2
+CGGACTCAGGAACCTGTTCGGGCATCCTGAATGTCAGGTTATGCTTATAACAGATGCGCATCACTTCAACGGCCAGCAGCGCTAAGATCATCGCAGGGAA
++HWUSI-EAS635_102902104:5:100:13303:5864/2
+GGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGDGGGGFGEFEGGFGGFGGGFGGGGGEGGEBFFGFFGGGGEFFGGEFEGFGGEDGGEBE:ECDDDBCECC
+ at HWUSI-EAS635_102902104:5:100:13349:10003/2
+AGAGCCTTGTCAGACCTTGAACGAGAAGGATTTGTCTACAGCAAGCGCACAACTGGACGATTTGTGACTGAAGATAAGGAGCTGATCGCCC
++HWUSI-EAS635_102902104:5:100:13349:10003/2
+ at 601:33/4-A2A03<B::746:471527+2035,C:<A;?C:>:2B87947<7586?98<::>8A=4BA=:>>=457;7?5=:??:?5?#
+ at HWUSI-EAS635_102902104:5:100:13365:13390/2
+GCGCCCTAGGAATCCTTGAGGTGCGGCGTGGACTGGGGACCTACCTGTCTACGGCATCTGCTTCGACGATTCGGCCCAGTCTCGTCTACCGGAGCG
++HWUSI-EAS635_102902104:5:100:13365:13390/2
+GGGFGGGGGFEGGGGGGGGGGEGBGGGFGGFGFEGGFGEDFEGGGEGEGGEFEEEEBEEGEEFEBBDDCBBC?CCCC9CADDD?ACAAAC4A9A?#
+ at HWUSI-EAS635_102902104:5:100:13365:2887/2
+TAAATCATTTTTAGCAGTTACTCTCATGCCATCAATTTTAATAGTTGAATGATTGTTTTTAGTTAATAAATTACTGATGACTTGGCCGCCACCGTGAACA
++HWUSI-EAS635_102902104:5:100:13365:2887/2
+GGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGEGGGDGGGGGGGG?GGFFBFDFEFGGGAGEEFEE?CEAEEEEEDCDC,;7;=:
+ at HWUSI-EAS635_102902104:5:100:13423:2405/2
+TGGACCCAAACTTTTTCTTATCGCGACATGGCCGACTCCTTGGCAGCCACCGTCAAAGCCACCA
++HWUSI-EAS635_102902104:5:100:13423:2405/2
+FEFDGF?EFFGDDDEGGG at GGGGFGAE=BED5DDDFAFF::C?CC:A=C,AB:CCD?=CE.3B#
+ at HWUSI-EAS635_102902104:5:100:13488:19810/2
+ATATGACATTTTGGTCGCGAAGGTCGGAGAAAAAGATGCTAGGGAATCCAGCTCGTCCACCGGTCAGATGGGTTATCTCTTGGAGAACGGCAAACGTGTC
++HWUSI-EAS635_102902104:5:100:13488:19810/2
+DDDDDDDDDDDDDDCDDDDDDDDBDDDDDDDDDCCCCDDDDDDDBDDDDDDDCDCBDCCCBCABCBDBBDBCABBCBBCBBBBABABBBBBB?BB?8@>=
+ at HWUSI-EAS635_102902104:5:100:13533:3105/2
+ATCGTGTGTTCCGCTTATTAACTGACGATTATCCCGACGGAGTGCTGCGCAACTACCTGGTCAACCACCTTCTTCCCGGGTTTGC
++HWUSI-EAS635_102902104:5:100:13533:3105/2
+GGGGGGGGGFGGGGGGGGGGFFGGFFGGGGGGGGDGFGGGEGEGEEBEEEEEEEEDEDDDBDCDCDDDC?CC=CCCDCC?0=@?#
+ at HWUSI-EAS635_102902104:5:100:13558:7527/2
+TATTGATGACTTTATCAATTGGGTCACCCATTTTAATACCAAAATTTGTTTCAACTTTATCATCTTTGACTAAAACCATGCCTTTAACCTTATGCGTTTT
++HWUSI-EAS635_102902104:5:100:13558:7527/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGFGGGGGFGGGEFGGGGGGGGGGGFGGFGGCGFDGFFFFBGGDG at AEEEEDFD=EACBA
+ at HWUSI-EAS635_102902104:5:100:13687:5456/2
+ATGTCGCGACCCACGAAACTTTCATTGCAAGTGGAGATATAACCATCCAGAGTCCCATGACCGACATCATGGTTACGCAAGGCTAGATCAACCGATTTCG
++HWUSI-EAS635_102902104:5:100:13687:5456/2
+GGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGBGGFGGGGFGFGEGGGGGEGGEBFFGFBFGBGFFGBFE?DDABD5AA:AC?::CCBC@??=>?=9 at AA@
+ at HWUSI-EAS635_102902104:5:100:13791:15916/2
+TATTGTTGATGACGTAGTGACAGCAGAAGACAAAACATACGGTCTAATTGAACAAGGTGATTACGTATCAAAAGAAGGAAAATCTGTTGTTCGTTACGAC
++HWUSI-EAS635_102902104:5:100:13791:15916/2
+GGGGGGGFGGGGGGFFFFFFGGGGGGGGGGGGGFGGGGGGGGEGDGGGGGGEGGFGEEGGFFGDGEFGEEFGGGEEFDEFGBGBGGCFGDFFDDBDGEDE
+ at HWUSI-EAS635_102902104:5:100:13860:17479/2
+TGACGAGATCCAACGTTGCCCAGAGCTCATCCTTCCGCTCAAGGCCGTCGTGGATAACGACCGTCGCCCCG
++HWUSI-EAS635_102902104:5:100:13860:17479/2
+?BGGGFGGDGFGFGGDF=EFFFAFFDADF?FBE:FDEEBE:C5?DD=?CB:@>*683?6.>;?;?BCBBB#
+ at HWUSI-EAS635_102902104:5:100:13920:5610/2
+GCTGTATGGTTCGGAAGACGTGTGTGGGGCTGACTAGCTGCTGTAGTTCTGGTGAATACACGTAGGAACAGCGGAGTGAGGCGCCAAGCATGGCAGGATG
++HWUSI-EAS635_102902104:5:100:13920:5610/2
+FGGGEGGGGEGGGGGFGGGGCECECFFFFFGGFGGEGGGBEEFCCFDDBDFE=FEDEDEDFFADG;;;.-,3530FAEDEDAEBDEEEEBAED@?@=:,?
+ at HWUSI-EAS635_102902104:5:100:14042:11285/2
+CCCAGTGGCGCTCATCGAAAGCCTCCACGCCGGACCACGCCTGAAGCGCATCAACGTGGATCCACTCGGAGTGGT
++HWUSI-EAS635_102902104:5:100:14042:11285/2
+FFFFFEGFGGGFGGGBGGGGGGGEEEEDDGFGAEFBEEEEEBEFECDEDDEGE?E?;:@:4CAAAADCA=A5 at A#
+ at HWUSI-EAS635_102902104:5:100:1404:13931/2
+GGTGCCGGCCTGGCATCGGTTTATAACGTGCCCGTCGCTGGAGCGCTGTACGCCCTGGAACTGACGGTGCGCCCTGATCTTCGCACCAAGCGTGGCTGGG
++HWUSI-EAS635_102902104:5:100:1404:13931/2
+GGGGGGGGFGGGGGGGGGGEGGGGGGGFEGFGGGEGFGEGG?GEGE at EEEEEEEEEEEEAC@CCCC@;C>CA?A9;6995<>CA8<<<:93>(9>88=:8
+ at HWUSI-EAS635_102902104:5:100:14068:18956/2
+GGATCATTAGATACGACTAAACTCATTATGATATAAAGTAGCATAAGAATCATAGTAGACTTGATAAATCTTAATATCATTTCATTTCTTATCCAATGTT
++HWUSI-EAS635_102902104:5:100:14068:18956/2
+GGGGGGGGGGGGGGGFGGGGGGGGGGGFGGGGGFGGGGEGGGFGEGGEGGEGFGGEGFGEBGGG?GFEGEEGGEGGGGBGFEGBDFFFFGGEDDFEGGDE
+ at HWUSI-EAS635_102902104:5:100:14191:14804/2
+CGTCGCGCACGATGAAGGTGACGGGCACCCCACTGATCTGCCAAGCGCCTTGGATAGTGGCGTCAGGATCCTGCAGGTGGGGGAAGGTCAGACCCGCGT
++HWUSI-EAS635_102902104:5:100:14191:14804/2
+GGGGGGGGGGGGGGGGGGEGGGGFGGDGGGGFGFGGFGFGEGFGGGGEGEGGEED=685%()5?;88611EBEEEEB at EDC;:-ACC8AC=>@>=?@?#
+ at HWUSI-EAS635_102902104:5:100:14280:10492/2
+ATATTATGAATGAAAAAAATACGACTTTGAATATCGTTCCTCCTTTACATTTCATGGTCACTGATGAAACAGGACATACCGTAGCCATAGAACCTCACAA
++HWUSI-EAS635_102902104:5:100:14280:10492/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGFGGGGGGGGGGFGGGGGGGGFEGFGGGGGGGGGGGGEGGGDGEEGEGBBEGDGBGBDDFEDE=C
+ at HWUSI-EAS635_102902104:5:100:14496:6007/2
+TGCACGGCGACGCCGAAAATTCGGCGTGGCGGCACGCCTTCCAACCGATTTAACGCGCAGG
++HWUSI-EAS635_102902104:5:100:14496:6007/2
+FDGGGGGGGGGGGGGGFFGGGGGGEFCEFB>?28>>@@4>AB at A?C:::@@>?>>ECB@?#
+ at HWUSI-EAS635_102902104:5:100:14507:20784/2
+CTCAGTGAGCCTTTAAACGAGTCAACGGCTACGACGACCGGCGCATTCGGATCGGGACGCATGGTCTCAGCATGGCACGCCACCATGTCGTGGCTC
++HWUSI-EAS635_102902104:5:100:14507:20784/2
+GGGGGEGFGGGGGGGGEGGGGFGGGGDGGGFBDGG?EEEEGEFG5ACECEFDFBFEAEED,:8=9AAAAAC5CC:=C at CCE?EC3=5:??>5@>?#
+ at HWUSI-EAS635_102902104:5:100:1462:7951/2
+AATATGATAAGTAACGTAAAATCATTAAGATAAGTGAGGTTCGAATATCCAATGACATAAAAAATAATTCCAATCAATAATGCTGTTTTAACATTCATTC
++HWUSI-EAS635_102902104:5:100:1462:7951/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGFFGGEGGGFGGGGGFGGGGFGGGFGGFFFFFGFGGGFGGG?BGEGEFGEEFEEBDFEF
+ at HWUSI-EAS635_102902104:5:100:14768:18459/2
+AACTTTCCTGTTTCTACTGACGATGTGTCTTTACGATATTCACTCAATGCATATTGATATGAGACTCTTATTTGTATACACAGTCGTATCTGTTTTTACA
++HWUSI-EAS635_102902104:5:100:14768:18459/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFGGGGGFGGGGDGGFGGGGGGGGGGGEGFFDGGGGGGGGGFGGGEFGGEGD at DEDGGEEFEEEAB
+ at HWUSI-EAS635_102902104:5:100:14797:7498/2
+CCTTGGCAGAGTGCACCCCAGCACTAGTGCGAACTAACCTCACTGAACGGTTGTGGTGGTGCCTGACCACCGTTACCTCAAGTTCTTGGGCTGATAGACA
++HWUSI-EAS635_102902104:5:100:14797:7498/2
+GGGGGGGGGGGGGGGGGDGGGGGGGGEGGGGFFGGGGGFDGGGAGFFGGGCFFEDEBBCAB=DCCCF?GFEEADEDE at EA@A?AAC?7,CBAB:5 at 5?:@
+ at HWUSI-EAS635_102902104:5:100:14824:11142/2
+GAGCCACGACATGGTGGCGTGCCATGCTGAGACCATGCGTCCCGATCCGAATGCGCCGGTCGTCGTAGCCGTTGACTCGTTTAAAGGCTCACTGAGCTCT
++HWUSI-EAS635_102902104:5:100:14824:11142/2
+GGGGGGGGGGGGGEEGGGGGGGGGGEGAGGGGGGEDGGGGGEGFEDBFFDE=EFEFDEEAA??@@6=>@=>>=>::6==>=@CA:A8A486>4::=>9>6
+ at HWUSI-EAS635_102902104:5:100:14870:1114/2
+GCAGCCCCAGGAGGCCAATTGTCGATGACACCTTCCCCAGCTTGTGGATTAGGTCATACCCAAACATGGCAATAATTGCCGTCA
++HWUSI-EAS635_102902104:5:100:14870:1114/2
+GFGGFGGGGGGGGGGGEFGGGEGFFGGFEGEGEEGGEGEEECC=@5>5;=@C?=CAA5CAB=CCCC/AA:=:8>=7<49<>=A#
+ at HWUSI-EAS635_102902104:5:100:14871:19496/2
+GGAGTCGGTCCCAAATTAGCTGCAGCGATTATGAGTGTCCTTGATGCTGCTCAGCTAGCCACGGCGATAACCGAAGAAGATGACGCAACTCTATGCCGCG
++HWUSI-EAS635_102902104:5:100:14871:19496/2
+GGGGGGGGEGFFEDEEEEEEGGGGGGGEGGGGFGGFGEEGGGFEEFGGGGGFEGEGGGGFEGEEFEEBEEFEFEFFEBEDCBDCCEEEEED=CBBDCACA
+ at HWUSI-EAS635_102902104:5:100:14880:7930/2
+AAAGATGGAACACACCCGCGAAGCTACGAACCATCGTGTGACAGACCTGATCGGAATCTAAGGCAGCCATACCATTTCGAGCGACAATCTGGTCACGTTC
++HWUSI-EAS635_102902104:5:100:14880:7930/2
+GGGGGGEGGGGGGGFGGFGGGGGGGGGFGGGGGGGGDGEGGGGGGFEEGEEFGGEADEDDEEEBGE?FGEGED?EAED?ADDEDA=BABABBBDBBA?AA
+ at HWUSI-EAS635_102902104:5:100:14945:2254/2
+TAAATAACGACCATTTTATTGAGTCAAATATTGACTTAGATTAACTTTATATGCATGCCAATCCGTAGTTGATAATGGTGTTAGAATTGCCATTATAAGA
++HWUSI-EAS635_102902104:5:100:14945:2254/2
+GGGGGGGGGGGGEGGGGGGGGFGEGGGGGGGGGEGGGGGGGGGFGCGGGGGGGBGGGGGEFGGGGEGGGEGEGGDECFCFC=BCE=CCCCEEDEADE at ED
+ at HWUSI-EAS635_102902104:5:100:14989:19465/2
+CGATCCTGATTCCGAGGGTCTCCGTAAGAGGGACGATGAGTGACCCCTTGAAAGCCTCGAATGCCGAATAGGTCAGCTGGCCCGCCAGCACCACCGTGAG
++HWUSI-EAS635_102902104:5:100:14989:19465/2
+GGGGGGGGGGGGGGGGGGFGGGGGGGGGGGDGGGGDGGGGEGFGGFGGEGGGGFEFDGGF=EFFEGGEEDEDCFFED=DDEEEEECBEF?DC?CDA>=AB
+ at HWUSI-EAS635_102902104:5:100:15006:13484/2
+CAAGGAGCACGCGTGACCGCCGCACCCCAACATCAACCAACCGACCCATTGTGGCGACGATGCTGGTCGTCTCTGAGATGGTGGGT
++HWUSI-EAS635_102902104:5:100:15006:13484/2
+GGGGGDGEGGFGDDGDFFFFGGFGDFFGEEDFDFCGEEBFGEBFEEEEEED>D?FC==?=AB=AAA4 at A:6-<;;9A=<AB<AA?#
+ at HWUSI-EAS635_102902104:5:100:15100:16904/2
+TCGGGACGGCGCTCATTAGTACTGAAGAACTTCTCTGCGAGTCACGTGGCTGATCAGCATCGCGACGAGGAACGAGAACAGGAAGGTCACCACGCCAATC
++HWUSI-EAS635_102902104:5:100:15100:16904/2
+GFEFGGFFGGGGGFEGGFGFFGGGFGGGGEGGADGEDGGFGFGGG?C=EEEFFFFBFFEBFEFDBFDADEBEE=?C:?CCEE-BB5=@??DBEBCEABCF
+ at HWUSI-EAS635_102902104:5:100:15151:9868/2
+TGCTATGCGTGGTAACTTGGTTTGCGTTCAGTTGGGGTTTTGTCACGTACATGGCTGTTCAGCCGCCGTGGACGTTGCCCG
++HWUSI-EAS635_102902104:5:100:15151:9868/2
+GGGGGGGGGEGGEGGGGGGGGGGGGGGGGFGGFGGGGFGGEGGGGBGDGGGEGGFBFE?EEEGEDFFE:DCABC=B=CCA#
+ at HWUSI-EAS635_102902104:5:100:15302:7808/2
+TCGCCTCCGATCAGGCGGTGCGCGTCCAAGTCGCCTACCGGTGTGGCGCGGAAGGCTCCGAACATGTGTACGACCGCGTCACCGCC
++HWUSI-EAS635_102902104:5:100:15302:7808/2
+GGGGGDGGGFDFGB5DEECEEEAEEGGFGDDGGEG=EEE?E at E?EEAE=BE=DE:E:FE=?5?>>@65??@?@A at .0359=?=:?#
+ at HWUSI-EAS635_102902104:5:100:15354:19480/2
+ACAACAAGTAACCATGCCATGTCAGACCCCTCAACGAAAGAATTGGACGACAACCTCGGTTAGGTCATCGCGACGCTAACCACGTGTGCAGCGCCCGGTA
++HWUSI-EAS635_102902104:5:100:15354:19480/2
+GGFGGGGGGGGGFGGGGGGGGGFGGGFGFGGGEGGGFGGGDDGEGDGGGGFGGGFEGEEEEDED?DFCFAFCBEDC?CC,C@>>:BACCCCDCDBEC==?
+ at HWUSI-EAS635_102902104:5:100:15422:17588/2
+GGAGCGGAATTACAATGATGAATCAACAGTATGTGTTTCACACAAAAGTGCATCGTGATTGGGTAGATCATAACGGGCACCTAAATGATGCAATGTATAA
++HWUSI-EAS635_102902104:5:100:15422:17588/2
+GEGGGGGFGGGGGGGGGGGG?GGGFFDEGDFFFEFEDGFDGFGEEEEFBFFEFDF?FEFDEDECBEEDGBEEEE???EDECCBCCEBEEEEEE?EBCACD
+ at HWUSI-EAS635_102902104:5:100:15498:16295/2
+CACAGGTATCGCGGTTGTGGGCGGCACCTATGACCACGGTCTACCTCAAGGTGAGTTCGGTTGGTTAGGCCTTGCTGTCGGTTCATCCTGGAAAGCATGA
++HWUSI-EAS635_102902104:5:100:15498:16295/2
+GGEGGF?FEFDFFFFGGGGED;DEEGGGDDAFBFAFFFFBFFFFF?CA=E=5C>CCCC=AEFEGEEDDADEFDBFDEDFD?,3A<:5>;>?6->>@=A@?
+ at HWUSI-EAS635_102902104:5:100:15545:19708/2
+GAGTGTCAGCCTCTAAGCCAGGTCCGAGATCGTGGCACCAAAGAAGCGACGATGACTGTTGCAGGGATGATGGCCAAGCCCCAGAACCACGCTGGTCCAC
++HWUSI-EAS635_102902104:5:100:15545:19708/2
+GGGGGGGGGGGGGGGGGGGGGFEGGGGEGGGGGGGGGGGGFGGGGGGGGGGGEGFFEFFEGGFGGGAAGFCDDEEB::55.;369EDDDEBC5=A6?6:;
+ at HWUSI-EAS635_102902104:5:100:15552:17713/2
+CTGATTGAAAGCTGGTTATTTTCCAGCTTAGCTACCACTTCCAACTTGGTTCCTGGAGCAGAGTATTTAAAAGCGTTATTGATCAGATTCACCAAGATGC
++HWUSI-EAS635_102902104:5:100:15552:17713/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGEGFEFGGGGGEGGGGGGCFFFFDEFGFBCEFGEGGGGGFEGEBG.@<>=EEDDF
+ at HWUSI-EAS635_102902104:5:100:15622:14127/2
+CGGTGTATTTCCGCGCCCCACACCGAGTGGAGTTTGCCACCATCGTTGGTCCCCTCGCTCGGCGGCTACGCGCC
++HWUSI-EAS635_102902104:5:100:15622:14127/2
+GGGGGGDGGGGGFFGGGGGGDEGFGGGEEGDFEFFGFGAGGFGG:DFFEEGDEGEGEBDC at CBB?3-=??=>A#
+ at HWUSI-EAS635_102902104:5:100:15630:17310/2
+CAATCCAATGGATCAAATGCGTGGGTAACTGTGGATGTGCGTGAATTTGCTACGCAAGTAGAACAAGGTAATCTTCGTTATAAACTTAATACCAAAATTC
++HWUSI-EAS635_102902104:5:100:15630:17310/2
+GGGGGGGGGGGGGGGEGGGGGFGGGEGGGGGGGGGGGEGGGEGGGGGGGFEGGGGFDGEAGGGGGDGDCGFGFDEGGDEEGFEEEAEEEEGFGEEEEF=D
+ at HWUSI-EAS635_102902104:5:100:15683:15899/2
+CCTGTTGGAGTCCGAGGGACGTTTGTTCGACTCGATGGATGCCCAGGTCGTCGAACAGGTGGGTCAAGGTTTACGTGCCGTGCTGGCCCGTCAAGAGGAA
++HWUSI-EAS635_102902104:5:100:15683:15899/2
+GGGGGGGGGGGGGGGGGGGGGGGGGFGGGFGGGGGGGFGGGGGGGGGEGGDFFDEEDFE at EED@DD at EEADBEDEEEEEE8CC?AADCBC=A:@A<CCAB
+ at HWUSI-EAS635_102902104:5:100:1573:18422/2
+CGCAGTACCGACAGGGCATCGAGCGCGACGACATCATTGTGCGCCACGACACCGACATCGGTCTGCGCGTCGTCAATGAAGCGCGCC
++HWUSI-EAS635_102902104:5:100:1573:18422/2
+GFGGGFBFFFFFFFFFFF=GFFFGGFGGGDFEFEEGEGEDFFF:FCFFCEEDDB=ECCFDB=A:BBACB<??:>:,;5::::=>>?#
+ at HWUSI-EAS635_102902104:5:100:15769:14805/2
+AGCCCGGTGATTTCCCATTTTTCCGGCATGGTTAGTGCCACTGGCCCGACGTGGGTCGTCCTTGACAATCATGGGGTTGGTATCAAGGGGCTGTGCCCTC
++HWUSI-EAS635_102902104:5:100:15769:14805/2
+EEFGGFFBFAFFEFFGGGGGFFGFEFGGDFEEDFFEGGEGBG?GGF?BEBC:CBA-==,;CB=?ACC:@A=A?@?@2?@5150/8A?=(A:=>5;:,?7A
+ at HWUSI-EAS635_102902104:5:100:15836:12610/2
+CGTGACGTCGGAGCTGGGGCGATGCTGGCTGCCATTATTGGTATCCCCGGGCTTGGTTTCTACTGGGCGGCGCATGCTCTCGGCTTCAACACCACT
++HWUSI-EAS635_102902104:5:100:15836:12610/2
+GGGFGGGGGGGGGGGGGGGFGEGFEGGFGGFDGFGGDGGFDEEEFDFGBFGEE?EGEEEEEEBDEEEEEEEE at EBEBECECCDD;?CC9=AAA1A#
+ at HWUSI-EAS635_102902104:5:100:15894:18346/2
+AGAAACAGATTGATCATATTATTAGAGCTTATCACAAGTTTTTGCAAAGTGGTTACCAAACAGAATTACATTTATTTGGTAGAGATGAAGATAATCAAAT
++HWUSI-EAS635_102902104:5:100:15894:18346/2
+EDDEE?EEECFFFFEGGGGFAFEEFDGGGEGEGEGGADDGEEEEEEAEE=EDBEEGGFGEGGEGBEEGGGEEGEFGGEEEFFFDEEEGDGEDFEGFEEEE
+ at HWUSI-EAS635_102902104:5:100:15926:7214/2
+GGCCGCATCGAGGTGCTGACCCTGAACCCACGTGGGAGTAATCGGTGGTTGGAAGCGGAGCTCAGGGATGGCACCGGTGCGGTGACTCTCATTTGGATGG
++HWUSI-EAS635_102902104:5:100:15926:7214/2
+EGGGGGFGGFFFGDGGGGGFGGFGGGFGGGEG?GGFEBBDBEDECCFDAFCDCCCDFECEE@=BDC?AC?BEBDADD?EECA<CA83<.<::@?5:35:=
+ at HWUSI-EAS635_102902104:5:100:16023:7707/2
+TGCGCAATACGCCGGGTAGAACCTCTGTGATCGCGCTTTCGTGGAGGTCGATAGTGGCTGG
++HWUSI-EAS635_102902104:5:100:16023:7707/2
+GGGGGGGGGGGGGGGGEGGGFGGGGGBGGGFGGGGGGGFGEFGGDDDADDECBBCFBEBD#
+ at HWUSI-EAS635_102902104:5:100:16034:17373/2
+GCTACTCGCCGCGCAGGAGTATCACCTAACGCCGCGTACCGTCACTTCGCGAATCGCGAGGCCCTTCTTGATGAGG
++HWUSI-EAS635_102902104:5:100:16034:17373/2
+GGGGGGFAEGGGGGEFFFFCGGGGFGGEFGGEEFE=?A at AECEAEADDEEECC5BCDC?C?ACCAAA?C?,A@:?#
+ at HWUSI-EAS635_102902104:5:100:16113:20066/2
+GGTATTCTCACTGCCGGTGTAGTAGCCCTCAAGAAGTGACTCACTCAGCCCCGTGAGCCTGTACTGCCTGCCGTACGTGTCCGACTGGA
++HWUSI-EAS635_102902104:5:100:16113:20066/2
+GGDFGGGGGFGGDGGFFDFEGGGGGGGGGGGGGGFFCGGGEGGGGGEEGFGEFEECDDDCF at EFEEEE=@ECC?CCD at C<AA<?A<=A#
+ at HWUSI-EAS635_102902104:5:100:16151:3802/2
+CACCATCCCATGACAACGAGCCGGTCACCTTGACCGTGGCAAGCCACGAAATATCAGCGGCT
++HWUSI-EAS635_102902104:5:100:16151:3802/2
+GGGGGGGGGFGGGGGGFGGGGFGGBEGGGGGDGEGECFADAC?CB at DC:D=??2?CAA?@?#
+ at HWUSI-EAS635_102902104:5:100:16159:19923/2
+TACCGGCGACGATGAGAACAGCCGGGATGACGATGGCAAGCATGTGCCACCAGCGCTTCTCCAGCCAGAT
++HWUSI-EAS635_102902104:5:100:16159:19923/2
+=ADBDD?B??;>A;;-AAACDDDADCC=C:?>?::9=5>9:@>=*4+00 at 30245719-B=>2:=:><?#
+ at HWUSI-EAS635_102902104:5:100:16207:14533/2
+GAAGTCGTAGAATGGGCGCAGGCTAGTGGCATTCTTCGTCGGCTTCAACTCACTGTCCAAACTCGTAATCAGGCTGCAGTTCATTTATATCAAAAGCATG
++HWUSI-EAS635_102902104:5:100:16207:14533/2
+FFFFEFFEFFEGGFGGFGFGGGGGEGEGGGGFGGGGDGEGEEEEEE?EEECDDDDACECCDCCDCEEEEEEEEE?CA?C9CA>ACCAC0??AAAAAA?@@
+ at HWUSI-EAS635_102902104:5:100:16350:15610/2
+TGGCAGTTGCCGATGTCGTTATCGATACCAGCGTTCCGCTGGAGGATCTGCCCGCGCCGATCGATCGGGTGTGGTCACCGATTGGGGG
++HWUSI-EAS635_102902104:5:100:16350:15610/2
+GGGGEGGGGGGG?GGGGGGGDFFFAFBFFAFFFFFFGGEGGDBBECDDF5CCEED at C+B5?==>=>?,A2;+?;.401%7==9:=?B#
+ at HWUSI-EAS635_102902104:5:100:16442:15310/2
+TAGGTGGAAGCCTGAGCCCAATAAGACTCGCGATGCCGGTAACAACGAGGGCCGCCACGGCAAGCAGGGCAAGGGGAGTACTTTGTCTACGAAGCCGGGT
++HWUSI-EAS635_102902104:5:100:16442:15310/2
+EEEE?FFFFFGGGGFGGGGGGGGGGEGGGGGEAGGGGGGBGGGDBDGGG=?GGGDFGDGGGEEGGGGBGGC5CBBCBE?==5>>>>CC=,B@@B at CB=B<
+ at HWUSI-EAS635_102902104:5:100:16452:18194/2
+CGCGACCGAATCGCTGACGAGAACTGGCGGCGGCATATCGCGGCCCCGCTCCTTAGCGTTGAGCAGACGCTGTACTGCTAAAGCGT
++HWUSI-EAS635_102902104:5:100:16452:18194/2
+GGGBGGGDGFFGGGGGGGGGGGGFFGDGGGFEG?B?DFDEGEFAECE=C7ABABB:AB<BA?CC5:??@::A0=@;5;7:8?3@?#
+ at HWUSI-EAS635_102902104:5:100:16500:6022/2
+CCTTCTTTTCTATGTGAATTAAACCATTTAAACTTTGATGTTTCTTTCTGAGTAATAGCATAACGTTGTTTAGGATCGATAAGTAATGAAAGTAAATCTG
++HWUSI-EAS635_102902104:5:100:16500:6022/2
+GGGGDGGGGDFGGEEFGGGGBGGBGGGGGGGGGGGGGGFFFGGFEGGDGEEGEGGGFFGGGGEGGEGGEFGFFGECGDFAFFFCFGGGGFGGBGGGGDDG
+ at HWUSI-EAS635_102902104:5:100:16540:13347/2
+GCGGCTTACTCTCTGCACGTGCTAGCCTCCTCGCATCACTTTTGCCTGACCGTTGTGGAGGGCCCCTCAAAGGAGATACAT
++HWUSI-EAS635_102902104:5:100:16540:13347/2
+EECEE?EEDEEEEBEBC?C?DB?BEEBABBBEB@@EEEEEEEEBEB?B@=?@????B@?=@?@@@AA40?=7===)6:7?#
+ at HWUSI-EAS635_102902104:5:100:16583:20491/2
+ATCCGACGCTCAACGTATTCCATATGTCGTTGTTCGACTGGAATGGGCTGGGAAATGCCCTTAGCTTCATCGGGCTAGACAACTTCGCCGCCCTCATCCA
++HWUSI-EAS635_102902104:5:100:16583:20491/2
+GGGGGGG=GGGEGGGGGGGGGFGGGGFGGGGGGGGGGGGGGGGGGGGFFGGGEBEEGFEE1CCCCEEEEEEBEEEEBEEEEFEBEEEBEGEECEFB?CBB
+ at HWUSI-EAS635_102902104:5:100:16593:6442/2
+AGGAAATAGGCCAGCTGGAATCCCTGCCGGGCTTTCACCCTACGGGCGTCCAGCAATAATGCCAGACACACTGAAAACAGCAGCATGAGCGGTACCTGGA
++HWUSI-EAS635_102902104:5:100:16593:6442/2
+GGEGGGGGGGGGGGEGGBEGGGGGGGGDGGGAEFGGGGGGFGGFDEGGEDCFFFE=FFDDEBGGDEEGDGBDF:C=DDDEFEGGECGEDEB???3>>>=?
+ at HWUSI-EAS635_102902104:5:100:16616:19758/2
+AGCAACGCGATACCCATCATCCTGGTCGATGACTTAAACAGGTAGTCAGCGAGTACCCCGGCCACCAGCCCGGAAATGATCCCCAACAATCCAGTATTGA
++HWUSI-EAS635_102902104:5:100:16616:19758/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGFGGBGGDFFFDFFFCFBCCBCEBEEEEEE=EEEE?:DCBC at C>CECCBC=A?CCC;CACC@
+ at HWUSI-EAS635_102902104:5:100:16675:3732/2
+ATGAGGTGGGACAGTTCGCTTGTAAGGCCACCGATGAGTCCCGACGCCAACCCCGTCAGT
++HWUSI-EAS635_102902104:5:100:16675:3732/2
+FGGFFGGFDF?EEEEDGFGGGGG?GFGGGDGDDD:EBEBEEBF?EEGDEEDD at DA7???#
+ at HWUSI-EAS635_102902104:5:100:16753:11162/2
+TCGTGTTGATTTCTTTAACTTTACCAACGTAACCATAGATATTTTTATTTAAAAATTCGGCGCTTACAAGTTCTTTTATCTTTTCTTTAAATTGAAAAAA
++HWUSI-EAS635_102902104:5:100:16753:11162/2
+EEEFEFFFDFGGDGGGEGEGGGGGGGGGGGGGCGGGGGFGGGGGFGGGGGGGGGGEGGGGGGEFGEGG?GEGFGGGGEGEEGFG?FCC?AFFFBEBDFDF
+ at HWUSI-EAS635_102902104:5:100:16802:3599/2
+TACGTGTTCCAGCACGGTTCAGCTCGCATCACTCCGATGCGCGTCTTCTACAAGGACTCGATCCTTCAGGTCTTCAACACCAATCACATCGTGGAG
++HWUSI-EAS635_102902104:5:100:16802:3599/2
+GGGGGGGGGGFGGGGGGGGGGGGGFGGGGGGGGGGGFFGGGGGEGEGGGDGFGEFGGDEEEGGEBBBACC?DACDCCDDDDED:=AA5?BA@@5?#
+ at HWUSI-EAS635_102902104:5:100:16920:7805/2
+CCATAGGGCTGGGCCATAGGCAAATGCCGACCCCCATGGTGAGGGGCGATGTTTGCGAACAAGGGTGACGATGACGGCCACAACGGCTCCG
++HWUSI-EAS635_102902104:5:100:16920:7805/2
+GGGGGGGGGGGGFGGGGGGGGFGGGGGGGGGGGGGDGGGCGDGGGFBFDDECEECDE?D?DCEEE=ECCECAECCCE=C??:@@=A@,AA#
+ at HWUSI-EAS635_102902104:5:100:16933:18895/2
+ATGAGAGACTGTTCTGACATCGTCGTCATCAACTGATCTTGGGCATGGACGAGCAAAAGCGACATCGGCAGCGAGCCGTTGAGATCACGCGTGATGA
++HWUSI-EAS635_102902104:5:100:16933:18895/2
+GGGGGFGGGGGGGGGGGGGGGGFGGGGFGGGGGGGGGGGGGGGGFFGGGFGGGGDFEGGFGGEGEGFEGEB@@:5>??>?CACA<CCDCC at 9A=7?#
+ at HWUSI-EAS635_102902104:5:100:17035:13181/2
+GGCGGTGAACCTAGCGAGCTCAAAATGAACGCCCAAGGATTCCAGCAAGGACGACAATCCCAGGGTTAGGCACACGTAATTCGTCACCATCGTCACCACG
++HWUSI-EAS635_102902104:5:100:17035:13181/2
+FFFFFEFGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGEB=EFEGGGGEGGGEGEBEEEDEEEDEEB?CDCEEEEEE>CCACC at ACBCCCADA@ACCAAAC
+ at HWUSI-EAS635_102902104:5:100:17082:2877/2
+ATATTGTCTCCGCAGATCGCGCCCGCAGCAGCTACCGGGATGATGAGCCACCGCGAAGGATGTCCAATTGCTGCCAAGGCGACGACGAGC
++HWUSI-EAS635_102902104:5:100:17082:2877/2
+GGGGGGGGGGGFGGGGGGGGGEGGGGDGFGGBEGGFGGGCDFEDCDEDEEGBFEFCCECCAEA?CEDEBDC:BDC?5CCA>29>=?@??#
+ at HWUSI-EAS635_102902104:5:100:17129:9303/2
+TGTAGATGCTGGTGACCATGATGATTGGACTTTTCCTCCATTTGAACTCACAGATAAGGATGGCAAGTTATTCGGCAGAGGTACCACTGACATGAAAGGT
++HWUSI-EAS635_102902104:5:100:17129:9303/2
+GGGGGGGGFGGGGGGFGGGGGGGDGGGGGFGGGGGGGGGGFGGGGGFGGGGGGGDGGGGGFGGGGEGEEGGEGEDFEEEGD:DEEFFEFGEEBFC@?C at 8
+ at HWUSI-EAS635_102902104:5:100:17139:15290/2
+TTTGTAAGTTGCGGAATCATGGTACTGTTACTTTGTTGTTCAAATGTTTGAATTAGGGGAAGAATCATTTGAGAGGCATCACTTTCTTCATATCCAATAT
++HWUSI-EAS635_102902104:5:100:17139:15290/2
+FGGGGGGGGGFGGGGGGGEGFFDFFGGGGFFGGGGGGGGGGDEEDGGFEGFDDBBGGEGGGGFEFDAFEDGDFEDEGABDDEDCDEDEEEDDEGCB?E?C
+ at HWUSI-EAS635_102902104:5:100:17140:12889/2
+ACGATGGTTTCCAAATATTTAAAAACAGGCAATAATCATTTTGTTTAAAAGAATTAAACGATGAATCTGTCATCGAAAAAAAGTCTTCAAGTGAATTGTA
++HWUSI-EAS635_102902104:5:100:17140:12889/2
+GGGGGGGFGGGGGFEGFGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGFGFGFGGGGDGGFFFFGEGFDGGFGBDDBEFEFGEGDAECEACE at ECCCBDAA
+ at HWUSI-EAS635_102902104:5:100:17241:2852/2
+GAGTCACCATGATGACCGAAGTGCTCACTGCTGAGGCTAGGGTGTCCCAGGCGACAATTTTGCTCAAC
++HWUSI-EAS635_102902104:5:100:17241:2852/2
+DD=B?D?DDDDDDD5D?D5DDADADDDDCD??DDBA?DDBC->C@/53(>>>>,<*:3?8C?-?=5?#
+ at HWUSI-EAS635_102902104:5:100:17261:16469/2
+AGGTAGTCAATACTGGTGTCGTCGCCCCGTTCGTGCTGAATATGAGGGTGGCCATTGTTGCTGGCCTCATTGCTGCCTGCCCCATTTGGCTCTATCAGGT
++HWUSI-EAS635_102902104:5:100:17261:16469/2
+EEEEEFFFFFGGGGGGGGGGGGGGGGGGFBGGGGGGGGDFGGFF?EEEAEEFEBEEGEFFACE=FCFFEBEEEEGDD at DFEBB::@??=?->@>>839<9
+ at HWUSI-EAS635_102902104:5:100:17327:12699/2
+TGGCTGGGGTCTCTCGTGGTCTGGTATCCCTGGCCCTGGCGGGACGCCCCGGAGTCTCGTCAGCCACTCGTCGGC
++HWUSI-EAS635_102902104:5:100:17327:12699/2
+GGGGGGFGGGGGGGGGGGGGFFFFBGGGGGGGGGGGGGGGGGGFGFGGGGFGDGEGEGGDGDEDD?CCEE3@@?#
+ at HWUSI-EAS635_102902104:5:100:17352:13833/2
+CTCGATGTTGTCCTCGCTGTAGCTCCGCCACCGCTGCCGATAACAGCGGGAAGACGATTAACAGCTCGGTTGCGGTCCCGAGGTTCAACTCTGGT
++HWUSI-EAS635_102902104:5:100:17352:13833/2
+GFGGGGGGGGGGGGGGGFGGAFFFFGGGGGFGAGBEEFD=CBC=EA?DCC5;>7/A>=?>BCE=BCECC8=?==(85<98,<>';44;88CCA?#
+ at HWUSI-EAS635_102902104:5:100:17505:20321/2
+GGATACGAATTCGATCTAGCGCACCAATGGCATGATTCATTTGGTCAGTAGTGGCGACGCT
++HWUSI-EAS635_102902104:5:100:17505:20321/2
+FFFFFFFFFF?DFFFFFFFFFFFFDEEFFFFEFFEEEFEFEEFD=B at D?BFADEEEDDBB#
+ at HWUSI-EAS635_102902104:5:100:17542:5416/2
+AGGAACCTCCCGGATGGCGACGTGTCCAAGGACTAACTGGTCTGCTCCACCTCGACACCCCGACTGAACTTGTGGA
++HWUSI-EAS635_102902104:5:100:17542:5416/2
+GGGGGGGGGGGGFFGGGGGGGFEGEGEGGGFEFGDGFGGGEFEGEEFGFGEEG?FGEGEGG?EBBEAD:CBCACC#
+ at HWUSI-EAS635_102902104:5:100:17648:5119/2
+CAGCAACAATGGCCACCCTCATATTCAGCACGAACGGGGCGACGACACCAGTATTGACTACCTGGAGGGAGGCCGTCGGGTTCTTCGCCTTGATGGCGAG
++HWUSI-EAS635_102902104:5:100:17648:5119/2
+GFGGGFGGGDFGGGGGGGGGGGGGGFGGGFGGGAGGGGGGEBGGDAEEEEEC:DDDF=DFCEAFGEFEGDEADCD?@A at A36<;65;::;3<;5;;5<0<
+ at HWUSI-EAS635_102902104:5:100:17703:7884/2
+CGACGACTACCACCACAACGATGACAGCCACGATGCCCCCGGTAGCCAGGCTCGTCCATGCTCCAATTGCGACGATGAGCGAAAGCGCCACCGCAGCCCC
++HWUSI-EAS635_102902104:5:100:17703:7884/2
+GGGFGGGGGGGGGGGGGGGGGGGGGGGFFGGGGEEGFGFGEEBEEAEDDBFAFDACEC?CC?CCBAA5?AC?CC4?C>C>AA4A?4@?90????7:;3?#
+ at HWUSI-EAS635_102902104:5:100:17726:5365/2
+CCCTCTCCCTCGAGAATCGGACGATTAACCTTCCGGGTCGCACAACCTACCCGTTCCATATTGATGACGTCACGCG
++HWUSI-EAS635_102902104:5:100:17726:5365/2
+GGGGGGGGGFGFDGGGEFGFEAE??FFFEEEFFGEBEAEE:@@:>CE=EECCBA4 at A=:ACA?A8:>>>:A??AB#
+ at HWUSI-EAS635_102902104:5:100:17765:5689/2
+ACCGATTCCAGAGTGGAACTGATGTTTGACGTCGCTCGTTCCGGTGCCGTCCCGGACCGTCTACGCCCGGTAATCATGGC
++HWUSI-EAS635_102902104:5:100:17765:5689/2
+GGGGFGGGGGGGGGGGGGGGGFFGGGGGFGGEGGGGGGGGGGGGEGGFGEEEFEBCEED?@?CBA>>@>=14757::??#
+ at HWUSI-EAS635_102902104:5:100:17804:7398/2
+AGCTCTTGGCGCACCGCCTGGCAGATCAAGGTACCGATGGTGCGCCCCGCAGTCATCATGACCGCAGTGTTTTCCATTATTGGCACCATCCAG
++HWUSI-EAS635_102902104:5:100:17804:7398/2
+GGGGGFGFGGGGGGGGGGFGEGGFGGGGGGFDGGGEEBEEBEFGFEFGEE at C=CC at CA?C at CCBD:?>@4?A?A@@C5C:A7=AAA?2AC<?#
+ at HWUSI-EAS635_102902104:5:100:17936:13573/2
+TCTAATGATGAGGGACTTACTGGGGGCGGCATGCCGTCTGATGCTGGGGCTTTTGCGACCGACCATCGGAGACGTTCGCGTCAACGGTATCAGCACGCGC
++HWUSI-EAS635_102902104:5:100:17936:13573/2
+GGFGGGGGGGGGGGEGGGGGGGGGGGGGGGGFGGGGGGGGGEGGGGGGGFEDEEGEGEEEEEBFFEEGEEDB?DBACDDD at CB5CCA=?=A?BCABBCD@
+ at HWUSI-EAS635_102902104:5:100:17940:10151/2
+AATGCCGACTGACCCGCAGCCACATGTTCATTTCCGAACGTTTTTACCGTGCGGAACACCGGTCGTAGCACTCGGCTAAAGCGGCCTCGTCAGGGTCGAC
++HWUSI-EAS635_102902104:5:100:17940:10151/2
+AFGGEGEGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFF?FFFDFFEGDGGDEBFFFFFDGDDFFF?E=EEEGDEG=FFBD?E:EE@@:B@@0 at B?@
+ at HWUSI-EAS635_102902104:5:100:17978:7983/2
+AGTTTTCGGAAGGTTGCTGGATGCCGGACAGGGGGTGCGATGGTCGACGTCGACGCATTGGTGAGCCGTGGTGTCGATGGGTTAGAGGTGCCTAACGGTC
++HWUSI-EAS635_102902104:5:100:17978:7983/2
+DEGGGGGGGGGGGGGGGGGGGGGGGGGGGFFFFFFDFDGEEEEEEFDFFDGGGGGE?FFFGEGAAEBEAEC?EBBB at AB5E?ABBAC?0CAA@@@B?5-A
+ at HWUSI-EAS635_102902104:5:100:17979:9003/2
+AAGTCTAGGCTCAAAAGGGCTATTCCCTGCGATGATCTTAGCGCTGCTGGCCGTTGAAGTGATGCGCATCTGTTATAAGCATAACCTGACATTCAGGATG
++HWUSI-EAS635_102902104:5:100:17979:9003/2
+FDGGGGGGGGGGGGGGFEDGGGGGFEGFGFGFGGGDGDDGGGGGEEGGGGGBGEEAAAA at E:EEEB=BBEADABAEFA5DBAB=?C:BBBBBAEB=?5;?
+ at HWUSI-EAS635_102902104:5:100:1809:12873/2
+CTGTGGGACGGATTCACTCCCGAGCAAGCCCACGCGCCATTCCCGGCAGCGCTGTTGACAGGC
++HWUSI-EAS635_102902104:5:100:1809:12873/2
+FGGDGFGGGBEGGFGGGFGGGGGEGEGFFEFGGBFDBEDEDDDB?AEAD=@B1B<AAAAAA?#
+ at HWUSI-EAS635_102902104:5:100:18415:16960/2
+CAAGGTCCGGAAAAGGGATGGCCAGCACCATCAGTGGCACGACGATTGGCAAGTAAGCGGGGACCAATCCGCCGCCCCGTGCTGTCAGAGCCGTCGAATC
++HWUSI-EAS635_102902104:5:100:18415:16960/2
+GGGGGGGG?GDGGGGGGGFFFGGGGGGGGGGGGGFGFFFGGEGFGEGGGGBEFDFGGDGGGGEEGFAGGGGGEEEEE??AEC=CABB=:CB at B9A?=6=5
+ at HWUSI-EAS635_102902104:5:100:18428:10679/2
+AAGGGCAAAGATGTCTCGAAATTTGTGAAACCAAGGCCCGGCGGCAAGCCCCTGCCCCCGCCTCGTGTGACGAAGGCCTGATGTCA
++HWUSI-EAS635_102902104:5:100:18428:10679/2
+GGGGGGGGGGEGGGGGGGGGGGGGGGGEGGGDGGGGGGEGGGGGFFGGBGEEDGEEFFED@=-BD@@:@?@CA=C@?5=A?;?:?#
+ at HWUSI-EAS635_102902104:5:100:18504:9380/2
+TTACGGCGTCTTGGTCTTCGTGTATATTTTAATATTAACAATGCACTAGTATCTTTAGGGGG
++HWUSI-EAS635_102902104:5:100:18504:9380/2
+GGEEEFDEFF:C<A?@CC=C4=7;;7:@@C?A:A5?1B.7@)4.956:47@>->CA/-AA?#
+ at HWUSI-EAS635_102902104:5:100:18611:4891/2
+CCACCGGTAAGGCAGACGCCCAAAAAGAGGGACGAATCTGATCCTCGAGTCTCCTACTCTCATGATGGCGCCCCTGGTTGAATACTGAGGGCGTCA
++HWUSI-EAS635_102902104:5:100:18611:4891/2
+FBEBEFFFFDEFFFFFGDDG=EEEEEGGFDFE?F=EEEEEE=E-EDD?B?FFDFDBEE?EBEBDBBBD?=@AA4A>5=>A@@A5)?AA@?BAEAB#
+ at HWUSI-EAS635_102902104:5:100:18760:8643/2
+TATCAACTATGACGGGTGCACGGCTTACCTGCACCTGAACGACCGAGTTATGGAAACGCTCAGAGCTGCTGAAACTCAGA
++HWUSI-EAS635_102902104:5:100:18760:8643/2
+GGGGGDFGDGDGGEGFCF=FEEEEEEBCE=EEEEEDGEE:EACBEAB at BAABA:BB=55 at CCC?AA at A=,4:.82?@??#
+ at HWUSI-EAS635_102902104:5:100:18958:20048/2
+TTCCACTTGTTGGCCGAAGGTCGCGGCTCAACGTAGACAACTGGCTTAGCAAGGTGAATATTCGTCGCAAGATCGACAGACCAGTCACGGGCTTCTTCCC
++HWUSI-EAS635_102902104:5:100:18958:20048/2
+GGFGGGGGGGGGFGFGGDFFBFFFFFGGGFFFGCGFDFFFGGGGDFAFFDFFFFCEGBEGFD:DCEEA?5BB@:BCA@?EBCAC;45&:78;67;??AAA
+ at HWUSI-EAS635_102902104:5:100:19283:19624/2
+CGAGAGACAAGGTCAAATGGATGGTCTATAGCGGTTTGTTTCAGGCGGGTTTATTTTTTT
++HWUSI-EAS635_102902104:5:100:19283:19624/2
+GGFGDGGFG?EBEA?EEEEEEEEE-E?=DEEBEE:DADAA at BEBECCC)7=;*)B>AA@#
+ at HWUSI-EAS635_102902104:5:100:19284:9074/2
+TAGTAGCGGTGGGGGGAATAACGTTACCGGCCACACCGGCGTCGAGCATCGTCGCATTGAGGCCCTCACGG
++HWUSI-EAS635_102902104:5:100:19284:9074/2
+B=FAFE?EE=FFFEEFAFFD=EEEEFEFFEFFFBFDAF=FD?5C-AAC>CBBEBB?BEB?=@??B-C>AA#
+ at HWUSI-EAS635_102902104:5:100:19298:7465/2
+CTGGGACTATTGGGATCACCCGAGAACTCGGAGGTGATCTCATGCACATCTAACTGGCCGGCCAGCTCCAACAGACGTCGCAAGATGCGCATCTGC
++HWUSI-EAS635_102902104:5:100:19298:7465/2
+:?EDEEDE?EEEBD=AEDDE=?CCCBEEEDEEEE=ECEABEDAE?DEEBEBB=E5??-CCACCBCEBAEEBBD5?&5,=,;191%>=>;>B5B at B#
+ at HWUSI-EAS635_102902104:5:100:19653:7345/2
+CTTCGCCTGTCTTAGGATCTGTTGTGTAAGTATAAACATCCTCATTTTTCTATGGTTTAGTAGCGTCTGACTTGCCATCAGCTA
++HWUSI-EAS635_102902104:5:100:19653:7345/2
+ADC5CBBDDD:-AAA at 6;=@?@;;<95+5;@6=-BDD?DD-?--@;B@=+8.:=>=?AAA+;?>C75;5?=->@B?C:B?5=@#
+ at HWUSI-EAS635_102902104:5:100:2043:11684/2
+ATCAGTGACGGGGCTTCCCAACCGTCGGAGATTGAGTAACGGGATGCATTGGGGTTTCTGCGAATCAGGGCATCGATATTGTCGGCGGA
++HWUSI-EAS635_102902104:5:100:2043:11684/2
+GEGGGGGGGFDDFDEGGGFEGGGFEEEE5E5ACC:EBCECCEE:=CB?AACCC(??A=@AEF at EED=D?EAB?AC4A?CC???@C@?A#
+ at HWUSI-EAS635_102902104:5:100:2142:3726/2
+ACTACGTCGTTATTTAAATTCATCTACAAAGGATTGACATCTATGAAATGTATATCAACGCATTCACTTTTATATATTCAAACTGCGTTTTCAACAAATG
++HWUSI-EAS635_102902104:5:100:2142:3726/2
+GGGGGFGGGGGGGGFGGDGEGGGGGFGGGGGGGGGGFGGGEGGGGGFGGGEFGFGEGGGEGEGEGEGEEGGGGGGEEEBFB?C:E5BAAAC?CCCBABBB
+ at HWUSI-EAS635_102902104:5:100:2208:5484/2
+ATGAATATCATAAGTACGCTCAATTTTTTTGGCAACTTGGTACCAATTAAATTTATCGACTTCAACTGGTAATGCAAATGTTTCTCCTAAATAGTTGACG
++HWUSI-EAS635_102902104:5:100:2208:5484/2
+FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFEEFFFFFFFFFFFFFFFFFFFFFFFFEFFEFFFFDFDFEA at BCCDEFFBEEDBF?@CCA:
+ at HWUSI-EAS635_102902104:5:100:2278:11842/2
+TCAATCCTGAGTATTTAAAGCTTGCGGTTATGCCCAAATGTCAAGAGGACGTGTTACATTTATTAGAAGCCATGTCACTCACAGCGAAGCACACAACATG
++HWUSI-EAS635_102902104:5:100:2278:11842/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGEFEFFEFEEEDFEGEGDDEEEEEDDBEEEDFEEEEECC-?CBDDCCCDD>=
+ at HWUSI-EAS635_102902104:5:100:2484:20859/2
+GGGGCAGGAAAGTCTCGTCGCAAGAAGGCCAAGGCGACCCTCAACAAGCGTCGGGCTAAGGCCGAAAA
++HWUSI-EAS635_102902104:5:100:2484:20859/2
+GGGGGFGFGGFGEGFGGCEGFFEEEDEEGDE=ECEDCCCC@?C??>+2:>39;=4;9679:?6>8AA#
+ at HWUSI-EAS635_102902104:5:100:2553:16508/2
+CAACACGGTGTCGTGGGAGTTGTCGCAGAAGGTGGGACCTTACGACCTTGCTCCGCACACCCA
++HWUSI-EAS635_102902104:5:100:2553:16508/2
+GGGGFGGGEGFGGDGFF=FDBFDFFFEGEEFE at FEECCDDADDDCEEEECC?CBBC2CAAAA#
+ at HWUSI-EAS635_102902104:5:100:2814:15807/2
+CATTGCCCAAGACGAACGAGCTGGCTTGGCCGCAGATCTGTCACGACTCGGCCCCGACGCCCCGACACTGTGCAAGGGATGGA
++HWUSI-EAS635_102902104:5:100:2814:15807/2
+GGGGGGGFGGFGGGGGGDGGGGGGGGGGGGGGFDFAEBGFEFDBGEEEFEGEFEF at CCC:CCC?=8:>6=7?:@?:38,7@?#
+ at HWUSI-EAS635_102902104:5:100:2872:21432/2
+AGAAAATATTAAATCTTTATGAGCTTGCGTCATGGTAAGTATAATATCAGCATCAAGATCATCTATATGAAATGCTTGTGCTCGTGATGG
++HWUSI-EAS635_102902104:5:100:2872:21432/2
+EGGGGGGFGGGGGGFFGGGGGFGGFGFGGGGGGGGEFDFEGFGGFGGGDGGBGGFGG5EGBEDEDEDEEEEEEEBBA=AD at BBBBB=@E#
+ at HWUSI-EAS635_102902104:5:100:2884:13943/2
+TCAGGACCGAGTCAAGGCCGACTTGGGTGGCTGCCACACCACGGACCAAATCAGCCGCGAACGGCCTCA
++HWUSI-EAS635_102902104:5:100:2884:13943/2
+GGGGGGGFGGGGDGGGFGGDGEDGGDF at FDECEECBCEECEFFE-BCC?CEBGEAADBDB5C-:C>6?#
+ at HWUSI-EAS635_102902104:5:100:3033:13909/2
+TATAGAAATTTTCAAAAAAGTTTATATACCTAGCATTTTCAATATTTAAACAATATAACTGAAAACTTTATGACATTTCATCAAAGTGTAATGATTTACT
++HWUSI-EAS635_102902104:5:100:3033:13909/2
+DDDDDBEEEEFEFFFAFD?FAEEEEFFDFAFFFDBFDFDDDEEEEDGGDDEEFFFGGGFGGGGGGFFGDADEEE:FBDFB?EEE:A5A;A:AC>A=:DA=
+ at HWUSI-EAS635_102902104:5:100:3071:6991/2
+TGGTCGTCGGCTGTCGTGGGGAAGAAAACAGGGGTGACGCCGCAGTGCTCACGGCACTTCTTTT
++HWUSI-EAS635_102902104:5:100:3071:6991/2
+FFFEFFFDFFDFFDDFEFFFFDDEDFFACDEECC<BB at AA@BA at C;C???==>@=???7B@@?#
+ at HWUSI-EAS635_102902104:5:100:3111:10730/2
+TGGAAGTGGACGATGAACCCATCGCCCACGTGCGCGCTCAAGGCAAGTGGGACGACGGAAACTGGCATGACCTGGTAGCA
++HWUSI-EAS635_102902104:5:100:3111:10730/2
+GGGFGGGGGGGGGGDFFGGGGGEGFGGGGG=FFDDBBCC);?A?;:@:>>B7BC?AC=?9?=@?@=5?C?B4CCC<@B@#
+ at HWUSI-EAS635_102902104:5:100:3128:21238/2
+AATCCTACCCTGATGTACCATCAATATGGGTTTGCTGACCATTGTGTGAGCCGCTGCTGTCGCTATGGACCGACTT
++HWUSI-EAS635_102902104:5:100:3128:21238/2
+GGGGGGGGFGGGGGFGGGGGGGGGGGGGDFCEFBFDFEEEEFEGEGEEEGEEDECB?=ACA@?-A?8CABAC=@A#
+ at HWUSI-EAS635_102902104:5:100:3141:7733/2
+TGAGATTCCGGCTCTTGACGCTGACCCTGTTGCCCCAGGCGACGTGTTGCAGATCGGTGAGGTGAGAATTGAGGCGG
++HWUSI-EAS635_102902104:5:100:3141:7733/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGEEEGFCEGBEAAEECDACCCC=CAAA5A:EAACB=:CBA@#
+ at HWUSI-EAS635_102902104:5:100:3176:9678/2
+GGTCCAAGGGTTCTTGGACTTGATCTCGTGCACACCCTTCGGCCCCCAGGAACCGCAATCATCGGTCGACCAGATGCGATCCGACCCA
++HWUSI-EAS635_102902104:5:100:3176:9678/2
+EEEEEEEEEECFFFFGGGGGGGGGGGGGGGGDGFFGGGFGGGGEGEGECE at BCFEEEEDECCC?;=CCC at DCC??CCC)=B<A<A??#
+ at HWUSI-EAS635_102902104:5:100:3248:19610/2
+TGTGTTATTCTTGCAAACTTCATTGCTAATGTATAGCGTTTCATTGTGATTTTGTGGAGATTTATGATGTCTGTTCAACAAACTATCGAACAAAAAATTC
++HWUSI-EAS635_102902104:5:100:3248:19610/2
+GFGGGGGFGGGGGGFGGGGGGGGGGGGGGGGGGGFGGGGGGGFGGEEFEFGEGGFGCEDDGGGFGD:FFFGGGGGGGEGD?EEAEGCABDGFEGEEEEEF
+ at HWUSI-EAS635_102902104:5:100:3264:6058/2
+CCCACGAAGATAGCCACCACCCAGCCATTGATCCATCGCAATACCAACGGATCACTAACTGTCACTGTCTCCGGGGACCTGCTCT
++HWUSI-EAS635_102902104:5:100:3264:6058/2
+GGFGGGFGFGGGGDGAGEGGGGGBGGGGEFGEAGFDFFFFGFGFFGGEGEEEGGGDEADE?@ECCDAEBDDA5EB==:=86<9?#
+ at HWUSI-EAS635_102902104:5:100:3265:17721/2
+CCGACGTCGATCCGGCTGAGCAGGTACGTCGGGTTGTCGAGAGGGATGGGTGCAGTCAGGCCGATGCATGGGCGAGGATTCGCGCTCAGGCTTCTCGTGA
++HWUSI-EAS635_102902104:5:100:3265:17721/2
+GGGGEGAGGFGGGGGGGGGFDDFFDFFFEFFFFCFCACC at D@DDD?BDDD:A5>A=>=@CAABA?DBDCDBECE(B?5??;>:;>0?)???;8?:>>8>4
+ at HWUSI-EAS635_102902104:5:100:3277:16374/2
+TAGCTCTGATTATTATCAGGTCCTTCCAGTTACTGCAAATATCTATAATGCAGATGGTGAAAAGCTGTCCTATATATCGCAAGGTAGTGTTGTTTGGCTA
++HWUSI-EAS635_102902104:5:100:3277:16374/2
+GGFGGGGGGGFGGGGGGEGFGGGGGGGGGGGEGGGGFGFGGGGGGGGFGGFGGGGGGDGDEFDFAFFDFFGEEGGCAGGFEDF?<=C?C at CECCB=AA at A
+ at HWUSI-EAS635_102902104:5:100:3339:2185/2
+CGAATTACTCTTTCTAAACATCGTGGACACCGTCGCCCCGACGGGACTCGCATCGATGAAGATGGA
++HWUSI-EAS635_102902104:5:100:3339:2185/2
+GGFGGGGGGGGGGGGGGGGGGGGEGGGGGGGGEGGGEGG<ABABB0???@8(:>>=AA<=@96?A#
+ at HWUSI-EAS635_102902104:5:100:3353:16913/2
+CCGAATCGGCTGATGCGATGAGGAGGCGAATCGAATTCGTCCCGCAGTCGATAGCTGCAACGGG
++HWUSI-EAS635_102902104:5:100:3353:16913/2
+GGGEGGGGGGGGCGDEEEEEEFEFDFDDCGEEGDFEFFGCFEDED?FADECA=CCCC5?C=??#
+ at HWUSI-EAS635_102902104:5:100:3364:13994/2
+CACCGTCGACGACGCCGTTGCTGCGTGCCGGGCGTCCGGGAAGGCGGGGTGGGAGCTTGTCGATGAAGCAACCCAACTCGTGCACCGGA
++HWUSI-EAS635_102902104:5:100:3364:13994/2
+GDGGFGGGGFGFCFGFACAFFDFADDFCDFFDDFCEDEEE5 at BA:>>9%)?85%?6=>>;0 at 8;@65=6=:99==@4:9?:3(>>>:?#
+ at HWUSI-EAS635_102902104:5:100:3452:10755/2
+CCCATCCGCAGCGATACCTCGTGCTGAACGCGCGGAAGAGTCGCAAGGAGATCAGTGAGGCTATCCGTCAGCGCGTGACTGGATTGCTCAACCGGT
++HWUSI-EAS635_102902104:5:100:3452:10755/2
+FGGGGGGGGGEGGGGGFGGFGGGGGEDGEGFDBGGBCEA-29>855DDACBBEBEBEBEDGBEBEEGEEEDDE?EAEAAB>8,95?=:>;???@@#
+ at HWUSI-EAS635_102902104:5:100:3499:7865/2
+CGTGATACAACGACATCAACGTGCAGATCAGCATCCTCGGCTCGGCCACGGACGACGGTCACCCTATCGTCCA
++HWUSI-EAS635_102902104:5:100:3499:7865/2
+GGGGEGGGGGGFGGGGGGFGGFFFGGFGDGGGGGGGFFG=GEDAFDBCC5=,:;.:790:@AA=?349;,;@#
+ at HWUSI-EAS635_102902104:5:100:3629:6498/2
+AGGGCGACGCTAAAGGCAATGGGGGCGAGAACCCTTTGGGCCTTTTTGCGTTTCGTCGTAGGCACTGCC
++HWUSI-EAS635_102902104:5:100:3629:6498/2
+AFGGFGGGFGFEDGDEFAEFGGGFGGDGGG=CCBCFGBEGC5AEACCDBDBBB?E??B???:?5?AAB#
+ at HWUSI-EAS635_102902104:5:100:3711:14418/2
+CATCCAATCCAGCCAGGAACCCCACATGTCGTTGCCTGGCCACATGAACCATCGATGTTCTCCAGGTCCCCGGTCGAGGAACGTCGTCACTGGCACACCG
++HWUSI-EAS635_102902104:5:100:3711:14418/2
+FDFFFFFFFFFFFFFEFFFEFFFFFFFEEFDEEFFFEFFFEEEF:EEFFFDDEEEDE at DBA?AAAAABDBDBA at DB5B=????;@B at B?@<@BB at B9?A@
+ at HWUSI-EAS635_102902104:5:100:3740:8941/2
+TGTCACCACCTGAGGTCGACATGACGATCGCGGAGATGCCGGGCGCGTCGGTTGTCACCCGCTCGACCGGGACGC
++HWUSI-EAS635_102902104:5:100:3740:8941/2
+GGGGGGFGGGGGGGFGGGFGGGGGGGGEGGFGGGG?EF?FGGGEGFGAEGEA:CBECE at C?C at E?ACC?C===?#
+ at HWUSI-EAS635_102902104:5:100:3812:6841/2
+TGACGCGATCATCGCTTCTCCGCTACAACGTGCGCGCGACACAGCTCAGGCAATCGGCGCTTGTGCTGGATTGGGCGTGCAGTTGGATGATCGACTCATC
++HWUSI-EAS635_102902104:5:100:3812:6841/2
+GGGGGGGGGGGGGFGGGGGGGGFGFGGGGGEGGEGGEFFGBGDFFEEEGGB at DCEEEDFA=BAA:>:@:6:@=:@ABAB?,?3=?<73:337:3:5=6:8
+ at HWUSI-EAS635_102902104:5:100:3865:8457/2
+TGATATAGTGTAAAATGAGAAAGAATGAATATGTTTGAAGTGAGAAGACATATTACATATTCAAAAGAAGACATAATAACTTAAGTGAACCATATTAAAG
++HWUSI-EAS635_102902104:5:100:3865:8457/2
+GFFGEFEFFFEGGGGGGAGGGGGGGGGGGGGGGEGFFFFFBFEFFGGFFFGDFGFBGGGDDGGFGCGEGFGDGDAEGBCGFEEFG:ECCB at A@@B:@@:@
+ at HWUSI-EAS635_102902104:5:100:3905:5861/2
+ATCCTCATCGGTTCTAAGAACGACGGTCCGATCCGGATTCATGCCGTCGATACTGAACTTAAGTCGGGTATGGGGA
++HWUSI-EAS635_102902104:5:100:3905:5861/2
+GGGGGGGGGGGGGGGGGGGGGFGGGGEGGFDEFFAGEFFGGEGEGFAEF?BBBBCEEGEE:?B??@C at 3=:?A??#
+ at HWUSI-EAS635_102902104:5:100:4060:17217/2
+CTGTGAAGGGCAAGCACGCAGAGTCGACGCAACAGTGGCATGTCCAGAGGCGACGACAACGGGGTCGAAGACATCGAACCGTCGAGCGACCATCGT
++HWUSI-EAS635_102902104:5:100:4060:17217/2
+AA?AA=CA=ADFFFFGGFBGDDFBEGGGGGG?GDGFECGFG?DGDFGDGEDGE=G=EF:FAEABABFDFFBBCBCGGDDGF at FFBA><>,>>>:?#
+ at HWUSI-EAS635_102902104:5:100:4074:14886/2
+GGAATCGTCGTGAAACTCTCCCAGATCCTCGTTGAGGTCCAACCCCAGTGCGAGCACTCTGGCCGACATCGCTGTGACCAACGACGGATGGTCGA
++HWUSI-EAS635_102902104:5:100:4074:14886/2
+GGGGGGGGGGGGEFGGFFFGGGDGGEGGEGFDDBDFF?EEEECEEE at DBEDDC?BCEADCEEEE?CDD?CCCAC at EBEEACCB?B?A;?A?7??#
+ at HWUSI-EAS635_102902104:5:100:4083:15646/2
+TGTTCAGGATGTGGCGCTCCCACAGTCGGCCAATCTCCCGAGGGCCAATTAGACCCCAATCGACCCCGCGTGATACCAATATATCGACATATTGCCGAAT
++HWUSI-EAS635_102902104:5:100:4083:15646/2
+GGGGGGGGGGGGGFFGGGGGGGGGFEFGGGEGGGGGGGFEGGGFFEDFGEGGEGGFGGEEGEEFEGGEAE?CB?CC9?C at D?D?CCCDB=CA at 2CA@CC?
+ at HWUSI-EAS635_102902104:5:100:4227:18393/2
+TGCCCCGATGACTCAAGCCGGCCAGACCCCCACCACATCACCGTTCCCACAAGAACGGATAAACCCGCCGCTGCTGGAAACGGCCACGGCACGCCG
++HWUSI-EAS635_102902104:5:100:4227:18393/2
+GGGGGGGGADGGEGGGGGGGGGGGGFGGGGGGGGGGGGGGGDF at FFFFFFF=FFFBD?DB-?BA=FEFFED=EEA:@5>@?AAAABE+B??A:?A#
+ at HWUSI-EAS635_102902104:5:100:4231:13969/2
+TGCGAGCAAGAAGCGATGGCATTTGAGAAAAAATTTGATGTTAAAACAAGTTTTATTCGTGGTGGAACAGGTACTATTCTAGCGAAAATTGATGCTGAGA
++HWUSI-EAS635_102902104:5:100:4231:13969/2
+GGGGGGGGGGGGGGGGGGGGDGGGGFGGGGGGGGGGGGGGGGGDGDDD>EDDFFFGGFGEGGFGGFDFEGFCFFF?DBDCEGCFEFBGEEGCFGGEGCBF
+ at HWUSI-EAS635_102902104:5:100:4271:13277/2
+GGCCATTCAGGTCAGTACAACATTGTGCTGGGAAAGATACTCGAGCAGTTGGGGTTTCAGGTGCGTCCAGTCCACGCAGCACGGGTCCGTCTGGATCACC
++HWUSI-EAS635_102902104:5:100:4271:13277/2
+GGGGFGGGGGGEGFGGGGGGGGFGGEGGGGGGGGGGGGGGGGGBGGFGEGGGGGDDEFDFECFFFDFFFFEGBGGGFDGGEEEEEAECEACABCC at BBBA
+ at HWUSI-EAS635_102902104:5:100:4310:14416/2
+CATATGCATTGACACGTGTGTCGACAGGGTTCAGGTACCCATCCGCATAACGAAGCGGCCGCTAGGGCCGCCACCGAGATTTACAGTGGCG
++HWUSI-EAS635_102902104:5:100:4310:14416/2
+DGGGGGGFGGGGGGGGDEEDDEEEEDFFFFDEEEEBGGGGGGGGGGFGGGGGGEGEFGGGDF?FE?CA55>@-=>@->>=C=@EC?,=??#
+ at HWUSI-EAS635_102902104:5:102:7595:7808/2
+AATGCAATAGCTAAAGATACATCACCTGCCTTCACTTTCAATGAAGAACATTTATCTGGAAAACGTTATGCTGAATACCTCTCACTAGTAGCTACGCATT
++HWUSI-EAS635_102902104:5:102:7595:7808/2
+GGGGGFGGGFGGGGGGGGGGGGGGGGGGGGFGGGGGGGGDFFGGFGEGGGGGGGGGGGGEGEGGEDGGGEGFGBEGGGFEGEGFFGEFEFFEEEGEEEAE
+ at HWUSI-EAS635_102902104:5:102:7735:17205/2
+CTCTATTACTAATTTTTCTTTTATAGACATTATTATTCTCCTTTATATGGTATTCCAATTGAGTGGCCTAATTGTGGTGGCCATTCAATTTTTTCTTGCT
++HWUSI-EAS635_102902104:5:102:7735:17205/2
+GGGGGGGGGGEFGGGGGGGGGGGGGGGGGGGGGGEGGGDGGGGGGGDGGGGGGGGGGFGGGAGDGGFGGFGGGFDEGEGGGGEGGGDEGGGGGDGGGGBF
+ at HWUSI-EAS635_102902104:5:102:7802:6196/2
+AATTAGGTAGACGATAAAACCAACGAACATACCTAAAAATACTGACCCCACTAAACTCACGATTAAGGGTAGTTTAAAGACAATTTGTAGTACGACACCA
++HWUSI-EAS635_102902104:5:102:7802:6196/2
+GGGGGGGGGGGGGGGGGGEGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGFGGGFGGFEGGBGGGEFEGEFGGGFGGGDEGEFGEEBEFFDEGCBEDFDB
+ at HWUSI-EAS635_102902104:5:102:8193:4675/2
+CAATGTCTAAATCACTTTGGACTGTAATAGAGGCGTCAATTTGTTGTGCTAACTCATTTGCAATGTATAATCCTAACCCCGAACCACCAGTCTTAGTATT
++HWUSI-EAS635_102902104:5:102:8193:4675/2
+FGFGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGEGGGGGGGGGFGGDGFFAFEFEGEGGFGGEEGFEGGEGEEGGEG=FEEFFEEFDF at DACAB5C@E?C
+ at HWUSI-EAS635_102902104:5:102:8273:4957/2
+ACCATATTCACCGAAAAAGCCCAATTCATCTACTTCTGTTTGAATTTTCATTAATCATTCGTCTCCTTTCAAAAATTTTAATATTCGAGTCATCTTATTA
++HWUSI-EAS635_102902104:5:102:8273:4957/2
+FGGGGGGGGGGGGGFGGGGGGGGBGGGGGGGGGGGDGGGGGFGGGGEGGGGGFGGGEGFGEEGGFGEFGFEEDEFGDGGG:FFFFEDBDCEBEDGDBEGD
+ at HWUSI-EAS635_102902104:5:102:8298:13388/2
+GAGGTGCTGTTGGGAGTAATCCTATTTCTATACTTATACCATGTCATCGAGTGGTTGGTAAAGATGGAAATTTAACAGGATACGGAGGTACTTTAGACAA
++HWUSI-EAS635_102902104:5:102:8298:13388/2
+EEEECFFFFFGGGGGGEGGGGGGGGGGGGFGGGGGEGGGEGGGEGGFGFDGCGGCEEECCCEFFEGGGG:FEEFEGGEEEEEEEECFE>B:BBB=EEEE?
+ at HWUSI-EAS635_102902104:5:102:8526:2532/2
+CCGATGGATCCCTTTTCTACAATTAGAACATCTTTAATACAGAATTCTTGTAAAGTGATTGCCATACCCACACCAGCTGCGCCTGCGCCGATGATAATGA
++HWUSI-EAS635_102902104:5:102:8526:2532/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGFGGDFEGGGGGFGGGGGGGEGGGGFGEEGDFDFCDDEDDE@<E=C@??A@
+ at HWUSI-EAS635_102902104:5:102:9042:11725/2
+GTATGTTAGTTTAATAAAAAAGATAAAGAATCTCATTAACTGGATTAATCAATTTATCACGCTAGTGATTGCCTTTACTTTTTTATTTATAGTTATAGCG
++HWUSI-EAS635_102902104:5:102:9042:11725/2
+GFFGGGGGGGGGGGGGGGGFGFGGGGDGGGGGGEGGGEFGGGGEFGFEGFFEGGGGGFBGGDEEFEGEFEFEEEEEEEEEEGFEEGEEEFCBCDDBDD:D
+ at HWUSI-EAS635_102902104:5:102:9282:16605/2
+GCACCTTTAAATTTCATTTCTTGATAAGACTTAGTGCTACCTCTTAGTAAATATTGAAGCGATTGAGAAGAGCTATTTGACACACGTCCATCTGAATGTG
++HWUSI-EAS635_102902104:5:102:9282:16605/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGFGGDGFAGDFEGGGGFGFFGBGGFGG?GEFGBEGDEFEEFBBEEFGECEEEDDEE at EEE@E
+ at HWUSI-EAS635_102902104:5:102:9318:10537/2
+CTTAAACTTAACATATAAAGAAATGGGAGAGGATATCAATGAATCTAGCTTGGAAAGAGATTAAATTTTATAAGTTCAGATTTATATTAATCATGTTCAT
++HWUSI-EAS635_102902104:5:102:9318:10537/2
+GGGGGGGGGGGGGGGGGGFGFDGGGGGGGFGGGGGGGFGGGGGGGGGGGGGGGGFGGEGGGGFFGGGGGEGGEGEFGFFEGGGFGFGGGEGGBGGBFGEF
+ at HWUSI-EAS635_102902104:5:102:9337:16165/2
+GATTTTATGTATGGTTTTGCTATACAGTTGCTCAGGTCCAATGGACTCTCCAAAGCATTCTAATAATAGCAAACCTGTAGTGGTAATATACGGTGATTAT
++HWUSI-EAS635_102902104:5:102:9337:16165/2
+GFGGGGGGEGGGGGEGGGGFGGGGGGGEGDGGGGGGEEEGEEGEEEFEGGEEEEEEEGEEEE at EEEEEEEE@EEEEDCCD?CC<CCBADCCB?@CC?C at D
+ at HWUSI-EAS635_102902104:5:102:9768:9183/2
+ATGAGATTCTTTATCTTTTTTATTAAACTAACATACATAACAATCAAAATTAGCGGTATAAAGAAGTTAAGCAATTTAAGAATAGATTCTATCGGATCAT
++HWUSI-EAS635_102902104:5:102:9768:9183/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFFGGFGGGGGGGGGGGGGGGFGEDGEGGGEEGGEGEGGFEEDEGCACCD>8?@CCCBDD?GBAEEEGFB
+ at HWUSI-EAS635_102902104:5:102:9852:6095/2
+ATAGAGAACTTAAAACATATGGAGAGATTGCTAAAACAGTAGGACGAGCAATGAATAAGCCAGCAATGTCTGCTCAGGCTGTAGGAGGTGCTGTTGGGAG
++HWUSI-EAS635_102902104:5:102:9852:6095/2
+GEGGFGGGGGGGGFGGGFGGGGGFGGGGGGGGEFGGGGEGGGGGGGBGGBGGFGBGEDGAGDFG?BGBGDFGGEGFGDEGDEEECEEDCEEDAEAECECE
+ at HWUSI-EAS635_102902104:5:103:11071:8464/2
+AATAACTAGACAGGTGATAGATAATGACTAAGATTCACTTTGAAGCACCCAGTCCCGAAGATTACTGTAATTTAAGAGCTAATGCTGGAATGAGTAGTAA
++HWUSI-EAS635_102902104:5:103:11071:8464/2
+=@=9@===::>A9A:ABA?A?A:C==?=?>?DDCABDD?DEEEEEA?A?ADDDDA?>>;@AC:?CCC?-@:AAC:A:?A:C5A5C9>54->C@@?EEE?5
+ at HWUSI-EAS635_102902104:5:103:11570:7211/2
+TAGAGAGGAAGGTAGTTTTTTCTCGTAATGATTAAGTGTTTCGGTCGTTTCATAACTTTGTTTTGTTGTATCTATCGTTGTAATCCCATTATTAACAGAT
++HWUSI-EAS635_102902104:5:103:11570:7211/2
+GGGGGGGGGGFFEFFGGGGGGGGGGGGGGGGGGGGGGGGGGGFGEGGGGGGGGFGGGGGGGGGGEGEGFGGGFFGGDEGGGEAGGBEEDEEGEE?EEADD
+ at HWUSI-EAS635_102902104:5:103:12206:12070/2
+CTCAGATGATAAGTTATACTATTGCTGAATATCTGCAAGTGGATGCACCATATTATATAGAGTATTTAGACTATTTTGCTACGTCAAAAGGGGAAAAAGA
++HWUSI-EAS635_102902104:5:103:12206:12070/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGDGGGGGGFFGGGGDFGGFGEFGGGGDFGGGEGGGGEFFGGBGEGGFDFGGGGGA?CCEEGGEEEEEGE
+ at HWUSI-EAS635_102902104:5:103:1343:5153/2
+TTCATCGCTTTTGTCATTTACATTATGGTTTTTATAGCACTTATCGTATGGTTGCCTAAAGATTTAAATATTGTTACTCGGTCGCACACACATCATGCTA
++HWUSI-EAS635_102902104:5:103:1343:5153/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGFGFGGFGG?GFDEFFGFFGGEDEBGGAEGBGFFGGGGGGEEEGG?EBEDE?BBEEB5BE:<?<?>
+ at HWUSI-EAS635_102902104:5:103:13482:11944/2
+AGAATTAAGTAAAATAGAGAGAATACAATTTATCGATATTGGAACTAATCCGTTATCAAAAAAATTAAATCTTAATTCCATAACTTTATTTACTGCAGGT
++HWUSI-EAS635_102902104:5:103:13482:11944/2
+GGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFFGGGGGFFGGGGGGGGGGEGGGGGEGGFFFGGGGGFGGGEGFGEGGGGEGFBDADEC
+ at HWUSI-EAS635_102902104:5:103:13497:6538/2
+CATGTGCGTATACATCATGATGTGCTAATGAATCAGCGACAATGTTAATAGTACCTTCAATAGAGTTTTCAATAGGGACAATTCCGACAGCCTGTTTATC
++HWUSI-EAS635_102902104:5:103:13497:6538/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGEGGGFFGGGFFGFGEGEFGGGFFGGGFGBEGGGGDFFGDGEEGEGEGGABEDEDEDFCCEDEE
+ at HWUSI-EAS635_102902104:5:103:13832:12313/2
+ATAAAACAAGCTTATACCGGTAATTGCTTGAAAAGGTACATATTGTTTATCGTACAAATATGAAATAAGAATAAAGTTAATGATAAAGAAAATCATTGGA
++HWUSI-EAS635_102902104:5:103:13832:12313/2
+GGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGDGGFEGFGGDGGGGGGGGGGEGGGGFGGGGFFFGGGGEGGFGGGBGGGGFGFFFFGGEEEGE=FEGED
+ at HWUSI-EAS635_102902104:5:103:13832:19933/2
+TAATTTAAGAGCTAATGCTGGAATGAGTAGTAAATCGATTGAAGCGGCAATAAAGGGGCTTCCTCATGCATGTTTTAATGTGACCCTTTATGAGAATGAT
++HWUSI-EAS635_102902104:5:103:13832:19933/2
+GGGGGGGGGGGGGGGFGGGGGGFGGDFFFFGGGGGGGGGGGGGGGGGFGGGFGGGGGGGGGFGFGGGGGFFFEGGGFFFGEGBCBGDEGEFF=FD?EECE
+ at HWUSI-EAS635_102902104:5:103:13957:16135/2
+ATGCAAAAGGAATAAATATACCACTTTTAAATAATTCATTGAGTTCAAGTTCATTTTGCGTTTCACTATATTGCAAATATTTAGGTAATAGTTCAATTAA
++HWUSI-EAS635_102902104:5:103:13957:16135/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGDGGBEGEGGGGGGGGAEEFGGAGF?FEGGGDEEFGFGGGFFFDGDGFEAEEEGGGGG
+ at HWUSI-EAS635_102902104:5:103:14072:9872/2
+TGTAGATGAAAGTAAACTCGTCAACTATTTAGGAGAAACATTTGCATTACCAGTTGAAGTCGATAAATTTAATTGGTACCAAGTTGCCAAAAAAATTGAG
++HWUSI-EAS635_102902104:5:103:14072:9872/2
+DDDDDDDDDDDDCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDCDCDCDBDDBCCBCDBBCBBCCBCBBBBBACBBDBB at BBBBBBBBBB;>?BBB
+ at HWUSI-EAS635_102902104:5:103:15154:13453/2
+TGTAATCGTTTGCTATCATAATTGTGAAGATGTACTTTAACAATGACATCTTCATTTTCTTTCATTTCATTAAGAAACATGACATGATTTTCTAAGGTGA
++HWUSI-EAS635_102902104:5:103:15154:13453/2
+GGGGGGGGGGGGGGGGGGGGDGGGFGGGGGGGEGGGGGGGGGGGGGGGGFFGGGGGGGGGGFGGGGGGBGGGFEGFGFGEFFFDEG?EGGGGGGEGEDGF
+ at HWUSI-EAS635_102902104:5:103:15500:3607/2
+CAAACAATCTCATAGCTTTTCTTTAGAAGGTGAGGCTGGTGAAAATCCAACATTTTTAACTCAACCTCAATTTATTAATTCCCTAGATAATGGTCATTTA
++HWUSI-EAS635_102902104:5:103:15500:3607/2
+GGGGGGGFGGGGGDGGGGGGGGGGGFGGGGEGGGGGGGGCFBFEFGGGGGGEEFGGGEGFEEFGBGEGFBEBDEEACECEDEFC:BCBCAEEEEDDBDEA
+ at HWUSI-EAS635_102902104:5:103:15870:1164/2
+TCTAAAACTGGACTTAATAAGGAAGATGCAGACCCAAGTATAAGATTATCACCGTATACTCAACAGCGATTGCGTAACGCTATACAAGATGGTGCATTAA
++HWUSI-EAS635_102902104:5:103:15870:1164/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFBGGGGFDFGGDGGGEFGGGEGFFGGGFGGEEFBGEFDGFEDEBDDBBEB=??;?@@AA?B
+ at HWUSI-EAS635_102902104:5:103:15961:11694/2
+ACATCGCTATGAATAATTATTTTATCTTTACTAAAACCCAATTGAAGTAAAGATTGAATCATGTCCTTGTTTTCTTCGTTATTCATGGAAGTGCGAAATA
++HWUSI-EAS635_102902104:5:103:15961:11694/2
+GGGGGGGGGGGGGGEGGFDGGGGEGGGGGGGGGGFGGFGGGGGGGFGEGGFGGGEGGGGGGGEEGGEEGEBEEEGEGDEEEGEGDEDEEEGEGEDCDDDD
+ at HWUSI-EAS635_102902104:5:103:16004:10615/2
+AAAAGAACGATAAACTCACCAACATTTAATATAATCAAATCTTATACAGGTTCAAGCATACGATTACATCATATGGACTGTTATCGACTTGAAGGTGAGG
++HWUSI-EAS635_102902104:5:103:16004:10615/2
+GGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGDGGGGGGGGGFFFGGGGGGFFGDGFFBGGDFGGFGEDGFEE=CEE>ECEE
+ at HWUSI-EAS635_102902104:5:103:16033:7130/2
+TTGCAACCGCTCACGAGAAATTTGCAGTCAAAGCCTTTGAATTAAATGCAACCGATTATATATTAAAACCTTTTGAAAAAGAACGTATTAATCAAGCTGT
++HWUSI-EAS635_102902104:5:103:16033:7130/2
+GGGGGGGGGGGGFGGFGGGGGGGGGGGGGEGGGGGGGGGGGGFGGGFGGGGGFGGEGGFGGGGGFFFGGFFGGGGEEFEGGGEEADAFDEFGEED:FEED
+ at HWUSI-EAS635_102902104:5:103:16233:19310/2
+AATGATCTTGATATGTTATTTTGCGTGCCTGGTAGCCAACATGCATTTCGATTAATGCACCCTCTTGTATAGCGTTACGCAATCGCTGTTGAGTATACGG
++HWUSI-EAS635_102902104:5:103:16233:19310/2
+GGGGFGGGGGGGGGGGGFGGGGGGGEGGGFGGCGGGGGGGGGGGGGGEGE?FEFFEGEGGEGEGEEGEEEBCEECCGEBFDACDADCD at CEACACCCC?C
+ at HWUSI-EAS635_102902104:5:103:16696:9907/2
+TTTGTTGATGATCTTGAACGACATGTTGAGAATGCTCTTGTGTTACTTGTTCTTCCCCATTGCTCGACTCTTGCGATACATCTGTATGTCCCTTTGACAT
++HWUSI-EAS635_102902104:5:103:16696:9907/2
+GGGGGGGGGGGGGGGGGGGGGGFGGGGGFGGFGGGGGGGFGGGGGGGGGFGEGGFFGFFFGGGFGEBFEEEEEBFDDDEFBEEDCEGFEEEFEAE??BA=
+ at HWUSI-EAS635_102902104:5:103:16853:13233/2
+TGAACCACTTGCAAGAAATGAATTACAATATCTTTTAAATCTTAATGATGCTATAGATGAAATTGAAGAAGCAGAAAACATAGAAGAAACATTGGAGAAG
++HWUSI-EAS635_102902104:5:103:16853:13233/2
+GGGGGGFGGGFGGGGGGGGGGGGGGEGEGGGFGGGGGGGGGGGGGGGDGFGGDGFGDGGFGGGGGGFEGEGGABFEEFFGDFFFGFGEGGGDBB=BDB?C
+ at HWUSI-EAS635_102902104:5:103:17429:12482/2
+ATAACGGACATCTAGAGCCAATATTTATTTTGGGGAAAAATAATAAACAAAAAAGAGATCCTAACGTTATTCAACGTTTAGAAGCGAACAGAAAAAAATT
++HWUSI-EAS635_102902104:5:103:17429:12482/2
+GGGFGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGFGFGGGGGGGGGGGFGEGEGAGGGFGGGGGGDEFGEGFEGECEFDGDFGBFEEEEGE=EFEEEEA
+ at HWUSI-EAS635_102902104:5:103:1751:13371/2
+TGGACATAATTTTTCTAGTGTACGTGGACATAATTGATAAAATTTAAGCATTATTTGCATCCATGATGGTTGATTAATTTCAATTTTATTTAGTATTATT
++HWUSI-EAS635_102902104:5:103:1751:13371/2
+GEFFGGGGGGGGGGGGFGGGGGGGGGDGGGGFGGFFCGGGGEGGGFGGEDFFGGGGGDGFFGGGGDFFDDFFEAEGCFDEBCCECGEFGED at GCDFEGEE
+ at HWUSI-EAS635_102902104:5:103:17636:10601/2
+ACCGCATTTGATATAAGCTCAATTGATTATTTTTAAAGTAATGGTATCTCACAAACCACGCGCCACCCATTATCGCTTTTTCAGGAGTGGTCCACTTCTT
++HWUSI-EAS635_102902104:5:103:17636:10601/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGEGGGGGDGGGFGGGGGGGFGGFFDGGGGGGBFFGGFEFEEFEEEEAE=F at EDCDCCEEADEA
+ at HWUSI-EAS635_102902104:5:103:17656:12595/2
+GATTTTTTTCATGTTCATTTAGGACTCATATATTAAATTATTTCTTAATTATTTAATTCTTAGATTGTTGATATTTTGCTTTAGTAGCCTGAACAATAGC
++HWUSI-EAS635_102902104:5:103:17656:12595/2
+GEGGGGGGGGGGGEGGGGGGGGGEFGGGGGGGGGFDGGGGGFGGGGGEGEGGGGGEGGEEEEDBGEGEEE=DEGFEEEEEEEE=@CBC>CCAAEDAA at CB
+ at HWUSI-EAS635_102902104:5:103:17667:13837/2
+TGGCACAAGTACGAATGATTTCAGATATGAAACTCGCTCAACATATTTTGAGTCATAATAAGGGATTTATTATTTCTAGTCAAAATTCTTTACTATATGA
++HWUSI-EAS635_102902104:5:103:17667:13837/2
+GFGGGGG?GGGGGGGGGGGGGGGGGGGGGFGGGGGFGGGGGGGGFGGGGGBGFGFGGFGGGFGEGFGGGGGGGGGGFGFGGEGEGGFFGGBFFFDGAGGD
+ at HWUSI-EAS635_102902104:5:103:18459:5653/2
+CTAAGAATAATACAAATGTATTAACAGATAAAAAGAAACCTTGATTGTTTTTAACAACTACACCTATTTTTGAAATAACAGTAGGAATCGCAAATGCGAT
++HWUSI-EAS635_102902104:5:103:18459:5653/2
+GGGGGFGGGGGGGGGGGGEGGFGGGGGGGGGGGGGEGFGGGFGF?EEBCECCCFFGGGGFEGGBFFGDFGGGFAGFGFGGFBGFGGEEGFEFFBDEAEE#
+ at HWUSI-EAS635_102902104:5:103:18968:14941/2
+GGGCCTTCTGTATTAGGTATGATTGAGTATAACGTGCAGGGTCAGACTAAATTTGAAGGTGCCTTCATAGCTACAAATGAACGGTTAATTATGAATGTTG
++HWUSI-EAS635_102902104:5:103:18968:14941/2
+GFEGFGGFGGDEFFEFFDEFFEFFFBFCFFEEDFCFFEGDE?CEEAAABAEEEEGACEEAEE=CCDDBDEEEEE at CCBE<CACC=@??AACCD;CCDCCC
+ at HWUSI-EAS635_102902104:5:103:19356:14364/2
+TTTTTATTTTGCTGGTGATATCATATTTACCTTTATTTACATAATAAGTTGATAAAAATGATTCGAATTCCTTTGACTGATTTATTTGGTGAATAATATC
++HWUSI-EAS635_102902104:5:103:19356:14364/2
+DEEEEACEEEGGBEGFFFDFGFDFEEEAEEE?GGFDDFGF?FDFFFFFF=GEGGBGF6D?EEE5DEEEED=FDFEE:BE=DFEEFDCC5DBCBEC:EEE?
+ at HWUSI-EAS635_102902104:5:103:1996:10243/2
+TTCCATATATGCTGTGTAGTTTGTTAATGATTCGTGTTGGTGAACGTTTTATGCAAAAAAGAGGACCGCAATTGCCATTGATGTTAGGTCCGGTATCGAT
++HWUSI-EAS635_102902104:5:103:1996:10243/2
+GGGGGGGGGGGGGGGGGGGGFFFFFGGGGGGGGGGGGGGGEGDGFGGGGGGFGFGGGGGGEEGFGGFFEGEGEEGEEGEDCDEDABEDCDCAC>A at AA@A
+ at HWUSI-EAS635_102902104:5:103:2261:16993/2
+AAAGGTTGATCTTAGTTATGCAGGTCAATCAGATGATGTAAAAGATACTGTAAATTATGGAGAGGTTTATAAAGATGTAAAGTCTATTGTTGAAGGGCCA
++HWUSI-EAS635_102902104:5:103:2261:16993/2
+GGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFEGFFEEFGGGGGBFBFFEGGFEGGGGGFEDEBEFBECEEDFDAFABDCEFCC
+ at HWUSI-EAS635_102902104:5:103:2409:15564/2
+TATATTTTCAAGTTGCAAACAGGACGTTTTTTTATTTTACAACTTAGTCATCATTTTTATACTGTGGGGCTATTTGCTGTGAGTTGTTTATATATAAGTA
++HWUSI-EAS635_102902104:5:103:2409:15564/2
+GGGGGGGGGFGGGGGGDFGGGGGFFGGGEGGGFGGGGFGFGGGGGEEEGGGGFGGGGGEGEEGGEFGEEEEEEFGBEFFEDADCBECEBCE:EC?BC?CC
+ at HWUSI-EAS635_102902104:5:103:2497:19848/2
+GGAATTGGTCGTCACTTATATGGAAATGTTGCTGTATATCGTGCTTTTGTTGGTGAGTGAGAACAATATACTTATAAACATTTTTTGATTGATTTAAAGC
++HWUSI-EAS635_102902104:5:103:2497:19848/2
+GFGGGGGGEGGEGGGGGFGGGGGBEGGGEGGGGGEGGEGGGEGEGGFDGECGFCFACACCECDDDEEEEEEAEGEEDCCCEEEEECACACE at DACBAACA
+ at HWUSI-EAS635_102902104:5:103:2629:5162/2
+GTCGTTTTTCTAACATTAATCCGCTTGTTTCTAATGATCAAATCAAATCTTTTCGTTCCATCATTGAACGTATCAGTGGCGAAGAGTATGACAAAGTCGA
++HWUSI-EAS635_102902104:5:103:2629:5162/2
+EEEEEFGGGGGGGGGGGGBGGFGGEGGEGGGGGGGBEGGEGEEEFGDGFGGFFGFEEEEEEGDEEEBEEB9BBBB=9>>>B??@?@3?3?<=:>-?3?@?
+ at HWUSI-EAS635_102902104:5:103:2990:5660/2
+AGTTGATTTAATGATGTACCTGTACCATCTACAATTCGAGAATCATATTGTTTAAGAAATGGCGCAAAAGCATCAGGAAATATTGTTTGATGATGGCCAA
++HWUSI-EAS635_102902104:5:103:2990:5660/2
+GFGGGFGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFGGGDGDGGFGGGGGFGGGGFGBFBFFFEGGGGGGFGEGFDED
+ at HWUSI-EAS635_102902104:5:103:3557:8849/2
+TTTTTCGTAAAGTTATCTTCGGAGAATTGTATAACTTTATAAAGGGATCACGTGTGGTAAGCTTTATCATTGCTTCTATAGTAAGTTCTCTAATATTCGC
++HWUSI-EAS635_102902104:5:103:3557:8849/2
+EEEDDEEEEEEDCEEBBDDDEEAEEADDDBEEEEBEEECEDEEEEDDEEEDDCECEEBE?A:BDBEEEED?BD5=ECADBEAC?C??BDDEEBDBDBBC-
+ at HWUSI-EAS635_102902104:5:103:3593:18470/2
+TAAAATGAGCGATCCAAAATGATTTATATTTCCATTTTTATCAAAATTTAATGTTTGAATTTTAGCTATATTAATCACTTTGCCTTTATTAAGTTTAAAA
++HWUSI-EAS635_102902104:5:103:3593:18470/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGFGGGGFGGGGGGGBGGGGGGGDEGGFFGGFGDFDEGGGDGBFGDGEDCEAEEE=EB
+ at HWUSI-EAS635_102902104:5:103:3784:3498/2
+TGAATTCTCCATCTTTCACTTCAAAGTTAATATCTTTTAACACCTCTGTTTTTGAGGTTTTTTCTCCAAAAGTTTTACTTATATCTTTAACAACTAAACC
++HWUSI-EAS635_102902104:5:103:3784:3498/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGFGGGGGGG?FFFFFGGFGGGEFDB=D:CCFBFFFGFGGBGGGEFFDDEDEEEE:
+ at HWUSI-EAS635_102902104:5:103:4692:18026/2
+ATGTGATTTGGGCACATACATATAATAATTTTCTTCAAATAAAGGCATGACGCGTAAATGTGTTTCCCGTTCTAACACAGGAGTAAATTCAGTGATTGCA
++HWUSI-EAS635_102902104:5:103:4692:18026/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGFGGGGDGFGGGGFEGGGGGGGGEEGDGEGFGGBGEGEGEDFGFDFCF?ECEEE
diff --git a/example/SRS018978/fastexample_SRS018978.singleton.fastq b/example/SRS018978/fastexample_SRS018978.singleton.fastq
new file mode 100644
index 0000000..465e06e
--- /dev/null
+++ b/example/SRS018978/fastexample_SRS018978.singleton.fastq
@@ -0,0 +1,1000 @@
+ at HWUSI-EAS635_102902104:5:100:10342:20624/1
+CAGCGCCCGGTAGCACTCATCCAGTGAGCCAAGACGACAACACTCATCCACCTGATGAGCGCACAGCGCATTCCCCGGCCC
++HWUSI-EAS635_102902104:5:100:10342:20624/1
+GGGGDGGEDEEFFFFDFGGBGGEGDDEEEEEFFFGGGGGBGFFBDFEGEEGGEEA at BDDFDEBDBBAABB7????B<:?A#
+ at HWUSI-EAS635_102902104:5:100:10377:1866/2
+GATCGTCAGTTCTCGAAATCTCAACGATGATCGCGGCTCGACCCATGAGTCAGCGTTAGTAGAAACCCCT
++HWUSI-EAS635_102902104:5:100:10377:1866/2
+FFFFFFFFFFFEFFFFFFFFFFFFFFEEFFEEFEEEEEE at AABD?<@<B5====>5@?@??:@BB??:?#
+ at HWUSI-EAS635_102902104:5:100:10709:19498/1
+TGGTGAGGTTATCGCAGCTGCCCTGCGTAAAGGAGCGACCGACATCACCGTTGGGGTCGGTGGGTCAGCATCCACTGATGGCGGCGCAGGA
++HWUSI-EAS635_102902104:5:100:10709:19498/1
+FFFEFGGGGFGGGGGGGGFGGGGGGGGGGEGGEGFEGDEFBD==E:CDCCACCCC>5=>@,799(:8::,=>9,8?@;;@@@?=2AB<B?#
+ at HWUSI-EAS635_102902104:5:100:10724:18192/1
+AGGTCGGTCCATTCAAATCCGCGCAGGGGAACATGCCGGACGCATCGTCGTTCCGACTTACATGATGCTACCTGCAGGAA
++HWUSI-EAS635_102902104:5:100:10724:18192/1
+@@@?@:C?CCEFFDDFDFEFAEDEEF?DDFFDE5=DAD:BFD?FF=A>@CBEBEBA:BC:??C?5AAA?AEEA=EEE at A#
+ at HWUSI-EAS635_102902104:5:100:10876:2558/1
+TCCTTCCGGGAGGCCGACTTCTGGAAAACCAACTTCCGGCACATCTCTCCCGCCCACTGCA
++HWUSI-EAS635_102902104:5:100:10876:2558/1
+?D?AAEEE?EAD>DDDB=DDDBD=CEEEAE=D@??=CDB=:BB at DEEBEEEDED@1A??A#
+ at HWUSI-EAS635_102902104:5:100:11005:2867/1
+ATGACTTCTAGTGCTGCTTCCTCTTGTCCAGTCAGATCGACTCGTAGTCCAGCCCACCACGAGGCCAGCAACCACACGCC
++HWUSI-EAS635_102902104:5:100:11005:2867/1
+GDGDGGGGFGGGGGGGGFGGGDEGGGEGEDDCEDEGEFEEGDEEEFDEE?=BCABCC@@@:56:<??@A,@@9<A=C8C#
+ at HWUSI-EAS635_102902104:5:100:1103:4547/2
+GGCGTTGCGGACGATCTTCTTACCGAAGAAGAGATTAGTGCCCGACTGATCGGTGCTGGT
++HWUSI-EAS635_102902104:5:100:1103:4547/2
+GEGFEGGGGGGFGEGEGGGGFFBEGABEBBE:EBBEBEADBABD at AAEA=AEEAEAABB#
+ at HWUSI-EAS635_102902104:5:100:11147:13818/1
+GTGTTCCTGGGTGCCATGAGGAGGGAATAGCCGACGAGAAGCCCGGCGGCAACAATGAAGGTTATGAGGCCAGCGAGCCAGTGGCGCCCCAGTCCT
++HWUSI-EAS635_102902104:5:100:11147:13818/1
+BE=EDD=DBD?@CCC?CA:CDADDBAAADADDDDEEEEDCCDBDBADBCB?BCCAEB:EB at -@:@@C at 5@CEDDADEE?B=:<;/@>>>9/==>@#
+ at HWUSI-EAS635_102902104:5:100:1123:18077/1
+CACTTGACCCCGGAAGTCACACCCTAGACATTCGTTTTGTCGACGACGACGGGATCATCGCCGACGCCACGCA
++HWUSI-EAS635_102902104:5:100:1123:18077/1
+GGGGGGGGGGGGGGGGGGEGGGGGGGGGGGEGGGEGGGGEGEEEEEFEEGC at C=BE at CCCEE@EE at C<?C8?#
+ at HWUSI-EAS635_102902104:5:100:11549:9185/2
+GTAACGTTATTCCCCCCACCGCTACTATTCAGATTAATTATCGGTTCGCCCCCGACAAGACGACCGAACAGGCTCG
++HWUSI-EAS635_102902104:5:100:11549:9185/2
+EEEEEEEEEEEEEEEDEE@@AEE??BDDEADE?EDEEAEEEEBE at DADDAED@;?D at D?ABAADA?B@@:6:?:?#
+ at HWUSI-EAS635_102902104:5:100:12239:1940/1
+TCTTGGTTTGGTGTGCTAATCGCGAAAGATGACGGGACGCTCGGTGATGTGCCGTGTGGAAATTTTGCCATCGATATGCTCGTTTCCACCATG
++HWUSI-EAS635_102902104:5:100:12239:1940/1
+GGGGEGGGGGGFGGGGGGGEGGGGGGGGGGGGGGDDGGGGEFGGAECCECFFEECECEF?AA@@@FEEE at D=ACBBABDCCEA=CCCCEA?@#
+ at HWUSI-EAS635_102902104:5:100:12850:18717/1
+ACCTTGCGGCCTTTGGCATCAGTCAGAGTGAGGACGGCGTTCGGCTGAGCCAGACTCTCCCTGAGTTGCTGCTCG
++HWUSI-EAS635_102902104:5:100:12850:18717/1
+GGGGGGGFFGGGDGGGGFGGFGFFGGEDDBBEEFFGEDGEEE5EEDEDEDFDDEDADCD=CABB5;==>>>A>@#
+ at HWUSI-EAS635_102902104:5:100:13249:1985/2
+CATCACCGTCGTCGTATGACCAGACCAAAGCGCCAATGCACCAATCACCACGACATTCATGAGAAACTCGACACCGCGGCGAATTGACTCCAGCAGACCC
++HWUSI-EAS635_102902104:5:100:13249:1985/2
+GGGGDGEEGGGGGFGDFGDGEGGGGGDGGFGGGEFFGFEFEEGE?EEFGEEEEGEEDGEEEBEGBDD=DCDDEE@@?@CCC==;4A?A,AC>?=?=?AA#
+ at HWUSI-EAS635_102902104:5:100:13396:4848/2
+CCGCAGTCGCAGTGCGTCCCTGAACCAGGCGACGGAAGGTCTGGATGCGTTTACTGCTGAACGACCCGACGCAAACCCGACTCCAA
++HWUSI-EAS635_102902104:5:100:13396:4848/2
+GGGGFGEEFGEFFFEGFGGDGGGFDGFDDGGFEGGBEEE at FFFFDEGBGBEFDEEFEEEEEBGEEEADBD??@5A at BBA@B@?C@#
+ at HWUSI-EAS635_102902104:5:100:13531:4233/2
+CCGGGTTATTAGCTGTCCGGACACGGTGGATTGATTCGGTTCTCCTGTTAGGGCTAGGGGCGG
++HWUSI-EAS635_102902104:5:100:13531:4233/2
+FFFFFFEFFFFFFFFFFEFDFEFDFEAEEBAEBDEFFFF?AEEEE=B at E:CBB?@@EBEE?B#
+ at HWUSI-EAS635_102902104:5:100:13593:20237/1
+GCCGTCGGCATCATGGTACCAACGCGCATTGGTGCCTGACTTGTTTTCATATGACGACATAATGTCATTATTTTTGCTACTGACATTCATAATGCCGAGG
++HWUSI-EAS635_102902104:5:100:13593:20237/1
+EEEACEEEEEFGGGGGFGDGGGGGGDGFGF=E:F?EEECEBGGDEFCCBDCEADDEEEEEEBE?BEEEEBDEEEEEAEEACBCCBEEE?EAEEEE at A?A?
+ at HWUSI-EAS635_102902104:5:100:13733:15341/2
+ACGGACACGTTCTCATGGACCCGCACAATCTGCTGTTGGAGATCGTCCTCCGCTACGGAGCGATCGCGATGATCCTTTTCGTTATCTGTTGGTTGT
++HWUSI-EAS635_102902104:5:100:13733:15341/2
+DDDDDDDDDCDDDDBBDDDDDDDDCCC?CDDDCCDBADCCD?ABDBA@=BBBB?=BBB5BBB???B at B@-??-B?=???B::555????:?+???#
+ at HWUSI-EAS635_102902104:5:100:13790:4809/2
+GAGCGATCCCAGATTTTTGAGGCTCAGCCGAGGAATTCACCTGGACCAATACCCGTAGTTGACGTCCTTCCTTTTGTAACCTCTTGTCGAGTTCATGGGC
++HWUSI-EAS635_102902104:5:100:13790:4809/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGFEFGDFFEFGGFGEGFGEGFGBBECDFBEFADCDCD=BBCC?CECCC=CC5==>:3>7=<58??=>
+ at HWUSI-EAS635_102902104:5:100:13837:7588/1
+TCCGAACGTTCTCGAGGATCGATGGACAACTGCCACATGGGCAATGCCATGTCGACGCCTGCGGTCATCTGCTGAGACGACAATGAGCGCAGGGAGCTGT
++HWUSI-EAS635_102902104:5:100:13837:7588/1
+GGGGGGGGGFGGGGFGFGFGGFFFFGGGGGGGGGDGFGFEBGDGGFGGFEFDEADC?E?CEEEECC at C:BCBCBC-;?>=C=A:=BBB=?=?589?@@@#
+ at HWUSI-EAS635_102902104:5:100:14052:14695/2
+CCAGTGACGAGACGCCACGCACACCACGAGCACAAAATCGAACGAATAGTGAAACGGTTGTTGATCCAGCCGCCCGGCACATAGAGGAACATCGCGATGC
++HWUSI-EAS635_102902104:5:100:14052:14695/2
+GGGGGGGGGGGEGGBGGGFGGGGGGGGGFGGDEGGGAGGGFGGGGBEFF=FDDFEACACCCDEEB?FEDEGEEGEECGBE=CCACCB:?AA:AA5CAA at C
+ at HWUSI-EAS635_102902104:5:100:14172:19155/1
+AATGTCTAACCGTAAACTTACCTGAAAAACACTGATGTGCATCATTTTGAGTCATTACTGAAAAAAAGCCGTCACGATGATACGCATCAAAGACTCTCTT
++HWUSI-EAS635_102902104:5:100:14172:19155/1
+;;;5;=?===;>@@CADAADAD??D??DA=8 at CCC5?=CCDDDDD:AC?-AA:CCA?DD:CDD-C?<6?A6:@@@:D at DD5CA5AA<>5:13;?5=C:?=
+ at HWUSI-EAS635_102902104:5:100:14206:18975/1
+TGCGCTCTGCTCCAAAGGACCATGGGCGGGGCAACCAGATTGAAGGGCGTATTCCAGCTCATTCGAAGGTCATCATGGTCGAGGACCTCATCTCCA
++HWUSI-EAS635_102902104:5:100:14206:18975/1
+==:=:?AAAA5CED5C?5C=C:::A==:588+:B>@@=;649;;;B5>=)CAC?A<,488(6.4</19*(0*648:.>?B>642,=B6B=?5CBA#
+ at HWUSI-EAS635_102902104:5:100:14335:2153/2
+TAAAGATCCGTGCAAAGCCCTCATACGCCGTGCGGCTCACCTGACCGAGGGTGACTCCGACCTGTGTTGGGCTCGCACCACCAGCTGGAGA
++HWUSI-EAS635_102902104:5:100:14335:2153/2
+DDDDDDDDDDCDDDDDDDDCDDDDDBDCDD at CBCBBBBBBBBCBBBB:BBB2A??==>>=>@?@??<9??@@??@@?@@>@@7?@><@=@#
+ at HWUSI-EAS635_102902104:5:100:14449:17837/2
+GAATGCCAGGGCGATGGCTGAGCTGGAAGCTAATTCCCAGGTCGTCACCGGCGTCGGCTTCAGTTACCGACGCCACCCC
++HWUSI-EAS635_102902104:5:100:14449:17837/2
+GEGGGFGGE?FFFGGGEGG?GGEEGFGGBBGGGGGGGDFGBEGGEEDFBA??@0??????C:C=ACCC:=CAC@>@/?#
+ at HWUSI-EAS635_102902104:5:100:14520:10986/1
+GAAGGTTACGTTATTAGACCTCTGCCCAGAATCGTCATGACTGCTATGGCCGCTAGGCACCCAG
++HWUSI-EAS635_102902104:5:100:14520:10986/1
+=9:?97@>@>9B=>?DDDBDDCBBCBCD5CBBDAB:>@=>B??=B???=A822)9:???=?7?#
+ at HWUSI-EAS635_102902104:5:100:1460:3510/2
+GCTCATGGCAGTGCCTCCTTCGCTACCCGATCAGCCAGAGACTCACTCCACAGCACCCCA
++HWUSI-EAS635_102902104:5:100:1460:3510/2
+EDFEDEFDFEEEEEEGFFEGGGGFFBDEED=BB:@CB@?=???A@@??@?@A@?@>@??#
+ at HWUSI-EAS635_102902104:5:100:1478:3410/1
+AAGGCTGATGGCACGTTGACCACATACCTCAATCAGTCCTATGGCTTCGACTACATCAACACGGT
++HWUSI-EAS635_102902104:5:100:1478:3410/1
+AEEE:BDEAEEEBDEEFDEFF=EEEDDEBEDEEFFEEEEEBBB=D@???=??5???@<?::@:?#
+ at HWUSI-EAS635_102902104:5:100:14861:6649/2
+CAATGGCGAGATTTCCAAACTCGATCAGGTGATCGAGGACATCCACACCATTTCTGGGCATGGCACCATCGTTACTGGCCAGGCCGCCGAGCTGGCCCA
++HWUSI-EAS635_102902104:5:100:14861:6649/2
+DDDDDDDDDDDDDDDDDDDDDDDCCDBDDBDDCCCBCDCCCBDCCDDDCBBBBBBBBBBB:=BBBBBBBBB?BBB?@BBBB?:=@?B=2,B?4?????#
+ at HWUSI-EAS635_102902104:5:100:15023:21239/1
+TCGATGAGGTCAGGGCGCCAAGAGGCAATCTTCTCCAGGCCGTTGTGCTCGGCCGCGATCGCCTCACACTCATAG
++HWUSI-EAS635_102902104:5:100:15023:21239/1
+?EDEE?ADD?DDAD55C6?>DDC=DAAA:C=DDDACAC>?D:?=BBBB=B5?@?5>>->5+:2''67448@???#
+ at HWUSI-EAS635_102902104:5:100:15086:7607/2
+AAGGAGCGGGTGGGTTCCGACAGGTGCGGATGGGCACGATCAGCCTGGGAGACTCCAAGTTCATC
++HWUSI-EAS635_102902104:5:100:15086:7607/2
+>BCA?A?CCCDD>B>DDDDDBDDD?D?DDB=DCBD?@D at C??=B?277A4?/5C<CA5=>D?B@#
+ at HWUSI-EAS635_102902104:5:100:1516:11149/1
+CGCAGTACCGACAGGGCATCGAGCGCGACGACATCATTGTGCGCCACGACACCGACATCGGTCTGCGCGTCGTCAATGAAGCGCG
++HWUSI-EAS635_102902104:5:100:1516:11149/1
+EGFGGCBEEEEEECCFEGEGDDDEEGFDDGD??DFGEEEEEEEBAEGA?EEEFE=C:A=C=:56=AAAA==?3=>37:75CAAA#
+ at HWUSI-EAS635_102902104:5:100:15184:4013/2
+AATACGGCTGTCATCTTGTAGCTGAAGGTGGTGCCAGTATGCAGCACGACCTGGTTGCGCCAGGGCTCTTGATCGTCGGC
++HWUSI-EAS635_102902104:5:100:15184:4013/2
+GGGGGGGGGGFGGGFGGFGGGGGGGDEFCFEBECECEEDEAFFFF=CB?AEEEE9EC=EBF at DDE?:ECC:?A@@<@AB#
+ at HWUSI-EAS635_102902104:5:100:1524:5949/1
+GGGTTCGCTGTCAAGGCTGAAAAGGTCACTAACAGGGGCTCGGTTACCAGGAAGCCGTTGCTGCCG
++HWUSI-EAS635_102902104:5:100:1524:5949/1
+GGGGGGFEGGGGGGGGGEGGGFGFGFGAGGGGFGGBEDE?CCC>CBCEBAEC=B5CB?:ACAABB#
+ at HWUSI-EAS635_102902104:5:100:15464:4668/2
+ATGGTGAGTGCATCGTGCTACCGACCGACACCGTATACGGTATTGGTGCTGACGCCCTCAACGCTTTAGCAGTACAGCGTCTGCTCAACGCTAAGGAGCG
++HWUSI-EAS635_102902104:5:100:15464:4668/2
+DDDDBDDDCDDDDDDCDDDDDDDDDDDDBDBDDBCDCDDCB=BCDB at DCBDBBBBBBBBB5BBB@?B at BBBB9BB?BBB@=??:?=????5-525:7?:?
+ at HWUSI-EAS635_102902104:5:100:1556:4525/2
+ACCGTCGGCAGCCGGACTCATCCTGATGACGATGTCATCTCCACTGAATGTACCGGTATAACCATGGTTTGCGGT
++HWUSI-EAS635_102902104:5:100:1556:4525/2
+DDDDBDDDDBCBBCC?BBBB?BB at B?:A?B?:<>5=?A??B<???B???B0????>*===@@?@??57=7?:??#
+ at HWUSI-EAS635_102902104:5:100:15877:1806/2
+TCTTGTTGCTGATGGTTCTCTTAATCGGTCGGCTCTGGGGTCGATCGTGTTTGCTGATTTGCAGGCGCGTCGCCGTCTTGAAGCCATTATT
++HWUSI-EAS635_102902104:5:100:15877:1806/2
+GGFGGGGGFGGGGGGGGGGGGGEGFGGGEGGGGGGGFGGBCEFBDEECEEEEBDBF5BEDE5?=CCCAB5<=>::,?>5>:3;:::@:=@#
+ at HWUSI-EAS635_102902104:5:100:1599:16681/2
+TTATCGTCGCGGCTCACTCTGGCCTCGAATATCACCATGAGCCGACCGGGGAACAGATTCGGCTAG
++HWUSI-EAS635_102902104:5:100:1599:16681/2
+GGDGGGGGGGFFCDBEEAEEEGBGE==17*<306<EEDCDCEEEDEEBBEEBCC=??6?@,?>:?#
+ at HWUSI-EAS635_102902104:5:100:16333:16234/1
+TTGGTTTAACCAAGGCCCGAAGATCGGTTCCGACAAGGGGAACACTGTGTTGACCGCGCATACTTACCACAAGGGTGGGGCTCTTGGTAACCGCCTCTAC
++HWUSI-EAS635_102902104:5:100:16333:16234/1
+GGBGGGGGGGFFDFFFFFDFFEFFFFFEFFFFFFFDFEEEEDFFFFFEFEEBDBEDFAE=DEDDDEEEEDB,B??EEEEE4 at BB@@AA, at AA:BA at A:??
+ at HWUSI-EAS635_102902104:5:100:16569:18419/2
+CTGGGTCTCTTGGAGCATGTTGATGCGCAAGTTAAGCGCAGAACGCTCAGCCTTGATCTGATCGGTGGTCAGCGCCGTCTTGTTCACGGTCGAAACGGCA
++HWUSI-EAS635_102902104:5:100:16569:18419/2
+EEEEEEEEEEEEEEEEEEEEEEDEEEEEEBEEEEEEEEEEEEEEEE?EEEEEC5EE:DEEEEEAEEEEEE?AEBCB==BAA5 at AA=AA at 4==>+>B at CBB
+ at HWUSI-EAS635_102902104:5:100:16638:21446/2
+AAATGAGTGCTAATGGGTACCGATATTATAATGTTCAAGATATTTCAAAGTTACAATATATTCTCTTTTTAAAGGAATTAGATTTAACATTAAAGCAAAT
++HWUSI-EAS635_102902104:5:100:16638:21446/2
+CCCCC=DDDDDCDBDDDACDCDD?@4@>C9@@C@@C?BDBBBBCBB=BBCBBB?BB?BBBBBBCBBBBB>7?=AABBBBB:???B?BBBBBB:BBA5?AA
+ at HWUSI-EAS635_102902104:5:100:16639:2987/2
+CCATCCTTGTCACCCATCGCCATCCCGATCACGTCGACCCAGAGCACATCGGTGCCTTAGTCGACGCGA
++HWUSI-EAS635_102902104:5:100:16639:2987/2
+GFGGGGGGGGGDGGGDGGGGGEGGGDGBFGFFEBD=EECEEE:E:DC:?EBC:C?A?C=C@@A;@CCC#
+ at HWUSI-EAS635_102902104:5:100:17049:10832/1
+TCCGGACTCAATCGAAAATTGTCGGGGGTAGAGCTGACAGTCGCGTGTGACGTCACTTCGCCGTTGCTCGGACCAGAAGGCGCGGCCGCC
++HWUSI-EAS635_102902104:5:100:17049:10832/1
+GFGGGGGGGGGGGGFGFGEGGGGGGGGGBGGGDGEFGEFGFGGGGFGDGAGGFGEGDGGDDEEC?FADDBD=?BE:?;>=CCBB:=5@@#
+ at HWUSI-EAS635_102902104:5:100:17301:5843/1
+GCCGGGTGCGTGAGGCTCCGGGATATCGGTCAGCTTTGGATGAACTAGTCGGTTCTGACGGCGTTGCTACGAGCGACATCACAGAT
++HWUSI-EAS635_102902104:5:100:17301:5843/1
+GGGBGFAFEFEEEEEFFFFDFFADFCE?E??@=DBBDBC:BE:ECAAB-AAC=@=;;->?>:>*:9..:78.7*:-8/6<@=?@B#
+ at HWUSI-EAS635_102902104:5:100:1732:10911/2
+CACTCATCCAGTGAGCCAAGACGACAACACTCATCCACCTGATGAGCGCACAGCGCATTCCCC
++HWUSI-EAS635_102902104:5:100:1732:10911/2
+FFEDFFDFDFDEFFFFFFFFBFFDEFDFFFE=FAFFEFDDFE=DBB?E?BBEDBEBB==D?B#
+ at HWUSI-EAS635_102902104:5:100:17351:2078/2
+CCTTTAATGTCAGGAAGGGTTATCGTCCCACCCTTGATGGTCGGCAGAATGATAGGACCGGCGCTGATATCGGGA
++HWUSI-EAS635_102902104:5:100:17351:2078/2
+FDDFEFFFFFFFFFDFFFFBEEDDEDFFFFEFEEFEBEDF at EEFDAF?A=ED?@BAAB:?5,<:2?=9?:@@B?#
+ at HWUSI-EAS635_102902104:5:100:17573:2586/1
+TTATCCACCACCATGTAGAACGATAATCGACGAGGGGGCTTCTCACTGACGTCAACAATGCGTTTCGATTCGACTCACCAACTGCGCAACG
++HWUSI-EAS635_102902104:5:100:17573:2586/1
+GFGGGEGGGGGGGGGGDGGGGGEGGFGGGGGGGGDGGGGDEGEGDGEEEEDBDEEFDECDAEC??CCC?A@??C9AA9C:=;,=>?:)??#
+ at HWUSI-EAS635_102902104:5:100:17661:5934/2
+TTGGGAAGGATGCTCACCCTCAGGAATGCTGTATTGAAAATTCCCCAACTGATCTCGACCGCGCGCCGCCCCTACATCCTTGAGGTCTCGG
++HWUSI-EAS635_102902104:5:100:17661:5934/2
+FGGGGDGGFFGEGEDEFGFDGDGFGEGGGGGGFFGGGFFGGFGGGDFAFFGG=EGGFGGGGGGGGDGAGFC?5EEB=?B at ABAB=ABBBB#
+ at HWUSI-EAS635_102902104:5:100:1781:15593/2
+CATCCAGCGAGGCCGATTCGTAGATCTCGACTGGCACCGACGACATGCCGGCCATGTAGAGCACCACGTAGTAGCCGCGCG
++HWUSI-EAS635_102902104:5:100:1781:15593/2
+GGGGGGGGGGGGGFGGGGGGEGGGGGGGGGGBGGGEFFFEEGFGEEFGEEGGEEEE at DDBD:ABBA?B=,=:==8??)@?#
+ at HWUSI-EAS635_102902104:5:100:17841:9969/2
+GCCAGTATCAACCACACGAAAAGAGGTGTCCATATGACGGAGCCGAACAATCCACACCGACCCGATGAGGCCGGTGTCTCAGGGTGGCCGAGCGA
++HWUSI-EAS635_102902104:5:100:17841:9969/2
+EEEEEDEEEEEEEEEEEEEEEEEDEEBEECDEEBEEBEDEBEBDE at D@D at EEBEEE@E?@@=@@5;@??@7???;:50:::=;?3??4:?<@9?#
+ at HWUSI-EAS635_102902104:5:100:17957:18069/1
+TCCGCCACACTGAACAGGGTGATCATGTACGGGGCCGCCGCCATACCAAGGATGATGAGGACCGGCACCAACGGCCCAAGGCG
++HWUSI-EAS635_102902104:5:100:17957:18069/1
+FFFGFGFGGFGFEEGFFF=BEEEDEFFFDFA=DEFFFDFFEA=EEEB?CECAB=CCDD:DA>=??@>C;2CC=55A><::5@#
+ at HWUSI-EAS635_102902104:5:100:18035:19189/2
+GATTTCCGCTGGCGGTATGCCGACGCGCGTGAAATGTCTGCATGCTCTGGCAGGGCACGCCTTAGCTGTCGGGCCC
++HWUSI-EAS635_102902104:5:100:18035:19189/2
+GGFGGGGGDGGGGFGCEGGFFDDFFGFEGEB at CAECCC=5?5?@?=CCCCCCC at EE@CB at C?AAC?756??7@?@#
+ at HWUSI-EAS635_102902104:5:100:18194:6329/1
+TGCTCACCTACAGGGCCCCGGTCCGACGCTCATTGATGTTCTTGACTCGATCGATGACACCCGAATCGAACTCGTCGGCTG
++HWUSI-EAS635_102902104:5:100:18194:6329/1
+EGFGDGGGFEGEGEDGGGGAFDDFEGGDG=EEEEEEDDEDE:BDDFFFFAEEF?DA5AAAC94.?=>>>;.7872AAB-A#
+ at HWUSI-EAS635_102902104:5:100:18300:8105/1
+TCGAGTAGGGGGCGGGCATCTGGTAGGGATTGCTAGGCTGTCCGTAGGGATCACGTCCGGCCTCGCTCGGCCACCCTGAGA
++HWUSI-EAS635_102902104:5:100:18300:8105/1
+GGFGGFGGGGGGGGGGDFGGGGGEGFGGDGFGDGGGEFBFGGGGEFGGGDEEBFBBECBA3:@??C5C=?@C=?A?45:?#
+ at HWUSI-EAS635_102902104:5:100:18486:9938/2
+ACGCTCTCATCGTCGATGGGCTGGGCCTCAGCCACCGCTTCACGCATGACGACACCGATCTGGTTGGCAGCCGCCAGACCCACCTCATCAA
++HWUSI-EAS635_102902104:5:100:18486:9938/2
+GGGGEGGGGAGGGGFFGGGGAFGFGFEGGEGGEFGEGD5FEDEFGDDFBDBCCA at CE@AC at ACA:@A at A:?@@@A=@@@@ECCD2A?9AA#
+ at HWUSI-EAS635_102902104:5:100:18618:11797/2
+TGGCGCGTAGCCGCCGAGCGAGGGGACCAACGATGGTGGCAAACTCCACTCGGTGTGGGGCGCGGAAATACACCGC
++HWUSI-EAS635_102902104:5:100:18618:11797/2
+DCDDDDDDDDDDDDDDDDDDBDDDDD?DDDDDDBDDBDDDD:B??B at ABBABC?C??BBB:B?BB55>==????B#
+ at HWUSI-EAS635_102902104:5:100:18807:7710/2
+CAGTTGTCTGTCACGAGCTTGTCCGTAAACAGATGCGAATCACCAACCTGGGGTGCTGAGCTGCCCAGAGTAGTGCTGGGGATGTTGCAGGGGCGG
++HWUSI-EAS635_102902104:5:100:18807:7710/2
+EEEEDEEDEEFFDEDCFFFFEFFDFEFDFAFEFEDFDFEEFAADBFFFA=CEB5CEBB at B:AABAEB@@B?,???A@@@@E2 at D@5>>5:@55=A#
+ at HWUSI-EAS635_102902104:5:100:19188:4243/1
+ATGGATGATCCACCCTTGTAATAGGGGAAAGTTGGATTGGACAATACTTGACGAGGCCCGCTGAATCCTTCTGGG
++HWUSI-EAS635_102902104:5:100:19188:4243/1
+DFGDGGGFGEGGGADFF?EBEEBFFFF:EDBACCEAEFFFDAEEFBADEE=BBA5>(>8=,,817.55897???#
+ at HWUSI-EAS635_102902104:5:100:19304:21139/2
+ACGTCTTCAACTTATGCGACACGATGATCAAGATGCTGTCTGACGCAACCTGTTGAATCACCGCCATGGAACGCTCCTCAGAAAA
++HWUSI-EAS635_102902104:5:100:19304:21139/2
+D at DBAD:?DDE:EEB=DBBA?ADABEEEB?DEBAB:BC=A5AC5=BA=@@????:????5/969&;:5<6*;;(2=66==?A@@#
+ at HWUSI-EAS635_102902104:5:100:19362:5476/2
+CCCTGATCCTGCGTACTGCTACCCGTATGCGGATTGGCCACACCGACGAGCGCGCAGAGGGAGGCCAGT
++HWUSI-EAS635_102902104:5:100:19362:5476/2
+@*45;2:6 at +37@50:?C?A98:8B2>A5<(;394=C=B?78B-8+1877>A>;'5?>>:A/A?A>:?#
+ at HWUSI-EAS635_102902104:5:100:19395:1336/1
+AGTCCACGCGGCGTCACCAATATTCATGCCCTTCATCGCCTCGACGGCCGATGCCAGAGTCACCATACCG
++HWUSI-EAS635_102902104:5:100:19395:1336/1
+EEAEBDDDDEFFFD?EDBEEAAECBDECB=:CB?C>:<>:==>5,429=.??:??>5:>(;5:<?@@?A#
+ at HWUSI-EAS635_102902104:5:100:2061:2168/2
+CCCGAAGTGGCGAATCGTTGCGCTCGTGGTGGTCATTGCTCTCATCATCACCGCTATCGCC
++HWUSI-EAS635_102902104:5:100:2061:2168/2
+GGGGGGGFGGGGGGFEGEEGFFD=DFDEFCFF?DDEEEDDCEEEE@=ABCED@@?:?@@?#
+ at HWUSI-EAS635_102902104:5:100:2110:10515/1
+CCACCTGGGCCACCGATGTGCGTCCGGTGAGAAGCAGAATGACTTCCGCGGGCTTTCCGACCA
++HWUSI-EAS635_102902104:5:100:2110:10515/1
+GGGGFGGGEGGGGGG?EFDFGGEGEFFDEDFDDFF?D at DAC@CA:<?=(;??33?C=CAA=C#
+ at HWUSI-EAS635_102902104:5:100:2157:11483/1
+CTGATGCAGTATGTGGTGCGGGGTCGTTTGTGGAGGACGTGAGGAATGTCGCGACTTCGTGCAGTGCTTCGACCTCGTCAGG
++HWUSI-EAS635_102902104:5:100:2157:11483/1
+GGGGGFGGGGGGGFGGEGGFGFGFGGGGGFEGGGGFGFGGFEGEDGBGEGGEEDEEEEEE?@CC9?=?AB:BAC?C=>C:?#
+ at HWUSI-EAS635_102902104:5:100:2185:17486/2
+AGGCTTGGTTTTGGAGACTGGTAGCAACGACACCTCGCCGGGATTTCGATCACAAGCTCGGCAGGCATCATCAATGCGGGTACGCACCGCC
++HWUSI-EAS635_102902104:5:100:2185:17486/2
+GDEGGGGGGGGGGFGFGGGGGEGGGGFDEGGGGGFGFGGFDE-CECCEBAEDE:DDECBADEC at B?=ACC at AC??:<:197A9A?1A?AA#
+ at HWUSI-EAS635_102902104:5:100:2349:21332/2
+TAGGATCGCCTCTGAAGCTCATTGCCGTGGGCGTCATTCGTACTCCTGCCGACCTCGATCATGCACACCGACTACT
++HWUSI-EAS635_102902104:5:100:2349:21332/2
+GGDFGGGFGGGGFGGGGFGGEGDFGGG at GBFFFBFFDGGGBGFEGD5CECE@CBACC==C@??A?@:?A=AC>CA#
+ at HWUSI-EAS635_102902104:5:100:2648:14412/1
+CGCATGGGTCGCACCAGAACTCTCCCAGCTCTGCAACGACCTCATCCCCAAACGGGTTGACCCCAGGCCCGACAGCT
++HWUSI-EAS635_102902104:5:100:2648:14412/1
+GGGGGGFGEGGGGGGGGGGGGGGGGGGEGGGGGGFGFEGGEEGGFEGEGEEEEBEB?C?CACCC@::???9=A5<?#
+ at HWUSI-EAS635_102902104:5:100:2730:20833/2
+CGACAGCCTTACACCAGCGCCGTCTGAAGGAGTTAGGACCGTCTCGTCAACACCGGATGAGCTACGCCAAT
++HWUSI-EAS635_102902104:5:100:2730:20833/2
+GGFGFGGGEAEGGGGGGGGGGGEGEGEDGF at BB=EEEDDBC at BBE?:?5?DBDD:?-??:::,;;@@9)@#
+ at HWUSI-EAS635_102902104:5:100:2744:19935/2
+GAAAAGAATGAGTACGATCGACGATAACTGGCACACCGTCACGACGGGCCTGCTTGAGCACCTCGATGAGCTTCGAACTCGGCTGA
++HWUSI-EAS635_102902104:5:100:2744:19935/2
+FFFFFFEEEFEE at EEFEEEFEEFEEEDEEEEEEEEE?EEEEEEE@@@D??=@@>;?@@@>@AAA:5;55=67;:?72;;76;<<?#
+ at HWUSI-EAS635_102902104:5:100:2761:8831/1
+CCGAGGGCAGCCTCAAAGTCAGCGTAATAAGGTGACTCGTAACGCAGGCAGCACATAAGTTTGCCGCA
++HWUSI-EAS635_102902104:5:100:2761:8831/1
+EDFDFEFDFEDEEAEE?CBEEECBEBDEE=8<1;B==>?;A@@:CC:5CCFBBFDEBBB4BAA at C?@#
+ at HWUSI-EAS635_102902104:5:100:2904:9745/1
+TGGTCACCGGAACGTCGACGACGGTGGCGAACCTCGGATCGTCCACGGCGTCGATGACGGG
++HWUSI-EAS635_102902104:5:100:2904:9745/1
+FFEFFGGGGGDGDGGEGGGFGEBEBCCAEEE=BAECC?C?A?AA::<<>>8=?=>?>66?#
+ at HWUSI-EAS635_102902104:5:100:2981:17166/2
+GTCCGACCGCTGCTCAATATAGGACGGCAAGTTCTCGACGACCGGAACGGTGTCGAGGTGACCAGCAATGACGACCC
++HWUSI-EAS635_102902104:5:100:2981:17166/2
+DCDBBBDCCBBCBBBBBCBBBDB:BBBBBABBB at ABB=BB at BBBA?<=B?7?:??6>=0=:?8??9?,>?=>????#
+ at HWUSI-EAS635_102902104:5:100:3101:6524/2
+CCAATAGTCGCCCCAGAGCCACCAATGGAGACGAACCACTGAAAGAACGTTTCCGGTGCGATGTGAGGAGCCGGGACACCGGAAGC
++HWUSI-EAS635_102902104:5:100:3101:6524/2
+GGEGGGFGGGGGGGGDGGDGGGFFGGGEGGGGGGGFGGAFGGGGFFCFFCAFFDEECEEECCEAECEECBECEAC?@=????6:?#
+ at HWUSI-EAS635_102902104:5:100:3127:18756/2
+GGTTGACGGAACTCACACGCCTCGACCTGTCCGGACTCAATCGAAAATTGTCGGGGGTAGAGCTGACAGTCGCGTGTGACG
++HWUSI-EAS635_102902104:5:100:3127:18756/2
+FFFDGFGGGGGGGGGDFGGGGGGGEFGEEEEEEAB?BFACDBFACCEDDDEEEEBCC?@CBCB at C?CAA;CC?A>C<=<A#
+ at HWUSI-EAS635_102902104:5:100:3243:20782/1
+GGAGGGCTCCCATGATTTACACGTCCACGAGTTGGTGGAACATGTGCGTGGGGTCAGCAGCCTCGGATATCACAGCCGTCGCACCGTTATG
++HWUSI-EAS635_102902104:5:100:3243:20782/1
+DDFDFFDFFFDFFFDFFF?F?E?EEFDF?EEEBED at DDA=C:CCAFFF at B=BB8?>C@=AB???@=--===B=??B@=@BB?@??::;;?#
+ at HWUSI-EAS635_102902104:5:100:3244:8953/2
+TGCCATTTTTACCATCATCACGAGTGCTGGTGAGGCGCGTGCGGCGCTGTATCAGGCTCTTGACAAAGCTCGGGCTGGTGA
++HWUSI-EAS635_102902104:5:100:3244:8953/2
+DDDDADDDDDDDBDDDDDADDDDDAD:BDAADCDDDDCD5C>C,9@;:>*561:?C??A?ABA95>@A@=BBBB::A?.?#
+ at HWUSI-EAS635_102902104:5:100:3598:16313/2
+AACTCCAAGGACGCCATCAAGAGCAACGTCGATGAGATAAACGACGGATTCGTAGAAAATACCCTCGTCAATTTGGCGC
++HWUSI-EAS635_102902104:5:100:3598:16313/2
+BDDDDDDDDDDDDDDDDDDDDDDDDDDDBDDDDDDDDDDDDDDDDDBCCCBDBCDBCDDBDBBBBDB at BB77;=05??#
+ at HWUSI-EAS635_102902104:5:100:3781:19233/2
+AAGCGCGATCACAGAGGTTCTACCCGGCGTATTGCGCAGCTTCAACCGACATTCCGCTTCTTCCGGTGGGAAGGTGCTGACCGCCGAGAGCGTGGATGGG
++HWUSI-EAS635_102902104:5:100:3781:19233/2
+GGG?GGGGGGGGGGGGGEGGGGGGGGGGGEGGGGGGGGGGEGGFGGGGFFGGEFFGGGEGEEGEEECEEECCEEAFECE?DEEDEEEEEFEE>E?/A?=?
+ at HWUSI-EAS635_102902104:5:100:3999:11052/2
+GACCTCTTCTCTCGAAGACGTCCGCTCGTGCAGATCAGCGCTCACCACACCAGCCTTGACGGTAATCGCACGCGCCAGCA
++HWUSI-EAS635_102902104:5:100:3999:11052/2
+>5AB>AC5A:B=B=55743 at A45;93/<3@//5)/66 at 51CC5B5(4@@@/.66A-*202>:=@,1==B=@@>A-988B#
+ at HWUSI-EAS635_102902104:5:100:4274:3596/1
+CGTCGTACATTTCTGGAGATTCCAGGAATGCCGGGGCGTTCCGATAAGTATTCATGTCGCGACCCACGAAA
++HWUSI-EAS635_102902104:5:100:4274:3596/1
+EFFFFCGFGFGEGGGGGGGGDGGGGGGGBGGAG?FFFFEDECBBBCECAEEDDBDA?CCC==?;@@C?5?#
+ at HWUSI-EAS635_102902104:5:100:4348:2041/1
+ACGAGGTACGGAATTGTGGTCCACATCAACGCAATGGTAAGTGCGAATTTCTCAGGTTTAGCACCCAACGGCCGCA
++HWUSI-EAS635_102902104:5:100:4348:2041/1
+GGFGGGEGGFGDGGFGEGEEGFDGDFGGGGGGGEGG?CGEE?EEEE:EEEGEEFFBEEEEEEBEACDCD===;CA#
+ at HWUSI-EAS635_102902104:5:100:4380:2989/2
+CCCTTTAAACTTTTCCATTATCGGGATCGCCAAGGTGCCGAAGTAGACATCATCGTGGAGACTCCGACAGGCATTATCGCGGTAGAAGTGAAGTCTGCTG
++HWUSI-EAS635_102902104:5:100:4380:2989/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGEGGGGFFFEEGGGFGGFGGGEGGEGGEDDEEEEEGEE=EEBEDDDEC)CC1(:1:):<78=@@??
+ at HWUSI-EAS635_102902104:5:100:4485:11605/1
+CGCTAAATACAGAAGATAACCGAGATAAAAAGCTACTTTCAGGTACGACAATTAAAATGGTGGGTCCTGCAGCAGATGTAACAAGAGCGGATGGTTATTT
++HWUSI-EAS635_102902104:5:100:4485:11605/1
+GGGGGGGGGGFGFGFGGGEGGGGGGGFGGEGGGDGGGGFFEGGDGFGFDGEGGF=FFFFFCFEFAEECEEEGFEFEDB@?EED?FFE=ED=A?B7@=?@?
+ at HWUSI-EAS635_102902104:5:100:4534:11250/1
+GCCGCCGGCCATGACGAGCCAGGCCGCAGTGACGACGAATGCCATCCCGAGCATTTGTGACCCAGTGAGGTTCTGGCCGCGGATGAAGAATCCTGCGGCT
++HWUSI-EAS635_102902104:5:100:4534:11250/1
+GGGFGFFFAFFFFFEBEDEEEFADFEDDE5EECDEGG=BGFDFAEAEEDEEE-BECEEEBACECC=A?CA-4<::8<8;&76'49.<>,((7149CBA:A
+ at HWUSI-EAS635_102902104:5:100:4845:14565/2
+CAACCAGCGGACGGTAAAAGACAAAGGCCACGGAGCTCGTAATGACCACCGCTATAAACGACACAATGATCCGGTAACGGAGCTCCCG
++HWUSI-EAS635_102902104:5:100:4845:14565/2
+GGGGGFDFGGFGGFEGGGGGGBGGGFCGGGGGDEFDFGEDDEDFDEGEEAGGGF=EEFF?EEFEEE:BEAEBEE at DD=?BBBA,B<?#
+ at HWUSI-EAS635_102902104:5:100:5027:17671/1
+ACCGCAGACTACCTCAAGGCGGGCGCCTCGGTGTATTGGGGTGGGGGCGGCACTGTCATTGCGGTCTACGCCATGGGAACCAACCAAAACCA
++HWUSI-EAS635_102902104:5:100:5027:17671/1
+GGGGGGGGGGGGGGGGGDGGDECDA:CBECD;C@@ADBCDD5C>>CC8?C8:::@5>;<><>:?(<*8;<??55=>>(>5>;<6?=6>;-?#
+ at HWUSI-EAS635_102902104:5:100:5057:3405/2
+CTGCTGTTTTTTGACCTGCCGCTTACCCTGCCACAACGTGAAACCAATGAGCACGATAAAAATGATCAGCAGGGGCATGA
++HWUSI-EAS635_102902104:5:100:5057:3405/2
+FGGGGGGGFEEGGGGGGGGGFGF?FDEEEEGCGDACCD5E:?@>CDDBEDEEEGBEAABECA65CCCCBEC=ABBA5AA#
+ at HWUSI-EAS635_102902104:5:100:5197:3298/1
+TTGTCTGTCACGAGCTTGTCCGTAAACAGATGCGAATCACCAACCTGGGGTGCTGAGCTGCCCAGAGTAGTGCTGGGGATG
++HWUSI-EAS635_102902104:5:100:5197:3298/1
+GGGGGGGGGGGGDGGGGGEEGGFGGGGFEGBGEGGGGGDGGGBGGEDBGGCEEBFCEB=ECCC5CCEACC?C==?@BA6?#
+ at HWUSI-EAS635_102902104:5:100:5694:5194/1
+AGGAACCTCCAGCTATACCGTTCCAACCCGCGTGCTTTAGCGGCGTCCCTGACCTGGCCT
++HWUSI-EAS635_102902104:5:100:5694:5194/1
+GFGGGGGGGGGGEDFFGGFGGAGGGGGGGFFFCEFB=ECBFF?FFCEFE?:7==:?@@@#
+ at HWUSI-EAS635_102902104:5:100:6397:6926/1
+CGAAGTGGCGAATCGTTGCGCTCGTGGTGGTCATTGCTCTCATCATCGCCGCTATCGCCGTTATCTTCATTCAGCGCAACAATGACAG
++HWUSI-EAS635_102902104:5:100:6397:6926/1
+FFFFFDFFFEEDCDBBCAC=C at B:@AA?AB=BB at BBDEBBCBBB:BB5C@:????@==@:7?:??ABA@===88>?@17????:;??#
+ at HWUSI-EAS635_102902104:5:100:6525:21411/1
+CCCGCTGACCGTTCGGTTTGCGTCACCGCTTCCGGACTTAGTGTCGGACGTCCGGCACTGGCACTGTTTGCTGCGACA
++HWUSI-EAS635_102902104:5:100:6525:21411/1
+GGGGGGGGGGGFGGGGEGGGGGEGGGGGGEEEGEEEEEEEEEEEEDCCCC at ACCC=8>59?@7:8<<<A/<7:?:7?#
+ at HWUSI-EAS635_102902104:5:100:6677:12092/1
+GAGATCCCCGTTCCACCGGTAGTGACGACAAGCCGGCATCCATTCTCTAGTGCATCCCTCAAAGCGCCGCCCACCG
++HWUSI-EAS635_102902104:5:100:6677:12092/1
+DFEFFFDDD=EEEEEFF?BBCD??CCBBBCB5BC?BC-BBBBBBBBB=A=;????@=>@>B?:5A?B@:??B27?#
+ at HWUSI-EAS635_102902104:5:100:7118:3473/1
+CAGAAGCCTTGAATACCAACGAAAGGTAGGGCGCAGACGAGTAAATGAGGTTAACGTAGCACCAGTAAACGCACAACCCAGCCAAGCCCGCAAGCCACAT
++HWUSI-EAS635_102902104:5:100:7118:3473/1
+GGGGGGGGGGGGGGGFGGGGGGGFGDCGGFGGGGGGGGGGFCEFGEFFFFBFECEFCEDFBDDFBCAEFE?EEDDEE=EEC=C????:=@A/9?=>>>=4
+ at HWUSI-EAS635_102902104:5:100:7597:8771/2
+TCAAGGTCGGCTTCGTCACCAATAATGCCGCTCGTTCGGCTGAGGTTGTAGCTCAACACCTGACCGACATCGGTATCCCGACCGAGCCTAGCGACG
++HWUSI-EAS635_102902104:5:100:7597:8771/2
+EEEEEEEEEEEEEEEEEEEEEEDEEEE5EEEBEEEEEEEEAEBEE at EEBEBE?DBDDEDEEEEEAEEEE at BBA@A=AA?A at BE@-?A:9?@B@<?#
+ at HWUSI-EAS635_102902104:5:100:7721:1558/1
+CGTCGCTGTCGAGAAAGTGTTTGCCCAACACAACCGCAATACAGTAACTGGTACCGCTCAGGCAGCCGGAATGGCGATGATGATTGCCGC
++HWUSI-EAS635_102902104:5:100:7721:1558/1
+GGGGGGGGGGGGGGGEGFFGGGGGGGGFGDEFGGGGGEGGEEGECEGEEDE at CDDBECDDCCEDCEEEB=?ACABCC8CA8@@@;CA@?#
+ at HWUSI-EAS635_102902104:5:100:7842:1698/1
+AGTCTGCGGGGTCCTCATCGTCCGGGACTGAAGCTGCCTCGGGCCGCGTCAACACCAATAAGACCC
++HWUSI-EAS635_102902104:5:100:7842:1698/1
+FGGGGGGFDGGEGFFEFFFFDGGGBEDFEEGGFDEFEEEGDEDEEA>>(=.55'*3*;9:?=?0?#
+ at HWUSI-EAS635_102902104:5:100:8175:7109/2
+AGCGCGGGCGCCGATCAGAAGGCCAGTGGCAAGGTAGCTCAGAAGGTCGAGGACGTCAAAGACAAGGCGAATGACCTCAAGCACAATGTCCAGGCTGCGG
++HWUSI-EAS635_102902104:5:100:8175:7109/2
+GEGGGGGGGGFGDEGGGGFGGGGGGFEGGGEBFFAFFAEGEBEFFFBGFDEEEEFEFGEEEEEFCEEEEEDDACBCAFDCEFEFEAE?E:CAAAEA@?CA
+ at HWUSI-EAS635_102902104:5:100:8415:20758/1
+GGCCCGAGATCTGCTGACCCACCTCCTGTTAAGGGAGAACGACCCGCTTGCCGTCCCCGGGATGGCCGTCAACGTCTTTGACGCCGTCACTCAGGCGCGC
++HWUSI-EAS635_102902104:5:100:8415:20758/1
+GGGGGGGGGGGGGGGGGGGFGGGGGGGGGEGGGGFEGEGGGFGFGCFDDEFEDDEEGEBE==AC?CEEAEA at CCA:>?C??A?9CA<A9686(:9?=A?8
+ at HWUSI-EAS635_102902104:5:100:8609:16267/1
+CATGCCGGGACCCCGGGTCGCAGGAAGGTGGGATACTCCGATCCTTCCTATCTCGTCGATCCAGCCACGCGCCGCATCCTCAATT
++HWUSI-EAS635_102902104:5:100:8609:16267/1
+FFFFEB?EDEFBDFDFFFFDDEE??EEBBB=DDACFFF?FF=F:F??D@?CCAC=8;::9@:?:C:>B<-7?5-7@@@@@??5?#
+ at HWUSI-EAS635_102902104:5:100:8739:16357/2
+TCAACGCCCGGGGCGAGCTCAACCACGGCCTGTTTGTCCCCGATATGGGTAATGGTTACGAACAGGCCG
++HWUSI-EAS635_102902104:5:100:8739:16357/2
+GGDGGGGGGBGEAGGGGDGGEGGGGA?BEC at A?AA=?@:CB:@=?==?>57=?@@>=5@?>A:5<@-@#
+ at HWUSI-EAS635_102902104:5:100:8767:13835/2
+CCATAAACGCCAAACTGTGCCCGCGAACCGATCATTTGTGGGAGCCCCAGCGCGGGCCCCTGAGCGGAATGGAGCGCCATAACAGCGCCGCCGATGACTT
++HWUSI-EAS635_102902104:5:100:8767:13835/2
+FFFFFFFFFFFFFFFFFEFFFFFFFFFFFFEFFEFFFFEFFEFFDFFFEFFEFEEEEEDD at D@BED=D=?A<AABDB at D5AAA@BEEEEEBAB9?@?==<
+ at HWUSI-EAS635_102902104:5:100:8966:8899/1
+ACGTAGTGCTCGCTGCTCTGGCTGAGCAGCATGTGCGTGGCCTGGCGGACACAGAATCAATGATCTCGCTGCTCATCGATGCCTCGGTGG
++HWUSI-EAS635_102902104:5:100:8966:8899/1
+FFFDFGGDGGGGGDFGGGGEGGGGGGGGGGF:FEFGGEGBGEGFEEFGEFBGFEEABEEGEEEEEEEEEEDECECA?A=AA=C?C?A7@#
+ at HWUSI-EAS635_102902104:5:100:9001:21235/2
+TGCCACCCATCGAGTGACCCAGCAGGTGGGCTGGACGGTTCCCACTGGTGGCTTTGACGGT
++HWUSI-EAS635_102902104:5:100:9001:21235/2
+GFGFGEGGGDFGGGDBFFFFEGGGG??DDDDBCE5ECDCDFFEDEDBECDCC;@C?7???#
+ at HWUSI-EAS635_102902104:5:100:9086:17984/1
+CTGTCATTATCGATTATGACCGGCTCTCCCGGGATGTCGTTGCGGTGGGGACGCAGGGGCTTGCTCAGGTCGTTGAGGCC
++HWUSI-EAS635_102902104:5:100:9086:17984/1
+BGGGGFGGGGGGGGGGGGGGGGGGFGFGGGBEDC:DABDCBDCEECEBEA:EDEED??BABCCB=CAC:?<>;;;8?@?#
+ at HWUSI-EAS635_102902104:5:100:9236:13118/2
+CGACCTGACCTCGAGATGACCCTCATTGAGCCGATGCTGCGACGTTCGAATTTTCTGACTGAAGCACTTGACGAGTTGGGCTTGGACGATAGGGTGACCG
++HWUSI-EAS635_102902104:5:100:9236:13118/2
+AA=5?AA5ACEEEBDEEEDEEAEEEEEEEEDDEBAEEEEEEEDEEEEEBEEBEDEEBEEDB:EEEEEEE5:@>:?<B=BBB?B?@@B5@@@?BB5B?B?@
+ at HWUSI-EAS635_102902104:5:101:10432:6451/2
+GCACCTGCCACCATGTCGAGCGCGACGTCTACTAACGCGCCGGGTTGCTGGTTCACCGACGTCAGATCAAACTCCGGGCGCGAGGCCAGATGAGTGTCGT
++HWUSI-EAS635_102902104:5:101:10432:6451/2
+EEEEEEEEEEEEEEEEEEEEEEEEEEEEE=EEEEBEEEEEEEEEEBDEBDEEEEEEEEEEEEEEEB at DADDD@E?@>@BBB??@@B@@D=?@?A?B?B@=
+ at HWUSI-EAS635_102902104:5:101:10433:4856/2
+ATACTTGGGATGGGCACTGGGAACCTCTTGGCCCGTAACCTCGAGTTGCCGCATACCGATCTCGCCGCATCCCTCGATGCCGCGCTAACCCGCCC
++HWUSI-EAS635_102902104:5:101:10433:4856/2
+FGGFGFEGGDGDGGDGFGGEGGGGGGFGFBE=EEB?CCCCEG?BFA?FEEGED?FEEEE at EBGEEDDE?AABD at D&:,59@???@32????<7?#
+ at HWUSI-EAS635_102902104:5:101:10477:6638/1
+TACGCGTCGTAACGGGAATCAAATTGACCTCCGGGGAAACGATGGCCATAGTTCGCGGCAAGCTCTCGAAGGGCGAGAGAGTCCCTGCTGCGCCC
++HWUSI-EAS635_102902104:5:101:10477:6638/1
+GGGGGGFGGDGGEGGEFGGGDBEEDDGGA?FE?EFBFGFFF=AEADC::C:??B at FECFDDCB:FCC@:CA4@?BCA at CCC9@AA5=?=9A??C#
+ at HWUSI-EAS635_102902104:5:101:10586:7482/1
+GCGCTGATGCGGCCGGTGACTTCGGTGACCAGTGAGCACTCCATAAGGGCCCGCACCTCTACCATTTCTCGCAGACCGATGAAATCCCTGGTGCCGCTCT
++HWUSI-EAS635_102902104:5:101:10586:7482/1
+GBEGGFGEGFFBGGGGEGGGFFGFFDECGFFFBEFGFGGDGFGEEEE at E=EEEGEEEEEBDBB?@:@@AA4<,,8=>=6:==>=8<<A)<;,;3=<??-?
+ at HWUSI-EAS635_102902104:5:101:11122:11438/2
+CGAAACGAGTCTTCGGAGAGACACTACTCTTACCGGTGAAACCCGAAAGAGCTGTCGACAACGCCATGACTCCGCCATACGCATTCAAGGTGTT
++HWUSI-EAS635_102902104:5:101:11122:11438/2
+DDDDDDDDDBDDDDDD=DBDBDCDDCDBDBCDCCBCBBBBCBBABBBBBBABBB at BBABBBBBABB?B?BBBB=BB?:B@=@==:??:?=7??#
+ at HWUSI-EAS635_102902104:5:101:11195:14754/2
+TGCCGAGGGAATAGTCGTGAGCCAGGGCACTCTTTCCCGAGACCTCAAGGATGTAGGGGCGGCGCGCGGTCGC
++HWUSI-EAS635_102902104:5:101:11195:14754/2
+370779;9;9>=?=5>>;=>;?;9;.B=>=C:A?A5;;A2>>C at C:@C=A9>>>9DAD?D??>,D1767/=?#
+ at HWUSI-EAS635_102902104:5:101:11298:3255/2
+GAGCCGATCGCCGGCTTTTTGTCCCGTGCCGGTCGTCAAGACGATACCGGCAAGGAATTCGTCACCAA
++HWUSI-EAS635_102902104:5:101:11298:3255/2
+GGGGGFGGGGGGGFEGGGGGGEEGFGEEEECC>BC:??@AC?CAAA)@@@?AA@=7?;<<BBB;B6?#
+ at HWUSI-EAS635_102902104:5:101:11326:15495/1
+GCGTAAGCGTCCTGACTGGCTGACGTGGCTCATCGTCGTTGTTGTGACGATCATCGGTGTCACCATCATTGCCCTCTGGTGGTACTGCCTGCTGAACTGA
++HWUSI-EAS635_102902104:5:101:11326:15495/1
+GGGGGGGGGFGGEGGGGGGGGGEDGCFFDFGGEGEBEFAEBCEEEDDDD?@CAABBB5A?BBBCB5??>?CCDDC??AA4A at 2?A?A@@:?:??,AA744
+ at HWUSI-EAS635_102902104:5:101:11943:9999/1
+CGGCGTTGATGCTCATCGTGACTGTGGCTTTTTTGTTTGTGGTGAGGACAATTGGTCGTCGCGTCACCGGTGTCCTGCAAGCTCTCGTAGGGATAGGGAT
++HWUSI-EAS635_102902104:5:101:11943:9999/1
+FEFBEEAEAEDEEEEBDDADE:ECBECEEEEEEEE at CC6EBA@B?EE?EBBBBB:?CBBB?B=??BB@@BDD?B?B@@5 at B@@=@A=7?@@:67-?@@:@
+ at HWUSI-EAS635_102902104:5:101:1207:11655/2
+GAGCTGCCCGCAAATATCATCGGGAGTACTCTCCGCACGGACCTCTCGGTCAGCGTGCACCGACACT
++HWUSI-EAS635_102902104:5:101:1207:11655/2
+FFFFFFFFFFFFFFFFF?FFDFFF??EDDEFFFFDFEFDEBDDBE5>=:6==>>56===>??????#
+ at HWUSI-EAS635_102902104:5:101:12111:1976/1
+GGGGATTTTGCGGGTAGTGCTGCCCGAACAAAGTGCCGGGTTATTAGCTGTCCGGACACGGTGGA
++HWUSI-EAS635_102902104:5:101:12111:1976/1
+:><?:CCCCC37:7+CCCC?=C??:CC=A?:>>8B>@@C at -A=?=@>C@@BBBB=BCBBB=5:?#
+ at HWUSI-EAS635_102902104:5:101:1211:6837/1
+TGTGGTCTGCCCACAGACTCTGGTGCATCTGGTACCTCGCTTTGGTATTGACGATCTTGTGGTCATCGAGGTTCCCGACG
++HWUSI-EAS635_102902104:5:101:1211:6837/1
+FFFFFEGGFGGGFGGGDGGGGG?DFGGGGGAFAFFFDGAGFFFDG=ECCED?FCDDCDB@@A?A at BBC:CCAC:?=-5?#
+ at HWUSI-EAS635_102902104:5:101:12134:11110/1
+CGCACCATTGCCGATGATGCTCACCGGGTTTCCAGACTCTTCGAGACTGGCACCCAAAGCTGACCCCATATTTCCTGGTCCGCAGGCAAGGCG
++HWUSI-EAS635_102902104:5:101:12134:11110/1
+GGFGFGGGGGGGGGGGGGGGGGGFGEFGCFEGFFFGEGFGGGBEEGGEDEGDEFGEDEEBAEDCCFGE?:CCCCCE at CBD@DEA at DD4A=??#
+ at HWUSI-EAS635_102902104:5:101:12724:14397/2
+TGAATGAGACCAGTGACGAGACGCCACGCACACCACGAGCACAAAATCGAACGAATAGTGAAACGGTTGTTGATCCAGCCGCCCGGCACATAGAGGAACA
++HWUSI-EAS635_102902104:5:101:12724:14397/2
+FGGGGGGGGGGGGFGGGGFGEFGGGFGGGGGGGGGGGGGDGGGAGFDFGBGGEGEEGF?GDCDBFCACEADEDBCEGEGEFECEE at DAC?>@ACAAA==C
+ at HWUSI-EAS635_102902104:5:101:13461:20862/2
+CGCCGTAACGGATTCTCTCCCGATGGTCATCTCGACGATTACCGCGACGAGGATCCGGCCTACGTCCTGGAGTGCTGGATTCGCTGAATCCCCCTG
++HWUSI-EAS635_102902104:5:101:13461:20862/2
+FFFEFFFFFFFFBFF=EDEEFEDEFFBEFFFFFFCFFDEFFFAEFBD?D?AC:@BEBB=B?BBB;@@5@@;?3??,9;/3>===5;,?;;@B=(?#
+ at HWUSI-EAS635_102902104:5:101:13510:7819/2
+GAATTACGGCGTCGCGGGGTCAAGGTCGGCTTCGTCACCAATAATGCCGCTCGTTCGGCTGAGGTTGTAGCTCAACACCTGACCGACATCGGTATCCCGA
++HWUSI-EAS635_102902104:5:101:13510:7819/2
+GGFGFFFFFGGEGGGFGFFEDBEEE?FEFEDBFF at DEFDF@DFCBAEACECDCBCDCB??C==C<;=52=AACAAEEEEEAAACA>:A8CA>>?AAAA<,
+ at HWUSI-EAS635_102902104:5:101:13515:1144/1
+CGATAGTGGTATTGGGAGTTGCCGTCAAAACGAACCTCATGATCGTGACCTTCCCATTCGTCGGTATGGCGT
++HWUSI-EAS635_102902104:5:101:13515:1144/1
+??EE=DDDD?=C at C@?DED=>=@@>D=DD?DDDDDDDD===:C:BB:B5@:BAAA55?>=:;7:5=71<:@#
+ at HWUSI-EAS635_102902104:5:101:13768:18548/2
+CACGGATGGAAAAGACCAGGAACTGGATATGCCTGCGGCTTGCTCGTTTCCCTAGCCCCTGCGGCG
++HWUSI-EAS635_102902104:5:101:13768:18548/2
+DBDDDDDDDDDDDDDDDDDD=DDDDDDDDDDDDDDDDDBDDCDD?CBDDABD:B@?CBBBBCA:B#
+ at HWUSI-EAS635_102902104:5:101:13951:6288/2
+GACGAGGTTCATCGTCATCTCACCCTGATCCTGCGTACTGCTACCCGTATGCTGATTGGCCACACCGACGAGCGCGCAGAGGGAGGCCAGT
++HWUSI-EAS635_102902104:5:101:13951:6288/2
+GGFFGFAFFGGGGFEFGEGGGGFFGGFFDGGGEEEEFGGFGDEDGGGD=FFFBECE at E5DGEGEEEE=EDBCBCCDE5:5BABA???@:@#
+ at HWUSI-EAS635_102902104:5:101:14371:21445/2
+GCGGGAAAAACCCATCGATGACGCATAGCCCCCACAACGCCCCAATAACCCAAGGATGTGG
++HWUSI-EAS635_102902104:5:101:14371:21445/2
+GGGGFGGGDGGGGGGGGGGGGGGFGGGGGEGEGEEEF=?GDDE?@CBC at CC?=??C>A=?#
+ at HWUSI-EAS635_102902104:5:101:1438:10544/1
+GCAGATGGTCGAGAACTTCGTCCCCCGCCAAAGAGGTCTCAGCGAGGTCAATAACCAGCTCTGGGAAAAATCCGCAAGATTGGAT
++HWUSI-EAS635_102902104:5:101:1438:10544/1
+GGGGGGGFGGGGGGGFGEGGFFGFGFGGGEEDFEFEAEEFGGGFEFDAE?AAABBGEDEEDC=CB=AACCC5CCCA:@:18???#
+ at HWUSI-EAS635_102902104:5:101:14453:20858/1
+GAGGCTGCCGGAACCAGTGAGGAGACGGTGGAGACGCCAACCGGCCTGTCCGTCAATCAGTTACTCGACCACCTTCGTAACCTGCACCCGGGCTTGGGAC
++HWUSI-EAS635_102902104:5:101:14453:20858/1
+GGGGDGGGGFGGGGEGFFGGFGGGGGEGEGGGGEGEDEFBGFEEBEFEEDEFCEDBCCCBA?CCCCACACA:A7AB@=@@:B=AB@)@??3&1*7?;?03
+ at HWUSI-EAS635_102902104:5:101:1454:3975/1
+AAGGAACGAAAAACTGGTTATCCTGAATGATGTAGTAAGATAGCTGCGCATCATCAAGTTCACCCGAGAAC
++HWUSI-EAS635_102902104:5:101:1454:3975/1
+GGGDGGGFGDFDGGFFFBFFFFFFDBFFFFEE at ADB?DEDEF=BDDCCBBDAADF?BB?BED?AA@=@=?#
+ at HWUSI-EAS635_102902104:5:101:14571:9684/2
+CACATGCACGGCAGCGATACACGCCCTCGGTGGTGGTATCGGTGTATTCGCCGACAAAGGGAGCCTCGGTCCCCG
++HWUSI-EAS635_102902104:5:101:14571:9684/2
+DDDDDDDDDDDDDDDDBCDDCD?BCBBCDC?DB=CB?@B at BB?C?BBB at BBBB=BBBBBBB at BBB:???9=?=?#
+ at HWUSI-EAS635_102902104:5:101:14675:2086/1
+TTCGTCAATGGCACCTTCCCAAGCAAAAGACGTTTCGAGGATCCCCGCCTCCATGGTGGGATTTGCCGCA
++HWUSI-EAS635_102902104:5:101:14675:2086/1
+GGGGGGGGGGGGFGFGFGGGGFGGFEGGEGGGEFEEFEEEEEEEEFEEE=CCA5<B<AA??9A8A==?A#
+ at HWUSI-EAS635_102902104:5:101:14870:13580/1
+CATCTCCTGCCGTCGACATGGTTTACTGCCACCACAGCCATGTCGTTGAGCCATGGACGCGGATGAACGGCAAGATCGTCATGTATGGGCTGGGGAATCT
++HWUSI-EAS635_102902104:5:101:14870:13580/1
+GGGGGGGGGGGGFGGGGGGGGD:GFGGFGGGGGGGGFGGDFGDEFEEEEEGGEGGEEGEGEE?EEEEEEEEEEEEC@:;CCCCAAAA::A;A:AA63;?#
+ at HWUSI-EAS635_102902104:5:101:14895:14767/1
+TGGCACGTGCCCCACTATTTCACCATCGAAGACGAAGGAATACGAGTCGCGATCCCAGAAGTATCGGTGATCATCCTGGCAATCCAGGGACAGTGGGACT
++HWUSI-EAS635_102902104:5:101:14895:14767/1
+GFGGGGGGGFGGGGGFGGGGGGDDGGGFGGFDGGGGEGBGFGGFGGBGFFCGGEGGFDEGE?EEBCE at EE?EE:E=??5BEBBEEB:BB5@@?=>BBA=A
+ at HWUSI-EAS635_102902104:5:101:15123:13813/1
+AGAACGTGGTCGTCGAGATCGATAGCTACGCCTTTCACGGGAGACCGGCAGATTACGAGGCGACGGCCAGGCGCCATGCGCTGTTGGGTGGAGCTGGATT
++HWUSI-EAS635_102902104:5:101:15123:13813/1
+GGGGGGGGGEGGGGGGGGDGCB. at BDDDCDGGGGFGDGFBEEFFEGGGEAEEBEEEEEEEEEEEB?CACAACCCC59A=A???77?:)87?4A5:>599:
+ at HWUSI-EAS635_102902104:5:101:15390:17542/2
+GCCACCGCCCGGCACTTCCAGCACTTCAAGGCTCTTCGAGATCGGCTTGGTGACGAATTCCTTG
++HWUSI-EAS635_102902104:5:101:15390:17542/2
+GFGGDFGGGGGGGGGGGFGDGGGE?FEEFDGGEDEGEEEFBECEEECC-C3<';<:A3?=@;@#
+ at HWUSI-EAS635_102902104:5:101:1540:18156/2
+GCTCAGTAACGGCCCGTTGAAGCCTGCCATCTGAACCCAGCTTTTGGGTGCAAGGTCGAGTTCACCCGATGCGGAGCTTGTGAGC
++HWUSI-EAS635_102902104:5:101:1540:18156/2
+DDDDDDBDDDDD?CDDABCBBCBBBBBBBBBBBBBBBB at A==@:@?BB6B?4?B?<?B<B<=??????::?=??<@==>=:?)?#
+ at HWUSI-EAS635_102902104:5:101:15467:5211/2
+CCCATACGCCGACGCAACTCAACGTCATCAACCAGCTGCATCAAGGCAGTAGCGCTGGCAATAACGTCACCACGGGGGACGATCAAGCCGGTAACACCAT
++HWUSI-EAS635_102902104:5:101:15467:5211/2
+GGGGGGGFGGFGGGGGGGGGGGGGFGGGGGGGFFGGGGGGGGGGGGEFEFEFFFDGFGG?FEEEEGFGDGEEGF?BEEB5C=5?BCEEEE=@=?@=AAAA
+ at HWUSI-EAS635_102902104:5:101:15619:19839/1
+AGGCGGGGCGCAACGCACGTAAACAGCGTGGCGTGATTGATCAGGCCGCTGCTGTGGCCATACTG
++HWUSI-EAS635_102902104:5:101:15619:19839/1
+EGGGDGGGGFGEGGEDGGGGGGAGGGGBEGFFFBA1<?>==?=>@EECA?CC-C:1<6<,?:>?#
+ at HWUSI-EAS635_102902104:5:101:15649:10992/2
+CTTGAGCTCACCACGCCGTTTCTTAGCATCCAAGCGGCGACGCTGGGATGCACGAGTACGCCGGGTGGCGC
++HWUSI-EAS635_102902104:5:101:15649:10992/2
+AD?DDACAC at AAAB:A>ACCD=EE;?CC5?>==:B04=33*47(?CA-5-:93*2>??5=>:,:9>*/?A#
+ at HWUSI-EAS635_102902104:5:101:15692:13937/1
+GCCACCAAACCAGCCAACTCGTGGACCGCTCCTGAACCGATCCTCACCCGGTAAGGCTTGGTCGTGGCGACCT
++HWUSI-EAS635_102902104:5:101:15692:13937/1
+GDGGFGGGGGGGGGGGGGGGGGAGDFGGGDGGGBGFGEGABGDFGDECECEACCEEEEEEC?B5A>=>=5CC#
+ at HWUSI-EAS635_102902104:5:101:15706:20447/1
+GGTGGTCATTGCTCTCATCATCGCCGCTATCGCGGTTATCTTCATTCAGCGCAACAATGACAGCGACTCTGCTGCT
++HWUSI-EAS635_102902104:5:101:15706:20447/1
+=5DB=C?=C5DDD?D====0C=ACAD?BDD;;-++?5;<->@@BB5:5C5D5DDDDD::-3<0,;?=;=7.A:+?#
+ at HWUSI-EAS635_102902104:5:101:15902:13466/2
+CCACCGACCAGAGACTGCGCAAGCAGCACGACACGCTGACCGTGACGGTCCGTCAGAGCACCAAAAAACGGGGAACCAATAGCGATAGCAGATCGGAAGA
++HWUSI-EAS635_102902104:5:101:15902:13466/2
+GFGGGGEGFGGGGGGEGGGDGGEGGGGEEGDEBGGDBFF5EECCBEEEAEEEC?CCCCCBAAC?CECEC??CBACA?A?<CC at C?==CC=CC7C?@::A@
+ at HWUSI-EAS635_102902104:5:101:15941:5409/2
+ATGAACCTCGTCGTTGTCGAAGGTCGCCTCTAGGTGCAGCAGATGGTCGAGAACTTCGTCCCCCGCCAAAGAGGTCTCAGCGAGGTCAATAACCAGCTCT
++HWUSI-EAS635_102902104:5:101:15941:5409/2
+GFGGGGGGFGGFGGBGGFGFEEEADEEEAEGEGGCFFEEFFFDCGFAEFFGF=DDCCECEEGGFBCC?ED at ACB>E?EDBBAABB3>?=6.8884??8>>
+ at HWUSI-EAS635_102902104:5:101:16082:4702/2
+GGGTTCGCTGTCAAGGCTGAAAAGGTCACTAACAGGGGCTCGGTTACCAGGAAGCCGTTGCTGCCG
++HWUSI-EAS635_102902104:5:101:16082:4702/2
+EEE?EFFFFFEGGGGGGEGGDGGGDEGDFGFFFFECBEF at CCC=CDCEDCEB?D:@@;;@@::@A#
+ at HWUSI-EAS635_102902104:5:101:16102:14502/1
+CCTAAAAGGCTTAGAAGAAAAAACGTTTTTTCAGGAATTCTCCACTCGTTACGCATGGCCCGAATTTTATCTCTCCACATAAAAAA
++HWUSI-EAS635_102902104:5:101:16102:14502/1
+GGGGGGGGGGGGGGGGGGGGGGGGGDFGGGGGGGBGGGEF?GFGGGFGEEGEEGFDEDEEEEBCCBCEAC?E at CA?5A??ACCE@#
+ at HWUSI-EAS635_102902104:5:101:16257:6837/2
+ACAAAGGAATTGAGAACACCCTTGCTGCCTTCAGCCACGCGCTCGAGGTGGGATGCACCTATCTTGAAACTGACGTTCACGCGACCAGCGACGGGG
++HWUSI-EAS635_102902104:5:101:16257:6837/2
+GEGGGGGGGGFGGGGGGGGGGGGFFGGGGGGGGEGGGGFGGGCGGDFFAFEEC at EGDEE=?EFE?=BBBBCEDEE7=B?A:CBABEC?EDC=B;C#
+ at HWUSI-EAS635_102902104:5:101:16286:18806/1
+TCCGTTGGTCGGAGTCATTCCCGCTGGCATAGGTAAAGACCCCGAAGCCGTCCAGCAGACGGCCCGGAACCTTGGAGAGACTCA
++HWUSI-EAS635_102902104:5:101:16286:18806/1
+GGGGDFGEFGFGGGGEGGGGGFFFGGGFEFGFDDGGGGDGGGEG:FFFFDAFABDBDEDADCF5D><,=<@,:@?@A?BA>,?#
+ at HWUSI-EAS635_102902104:5:101:16357:2743/1
+ACCGCTGATAACCGTGATCCGCTGACCGTCAGAACCGTCGAAGAAGCGGTGACCTTGGCGC
++HWUSI-EAS635_102902104:5:101:16357:2743/1
+GGGGGGGGGGEGGGGGGGGGGGG=DEEE:EFGEBGDFCDE=AA?9B@@C:B@?@?CCC at B#
+ at HWUSI-EAS635_102902104:5:101:1636:4364/2
+CGCCGATGACGAGGGATACACCCTTGTCTTTCGGGTGGTAGGGAAGGGAACCGACACGCT
++HWUSI-EAS635_102902104:5:101:1636:4364/2
+GGGGGGGGGGGGGGGDFDGDGGFDGGEGGGGEGGGCDE?CDD:5 at DCD?AABB?B=AA@#
+ at HWUSI-EAS635_102902104:5:101:16451:5290/1
+ATTATCGGGGTCTTGACGCAGATCTGGCTGGAGAAGCGCTGGTGGCACATGCTTGCCATCGTCATCCCGGCTGT
++HWUSI-EAS635_102902104:5:101:16451:5290/1
+GGFFEGGGGDGGGGGFGGGGGGGGFGGGGGGEGGGGGGAGFGEGGEBEEEFGEGGGGGDGFDGFBEEE?E9.?#
+ at HWUSI-EAS635_102902104:5:101:16468:18564/2
+CCGTTGTCCCGACCAACGTCCGACATCGATCTCGATGAGTCGATCATCCAACTGCACGCCCAATCCAGCACAAGCGCCGAC
++HWUSI-EAS635_102902104:5:101:16468:18564/2
+DCBD5@>9@?AA=CCDDD?CBC==@5B==>@6>;?:??C@>BAACBD=?C>?AA:CC:5C?@,:>>==@>AD=?:-A5,A#
+ at HWUSI-EAS635_102902104:5:101:16501:5891/1
+GATACCGTGCATCCCGCCAGTATCAACCACACGAAAAGAGGTGTCCATATGACGGAGCCGAACAATCCACACCG
++HWUSI-EAS635_102902104:5:101:16501:5891/1
+GGGEGGGGGGGGFGGFGGGGEGGGGGGGGGGGGGGGGGGGFAGDFFGEGFGFGGEEGEEGADEFFDAEFC at A@#
+ at HWUSI-EAS635_102902104:5:101:16527:17265/2
+CACCAAATGCATTGTTGATAGCTTGTCCAGCCAAGACAGTTCCAGTAGCAGCGAAGCCAAAGTAGAGAAGCAGTACGAGAAACAGCGGAAGCGCAGCACC
++HWUSI-EAS635_102902104:5:101:16527:17265/2
+DDDDDDDDDDDDDDDDDDDDDDDDDCDDDDDDDDDDDDDBDDCDDBDDDDDDDBBCBDBBBD?BDBCBBCBBC?BBDBD?BCBCBBBBABB=A:BB5???
+ at HWUSI-EAS635_102902104:5:101:16535:7105/1
+TTGTCTGTCACGAGCTTGTCCGTAAACAGATGCGAATCACCAACCTGGGGTGCTGAGCTGCCCAGAGTAGTGCTGGGGATGTTGCAGGGGCGG
++HWUSI-EAS635_102902104:5:101:16535:7105/1
+GGGGGGGGFGGGGGGFGGGGGGEFDGGGGGGGFGGEFDEGGGFGGGGGGGEGGEGDEFDFGEEEBC?ACCAED?CCCCA:EC=CC at CCCC?B#
+ at HWUSI-EAS635_102902104:5:101:16571:10648/1
+ACTTTATACTGTTACTGTAAAGACTAAACAAGGAAAGCGTGTCGTTGTTGTACCTAAAAAACAATATGACAAAATTGAAAAAGGAAAACACATTAAAGTT
++HWUSI-EAS635_102902104:5:101:16571:10648/1
+GGGGGGGGGGGGGGGGGGGGGGGFFGGGGGFGGGGGGFDFGEGGGFGGGGGGEGGGGGGEGGGFGEGGGCFBGGFEGEEFDGDEEEEFG>EEBBC=@C=A
+ at HWUSI-EAS635_102902104:5:101:16856:12617/2
+CTGCGATGATCTTAGCGCTGCTGGCCGTTGAAGTGATGCGCATCTGTTATAAGCATAACCTGACATTCAGGATGCCCGAACAGGTTCCTGAGTCCGTCAG
++HWUSI-EAS635_102902104:5:101:16856:12617/2
+GGGGGGGGGGGGGGGGGGGGGGGFGGGFGGFFFCFGFFGGGFGGGGFFDGGGGGFFGEGEEGGEGEFEDGEEEFEEEEEEEDGDEDDCDE?EACACC at CB
+ at HWUSI-EAS635_102902104:5:101:16989:8959/1
+GAGGATGCCGCCGGAGCTCCGTTGGTCGGAGTCATTCCCGCTGGCATAGGTAAAGACCCC
++HWUSI-EAS635_102902104:5:101:16989:8959/1
+FEFFFGGFGGFF;55<?A?A5611<38:?1B??B=?=@@:?6:?>144?;)660332>A#
+ at HWUSI-EAS635_102902104:5:101:17127:20451/1
+AACTGAGCAGGATGGCCCACCACAGTCCCTCCAGTTTCGACCAGCTCATCCCAACTAACTGTGCCGACTTGGCATAGAAGGCCCAGAAAACACCTGCG
++HWUSI-EAS635_102902104:5:101:17127:20451/1
+GGGGGGGGGFFGGFGGGGGGGFGEGEGGGGFFGEEGEB?FGFGB=EFDDCED at FFEDDFBC?CECBCEA?CEE at DCCECC=?,AA=AAA?CAC?:;?#
+ at HWUSI-EAS635_102902104:5:101:1713:4502/2
+GGCCAGGCAGATGGCCCCATTTGGCGACATCGGACCGCCGAGGAAGAGATCCTGCGGCGGG
++HWUSI-EAS635_102902104:5:101:1713:4502/2
+GGGGGGGDGGGFGGDGFGFFEEGGFFADFFFEFBDEDEDE5:-,)9.7*)==:==A?B at B#
+ at HWUSI-EAS635_102902104:5:101:1717:17084/1
+TGGACGGGGATCCCGGCACCACAATGTACTCACCGACAATGGCCGCCAGCTTGCCAGGACGACGTGTACTCACGAT
++HWUSI-EAS635_102902104:5:101:1717:17084/1
+GEGFGFGDGGDDFFBDFDBFEFFFBEDFBADFFDEFFDDD?FBDDBBBED=@?B::=>>@@B at B48204:@5=9@#
+ at HWUSI-EAS635_102902104:5:101:17229:10567/1
+AATGCCGCTCGTTCGGCTGAGGTTGTAGCTCAACACCTGACCGACATCGGTATCCCGACCGAGCCTAGCGACGTCGTCACC
++HWUSI-EAS635_102902104:5:101:17229:10567/1
+GEGGGGGGGGGGGGEEGGFEGGEFGEGGGEEGGEGEFEEEGEEEEEEGEEBADDCEEEEE at CCDC=CCCC at C@BCC@@AD#
+ at HWUSI-EAS635_102902104:5:101:17353:19202/1
+AGGATGCCCTAGGCTAGCGGCGTGCAGACATCTCAGCCCCGCAAGGTGGCAGTAGTCCACAACTCTGTCAAGACGCAGAATAAC
++HWUSI-EAS635_102902104:5:101:17353:19202/1
+BDBD?EDEEEA-CACE=AE=>C>@6=@=B=;B7B=CCCCC0344:7*(7--6.350:>;<?B:BB>5??-A?>==;>>:5/<?#
+ at HWUSI-EAS635_102902104:5:101:1749:4849/2
+AGCTCAGTAGCGTTAGGTAACCCCCAGGGATGGGCCACCCAAGGCTGTCCCGCCCCACCCA
++HWUSI-EAS635_102902104:5:101:1749:4849/2
+DGFGGGGGDEGGG:DGGGGGGFGBGEAEE?=BCCE=E:AD)8.7<9B8?9>5=<8=?B>@#
+ at HWUSI-EAS635_102902104:5:101:17507:12210/2
+CGTACCTGCTTGGACTCAACTTGAGTCTAATGGAACCGAAGCCTAACCGTACGACGCTATCTCCATCTCCCGTAAGG
++HWUSI-EAS635_102902104:5:101:17507:12210/2
+A@=@CA?A>ADD5DDADADD@=@6@>?@=@DBDDDDDDD:DDDD5??AC at AD=BAA?=CAD==5DDCBA54;@95?#
+ at HWUSI-EAS635_102902104:5:101:17879:14067/1
+AGATACTGCGCCAATACTCACCGTCAGTCCACGCGGCGTCACCAATATTCATGCCCTTCATCGCCTCGACGGCCGATGCCAGAGTCACCATACCGCGATC
++HWUSI-EAS635_102902104:5:101:17879:14067/1
+GGGGGGGGGGGGGGGGGGGFGGGGGFGGGGGGFGGDGGEDFEGGBEFGEGDEEEGGGBGGEEEEEEG:EGBCDED=@@@@;=::(=6:6)=:?,;@?6;:
+ at HWUSI-EAS635_102902104:5:101:18092:7947/1
+AGCGGCGACAGCGGCATCGCCGGCCTTACCAGGGCACGTCGGCAACTTCCCGTCGAGATCGACCTCTTCAGGACCCCCTAC
++HWUSI-EAS635_102902104:5:101:18092:7947/1
+GGGGGGGGGEDFFGEEGDFGFAFEF=CAACG?DFDCC:?BEEBBEB at B@BC==>=.9418?=?B?B@:A=:@:?@BB(5@#
+ at HWUSI-EAS635_102902104:5:101:1831:11421/1
+CGTGGCGCAAACACGATGGATGTTGACTCGCTATTCGTCTTTACCGGTTCTCACGGTGTCGCTGACGTGCTAGCTGCTGCTCCTGA
++HWUSI-EAS635_102902104:5:101:1831:11421/1
+GGFGGGGGGGGGGGGGGGGFGGGGGGGFGGGGGGGEGGEFEGGEEGEEEEEGBGCBCECCDDAD?AB<?A@?@@,?@??@>A?7A#
+ at HWUSI-EAS635_102902104:5:101:18334:4564/2
+AAGACATGTGATGATGTCGGGTCCCAGATGGAGAAGTCAGCTGCGACTGCCTGGTTGAGCATCGAACAGCAGCGGG
++HWUSI-EAS635_102902104:5:101:18334:4564/2
+DDDDDDDDCDDDDDCDBCDDDBCDCCDBBDDCDBBCBDDDBBDDD???B?=@C@=?@@B5*<?>?5:>???A?=B#
+ at HWUSI-EAS635_102902104:5:101:1851:6711/2
+AAGGTGAGTACGGGCAACGACAGAGTTACCGAGTCTCGTCACCTCAAGATGCCGATGTGGTGCCAACGTCTCCTCCACAGCATCGGCAATAGGCGCCTCG
++HWUSI-EAS635_102902104:5:101:1851:6711/2
+GGGFEGFGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGEGBGGEGEEGEFGGDF=EECEECFDBDEED?DEEEAEEEEE?CC?CCCC<?,AA?CCA=1AA
+ at HWUSI-EAS635_102902104:5:101:18688:11501/2
+GCGTGGTTTGGGGCACATTGACTCCGCTCATGTCCAGCAGGACGGCAACGATGCATATCGCCACCAGAACCAATCCCACCTTCGTCGTTGGACTGG
++HWUSI-EAS635_102902104:5:101:18688:11501/2
+EEEEEE at EEEECEBBFFFFFEFFBEFDFEEEFEEBDAEDDC@@CBDA at AEDADAABBB?BD?AA at A?@??AA>>????@4?4?5<==:2:?:7;?#
+ at HWUSI-EAS635_102902104:5:101:18695:17482/2
+GGAGTCGATCCGTTGAGGCCGTAAGCTCCCGAGACCAGACCCAACTTGAGGCCGTGACTCACGATGACGGG
++HWUSI-EAS635_102902104:5:101:18695:17482/2
+EEEEEFFFEEGDCEEFFFBDE?EEEEEDCEEBEEDDB?@@CCAB:?ABABC:A=;@?@:@CC5A=<<;A@#
+ at HWUSI-EAS635_102902104:5:101:18886:3887/2
+ATCGCGCACTTCACCCGGGCCATGAGCTTGGCAACTCCCTCGAAAGCCACGGCATCCTCGTAGATATCCTCGTCAAGCTC
++HWUSI-EAS635_102902104:5:101:18886:3887/2
+DFFFFFFFFFFFFFFFDFFFFDFFEFF=EFDFFFBF=FFFFDAFFFE?AEBBCB@:???BAEF?@@?5=,4<98:@@5?#
+ at HWUSI-EAS635_102902104:5:101:18915:13467/1
+CGCTATTCAATATTAGTGAGCCGATCATGTTCGGTCTCCCGGTCATGATGAATCCGTTTTTTATTATACCCTTCCTCC
++HWUSI-EAS635_102902104:5:101:18915:13467/1
+GGFDGGGGGEGGFFFFGBDGFGDGGEGGGFGGFDFDEAEEDFFFFEF?FACBDA?D:B?CEEC at BCFF=E:CBCBAA#
+ at HWUSI-EAS635_102902104:5:101:18938:21270/1
+CGCAGGGTTGATGACGGAACGACGCCGAGCACAGGGAAAAGCATTACGACGGTGAGACCGAAGGCCGCCTGCCA
++HWUSI-EAS635_102902104:5:101:18938:21270/1
+GGFGGGD=GFFEFFFGGGGFGEEGGBGGGGBFFGFGEEFGFDE?CFEEABEA>BA?@@5 at BAACBA?@?7???#
+ at HWUSI-EAS635_102902104:5:101:18952:5871/2
+TGACACCATTGCCGAATTACGGCGTCGCGGGGTCAAGGGCGGCTTCGTCACCAATAATGCCGCTCGTTCGG
++HWUSI-EAS635_102902104:5:101:18952:5871/2
+=>??6=??=>:7=0=>AAAAEB?D5?>C;6@>;CCC>@,6995,927/?0@@6@>EAB:E?BD:D6-9@@#
+ at HWUSI-EAS635_102902104:5:101:19040:3042/2
+CCTCTACCACGTTCTAAAAATTCACCGAGCCCAAGGGGGTTCAATACCTCTAGGGCACGTTTGTCG
++HWUSI-EAS635_102902104:5:101:19040:3042/2
+FFFFFFFAEABAEEDFF?FFEFDDDFFEFFDFFF?==&==CCC:@?,:@@EEB=E5=>?6 at AAAA#
+ at HWUSI-EAS635_102902104:5:101:19245:11124/1
+GTCGTACTTCTTCCATGCTTCGGGATGAGAATCCGAGATGACGAAGATAAGAAGGATGATATTGACGAC
++HWUSI-EAS635_102902104:5:101:19245:11124/1
+@=@@:CC=C=DEEE=FF=FE:=EDA5D5B@@>=CA<A:>5,0:;4C4+<;912?.A at B@:@B?@5 at 5@#
+ at HWUSI-EAS635_102902104:5:101:19284:10208/1
+CCCGACGCTGCTGTCGGTGTGGGGAAGTGACGTTTACGATTCCCCCCGGGCAAATCCCCTCATGCGTCACATGGTCCGATCCAACTTGGTC
++HWUSI-EAS635_102902104:5:101:19284:10208/1
+GGFGGDGGD?FFFDFEECECEEEECFECFFCDBEEFEFFGAB?BCDEDD=DCC at C4ABAAC@CDD at 5,??>(=>:AA?A:AC=A>7?:??#
+ at HWUSI-EAS635_102902104:5:101:19348:11797/2
+CCAACGCCAAATCCTTCTTCAGTGACCACAATCCGCACGCTTCCAGCCTTGATGAAAGCCGCGACGACTACCACCACAACGATG
++HWUSI-EAS635_102902104:5:101:19348:11797/2
+DFFDDFEDFAD=EEEFADFFEAEDA>@@@1BB.B=FFA?FEBE:DC at -5@A@@A at B?AD=C5?B??:5;<8=2;55?:(<A??#
+ at HWUSI-EAS635_102902104:5:101:19392:8055/1
+GATGCGATGGCTAGTATCAGCGTGGTTTGGGGCACATTGACTCCGCTCATGTCAAGCAGGACGGCAACG
++HWUSI-EAS635_102902104:5:101:19392:8055/1
+@=@66:=-.599>;1>:B-=;@;@>C=C:==B:=CAAC?-?<)B5)2;5:5:6)4=0)::??AA?=-C#
+ at HWUSI-EAS635_102902104:5:101:1941:8578/2
+TAAAGATCCGTGCAAAGCCCTCATACGCCGTGCGGCTCACCTGACCGAGGGTGACTCCGACCTGTGTTGGGCTCGCACCACCA
++HWUSI-EAS635_102902104:5:101:1941:8578/2
+DDDDDDDDDDCDDDDDDDDDCDCCCBBBCB?BBBBB=BBBA at B@ABB4 at BA/??A6=5=6=?<?<:.==3?67?3=5??=8?#
+ at HWUSI-EAS635_102902104:5:101:2005:11871/1
+TAGCATTTCTGAGGAGCGGTCCATGGCGGTGATTCAACAGGTTGCGTCAGACAGCATCTTGATCAT
++HWUSI-EAS635_102902104:5:101:2005:11871/1
+GGGFGGEGFEGGGGAGFEDGGAGGDFFFF?B at 5@B.>=>;@??B?D at BBB??????9=@A at -@B@#
+ at HWUSI-EAS635_102902104:5:101:2095:12793/1
+TCATCCTCGGCCAGAACCTCACTGGGTCACAAATGCTCGGGATGGCATTCGTCGTCACTGCGGCCTGGCTCGTCA
++HWUSI-EAS635_102902104:5:101:2095:12793/1
+GGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGFFGGGGGGGEEGGGFFFGGGEGEGGEEEEEAAEDDCDAB?7?#
+ at HWUSI-EAS635_102902104:5:101:2104:14538/2
+TGGCGTCCTCGAGAGCTCGGTCATCGGACCGAATTACGGTTGGCTGACATCATTCGCAAATACGGGCGGG
++HWUSI-EAS635_102902104:5:101:2104:14538/2
+GGFFGEGGDGGGEAGEGEGGEGGFGFDFEF?B:EFEEEE?@EE=BC@@B:@@BBB?@@@55 at 7<:????#
+ at HWUSI-EAS635_102902104:5:101:2401:17091/1
+GAACGGTAACGAGGAGGAGCTCGACTCGATGATTCGCCACGCCAAAGCGCTGACGTGGGTGTGCGTGGCA
++HWUSI-EAS635_102902104:5:101:2401:17091/1
+GFGGGBDEFFGGGGEG?GDGFFGEFGGEEFGGEDGFEEEEEEEEECCECC?AABB;??@-@?@=@????#
+ at HWUSI-EAS635_102902104:5:101:2441:10051/2
+ACTTGCGGACTGGACACCAGCAGCAGGGTGCCCAACTGGCTCATAGCTAGGGGCAAACGAGCCAGAGCGGAGACGGCGACGAACG
++HWUSI-EAS635_102902104:5:101:2441:10051/2
+GGGGGGGGGGGGGGGGGGGGGGGGFGGEEGFBFFEGFEGEFGEEEGEEEFDEEEEA?DDDF at EEBCC5CD?CAA?CAC7??,=A#
+ at HWUSI-EAS635_102902104:5:101:2530:17819/1
+GGGTGAAGCTTGACCCCGCGCAGTCGCTCAGCGAAACCACCGGTGACGACGAGGTGGTAGTACTCCCCGT
++HWUSI-EAS635_102902104:5:101:2530:17819/1
+B>>8CBDDA?DD?BBBEEE=A at C=>=@;B;BBB=??B?B?BBB<B at E@?@?<??5=>/8=8832=:8??#
+ at HWUSI-EAS635_102902104:5:101:2564:1504/1
+GCTCGTCGGTTGCGGGCCAGTCTTCGCGACGATCTACCTCATCTGCCATACATTGAGGCGTCCCGAGCGGGTGC
++HWUSI-EAS635_102902104:5:101:2564:1504/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGEEFEEEEEEEEGEEEEEEFEDGEEEBEDECDFEEEEE?CCDA?7?#
+ at HWUSI-EAS635_102902104:5:101:2689:11754/2
+GCGCGATGGAACCTTAACCATGGCCGACGCGAGCACCGGGGCATCGAATGTGGAACGATGACGTCAATCTCGGT
++HWUSI-EAS635_102902104:5:101:2689:11754/2
+GGFGGGGGGGFGFGDFGGGFGGEDGG?GEGBB:E at EDD:A?=A at CEAABC0@???BA=;A,5655@?<7 at AAA#
+ at HWUSI-EAS635_102902104:5:101:2706:17260/1
+CGATCAACGAGTCAACGCGAACACCTGACATCACAGTGACGCCAGCTTCCTCGCATTTTTCCGACAGCCACGGAT
++HWUSI-EAS635_102902104:5:101:2706:17260/1
+GEGGGGEGGGGGGGGGFGGGGGGGGGGDGGGGGGGGEGGGBGGGDF at BDFCEEE@CBCCC?>5=?@:ABA@?-?#
+ at HWUSI-EAS635_102902104:5:101:2807:18122/1
+GCGACGGCGATGATGAAGTTGAACAGAACGGTCCACCAGTACTCTGAGCGGGAGGCGCGGCCTCG
++HWUSI-EAS635_102902104:5:101:2807:18122/1
+GGGGGGFGGGGGGGGGGGBEGFEGGFFFGEECFBBGEEEEEEEEEDBDFDBDACC9CBCC0??@#
+ at HWUSI-EAS635_102902104:5:101:3035:20819/2
+GAGGAAACCCTTCGTCCAACCCCAAGACCTGGTCGAGGAAAGCCCTCGCTTGATAGGTAAATTGTTCGATCTGAGTGCTGCCAACACCA
++HWUSI-EAS635_102902104:5:101:3035:20819/2
+GGGGGGGGGGGGGGEGGFGFFGGCGGEFE=EE at ECDFEDEFEED?=BB at 5BB@@@ABBAB at 1@@?7@@??AAA9A>A@@A@?7?9??B#
+ at HWUSI-EAS635_102902104:5:101:3171:13155/1
+AGCCGAACCCCGACCTCAGTTATGAGTGAGGGGGTATGAATGCCCCGCTGCTCCACAACGTATATGACTTCAGATCCTCG
++HWUSI-EAS635_102902104:5:101:3171:13155/1
+GGGGGFGGGGGGGGGGGDGGBEGGEGDGDFEEEC7CCCCB?EEDCEFEEEACDDBDCACC at CAA?C?@?AA at A@<,@@?#
+ at HWUSI-EAS635_102902104:5:101:3217:10288/2
+TCCGTGCGGTGGTTCCGTGACTCCTGACTGGCACTACGGCGAGACAAGCCGCCACTACCAGTCCGACGGAACTCTGCAGTTCACGA
++HWUSI-EAS635_102902104:5:101:3217:10288/2
+GGGGGGGGGFGGGGGGGEGGEGFDFGGFGGGGFEGGGFEEGEF=DBEBECBDEDD at DDD=:?AAACC==:,36:-6>3?:<<<AA#
+ at HWUSI-EAS635_102902104:5:101:3399:16722/1
+TCGAGGATTTCGTTGGGCAGGGCCTTCAGGGCGGAGTAGATGACCACCATGTTGTAGCCCGCAAAGCCCCATGTGATCATGTTCCCTACCGAGATAGGTA
++HWUSI-EAS635_102902104:5:101:3399:16722/1
+GGGFEGGGGGGGGGGGGGGGGGGGGGGFGFGFGGEGEGFG?EEEEGGGGGEEDFEGGFEGGEDEEEEEEE?DD at DC5AAC??@?@B at CCC???03????:
+ at HWUSI-EAS635_102902104:5:101:3503:5605/2
+AACAATCTTGCCGTCGGCGTGAAGTCGGTAATTGGCCTTGACCCGAAAGTCATCGAAGAACGGTTCCAAGTTAAGAACGGCGAGGGGG
++HWUSI-EAS635_102902104:5:101:3503:5605/2
+GGGGGGGGDGGGGGGFF?FDECCECEEEBCGGGGGAGFFGDDFGGEBEEAEEEEEEBGBEEEE<EABA:DA?CEC?BBBCEE5AE>@#
+ at HWUSI-EAS635_102902104:5:101:3720:6759/1
+CCAAGCTACCGACACGGGAACCGGAGCACGAGGCACATCACGGAACCAGAGGTCCGCGAGCCTGGGGAAATCAACATCG
++HWUSI-EAS635_102902104:5:101:3720:6759/1
+?@;;C;@?@=B:A?B:==8=55B:B@=., at AA5A?:ACA?DD:?=BBBDBBB at BBBDB=BB?-=?BB5;:5@???@?@#
+ at HWUSI-EAS635_102902104:5:101:3808:16064/2
+CGGTGCGGGTTCGAGGCGCCAGCCCAAGGCAGATATCGCACCATTGCCGATGATGCTCACCGGGTTTCCAGACTCTTCGAGACTGGCACCCAAAGCTGAC
++HWUSI-EAS635_102902104:5:101:3808:16064/2
+GGGEGFFFFDGGGGGGGGGFGGGGGGGGGGGFGGGFGGGDGGFBEGEAGEEGEEBGDEDEDC?DBB at ECCEE@EEF??=:ECC@=?A5A?C?:AA:3886
+ at HWUSI-EAS635_102902104:5:101:4022:14914/1
+GGCTTATCGTCGCCGGCGCCATGCTGGTGGTGTTGGGGAGTTGGTTTGCCCTGGACCCGACGTCGAAACTCGTTGAGGTTCATCCGGGCAGA
++HWUSI-EAS635_102902104:5:101:4022:14914/1
+GGGGGGGGGGEGGGGFDGGGE:GGGEEAEF=D:AB?-?<??:AC at 5AACCEEEE?DDDB?>59><,;8;;??3;@38;'3<95;;A-@?4@#
+ at HWUSI-EAS635_102902104:5:101:4040:20498/1
+CCGCAACATGGATGCGAGGGATTGACGTCATCCACGTTCCGACGACAGTGCTGGCTATGGCCGACGCTGCGA
++HWUSI-EAS635_102902104:5:101:4040:20498/1
+DBEDEBEBEEFEBF=D=?DDC-=?AC?AAC@;;@=B;@C at 99=B?155/7>;.CBAA-:C=>;@;:5AC5@#
+ at HWUSI-EAS635_102902104:5:101:4052:2138/2
+TGTTGGTTGTCGTGGTCGTCGTCGTGGCGTTGGTAATTGCCGGAATTGCCAAGCTGGCAGGGGGGTCGA
++HWUSI-EAS635_102902104:5:101:4052:2138/2
+GGGGGGFGGFFFEFFEFFDFEEDECGFEEEAEDCDCECEEBEAE at CCEECECCDCDDC5E??A>9(;?#
+ at HWUSI-EAS635_102902104:5:101:4179:14138/2
+GAGCGGGGCCCACGCCGCAGGGGCTAGGGAAACGAGCAAGCCGCAGGCATATCCAGTTCCTGGTCTTTTCCATCCGTGCGGTGGTTCCGTGACTCC
++HWUSI-EAS635_102902104:5:101:4179:14138/2
+GGGGGGGGGGGGGGGGGGBGEGGEEEGGFEEEEFEDFEGEEEEE at EEDB?EEEF at B@CCCCA:8C@@CDCAC at A?C?C?CA at C>;:@@@:A<?:A#
+ at HWUSI-EAS635_102902104:5:33:15343:2782/1
+TGACAGAATTAAAAGAATTGACTAAAGAAGGAAAAGATTGGGAAATAGAGTGTGAAAATCGTTCTAGCATAGTCACTATATTAGCATTACATGGCGGTGG
++HWUSI-EAS635_102902104:5:33:15343:2782/1
+GGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGFGGGGGGGGFGGGFGGGFGBFEFFEEEFEEADDFGGDD=GDDB:FBAFDD at EDB=CCB?@?A?@=A7A#
+ at HWUSI-EAS635_102902104:5:33:16503:3664/1
+ACCTCATTGGTTACATTTTTATTTAACGCTTGTTTGACCATAAACGTTTCTGAGCGTTCGCTACCACCATAACCATGTAAAAAAAG
++HWUSI-EAS635_102902104:5:33:16503:3664/1
+GGGGGGGGGGGGGGDGGGGGGGGGGFFGGGGGGGGGFGGGFGFGDGCDEEGE=EEFCAEEEDDEBEDCD5CCCCC?BCCACBCB@#
+ at HWUSI-EAS635_102902104:5:33:18663:13151/1
+GAAATTAATTTTATGCAAATATGCATCACGAATAATGCCTATAAAGTAAGCTACAACAGGATATAAGAATAAGAATCCTGC
++HWUSI-EAS635_102902104:5:33:18663:13151/1
+EEEEEDE?EBDEADDFFFDDA<A>AE?BEDEEE?DEB=DEEE?EAE5CE:CBD?DEEE=:??@BD?C=>CC=EBC=A==C#
+ at HWUSI-EAS635_102902104:5:33:7880:13616/2
+AATGCACTAGTATCTTTAGGGGAAGAAAAGAAATCATTCGCAAGACAAACCATTGAGAAAGACAAAGAAATTAACCATTTAGATCATGAAATTAACGAGA
++HWUSI-EAS635_102902104:5:33:7880:13616/2
+EEEDEDEEED?DDADBB at DDEE?EEBCD>>FFFABB=CEDFFFFFE:EB?AAB?C=BEBBBE?=FBEEB::BB:C?????EB:=BBEB at BB::B@:<>>:
+ at HWUSI-EAS635_102902104:5:34:14065:17985/2
+CATGTAACATCCACTCAATTTAACGAACCTATATTAGATAAGTTACTTAAAAACACTAAAGAAACATTATCTATACATGGATTCTCTGGAGATGACCCTA
++HWUSI-EAS635_102902104:5:34:14065:17985/2
+GGGFGGGGGFFFFGGGGGGGGGGGGFGGGGGGGFEGGBFEGGDFGGDGGEGGGGFGGFGGGFGGEGEBGGDEGGGFGEBBEBEDFDEE?FACCEE@?E@:
+ at HWUSI-EAS635_102902104:5:34:17728:19893/1
+AAGGTGATTGTGGTGGGTGTAAATCTAATTGCAAATGCGATACGAATACTTCATCTCATAAAAATAAATTAAATATTCCACATATTAAGTCATAGATAAG
++HWUSI-EAS635_102902104:5:34:17728:19893/1
+@@BC:CCCCCFDFFFC6 at CCDDDDDDD=BDDDDDB?DDDCDDDCC?ABBBDCCBB?CCDA=BD@>A<C=?CABCDB=B?DDD5DD=BA?:BBCCBBBB?B
+ at HWUSI-EAS635_102902104:5:34:18897:4149/2
+CTTTGCTTACAATTTAGGAATGCTTTTTATAGCCTTCATAAGACATTTTAAACGTACACTTATATTAACCTTAATACTAACAATATTAAGTGGTATAGCA
++HWUSI-EAS635_102902104:5:34:18897:4149/2
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFBFFFFFFFFFFFDFFFFFFFFFFFFEFEFFEDDFDEEFFAFFBE?BCB5D5CA=@ABD5@
+ at HWUSI-EAS635_102902104:5:34:19147:1848/1
+GTCACATTAATTCTACTGTATCCTTCATTTCTTAAAAATTGATATGCTGCGGTAACTTGTTCCCACCAA
++HWUSI-EAS635_102902104:5:34:19147:1848/1
+A9;<;99::AACA?AC at A:@???>??<??>BBBBBBCCBC=BBBBBBBBC?B?:?BA:@AB at BBABBA#
+ at HWUSI-EAS635_102902104:5:34:3758:18639/1
+AGCGATTTGTAAAGTTTATTAACAAGCAACGTGAACGTGGTTTGAATTTATACATTTCTGACGCGATAAAAACATTTATTAAATTATAAAACATTATGTG
++HWUSI-EAS635_102902104:5:34:3758:18639/1
+GGGGGGGGGGGGEFGGGFGGGGFGGFGGGGGGGGGGGGGGGGFGFFFGGGGGGDGGGGEGGGAGGFBFGGGGEEGGGDGGGFGGFFGDEBDEDEEFEAAF
+ at HWUSI-EAS635_102902104:5:34:4822:12847/2
+AAAATTTCCCAAACCGACATTCATGAGTTATACACACGATGAAGGTGATATTTATATTGAAGACGCAACACGCACCTTACCTTCTGAACGTTTTATTCAC
++HWUSI-EAS635_102902104:5:34:4822:12847/2
+GGGGGGGGGGFGGGGGGGFGGGGGGGGGGGGGGGGGGGGGECCEE>EECEGGGFGFGEGEEGEEGFEEEFEFEEEEEEEEEEEEECA?CCAACAA@?-AA
+ at HWUSI-EAS635_102902104:5:34:4934:18599/2
+TAACAAAGTTTAATGATGATGTGTGGTTTTAGAATTTTTATCTTTTTTTAATGGAACAGGATCAAAGCCACCTTTATGCAATGGATGACATTTAAGTATG
++HWUSI-EAS635_102902104:5:34:4934:18599/2
+CCC:=C>6C?>;:?>6CC6C>7B:BC=CCC3;.A at ABCAA<A???CCCCCB?CB:@?:A:=A:C@@5C>>?9A:A-??-??:C5=??:AA=?=A??BAB?
+ at HWUSI-EAS635_102902104:5:34:6353:17906/2
+CAATATTCCAATACTTAAATGAAGCAGTACTTCAATAATTGTTGGCACCTCATCAGGGTTGATTAAAAAATCAATATTGAGTAATAACTGAGTTAAGTGT
++HWUSI-EAS635_102902104:5:34:6353:17906/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGG-DCBCGGGFEEFF?DGEEEEEFEFEDEEEGEFEFFGDEEFFBEDG-CAAB;=;?:
+ at HWUSI-EAS635_102902104:5:35:5813:16132/1
+TGTCTAACTTTTTCAATTTCCTTACTGTCAAAGTCACTCGTCATATCACTAGCAATATGGCTCATAATCGCTTTTC
++HWUSI-EAS635_102902104:5:35:5813:16132/1
+D:ECE?EAEEFFBB?EE:E:==>B=D5D::;;;:<@>;?@@;?C7=8=>>B5::?;@;27D?=?DEEE-?0'61?#
+ at HWUSI-EAS635_102902104:5:36:17782:16941/1
+GGGTTAGGATTATACATTGCAAATGAGTTAGCACAACAAATTGACGCCTCTATTACAGTCCAAAGTGATTTAGACATTGGAACCACGATGACACTTAC
++HWUSI-EAS635_102902104:5:36:17782:16941/1
+GGGFGGEGGGGGGGGGGGGGGGGGGGGGFGGGBGGFDGGGGGFEGGGGGGGFGGGFEFBFEEAEE4CAC at EEEEBFDDA:CACCAED?C:@AAA5@@#
+ at HWUSI-EAS635_102902104:5:36:6569:13437/1
+ACGCTTTACTGTGAAAGAAGCATTTAGTAAGGCCTTAGGTACTGGGTTGGGGAAATCAGTATCGTTTCAGGATATTAACTGTTACAACGACGCTCTAGGT
++HWUSI-EAS635_102902104:5:36:6569:13437/1
+GGGGGGGGGGGEGGGGGGFGFGGGFGGFGFGFGGGGGDGEGFGGGBCGGEGGFDEFGDGD:CDECCEEDEDDF:EEDEEEBADEEBCECCDBE=AA at -?=
+ at HWUSI-EAS635_102902104:5:37:10500:7522/1
+GACGCCTTAATTTTTAATAGTGGTTACGATGCGAATTTGGCGGTATTTAATATTTTTTAAAAT
++HWUSI-EAS635_102902104:5:37:10500:7522/1
+GGGGGGDGGGFFFFFDFFEEEEFFFGGDEGEEA:E:DD:?=A9%0/85&.*++;>B?-/???#
+ at HWUSI-EAS635_102902104:5:38:13550:8347/1
+ATAAAAAACCAATTAAAGCTATTGCTAGAAATAACTCAAAAGAATTCTTTTTAAAACAGGGTTTTAAAGATGTAGAAACCAAAAATCCTGAGGGGCACGA
++HWUSI-EAS635_102902104:5:38:13550:8347/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGBGGGGGGGGGEGDGGGGGFEEFGGGFAEFFGDFGEGDFGDEDAEFEEEAFFAEGE=@>=<C6B>>
+ at HWUSI-EAS635_102902104:5:38:17502:9971/2
+GTTGAGATGATGATTTATCCTTTTGTTCTGTTTTAGAACTATCATCTTTATGACTTGATTCATCATTTCCACCATTGGAACAACCTACTAACATTAATGA
++HWUSI-EAS635_102902104:5:38:17502:9971/2
+DBDDBDBCDCCDBCDDBDCCDCBCDB@>CCBBCCBCCBBCBBBBBBCBCBCCBBBBB?BB?BBBBBBBBBBBBABB?B at BBBBBBBBBAB?BBBA=A?B?
+ at HWUSI-EAS635_102902104:5:38:17647:13889/2
+TCAATTCATATGGTTAGACATGATTTTAAAGTTAAAACTGAATGGCTAGGTGGACGCGAAGAAGTAGGTAAACTTCGAGGAGATATTAT
++HWUSI-EAS635_102902104:5:38:17647:13889/2
+DDADDDDDDDDDD?DDDADDDDDDDDDDDDDDDDDDDDAD?DDDDDDADDABD=?CD?ABCBC;B39<(819=47@>:>7,B:?@???#
+ at HWUSI-EAS635_102902104:5:39:18898:20056/2
+TATCATATATGATGCTTTAATTAACATAGTTGGCCATCAACTTTTAGAAAGACTTAAAGAATCTAATTTAGAATTTTTTCAATTTAAAGAAAAGATAAAA
++HWUSI-EAS635_102902104:5:39:18898:20056/2
+B:AABBADDC=CC>A>AB?>CCCC?ABA:C=?C?AEADEEDE?E=?DDD;;CCCA??AA-':641=AC at CEEDEED5DEE?ADB?BAAACE;C<BEAEBE
+ at HWUSI-EAS635_102902104:5:39:7637:7003/2
+TTAATCGCCTTTCCAAAGTGTAATAACACTAAATTTTTAGTGGCATCATAAGCAAGTCCTCCTGGAACCAGAGGTATAATACCTGTAACCATAAAAATAA
++HWUSI-EAS635_102902104:5:39:7637:7003/2
+EEEEEEEEEEEEEEEEEEEECEEEEEEEEEEEEEEEDEEEEDEEEEEEEEEEEEEEBEEEEEBA:?BBEB:?AB:DDDEDEEEBD=?EBED?DEEB@@@@
+ at HWUSI-EAS635_102902104:5:39:8724:6719/1
+TATCACAGTATTAAAAAATGACCATCTTATTAATTATGAATTTTATGCAGATGCTGTGTCAGGACAAATCATTGATATAATTGAACTCTGAGGTAAAATT
++HWUSI-EAS635_102902104:5:39:8724:6719/1
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGEGGGGGGFFFDGGGGFGFGGGDDEGFGFDFGFGFGFGDGFFGGFBEEAGAE=ECCECEFDB
+ at HWUSI-EAS635_102902104:5:39:9600:19211/2
+TATAACTTATACTTTTCTAAAAATGAGGGAAGAAGCAAACCTTCTTTTCTTATTGTCATTATATTTGGATATTCAAATCTATTATTTAAGAGTTTATCTC
++HWUSI-EAS635_102902104:5:39:9600:19211/2
+GGGFGGGGGGFFGGGGFGGGGGDGGGDGGGDGGFGGFGFFFGGEFFGGEGE=GGFGEGGGGGEGEGBEE:AEEEDEDEGGGGGEFGFC=BBCCCCEEEEF
+ at HWUSI-EAS635_102902104:5:39:9873:5741/2
+ATTATTAACAATGCCAATAAGATGAAGACTACCACCAGCAGCAACATTAATAATAAGATGGCTAAACTTTCACTTATATTCATTAAAGGAACAATCATAA
++HWUSI-EAS635_102902104:5:39:9873:5741/2
+GGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGG?@?6*5:@@@GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGDGEEFFEGGFEE8=:?C
+ at HWUSI-EAS635_102902104:5:3:4027:13176/2
+ATCTATGACAGAATTAAAAGAATTGACTAAAGAAGGAAAAGATTGGGAAATAGAGTGTGAAAATCGTTCTAGCATAGTCACTATATTAGCATTACATGGC
++HWUSI-EAS635_102902104:5:3:4027:13176/2
+GGGGGGGGGGGGGGGGGGGGGEFGGGGGGGFGGGGGGGGBGGGGGGGFDGGGGGGAFFFEEGGGFFEGDDFBGDGADEEDFEGDDGEEDDGGEGFFEFDD
+ at HWUSI-EAS635_102902104:5:3:8158:13734/1
+TCTTATATTATAGGATAAATCTCTATTGACTATACGATGATCAACACCTTTTTGAGTTCCACGTTTTTTATGAGTTTGCGCATATGCTTGTGAATTTTGC
++HWUSI-EAS635_102902104:5:3:8158:13734/1
+=EEEDBFFFFDEDACFFFDDFFFFFFFFFFFFBFFFEFFFEFFFBDFEFFFFFDFBDDFBFEFF=FFFFDCA:=DEBE5CB?:CDB?=:BAE:??DEDEB
+ at HWUSI-EAS635_102902104:5:40:18636:11381/1
+GTTAACGTAATTATCAACTGTCGTTTATCAGATTGTTGACGTTCTCTTTTAACCCAGCCAGATTGCTCAAGTCTTTTTAGTAAGGGGGTTAAAGTATTAC
++HWUSI-EAS635_102902104:5:40:18636:11381/1
+GGGGGGFGGGGGGGGGGGGGGGFGGGGGGGGGGGEGGGGFFGGGGGGGGGFGFAG?EGGEDEDDDFDGEDFEEEEEEA;=A:@AA?@@?5==>>,?=>5?
+ at HWUSI-EAS635_102902104:5:40:2381:13369/2
+GGGGTAATGCTAAGAATTGGTATAGCAATGCACGTCGATCTGGTTATGCAACTGGACATAAGCCACGCAAATACGCTGTTATGCAATCAACAAGAGGCTA
++HWUSI-EAS635_102902104:5:40:2381:13369/2
+CC@><BBCDBCCBDBBBCDB at BCBCBB=BD?BBBBBB at BBBCB@?BBBBB@?BBA@?@BA@@?@=B?B??>?@B at B?B?<6:===@@@=?@?6?<?5?==
+ at HWUSI-EAS635_102902104:5:40:9436:10158/1
+GTATGAATTTAGACACAGCTTTAGAAATGTACGAAGGTGACCACAAAATTGTTAAAATGGAAGCGCCAATCGTTGAAGGAAGCTTTATTGCAAGTGTAGG
++HWUSI-EAS635_102902104:5:40:9436:10158/1
+GGGGGGGGGGGGGGFGGGGGGGGGGGGGGGEGGGGGGEGEGGGGGFFGGFGGGGGEGGFGEFGCCDFEBGGEEEG=CBEDDE?CCEDDBBEBAC at EACEB
+ at HWUSI-EAS635_102902104:5:41:5215:20436/2
+CATTCAAATTCACTTGATGATATTCATCAAGTATATTCAATTGCTCCAGCAATCAGTCAAACAATAAACTACATTCATCGTCAACAGTTTGACTATGATT
++HWUSI-EAS635_102902104:5:41:5215:20436/2
+FFFFFEFFFFFFFFDFFFFFFFFFFB?1>B<:AA>FFFFFFDFFFFFAFFBFFDFFEFEFFFAFFFFFFFFFFFFFFFEDDF?EFBC at BEAAEDBEDEE5
+ at HWUSI-EAS635_102902104:5:41:5888:18389/2
+GTCCTTTTTTTGTTTGTTGATTTCTTGTTCAGGATCCCAAGCATCTTTCTGTTGTTGGTTTTGTTGATGATTCCAATCACTTTGGCCCTTTGA
++HWUSI-EAS635_102902104:5:41:5888:18389/2
+FEGGGGGGGGGGEGGCEFFFGDGFGGGGFFBGGGDFFGDEGEEEEDDEDDDEEEEDDDADE??C?<AEC?AA4B?@=9?0A?A@?ABB at CCA#
+ at HWUSI-EAS635_102902104:5:42:5021:10325/1
+AAATACTTTTACTTTATTCAACATAAATTTATCGTGGATTGAATCTAGACCACTTAAAACTCAATTAGGTATGTATCATTTTTATGTTCAAGCCGATACT
++HWUSI-EAS635_102902104:5:42:5021:10325/1
+GGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGDGGGGGGGGGFFDFBGGGGGDGGAFBBFEEDECEGEGDGDEGFEGGEGCFDEA=@=?:->?>?
+ at HWUSI-EAS635_102902104:5:43:14200:19573/1
+ATCTATGACAGAATTAAAAGAATTGACTAAAGAAGGAAAAGATTGGGAAATAGAGTGTGAAAATCGTTCTAGCATAGTCACTATATTAGCATTACATGGC
++HWUSI-EAS635_102902104:5:43:14200:19573/1
+GGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGCGGGGGGGFGGGGGBGFGFBDGBFEDFDFEFAEAEEDE=EDE?EBD=FB?FDDEGFBEEEEBAAC5?
+ at HWUSI-EAS635_102902104:5:43:14376:15869/1
+CCAACCTAACTGGGAAATTAAAGTAAAACATAAAGGCAAGGATGAAGTTCAAACCTATTATGTAGAAGCTACAAATCATAATCCGAAAGTGATTGATTAT
++HWUSI-EAS635_102902104:5:43:14376:15869/1
+GGGGGGGGGGGGGGGGGGGGFGGEGGGGGGGGGGGFGGGGGFGGDGGEGDFGGGFGDGGAGEEGGBFFFBGEGEEGGEBFDEBDG:=;?:C>??@@ED=D
+ at HWUSI-EAS635_102902104:5:43:14889:4873/2
+CCTTTTTTGTCAGCATATTTTAAGAATGATTTGGCGCCATAAACAGGGTTTGCCTTCGCTGCAGCAACCCATTCATGCCATCCTT
++HWUSI-EAS635_102902104:5:43:14889:4873/2
+5;:98;71838@>;=6274/=+:7-777695>9-29;9@=:5<-856)7*277614;<?AD?5DD=-?5=ACC?5B:5A5?-9B#
+ at HWUSI-EAS635_102902104:5:43:15915:10301/2
+ATGCAGTACCCATAGGAATAGATACCATTGCAAATTTTAATGTACTAAAACTTAATATAAATGCTAATCCTAAAAAAATGACATAAATTTTATTCTTTGT
++HWUSI-EAS635_102902104:5:43:15915:10301/2
+GGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGDGGGGFGGGFGGGGGEGGFGGGGGGGEGGEFGEGEEEEGEGEEEEEFGEFGEEEFEEEGEEEEEEEE
+ at HWUSI-EAS635_102902104:5:43:16883:15954/2
+ATAAAAAACCAATTAAAGCTATTGCTAGAAATAACTCAAAAGAATTCTTTTTAAAACAGGGTTTTAAAGATGTAGAAACCAAAAATCCTGAGGGGCACGA
++HWUSI-EAS635_102902104:5:43:16883:15954/2
+GGGGGGGGGGGGGGGGEGGGGGGGGGGGDGGGGGGDGGBGDGGGGGGGGGGGEFFFGGGGFCCFFFEEFDEFEEAEDEEDFEBGB8@@@B-BAAA at AD@A
+ at HWUSI-EAS635_102902104:5:43:17541:5526/2
+ATGAATTAAAAAAACTTGTAACCTTTATTGTAGTGAATAGAGAAACTGATAACCAAAATGTAAGTAAAGAGATGATTTCTATAAAGATACCTCGAATAGA
++HWUSI-EAS635_102902104:5:43:17541:5526/2
+DDDDDDDDDDDDDCBDDDDDDDDDDDDDDDCDDCDDDDDDDDDDDBDDDDDDCDDCBDDDBDDDABCDDDDDCDDDCDDDDBDDDDDADDDDDD=CDDD=
+ at HWUSI-EAS635_102902104:5:43:9900:17700/1
+AATGCATATGCCTGGATGACCTTCTAGTTGTTGAGAAACCAATTGTTCTTCAATCGTACTTAAATGACCTATAACAATCTTTTCATTGTAGCAGGAAGCA
++HWUSI-EAS635_102902104:5:43:9900:17700/1
+GGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGBGGEGGGGEGGGGGAEGFFEFGDEGDEGAECCEEEGEGGEGEFEEEEA?ACAB?AA@@CDCDA
+ at HWUSI-EAS635_102902104:5:44:13708:11015/2
+ATTGCGTAACGCTATACAAGATGGTGCATTAATCGAAATGCATGTTGGCTACCAGGCACACAAAATAACATATCAAAACCATTCCTATAAGATACATTTT
++HWUSI-EAS635_102902104:5:44:13708:11015/2
+EEEEEEEEEEEEEEEEEEEEEEEEDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDDEEEEEEEEEEEEEEEEBADBEDBB:EBEBEEEEEED
+ at HWUSI-EAS635_102902104:5:44:17843:10917/2
+GAAATTAATTTTATGCAAATATGCATCACGAATAATGCCTATAAAGTAAGCTACAACAGGATATAAGAATAAGAATCCTGCCGAAGGTCCTGCAAATACG
++HWUSI-EAS635_102902104:5:44:17843:10917/2
+GEGGDGFFEGGGDEGDGGGDEEBDFCAFFFEFBFFBEEEEBFGGGE@?EEBEEEEGFGAFABEEEC>>@9)/38577;4>EDE?D?=:????@==1077<
+ at HWUSI-EAS635_102902104:5:44:2195:12503/1
+ATTCTTTGTTATATATATAAATTCAGAGCACGTTTTGCAGTATTAGCACGCATAGTAAGCCTACGCGAAGGCTTACCTGAAGATACGTCTTTAATTCAGT
++HWUSI-EAS635_102902104:5:44:2195:12503/1
+GGGGGGGGGGEDGGGGFGDGGGFGGGGGGGEGEGFEEEAEEGGFGGGDF=FFFDEEGEEBGGDFAFDBDDBBCCEBBDDCCDC5BCC??@==->>?7?:?
+ at HWUSI-EAS635_102902104:5:44:2457:19357/1
+TGCTAATATATCAACATGTTGGTTTAATATTAGACAAAAAGAAAACCATACGTCTATTCAACCGGATTATATCATTAATGATTTATCAGAAATGATTCGC
++HWUSI-EAS635_102902104:5:44:2457:19357/1
+GGGGGGGGGGGGGGGFGGGGGFGGGGGGGGGFGGGGGFGEGGGFGGGGGFGGGEGGFGGEFGFEEBDEDF?DFEFGEEFGEE?EDFEBF:B=EEEB:C5E
+ at HWUSI-EAS635_102902104:5:44:5184:3601/1
+ATCTATGACAGAATTAAAAGAATTGACTAAAGAAGGAAAAGATTGGGAAATAGAGTGTGAAAATCGTTCTAGCATAGTCACTATATTAGCATTACATGGC
++HWUSI-EAS635_102902104:5:44:5184:3601/1
+GGGGGGGGGGGGGGGGGGGGG at GGGFGGGGGGGGGGGFGGGGGGGGGGEGFEDFFBFDFDFFFFEECEAEFDF?BFGDG:EAD=EBEF?D=:ACD<9>;=
+ at HWUSI-EAS635_102902104:5:44:8403:7099/2
+TAATTTTTTTCTATTTGCATCTTTAAACGTTCAATAACTTTCTCTCTCATTTCTTCATCTATAGCACTAATTCCGAATATTTCCGACAACCATAAACCAT
++HWUSI-EAS635_102902104:5:44:8403:7099/2
+GGGGGGGGGGCCCEE%@@?@EEEEEDFGGGGGEGGGGGGGGGGGGGGGFGEFGGGDGFGGEGGBGBGFFEGFGEBEE=FEFEBE=DFDDDBEEDDEG at EB
+ at HWUSI-EAS635_102902104:5:45:13180:3400/1
+AATTCCTGTCCATATAGCGTATGCAGTACCCATAGGAATAGATACCATTGCAAATTTTAATGTACTAAAACTTAATATAAATGCTAATCCTAAAAAAATG
++HWUSI-EAS635_102902104:5:45:13180:3400/1
+FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGFFFGEDFFGGEFGGEGGFGGEFEEFGEGGFFEGE?ABGEEDEFA=FB?C>9C
+ at HWUSI-EAS635_102902104:5:45:13537:12639/1
+AATTCATTCCAACCCAAATGAGGAATAGGATGAGATGATTGGATTGGCACTATATTTCCCGGGACAAGTTCCAATCCACTAACGTCACCTTCTGCGCTAT
++HWUSI-EAS635_102902104:5:45:13537:12639/1
+GGGGGGGGGGGGGGGGGGGGEGGGGGGGGGFGGGGGGGFGGGEFGGGGFGFAGDGGFFFFDBEG?EDFDBFDFCEFCFEDCDEDCCBBA?ACCABCC?;A
+ at HWUSI-EAS635_102902104:5:45:14738:5069/2
+TGTTAAAATGGAAGCGCCAATAGTTGAAGGAAGCTTTATTGCAAGTGTAGGAATTAAATCAAATATGAGTATGGATAGTGTTATCTCTGAAGTAAGAGCT
++HWUSI-EAS635_102902104:5:45:14738:5069/2
+GGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGEGGEFEFFGEEGGFFGEGGGGGEGGDGEFDGGFBEECEC=CCBFEFGBDFD?BFDF?E
+ at HWUSI-EAS635_102902104:5:45:1525:3927/2
+TAATCCTAATACACCGATAACTAGTGTAGCTATAAAAATCACTAAGAAATTAATTTTATGCAAATATGCATCACGAATAATGCCTATAAAGTAAGCTACA
++HWUSI-EAS635_102902104:5:45:1525:3927/2
+DDDDDDDDDDDDDDDDDDDDDDDDBDCDDCDDDDCCCAADDCDCADCBDDCD?DBDDDDD=BBBDCCD?AB:CBDDBCBBBC=BBBB5B+A>>>?55?>:
+ at HWUSI-EAS635_102902104:5:45:16822:14166/2
+TTTAAACGTTCAAAAGAAGGTGATTGTGGTGGGTGTAAATCTAATTGCAAATGCGATACGAATCCTTCATCTCATAAAAATAAGTTGAATATTCCACATA
++HWUSI-EAS635_102902104:5:45:16822:14166/2
+EEEEEEEEEEEEEEEEECEEEEEEEEEEEEEEEBEEEEEEEEEEEEEEEEEEEDEEEEEEEEEEEEDDEEEDEEEAEEE?/=55:B?BBBB?=BEBDA??
diff --git a/example/SRS018978/tutorial_example_SRS018978.pair1.fastq.gz b/example/SRS018978/tutorial_example_SRS018978.pair1.fastq.gz
new file mode 100644
index 0000000..a894f61
Binary files /dev/null and b/example/SRS018978/tutorial_example_SRS018978.pair1.fastq.gz differ
diff --git a/example/SRS018978/tutorial_example_SRS018978.pair2.fastq.gz b/example/SRS018978/tutorial_example_SRS018978.pair2.fastq.gz
new file mode 100644
index 0000000..550c0b9
Binary files /dev/null and b/example/SRS018978/tutorial_example_SRS018978.pair2.fastq.gz differ
diff --git a/example/SRS018978/tutorial_example_SRS018978.singleton.fastq.gz b/example/SRS018978/tutorial_example_SRS018978.singleton.fastq.gz
new file mode 100644
index 0000000..5e4276f
Binary files /dev/null and b/example/SRS018978/tutorial_example_SRS018978.singleton.fastq.gz differ
diff --git a/example/SRS024655/fastexample_SRS024655.pair1.fastq.gz b/example/SRS024655/fastexample_SRS024655.pair1.fastq.gz
new file mode 100644
index 0000000..fc476a3
Binary files /dev/null and b/example/SRS024655/fastexample_SRS024655.pair1.fastq.gz differ
diff --git a/example/SRS024655/fastexample_SRS024655.pair2.fastq.gz b/example/SRS024655/fastexample_SRS024655.pair2.fastq.gz
new file mode 100644
index 0000000..e4acbf1
Binary files /dev/null and b/example/SRS024655/fastexample_SRS024655.pair2.fastq.gz differ
diff --git a/example/SRS024655/fastexample_SRS024655.singleton.fastq.gz b/example/SRS024655/fastexample_SRS024655.singleton.fastq.gz
new file mode 100644
index 0000000..657f61b
Binary files /dev/null and b/example/SRS024655/fastexample_SRS024655.singleton.fastq.gz differ
diff --git a/example/SRS024655/tutorial_example_SRS024655.pair1.fastq.gz b/example/SRS024655/tutorial_example_SRS024655.pair1.fastq.gz
new file mode 100644
index 0000000..97688ff
Binary files /dev/null and b/example/SRS024655/tutorial_example_SRS024655.pair1.fastq.gz differ
diff --git a/example/SRS024655/tutorial_example_SRS024655.pair2.fastq.gz b/example/SRS024655/tutorial_example_SRS024655.pair2.fastq.gz
new file mode 100644
index 0000000..cd7307c
Binary files /dev/null and b/example/SRS024655/tutorial_example_SRS024655.pair2.fastq.gz differ
diff --git a/example/SRS024655/tutorial_example_SRS024655.singleton.fastq.gz b/example/SRS024655/tutorial_example_SRS024655.singleton.fastq.gz
new file mode 100644
index 0000000..96730a9
Binary files /dev/null and b/example/SRS024655/tutorial_example_SRS024655.singleton.fastq.gz differ
diff --git a/example/Soil.tsv b/example/Soil.tsv
new file mode 100644
index 0000000..007f1d3
--- /dev/null
+++ b/example/Soil.tsv
@@ -0,0 +1,111 @@
+ID ColdDesert_EB017 ColdDesert_EB020 ColdDesert_EB019 ColdDesert_EB021 ColdDesert_EB024 ColdDesert_EB026 HotDesert_MD3 HotDesert_SF2 HotDesert_SV1 TropicalForest_AR3 TropicalForest_PE6 TemperateDecidousForest_CL1 TemperateConiferousForest_DF1 TemperateGrassland_KP1 BorealForest_BZ1 ArcticTundra_TL1
+k__Bacteria 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
+k__Bacteria|p__Acidobacteria 0 0 0 0 0 0 0 0 0 0 0 6.19888 0 0 19.89733 6.72384
+k__Bacteria|p__Acidobacteria|c__Acidobacteria 0 0 0 0 0 0 0 0 0 0 0 6.19888 0 0 19.89733 6.72384
+k__Bacteria|p__Acidobacteria|c__Acidobacteria|o__Acidobacteriales 0 0 0 0 0 0 0 0 0 0 0 6.19888 0 0 19.89733 6.72384
+k__Bacteria|p__Acidobacteria|c__Acidobacteria|o__Acidobacteriales|f__Acidobacteriaceae 0 0 0 0 0 0 0 0 0 0 0 6.19888 0 0 19.89733 6.72384
+k__Bacteria|p__Acidobacteria|c__Acidobacteria|o__Acidobacteriales|f__Acidobacteriaceae|g__Granulicella 0 0 0 0 0 0 0 0 0 0 0 6.19888 0 0 19.89733 6.72384
+k__Bacteria|p__Acidobacteria|c__Acidobacteria|o__Acidobacteriales|f__Acidobacteriaceae|g__Granulicella|s__Granulicella_unclassified 0 0 0 0 0 0 0 0 0 0 0 6.19888 0 0 19.89733 6.72384
+k__Bacteria|p__Actinobacteria 0 70.67346 73.34917 100 75.83115 11.1087 87.53169 64.30388 71.00592 42.59957 10.7897 26.41864 39.80902 74.58351 3.74121 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria 0 70.67346 73.34917 100 75.83115 11.1087 87.53169 64.30388 71.00592 42.59957 10.7897 26.41864 39.80902 74.58351 3.74121 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales 0 70.67346 73.34917 100 75.83115 11.1087 87.01381 64.30388 70.46786 42.59957 10.7897 26.41864 39.80902 74.58351 3.74121 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Frankiaceae 0 7.40767 19.54483 55.06745 25.23155 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Frankiaceae|g__Frankia 0 7.40767 19.54483 55.06745 25.23155 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Frankiaceae|g__Frankia|s__Frankia_unclassified 0 7.40767 19.54483 55.06745 25.23155 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Geodermatophilaceae 0 0 0 0 0 0 70.80726 27.98775 44.33677 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Geodermatophilaceae|g__Geodermatophilus 0 0 0 0 0 0 70.80726 27.98775 44.33677 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Geodermatophilaceae|g__Geodermatophilus|s__Geodermatophilus_obscurus 0 0 0 0 0 0 70.80726 27.98775 44.33677 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae 0 63.26579 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Arthrobacter 0 63.26579 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micrococcaceae|g__Arthrobacter|s__Arthrobacter_unclassified 0 63.26579 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micromonosporaceae 0 0 0 0 0 0 5.56891 36.31613 15.98585 0 0 0 0 52.85255 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micromonosporaceae|g__Micromonosporaceae_unclassified 0 0 0 0 0 0 5.56891 36.31613 15.98585 0 0 0 0 52.85255 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae 0 0 46.10518 44.93255 50.59959 11.1087 10.63764 0 9.09805 42.59957 10.7897 26.41864 39.80902 21.73096 3.74121 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae|g__Mycobacterium 0 0 46.10518 44.93255 50.59959 11.1087 10.63764 0 9.09805 42.59957 10.7897 26.41864 39.80902 21.73096 3.74121 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Mycobacteriaceae|g__Mycobacterium|s__Mycobacterium_unclassified 0 0 46.10518 44.93255 50.59959 11.1087 10.63764 0 9.09805 42.59957 10.7897 26.41864 39.80902 21.73096 3.74121 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Nocardioidaceae 0 0 0 0 0 0 0 0 0.84479 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Nocardioidaceae|g__Kribbella 0 0 0 0 0 0 0 0 0.84479 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Nocardioidaceae|g__Kribbella|s__Kribbella_flavida 0 0 0 0 0 0 0 0 0.84479 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae 0 0 7.69916 0 0 0 0 0 0.2024 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium 0 0 7.69916 0 0 0 0 0 0.2024 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_acnes 0 0 4.44714 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacterium|s__Propionibacterium_unclassified 0 0 3.25202 0 0 0 0 0 0.2024 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Rubrobacterales 0 0 0 0 0 0 0.51787 0 0.53806 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Rubrobacterales|f__Rubrobacteraceae 0 0 0 0 0 0 0.51787 0 0.53806 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Rubrobacterales|f__Rubrobacteraceae|g__Rubrobacter 0 0 0 0 0 0 0.51787 0 0.53806 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Rubrobacterales|f__Rubrobacteraceae|g__Rubrobacter|s__Rubrobacter_xylanophilus 0 0 0 0 0 0 0.51787 0 0.53806 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes 0 8.60254 26.65083 0 18.49499 38.31698 0 0 0 0 0 0 0 0 15.46357 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia 0 0 26.65083 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales 0 0 26.65083 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae 0 0 26.65083 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella 0 0 26.65083 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oris 0 0 26.65083 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria 0 0 0 0 0 5.48803 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales 0 0 0 0 0 5.48803 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae 0 0 0 0 0 5.48803 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Cellulophaga 0 0 0 0 0 1.68035 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Cellulophaga|s__Cellulophaga_unclassified 0 0 0 0 0 1.68035 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Flavobacterium 0 0 0 0 0 3.80768 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteria|o__Flavobacteriales|f__Flavobacteriaceae|g__Flavobacterium|s__Flavobacterium_unclassified 0 0 0 0 0 3.80768 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteria 0 8.60254 0 0 18.49499 32.82895 0 0 0 0 0 0 0 0 15.46357 0
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteria|o__Sphingobacteriales 0 8.60254 0 0 18.49499 32.82895 0 0 0 0 0 0 0 0 15.46357 0
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteria|o__Sphingobacteriales|f__Sphingobacteriaceae 0 8.60254 0 0 18.49499 32.82895 0 0 0 0 0 0 0 0 15.46357 0
+k__Bacteria|p__Bacteroidetes|c__Sphingobacteria|o__Sphingobacteriales|f__Sphingobacteriaceae|g__Sphingobacteriaceae_unclassified 0 8.60254 0 0 18.49499 32.82895 0 0 0 0 0 0 0 0 15.46357 0
+k__Bacteria|p__Chloroflexi 100 7.62442 0 0 5.67386 0 7.62212 12.02315 12.67577 35.02984 0 0 0 0 4.69116 0
+k__Bacteria|p__Chloroflexi|c__Thermomicrobia 100 7.62442 0 0 5.67386 0 7.62212 12.02315 12.67577 35.02984 0 0 0 0 4.69116 0
+k__Bacteria|p__Chloroflexi|c__Thermomicrobia|o__Thermomicrobia_unclassified 100 7.62442 0 0 5.67386 0 7.62212 12.02315 12.67577 35.02984 0 0 0 0 4.69116 0
+k__Bacteria|p__Cyanobacteria 0 0 0 0 0 39.14875 0 6.99049 0.7286 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae 0 0 0 0 0 39.14875 0 6.99049 0.7286 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Oscillatoriales 0 0 0 0 0 39.14875 0 6.99049 0.7286 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Oscillatoriales|f__Oscillatoriaceae 0 0 0 0 0 39.14875 0 6.99049 0.7286 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Oscillatoriales|f__Oscillatoriaceae|g__Oscillatoria 0 0 0 0 0 0 0 1.09175 0 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Oscillatoriales|f__Oscillatoriaceae|g__Oscillatoriaceae_unclassified 0 0 0 0 0 39.14875 0 5.89874 0.7286 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanophyceae|o__Oscillatoriales|f__Oscillatoriaceae|g__Oscillatoria|s__Oscillatoria_unclassified 0 0 0 0 0 0 0 1.09175 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria 0 13.09958 0 0 0 11.42556 4.84619 16.68248 15.5897 22.37058 89.2103 67.38248 60.19098 25.41649 56.20673 93.27616
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria 0 13.09958 0 0 0 9.92977 4.84619 16.68248 15.5897 22.37058 11.42894 25.79163 26.82473 25.41649 43.81887 93.27616
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales 0 0 0 0 0 0.50242 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae 0 0 0 0 0 0.50242 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Brevundimonas 0 0 0 0 0 0.50242 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Brevundimonas|s__Brevundimonas_subvibrioides 0 0 0 0 0 0.50242 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales 0 13.09958 0 0 0 2.05778 4.84619 16.68248 11.58309 22.37058 11.42894 25.79163 26.82473 25.41649 43.81887 93.27616
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Aurantimonadaceae 0 0 0 0 0 0 0 0 1.59892 7.32944 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Aurantimonadaceae|g__Aurantimonadaceae_unclassified 0 0 0 0 0 0 0 0 1.59892 7.32944 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Beijerinckiaceae 0 0 0 0 0 0 0 6.28068 2.51558 0 0 2.76311 0 0 9.68168 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Beijerinckiaceae|g__Beijerinckiaceae_unclassified 0 0 0 0 0 0 0 6.28068 2.51558 0 0 2.76311 0 0 9.68168 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae 0 0 0 0 0 0 0 0 0 0 0 11.17691 2.62224 10.07088 14.32289 71.6988
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Bradyrhizobium 0 0 0 0 0 0 0 0 0 0 0 1.16177 2.62224 5.84182 0.14548 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Bradyrhizobium|s__Bradyrhizobium_japonicum 0 0 0 0 0 0 0 0 0 0 0 1.16177 2.62224 5.84182 0.14548 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas 0 0 0 0 0 0 0 0 0 0 0 10.01514 0 4.22906 14.17741 71.6988
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas|s__Rhodopseudomonas_palustris 0 0 0 0 0 0 0 0 0 0 0 10.01514 0 4.22906 14.17741 71.6988
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylobacteriaceae 0 0 0 0 0 0 1.62346 5.40443 2.1091 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylobacteriaceae|g__Methylobacterium 0 0 0 0 0 0 1.62346 5.40443 2.1091 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylobacteriaceae|g__Methylobacterium|s__Methylobacterium_unclassified 0 0 0 0 0 0 1.62346 5.40443 2.1091 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylocystaceae 0 13.09958 0 0 0 2.05778 3.22274 4.99737 5.35949 15.04114 11.42894 11.85161 24.20249 15.34562 19.81429 21.57737
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Methylocystaceae|g__Methylocystaceae_unclassified 0 13.09958 0 0 0 2.05778 3.22274 4.99737 5.35949 15.04114 11.42894 11.85161 24.20249 15.34562 19.81429 21.57737
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodospirillales 0 0 0 0 0 0 0 0 4.00661 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodospirillales|f__Acetobacteraceae 0 0 0 0 0 0 0 0 4.00661 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodospirillales|f__Acetobacteraceae|g__Acetobacteraceae_unclassified 0 0 0 0 0 0 0 0 4.00661 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales 0 0 0 0 0 7.36957 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Erythrobacteraceae 0 0 0 0 0 7.36957 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Sphingomonadales|f__Erythrobacteraceae|g__Erythrobacteraceae_unclassified 0 0 0 0 0 7.36957 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria 0 0 0 0 0 0 0 0 0 0 30.23383 41.59085 33.36625 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales 0 0 0 0 0 0 0 0 0 0 30.23383 41.59085 33.36625 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae 0 0 0 0 0 0 0 0 0 0 28.86865 41.59085 33.36625 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia 0 0 0 0 0 0 0 0 0 0 28.86865 41.59085 33.36625 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia|s__Burkholderia_unclassified 0 0 0 0 0 0 0 0 0 0 28.86865 41.59085 33.36625 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae 0 0 0 0 0 0 0 0 0 0 1.36518 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Variovorax 0 0 0 0 0 0 0 0 0 0 1.36518 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Variovorax|s__Variovorax_paradoxus 0 0 0 0 0 0 0 0 0 0 1.36518 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria 0 0 0 0 0 1.49579 0 0 0 0 47.54753 0 0 0 12.38786 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Chromatiales 0 0 0 0 0 1.49579 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Chromatiales|f__Ectothiorhodospiraceae 0 0 0 0 0 1.49579 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Chromatiales|f__Ectothiorhodospiraceae|g__Thioalkalivibrio 0 0 0 0 0 1.49579 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Chromatiales|f__Ectothiorhodospiraceae|g__Thioalkalivibrio|s__Thioalkalivibrio_unclassified 0 0 0 0 0 1.49579 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales 0 0 0 0 0 0 0 0 0 0 4.92859 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae 0 0 0 0 0 0 0 0 0 0 4.92859 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia 0 0 0 0 0 0 0 0 0 0 4.92859 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia|s__Serratia_unclassified 0 0 0 0 0 0 0 0 0 0 4.92859 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales 0 0 0 0 0 0 0 0 0 0 42.61894 0 0 0 12.38786 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae 0 0 0 0 0 0 0 0 0 0 42.61894 0 0 0 12.38786 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas 0 0 0 0 0 0 0 0 0 0 42.61894 0 0 0 12.38786 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_unclassified 0 0 0 0 0 0 0 0 0 0 42.61894 0 0 0 12.38786 0
diff --git a/example/SoilII.tsv b/example/SoilII.tsv
new file mode 100644
index 0000000..2157257
--- /dev/null
+++ b/example/SoilII.tsv
@@ -0,0 +1,160 @@
+ID ColdDesert_EB019 ColdDesert_EB020 ColdDesert_EB021 ColdDesert_EB024 ColdDesert_EB026 HotDesert_MD3 HotDesert_SF2 HotDesert_SV1 TropicalForest_AR3 TropicalForest_PE6 TemperateDecidousForest_CL1 TemperateConiferousForest_DF1 TemperateGrassland_KP1 BorealForest_BZ1 ArcticTundra_TL1
+k__Bacteria 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
+k__Bacteria|p__Acidobacteria 0 6.07537 0 0 0 0 4.43356 1.31286 18.43641 5.8178 9.9818 12.90411 5.95172 42.96488 29.85402
+k__Bacteria|p__Acidobacteria|c__Acidobacteriia 0 6.07537 0 0 0 0 4.43356 1.31286 18.43641 5.8178 9.9818 12.90411 5.95172 42.96488 29.85402
+k__Bacteria|p__Acidobacteria|c__Acidobacteriia|o__Acidobacteriales 0 6.07537 0 0 0 0 4.43356 1.31286 18.43641 5.8178 9.9818 12.90411 5.95172 42.96488 29.85402
+k__Bacteria|p__Acidobacteria|c__Acidobacteriia|o__Acidobacteriales|f__Acidobacteriaceae 0 6.07537 0 0 0 0 4.43356 1.31286 18.43641 5.8178 9.9818 12.90411 5.95172 42.96488 29.85402
+k__Bacteria|p__Acidobacteria|c__Acidobacteriia|o__Acidobacteriales|f__Acidobacteriaceae|g__Acidobacteriaceae_unclassified 0 6.07537 0 0 0 0 4.43356 1.31286 18.43641 5.8178 7.09602 7.37339 5.95172 24.33289 16.90764
+k__Bacteria|p__Acidobacteria|c__Acidobacteriia|o__Acidobacteriales|f__Acidobacteriaceae|g__Granulicella 0 0 0 0 0 0 0 0 0 0 2.88578 5.53072 0 18.63199 12.94638
+k__Bacteria|p__Acidobacteria|c__Acidobacteriia|o__Acidobacteriales|f__Acidobacteriaceae|g__Granulicella|s__Granulicella_unclassified 0 0 0 0 0 0 0 0 0 0 2.88578 5.53072 0 18.63199 12.94638
+k__Bacteria|p__Actinobacteria 6.3543 70.95686 80.92994 82.71562 0.79334 64.60861 57.44184 91.77177 0 10.28652 0 0 54.40327 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria 6.3543 70.95686 80.92994 82.71562 0.79334 64.60861 57.44184 91.77177 0 10.28652 0 0 54.40327 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales 0.67696 11.94847 0 5.47243 0 52.87226 37.86624 82.18186 0 10.28652 0 0 48.40437 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Geodermatophilaceae 0.11254 0 0 0.21143 0 44.09681 21.07351 40.48994 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Geodermatophilaceae|g__Geodermatophilaceae_unclassified 0.11254 0 0 0.21143 0 15.9143 18.70819 26.14162 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Geodermatophilaceae|g__Geodermatophilus 0 0 0 0 0 28.18251 2.36532 14.34831 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Geodermatophilaceae|g__Geodermatophilus|s__Geodermatophilus_obscurus 0 0 0 0 0 28.18251 2.36532 14.34831 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Geodermatophilaceae|g__Geodermatophilus|s__Geodermatophilus_obscurus|t__GCF_000025345 0 0 0 0 0 28.18251 2.36532 14.34831 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Microbacteriaceae 0 0 0 0 0 0 0 0 0 3.71298 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Microbacteriaceae|g__Leifsonia 0 0 0 0 0 0 0 0 0 3.71298 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Microbacteriaceae|g__Leifsonia|s__Leifsonia_unclassified 0 0 0 0 0 0 0 0 0 3.71298 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micromonosporaceae 0 0 0 0 0 8.77545 14.59907 36.06948 0 0 0 0 48.40437 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micromonosporaceae|g__Actinoplanes 0 0 0 0 0 8.77545 14.59907 35.57642 0 0 0 0 48.40437 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micromonosporaceae|g__Actinoplanes|s__Actinoplanes_unclassified 0 0 0 0 0 8.77545 14.59907 35.57642 0 0 0 0 48.40437 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micromonosporaceae|g__Salinispora 0 0 0 0 0 0 0 0.49306 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Micromonosporaceae|g__Salinispora|s__Salinispora_unclassified 0 0 0 0 0 0 0 0.49306 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Nocardioidaceae 0 3.74374 0 5.261 0 0 1.22866 5.62244 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Nocardioidaceae|g__Kribbella 0 0 0 0 0 0 1.22866 5.62244 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Nocardioidaceae|g__Kribbella|s__Kribbella_unclassified 0 0 0 0 0 0 1.22866 5.62244 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Nocardioidaceae|g__Nocardioides 0 3.74374 0 5.261 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Nocardioidaceae|g__Nocardioides|s__Nocardioides_unclassified 0 3.74374 0 5.261 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae 0.56442 8.20473 0 0 0 0 0 0 0 6.57355 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Propionibacteriaceae|g__Propionibacteriaceae_unclassified 0.56442 8.20473 0 0 0 0 0 0 0 6.57355 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Streptomycetaceae 0 0 0 0 0 0 0.965 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Streptomycetaceae|g__Streptomyces 0 0 0 0 0 0 0.965 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Streptomycetaceae|g__Streptomyces|s__Streptomyces_chartreusis 0 0 0 0 0 0 0.965 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Actinomycetales|f__Streptomycetaceae|g__Streptomyces|s__Streptomyces_chartreusis|t__Streptomyces_chartreusis_unclassified 0 0 0 0 0 0 0.965 0 0 0 0 0 0 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Solirubrobacterales 5.67734 59.00839 80.92994 77.24319 0.79334 11.73635 19.5756 9.58991 0 0 0 0 5.9989 0 0
+k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Solirubrobacterales|f__Solirubrobacterales_unclassified 5.67734 59.00839 80.92994 77.24319 0.79334 11.73635 19.5756 9.58991 0 0 0 0 5.9989 0 0
+k__Bacteria|p__Bacteroidetes 93.38684 0 0 0.67354 12.37378 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia 0.5982 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales 0.5982 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae 0.5982 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella 0.5982 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_nigrescens 0.23382 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_nigrescens|t__Prevotella_nigrescens_unclassified 0.23382 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oris 0.36438 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Bacteroidia|o__Bacteroidales|f__Prevotellaceae|g__Prevotella|s__Prevotella_oris|t__Prevotella_oris_unclassified 0.36438 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Cytophagia 0 0 0 0.67354 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Cytophagia|o__Cytophagales 0 0 0 0.67354 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Cytophagia|o__Cytophagales|f__Cytophagaceae 0 0 0 0.67354 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Cytophagia|o__Cytophagales|f__Cytophagaceae|g__Hymenobacter 0 0 0 0.67354 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Cytophagia|o__Cytophagales|f__Cytophagaceae|g__Hymenobacter|s__Hymenobacter_unclassified 0 0 0 0.67354 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia 92.78864 0 0 0 12.37378 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales 92.78864 0 0 0 12.37378 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae 92.78864 0 0 0 12.37378 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Gillisia 92.78864 0 0 0 12.37378 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Gillisia|s__Gillisia_limnaea 0.41349 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Gillisia|s__Gillisia_limnaea|t__GCF_000243235 0.41349 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Bacteroidetes|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae|g__Gillisia|s__Gillisia_unclassified 92.37514 0 0 0 12.37378 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Chlorobi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.37508
+k__Bacteria|p__Chlorobi|c__Chlorobia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.37508
+k__Bacteria|p__Chlorobi|c__Chlorobia|o__Chlorobiales 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.37508
+k__Bacteria|p__Chlorobi|c__Chlorobia|o__Chlorobiales|f__Chlorobiaceae 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.37508
+k__Bacteria|p__Chlorobi|c__Chlorobia|o__Chlorobiales|f__Chlorobiaceae|g__Chlorobium 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.37508
+k__Bacteria|p__Chlorobi|c__Chlorobia|o__Chlorobiales|f__Chlorobiaceae|g__Chlorobium|s__Chlorobium_phaeobacteroides 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.37508
+k__Bacteria|p__Chlorobi|c__Chlorobia|o__Chlorobiales|f__Chlorobiaceae|g__Chlorobium|s__Chlorobium_phaeobacteroides|t__Chlorobium_phaeobacteroides_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.37508
+k__Bacteria|p__Cyanobacteria 0 0 0 6.8669 50.69585 35.39139 37.50174 3.40966 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname 0 0 0 6.8669 50.69585 35.39139 37.50174 3.40966 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname|o__Oscillatoriales 0 0 0 6.8669 50.69585 35.39139 37.50174 3.40966 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname|o__Oscillatoriales|f__Oscillatoriales_noname 0 0 0 6.8669 50.69585 35.39139 37.50174 3.40966 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname|o__Oscillatoriales|f__Oscillatoriales_noname|g__Microcoleus 0 0 0 0 10.13894 31.42402 25.55806 2.01012 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname|o__Oscillatoriales|f__Oscillatoriales_noname|g__Microcoleus|s__Microcoleus_unclassified 0 0 0 0 0 24.41727 0.22804 0 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname|o__Oscillatoriales|f__Oscillatoriales_noname|g__Microcoleus|s__Microcoleus_vaginatus 0 0 0 0 10.13894 7.00675 25.33002 2.01012 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname|o__Oscillatoriales|f__Oscillatoriales_noname|g__Microcoleus|s__Microcoleus_vaginatus|t__GCF_000214075 0 0 0 0 10.13894 7.00675 25.33002 2.01012 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname|o__Oscillatoriales|f__Oscillatoriales_noname|g__Oscillatoria 0 0 0 0 40.55691 3.96737 11.94368 1.39954 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname|o__Oscillatoriales|f__Oscillatoriales_noname|g__Oscillatoria|s__Oscillatoria_nigro_viridis 0 0 0 0 23.30528 3.42257 11.94368 0.96907 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname|o__Oscillatoriales|f__Oscillatoriales_noname|g__Oscillatoria|s__Oscillatoria_nigro_viridis|t__GCF_000317475 0 0 0 0 23.30528 3.42257 11.94368 0.96907 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname|o__Oscillatoriales|f__Oscillatoriales_noname|g__Oscillatoria|s__Oscillatoria_unclassified 0 0 0 0 17.25163 0.5448 0 0.43047 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname|o__Oscillatoriales|f__Oscillatoriales_noname|g__Pseudanabaena 0 0 0 6.8669 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Cyanobacteria|c__Cyanobacteria_noname|o__Oscillatoriales|f__Oscillatoriales_noname|g__Pseudanabaena|s__Pseudanabaena_unclassified 0 0 0 6.8669 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes 0.06863 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia 0.06863 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales 0.06863 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae 0.06863 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium 0.06863 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_brachy 0.06863 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Firmicutes|c__Clostridia|o__Clostridiales|f__Eubacteriaceae|g__Eubacterium|s__Eubacterium_brachy|t__GCF_000488855 0.06863 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria 0.19023 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia 0.19023 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales 0.19023 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae 0.19023 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium 0.19023 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_nucleatum 0.19023 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Fusobacteria|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium_nucleatum|t__Fusobacterium_nucleatum_unclassified 0.19023 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria 0 22.96777 19.07006 9.74394 36.13704 0 0.62286 3.50571 81.56359 83.89567 90.0182 87.09589 39.64502 57.03512 64.7709
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria 0 3.12075 0 0 28.64018 0 0 3.03538 43.1815 0 46.87689 20.95014 20.91672 31.79555 64.7709
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales 0 3.12075 0 0 28.64018 0 0 2.64493 0 0 0 0 12.22895 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae 0 3.12075 0 0 28.64018 0 0 2.64493 0 0 0 0 12.22895 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Asticcacaulis 0 0 0 0 5.71807 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Asticcacaulis|s__Asticcacaulis_unclassified 0 0 0 0 5.71807 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Brevundimonas 0 0 0 0 22.92211 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Brevundimonas|s__Brevundimonas_unclassified 0 0 0 0 22.92211 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Caulobacter 0 3.12075 0 0 0 0 0 2.64493 0 0 0 0 12.22895 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Caulobacterales|f__Caulobacteraceae|g__Caulobacter|s__Caulobacter_unclassified 0 3.12075 0 0 0 0 0 2.64493 0 0 0 0 12.22895 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales 0 0 0 0 0 0 0 0 43.1815 0 46.87689 20.95014 8.68777 31.79555 64.7709
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae 0 0 0 0 0 0 0 0 18.74255 0 45.36295 13.85569 6.48757 31.79555 64.7709
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Afipia 0 0 0 0 0 0 0 0 0 0 7.94938 5.42285 6.48757 3.38686 5.55179
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Afipia|s__Afipia_unclassified 0 0 0 0 0 0 0 0 0 0 7.94938 5.42285 6.48757 3.38686 5.55179
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas 0 0 0 0 0 0 0 0 18.74255 0 37.41357 8.43284 0 28.4087 59.21911
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas|s__Rhodopseudomonas_palustris 0 0 0 0 0 0 0 0 0 0 11.21862 7.16699 0 23.50908 44.12449
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas|s__Rhodopseudomonas_palustris|t__Rhodopseudomonas_palustris_unclassified 0 0 0 0 0 0 0 0 0 0 11.21862 7.16699 0 23.50908 44.12449
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Bradyrhizobiaceae|g__Rhodopseudomonas|s__Rhodopseudomonas_unclassified 0 0 0 0 0 0 0 0 18.74255 0 26.19494 1.26585 0 4.89961 15.09461
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Hyphomicrobiaceae 0 0 0 0 0 0 0 0 24.43896 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Hyphomicrobiaceae|g__Hyphomicrobiaceae_unclassified 0 0 0 0 0 0 0 0 24.43896 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Phyllobacteriaceae 0 0 0 0 0 0 0 0 0 0 1.51394 7.09445 2.2002 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Phyllobacteriaceae|g__Mesorhizobium 0 0 0 0 0 0 0 0 0 0 1.51394 7.09445 2.2002 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhizobiales|f__Phyllobacteriaceae|g__Mesorhizobium|s__Mesorhizobium_unclassified 0 0 0 0 0 0 0 0 0 0 1.51394 7.09445 2.2002 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodospirillales 0 0 0 0 0 0 0 0.39046 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodospirillales|f__Acetobacteraceae 0 0 0 0 0 0 0 0.39046 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodospirillales|f__Acetobacteraceae|g__Roseomonas 0 0 0 0 0 0 0 0.39046 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Alphaproteobacteria|o__Rhodospirillales|f__Acetobacteraceae|g__Roseomonas|s__Roseomonas_unclassified 0 0 0 0 0 0 0 0.39046 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria 0 19.84701 19.07006 9.74394 7.49686 0 0 0.47032 38.38209 19.65962 43.14131 66.14575 4.69379 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales 0 19.84701 19.07006 9.74394 7.49686 0 0 0.47032 38.38209 19.65962 43.14131 66.14575 4.69379 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Alcaligenaceae 0 0 0 0 0 0 0 0 0 0 0 0 4.69379 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Alcaligenaceae|g__Pusillimonas 0 0 0 0 0 0 0 0 0 0 0 0 4.69379 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Alcaligenaceae|g__Pusillimonas|s__Pusillimonas_unclassified 0 0 0 0 0 0 0 0 0 0 0 0 4.69379 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae 0 0 0 0 0 0 0 0 38.38209 14.05459 43.14131 66.14575 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia 0 0 0 0 0 0 0 0 38.38209 10.13353 43.14131 66.14575 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Burkholderia|s__Burkholderia_unclassified 0 0 0 0 0 0 0 0 38.38209 10.13353 43.14131 66.14575 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Cupriavidus 0 0 0 0 0 0 0 0 0 3.92106 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiaceae|g__Cupriavidus|s__Cupriavidus_unclassified 0 0 0 0 0 0 0 0 0 3.92106 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname 0 19.84701 19.07006 9.74394 5.19824 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname|g__Thiomonas 0 19.84701 19.07006 9.74394 5.19824 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Burkholderiales_noname|g__Thiomonas|s__Thiomonas_unclassified 0 19.84701 19.07006 9.74394 5.19824 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae 0 0 0 0 2.29862 0 0 0 0 5.60503 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Polaromonas 0 0 0 0 1.91052 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Polaromonas|s__Polaromonas_unclassified 0 0 0 0 1.91052 0 0 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Variovorax 0 0 0 0 0.38809 0 0 0 0 5.60503 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Comamonadaceae|g__Variovorax|s__Variovorax_unclassified 0 0 0 0 0.38809 0 0 0 0 5.60503 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae 0 0 0 0 0 0 0 0.47032 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Massilia 0 0 0 0 0 0 0 0.47032 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Betaproteobacteria|o__Burkholderiales|f__Oxalobacteraceae|g__Massilia|s__Massilia_unclassified 0 0 0 0 0 0 0 0.47032 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria 0 0 0 0 0 0 0.62286 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Myxococcales 0 0 0 0 0 0 0.62286 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Myxococcales|f__Polyangiaceae 0 0 0 0 0 0 0.62286 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Myxococcales|f__Polyangiaceae|g__Sorangium 0 0 0 0 0 0 0.62286 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Myxococcales|f__Polyangiaceae|g__Sorangium|s__Sorangium_cellulosum 0 0 0 0 0 0 0.62286 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Deltaproteobacteria|o__Myxococcales|f__Polyangiaceae|g__Sorangium|s__Sorangium_cellulosum|t__Sorangium_cellulosum_unclassified 0 0 0 0 0 0 0.62286 0 0 0 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria 0 0 0 0 0 0 0 0 0 64.23605 0 0 14.03451 25.23957 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales 0 0 0 0 0 0 0 0 0 29.80229 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae 0 0 0 0 0 0 0 0 0 29.80229 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia 0 0 0 0 0 0 0 0 0 29.80229 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia|s__Serratia_marcescens 0 0 0 0 0 0 0 0 0 29.80229 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacteriales|f__Enterobacteriaceae|g__Serratia|s__Serratia_marcescens|t__Serratia_marcescens_unclassified 0 0 0 0 0 0 0 0 0 29.80229 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales 0 0 0 0 0 0 0 0 0 34.43376 0 0 14.03451 25.23957 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae 0 0 0 0 0 0 0 0 0 34.43376 0 0 14.03451 25.23957 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas 0 0 0 0 0 0 0 0 0 34.43376 0 0 14.03451 25.23957 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_putida 0 0 0 0 0 0 0 0 0 9.04737 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_putida|t__Pseudomonas_putida_unclassified 0 0 0 0 0 0 0 0 0 9.04737 0 0 0 0 0
+k__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Pseudomonas|s__Pseudomonas_unclassified 0 0 0 0 0 0 0 0 0 25.38639 0 0 14.03451 25.23957 0
diff --git a/example/fastexample.yaml b/example/fastexample.yaml
new file mode 100644
index 0000000..6c00d37
--- /dev/null
+++ b/example/fastexample.yaml
@@ -0,0 +1,63 @@
+# -*- mode: Yaml; -*-
+
+# ----------------------------------------------- #
+# Samples #
+# ----------------------------------------------- #
+
+Samples:
+ Skin:
+ SRS018978: #First skin sample name
+ Paired: SRS018978/fastexample_SRS018978.pair{Pair}.fastq
+ Singles: SRS018978/fastexample_SRS018978.singleton.fastq
+
+# ----------------------------------------------- #
+# Taxonomic profiling #
+# ----------------------------------------------- #
+
+Bowtie2:
+ --phred33: yes # Sets the option. Default.
+ --very-fast: yes
+
+# ----------------------------------------------- #
+# Statistical Analysis of the taxonomic profiles #
+# ----------------------------------------------- #
+
+Krona:
+ #run: no # Will not produce Krona visualization files when uncommented.
+ -a: no # Krona charts will require an internet connection to use Krona resources.
+
+
+Statax:
+ Skin_HMP:
+ taxlevels: g # Analyses run at the genus level only.
+ merge:
+ #- HMP_10.tsv # if you are using MetaPhlAn version 1
+ - HMPII_10.tsv # if you are using MetaPhlan version 2
+ doDiv:
+ --index: shannon
+ doBarplot:
+ --order: euclidean
+ doHeatmap:
+ doPcoa:
+ --distance: bray
+ doClust:
+ --method.dist: bray
+ --method.hclust: average
+ --nboot: 20
+
+
+Lefse:
+ run: yes
+ merge:
+ #- HMP_10.tsv # if you are using MetaPhlAn version 1
+ - HMPII_10.tsv # if you are using MetaPhlan version 2
+ Groups:
+ Skin:
+ - Skin_SRS018978
+ - skin-SRS019063
+ - skin-SRS046688
+ Stool:
+ - stool-SRS013800
+ - stool-SRS048870
+
+
diff --git a/example/pcoa_symbols_and_color.R b/example/pcoa_symbols_and_color.R
new file mode 100644
index 0000000..11352a9
--- /dev/null
+++ b/example/pcoa_symbols_and_color.R
@@ -0,0 +1,14 @@
+col <- c(rep('black', 2), # samples SRS018978 and SRS024655
+ rep('Grey50', 2), # mouth
+ rep('#72490d', 2), # nose
+ rep('#e8aa3b', 2), # skin
+ rep('#ff8752', 2), # stool
+ rep('#ef1818', 2)) # vagina
+
+bg <- c(rainbow(2), rep('transparent', 10))
+pch <- c(rep(21, 2), rep(22, 10))
+
+legend <- c("Skin SRS018978", "Skin SRS024655",
+ "HMP Mouth", "HMP Nose", "HMP Skin", "HMP Stool", "HMP Vagina")
+
+cex <- 2.5
diff --git a/example/tutorial_example.yaml b/example/tutorial_example.yaml
new file mode 100644
index 0000000..5aae371
--- /dev/null
+++ b/example/tutorial_example.yaml
@@ -0,0 +1,78 @@
+# -*- mode: Yaml; -*-
+
+# ----------------------------------------------- #
+# Samples #
+# ----------------------------------------------- #
+
+Samples:
+ Skin:
+ SRS018978: #First skin sample name
+ Paired: SRS018978/tutorial_example_SRS018978.pair{Pair}.fastq.gz
+ Singles: SRS018978/tutorial_example_SRS018978.singleton.fastq.gz
+
+ SRS024655: #Second skin sample name
+ Paired: SRS024655/tutorial_example_SRS024655.pair{Pair}.fastq.gz
+ Singles: SRS024655/tutorial_example_SRS024655.singleton.fastq.gz
+
+
+# ----------------------------------------------- #
+# Taxonomic profiling #
+# ----------------------------------------------- #
+
+Bowtie2:
+ --phred33: yes # Sets the option. Default
+
+Metaphlan:
+ #Pool: Skin
+ --ignore_eukaryotes: # comment to include eukaryotes (MetaPhlAn2 only)
+ --ignore_viruses: # comment to include viruses (MetaPhlAn2 only)
+
+
+# ----------------------------------------------- #
+# Statistical Analysis of the taxonomic profiles #
+# ----------------------------------------------- #
+
+Krona:
+ #run: no # will not produce Krona visualization files when uncommented.
+ #-a: no # If you uncomment, Krona charts will require an internet connection to use Krona resources.
+
+
+Statax:
+ Skin_only:
+ taxlevels: pcofgs
+ filterout: 1
+ doDiv:
+ --index: shannon
+ doBarplot:
+ doHeatmap:
+
+ Skin_HMP:
+ merge:
+ #- HMP_10.tsv # if you are using MetaPhlAn version 1
+ - HMPII_10.tsv # if you are using MetaPhlan version 2
+ doDiv:
+ doBarplot:
+ --order: euclidean
+ doHeatmap:
+ doPcoa:
+ --makefile: pcoa_symbols_and_color.R
+ doClust:
+ --nboot: 1000
+
+
+Lefse:
+ run: yes
+ merge:
+ #- HMP_10.tsv # if you are using MetaPhlAn version 1
+ - HMPII_10.tsv # if you are using MetaPhlan version 2
+ Groups:
+ Skin:
+ - Skin_SRS018978
+ - Skin_SRS024655
+ - skin-SRS019063
+ - skin-SRS046688
+ Stool:
+ - stool-SRS013800
+ - stool-SRS048870
+
+
diff --git a/inputlib.py b/inputlib.py
new file mode 100644
index 0000000..8ede186
--- /dev/null
+++ b/inputlib.py
@@ -0,0 +1,76 @@
+#!/usr/bin/env python
+
+import re
+import os
+import os.path
+from glob import glob
+from itertools import izip_longest
+
+from pypeline.common.makefile import MakefileError
+from pypeline.common.console import print_info
+
+
+_trimmed_types = ['Collapsed', 'Pair1', 'Pair2', 'Singles']
+
+# This is AdapterRemoval default output (see man AdapterRemoval).
+# If using Paleomix bam_pipeline, the files are gzipped/bzipped
+_reg_PE = {'Collapsed': re.compile(r'^.*\.collapsed(\.truncated|)(\.gz|\.bz2|)$'),
+ 'Pair1': re.compile(r'.*\.pair1\.truncated\.(gz|bz2)$'),
+ 'Pair2': re.compile(r'.*\.pair2\.truncated\.(gz|bz2)$'),
+ 'Singles': re.compile(r'.*\.singleton\.truncated\.(gz|bz2)$')}
+_reg_SE = re.compile(r'.*\.truncated\.(gz|bz2)$')
+
+
+class InputLibraryError(MakefileError):
+ """Raised if library does not meet requirements
+ (wrong path, wrong files, etc)"""
+
+
+def _fmt_info(path, files):
+ files_1, files_2 = zip(*files) or ([], [])
+ if any(files_2):
+ files_1 = [f.replace("pair1", "pair[12]") for f in files_1]
+ files = [f.replace(path+"/", "") for f in files_1]
+ return ("\n" + " "*16).join(files)
+
+
+def check_lib(path):
+ """Automatically find trimmed reads files in 'path'"""
+ if not os.path.isdir(path):
+ raise InputLibraryError("The specified library path is not a "
+ "regular existing directory:\n%s" %path)
+ path = os.path.abspath(path)
+ files = os.listdir(path)
+ lib = {k: [] for k in ('Collapsed', 'Paired', 'Singles')}
+
+ isPE = False
+
+ for root, dirs, files in os.walk(path):
+ tmp = {}
+ for k in _trimmed_types:
+ tmp[k] = [os.path.join(root, f) for f in files if _reg_PE[k].match(f)]
+
+ if not any(tmp.values()):
+ lib['Singles'] += [(os.path.join(root, f), None) for f in files if _reg_SE.match(f)]
+
+ else:
+ lib['Collapsed'] += [(x, None) for x in tmp['Collapsed']]
+ lib['Singles'] += [(x, None) for x in tmp['Singles']]
+ lib['Paired'] += zip(tmp['Pair1'], tmp['Pair2'])
+ isPE |= True
+
+ print_info("\nAuto-detect files in library folder: %s" % path)
+
+ if not isPE and len(lib['Singles']) > 0 :
+ lib.pop('Collapsed')
+ lib.pop('Paired')
+ elif not isPE:
+ raise InputLibraryError(" Found no pre-trimmed fastq files (expected "
+ "file names:\n default output of "
+ "AdapterRemoval/Paleomix)\n")
+
+ print_info(" %s detected." % (isPE*"PE" or "SE",))
+ for k,v in lib.iteritems():
+ print_info(" - {:<11} {}".format(k + " :", _fmt_info(path, v)))
+
+ return lib
diff --git a/makefile.py b/makefile.py
new file mode 100644
index 0000000..e44ad7b
--- /dev/null
+++ b/makefile.py
@@ -0,0 +1,417 @@
+#!/usr/bin/env python
+
+"""Function that reads one or more yaml makefiles and checks them"""
+
+
+import re
+import sys
+import copy
+import glob
+import string
+import os
+import os.path
+import subprocess
+
+from itertools import izip_longest
+from inputlib import check_lib, InputLibraryError
+
+from pypeline.common.console import print_warn, print_err
+from pypeline.common.makefile import \
+ MakefileError, \
+ read_makefile, \
+ IsBoolean, \
+ IsNone, \
+ IsInt, \
+ IsStr, \
+ StringIn, \
+ StringEndsWith, \
+ StringStartsWith,\
+ ValueIn, \
+ ValueGE, \
+ ValuesSubsetOf, \
+ IsDictOf, \
+ IsListOf, \
+ And, \
+ Or, \
+ Not, \
+ REQUIRED_VALUE
+
+
+def read_makefiles(filenames, config):
+ """metaBIT makefiles reader"""
+ makefiles = []
+ for filename in filenames:
+ # Check structure and apply defaults (if has default value)
+ # where no value specified
+ makefile = read_makefile(filename, _VALIDATION)
+ # Check that values are valid (path, programs, libraries)
+ makefiles.append(_check_update(makefile, config))
+ return makefiles
+
+
+def _alphanum_check(whitelist):
+ description = "characters a-z, A-Z, 0-9%s allowed"
+ description %= (", and %r" % whitelist,) if whitelist else ""
+
+ whitelist += string.ascii_letters + string.digits
+
+ return And(IsStr(), ValuesSubsetOf(whitelist, description=description))
+
+
+_VALID_NAME = And(_alphanum_check("._-"),
+ ValueGE(2, key=len,
+ description="at least two characters long"))
+
+_VALID_GROUP_NAME = And(_VALID_NAME, StringStartsWith('G_'))
+_VALID_SAMPLE_NAME = And(_VALID_NAME, Not(StringStartsWith('G_')))
+
+_VALID_LIB_NAME = And(_alphanum_check("._-\\&"),
+ ValueGE(2, key=len,
+ description="at least two characters long"))
+
+_TRIMMED_TYPES = set(("Collapsed", "Paired", "Singles"))
+
+_IS_LANE = IsDictOf(ValueIn(_TRIMMED_TYPES),
+ Or(IsStr, IsListOf(IsStr)))
+
+_IS_SAMPLE = {_VALID_SAMPLE_NAME: {
+ _VALID_LIB_NAME: Or(IsStr,
+ _IS_LANE,
+ default=REQUIRED_VALUE)
+ }
+ }
+
+_IS_SAMPLE[_VALID_GROUP_NAME] = _IS_SAMPLE
+
+
+_OPT_VALUE = Or(IsListOf(IsBoolean, IsInt, IsStr),
+ Or(IsNone, IsBoolean, IsInt, IsStr))
+_OPTIONS = { StringStartsWith("-"): _OPT_VALUE }
+
+# REQUIRED: root:Samples:Libname:path
+# and root:Bowtie2:References
+# The rest has defaults
+_VALIDATION = {
+ 'OutDir': IsStr,
+ 'keepfromPE': {
+ 'Collapsed': IsBoolean(default=True), # includes CollapsedTruncated
+ 'Paired': IsBoolean(default=True),
+ 'Singles': IsBoolean(default=True)
+ },
+ # Allow for *optional* extra levels of grouping, above the sample level
+ 'Samples': _IS_SAMPLE,
+ 'Bowtie2': {
+ '--no-discordant': IsBoolean(default=True),
+ StringStartsWith('-'): _OPT_VALUE
+ },
+ 'Metaphlan': {
+ 'Exclude': Or(IsStr, IsListOf(IsStr), default=[]),
+ 'Pool': Or(IsStr, IsListOf(IsStr), default=[]),
+ StringStartsWith('-'): _OPT_VALUE
+ },
+ 'run_from_table': IsStr,
+ 'Statax': {'rename_taxlevels': IsDictOf(
+ ValueIn(('k','p','c','o','f','g','s','t')),
+ IsStr),
+
+ # One subdictionary per run (useful when applying different options)
+ IsStr: {
+ 'merge': IsListOf(IsStr),
+ 'taxlevels': Or(IsStr, IsListOf(IsStr), default='pcofgs'),
+ 'filterout': IsInt(default=1),
+ ValueIn(('doDiv','doBarplot','doHeatmap',
+ 'doPcoa','doClust')): _OPTIONS
+ }
+ },
+ 'Krona': {'run': IsBoolean(default=True),
+ 'no_underscore': IsBoolean(default=True),
+ '-a': IsBoolean(default=True), # graph visible without internet.
+ StringStartsWith("-"): _OPT_VALUE
+ },
+ 'Lefse': {'run': IsBoolean(default=False),
+ 'merge': IsListOf(IsStr),
+ 'outdir': IsStr(default='lefse'),
+ 'format': ValueIn(("png", "pdf", "svg"), default="pdf"),
+ 'Groups': IsDictOf(IsStr,
+ Or(IsListOf(IsStr),
+ IsDictOf(IsStr, IsListOf(IsStr)))),
+ 'format_input': {"-o": IsInt(default=1000000),
+ StringStartsWith("-"): _OPT_VALUE
+ },
+ 'run_lefse': _OPTIONS,
+ 'plot_res': _OPTIONS,
+ 'plot_cladogram': _OPTIONS,
+ 'plot_features': _OPTIONS
+ }
+ }
+
+
+def _update_outdir(makefile, config, filename):
+ outdir = makefile.get('OutDir',
+ "out_" + os.path.splitext(os.path.basename(filename))[0])
+ outdir = config.destination or outdir
+ outdir = os.path.split(outdir.rstrip('/'))
+ if not outdir[0]:
+ outdir = os.path.join(*outdir)
+ else:
+ if not os.path.isdir(outdir[0]):
+ raise MakefileError(("The leading path to output directory is not"
+ " an existing directory:\n%s") % outdir[0])
+ else:
+ outdir = os.path.join(*outdir)
+
+ makefile['OutDir'] = outdir
+
+
+def _get_lefse_groups(samples, key=None, sep='_'):
+ """Recursive function.
+ It gets the tree of nested groups of samples,
+ while in the same time flattening the dictionary named 'samples'.
+ Since this structure might not be the most practical for the user,
+ the groups for the LEfSe can also be given as a list in the Lefse:Groups field"""
+
+ subsamples = samples.get(key, samples)
+ if all(key.startswith('G_') for key in subsamples.keys()):
+ groups = {}
+ for key in subsamples.keys():
+ groups[key.replace('G_', '')] = _get_lefse_groups(subsamples, key)
+ subsamples.update(subsamples.pop(key))
+ else:
+ groups = []
+ for key, subsub in subsamples.iteritems(): #subsub is supposed to be a lib
+ # join sample _ lib with an underscore
+ groups += [key + sep + subkey for subkey in sorted(subsub.keys())]
+
+ return groups
+
+
+def _check_lefse_groups(makefile, grouplist, sep = "_"):
+ wrong = []
+ for group_item in grouplist:
+ sample_lib = group_item.split(sep)
+ if sample_lib[0] not in makefile['Samples'] or \
+ (len(sample_lib)>1 and sample_lib[1] not in makefile['Samples'][sample_lib[0]]):
+ wrong.append("Group absent from samples: %s" % group_item)
+
+ return "\n".join(wrong) + "\n" if wrong else ""
+
+
+def _update_lefse_groups(makefile):
+ lefse_groups = _get_lefse_groups(makefile['Samples'])
+
+ if not makefile['Lefse'].get('Groups'):
+ makefile['Lefse']['Groups'] = lefse_groups
+ elif isinstance(lefse_groups, dict):
+ raise MakefileError(("You cannot give Lefse groups in the 'Lefse:Groups' "
+ "entry and in the 'Samples' entry."))
+ else:
+ pass
+ # check that the groups correspond to the samples and libs
+ #error_msg = ''
+ #for G_key, G_val in makefile['Lefse']['Groups'].iteritems():
+ # if isinstance(G_val, dict):
+ # for subG_key, subG_val in G_val.iteritems():
+ # error_msg += _check_lefse_groups(makefile, subG_val)
+ # else:
+ # error_msg += _check_lefse_groups(makefile, G_val)
+
+ #if error_msg:
+ # raise MakefileError("Wrong Lefse groups:\n" + error_msg)
+
+
+
+def _update_libs(makefile):
+ """goes into libpath, find the files and characterizes the lib as PE or
+ SE"""
+
+ # check that files are not included multiple times
+ file_set = set()
+ for Samplename in makefile['Samples'].keys():
+ for Libname in makefile['Samples'][Samplename].keys():
+ Lib = makefile['Samples'][Samplename].pop(Libname)
+
+ if isinstance(Lib, str): # i.e a folder is given.
+ if '\\' in Libname:
+ # check if user is already listing content of directory using '*'
+ Lib = Lib.rstrip('/')
+ if '*' in os.path.basename(Lib) or \
+ '*' in os.path.dirname(Lib):
+ # append '/' to get only directories
+ Lib = Lib + '/'
+ # if no wildcard, you MUST add it for glob to list content or directory
+ else:
+ raise MakefileError("If you specify several libraries, "
+ "please use wildcards '*' in path.\n"
+ "Wrong path: %s\nSuggestion: %s" %( \
+ Lib, Lib + '/*/'))
+
+ Lib_list = glob.glob(Lib)
+ regex = Lib.replace('*', '(.*)')
+ regex = re.compile(regex)
+
+ if Libname == '\\&':
+ Libname_list = ['_'.join(regex.search(elem).groups()) \
+ for elem in Lib_list]
+ else:
+ # then Libname contains \1 or \2, etc, so use it as a pattern:
+ # replace \1 by first match or '*', \2 by second, etc.
+ Libname_list = [regex.sub(Libname, elem) for elem in Lib_list]
+
+ nb_lib_found = 0
+ for (newname, new) in zip(Libname_list, Lib_list):
+ try:
+ inputlib = check_lib(new)
+
+ if "Collapsed" in inputlib.keys() or \
+ "Paired" in inputlib.keys():
+ for trimmed_type in inputlib.keys():
+ if not makefile['keepfromPE'][trimmed_type]:
+ inputlib.pop(trimmed_type)
+ makefile['Samples'][Samplename][newname] = inputlib
+
+ nb_lib_found += 1
+
+ except InputLibraryError as e:
+ print_warn(e)
+
+ if not nb_lib_found:
+ raise MakefileError("The given path does not contain "
+ "any library:\n%s" %Lib + "\n"
+ "Expected files (default output of AdapterRemoval):\n"
+ "SE: *.truncated [.gz|.bz2]\n"
+ "PE: *.collapsed [.gz|.bz2]\n"
+ " *.collapsed.truncated [.gz|.bz2]\n"
+ " *.pair1.truncated [.gz|.bz2]\n"
+ " *.pair2.truncated [.gz|.bz2]\n"
+ " *.singleton.truncated [.gz|.bz2]\n"
+ "If other names are used, please specify it "
+ "explicitly in the yaml using the following "
+ "structure:\n"
+ "Libname:\n"
+ " Collapsed: path/to/collapsed\n"
+ " Paired: path/to/pair{Pair}\n"
+ " Singles: path/to/singleton\n"
+ "# use 'Singles' key for SE libraries\n")
+ else:
+ inputlib = check_lib(Lib)
+
+ if "Collapsed" in inputlib.keys() or "Paired" in inputlib.keys():
+ for trimmed_type in inputlib.keys():
+ if not makefile['keepfromPE'][trimmed_type]:
+ inputlib.pop(trimmed_type)
+
+ makefile['Samples'][Samplename][Libname] = inputlib
+
+ elif isinstance(Lib, dict):
+ if set(Lib.keys()) <= _TRIMMED_TYPES:
+ newlib = {}
+ for trimmed_type, values in Lib.iteritems():
+ files = []
+ if isinstance(values, str):
+ values = [values]
+ for f in values:
+ if trimmed_type == 'Paired':
+ files += zip(sorted(glob.glob(f.format(Pair=1))),
+ sorted(glob.glob(f.format(Pair=2))))
+ else:
+ files += [(x, None) for x in glob.glob(f)]
+
+ newlib[trimmed_type] = files
+
+ makefile['Samples'][Samplename][Libname] = newlib
+
+ for libname, lib in makefile['Samples'][Samplename].items():
+ for trimtype, file_list in lib.iteritems():
+ try:
+ file_list, _ = zip(*file_list)
+ except ValueError as e:
+ raise MakefileError("File not found for sample: %s %s %s" % (\
+ Samplename, libname, trimtype))
+ if file_set.isdisjoint(file_list):
+ file_set |= set(file_list)
+ else:
+ same_files = " ".join(file_set.intersection(file_list))
+ print_err("Identical files specified in 2 different libraries:\n"
+ "%s\n"
+ "Library %s will be ignored.\n" %(same_files,
+ libname))
+ makefile['Samples'][Samplename].pop(libname)
+ break
+
+
+def _update_pools(makefile):
+ """Reformat the 'Exclude' and 'Pool' content of the makefile"""
+ excl = makefile["Metaphlan"].pop("Exclude")
+ if isinstance(excl, str):
+ excl = [excl]
+ for Sample_Lib in excl:
+ Sample, Lib = Sample_Lib.split(":")
+ if Sample not in makefile['Samples'].keys():
+ raise MakefileError("The specified sample '%s' to exclude does not "
+ "exist in your input samples: %s" %(Sample,
+ " ".join(makefile['Samples'].keys())))
+ elif Lib not in makefile['Samples'][Sample].keys():
+ raise MakefileError("In sample '%s': the specified library '%s' to"
+ " exclude does not exist in your sample: %s" \
+ %(Sample, Lib,
+ " ".join(makefile['Samples'][Sample].keys())))
+ makefile["Metaphlan"]["Exclude"] = excl
+
+ pools = makefile["Metaphlan"].pop("Pool")
+ if isinstance(pools, str):
+ if pools=='*':
+ pools = makefile['Samples'].keys()
+ else:
+ pools = [pools]
+
+ for pool in pools:
+ if pool not in makefile['Samples'].keys():
+ raise MakefileError("The specified sample '%s' to pool does not "
+ "exist in your input samples: %s" %(pool,
+ " ".join(makefile['Samples'].keys())))
+
+ makefile["Metaphlan"]["Pool"] = pools
+
+
+def _update_statax(makefile):
+ default_taxlevels = {'k': 'Kingdoms',
+ 'p': 'Phyla',
+ 'c': 'Classes',
+ 'o': 'Orders',
+ 'f': 'Families',
+ 'g': 'Genera',
+ 's': 'Species',
+ 't': 'Strains'}
+ rename_taxlevels = makefile['Statax'].get('rename_taxlevels', {})
+ default_taxlevels.update(rename_taxlevels)
+ makefile['Statax']['rename_taxlevels'] = default_taxlevels
+
+
+def _update_metaphlan_options(makefile, config):
+ """Applies metaphlan2 options if required"""
+ metaphlan_script = glob.glob(os.path.join(config.metaphlan_path,"metaphlan*.py"))[0]
+ if metaphlan_script.endswith("metaphlan2.py"):
+ config.jre_options.append('-XX:MaxPermSize=1g')
+
+ makefile['Metaphlan']['--mpa_pkl'] = os.path.join(config.metaphlan_path,
+ "db_v20/mpa_v20_m200.pkl")
+ makefile['Metaphlan']['--sample_id_key'] = 'ID' # required for merge_table
+
+
+def _check_update(makefile, config):
+ """Check values in makefile (path, file) and """
+ makefile = copy.deepcopy(makefile)
+ filename = makefile["Statistics"]["Filename"]
+ makefile = makefile.pop("Makefile")
+
+ _update_outdir(makefile, config, filename)
+ if not makefile.get('run_from_table'):
+ if makefile['Lefse']['run']:
+ _update_lefse_groups(makefile)
+ _update_libs(makefile)
+ _update_pools(makefile)
+ _update_metaphlan_options(makefile, config)
+
+ _update_statax(makefile)
+ return makefile
+
diff --git a/metaBIT.py b/metaBIT.py
new file mode 100755
index 0000000..ca8f9ef
--- /dev/null
+++ b/metaBIT.py
@@ -0,0 +1,116 @@
+#!/usr/bin/env python
+
+#from __future__ import print_function
+
+"""
+Main file performing the metaBIT pipeline steps.
+"""
+
+
+import sys
+import time
+import pysam
+import logging
+import os.path
+import tempfile
+import subprocess
+
+
+# paleomix pypeline modules
+import pypeline.yaml
+import pypeline.logger
+from pypeline.pipeline import Pypeline
+from pypeline.common.console import print_err, print_info
+
+
+# metaBIT modules
+import parts
+from makefile import MakefileError, read_makefiles
+from config import parse_config, __version__
+
+
+_tools = {"filterMetaphlan": ["nodes", "tools", "filterMetaphlan.py"],
+ "get_stats": ["nodes", "tools", "get_stats.py"],
+ "metaphlan2krona": ["nodes", "tools", "metaphlan2krona_2.py"],
+ "reformat_taxa": ["nodes", "tools", "reformat_taxa.py"],
+ "doPcoa": ["nodes", "tools", "statax_Rmodule", "doPcoa.R"],
+ "doClust": ["nodes", "tools", "statax_Rmodule", "doClust.R"],
+ "doDiv": ["nodes", "tools", "statax_Rmodule", "doDiv.R"],
+ "doHeatmap": ["nodes", "tools", "statax_Rmodule", "doHeatmap.R"]}
+
+
+def run(config, args):
+ logfile_template = time.strftime("metaBIT.%Y%m%d_%H%M%S_%%02i.log")
+ pypeline.logger.initialize(config, logfile_template)
+ logger = logging.getLogger(__name__)
+ try:
+ logger.info("Building metaBIT pipeline ...")
+ makefiles = read_makefiles(args, config)
+ except (MakefileError, pypeline.yaml.YAMLError, IOError), error:
+ print_err("Error reading makefiles:",
+ "\n %s:\n " % (error.__class__.__name__,),
+ "\n ".join(str(error).split("\n")),
+ file=sys.stderr)
+ return 1
+
+ # setups for the logfile
+ pipeline = Pypeline(config=config)
+
+ for makefile in makefiles:
+ if not makefile.get('run_from_table'):
+ rmdup_nodes, \
+ metaphlan_nodes, \
+ summary_node = parts.profiling(makefile, config)
+
+ pipeline.add_nodes(rmdup_nodes, summary_node)
+ pipeline.add_nodes(parts.analyzing(makefile, config, metaphlan_nodes))
+ else:
+ pipeline.add_nodes(parts.analyzing(makefile, config))
+
+ if config.list_output_files:
+ logger.info("Printing output files ...")
+ pipeline.print_output_files()
+ return 0
+ elif config.list_executables:
+ logger.info("Printing required executables ...")
+ pipeline.print_required_executables()
+ return 0
+
+ logger.info("MetaBIT running now!")
+
+ if not pipeline.run(dry_run=config.dry_run,
+ max_running=config.max_threads,
+ progress_ui=config.progress_ui):
+ return 1
+
+ return 0
+
+
+def _print_usage(script):
+ basename = os.path.basename(script)
+
+ print_info("METAGENOMICS Pipeline %s\n" % (__version__,))
+ print_info("Usage:")
+ print_info(" ./%s makefile.yaml" % basename)
+
+
+def main(argv):
+
+ arg1 = sys.argv[1]
+
+ if arg1 in _tools:
+ path = os.path.dirname(os.path.realpath(__file__))
+ command = os.path.join( *[path] + _tools[arg1])
+ return subprocess.call([command] + sys.argv[2:])
+
+ config, args = parse_config(argv[1:])
+ if not args:
+ _print_usage(argv[0])
+ print_err("\nPlease specify one makefile!\n")
+ return 1
+
+ return run(config, args)
+
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv))
diff --git a/nodes/__init__.py b/nodes/__init__.py
new file mode 100644
index 0000000..cf529d7
--- /dev/null
+++ b/nodes/__init__.py
@@ -0,0 +1,2 @@
+#!/usr/bin/env python
+
diff --git a/nodes/bam_rmdup.py b/nodes/bam_rmdup.py
new file mode 100644
index 0000000..7fdb804
--- /dev/null
+++ b/nodes/bam_rmdup.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python
+
+import os.path
+from pypeline.node import Node, NodeError
+import tools.rmdup_collapsed as rmdup_collapsed
+
+
+class FilterCollapsedBAMNode(Node):
+ """Remove PCR duplicates from sorted bam file (collapsed reads only)"""
+
+ def __init__(self, config, input_bams, output_bam, keep_dupes=False,
+ dependencies=()):
+
+ if isinstance(input_bams, list) or isinstance(input_bams, tuple):
+ if len(input_bams) > 1:
+ raise NodeError("FilterCollapsedBAMNode cannot take multiple files in input")
+ else:
+ input_bam = input_bams[0]
+
+ self.description = "<Remove duplicates from *collapsed* reads:\n" \
+ " %s --> %s>" % (os.path.basename(input_bam),
+ os.path.basename(output_bam))
+ self.keep_dupes = keep_dupes
+ Node.__init__(self, description=self.description,
+ input_files = input_bam,
+ output_files = output_bam,
+ dependencies = dependencies)
+
+ def _run(self, _config, _temp):
+ """Overrides the _run function of the Node class"""
+
+ args = [list(self.input_files)[0], list(self.output_files)[0]]
+
+ if not self.keep_dupes:
+ args.append("--remove-duplicates")
+
+ return rmdup_collapsed.main(args)
+
diff --git a/nodes/bowtie2_simple.py b/nodes/bowtie2_simple.py
new file mode 100644
index 0000000..c63c696
--- /dev/null
+++ b/nodes/bowtie2_simple.py
@@ -0,0 +1,99 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+
+from pypeline.node import CommandNode, NodeError
+from pypeline.atomiccmd.builder import \
+ AtomicCmdBuilder, \
+ use_customizable_cli_parameters, \
+ create_customizable_cli_parameters
+from pypeline.nodes.bwa import \
+ _get_node_description, \
+ _get_max_threads
+
+import pypeline.common.versions as versions
+
+
+BOWTIE2_VERSION = versions.Requirement(call = ("bowtie2", "--version"),
+ search = r"version (\d+)\.(\d+)\.(\d+)",
+ checks = versions.GE(2, 1, 0))
+
+
+class Bowtie2Node(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_files_1, input_files_2, output_file,
+ reference, prefix, log_file=None, threads = 2, dependencies = ()):
+
+ aln = _bowtie2_template(("bowtie2",), prefix,
+ CHECK_VERSION = BOWTIE2_VERSION)
+ aln.set_option("-x", prefix)
+
+ aln.set_option("-S", "%(OUT_SAM)s")
+ aln.set_kwargs(OUT_SAM = output_file)
+ if log_file:
+ aln.set_kwargs(OUT_STDERR = log_file)
+
+ if input_files_1 and not input_files_2:
+ aln.add_multiple_options("-U", input_files_1, template="IN_FILE_1_%02i")
+ elif input_files_1 and input_files_2:
+ aln.add_multiple_options("-1", input_files_1, template="IN_FILE_1_%02i")
+ aln.add_multiple_options("-2", input_files_2, template="IN_FILE_2_%02i")
+ else:
+ raise NodeError("Input 1, OR both input 1 and input 2 must be specified for Bowtie2 node")
+
+ max_threads = _get_max_threads(reference, threads)
+ aln.set_option("--threads", max_threads)
+
+ return {"commands" : aln,
+ "threads" : max_threads,
+ "dependencies" : dependencies}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ command = parameters.commands.finalize()
+
+ algorithm = "Pairs" if parameters.input_files_2 else "Singles"
+ description = _get_node_description(name = "Bowtie2",
+ algorithm = algorithm,
+ input_files_1 = parameters.input_files_1,
+ input_files_2 = parameters.input_files_2,
+ prefix = parameters.prefix,
+ threads = parameters.threads)
+
+ CommandNode.__init__(self,
+ command = command,
+ description = description,
+ threads = parameters.threads,
+ dependencies = parameters.dependencies)
+
+
+def _bowtie2_template(call, prefix, iotype="IN", **kwargs):
+ params = AtomicCmdBuilder(call, **kwargs)
+ for postfix in ("1.bt2", "2.bt2", "3.bt2", "4.bt2", "rev.1.bt2", "rev.2.bt2"):
+ key = "%s_PREFIX_%s" % (iotype, postfix.upper())
+ params.set_kwargs(**{key : (prefix + "." + postfix)})
+
+ return params
+
+
diff --git a/nodes/execute.py b/nodes/execute.py
new file mode 100644
index 0000000..bc85465
--- /dev/null
+++ b/nodes/execute.py
@@ -0,0 +1,132 @@
+#!/usr/bin/env python
+
+
+import os.path
+import importlib
+
+
+from pypeline.node import Node, CommandNode
+from pypeline.atomiccmd.command import AtomicCmd
+from pypeline.atomiccmd.builder import AtomicCmdBuilder, \
+ use_customizable_cli_parameters, \
+ create_customizable_cli_parameters
+from pypeline.common.fileutils import describe_files, move_file
+from pypeline.common.utilities import safe_coerce_to_tuple
+
+class SimpleExecNode(CommandNode):
+ """Basic CommandNode to execute command-line scripts"""
+ def __init__(self, executable, input_file, output_file, options={},
+ description=None, subnodes=(), dependencies=()):
+
+ cmd = AtomicCmdBuilder([executable, "%(IN_FILE)s", "%(OUT_FILE)s"],
+ IN_FILE = input_file,
+ OUT_FILE = output_file)
+
+ for opt, value in options.iteritems():
+ cmd.set_option(opt, value)
+
+ if description==None:
+ description = "<%r : %r -> %r>" % (os.path.basename(executable),
+ input_file, output_file)
+
+ CommandNode.__init__(self,
+ command = cmd.finalize(),
+ description = description,
+ subnodes = subnodes,
+ dependencies = dependencies)
+
+class ExecNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, call, description=None, threads=1, subnodes=(),
+ dependencies=(), builder_kwargs={}):
+
+ if not description:
+ call = safe_coerce_to_tuple(call)
+ description = "<%r>" % " ".join(call)
+
+ cmd = AtomicCmdBuilder(call, **builder_kwargs)
+
+ return {"command": cmd,
+ "description": description}
+
+ @use_customizable_cli_parameters
+ def __init__(self, params):
+ CommandNode.__init__(self,
+ params.command.finalize(),
+ params.description,
+ params.threads,
+ params.subnodes,
+ params.dependencies
+ )
+
+
+class ExecModuleNode(Node):
+ """run a python function as a Node"""
+ def __init__(self, module, function, input_files, output_files,
+ dependencies=(), description=None,
+ function_in_args="input_files",
+ function_out_args="output_files",
+ function_out_tmp=None,
+ **function_kwargs):
+ self.module = module
+ self.function = function
+ self.function_in_args = function_in_args
+ self.function_out_args = function_out_args
+ self.function_kwargs = function_kwargs
+ self.function_out_tmp = function_out_tmp #args that must redirect to tmp dir
+ # typically output directories
+
+ if not description:
+ description = module + '.' + function
+
+ description = "<%s: %s -> %s>" %(description,
+ describe_files(input_files),
+ describe_files(output_files))
+
+ Node.__init__(self,
+ description = description,
+ input_files = input_files,
+ output_files = output_files,
+ dependencies=dependencies)
+
+ def _run(self, config, temp):
+ module = importlib.import_module(self.module)
+ func = getattr(module, self.function)
+
+ input_files = list(self.input_files)
+ output_files = [os.path.join(temp, os.path.basename(f)) for f in list(self.output_files)]
+ # resolve conflict in case 'input_files' is also an argument for the function
+ #if "input_files" in func.func_code.co_varnames:
+ # self.function_kwargs.update({"input_files": input_files})
+ if self.function_in_args:
+ if isinstance(self.function_in_args, list):
+ for in_arg, in_file in zip(self.function_in_args, input_files):
+ self.function_kwargs.update({in_arg: in_file})
+ else:
+ self.function_kwargs.update({self.function_in_args: input_files})
+
+ #if "output_files" in func.func_code.co_varnames:
+ # self.function_kwargs.update({"output_files": output_files})
+ if self.function_out_args:
+ if isinstance(self.function_out_args, list):
+ for out_arg, out_file in zip(self.function_out_args, output_files):
+ self.function_kwargs.update({out_arg: out_file})
+ else:
+ self.function_kwargs.update({self.function_out_args: output_files})
+
+ if self.function_out_tmp:
+ if isinstance(self.function_out_tmp, str):
+ self.function_out_tmp = [self.function_out_tmp]
+ for out_tmp in self.function_out_tmp:
+ self.function_kwargs[out_tmp] = os.path.join(temp,
+ os.path.basename(self.function_kwargs[out_tmp]))
+
+ func(**self.function_kwargs)
+
+
+ def _teardown(self, _config, _temp):
+ expected_files = [os.path.join(_temp, os.path.basename(f)) for f in \
+ list(self.output_files)]
+ self._check_for_missing_files(expected_files, "output")
+ for tmp_f, commited_f in zip(expected_files, list(self.output_files)):
+ move_file(tmp_f, commited_f)
diff --git a/nodes/metaphlan.py b/nodes/metaphlan.py
new file mode 100644
index 0000000..fa5c554
--- /dev/null
+++ b/nodes/metaphlan.py
@@ -0,0 +1,187 @@
+#!/usr/bin/env python
+
+import pysam
+import os.path
+
+from itertools import izip, izip_longest
+import pypeline.common.fileutils as fileutils
+
+from pypeline.common.utilities import safe_coerce_to_tuple
+from pypeline.node import Node, CommandNode, NodeError
+from pypeline.atomiccmd.builder import AtomicCmdBuilder, \
+ create_customizable_cli_parameters, \
+ use_customizable_cli_parameters
+
+from tools.reformat_taxa import merge_tables
+
+_tmp_inputfile = "tmp_bowtie2out.tsv"
+
+
+class MetaphlanNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, metaphlan, input_files, output_file, threads=1,
+ dependencies=[], ID = ''):
+
+ input_files = safe_coerce_to_tuple(input_files)
+ input_files = list(input_files)
+
+ call = [metaphlan,
+ "--nproc", threads,
+ "--input_type", "bowtie2out",
+ "%(TEMP_OUT_FILE)s", "%(OUT_FILE)s"]
+
+ cmd = AtomicCmdBuilder(call,
+ TEMP_OUT_FILE = _tmp_inputfile,
+ OUT_FILE = output_file)
+
+ cmd.set_kwargs(**{"IN_FILE_%02i" %(i+1,): infile \
+ for i,infile in enumerate(input_files)})
+
+ return {"command": cmd}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+
+ self.output_file = parameters.output_file
+
+ if not parameters.ID:
+ self.ID = os.path.dirname( \
+ parameters.output_file).replace("/", "_") or \
+ os.path.splitext(parameters.output_file)[0]
+ else:
+ self.ID = parameters.ID
+
+ basenames = [os.path.basename(f) for f in parameters.input_files]
+
+ desc = "<MetaPhlan: %r: %s -> %r>" %(self.ID,
+ "\n".join(parameters.input_files),
+ parameters.output_file)
+ CommandNode.__init__(self, parameters.command.finalize(),
+ description=desc,
+ threads=parameters.threads,
+ dependencies=parameters.dependencies)
+
+
+ def _setup(self, _config, _temp):
+ """Create a temporary file of the bowtie2out format from the input
+ BAMs (merge if several):
+ bowtie2out is the format returned by metaphlan when only running
+ bowtie2. These are the 1st and 3d columns of the SAM returned by
+ bowtie2 (QNAME and RNAME). Format required when using
+ 'metaphlan --input_type bowtie2out' """
+ CommandNode._setup(self, _config, _temp)
+
+ # Additional step: create the temporary "bowtie2out" file
+ input_files = list(self.input_files)
+ output_file = os.path.join(_temp, _tmp_inputfile)
+
+ with open(output_file, 'w') as OUT_BOWTIE:
+ for infile in input_files:
+ with pysam.AlignmentFile(infile, 'rb') as IN_BAM:
+ references = IN_BAM.references
+ for read in IN_BAM:
+ OUT_BOWTIE.write("%s\t%s\n" %(read.query_name,
+ references[read.tid]))
+
+ CommandNode._check_for_missing_files(self, output_file, "Temporary input file")
+
+
+class MergeTablesNode(Node):
+ def __init__(self, output_file, samplefiles, dependencies = (), **merge_opts):
+ self.samplefiles = samplefiles
+ self.output_file = output_file
+ self.merge_opts = merge_opts
+
+ input_files = [value[0] for value in samplefiles]
+
+ desc = "<merge metaphlan tables: %s -> %r>" %(("\n"+" "*25).join(input_files),
+ os.path.basename(output_file))
+
+ Node.__init__(self,
+ input_files = input_files,
+ output_files = output_file,
+ description = desc,
+ dependencies = dependencies)
+
+ def _run(self, _config, _temp):
+ output_file, = self.output_files
+ output_file = os.path.join(_temp, os.path.basename(output_file))
+ merge_tables(output_file, self.samplefiles, **self.merge_opts)
+
+ def _teardown(self, _config, _temp):
+ expected_files = [os.path.join(_temp, os.path.basename(f)) for f in \
+ list(self.output_files)]
+ self._check_for_missing_files(expected_files, "output")
+ for tmp_f, commited_f in zip(expected_files, list(self.output_files)):
+ fileutils.move_file(tmp_f, commited_f)
+
+
+class Metaphlan2LefseNode(Node):
+ def __init__(self, input_file, output_file, sep='_', groups=None, dependencies=()):
+ self.sep = sep
+ if groups:
+ self.groups = groups
+ else:
+ raise NodeError("No groups given to the LEfSe input, the LEfSe "
+ "cannot be run.")
+
+ desc = "<Specify groups of samples in the merged metaphlan table>"
+ Node.__init__(self, input_files = input_file,
+ output_files = output_file,
+ description = desc,
+ dependencies = dependencies)
+
+ def _run(self, _config, _temp):
+
+ input_file, = self.input_files
+ output_file, = self.output_files
+ output_file = os.path.join(_temp, os.path.basename(output_file))
+
+ with open(input_file) as IN:
+ ID_line = IN.readline()
+ IDs = ID_line.rstrip().split("\t")
+ # Warning: the user should preferably not use underscores in sample names
+ #sample_names = [ID.split(self.sep)[0] for ID in IDs]
+
+ order = [0] #the first column is for the row names
+ allgroups = []
+ for groups, samples in iterate_tree(self.groups):
+ for s in samples:
+ try:
+ allgroups.append(groups)
+ order.append(IDs.index(s))
+ except ValueError as e: # when sample name not in the IDs
+ raise NodeError(e.message + \
+ "\nList of sample names: %s" % " ".join(IDs))
+
+ with open(output_file, 'w') as OUT:
+ grouplevel = "class"
+ for groupline in izip_longest(*allgroups, fillvalue=''):
+ OUT.write(grouplevel + "\t" + "\t".join(groupline) + "\n")
+ grouplevel = "sub" + grouplevel
+
+ OUT.write("\t".join(IDs[i] for i in order) + "\n")
+
+ for line in IN:
+ line = line.rstrip().split("\t")
+ OUT.write("\t".join(line[i] for i in order) + "\n")
+
+
+ def _teardown(self, _config, _temp):
+ expected_files = [os.path.join(_temp, os.path.basename(f)) for f in \
+ list(self.output_files)]
+ self._check_for_missing_files(expected_files, "output")
+ for tmp_f, commited_f in zip(expected_files, list(self.output_files)):
+ fileutils.move_file(tmp_f, commited_f)
+
+
+def iterate_tree(tree, path=()):
+ """tree is a nested dictionary. This function creates an iterator
+ yielding the deepest elements of the tree with the corresponding path"""
+ if isinstance(tree, dict):
+ for key, value in tree.iteritems():
+ for elem in iterate_tree(value, path + (key,)):
+ yield elem
+ else:
+ yield path, tree
diff --git a/nodes/picard_simple.py b/nodes/picard_simple.py
new file mode 100644
index 0000000..8a6d419
--- /dev/null
+++ b/nodes/picard_simple.py
@@ -0,0 +1,121 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+# Slightly modified version of Mikkel Schubert's picard node
+
+
+import os
+import getpass
+
+from pypeline.node import CommandNode
+from pypeline.atomiccmd.builder import \
+ AtomicJavaCmdBuilder, \
+ create_customizable_cli_parameters, \
+ use_customizable_cli_parameters
+from pypeline.common.fileutils import \
+ swap_ext, \
+ try_rmtree,\
+ try_remove, \
+ reroot_path, \
+ describe_files
+from pypeline.common.utilities import \
+ safe_coerce_to_tuple
+import pypeline.common.versions as versions
+
+
+def _picard_version(config, jar_file):
+ if jar_file not in _PICARD_VERSION_CACHE:
+ params = AtomicJavaCmdBuilder(jar_file,
+ temp_root=config.temp_root,
+ jre_options=config.jre_options)
+ params.add_value("--version")
+
+ name = "Picard " + os.path.basename(jar_file)
+ requirement = versions.Requirement(call=params.finalized_call,
+ name=name,
+ search=r"^(\d+)\.(\d+)",
+ checks=versions.GE(1, 82))
+ _PICARD_VERSION_CACHE[jar_file] = requirement
+ return _PICARD_VERSION_CACHE[jar_file]
+_PICARD_VERSION_CACHE = {}
+
+
+class PicardNode(CommandNode):
+ """Base class for nodes using Picard Tools; adds an additional cleanup
+ step, in order to allow the jars to be run using the same temporary folder
+ as any other commands associated with the node. This is necessary as some
+ Picard tools create a large number of temporary files, leading to potential
+ performance issues if these are located in the same folder.
+ """
+
+ def _teardown(self, config, temp):
+ # Picard creates a folder named after the user in the temp-root
+ try_rmtree(os.path.join(temp, getpass.getuser()))
+ # Some JREs may create a folder for temporary performance counters
+ try_rmtree(os.path.join(temp, "hsperfdata_" + getpass.getuser()))
+
+ CommandNode._teardown(self, config, temp)
+
+
+class MarkDuplicatesNode(PicardNode):
+ @create_customizable_cli_parameters
+ def customize(cls, config, input_bams, output_bam, output_metrics=None,
+ keep_dupes=False, dependencies=()):
+ jar_file = os.path.join(config.jar_root, "MarkDuplicates.jar")
+ params = AtomicJavaCmdBuilder(jar_file, jre_options=config.jre_options)
+
+ input_bam = safe_coerce_to_tuple(input_bams)[0]
+ # Create .bai index, since it is required by a lot of other programs
+ #params.set_option("CREATE_INDEX", "True", sep="=")
+
+ params.set_option("OUTPUT", "%(OUT_BAM)s", sep="=")
+ params.set_option("METRICS_FILE", "%(OUT_METRICS)s", sep="=")
+ #params.add_multiple_options("I", input_bams, sep="=")
+ params.set_option("I", "%(IN_BAM)s", sep="=")
+
+ if not keep_dupes:
+ # Remove duplicates from output by default to save disk-space
+ params.set_option("REMOVE_DUPLICATES", "True",
+ sep="=", fixed=False)
+
+ output_metrics = output_metrics or swap_ext(output_bam, ".metrics")
+ params.set_kwargs(IN_BAM=input_bam,
+ OUT_BAM=output_bam,
+ # OUT_BAI=swap_ext(output_bam, ".bai"),
+ OUT_METRICS=output_metrics,
+ CHECK_JAR=_picard_version(config, jar_file))
+
+ return {"command": params,
+ "dependencies": dependencies,
+ "input_bam": input_bam}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ description = "<MarkDuplicates: %s>" \
+ % os.path.basename(parameters.input_bam)
+ #% (describe_files(parameters.input_bams),)
+ PicardNode.__init__(self,
+ command=parameters.command.finalize(),
+ description=description,
+ dependencies=parameters.dependencies)
+
+
diff --git a/nodes/remove_pair2.py b/nodes/remove_pair2.py
new file mode 100644
index 0000000..0efd32f
--- /dev/null
+++ b/nodes/remove_pair2.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+
+"""
+ Filter mapped paired-end data:
+ if the two pairs mapped to the same reference, remove one of them,
+ in order to avoid counting twice when estimating taxon abundance.
+"""
+
+import os.path
+import pysam
+
+from pypeline.node import Node
+
+
+class removePair2Node(Node):
+ def __init__(self, input_file, output_file, output_file_trash, dependencies=()):
+ """'dependency' should be the bowtie2Node"""
+
+ self.outsam = output_file
+ self.outtrash = output_file_trash
+
+ description = "< Remove pair2 %s -> %s >" \
+ % (os.path.basename(input_file),
+ os.path.basename(output_file))
+
+ Node.__init__(self,
+ description = description,
+ input_files = input_file,
+ output_files = [output_file, output_file_trash],
+ dependencies = dependencies)
+
+ def _run(self, config, temp):
+ input_file, = self.input_files
+
+ processed_qnames = []
+
+ with pysam.AlignmentFile(input_file, 'r') as IN_SAM:
+ with pysam.AlignmentFile(self.outsam, 'wh', template=IN_SAM) as OUT_SAM:
+ with pysam.AlignmentFile(self.outtrash, 'wh', template=IN_SAM) as OUT_TRASH:
+ for read in IN_SAM:
+ if read.query_name not in processed_qnames :
+ processed_qnames.append(read.query_name)
+ OUT_SAM.write(read)
+ else:
+ OUT_TRASH.write(read)
+
diff --git a/nodes/samtools.py b/nodes/samtools.py
new file mode 100644
index 0000000..df7c1ef
--- /dev/null
+++ b/nodes/samtools.py
@@ -0,0 +1,138 @@
+#!/usr/bin/env python
+
+import os.path
+import pysam
+
+from pypeline.node import Node, CommandNode, NodeError
+from pypeline.atomiccmd.command import AtomicCmd
+from pypeline.atomiccmd.sets import \
+ ParallelCmds
+from pypeline.atomiccmd.builder import \
+ AtomicCmdBuilder
+
+import pypeline.common.versions as versions
+
+
+# _VERSION_REGEX = r"Version: (\d+)\.(\d+)(?:\.(\d+))?"
+# SAMTOOLS_VERSION = versions.Requirement(call=("samtools",),
+# search=_VERSION_REGEX,
+# checks=(0, 1, 18))
+
+## v0.2.0 was the pre-release version of v1.0, and lacks required features
+#_COMMON_CHECK = versions.And(versions.GE(0, 1, 18),
+# versions.LT(0, 2, 0))
+
+_COMMON_CHECK = versions.GE(1, 1, 0)
+
+SAMTOOLS_VERSION = versions.Requirement(
+ call=("samtools", "--version"),
+ search=r"samtools (\d+)\.(\d+)\.?(\d+)?",
+ checks=_COMMON_CHECK)
+
+
+
+class SortSamNode(CommandNode):
+ """sorts SAM file and returns a BAM"""
+
+ def __init__(self, input_file, output_file, dependencies=()):
+ cmd_sam2bam = AtomicCmd(["samtools", "view", "-buS", "%(IN_SAM)s"],
+ IN_SAM = input_file,
+ OUT_STDOUT = AtomicCmd.PIPE,
+ CHECK_VERSION = SAMTOOLS_VERSION)
+ # old samtoolsx0.1
+ # cmd_sortbam = AtomicCmd(["samtools", "sort", "-f", "-", "%(OUT_BAM)s"],
+ # IN_STDIN = cmd_sam2bam,
+ # OUT_BAM = output_file)
+ # new samtoolsx1
+ ## samtools view -buS reads.singles.bowtie2out.sam | samtools sort -T temp_root -o here.bam -O bam -
+
+ cmd_sortbam = AtomicCmd(["samtools", "sort",
+ "-T", "%(TEMP_OUT_PREFIX)s",
+ "-o", "%(OUT_BAM)s",
+ "-O", "bam",
+ "-"],
+ IN_STDIN=cmd_sam2bam,
+ # when starting with TEMP_OUT, temp_root path
+ # is added automatically
+ TEMP_OUT_PREFIX="SamToBam",
+ OUT_BAM=output_file)
+
+ description = "< samtools: view (sam to bam) and sort\n %s -> %s >" \
+ % (os.path.basename(input_file),
+ os.path.basename(output_file))
+
+ CommandNode.__init__(self,
+ command = ParallelCmds([cmd_sam2bam,
+ cmd_sortbam]),
+ description = description,
+ #threads = parameters.threads,
+ dependencies = dependencies)
+
+
+class SortSamNode2(Node):
+ """sort using pysam"""
+ def __init__(self, input_file, output_file, dependencies=()):
+ description = "< pysam sort (sam to bam)\n %s -> %s >" \
+ % (os.path.basename(input_file),
+ os.path.basename(output_file))
+ Node.__init__(self,
+ description,
+ input_files=input_file,
+ output_files=output_file,
+ dependencies=dependencies)
+
+ def _run(self, config, temp):
+ input_file, = self.input_files
+ output_file, = self.output_files
+ with pysam.AlignmentFile(input_file, 'r') as IN_SAM:
+ reads = [read for read in IN_SAM]
+ reads.sort(key=lambda read: read.rname)
+
+ with pysam.AlignmentFile(output_file, 'wb', template=IN_BAM) as OUT_BAM:
+ for read in reads:
+ OUT_BAM.write(read)
+
+
+### Not used. This conversion is done in the _setup step of the MetaphlanNode.
+class BAM2bowtie2outNode(Node):
+ def __init__(self, input_file, output_file, dependencies=()):
+ """'dependency' should be the rmdup_node"""
+
+ description = "< Format SAM to bowtie2out format\n %s -> %s >" \
+ % (os.path.basename(input_file),
+ os.path.basename(output_file))
+
+ Node.__init__(self,
+ description = description,
+ #threads = parameters.threads,
+ input_files = input_file,
+ output_files = output_file,
+ #requirement =
+ dependencies = dependencies)
+
+ def _run(self, config, temp):
+ input_file, = self.input_files
+ output_file, = self.output_files
+ with open(output_file, 'w') as OUT_BOWTIE:
+ with pysam.AlignmentFile(input_file, 'rb') as IN_BAM:
+ references = IN_BAM.references
+ for read in IN_BAM:
+ OUT_BOWTIE.write("%s\t%s\n" %(read.query_name,
+ references[read.tid]))
+
+
+#class BAMIndexNode(CommandNode):
+# """Index a BAM file using 'samtools index'."""
+#
+# def __init__(self, infile, dependencies=()):
+# cmd_index = AtomicCmd(["samtools", "index", "%(IN_BAM)s",
+# "%(OUT_BAI)s"],
+# IN_BAM=infile,
+# OUT_BAI=swap_ext(infile, ".bai"),
+# CHECK_SAM=SAMTOOLS_VERSION)
+#
+# CommandNode.__init__(self,
+# description="<BAMIndex: '%s'>" % (infile,),
+# command=cmd_index,
+# dependencies=dependencies)
+
diff --git a/nodes/tools/__init__.py b/nodes/tools/__init__.py
new file mode 100644
index 0000000..4265cc3
--- /dev/null
+++ b/nodes/tools/__init__.py
@@ -0,0 +1 @@
+#!/usr/bin/env python
diff --git a/nodes/tools/filterMetaphlan.py b/nodes/tools/filterMetaphlan.py
new file mode 100755
index 0000000..cc6554e
--- /dev/null
+++ b/nodes/tools/filterMetaphlan.py
@@ -0,0 +1,118 @@
+#!/usr/bin/env python
+
+"""From a merged table of metaphlan abundances, creates the filtered data
+divided by taxonomical levels"""
+
+
+import re
+import sys
+import csv
+import os.path
+
+#taxlevels = ['k','p','c','o','f','g','s','t']
+_intaxlevels='kpcofgst'
+
+def dofilter(inputfile, outbase=None, filterout=1, keep_full_tax=False,
+ taxlevels='kpcofgst', splitchar='|'):
+
+ outbase = os.path.splitext(os.path.basename(inputfile))[0] if not outbase else outbase
+
+ with open(inputfile) as IN:
+ reader = csv.reader(IN, dialect='excel-tab')
+ header = reader.next()
+ n = len(header) - 1
+ filtered_Data = {tax_key: [header] for tax_key in _intaxlevels}
+ filtered_samples = {tax_key: [] for tax_key in _intaxlevels}
+ filtered_taxa_nb = {tax_key: [0] * n for tax_key in _intaxlevels}
+ filtered_taxa_sum = {tax_key: [0] * n for tax_key in _intaxlevels}
+
+ for tax_key, rowname, abundances in getassign_lines(reader, keep_full_tax,
+ splitchar=splitchar):
+
+ row = [0 if ab < filterout else ab for ab in abundances]
+ low_abundances = [ab if ab < filterout else 0 for ab in abundances]
+ islow_abundances = [low_ab > 0 for low_ab in low_abundances]
+
+ filtered_taxa_nb[tax_key] = map(sum, zip(islow_abundances,
+ filtered_taxa_nb[tax_key]))
+ filtered_taxa_sum[tax_key] = map(sum, zip(low_abundances,
+ filtered_taxa_sum[tax_key]))
+
+ if not all(ab==0 for ab in row):
+ filtered_Data[tax_key].append([rowname] + row)
+
+ for k, tax_key in enumerate(_intaxlevels):
+ i = 1
+ while i < len(filtered_Data[tax_key][0]) - 1:
+ if all(row[i]==0 for row in filtered_Data[tax_key][1:]):
+ sample = filtered_Data[tax_key][0][i]
+ for child_tax in _intaxlevels[k:]:
+ filtered_samples[child_tax].append(sample)
+ filtered_Data[child_tax] = [row[:i]+row[i+1:] for row in \
+ filtered_Data[child_tax]]
+ else:
+ i += 1
+
+ for tax_key in taxlevels:
+ with open(outbase + "_filtered_%s.tsv" % tax_key, 'w') as OUT:
+ writer = csv.writer(OUT, dialect='excel-tab')
+ writer.writerows(filtered_Data[tax_key])
+
+ with open(outbase + "_filtered_samples.txt", 'w') as OUT:
+ for tax_key in taxlevels:
+ OUT.write(tax_key + ':\t' + '\t'.join(filtered_samples[tax_key]) + '\n')
+
+ with open(outbase + "_filtered_taxa_nb.tsv", 'w') as OUT:
+ writer = csv.writer(OUT, dialect='excel-tab')
+ writer.writerow(header)
+ for tax_key in taxlevels:
+ writer.writerow([tax_key] + filtered_taxa_nb[tax_key])
+
+ with open(outbase + "_filtered_taxa_sum.tsv", 'w') as OUT:
+ writer = csv.writer(OUT, dialect='excel-tab')
+ writer.writerow(header)
+ for tax_key in taxlevels:
+ writer.writerow([tax_key] + filtered_taxa_sum[tax_key])
+
+
+def getassign_lines(csvreader, keep_full_tax=False, intaxlevels=_intaxlevels,
+ splitchar='\|'):
+ gettaxlevel = re.compile(r'([%s])__' % intaxlevels )
+ for row in csvreader:
+ fulltax = row.pop(0)
+ gettax_key = gettaxlevel.findall(fulltax)
+ if not gettax_key:
+ tax_key = 'k'
+ tax = fulltax
+ else:
+ tax_key = gettax_key[-1]
+ gettax = re.compile(r'%s__([A-Za-z0-9_]+)(?:%s|$)' % (tax_key, splitchar))
+ tax = fulltax if keep_full_tax else gettax.search(fulltax).group(1)
+ yield tax_key, tax, [int(float(x)) if float(x)%1==0 else float(x) for x in row]
+
+
+if __name__ == '__main__':
+
+ import argparse
+
+ parser = argparse.ArgumentParser()
+
+ parser.add_argument("inputfile", help="merged metaphlan table")
+ parser.add_argument("-o", "--outbase",
+ help=("base name of output files. default: "
+ "basename of input file"))
+ parser.add_argument("-f", "--filterout", type=float, default=1,
+ help=("threshold for filtering out taxa: taxa under the "
+ "threshold in all samples will be trashed "
+ "[%(default)s %%]"))
+ parser.add_argument("--keep-full-tax", action='store_true', default=False,
+ help=("Keep the original taxonomical assignment as row "
+ "name, not only the name at a given taxonomical level"))
+ parser.add_argument("--splitchar", "-s", default="|",
+ help=("Character separating taxonomical levels in the "
+ "input row names [%(default)r]"))
+ parser.add_argument('-t', '--taxlevels', default='kpcofgst',
+ help="taxonomical levels kept in the output [%(default)s]")
+
+ args = parser.parse_args()
+ dofilter(**vars(args))
diff --git a/nodes/tools/get_stats.py b/nodes/tools/get_stats.py
new file mode 100755
index 0000000..bfe6934
--- /dev/null
+++ b/nodes/tools/get_stats.py
@@ -0,0 +1,175 @@
+#!/usr/bin/env python
+
+
+"""
+./get_stats output_file lib_dir1 [,libdir2 [,libdirN]]
+
+Gather stats (nb of reads) from input files and mapping and
+remove-duplicates in a table.
+"""
+
+
+import re
+import sys
+import pysam
+import os.path
+
+from glob import glob
+
+
+class bowtie2statsError(Exception):
+ def __init__(self, value):
+ self.parameter = value
+ def __str__(self):
+ return repr(self.parameter)
+
+
+def get_bowtie2stats(file_):
+ if not file_:
+ return (None, None)
+
+ with open(file_) as IN:
+ lines = IN.readlines()
+
+ reg_blank = re.compile(r'^$')
+ regex = [
+ # tuple (name of the retrieved number, pattern)
+ ('tot', r'^(\d+) reads(?:; of these:)?$'),
+ ('p', r'^ \d+ \([0-9\.]+%\) were (paired|unpaired); of these:$'),
+ ('pc0', r'^ (\d+) \([0-9\.]+%\) aligned concordantly 0 times$'),
+ ('pc1', r'^ (\d+) \([0-9\.]+%\) aligned concordantly exactly 1 time$'),
+ ('pc2', r'^ (\d+) \([0-9\.]+%\) aligned concordantly >1 times$'),
+ ('_', r'^ ----$'),
+ ('pc0_2',r'^ (\d+) pairs aligned concordantly 0 times; of these:$'),
+ ('pd1', r'^ (\d+) \([0-9\.]+%\) aligned discordantly 1 time$'),
+ ('pd2', r'^ (\d+) \([0-9\.]+%\) aligned discordantly >1 times$'), #probably never happens
+ ('_', r'^ ----$'),
+ ('s', r'^ (\d+) pairs aligned 0 times concordantly or discordantly; of these:$'),
+ ('sp', r'^ (\d+) mates make up the pairs; of these:$'),
+ ('s0', r' {4,8}(\d+) \([0-9\.]+%\) aligned 0 times$'),
+ ('s1', r' {4,8}(\d+) \([0-9\.]+%\) aligned exactly 1 time$'),
+ ('s2', r' {4,8}(\d+) \([0-9\.]+%\) aligned >1 times$'),
+ ('rate', r'^([0-9\.]+)% overall alignment rate$')]
+
+ regex = [(name, re.compile(pattern)) for name,pattern in regex]
+ matched = {}
+ unmatched = []
+
+ # read the file until it finds the first match of the expected message
+ name0, reg0 = regex[0]
+
+ if not lines:
+ raise bowtie2statsError("File %s is empty." % file_)
+
+ match0 = reg0.match(lines[0])
+ while not match0 and len(lines)>1:
+ if not reg_blank.match(lines[0]):
+ unmatched += [lines.pop(0)]
+ else:
+ lines.pop(0)
+ match0 = reg0.match(lines[0])
+ if not match0:
+ raise bowtie2statsError("File %s does not contain bowtie2 read counts." % file_)
+
+ # then match lines in their expected order
+ for name, reg in regex:
+ match = reg.match(lines[0])
+ if match:
+ lines.pop(0)
+ matched[name] = match.group(1) if name != '_' else match.group()
+ else:
+ matched[name] = 0 # to allow summing these names
+
+ unmatched += lines # lines should be empty if everything has matched
+
+ if unmatched:
+ unmatched = unmatched[:10] + [" + %s more..." %(len(unmatched)-10,)] if len(unmatched)>10 else unmatched
+ sys.stderr.write("In %s those lines did not match:\n%s\n" %(file_, "\n".join(unmatched) ))
+
+ tot = int(matched['tot'])
+ if matched['p'] == 'paired':
+ tot *= 2
+
+ mapped = int(matched['s1']) + int(matched['s2'])
+ mapped += 2 * (int(matched['pc1']) + int(matched['pc2']))
+
+ return tot, mapped
+
+
+def get_readcount(bamfile):
+ if bamfile:
+ readcount = pysam.view("-c", bamfile)[0]
+ return (int(readcount),)
+ else:
+ return (None,)
+
+
+def grab_files(pattern, directories):
+ for libdir in directories:
+ found = glob(os.path.join(libdir, pattern))
+ yield found[0] if found else None # only keeps one file per directory
+
+
+def make_lines(ttable, fields, func, fieldtuple, elemlist):
+ lines = zip(*[func(e) for e in elemlist])
+ for line, field in zip(lines, fieldtuple):
+ if any(line):
+ ttable[field] = line
+ fields.append(field)
+
+
+def gather_stats(output_file, directories, IDs=None):
+ """IDs is a list of sample_lib names corresponding to the directories"""
+
+ if not IDs:
+ IDs = directories
+
+ ttable = {"sample_lib": IDs}
+ fields = ["sample_lib"]
+
+ for trimmed_type in ['collapsed', 'paired', 'singles']:
+ make_lines(ttable,
+ fields,
+ func = get_bowtie2stats,
+ fieldtuple = (trimmed_type+'.tot', trimmed_type+'.mapped'),
+ elemlist = list(grab_files('*.%s.bowtie2out.stats' % trimmed_type,
+ directories)))
+
+ make_lines(ttable,
+ fields,
+ func = get_readcount,
+ fieldtuple = (trimmed_type + '.no_dup',),
+ elemlist = list(grab_files(
+ '*.%s.bowtie2out*.sorted.no_dup.bam' % trimmed_type,
+ directories)))
+
+ # compute totals if more than 1 trimmed_type
+ for result_type in ['tot', 'mapped', 'no_dup']:
+ fromfields = [t+result_type for t in ['collapsed.', 'paired.', 'singles.']]
+ fromfields = [f for f in fromfields if ttable.get(f)]
+ if len(fromfields) > 1:
+ make_lines(ttable,
+ fields,
+ func = lambda tup :(sum(x for x in tup if not x is None),),
+ fieldtuple = ('sum.'+result_type,),
+ elemlist = zip(*(ttable[f] for f in fromfields)))
+
+ with open(output_file, 'w') as OUT:
+ OUT.write('\t'.join(fields) + '\n')
+ for line in zip(*(ttable[field] for field in fields)):
+ line = [str(count) for count in line]
+ OUT.write("\t".join(line) + '\n')
+
+
+if __name__ == '__main__':
+
+ if len(sys.argv) > 2:
+ output_file = sys.argv[1]
+ directories = []
+ for arg in sys.argv[2:]:
+ directories.extend(glob(arg))
+
+ gather_stats(output_file, directories)
+ else:
+ sys.exit(__doc__)
+
diff --git a/nodes/tools/metaphlan2krona_2.py b/nodes/tools/metaphlan2krona_2.py
new file mode 100755
index 0000000..0fddf78
--- /dev/null
+++ b/nodes/tools/metaphlan2krona_2.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+
+# =====================================================================
+_description = """
+ Conversion script: from MetaPhlAn output to Krona text input file
+ Author: Daniel Brami (daniel.brami at gmail.com)
+ modified for metaBIT"""
+# =====================================================================
+
+
+import sys
+import argparse
+import re
+
+
+def convert(inputfile, outputfile, no_underscore=False):
+
+ re_candidates = re.compile(r"s__|unclassified\t")
+ re_replace = re.compile(r"\w__")
+ re_bar = re.compile(r"\|")
+
+ IN = open(inputfile,'r') if inputfile else sys.stdin
+ OUT = open(outputfile,'w') if outputfile else sys.stdout
+
+ try:
+ for line in IN:
+ if len(line.split("\t")) > 2:
+ print >> sys.stderr, \
+ "Error: Wrong input file (more than two fields)"
+ return 1
+
+ if re.search(re_candidates, line):
+ x=re.sub(re_replace, '\t', line)
+ x=re.sub(re_bar, '', x)
+ x=re.sub(r'_', ' ', x) if no_underscore else x
+
+ x_cells = x.split('\t')
+ lineage = '\t'.join(x_cells[:-1])
+ abundance = x_cells[-1].rstrip('\n')
+
+ OUT.write(abundance + '\t' + lineage + '\n')
+
+ finally:
+ if OUT != sys.stdout:
+ OUT.close()
+ if IN != sys.stdin:
+ IN.close()
+
+ return 0
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description=_description,
+ formatter_class=argparse.RawDescriptionHelpFormatter)
+ parser.add_argument('inputfile', type=str, nargs='?',
+ help='The input file is the MetaPhlAn standard result'
+ ' file. Default to stdin')
+ parser.add_argument('outputfile', type=str, nargs='?',
+ help='the Krona output file name. Default to stdout' )
+ parser.add_argument('--no-underscore', action='store_true',
+ help='convert underscores in fields to spaces')
+ args = parser.parse_args()
+
+ sys.exit(convert(args.inputfile, args.outputfile, args.no_underscore))
+
diff --git a/nodes/tools/reformat_taxa.py b/nodes/tools/reformat_taxa.py
new file mode 100755
index 0000000..1145eac
--- /dev/null
+++ b/nodes/tools/reformat_taxa.py
@@ -0,0 +1,109 @@
+#!/usr/bin/env python
+
+
+import sys
+import os.path
+import argparse
+
+
+description = ("Merge multiple Metaphlan output tables, by filling with 0 "
+ "in tables where a given taxon hasn't been found.\n"
+ "Can remerge merged tables")
+_sep='\t'
+
+
+def _all_indices(V, elem):
+ """ returns all indices of elem in list V"""
+ start = 0
+ indices = []
+ while elem in V[start:]:
+ start += V[start:].index(elem) + 1
+ indices.append(start-1)
+ return indices
+
+
+def _line2tuple(line, iCol=0):
+ """iCol is the column number of the ID names.
+ returns: (ID, abundances)
+ types: (str, list)"""
+ line = line.rstrip().split('\t')
+ return line[iCol], line[:iCol] + line[iCol+1:]
+
+
+def merge_tables(outputfile, samplefiles, idstr='ID', keep_original_IDs=True):
+ """Each samplefile must be a list of size 1 or 2:
+ samplefile = [filename, name] or just [filename]"""
+
+ # add a default name when name is not specified (i.e len(f)==1)
+ samplefiles = [f + [os.path.splitext(os.path.basename(f[0]))[0]]*(2-len(f)) \
+ for f in samplefiles]
+ #remove identical files while keeping the order:
+ samplefiles = [f for i,f in enumerate(samplefiles) if f not in samplefiles[:i]]
+ files, names = zip(*samplefiles)
+
+ # if same names for different file names (default names on files with same
+ # basename), restore default name to full file name.
+ for name in set(names):
+ positions = _all_indices(names, name)
+ if len(positions) > 1:
+ for duplicated in positions:
+ samplefiles[duplicated][1] = samplefiles[duplicated][0]
+
+ # Build merged table of all samplefiles
+ samples = []
+ taxa = set()
+ for file_, samplename in samplefiles:
+ with open(file_) as IN:
+ table = dict(_line2tuple(line) for line in IN)
+
+ if keep_original_IDs and table.get(idstr):
+ table[idstr] = table.get(idstr)
+ else:
+ table[idstr] = [samplename]
+
+ keys = set(table.keys())
+ newtaxa = keys - taxa
+ oldtaxa = taxa - keys
+
+ for previous_table in samples:
+ dim = len(previous_table[idstr])
+ previous_table.update({ new: ["0"]*dim for new in newtaxa})
+
+ table.update({ old: ["0"]*len(table[idstr]) for old in oldtaxa})
+
+ samples.append(table)
+ taxa |= keys
+
+ taxa.remove(idstr)
+
+ OUT = sys.stdout if outputfile == "-" else open(outputfile, 'w')
+ try:
+ for taxon in [idstr] + sorted(taxa):
+ OUT.write(taxon + \
+ _sep + \
+ _sep.join(
+ _sep.join(sample[taxon]) for sample in samples) + \
+ "\n")
+ finally:
+ if outputfile == "-":
+ OUT.close()
+
+
+if __name__ == '__main__':
+
+ parser = argparse.ArgumentParser(description=description)
+ parser.add_argument("-o", "--outfile", default="-", help="default: stdout")
+ parser.add_argument("input_table", nargs="+")
+ parser.add_argument("--idstring", default="ID",
+ help=("row name of the ID line (sample name)."
+ "NOTE: it is '#SampleID' in metaphlan2 tables"))
+ parser.add_argument("--trash-original-IDs", action='store_false',
+ dest="keep_original_IDs",
+ help="trash the ID names if present in input tables")
+
+ args = parser.parse_args()
+
+ merge_tables(args.outfile, [arg.split(",") for arg in args.input_table],
+ idstr=args.idstring,
+ keep_original_IDs=args.keep_original_IDs)
+
diff --git a/nodes/tools/rmdup_collapsed.py b/nodes/tools/rmdup_collapsed.py
new file mode 100644
index 0000000..5dc5bcb
--- /dev/null
+++ b/nodes/tools/rmdup_collapsed.py
@@ -0,0 +1,156 @@
+#!/usr/bin/env python
+
+"""
+Copy of Mikkel Schubert's 'rmdup_collapsed' from Paleomix.
+(Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>)
+Modified to be used as a module. Guillaume Apr 24 2015
+
+Stripped down version of 'FilterUniqueBAM' by
+:Author: Martin Kircher
+:Contact: Martin.Kircher at eva.mpg.de
+:Date: *08.10.2011
+:Type: tool
+:Input: BAM
+:Output: BAM
+
+Mark/Filter PCR duplicates for merged PE reads Reads BAM
+from STDIN and writes BAM to STDOUT. All non-collapsed reads
+as well as secondary/chinermic alignments, reads that have
+failed QC and unmmaped reads, are written to STDOUT as is.
+
+The input is assumed to be sorted by coordinates, and this
+order is preserved, though individual reads at the same
+position may be re-arranged).
+"""
+
+import sys
+import pysam
+from argparse import ArgumentParser
+
+
+def calc_consensus(reads):
+ count = len(reads)
+ outread = None
+ maxsumqual = 0
+ for read in reads:
+ nsum = sum(map(ord, read.qual))
+ if nsum > maxsumqual:
+ outread = read
+ maxsumqual = nsum
+
+ # LOOK FOR PREVIOUS PCR DUPLICATE COUNTS
+ for key, value in read.tags:
+ if key == "XP":
+ count += value
+
+ if not outread.tags:
+ outread.tags = [("XP", count)]
+ else:
+ outread.tags = outread.tags + [("XP", count)]
+
+ return outread
+
+
+def get_consensus_se(reads):
+ # DETERMINE MOST FREQUENT CIGAR LINE
+ by_cigar = {}
+ cigar_count = {}
+ for read in reads:
+ tcigar = tuple(read.cigar)
+ if tcigar in by_cigar:
+ cigar_count[tcigar] += 1
+ by_cigar[tcigar].append(read)
+ else:
+ cigar_count[tcigar] = 1
+ by_cigar[tcigar] = [read]
+
+ to_sort = [(y, -len(str(x)), x) for (x, y) in cigar_count.iteritems()]
+ to_sort.sort()
+ selcigar = to_sort[-1][-1]
+ reads = by_cigar[selcigar]
+
+ return calc_consensus(reads)
+
+
+def write_consensus_se(outfile, reads, remove_duplicates):
+ consensus = get_consensus_se(reads)
+ for read in reads:
+ read.is_duplicate = (read is not consensus)
+ if not (read.is_duplicate and remove_duplicates):
+ outfile.write(read)
+
+
+def _flush_buffer(outfile, curvariants, remove_duplicates):
+ for value in curvariants.itervalues():
+ write_consensus_se(outfile, value[0], remove_duplicates)
+ curvariants.clear()
+
+
+_FILTERED_FLAGS = 0x1 # PE reads
+_FILTERED_FLAGS |= 0x4 # Unmapped
+_FILTERED_FLAGS |= 0x100 # Secondary alignment
+_FILTERED_FLAGS |= 0x200 # Failed QC
+_FILTERED_FLAGS |= 0x800 # Chimeric alignment
+
+
+def parse_args(argv):
+ parser = ArgumentParser(usage="%(prog)s [options] < in.bam > out.bam")
+ parser.add_argument("input", default="-", help="BAM file.", nargs="?")
+ parser.add_argument("output", default="-", help="BAM file.", nargs="?")
+ parser.add_argument("--remove-duplicates",
+ help="Remove duplicates from output; by default "
+ "duplicates are only flagged (flag = 0x400).",
+ default=False, action="store_true")
+
+ return parser.parse_args(argv)
+
+
+def main(argv):
+ args = parse_args(argv)
+
+ if args.input == "-" and sys.stdin.isatty():
+ sys.stderr.write("STDIN is a terminal, terminating!\n")
+ return 1
+ elif args.output == "-" and sys.stdout.isatty():
+ sys.stderr.write("STDOUT is a terminal, terminating!\n")
+ return 1
+
+ with pysam.Samfile(args.input, "rb") as infile:
+ with pysam.Samfile(args.output, "wb", template=infile) as outfile:
+ curpos = None
+ curvariants = {}
+ for (read_num, read) in enumerate(infile):
+ if curpos and ((read.tid, read.pos) != curpos):
+ # Sort order is defined as ascending 'tid's and positions
+ if curpos > (read.tid, read.pos) and not read.is_unmapped:
+ sys.stderr.write("ERROR: Input file does not appear "
+ "to be sorted by coordinates at "
+ "record %i, aborting ...\n"
+ % (read_num,))
+ return 1
+
+ _flush_buffer(outfile, curvariants,
+ args.remove_duplicates)
+ curpos = None
+
+ is_filtered = read.flag & _FILTERED_FLAGS
+ is_collapsed = read.qname.startswith("M_")
+ if is_filtered or not (read.qual and is_collapsed):
+ outfile.write(read)
+ continue
+
+ curpos = (read.tid, read.pos)
+ nkey = (read.is_reverse, read.pos, read.alen)
+ if nkey in curvariants:
+ curvariants[nkey][0].append(read)
+ curvariants[nkey][1] += 1
+ else:
+ curvariants[nkey] = [[read], 1]
+
+ _flush_buffer(outfile, curvariants, args.remove_duplicates)
+
+ return 0
+
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))
diff --git a/nodes/tools/statax_Rmodule/doBarplot.R b/nodes/tools/statax_Rmodule/doBarplot.R
new file mode 100755
index 0000000..ffbab72
--- /dev/null
+++ b/nodes/tools/statax_Rmodule/doBarplot.R
@@ -0,0 +1,129 @@
+#!/usr/bin/env Rscript
+
+if( !interactive() ) rm(list=ls(all=T))
+
+### FUNCTIONS
+gglike_colors <- function(n, light=65, chroma=100, start=15) {
+ hues = seq(start, 360+start, length=n+1)
+ hcl(h=hues, l=light, c=chroma)[seq_len(n)]
+}
+
+doBarplot <- function(d, out.pdf=NULL,
+ sample.order="none",
+ graph.title=NULL,
+ add_labels=TRUE, #add taxon names on the colors (if enough space)
+ uncl_col="white", #set uncl_col to NULL for not displaying
+ legend.title="taxon")
+{
+ require(ggplot2, quietly=T)
+ require(reshape2, quietly=T)
+
+ if ( sample.order=="none" || ncol(d)<2 ) {
+ sample.order <- seq_len(ncol(d))
+ } else if (sample.order=="alpha") {
+ sample.order <- order(colnames(d))
+ } else {
+ sample.order <- hclust(dist(t(d), method=sample.order))$order
+ }
+ in.bp <- d[,sample.order]
+ color.gradient <- gglike_colors(nrow(d))
+ taxa.names <- rownames(in.bp)
+ legend.order <- seq_along(taxa.names)
+
+ if (!is.null(uncl_col)) {
+ in.bp <- rbind(in.bp, unclassified=100-colSums(in.bp))
+ color.gradient <- c(color.gradient, uncl_col)
+ taxa.names <- c(sort(taxa.names), "unclassified")
+ legend.order <- match(taxa.names, sort(taxa.names))
+ }
+
+ in.bp <- melt(as.matrix(in.bp), varnames=c(legend.title, "sample"),
+ value.name="abundance")
+
+ in.bp[[legend.title]] <- as.factor(gsub("_", " ", in.bp[[legend.title]]))
+ in.bp$labels <- gsub("\\<(\\w{2})\\w+", "\\1", in.bp[[legend.title]])
+ in.bp$labels <- gsub("\\s+", ".", in.bp$labels)
+ in.bp$labels[in.bp$abundance < 4] <- ""
+ in.bp[[legend.title]] <- factor(in.bp[[legend.title]],
+ levels=levels(in.bp[[legend.title]])[legend.order])
+
+ legend_text <- rownames(d)
+ legend_cols <- split(legend_text, ceiling(seq_along(legend_text)/21))
+ #plot the stacked bar plot
+ out.barplot <- ggplot(in.bp, aes_string(x="sample", y="abundance",
+ label=legend.title)) +
+ geom_bar(aes_string(fill=legend.title), stat="identity",
+ position='stack') +
+ guides(fill=guide_legend(ncol=length(legend_cols))) +
+ scale_fill_manual(values=color.gradient) +
+ theme(axis.text.x = element_text(angle=90, hjust=1, vjust=.5),
+ axis.title.x= element_blank(),
+ legend.text = element_text(size=8)) +
+ ggtitle(graph.title)
+ if (add_labels) {
+ out.barplot <- out.barplot +
+ geom_text(aes(label=labels, ymax=abundance, size=4, vjust=1),
+ position=position_stack(),
+ colour='white', alpha=.5) +
+ scale_size(guide="none")
+ }
+
+ # .3 inches ~= strheight
+ # .08 inches ~= width of char
+ # .8 relative font size of legend
+ dev_width <- .3 * ncol(d) + .3 * .8 * sum(sapply(legend_cols, function(ch) max(nchar(ch)) ))
+ dev_width <- min(dev_width, 30) #or use ggsave option 'limitsize=FALSE'
+
+ if( !is.null(out.pdf) ) {
+ ggsave(out.pdf, width=dev_width, height=7)
+ } else {
+ if( !is.null(dev.list()) ) dev.off()
+ dev.new(width=dev_width)
+ return(out.barplot)
+ }
+}
+
+
+if( !interactive() ) {
+ library(optparse, quietly=T)
+
+ ### Command-line parsing
+ option_list <- list(
+ #make_option(c("-b", "--binary"), action="store_true",
+ # help="convert all abundances in presence/absence"),
+ make_option("--order", default="alpha",
+ help=paste("Ordering samples in barplot: none, alpha or ",
+ "method allowed in dist(), e.g euclidian. [alpha]")),
+ make_option("--nolabels", dest="add_labels", action="store_false",
+ default=TRUE,
+ help=paste("do not write an abbreviation for taxa on top of the ",
+ "colors in the barplot")),
+ #make_option("--uncl-col", default='white',
+ # help="color of the unclassified proportion"),
+ make_option("--title", help="title of the plot"),
+ make_option("--taxon_title", default="Taxon",
+ help="title of the legend [Taxon]")
+ )
+
+ Parser <- OptionParser(prog = "doBarplot.R", option_list=option_list,
+ usage="%prog [options] input_file output_pdf",
+ description=paste("input_file: any tab separated table.",
+ "columns will represent one bar in the plot"))
+ cl <- parse_args(Parser, positional_arguments=2)
+
+ d <- read.table(cl$args[1], row.names=1, sep='\t', as.is=TRUE)
+ if( row.names(d)[1] == "ID" ) {
+ names(d) <- d[1,]
+ d <- d[-1,]
+ }
+ taxa.names <- rownames(d)
+ d <- apply(d, 2, as.numeric)
+ rownames(d) <- taxa.names
+
+ doBarplot(d, out.pdf=cl$args[2],
+ sample.order=cl$options$order,
+ graph.title=cl$options$title,
+ add_labels=cl$options$add_labels, #add taxon names on the colors (if enough space)
+ uncl_col="white", #set uncl_col to NULL for not displaying
+ legend.title=cl$options$taxon_title)
+}
diff --git a/nodes/tools/statax_Rmodule/doClust.R b/nodes/tools/statax_Rmodule/doClust.R
new file mode 100755
index 0000000..f88cd81
--- /dev/null
+++ b/nodes/tools/statax_Rmodule/doClust.R
@@ -0,0 +1,136 @@
+#!/usr/bin/env Rscript
+
+statax_dir <- ifelse( interactive(),
+ dirname(parent.frame(2)$ofile),
+ dirname(normalizePath(sub("--file=", "", commandArgs(F)[4])))
+ )
+source(paste0(statax_dir, "/pvegclust-internal.R"))
+source(paste0(statax_dir, "/pvegclust.R"))
+
+read.abundance.table <- function(filename) {
+ d <- read.table(cl$args[1], row.names=1, sep='\t', as.is=TRUE)
+ if( row.names(d)[1] == "ID" ) {
+ names(d) <- d[1,]
+ d <- d[-1,]
+ }
+ taxa.names <- rownames(d)
+ d <- apply(d, 2, as.numeric)
+ rownames(d) <- taxa.names
+ return(d)
+}
+
+doClust <- function(d, out.clust=NULL, out.clust.pdf=NULL, out.clust.tsv=NULL,
+ out.clust.RData=NULL, method.dist="bray",
+ method.hclust="average", ncores=1, nboot=1000) {
+ if (!is.null(out.clust)) {
+ out.clust.pdf <- ifelse(is.null(out.clust.pdf),
+ paste0(out.clust, ".pdf"),
+ out.clust.pdf)
+ out.clust.tsv <- ifelse(is.null(out.clust.tsv),
+ paste0(out.clust, ".tsv"),
+ out.clust.tsv)
+ out.clust.RData<-ifelse(is.null(out.clust.RData),
+ paste0(out.clust,".RData"),
+ out.clust.RData)
+ }
+ if (ncol(d) < 3)
+ msg <- c("Error: hierarchical clustering cannot be done with less than 3 samples",
+ paste0("(Input file: ", cl$args[1], ")"))
+ if (nrow(d) < 3)
+ msg <- c("Error: hierarchical clustering cannot be done with less than 3 objects (taxa)",
+ paste0("(Input file: ", cl$args[1], ")"))
+ if (exists("msg")) {
+ write(msg, file=stderr())
+ if( !interactive() ) {
+ pdf(out.clust.pdf)
+ plot.new()
+ text(0, c(1, .95), msg, adj=0, col='red')
+ invisible(dev.off())
+ write(msg, file=out.clust.tsv)
+ save(msg, file=out.clust.RData)
+ quit(save="no", status=0)
+ }
+ }
+
+ if (ncores>1) {
+ pvclust.func <- function(...) {
+ pvclust.args <- list(...)
+ pvclust.args$ncores <- ncores
+ do.call(mcPvegclust, pvclust.args)
+ }
+ } else {
+ pvclust.func <- pvegclust
+ }
+
+ bootstrap_samples <- pvclust.func(data=d,
+ method.dist=method.dist,
+ method.hclust=method.hclust,
+ nboot=nboot)
+
+ ## Confidence interval for AU AU, AU-2SE, AU+2SE
+ confmin_samples <- bootstrap_samples$edge[,1] - 2*bootstrap_samples$edge[,3]
+ confmax_samples <- bootstrap_samples$edge[,1] + 2*bootstrap_samples$edge[,3]
+ conf_samples <- cbind(confmin_samples, confmax_samples)
+ conf_samples <- cbind(c("cluster", 1:nrow(conf_samples)),
+ rbind(c("AU-2SE", "AU+2SE"), conf_samples))
+
+ # 0.08 is the width of a character in inches (whatever par('cin') is)
+ # .8 is the choosen cex
+ dev_width <- min(max(0.08 * .8 * ncol(d), 7), 20)
+
+ if( !is.null(out.clust) ) {
+ pdf(out.clust.pdf, useDingbats=FALSE, width=dev_width)
+ plot(bootstrap_samples, cex=.8)
+ invisible(dev.off())
+
+ save(bootstrap_samples, file=out.clust.RData)
+ write.table(conf_samples, file = out.clust.tsv, sep = "\t",
+ row.names=FALSE, col.names=FALSE, quote=FALSE)
+ } else {
+ plot(bootstrap_samples, cex=.8)
+ return(list(bootstrap_samples=bootstrap_samples,
+ conf_samples=conf_samples))
+ }
+}
+
+
+if( !interactive() ) {
+ library(optparse, quietly=T)
+
+ ### Command-line parsing
+ option_list <- list(
+ #make_option(c("-b", "--binary"), action="store_true",
+ # help="convert all abundances in presence/absence"),
+ make_option("--basename", default="clust",
+ help=paste("default basename for the output files",
+ "(.tsv, .pdf, and .RData files will be created)",
+ "Alternatively you can use --pdf and --tsv.")),
+ make_option("--pdf", default=NULL, help="output pdf file"),
+ make_option("--tsv", default=NULL, help="output tsv file"),
+ make_option("--RData", default=NULL, help="output RData file (bootstrap samples and confidence intervals)"),
+ make_option("--method.dist", default='bray',
+ help="method for distance matrix (allowed by dist and vegdist) [bray]"
+ ),
+ make_option("--method.hclust", default='average',
+ help="hierarchical clustering method (allowed by hclust) [average]"),
+ make_option("--ncores", default=1, type="integer",
+ help="number of cores used for parallelization of hierarchical clustering"
+ ),
+ make_option("--nboot", default = 10000, type='integer',
+ help="number of iterations in bootstrap [10000]")
+ )
+
+ Parser <- OptionParser(prog = "doClust.R", option_list=option_list)
+ cl <- parse_args(Parser, positional_arguments=1)
+
+ d <- read.abundance.table(cl$args[1])
+
+ doClust(d, out.clust=cl$options$basename,
+ out.clust.pdf=cl$options$pdf,
+ out.clust.tsv=cl$options$tsv,
+ out.clust.RData=cl$options$RData,
+ method.dist=cl$options$method.dist,
+ method.hclust=cl$options$method.hclust,
+ ncores=cl$options$ncores,
+ nboot=cl$options$nboot)
+}
diff --git a/nodes/tools/statax_Rmodule/doDiv.R b/nodes/tools/statax_Rmodule/doDiv.R
new file mode 100755
index 0000000..4d25e77
--- /dev/null
+++ b/nodes/tools/statax_Rmodule/doDiv.R
@@ -0,0 +1,89 @@
+#!/usr/bin/env Rscript
+
+read.abundance.table <- function(filename) {
+ d <- read.table(filename, row.names=1, sep='\t', as.is=TRUE)
+ if( row.names(d)[1] == "ID" ) {
+ names(d) <- d[1,]
+ d <- d[-1,]
+ }
+ taxa.names <- rownames(d)
+ d <- apply(d, 2, as.numeric)
+ rownames(d) <- taxa.names
+ return(d)
+}
+
+my.write.table <- function(Table, file, sep="\t", quote=F) {
+ Table <- cbind(rownames(Table), Table)
+ names(Table)[1] <- ""
+ write.table(Table, file, col.names=T, row.names=F, quote=quote, sep=sep)
+}
+
+split.table <- function(Table, rm.strains=TRUE,
+ default.taxlevels=c("k", "p", "c", "o", "f", "g", "s")) {
+ if( rm.strains ) Table <- Table[!grepl('\\|t__', row.names(Table)),]
+
+ sample_names <- names(Table)
+ taxa_names <- strsplit(row.names(Table), '|', fixed=T)
+ taxlevel <- sapply(taxa_names, function(e) default.taxlevels[length(e)])
+ lasttaxon <- sapply(taxa_names, tail, 1)
+
+ Data <- sapply(default.taxlevels, function(x) Table[taxlevel==x,],
+ simplify=F, USE.NAMES=T)
+ #warning: you should check that the row.names do not contain duplicated taxa.
+}
+
+filter.table <- function(Data) {
+ # remove 100% unclassified
+ if( "unclassified" %in% rownames(Data$k) ) {
+ unclassified <- (Data$k["unclassified",] == 100)
+ write(c("The following samples contain 100% unclassified:",
+ colnames(Data$k)[unclassified]),
+ file=stderr())
+ Data <- sapply(Data, `[`, TRUE, !unclassified)
+ } else{
+ write("No samples are 100% unclassified", file=stderr())
+ Data
+ }
+}
+
+doDiv <- function(Data, index="shannon") {
+ suppressPackageStartupMessages(require(vegan, quietly=T))
+ diversities <- sapply(Data, diversity, index=cl$options$index, MARGIN=2,
+ USE.NAMES=T)
+ return(diversities)
+}
+
+
+if( !interactive() ) {
+ library(optparse)
+ option_list <- list(
+ make_option("--index", default='shannon', #choices = c('bray', dist.methods),
+ help="diversity index (allowed by vegan::diversity) [shannon]"),
+ make_option("--taxlevels", default='kpcofgs',
+ help=paste("taxonomical levels to create one table per level.",
+ "(kingdom phylum class order family genus species (strain))",
+ "'kpcofgst' to include strains (metaphlan2)")),
+ make_option("--strains", default=TRUE, action='store_false', dest="rmstrains",
+ help=paste("keep strains from data (metaphlan2).",
+ "For a metaphlan2 table, either --strains or ",
+ "--taxlevels 'kpcofgst' must be used"))
+ )
+
+ Parser <- OptionParser(prog = "doDiv.R", option_list=option_list,
+ usage="./doDiv.R infile [outfile]",
+ description=paste0("\tinfile: a merged metaphlan table\n",
+ "\toutfile: a .tsv file. Default to stdout"))
+ cl <- parse_args(Parser, positional_arguments=c(1,2))
+
+ Table <- read.abundance.table(cl$args[1])
+ default.taxlevels <- unlist(strsplit(cl$options$taxlevels, ""))
+ Data <- split.table(Table, rm.strains=cl$options$rmstrains,
+ default.taxlevels=default.taxlevels)
+ Data <- filter.table(Data)
+
+ diversities <- doDiv(Data, index=cl$options$index)
+
+ out.div <- stdout()
+ if( length(cl$args) == 2 ) out.div <- cl$args[2]
+ my.write.table(diversities, file=out.div)
+}
diff --git a/nodes/tools/statax_Rmodule/doHeatmap.R b/nodes/tools/statax_Rmodule/doHeatmap.R
new file mode 100755
index 0000000..43e5dec
--- /dev/null
+++ b/nodes/tools/statax_Rmodule/doHeatmap.R
@@ -0,0 +1,73 @@
+#!/usr/bin/env Rscript
+
+read.abundance.table <- function(filename) {
+ d <- read.table(cl$args[1], row.names=1, sep='\t', as.is=TRUE)
+ if( row.names(d)[1] == "ID" ) {
+ names(d) <- d[1,]
+ d <- d[-1,]
+ }
+ taxa.names <- rownames(d)
+ d <- apply(d, 2, as.numeric)
+ rownames(d) <- taxa.names
+ return(d)
+}
+
+doHeatmap <- function(d, out.pdf=NULL, graph.title=NULL, taxon.title="Taxon",
+ color_low='white', color_mid='red', color_high='black',
+ midpoint=50) {
+ require(ggplot2, quietly=T)
+ require(reshape2, quietly=T)
+
+ # re-order lines and columns (default clustering):
+ taxa.order <- hclust(dist(d))$order
+ if( ncol(d)>2 ) {
+ samples.order <- hclust(dist(t(d)))$order
+ } else {
+ samples.order <- seq_len(ncol(d))
+ }
+
+ heatmap.data <- d[taxa.order, samples.order]
+
+ heatmap.data <- melt(t(heatmap.data), varnames=c("sample", taxon.title),
+ value.name="abundance")
+ heatmap.data[[taxon.title]] <- gsub("_", " ", heatmap.data[[taxon.title]])
+ out.heatmap.plot <- ggplot(heatmap.data, aes_string(x="sample", y=taxon.title)) +
+ geom_tile(aes(fill=abundance)) +
+ scale_fill_gradient2(low=color_low,
+ mid=color_mid,
+ high=color_high,
+ midpoint=midpoint) +
+ theme(axis.text.x=element_text(angle=90, size=8,
+ hjust=1, vjust=.5),
+ axis.text.y=element_text(size=8)) +
+ ggtitle(graph.title)
+ if( !is.null(out.pdf) ) pdf(out.pdf)
+ print(out.heatmap.plot)
+ if( !is.null(out.pdf) ) invisible(dev.off())
+}
+
+if( !interactive() ) {
+ library(optparse)
+ option_list <- list(
+ make_option("--color_low", default='white', help="color of low values in heatmap"),
+ make_option("--color_mid", default='red', help="color of mid values in heatmap"),
+ make_option("--color_high",default='black', help="color of high values in heatmap"),
+ make_option("--midpoint", default = 50, type='integer',
+ help="midpoint position for the color scale in heatmap"),
+ make_option("--title", help="title of the plot"),
+ make_option("--taxon_title", default="Taxon", help="title of the Y-axis [Taxon]")
+ )
+ Parser <- OptionParser(prog = "doHeatmap.R", option_list=option_list)
+ cl <- parse_args(Parser, positional_arguments=2)
+
+ d <- read.abundance.table(cl$args[1])
+
+ doHeatmap(d, cl$args[2],
+ graph.title=cl$options$title,
+ taxon.title=cl$options$taxon_title,
+ color_low=cl$options$color_low,
+ color_mid=cl$options$color_mid,
+ color_high=cl$options$color_high,
+ midpoint=cl$options$midpoint)
+}
+
diff --git a/nodes/tools/statax_Rmodule/doPcoa.R b/nodes/tools/statax_Rmodule/doPcoa.R
new file mode 100755
index 0000000..4d8b7d0
--- /dev/null
+++ b/nodes/tools/statax_Rmodule/doPcoa.R
@@ -0,0 +1,221 @@
+#!/usr/bin/env Rscript
+
+if( !interactive() )
+ rm(list=ls(all=T))
+
+### FUNCTIONS
+my.write.table <- function(Table, file, sep="\t", quote=F) {
+ Table <- cbind(rownames(Table), Table)
+ names(Table)[1] <- ""
+ write.table(Table, file, col.names=T, row.names=F, quote=quote, sep=sep)
+}
+
+gglike_colors <- function(n, light=65, chroma=100, start=15) {
+ hues = seq(start, 360+start, length=n+1)
+ hcl(h=hues, l=light, c=chroma)[seq_len(n)]
+}
+
+doPCoA <- function(d, # column names will be used for the distance
+ out.pcoa="pcoa",
+ out.pcoa.pdf = NULL,
+ out.pcoa.tsv = NULL,
+ main=NULL,
+ distance="bray",
+ x.axis=1,
+ y.axis=2,
+ inverse.x=1,
+ inverse.y=1,
+ color.in=rainbow(nrow(d)),
+ color.out=rainbow(nrow(d)),
+ symbol=21,
+ cex=1,
+ text.col='black', #text.col arg in legend
+ legend.text=rownames(d),
+ is.interactive=interactive())
+{
+ out.pcoa.pdf <- ifelse(is.null(out.pcoa.pdf),
+ paste0(out.pcoa,".pdf"),
+ out.pcoa.pdf)
+ out.pcoa.tsv <- ifelse(is.null(out.pcoa.tsv),
+ paste0(out.pcoa,".tsv"),
+ out.pcoa.tsv)
+
+ if (nrow(d) <= 2) {
+ msg <- c("Error: PCoA cannot be done with less than 3 columns",
+ paste0("(Input file: ", cl$args[1], ")"))
+ write(msg, file=stderr())
+ if( !interactive() ) {
+ pdf(out.pcoa.pdf)
+ plot.new()
+ text(0, c(1, .95), msg, adj=0, col='red')
+ invisible(dev.off())
+ write(msg, file=out.pcoa.tsv)
+ quit(save="no", status=0)
+ }
+ }
+
+ require(ape, quietly=T)
+ suppressPackageStartupMessages(require(vegan, quietly=T))
+ distances <- vegdist(d, method=distance)
+
+ pcoa.result <- pcoa(distances)
+ x.pcoa.r <- pcoa.result$vectors[,x.axis] * inverse.x
+ y.pcoa.r <- pcoa.result$vectors[,y.axis] * inverse.y
+
+ my.write.table(as.matrix(distances), file=out.pcoa.tsv)
+
+ psymbol <- paste(color.in, color.out, symbol)
+ dup.symbol <- duplicated(psymbol)
+
+ if( length(legend.text) == nrow(d)) {
+ legend.text <- paste(legend.text[!dup.symbol],
+ ifelse(unique(psymbol) %in% psymbol[dup.symbol], "...", ""))
+ } else if( (excess.legend <- length(legend.text) - sum(!dup.symbol)) <0 ) {
+ warning(sprintf(paste("Length of legend (%s)",
+ "smaller than the number of unique plotting symbols (%s)"),
+ length(legend.text), sum(!dup.symbol)),
+ call.=F)
+ } else if ( excess.legend > 0) {
+ # removing unused legend
+ legend.text <- head(legend.text, sum(!dup.symbol))
+ }
+
+ data.psymbol <- t(data.frame(strsplit(psymbol[!dup.symbol], " ")))
+ legend.in <- data.psymbol[,1]
+ legend.out <- data.psymbol[,2]
+ legend.pch <- as.numeric(data.psymbol[,3])
+
+ h <- 1.1 * (max(y.pcoa.r) - min(y.pcoa.r))
+
+ legend.cols <- ceiling(length(legend.text)/30)
+ # 0.08 is approximately the width of a character in inches, whatever par("cin") is
+ # 0.8 is the cex
+ # 1.2 for adding the space between columns
+ mai.right <- 1.2 * legend.cols * 0.8 * max( 0.08*nchar(legend.text) )
+
+ dev_width <- 7 + mai.right
+
+ if ( !is.interactive ) {
+ pdf(out.pcoa.pdf, useDingbats=FALSE, width=dev_width)
+ } else {
+ dev.new(width=dev_width)
+ }
+
+ oldmai <- par("mai")[1:3]
+ par(mai=c(oldmai, mai.right), pty='s')
+
+ # rev() because the first points are usually more important
+ # (drawn at last: on top)
+ plot(rev(x.pcoa.r), rev(y.pcoa.r),
+ pch=rev(symbol),
+ cex=rev(cex),
+ cex.axis=0.9,
+ font.lab=2,
+ font.axis=2,
+ xlab=paste0("Dimension ", x.axis),
+ ylab=paste0("Dimension ", y.axis),
+ col=rev(color.out),
+ bg=rev(color.in))
+ title(main)
+
+ legend(x = par("usr")[2], y = par("usr")[4], legend = legend.text,
+ pch=legend.pch, col=legend.out, pt.bg=legend.in, text.col=text.col,
+ bty='n', xpd=TRUE, xjust=0, cex=.8, pt.cex=1.5, ncol=legend.cols)
+
+ if (!is.interactive) invisible(dev.off())
+}
+
+
+if( !interactive() ) {
+ library(optparse, quietly=T)
+
+ ### Command-line parsing
+ option_list <- list(
+ make_option(
+ c("-m", "--makefile"),
+ help=paste("R file defining plotting parameters:",
+ "\t\tcol (external color of the points. Default=rainbow)",
+ "\t\tbg (internal color of the points. Default=rainbow)",
+ "\t\tpch (style of the point, Default=21)",
+ "\t\tlegend (legend text. Default to column names from columns with a unique style)",
+ "\t\ttitle (Default: basename option)",
+ "\t\tany argument allowed in the plot() function can be given",
+ sep='\n')
+ ),
+ make_option("--basename", default="pcoa",
+ help=paste("default basename for the output files",
+ "(a .tsv and a .pdf will be created). ",
+ "Alternatively you can use --pdf and --tsv.")),
+ make_option("--pdf", default=NULL, help="output pdf file"),
+ make_option("--tsv", default=NULL, help="output tsv file"),
+ make_option(c("-b", "--binary"), action="store_true",
+ help="convert all abundances in presence/absence"),
+ make_option(c("-d", "--distance"), default='bray',
+ help="distance used to compute the distance matrix [bray]"),
+ make_option(c("-x", "--x-axis"), default=1, type='integer',
+ help="which dimension of the PCoA is on the X axis."),
+ make_option(c("-y", "--y-axis"), default=2, type='integer',
+ help="which dimension of the PCoA is on the Y axis."),
+ make_option("--inv-x", action="store_true", default=FALSE,
+ help="invert the X axis"),
+ make_option("--inv-y", action="store_true", default=FALSE,
+ help="invert the Y axis")
+ )
+
+ Parser <- OptionParser(prog = "doPcoa.R",
+ description=paste("Compute the distance matrix between ",
+ "columns of the input table, then compute",
+ "the Principal Coordinates Analysis (PCoA)",
+ "and produce the corresponding plot."),
+ option_list=option_list)
+ cl <- parse_args(Parser, positional_arguments=1)
+
+ if (cl$args == "-") cl$args <- "stdin"
+ d <- read.table(cl$args, row.names=1, sep='\t', as.is=TRUE)
+ if( row.names(d)[1] == "ID" ) {
+ names(d) <- d[1,]
+ d <- d[-1,]
+ }
+ td <- t(d)
+ sample.names <- rownames(td)
+ td <- apply(td, 2, as.numeric)
+ rownames(td) <- sample.names
+
+ # Load all variables defined in the makefile to a list called params
+ default.params <- list(legend=names(d),
+ col=rainbow(ncol(d)),
+ bg=rainbow(ncol(d)),
+ pch=21,
+ cex=1.5,
+ text.col='black',
+ title=NULL)
+
+ if (is.null(cl$options$makefile)) {
+ params <- default.params
+ } else {
+ makefile.env <- new.env()
+ assign("sample.names", sample.names, envir=makefile.env)
+ sys.source(cl$options$makefile, envir=makefile.env)
+ params <- as.list(makefile.env)
+ params <- c(params, default.params)
+ extra.params <- params[ !(names(params) %in% names(default.params)) ]
+ }
+
+ doPCoA(td,
+ out.pcoa = cl$options$basename,
+ out.pcoa.pdf = cl$options$pdf,
+ out.pcoa.tsv = cl$options$tsv,
+ main = params$title,
+ distance = cl$options$distance,
+ x.axis = cl$options[["x-axis"]],
+ y.axis = cl$options[["y-axis"]],
+ inverse.x= ifelse(cl$options[["inv-x"]], -1, 1),
+ inverse.y= ifelse(cl$options[["inv-y"]], -1, 1),
+ color.in=params$bg,
+ color.out=params$col,
+ symbol=as.numeric(params$pch),
+ cex=as.numeric(params$cex),
+ text.col=params$text.col,
+ legend.text=params$legend,
+ is.interactive=interactive())
+}
diff --git a/nodes/tools/statax_Rmodule/pvegclust-internal.R b/nodes/tools/statax_Rmodule/pvegclust-internal.R
new file mode 100644
index 0000000..b31daa1
--- /dev/null
+++ b/nodes/tools/statax_Rmodule/pvegclust-internal.R
@@ -0,0 +1,277 @@
+hc2axes <- function(x)
+{
+ A <- x$merge # (n,n-1) matrix
+ n <- nrow(A) + 1
+ x.axis <- c()
+ y.axis <- x$height
+
+ x.tmp <- rep(0,2)
+ zz <- match(1:length(x$order),x$order)
+
+ for(i in 1:(n-1)) {
+ ai <- A[i,1]
+
+ if(ai < 0)
+ x.tmp[1] <- zz[-ai]
+ else
+ x.tmp[1] <- x.axis[ai]
+
+ ai <- A[i,2]
+
+ if(ai < 0)
+ x.tmp[2] <- zz[-ai]
+ else
+ x.tmp[2] <- x.axis[ai]
+
+ x.axis[i] <- mean(x.tmp)
+ }
+
+ return(data.frame(x.axis=x.axis,y.axis=y.axis))
+}
+
+hc2split <- function(x)
+ {
+ # x is a hclust object
+ A <- x$merge # (n-1,n) matrix ### NO???? it is (n-1,2) OK seems like a typo
+ n <- nrow(A) + 1
+ B <- list()
+
+ for(i in 1:(n-1)){
+ ai <- A[i,1]
+
+ if(ai < 0)
+ B[[i]] <- -ai
+ else
+ B[[i]] <- B[[ai]]
+
+ ai <- A[i,2]
+
+ if(ai < 0)
+ B[[i]] <- sort(c(B[[i]],-ai))
+ else
+ B[[i]] <- sort(c(B[[i]],B[[ai]]))
+ }
+
+ CC <- matrix(rep(0,n*(n-1)),nrow=(n-1),ncol=n)
+
+ for(i in 1:(n-1)){
+ bi <- B[[i]]
+ m <- length(bi)
+ for(j in 1:m)
+ CC[i,bi[j]] <- 1
+ }
+
+ split <- list(pattern=apply(CC,1,paste,collapse=""), member=B)
+
+ return(split)
+ }
+
+pvegclust.node <- function(x, r,...)
+ {
+# require(pvclust)
+ mboot.node <- lapply(r, boot.hclust, nboot=x, ...)
+ return(mboot.node)
+ }
+
+boot.hclust <- function(r, data, object.hclust, method.dist, use.cor,
+ method.hclust, nboot, store, weight=F)
+{
+ n <- nrow(data)
+ size <- round(n*r, digits=0)
+ if(size == 0)
+ stop("invalid scale parameter(r)")
+ r <- size/n
+
+ pattern <- hc2split(object.hclust)$pattern
+ edges.cnt <- table(factor(pattern)) - table(factor(pattern))
+ st <- list()
+
+ # bootstrap start
+ rp <- as.character(round(r,digits=2)); if(r == 1) rp <- paste(rp,".0",sep="")
+ cat(paste("Bootstrap (r = ", rp, ")... ", sep=""))
+ w0 <- rep(1,n) # equal weight
+ na.flag <- 0
+
+ for(i in 1:nboot){
+ if(weight && r>10) { ## <- this part should be improved
+ w1 <- as.vector(rmultinom(1,size,w0)) # resampled weight
+ suppressWarnings(distance <- distw.pvegclust(data,w1,method=method.dist,use.cor=use.cor))
+ } else {
+ smpl <- sample(1:n, size, replace=TRUE)
+ suppressWarnings(distance <- dist.pvegclust(data[smpl,],method=method.dist,use.cor=use.cor))
+ }
+ if(all(is.finite(distance))) { # check if distance is valid
+ x.hclust <- hclust(distance,method=method.hclust)
+ pattern.i <- hc2split(x.hclust)$pattern # split
+ edges.cnt <- edges.cnt + table(factor(pattern.i, levels=pattern))
+ } else {
+ x.hclust <- NULL
+ #na.flag <- 1
+ na.flag <- na.flag + 1
+ }
+
+ if(store)
+ st[[i]] <- x.hclust
+ }
+ cat("Done.\n")
+ # bootstrap done
+
+ if(na.flag == 1)
+ warning(paste("inappropriate distance matrices are omitted in computation: r = ", r, na.flag), call.=FALSE)
+
+ boot <- list(edges.cnt=edges.cnt, method.dist=method.dist, use.cor=use.cor,
+ method.hclust=method.hclust, nboot=nboot, size=size, r=r, store=st)
+ class(boot) <- "boot.hclust"
+
+ return(boot)
+}
+
+pvegclust.merge <- function(data, object.hclust, mboot){
+
+ pattern <- hc2split(object.hclust)$pattern
+
+ r <- unlist(lapply(mboot,"[[","r"))
+ nboot <- unlist(lapply(mboot,"[[","nboot"))
+ store <- lapply(mboot,"[[", "store")
+
+ rl <- length(mboot)
+ ne <- length(pattern)
+
+ edges.bp <- edges.cnt <- data.frame(matrix(rep(0,ne*rl),nrow=ne,ncol=rl))
+ row.names(edges.bp) <- pattern
+ names(edges.cnt) <- paste("r", 1:rl, sep="")
+
+ for(j in 1:rl) {
+ edges.cnt[,j] <- as.vector(mboot[[j]]$edges.cnt)
+ edges.bp[,j] <- edges.cnt[,j] / nboot[j]
+ }
+
+ ms.fitted <- lapply(as.list(1:ne),
+ function(x, edges.bp, r, nboot){
+ msfit(as.vector(t(edges.bp[x,])), r, nboot)},
+ edges.bp, r, nboot)
+ class(ms.fitted) <- "mslist"
+
+ p <- lapply(ms.fitted,"[[","p")
+ se <- lapply(ms.fitted,"[[","se")
+ coef <- lapply(ms.fitted,"[[","coef")
+
+ au <- unlist(lapply(p,"[[","au"))
+ bp <- unlist(lapply(p,"[[","bp"))
+ se.au <- unlist(lapply(se,"[[","au"))
+ se.bp <- unlist(lapply(se,"[[","bp"))
+ v <- unlist(lapply(coef,"[[","v"))
+ cc <- unlist(lapply(coef,"[[","c"))
+ pchi <- unlist(lapply(ms.fitted,"[[","pchi"))
+
+ edges.pv <- data.frame(au=au, bp=bp, se.au=se.au, se.bp=se.bp,
+ v=v, c=cc, pchi=pchi)
+
+ row.names(edges.pv) <- row.names(edges.cnt) <- 1:ne
+
+ result <- list(hclust=object.hclust, edges=edges.pv, count=edges.cnt,
+ msfit=ms.fitted, nboot=nboot, r=r, store=store)
+
+ class(result) <- "pvegclust"
+ return(result)
+}
+
+dist.pvegclust <- function(x, method="euclidean", use.cor="pairwise.complete.obs")
+{
+ if(!is.na(pmatch(method,"correlation"))){
+ res <- as.dist(1 - cor(x, method="pearson", use=use.cor))
+ attr(res,"method") <- "correlation"
+ return(res)
+ }
+ else if(!is.na(pmatch(method,"abscor"))){
+ res <- as.dist(1 - abs(cor(x,method="pearson",use=use.cor)))
+ attr(res,"method") <- "abscor"
+ return(res)
+ }
+ else if(!is.na(pmatch(method,"uncentered"))){
+ if(sum(is.na(x)) > 0){
+ x <- na.omit(x)
+ warning("Rows including NAs were omitted")
+ }
+ x <- as.matrix(x)
+ P <- crossprod(x)
+ qq <- matrix(diag(P),ncol=ncol(P))
+ Q <- sqrt(crossprod(qq))
+ res <- as.dist(1 - P/Q)
+ attr(res,"method") <- "uncentered"
+ return(res)
+ }
+ else if (!is.na(pmatch(method, c("minkowski", "binary", "maximum"))))
+ {
+ return(dist(t(x),method))
+ } else
+ {
+ return(vegdist(t(x),method))
+ }
+}
+
+
+corw <- function(x,w,
+ use=c("all.obs","complete.obs","pairwise.complete.obs")
+ ) {
+ if(is.data.frame(x)) x <- as.matrix(x)
+ x <- x[w>0,,drop=F]
+ w <- w[w>0]
+
+ n <- nrow(x) # sample size
+ m <- ncol(x) # number of variables
+ if(missing(w)) w <- rep(1,n)
+ r <- matrix(0,m,m,dimnames=list(colnames(x),colnames(x)))
+ diag(r) <- 1
+ use <- match.arg(use)
+
+ pairu <- F
+ if(use=="all.obs") {
+ u <- rep(T,n)
+ } else if(use=="complete.obs") {
+ u <- apply(x,1,function(y) !any(is.na(y)))
+ } else if(use=="pairwise.complete.obs") {
+ pairu <- T
+ ux <- is.finite(x)
+ } else stop("unknown use")
+
+ for(i in 1+seq(length=m-1)) {
+ for(j in seq(length=i-1)) {
+ if(pairu) u <- ux[,i] & ux[,j]
+ wu <- w[u]; xi <- x[u,i]; xj <- x[u,j]
+ ws <- sum(wu)
+ if(ws > 1e-8) {
+ xi <- xi - sum(wu*xi)/ws
+ xj <- xj - sum(wu*xj)/ws
+ vxi <- sum(wu*xi*xi)/ws
+ vxj <- sum(wu*xj*xj)/ws
+ if(min(vxi,vxj) > 1e-8) {
+ vxij <- sum(wu*xi*xj)/ws
+ rij <- vxij/sqrt(vxi*vxj)
+ } else {
+ rij <- 0
+ }
+ } else {
+ rij <- 0
+ }
+ r[i,j] <- r[j,i] <- rij
+ }
+ }
+ r
+}
+
+### calculate distance by weight
+distw.pvegclust <- function(x,w,method="correlation", use.cor="pairwise.complete.obs")
+{
+ if(!is.na(pmatch(method,"correlation"))){
+ res <- as.dist(1 - corw(x,w, use=use.cor))
+ attr(res,"method") <- "correlation"
+ return(res)
+ }
+ else if(!is.na(pmatch(method,"abscor"))){
+ res <- as.dist(1 - abs(corw(x,w, use=use.cor)))
+ attr(res,"method") <- "abscor"
+ return(res)
+ }
+ stop("wrong method")
+}
diff --git a/nodes/tools/statax_Rmodule/pvegclust.R b/nodes/tools/statax_Rmodule/pvegclust.R
new file mode 100644
index 0000000..89b9566
--- /dev/null
+++ b/nodes/tools/statax_Rmodule/pvegclust.R
@@ -0,0 +1,544 @@
+pvegclust <- function(data, method.hclust="average",
+ method.dist="correlation", use.cor="pairwise.complete.obs",
+ nboot=1000, r=seq(.5,1.4,by=.1), store=FALSE, weight=FALSE)
+ {
+ # data: (n,p) matrix, n-samples, p-variables
+ n <- nrow(data); p <- ncol(data)
+
+ # hclust for original data
+# METHODS <- c("ward", "single", "complete", "average", "mcquitty",
+# "median", "centroid")
+# method.hclust <- METHODS[pmatch(method.hclust, METHODS)]
+ if(!is.na(pmatch(method.dist, c('bray', 'kulczynski', 'cao', 'mahalanobis',
+ 'jaccard', 'gower', 'altGower', 'morisita',
+ 'horn', 'mountford', 'raup', 'binomial', 'chao'))))
+ if(!(suppressPackageStartupMessages(require(vegan, quietly=TRUE))))
+ stop(paste("Package vegan is required for dist.pvegclust with method", method.dist))
+
+ distance <- dist.pvegclust(data, method=method.dist, use.cor=use.cor)
+ data.hclust <- hclust(distance, method=method.hclust)
+
+ # ward -> ward.D
+ if(method.hclust == "ward") method.hclust <- "ward.D"
+
+ # multiscale bootstrap
+ size <- floor(n*r)
+ rl <- length(size)
+
+ if(rl == 1) {
+ if(r != 1.0)
+ warning("Relative sample size r is set to 1.0. AU p-values are not calculated\n")
+
+ r <- list(1.0)
+ }
+ else
+ r <- as.list(size/n)
+
+ mboot <- lapply(r, boot.hclust, data=data, object.hclust=data.hclust, nboot=nboot,
+ method.dist=method.dist, use.cor=use.cor,
+ method.hclust=method.hclust, store=store, weight=weight)
+
+ result <- pvegclust.merge(data=data, object.hclust=data.hclust, mboot=mboot)
+
+ return(result)
+ }
+
+plot.pvegclust <- function(x, print.pv=TRUE, print.num=TRUE, float=0.01,
+ col.pv=c(2,3,8), cex.pv=0.8, font.pv=NULL,
+ col=NULL, cex=NULL, font=NULL, lty=NULL, lwd=NULL,
+ main=NULL, sub=NULL, xlab=NULL, ...)
+{
+ if(is.null(main))
+ main="Cluster dendrogram with AU/BP values (%)"
+
+ if(is.null(sub))
+ sub=paste("Cluster method: ", x$hclust$method, sep="")
+
+ if(is.null(xlab))
+ xlab=paste("Distance: ", x$hclust$dist.method)
+
+ plot(x$hclust, main=main, sub=sub, xlab=xlab, col=col, cex=cex,
+ font=font, lty=lty, lwd=lwd, ...)
+
+ if(print.pv)
+ text(x, col=col.pv, cex=cex.pv, font=font.pv, float=float, print.num=print.num)
+}
+
+text.pvegclust <- function(x, col=c(2,3,8), print.num=TRUE, float=0.01, cex=NULL, font=NULL, ...)
+{
+ axes <- hc2axes(x$hclust)
+ usr <- par()$usr; wid <- usr[4] - usr[3]
+ au <- as.character(round(x$edges[,"au"]*100))
+ bp <- as.character(round(x$edges[,"bp"]*100))
+ rn <- as.character(row.names(x$edges))
+ au[length(au)] <- "au"
+ bp[length(bp)] <- "bp"
+ rn[length(rn)] <- "edge #"
+ a <- text(x=axes[,1], y=axes[,2] + float * wid, au,
+ col=col[1], pos=2, offset=.3, cex=cex, font=font)
+ a <- text(x=axes[,1], y=axes[,2] + float * wid, bp,
+ col=col[2], pos=4, offset=.3, cex=cex, font=font)
+ if(print.num)
+ a <- text(x=axes[,1], y=axes[,2], rn,
+ col=col[3], pos=1, offset=.3, cex=cex, font=font)
+}
+
+print.pvegclust <- function(x, which=NULL, digits=3, ...)
+{
+ if(is.null(which)) which <- 1:nrow(x$edges)
+ cat("\n")
+ cat(paste("Cluster method: ", x$hclust$method, "\n", sep=""))
+ cat(paste("Distance : ", x$hclust$dist.method, "\n\n", sep=""))
+ cat("Estimates on edges:\n\n")
+ print(round(x$edges[which,], digits=digits))
+ cat("\n")
+}
+
+summary.pvegclust <- function(object, ...){
+ class(object) <- "list"
+ summary(object, ...)
+}
+
+pvrect <- function(x, alpha=0.95, pv="au", type="geq", max.only=TRUE, border=2, ...)
+ {
+ len <- nrow(x$edges)
+ member <- hc2split(x$hclust)$member
+ order <- x$hclust$order
+ usr <- par("usr")
+ xwd <- usr[2] - usr[1]
+ ywd <- usr[4] - usr[3]
+ cin <- par()$cin
+
+ ht <- c()
+ j <- 1
+
+ if(is.na(pm <- pmatch(type, c("geq", "leq", "gt", "lt"))))
+ stop("Invalid type argument: see help(pvrect)")
+
+ for(i in (len - 1):1)
+ {
+ if (pm==1) wh <- (x$edges[i,pv] >= alpha) # Greater than or EQuals
+ else if(pm==2) wh <- (x$edges[i,pv] <= alpha) # Lower than or EQuals
+ else if(pm==3) wh <- (x$edges[i,pv] > alpha) # Greater Than
+ else if(pm==4) wh <- (x$edges[i,pv] > alpha) # Lower Than
+
+ if(wh)
+ {
+ mi <- member[[i]]
+ ma <- match(mi, order)
+
+ if(max.only == FALSE || (max.only && sum(match(ma, ht, nomatch=0)) == 0))
+ {
+ xl <- min(ma)
+ xr <- max(ma)
+ yt <- x$hclust$height[i]
+ yb <- usr[3]
+
+ mx <- xwd / length(member) / 3
+ my <- ywd / 200
+
+ rect(xl - mx, yb + my, xr + mx, yt + my, border=border, shade=NULL, ...)
+
+ j <- j + 1
+ }
+ ht <- c(ht, ma)
+ }
+ }
+ }
+
+msplot <- function(x, edges=NULL, ...)
+ {
+ if(is.null(edges)) edges <- 1:length(x$msfit)
+ d <- length(edges)
+
+ mfrow.bak <- par()$mfrow
+ on.exit(par(mfrow=mfrow.bak))
+
+ par(mfrow=n2mfrow(d))
+
+ for(i in edges) {
+ if(i == 1 || (i %% 10 == 1 && i > 20))
+ main <- paste(i, "st edge", sep="")
+ else if(i == 2 || (i %% 10 == 2 && i > 20))
+ main <- paste(i, "nd edge", sep="")
+ else if(i == 3 || (i %% 10 == 3 && i > 20))
+ main <- paste(i, "rd edge", sep="")
+ else
+ main <- paste(i, "th edge", sep="")
+
+ plot(x$msfit[[i]], main=main, ...)
+ }
+ }
+
+lines.pvegclust <- function(x, alpha=0.95, pv="au", type="geq", col=2, lwd=2, ...)
+ {
+ len <- nrow(x$edges)
+ member <- hc2split(x$hclust)$member
+ order <- x$hclust$order
+ usr <- par("usr")
+ xwd <- usr[2] - usr[1]
+ ywd <- usr[4] - usr[3]
+ cin <- par()$cin
+
+ ht <- c()
+ j <- 1
+
+ if(is.na(pm <- pmatch(type, c("geq", "leq", "gt", "lt"))))
+ stop("Invalid type argument: see help(lines.pvegclust)")
+
+ for(i in (len - 1):1)
+ {
+ if (pm==1) wh <- (x$edges[i,pv] >= alpha) # Greater than or EQuals
+ else if(pm==2) wh <- (x$edges[i,pv] <= alpha) # Lower than or EQuals
+ else if(pm==3) wh <- (x$edges[i,pv] > alpha) # Greater Than
+ else if(pm==4) wh <- (x$edges[i,pv] > alpha) # Lower Than
+
+ if(wh)
+ {
+ mi <- member[[i]]
+ ma <- match(mi, order)
+
+ if(sum(match(ma, ht, nomatch=0)) == 0)
+ {
+ xl <- min(ma)
+ xr <- max(ma)
+ yt <- x$hclust$height[i]
+ yb <- usr[3]
+
+ mx <- xwd/length(member)/10
+
+ segments(xl-mx, yb, xr+mx, yb, xpd=TRUE, col=col, lwd=lwd, ...)
+
+ j <- j + 1
+ }
+ ht <- c(ht, ma)
+ }
+ }
+ }
+
+pvpick <- function(x, alpha=0.95, pv="au", type="geq", max.only=TRUE)
+ {
+ len <- nrow(x$edges)
+ member <- hc2split(x$hclust)$member
+ order <- x$hclust$order
+
+ ht <- c()
+ a <- list(clusters=list(), edges=c()); j <- 1
+
+ if(is.na(pm <- pmatch(type, c("geq", "leq", "gt", "lt"))))
+ stop("Invalid type argument: see help(pickup)")
+
+ for(i in (len - 1):1)
+ {
+ if (pm==1) wh <- (x$edges[i,pv] >= alpha) # Greater than or Equals
+ else if(pm==2) wh <- (x$edges[i,pv] <= alpha) # Lower than or Equals
+ else if(pm==3) wh <- (x$edges[i,pv] > alpha) # Greater Than
+ else if(pm==4) wh <- (x$edges[i,pv] < alpha) # Lower Than
+
+ if(wh)
+ {
+ mi <- member[[i]]
+ ma <- match(mi, order)
+
+ if(max.only == FALSE || (max.only && sum(match(ma, ht, nomatch=0)) == 0))
+ {
+ a$clusters[[j]] <- x$hclust$labels[mi]
+ a$edges <- c(a$edges,i)
+
+ j <- j + 1
+ }
+ ht <- c(ht, ma)
+ }
+ }
+
+ a$edges <- a$edges[length(a$edges):1]
+ a$clusters <- a$clusters[length(a$edges):1]
+
+ return(a)
+ }
+
+parPvegclust <- function(cl=NULL, data, method.hclust="average",
+ method.dist="correlation", use.cor="pairwise.complete.obs",
+ nboot=1000, r=seq(.5,1.4,by=.1), store=FALSE,
+ weight=FALSE,
+ init.rand=TRUE, seed=NULL, iseed=NULL)
+ {
+ # if(!(require(snow))) stop("Package snow is required for parPvegclust.")
+ if(!(require(parallel))) stop("Package parallel is required for parPvegclust.")
+ if(!is.na(pmatch(method.dist, c('bray', 'kulczynski', 'cao', 'mahalanobis',
+ 'jaccard', 'gower', 'altGower', 'morisita',
+ 'horn', 'mountford', 'raup', 'binomial', 'chao'))))
+ if(!(suppressPackageStartupMessages(require(vegan, quietly=TRUE))))
+ stop(paste("Package vegan is required for dist.pvegclust with method", method.dist))
+
+ if((ncl <- length(cl)) < 2 || ncl > nboot) {
+ if(ncl > nboot)
+ warning("Too small value for nboot: non-parallel version is executed.")
+ else
+ warning("Too small (or NULL) cluster: non-parallel version is executed.")
+
+ return(pvegclust(data,method.hclust,method.dist,use.cor,nboot,r,store))
+ }
+
+ if(init.rand) {
+ if(is.null(iseed) && !is.null(seed)) {
+ warning("\"seed\" option is deprecated. It is available for back compatibility but will be unavailable in the future.\nConsider using \"iseed\" instead.")
+
+ if(length(seed) != length(cl))
+ stop("seed and cl should have the same length.")
+
+ # setting random seeds
+ parallel::parLapply(cl, as.list(seed), set.seed)
+ } else {
+ parallel::clusterSetRNGStream(cl = cl, iseed = iseed)
+ }
+ }
+
+ # data: (n,p) matrix, n-samples, p-variables
+ n <- nrow(data); p <- ncol(data)
+
+ # hclust for original data
+ #METHODS <- c("ward", "single", "complete", "average", "mcquitty",
+ # "median", "centroid")
+ #method.hclust <- METHODS[pmatch(method.hclust, METHODS)]
+
+ distance <- dist.pvegclust(data, method=method.dist, use.cor=use.cor)
+ data.hclust <- hclust(distance, method=method.hclust)
+
+ # ward -> ward.D
+ if(method.hclust == "ward") method.hclust <- "ward.D"
+
+ # multiscale bootstrap
+ size <- floor(n*r)
+ rl <- length(size)
+
+ if(rl == 1) {
+ if(r != 1.0)
+ warning("Relative sample size r is set to 1.0. AU p-values are not calculated\n")
+
+ r <- list(1.0)
+ }
+ else
+ r <- as.list(size/n)
+
+ nbl <- as.list(rep(nboot %/% ncl,times=ncl))
+
+ if((rem <- nboot %% ncl) > 0)
+ nbl[1:rem] <- lapply(nbl[1:rem], "+", 1)
+
+ cat("Multiscale bootstrap... ")
+
+ clusterExport(cl, varlist=c("boot.hclust","hc2split","distw.pvegclust","dist.pvegclust",
+ "vegdist"))
+ mlist <- parallel::parLapply(cl, nbl, pvegclust.node,
+ r=r, data=data, object.hclust=data.hclust, method.dist=method.dist,
+ use.cor=use.cor, method.hclust=method.hclust,
+ store=store, weight=weight)
+ cat("Done.\n")
+
+ mboot <- mlist[[1]]
+
+ for(i in 2:ncl) {
+ for(j in 1:rl) {
+ mboot[[j]]$edges.cnt <- mboot[[j]]$edges.cnt + mlist[[i]][[j]]$edges.cnt
+ mboot[[j]]$nboot <- mboot[[j]]$nboot + mlist[[i]][[j]]$nboot
+ mboot[[j]]$store <- c(mboot[[j]]$store, mlist[[i]][[j]]$store)
+ }
+ }
+
+ result <- pvegclust.merge( data=data, object.hclust=data.hclust, mboot=mboot)
+
+ return(result)
+ }
+
+mcPvegclust <- function(ncores=1, data, method.hclust="average",
+ method.dist="correlation", use.cor="pairwise.complete.obs",
+ nboot=1000, r=seq(.5,1.4,by=.1), store=FALSE,
+ weight=FALSE,
+ init.rand=TRUE, seed=NULL, iseed=NULL)
+ {
+ # if(!(require(snow))) stop("Package snow is required for parPvegclust.")
+ if(!(require(parallel, quietly=TRUE))) stop("Package parallel is required for parPvegclust.")
+ if(!is.na(pmatch(method.dist, c('bray', 'kulczynski', 'cao', 'mahalanobis',
+ 'jaccard', 'gower', 'altGower', 'morisita',
+ 'horn', 'mountford', 'raup', 'binomial', 'chao'))))
+ if(!(suppressPackageStartupMessages(require(vegan, quietly=TRUE))))
+ stop(paste("Package vegan is required for dist.pvegclust with method", method.dist))
+
+ if(ncores < 2 || ncores > nboot) {
+ if(ncores > nboot)
+ warning("Too small value for nboot: non-parallel version is executed.")
+ else
+ warning("Too small (or NULL) cluster: non-parallel version is executed.")
+
+ return(pvegclust(data,method.hclust,method.dist,use.cor,nboot,r,store))
+ }
+
+ # data: (n,p) matrix, n-samples, p-variables
+ n <- nrow(data); p <- ncol(data)
+
+ distance <- dist.pvegclust(data, method=method.dist, use.cor=use.cor)
+ data.hclust <- hclust(distance, method=method.hclust)
+
+ # ward -> ward.D
+ if(method.hclust == "ward") method.hclust <- "ward.D"
+
+ # multiscale bootstrap
+ size <- floor(n*r)
+ rl <- length(size)
+
+ if(rl == 1) {
+ if(r != 1.0)
+ warning("Relative sample size r is set to 1.0. AU p-values are not calculated\n")
+
+ r <- list(1.0)
+ }
+ else
+ r <- as.list(size/n)
+
+ nbl <- as.list(rep(nboot %/% ncores,times=ncores))
+
+ if((rem <- nboot %% ncores) > 0)
+ nbl[1:rem] <- lapply(nbl[1:rem], "+", 1)
+
+ cat("Multiscale bootstrap... ")
+
+ mlist <- parallel::mclapply(nbl, pvegclust.node,
+ r=r, data=data, object.hclust=data.hclust, method.dist=method.dist,
+ use.cor=use.cor, method.hclust=method.hclust, store=store, weight=weight,
+ mc.cores=ncores, mc.silent=TRUE) #mc.set.seed=TRUE (default)
+ cat("Done.\n")
+
+ mboot <- mlist[[1]]
+
+ for(i in 2:ncores) {
+ for(j in 1:rl) {
+ mboot[[j]]$edges.cnt <- mboot[[j]]$edges.cnt + mlist[[i]][[j]]$edges.cnt
+ mboot[[j]]$nboot <- mboot[[j]]$nboot + mlist[[i]][[j]]$nboot
+ mboot[[j]]$store <- c(mboot[[j]]$store, mlist[[i]][[j]]$store)
+ }
+ }
+
+ result <- pvegclust.merge( data=data, object.hclust=data.hclust, mboot=mboot)
+
+ return(result)
+ }
+
+
+
+msfit <- function(bp, r, nboot) {
+
+ if(length(bp) != length(r))
+ stop("bp and r should have the same length")
+
+ nboot <- rep(nboot, length=length(bp))
+
+ use <- bp > 0 & bp < 1
+
+ p <- se <- c(0,0); names(p) <- names(se) <- c("au", "bp")
+ coef <- c(0,0); names(coef) <- c("v", "c")
+
+ a <- list(p=p, se=se, coef=coef, df=0, rss=0, pchi=0); class(a) <- "msfit"
+
+ if(sum(use) < 2) {
+ # if(mean(bp) < .5) a$p[] <- c(0, 0) else a$p[] <- c(1, 1)
+ if(mean(bp) < .5) a$p[] <- c(0, bp[r==1.0]) else a$p[] <- c(1, bp[r==1.0])
+ return(a)
+ }
+
+ bp <- bp[use]; r <- r[use]; nboot <- nboot[use]
+ zz <- -qnorm(bp)
+ vv <- ((1 - bp) * bp) / (dnorm(zz)^2 * nboot)
+ a$use <- use; a$r <- r; a$zz <- zz
+
+ X <- cbind(sqrt(r), 1/sqrt(r)); dimnames(X) <- list(NULL, c("v","c"))
+ fit <- lsfit(X, zz, 1/vv, intercept=FALSE)
+ a$coef <- coef <- fit$coef
+
+ h.au <- c(1, -1); h.bp <- c(1, 1)
+
+ z.au <- drop(h.au %*% coef); z.bp <- drop(h.bp %*% coef)
+ a$p["au"] <- pnorm(-z.au); a$p["bp"] <- pnorm(-z.bp)
+ V <- solve(crossprod(X, X/vv))
+ vz.au <- drop(h.au %*% V %*% h.au); vz.bp <- drop(h.bp %*% V %*% h.bp)
+ a$se["au"] <- dnorm(z.au) * sqrt(vz.au); a$se["bp"] <- dnorm(z.bp) * sqrt(vz.bp)
+ a$rss <- sum(fit$residual^2/vv)
+
+ if((a$df <- sum(use) - 2) > 0) {
+ a$pchi <- pchisq(a$rss, lower.tail=FALSE, df=a$df)
+ }
+ else a$pchi <- 1.0
+
+ return(a)
+}
+
+plot.msfit <- function(x, curve=TRUE, main=NULL, sub=NULL, xlab=NULL, ylab=NULL, ...)
+{
+ if(is.null(main)) main="Curve fitting for multiscale bootstrap resampling"
+ if(is.null(sub))
+ {
+ sub <- paste("AU = ", round(x$p["au"], digits=2),
+ ", BP = ", round(x$p["bp"], digits=2),
+ ", v = ", round(x$coef["v"], digits=2),
+ ", c = ", round(x$coef["c"], digits=2),
+ ", pchi = ", round(x$pchi, digits=2))
+ }
+ if(is.null(xlab)) xlab=expression(sqrt(r))
+ if(is.null(ylab)) ylab=expression(z-value)
+
+ a <- sqrt(x$r); b <- x$zz
+
+ if(!is.null(a) && !is.null(b)) {
+ plot(a, b, main=main, sub=sub, xlab=xlab, ylab=ylab, ...)
+ if(curve) lines(x, ...)
+ }
+ else if (!is.null(a)){
+ plot(0, 0, main=main, sub=sub, xlab=xlab, ylab=ylab,
+ type="n", xaxt="n", yaxt="n", ...)
+ a <- text(mean(a), 0, "No fitting")
+ }
+}
+
+lines.msfit <- function(x, col=2, lty=1, ...) {
+ v <- x$coef["v"]; c <- x$coef["c"]
+ curve(v * x + c / x, add=TRUE, col=col, lty=lty)
+}
+
+summary.msfit <- function(object, digits=3, ...) {
+ cat("\nResult of curve fitting for multiscale bootstrap resampling:\n\n")
+
+ cat("Estimated p-values:\n")
+ pv <- data.frame(object$p, object$se)
+ names(pv) <- c("Estimate", "Std. Error"); row.names(pv) <- c("au", "bp")
+ print(pv, digits=digits); cat("\n")
+
+ cat("Estimated coefficients:\n")
+ coef <- object$coef
+ print(coef, digits=digits); cat("\n")
+
+ cat(paste("Residual sum of squares: ", round(object$rss,digits=digits)),
+ ", p-value: ", round(object$pchi, digits=digits),
+ " on ", object$df, " DF\n\n", sep="")
+}
+
+seplot <- function(object, type=c("au", "bp"), identify=FALSE,
+ main=NULL, xlab=NULL, ylab=NULL, ...)
+ {
+ if(!is.na(pm <- pmatch(type[1], c("au", "bp")))) {
+ wh <- c("au", "bp")[pm]
+
+ if(is.null(main))
+ main <- "p-value vs standard error plot"
+ if(is.null(xlab))
+ xlab <- c("AU p-value", "BP value")[pm]
+ if(is.null(ylab))
+ ylab <- "Standard Error"
+
+ plot(object$edges[,wh], object$edges[,paste("se", wh, sep=".")],
+ main=main, xlab=xlab, ylab=ylab, ...)
+ if(identify)
+ identify(x=object$edges[,wh], y=object$edges[,paste("se", wh, sep=".")],
+ labels=row.names(object$edges))
+ }
+ else stop("'type' should be \"au\" or \"bp\".")
+ }
diff --git a/parts.py b/parts.py
new file mode 100644
index 0000000..4efe567
--- /dev/null
+++ b/parts.py
@@ -0,0 +1,455 @@
+#!/usr/bin/env python
+
+""" For each library, builds the nodes corresponding to the sequence of:
+ - Bowtie2,
+ - picardtools SortSam,
+ - bam_rmdup / MarkDuplicates,
+ - Samtools view (to remove marked duplicates)
+ - Metaphlan.
+"""
+
+import os.path
+from glob import glob
+
+import nodes.tools as tools
+
+from pypeline.common.utilities import safe_coerce_to_tuple
+from pypeline.common.console import print_warn
+from pypeline.atomiccmd.builder import apply_options, AtomicCmdBuilderError
+
+from nodes.bowtie2_simple import Bowtie2Node
+from nodes.remove_pair2 import removePair2Node
+from nodes.samtools import SortSamNode
+from nodes.picard_simple import MarkDuplicatesNode
+from nodes.bam_rmdup import FilterCollapsedBAMNode
+from nodes.metaphlan import MetaphlanNode, MergeTablesNode, \
+ Metaphlan2LefseNode
+# for krona, statax, lefse:
+from nodes.execute import ExecNode, SimpleExecNode, ExecModuleNode
+
+
+_trimmed_types = ("Collapsed", "Paired", "Singles")
+
+def profiling(makefile, config, sep='_'):
+ """returns nodes from the profiling, ready to be used by the Rscripts part
+ sep is the string separating sample name and library name in the output"""
+ rmdup_nodes_list = []
+ metaphlan_nodes_list = []
+
+ summary_params = {'dependencies': [],
+ 'input_files': [],
+ 'IDs': [],
+ 'directories': [],
+ 'function_in_args': None,
+ 'function_out_args': ['output_file'],
+ 'output_file': os.path.join(makefile['OutDir'],
+ 'summary_readcounts.tsv')}
+ summary_params['output_files'] = summary_params['output_file']
+
+ for (Samplename, Sample) in makefile['Samples'].iteritems():
+ metaphlan_params = []
+
+ for (Libname, inputlib) in Sample.iteritems():
+
+ folder = os.path.join(makefile['OutDir'], Samplename, Libname)
+ ID = Samplename + sep + Libname
+ summary_params['directories'].append(folder)
+ summary_params['IDs'].append(ID)
+
+ if Samplename not in makefile['Metaphlan']['Pool']:
+ output_file = os.path.join(folder, 'taxa.tsv')
+ metaphlan_params.append({"dependencies": [],
+ "input_files" : [],
+ "output_file" : output_file,
+ "ID" : ID})
+
+ elif not metaphlan_params:
+ print_warn("Pooling sample: " + Samplename)
+
+ folder = os.path.join(makefile['OutDir'], Samplename)
+
+ output_file = os.path.join(folder, 'taxa.tsv')
+ metaphlan_params.append({"dependencies": [],
+ "input_files" : [],
+ "output_file" : output_file,
+ "ID": Samplename})
+
+
+ for trimmed_type, input_files in inputlib.iteritems():
+
+ dependencies = ()
+
+ output_name = 'reads.' + trimmed_type.lower()
+ input_files_1, input_files_2 = zip(*input_files)
+ bowtie2_options = makefile['Bowtie2']
+
+ if not all(input_files_2):
+ if any(input_files_2):
+ # There cannot be a different number of pair1 and pair2
+ raise BaseException
+ else:
+ input_files_2 = None
+ else:
+ bowtie2_options.update({PEopt: True for PEopt in \
+ ['--no-discordant']})
+ #'--no-overlap']})
+
+ output_base = os.path.join(makefile['OutDir'],
+ Samplename, Libname,
+ output_name + '.bowtie2out')
+ output_file = output_base + '.sam'
+ log_file = output_base + '.stats'
+
+ # Bowtie2
+ alignment_node = _build_bowtie2_nodes(config,
+ input_files_1,
+ input_files_2,
+ output_file,
+ log_file,
+ dependencies,
+ makefile['Bowtie2'])
+ summary_params['input_files'].append(log_file)
+ summary_params['dependencies'].append(alignment_node)
+
+ if trimmed_type == 'Paired':
+ input_file = output_file
+ output_file = input_file.replace('.sam', '.filter.sam')
+ output_file_trash = input_file.replace('.sam',
+ '.trashed.sam')
+ remove_pair2_node = removePair2Node(input_file,
+ output_file,
+ output_file_trash,
+ dependencies = alignment_node)
+ dependencies = (remove_pair2_node,)
+ else:
+ dependencies = (alignment_node,)
+
+ # Samtools convert to bam and sort.
+ input_file = output_file
+ output_file = input_file.replace('.sam', '.sorted.bam')
+ sort_node = SortSamNode(input_file, output_file,
+ dependencies=dependencies)
+ # Remove duplicates
+ input_file = output_file
+ output_file = input_file.replace('sorted.bam', 'sorted.no_dup.bam')
+
+ rmdup_cls = FilterCollapsedBAMNode if trimmed_type == 'Collapsed' \
+ else MarkDuplicatesNode
+ rmdup_node = rmdup_cls(config = config,
+ input_bams = (input_file,),
+ output_bam = output_file,
+ keep_dupes = False,
+ dependencies = sort_node)
+ summary_params['input_files'].append(output_file)
+ summary_params['dependencies'].append(rmdup_node)
+
+ if Samplename+":"+Libname in makefile['Metaphlan']['Exclude']:
+ print_warn("Excluding %s:%s (%s)" % (Samplename, Libname,
+ trimmed_type))
+ rmdup_nodes_list.append(rmdup_node)
+ else:
+ metaphlan_params[-1]['input_files'].append(output_file)
+ metaphlan_params[-1]['dependencies'].append(rmdup_node)
+ # END of for-loop on each trimmed_type
+ # END of the for-loop on each library
+ #still in the for-loop on each sample:
+ for params in metaphlan_params:
+ metaphlan_nodes_list.append(_build_metaphlan_node(config, params,
+ makefile['Metaphlan']))
+
+ summary_node = ExecModuleNode('nodes.tools.get_stats',
+ 'gather_stats',
+ description = 'Summarize read counts',
+ **summary_params)
+
+ return rmdup_nodes_list, metaphlan_nodes_list, summary_node
+
+
+def analyzing(makefile, config, metaphlan_nodes=(), group='all'):
+ nodes = []
+
+ statax_dep = ()
+ runonly = makefile.get('run_from_table')
+
+ if metaphlan_nodes:
+ statax_in = os.path.join(makefile['OutDir'], group+'_taxa.tsv')
+ merge_in = [[node.output_file, node.ID] for node in metaphlan_nodes]
+ merge_samples_node = MergeTablesNode(output_file = statax_in,
+ samplefiles = merge_in,
+ dependencies = metaphlan_nodes,
+ idstr = 'ID',
+ keep_original_IDs = False)
+ nodes.append(merge_samples_node)
+ statax_dep += (merge_samples_node,)
+
+ elif not runonly:
+ # Metaphlan nodes are expected if statax is not set in runonly mode
+ raise RuntimeError
+ else:
+ statax_in = runonly
+
+ rename_taxlevels = makefile['Statax'].pop('rename_taxlevels')
+
+ statax_path = os.path.join(os.path.abspath(tools.__path__[0]),
+ "statax_Rmodule")
+
+ merge_list = [] # list of list of files for merging (one list per merge)
+ filter_nodes = [] # one per different merging
+
+ for run_name, run in makefile['Statax'].iteritems():
+ run_outdir = os.path.join(makefile['OutDir'], 'statax', run_name)
+
+ merge = run.get("merge")
+ if merge not in merge_list:
+ merge_list.append(merge)
+ if merge:
+ filter_infile = os.path.join(run_outdir, run_name + '.tsv')
+ samplefiles = [[f] for f in [statax_in] + merge]
+ merge_node = MergeTablesNode(
+ output_file = filter_infile,
+ samplefiles = samplefiles,
+ dependencies = statax_dep)
+ #keep_original_IDs = False)
+ filter_dep = merge_node
+ else:
+ filter_infile = statax_in
+ filter_dep = statax_dep
+
+ filter_outbase = os.path.join(run_outdir, 'tables', run_name)
+ filter_taxlevels = 'kpcogfst' if makefile['Metaphlan'].get('--mpa_pkl') \
+ else 'kpcofgs'
+ filter_outfiles = [filter_outbase + '_filtered_' + L + '.tsv' for L in \
+ filter_taxlevels]
+ filter_outfiles += [filter_outbase + '_filtered_samples.txt',
+ filter_outbase + '_filtered_taxa_sum.tsv',
+ filter_outbase + '_filtered_taxa_nb.tsv']
+ filter_node = ExecModuleNode("nodes.tools.filterMetaphlan",
+ "dofilter",
+ input_files=filter_infile,
+ output_files=filter_outfiles,
+ dependencies = filter_dep,
+ function_in_args=["inputfile"],
+ function_out_args=None,
+ function_out_tmp="outbase",
+ outbase = filter_outbase,
+ filterout = run['filterout'],
+ taxlevels=filter_taxlevels)
+
+ filter_nodes.append(filter_node)
+ nodes.append(filter_node)
+ run_dep = filter_node
+
+ doDiv = run.get('doDiv')
+ if doDiv is not None:
+ div_node = SimpleExecNode(os.path.join(statax_path, 'doDiv.R'),
+ description = '%s: doDiv' % run_name,
+ input_file = filter_infile,
+ output_file=os.path.join(run_outdir,
+ run_name + "_diversities.tsv"),
+ options=doDiv,
+ dependencies = filter_dep)
+ nodes.append(div_node)
+
+ else: # merge in merge_list
+ i = merge_list.index(merge)
+ run_dep = filter_nodes[i]
+
+ for L in run['taxlevels']:
+ longL = rename_taxlevels[L]
+ for operation in ['doBarplot', 'doHeatmap', 'doPcoa', 'doClust']:
+ op = run.get(operation)
+ if op is not None:
+ call = [os.path.join(statax_path, operation+".R"),
+ "%(IN_FILE)s"]
+ builder_kwargs = {'IN_FILE':
+ run_dep.function_kwargs['outbase'] + '_filtered_' + L + '.tsv'}
+ op_node = ExecNode.customize(call,
+ description="%s: %s (%s)" %(run_name, operation, longL),
+ threads=op.get('--ncores', 1),
+ dependencies=run_dep,
+ builder_kwargs=builder_kwargs)
+ out_base = os.path.join(run_outdir, run_name + '_' + \
+ operation.replace('do','').lower() + \
+ '_' + longL)
+ if operation in ['doBarplot', 'doHeatmap']:
+ op_node.command.add_value("%(OUT_PDF)s")
+ op_node.command.set_kwargs(OUT_PDF = out_base+'.pdf')
+ op_node.command.set_option('--title',
+ "%s abundances (level: %s)" %(run_name, longL))
+ op_node.command.set_option('--taxon_title', longL)
+ else:
+ op_node.command.set_option('--pdf', "%(OUT_PDF)s")
+ op_node.command.set_option('--tsv', "%(OUT_TSV)s")
+ op_node.command.set_kwargs(OUT_PDF= out_base + '.pdf',
+ OUT_TSV= out_base + '.tsv')
+ if operation == 'doClust':
+ op_node.command.set_option('--RData', "%(OUT_RDATA)s")
+ op_node.command.set_kwargs(OUT_RDATA=out_base+'.RData')
+
+ apply_options(op_node.command, op)
+ nodes.append(op_node.build_node())
+
+ # Krona
+ if makefile['Krona']['run'] and not runonly:
+ output_base = os.path.join(makefile['OutDir'], 'krona')
+ krona_input_files = []
+ krona_dep = []
+ for node in metaphlan_nodes:
+ krona_infile = os.path.join(output_base, node.ID + ".krona.in")
+ convert_node = ExecModuleNode("nodes.tools.metaphlan2krona_2",
+ "convert",
+ input_files = node.output_file,
+ output_files = krona_infile,
+ dependencies = node,
+ description="convert metaphlan out -> krona in",
+ function_in_args = ["inputfile"],
+ function_out_args = ["outputfile"],
+ no_underscore=True)
+
+ krona_input_files.append(krona_infile)
+ krona_dep.append(convert_node)
+
+ output_file = os.path.join(output_base, group + '_taxa.krona.html')
+ krona_node = ExecNode.customize(("ktImportText", '-o', "%(OUT_FILE)s"),
+ description="<krona: ktImportText -> %s>" % output_file,
+ dependencies = krona_dep,
+ builder_kwargs={"OUT_FILE": output_file})
+ krona_node.command.set_option("-a", True, fixed=False)
+ apply_options(krona_node.command, makefile['Krona'])
+ krona_node.command.add_multiple_values(krona_input_files)
+
+ nodes.append(krona_node.build_node())
+
+ # LEfSe
+ if makefile['Lefse']['run']:
+
+ if makefile['Lefse'].get('merge'):
+ input_file = os.path.join(makefile['OutDir'], makefile['Lefse']['outdir'],
+ os.path.basename(statax_in).replace('.tsv', '_merged.tsv'))
+ samplefiles = [[f] for f in [statax_in] + makefile['Lefse']['merge']]
+ lefse_merge_node = MergeTablesNode(output_file = input_file,
+ samplefiles = samplefiles,
+ dependencies = statax_dep)
+ #keep_original_IDs = False)
+ statax_dep = lefse_merge_node
+ else:
+ input_file = statax_in
+
+ # format input by including groups on top of the sample names
+ pre_lefse_input = os.path.join(makefile['OutDir'], makefile['Lefse']['outdir'],
+ os.path.basename(input_file).replace('.tsv', '.lefse.in.tsv'))
+
+ metaphlan2lefse_node = Metaphlan2LefseNode(input_file = input_file,
+ output_file = pre_lefse_input,
+ groups = makefile['Lefse']['Groups'],
+ dependencies = statax_dep)
+
+ run_lefse_input = pre_lefse_input.replace('lefse.in.tsv', 'lefse.in')
+
+ subclass_nb = max((len(path) for path,_ in \
+ _iterate_tree(makefile['Lefse']['Groups'])))
+ format_options={"-c": 1,
+ "-s": 2 if subclass_nb==2 else -1,
+ "-u": 3 if subclass_nb==2 else 2}
+ format_options.update(makefile["Lefse"]["format_input"])
+
+ format_input_node = SimpleExecNode(os.path.join(config.lefse_path,
+ "format_input.py"),
+ pre_lefse_input,
+ run_lefse_input,
+ options = format_options,
+ subnodes = metaphlan2lefse_node)
+
+ run_lefse_output = run_lefse_input.replace('lefse.in', 'lefse.out')
+ run_lefse_node = SimpleExecNode(os.path.join(config.lefse_path, "run_lefse.py"),
+ run_lefse_input,
+ run_lefse_output,
+ makefile["Lefse"]["run_lefse"],
+ subnodes = format_input_node)
+
+ fmt = makefile['Lefse']['format']
+ for step in ['plot_res', 'plot_cladogram', 'plot_features']:
+ if not makefile['Lefse'][step].has_key('--format'):
+ makefile['Lefse'][step]['--format'] = fmt
+
+ plot_res_node = SimpleExecNode(os.path.join(config.lefse_path, "plot_res.py"),
+ run_lefse_output,
+ run_lefse_output.replace('lefse.out', 'lefse.plot_res.'+fmt),
+ makefile["Lefse"]["plot_res"],
+ subnodes = run_lefse_node)
+ plot_clad_node = SimpleExecNode(os.path.join(config.lefse_path, "plot_cladogram.py"),
+ run_lefse_output,
+ run_lefse_output.replace('lefse.out','lefse.cladogram.'+fmt),
+ makefile["Lefse"]["plot_cladogram"],
+ subnodes = run_lefse_node)
+
+ plot_features_obj = ExecNode.customize(os.path.join(config.lefse_path,
+ "plot_features.py"),
+ #description="Lefse: plot_features",
+ subnodes = (metaphlan2lefse_node,
+ run_lefse_node))
+ plot_features_obj.command.add_value(run_lefse_input) # dataset file
+ plot_features_obj.command.add_value(run_lefse_output)
+ plot_features_obj.command.add_value(run_lefse_output.replace('out', 'biomarkers.zip')) # output file
+ plot_features_obj.command.set_option("--archive", "zip")
+ apply_options(plot_features_obj.command, makefile['Lefse']['plot_features'])
+
+ plot_features_node = plot_features_obj.build_node()
+
+ nodes.extend([run_lefse_node,plot_clad_node,plot_res_node,plot_features_node])
+
+ return nodes
+
+
+def _build_bowtie2_nodes(config, input_files_1, input_files_2, output_file,
+ log_file, dependencies, options):
+
+ metaphlan_script = glob(os.path.join(config.metaphlan_path, "metaphlan*.py"))[0]
+ if metaphlan_script.endswith("metaphlan.py"):
+ prefix = os.path.join(config.metaphlan_path, "bowtie2db", "mpa")
+ elif metaphlan_script.endswith("metaphlan2.py"):
+ prefix = os.path.join(config.metaphlan_path, "db_v20", "mpa_v20_m200")
+ reference = prefix
+
+ params = Bowtie2Node.customize(input_files_1,
+ input_files_2,
+ output_file,
+ prefix,
+ reference,
+ log_file = log_file,
+ threads = config.bowtie2_max_threads,
+ dependencies = dependencies
+ )
+
+ apply_options(params.commands, {"--no-unal": True})
+ try:
+ apply_options(params.commands, options)
+ except AtomicCmdBuilderError, e:
+ raise e
+
+ return params.build_node()
+
+
+def _build_metaphlan_node(config, params, options):
+ if not params['output_file']:
+ raise RuntimeError("No input given to metaphlan, you made a mistake somewhere.\n"
+ "have you excluded all the libraries of sample %s ?" %Samplename)
+ else:
+ metaphlan_script = glob(os.path.join(config.metaphlan_path, "metaphlan*.py"))[0]
+ node = MetaphlanNode.customize(metaphlan_script,
+ threads=config.metaphlan_max_threads,
+ **params)
+ apply_options(node.command, options)
+ return node.build_node()
+
+
+def _iterate_tree(tree, path=()):
+ """Iterate over a tree of nested dictionary, flattening the output:
+ each most inside value is returned with the set of keys leading to it (path)"""
+ if isinstance(tree, dict):
+ for key, value in tree.iteritems():
+ for elem in _iterate_tree(value, path+(key,)):
+ yield elem
+ else:
+ yield path, tree
+
diff --git a/pypeline/__init__.py b/pypeline/__init__.py
new file mode 100644
index 0000000..616e9d9
--- /dev/null
+++ b/pypeline/__init__.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+
+__version_info__ = (1, 1, 1)
+__version__ = 'v%i.%i.%i' % __version_info__
diff --git a/pypeline/atomiccmd/__init__.py b/pypeline/atomiccmd/__init__.py
new file mode 100644
index 0000000..90e5529
--- /dev/null
+++ b/pypeline/atomiccmd/__init__.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
diff --git a/pypeline/atomiccmd/builder.py b/pypeline/atomiccmd/builder.py
new file mode 100644
index 0000000..3d98ad2
--- /dev/null
+++ b/pypeline/atomiccmd/builder.py
@@ -0,0 +1,542 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""Tools for passing CLI options to AtomicCmds used by Nodes.
+
+The module contains 1 class and 2 decorators, which may be used in conjunction
+to create Node classes for which the call carried out by AtomicCmds may be
+modified by the end user, without explicit support added to the init function
+of the class. The basic outline of such a class is as follows:
+
+
+class ExampleNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(self, ...):
+ # Use passed parameters to create AtomicCmdBuilder obj
+ builder = AtomicCmdBuilder(...)
+ builder.set_option(...)
+
+ # Return dictionary of AtomicCmdBuilder objects and any
+ # additional parameters required to run the Node.
+ return {"command" : builder,
+ "example" : ...}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ # Create AtomicCmd object using (potentially tweaked) parameters
+ command = parameters.command.finalize()
+
+ # Do something with a parameter passed to customize
+ description = "<ExampleNode: %s>" % parameters.example
+
+ CommandNode.__init__(command = command,
+ description = description,
+ ...)
+
+This class can then be used in two ways:
+1) Without doing any explicit modifications to the CLI calls:
+>> node = ExampleNode(...)
+
+2) Retrieving and tweaking AtomicCmdBuilder before creating the Node:
+>> params = ExampleNode.customize(...)
+>> params.command.set_option(...)
+>> node = params.build_node()
+
+"""
+import os
+import types
+import inspect
+import subprocess
+import collections
+
+from pypeline.atomiccmd.command import \
+ AtomicCmd
+from pypeline.common.utilities import \
+ safe_coerce_to_tuple
+
+import pypeline.common.versions as versions
+
+
+class AtomicCmdBuilderError(RuntimeError):
+ pass
+
+
+class AtomicCmdBuilder:
+ """AtomicCmdBuilder is a class used to allow step-wise construction of an
+ AtomicCmd object. This allows the user of a Node to modify the behavior
+ of the called programs using some CLI parameters, without explicit support
+ for these in the Node API. Some limitations are in place, to help catch
+ cases where overwriting or adding a flag would break the Node.
+
+ The system call is constructed in the following manner:
+ $ <call> <options> <values>
+
+ The components are defined as follows:
+ <call> - The minimal call needed invoke the current program. Typically
+ this is just the name of the executable, but may be a more
+ complex set of values for nested calls (e.g. java/scripts).
+ <option> - A flag, typically prefixed with one or two dashes, followed
+ by an optional value. The flag may be joined with the value
+ by an seperator (e.g. '='), otherwise they are added to the
+ final call as seperate values.
+ <values> - One or more values, e.g. paths or similar.
+
+ Options are divided into two classes; singletons and non-singletons:
+ Singletons - May be specified exactly one (using 'set_option'), with
+ subsequent calls to 'set_option' overwriting the
+ previous value of the option (if any).
+ Non-singletons - May be specified one or more times (with 'push_option'),
+ with each subsequent call added to list of existing
+ parameters.
+
+ Furthermore, any parameter may be marked as fixed (typically because the
+ node dependends on that option being set), which prevents any subsequent
+ call from modifying this option. By default, all options are fixed.
+
+ Any number of keywords may be set, which are passed to the AtomicCmd object
+ created by the AtomicCmdBuilder object (using 'set_kwargs'). The rules
+ specified in the AtomicCmd documentation apply to these. If a
+ AtomicCmdBuilder object is passed, this will be finalized as well.
+ """
+
+ def __init__(self, call, **kwargs):
+ """See AtomiCmd.__init__ for parameters / keyword arguments.
+ """
+ self._call = safe_coerce_to_tuple(call)
+ self._options = []
+ self._values = []
+ self._kwargs = {}
+ self._object = None
+
+ self.set_kwargs(**kwargs)
+
+ def set_option(self, key, value=None, sep=None, fixed=True):
+ """Sets or overwrites an option that may be specified at most once. If
+ the option has already been set using 'add_option', or with 'fixed' set
+ to True, a AtomicCmdBuilderError will be raised."""
+ old_option = self._get_option_for_editing(key, singleton=True)
+ new_option = {"Key": key,
+ "Value": value,
+ "Sep": sep,
+ "Fixed": fixed,
+ "Singleton": True}
+
+ if old_option:
+ if old_option["Fixed"]:
+ message = "Attemping to overwrite fixed option: %r" % key
+ raise AtomicCmdBuilderError(message)
+ old_option.update(new_option)
+ else:
+ self._options.append(new_option)
+
+ def add_option(self, key, value=None, sep=None, fixed=True):
+ """Adds an option that may be specified one or more times. If the
+ option has already been set using 'set_option', a AtomicCmdBuilderError
+ will be raised.
+ """
+ # Previous values are not used, but checks are required
+ self._get_option_for_editing(key, singleton=False)
+ self._options.append({"Key": key,
+ "Value": value,
+ "Sep": sep,
+ "Fixed": fixed,
+ "Singleton": False})
+
+ def pop_option(self, key):
+ old_option = self._get_option_for_editing(key, singleton=None)
+ if not old_option:
+ raise KeyError("Option with key %r does not exist" % key)
+ elif old_option["Fixed"]:
+ raise AtomicCmdBuilderError("Attempting to pop fixed key %r" % key)
+ self._options.remove(old_option)
+
+ def add_value(self, value):
+ """Adds a positional value to the call. Usage should be restricted to
+ paths and similar values, and set/add_option used for actual options.
+ """
+ self._values.append(value)
+
+ def set_kwargs(self, **kwargs):
+ if self._object:
+ message = "Parameters have already been finalized"
+ raise AtomicCmdBuilderError(message)
+
+ for key in kwargs:
+ if key in self._kwargs:
+ message = "Attempted to overwrite existing path: %r"
+ raise AtomicCmdBuilderError(message % key)
+ self._kwargs.update(kwargs)
+
+ def add_multiple_options(self, key, values, sep=None,
+ template="IN_FILE_%02i"):
+ """Add multiple options as once, with corresponding kwargs.
+
+ The template determines the key-names used for the arguments,
+ using numbers starting from 1 to differentiate between multiple
+ values.
+ """
+ kwargs = {}
+ for file_key, value in self._get_new_kwarg_keys(values, template):
+ self.add_option(key, "%%(%s)s" % (file_key,),
+ sep=sep, fixed=True)
+ kwargs[file_key] = value
+ self.set_kwargs(**kwargs)
+ return kwargs
+
+ def add_multiple_values(self, values, template="IN_FILE_%02i"):
+ """Add multiple values as once, with corresponding kwargs.
+
+ The template determines the key-names used for the arguments,
+ using numbers starting from 1 to differentiate between multiple
+ values.
+ """
+ kwargs = {}
+ for file_key, value in self._get_new_kwarg_keys(values, template):
+ self.add_value("%%(%s)s" % (file_key,))
+ kwargs[file_key] = value
+ self.set_kwargs(**kwargs)
+ return kwargs
+
+ @property
+ def call(self):
+ """Returns the system-call based on the call passed to the constructor,
+ and every parameter set or pushed using 'set_option' and 'add_option'.
+ """
+ command = list(self._call)
+ for parameter in self._options:
+ if parameter["Value"] is not None:
+ if parameter["Sep"] is not None:
+ command.append("%s%s%s" % (parameter["Key"],
+ parameter["Sep"],
+ parameter["Value"]))
+ else:
+ command.append(parameter["Key"])
+ command.append(parameter["Value"])
+ else:
+ command.append(parameter["Key"])
+
+ command.extend(self._values)
+ return command
+
+ @property
+ def finalized_call(self):
+ """Returns the system-call, as 'call', but with all key-values
+ instantiated to the values passed to the AtomicCmdBuilder. This is
+ intended for use with direct Popen calls.
+ """
+ kwargs = self.kwargs
+ kwargs["TEMP_DIR"] = "%(TEMP_DIR)"
+ return [(str(field) % kwargs) for field in self.call]
+
+ @property
+ def kwargs(self):
+ """Returns a dictionary of keyword arguments as set by 'set_kwargs'.
+ If the value of an argument is an AtomicCmdBuilder, then the builder
+ is finalized and the resulting value is used."""
+ kwargs = {}
+ for (key, value) in self._kwargs.iteritems():
+ if isinstance(value, AtomicCmdBuilder):
+ value = value.finalize()
+ kwargs[key] = value
+ return kwargs
+
+ def finalize(self):
+ """Creates an AtomicCmd object based on the AtomicParam object. Once
+ finalized, the AtomicCmdBuilder cannot be modified further."""
+ if not self._object:
+ self._object = AtomicCmd(self.call, **self.kwargs)
+
+ return self._object
+
+ def _get_option_for_editing(self, key, singleton):
+ if self._object:
+ message = "AtomicCmdBuilder has already been finalized"
+ raise AtomicCmdBuilderError(message)
+ elif not isinstance(key, types.StringTypes):
+ message = "Key must be a string, not %r" \
+ % (key.__class__.__name__,)
+ raise TypeError(message)
+ elif not key:
+ raise KeyError("Key cannot be an empty string")
+
+ for option in reversed(self._options):
+ if (option["Key"] == key):
+ if (singleton is not None) \
+ and (option["Singleton"] != singleton):
+ message = "Mixing singleton and non-singleton options: %r"
+ raise AtomicCmdBuilderError(message % key)
+ return option
+
+ def _get_new_kwarg_keys(self, values, template):
+ start = 0
+ for value in values:
+ start += 1
+ key = template % (start,)
+ while key in self._kwargs:
+ start += 1
+ key = template % (start,)
+ yield key, value
+
+
+class AtomicJavaCmdBuilder(AtomicCmdBuilder):
+ """AtomicCmdBuilder for running java JARs.
+
+ The resulting command will run the JAR in head-less mode, in order to ensure
+ that the JARs can be run on head-less servers (and to avoid popups on OSX),
+ using the process-specific temp-folder, and using at most a single thread
+ for garbage collection (to ensure that thread-limits are obeyed).
+
+ """
+
+ def __init__(self, jar, jre_options=(), temp_root="%(TEMP_DIR)s",
+ gc_threads=1, java_version=(1, 6), **kwargs):
+ """Parameters:
+ jar -- Path to a JAR file to be executed; is included as an
+ auxiliary file dependency in the final command.
+ jre_options -- List of CLI options to be passed to 'java' command.
+ temp_root -- Temp folder to use for java process; if not set, the
+ process specific temp folder is used.
+ gc_threads -- Number of threads to use during garbage collections.
+ ... -- Key-word args are passed to AtomicCmdBuilder.
+ """
+ call = ["java", "-server",
+ "-Djava.io.tmpdir=%s" % temp_root,
+ "-Djava.awt.headless=true"]
+
+ if not isinstance(gc_threads, (types.IntType, types.LongType)):
+ raise TypeError("'gc_threads' must be an integer value, not %r"
+ % gc_threads.__class__.__name__)
+ elif gc_threads > 1:
+ call.append("-XX:ParallelGCThreads=%i" % gc_threads)
+ elif gc_threads == 1:
+ call.append("-XX:+UseSerialGC")
+ else:
+ raise ValueError("'gc_threads' must be a 1 or greater, not %r"
+ % gc_threads)
+
+ jre_options = tuple(jre_options)
+ call.extend(jre_options)
+
+ # Only set -Xmx if no user-supplied setting is given
+ if not any(opt.startswith("-Xmx") for opt in jre_options):
+ # Our experience is that the default -Xmx value tends to cause
+ # OutOfMemory exceptions with typical datasets, so require at least
+ # 4gb. However, this is not possible on 32bit systems, which cannot
+ # handle such datasets in any case (due to e.g. BWA memory usage).
+ if AtomicJavaCmdBuilder._IS_JAVA_64_BIT is None:
+ with open("/dev/null", "w") as dev_null:
+ version_call = call + ["-d64", "-version"]
+ try:
+ result = subprocess.call(version_call,
+ stdout=dev_null,
+ stderr=dev_null,
+ preexec_fn=os.setsid,
+ close_fds=True)
+
+ AtomicJavaCmdBuilder._IS_JAVA_64_BIT = (result == 0)
+ except OSError:
+ # We don't care if this fails here, the exec / version
+ # checks will report any problems downstream
+ AtomicJavaCmdBuilder._IS_JAVA_64_BIT = False
+
+ # The default memory-limit tends to be insufficent for whole-genome
+ # datasets, so this is increased on 64-bit architectures.
+ if AtomicJavaCmdBuilder._IS_JAVA_64_BIT:
+ call.append("-Xmx4g")
+
+ version = self._get_java_version(java_version)
+ call.extend(("-jar", "%(AUX_JAR)s"))
+ AtomicCmdBuilder.__init__(self, call,
+ AUX_JAR=jar,
+ CHECK_JRE=version,
+ **kwargs)
+
+ _IS_JAVA_64_BIT = None
+
+ @classmethod
+ def _get_java_version(cls, version):
+ version = tuple(map(int, version))
+ if version not in JAVA_VERSIONS:
+ regexp = r"[\._]".join(r"(\d+)" for _ in version)
+ ## regexp = r'java version "%s' % (regexp,)
+ regexp = r'version "%s' % (regexp,)
+ jre_call = ["java", "-Djava.awt.headless=true", "-version"]
+
+ JAVA_VERSIONS[version] \
+ = versions.Requirement(call=jre_call,
+ name="JAVA Runtime Environment",
+ search=regexp,
+ checks=versions.GE(*version),
+ priority=10)
+ return JAVA_VERSIONS[version]
+JAVA_VERSIONS = {}
+
+
+class AtomicMPICmdBuilder(AtomicCmdBuilder):
+ """AtomicCmdBuilder for MPI enabled programs;
+
+ Simplifies specification of number of threads to use, only invoking the
+ 'mpi' command if more than one thread is used; furthermore, the 'mpi'
+ binary is used as a dependency, since MPI enabled programs tend to fail
+ catastrophically if the 'mpi' binary and associated libraries are missing.
+
+ """
+
+ def __init__(self, call, threads = 1, **kwargs):
+ if not isinstance(threads, (types.IntType, types.LongType)):
+ raise TypeError("'threads' must be an integer value, not %r" % threads.__class__.__name__)
+ elif threads < 1:
+ raise ValueError("'threads' must be 1 or greater, not %i" % threads)
+ elif threads == 1:
+ AtomicCmdBuilder.__init__(self, call, EXEC_MPI = "mpirun", **kwargs)
+ else:
+ call = safe_coerce_to_tuple(call)
+ mpi_call = ["mpirun", "-n", threads]
+ mpi_call.extend(call)
+
+ AtomicCmdBuilder.__init__(self, mpi_call, EXEC_MAIN = call[0], **kwargs)
+
+
+def use_customizable_cli_parameters(init_func): # pylint: disable=C0103
+ """Decorator for __init__ functions, implementing the customizable Node
+ interface: Allows a node to be implemented either using default behavior:
+ >>> node = SomeNode(value1 = ..., value2 = ...)
+
+ Or using tweaked parameters for calls that support it:
+ >>> parameters = SomeNode.customize(value1 = ..., value2 = ...)
+ >>> parameters["command"].set_options(...)
+ >>> node = SomeNode(parameters)
+
+ To be able to use this interface, the class must implement a
+ function 'customize' that takes the parameters that the constructor
+ would take, while the constructor must take a 'parameters' argument.
+
+ """
+ if init_func.func_name != '__init__':
+ raise ValueError("Function name must be '__init__', not %r"
+ % (init_func.func_name,))
+
+ def do_call(self, parameters = None, **kwargs):
+ if not parameters:
+ parameters = self.customize(**kwargs)
+
+ return init_func(self, parameters)
+
+ return do_call
+
+
+def create_customizable_cli_parameters(customize_func): # pylint: disable=C0103
+ """Decorator complementing the 'use_customizable_cli_parameters' decorator
+ defined above, which should be used on a function named 'customize'; this
+ function is made a classmethod.
+
+ The modified function returns a object with a member for each keyword
+ parameter, and a 'build_node' function which calls the init function using
+ these parameter values. The initializer function is expected to take a
+ single argument, corresponding to ehe wrapper object.
+
+ Typically, the returned wrapper will include an AtomicCmdBuilder, which can
+ be modified by the user to directly modify the call carried out by the
+ resulting node.
+
+ class Example:
+ @create_customizable_cli_parameters
+ def customize(cls, first, second, third):
+ # (Typicall) builds initial command
+ command = AtomicCmdBuilder(...)
+ return {"command" : command}
+
+ parameters = Example.customize(first = ..., second = ...)
+ print obj.first
+ print obj.second
+ # Modify command-builder object
+ obj.command.set_option(...)
+
+ # Calls __init__ with the parameter object
+ node = wrapper.build_node()
+
+ """
+ if customize_func.func_name != 'customize':
+ raise ValueError("Function name must be 'customize', not %r"
+ % (customize_func.func_name,))
+
+ def do_call(cls, *args, **kwargs):
+ # Build dictionary containing all arguments
+ kwargs = inspect.getcallargs(customize_func, cls, *args, **kwargs)
+ # Allow parameters to be updated in the 'customize' function
+ kwargs.update(customize_func(**kwargs))
+
+ return _create_cli_parameters_cls(cls, kwargs)
+
+ return classmethod(do_call)
+
+
+def apply_options(builder, options, pred = lambda s: s.startswith("-")):
+ """Applies a dictionary of options to a builder. By default, only
+ options where the key start with "-" are used (determined by 'pred').
+ The following rules are used when applying options:
+ - If a key is associated with a single value, 'set_option' is used.
+ - If a key is associated with a list of values, 'add_option' is used.
+ - If the key is associated with a boolean value, the option is set
+ if true (without a value) or removed from the call if false. This
+ allows easy setting/unsetting of '--do-something' type options.
+
+ """
+ for (key, values) in dict(options).iteritems():
+ if not isinstance(key, types.StringTypes):
+ raise TypeError("Keys must be strings, not %r" % (key.__class__.__name__,))
+ elif pred(key):
+ if isinstance(values, (types.ListType, types.TupleType)):
+ for value in values:
+ if not isinstance(value, _ADDABLE_TYPES) or isinstance(value, _SETABLE_ONLY_TYPES):
+ raise TypeError("Unexpected type when adding options: %r" % (value.__class__.__name__,))
+ builder.add_option(key, value)
+ elif not isinstance(values, _SETABLE_TYPES):
+ raise TypeError("Unexpected type when setting option: %r" % (values.__class__.__name__,))
+ elif isinstance(values, (types.BooleanType, types.NoneType)):
+ if values or values is None:
+ builder.set_option(key)
+ else:
+ builder.pop_option(key)
+ else:
+ builder.set_option(key, values)
+
+
+_create_cli_parameters_cls_cache = {}
+def _create_cli_parameters_cls(cls, kwargs):
+ key = (cls, frozenset(kwargs))
+ clsobj = _create_cli_parameters_cls_cache.get(key)
+ if not clsobj:
+ _create_cli_parameters_cls_cache[key] = clsobj = \
+ collections.namedtuple("CustomCLIParams", " ".join(kwargs))
+
+ class _ParametersWrapper(clsobj): # pylint: disable=W0232
+ def build_node(self):
+ return cls(self)
+
+ return _ParametersWrapper(**kwargs)
+
+
+
+_ADDABLE_TYPES = (types.FloatType, types.IntType, types.LongType) + types.StringTypes
+_SETABLE_ONLY_TYPES = (types.BooleanType, types.NoneType)
+_SETABLE_TYPES = _ADDABLE_TYPES + _SETABLE_ONLY_TYPES
diff --git a/pypeline/atomiccmd/command.py b/pypeline/atomiccmd/command.py
new file mode 100644
index 0000000..af008e2
--- /dev/null
+++ b/pypeline/atomiccmd/command.py
@@ -0,0 +1,474 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import collections
+import errno
+import os
+import re
+import signal
+import subprocess
+import sys
+import types
+import weakref
+
+import pypeline.atomiccmd.pprint as atomicpp
+import pypeline.common.fileutils as fileutils
+import pypeline.common.signals as signals
+from pypeline.common.utilities import safe_coerce_to_tuple
+
+_PIPES = (("IN", "IN_STDIN"),
+ ("OUT", "OUT_STDOUT"),
+ ("OUT", "OUT_STDERR"))
+_KEY_RE = re.compile("^(IN|OUT|EXEC|AUX|CHECK|TEMP_IN|TEMP_OUT)_[A-Z0-9_]+")
+_FILE_MAP = {"IN": "input",
+ "OUT": "output",
+ "TEMP_IN": None,
+ "TEMP_OUT": "temporary_fname",
+ "EXEC": "executable",
+ "AUX": "auxiliary",
+ "CHECK": "requirements"}
+
+
+class CmdError(RuntimeError):
+ def __init__(self, msg):
+ RuntimeError.__init__(self, msg)
+
+
+class AtomicCmd(object):
+ """Executes a command, only moving resulting files to the destination
+ directory if the command was succesful. This helps prevent the
+ accidential use of partial files in downstream analysis, and eases
+ restarting of a pipeline following errors (no cleanup).
+
+ Inividual files/paths in the command are specified using keywords (see
+ the documentation for the constructor), allowing the command to be
+ transparently modified to execute in a temporary directory.
+
+ When an AtomicCmd is run(), a signal handler is installed for SIGTERM,
+ which ensures that any running processes are terminated. In the absence
+ of this, AtomicCmds run in terminated subprocesses can result in still
+ running children after the termination of the parents."""
+ PIPE = subprocess.PIPE
+
+ def __init__(self, command, set_cwd=False, **kwargs):
+ """Takes a command and a set of files.
+
+ The command is expected to be an iterable starting with the name of an
+ executable, with each item representing one string on the command line.
+ Thus, the command "find /etc -name 'profile*'" might be represented as
+ the list ["find", "/etc", "-name", "profile*"].
+
+ Commands typically consist of an executable, one or more input files,
+ one or more output files, and one or more pipes. In atomic command,
+ such files are not specified directly, but instead are specified using
+ keywords, which allows easy tracking of requirements and other
+ features. Note that only files, and not directories, are supported as
+ input/output!
+
+ Each keyword represents a type of file, as determined by the prefix:
+ IN_ -- Path to input file transformed/analysed the executable.
+ OUT_ -- Path to output file generated by the executable. During
+ execution of the AtomicCmd, these paths are modified to
+ point to the temporary directory.
+ EXEC_ -- Name of / path to executable. The first item in the
+ command is always one of the executables, even if not
+ specified in this manner.
+ AUX_ -- Auxillery files required by the executable(s), which are
+ themselves not executable. Examples include scripts,
+ config files, data-bases, and the like.
+ CHECK_ -- A callable, which upon calling does version checking,
+ raising an exception in the case of requirements not being
+ met. This may be used to ensure that prerequisites are met
+ before running the command. The function is not called by
+ AtomicCmd itself.
+
+ EXAMPLE 1: Creating a gzipped tar-archive from two files
+ The command "tar cjf output-file input-file-1 input-file-2" could be
+ represented using the following AtomicCmd:
+ cmd = AtomicCmd(["tar", "cjf", "%(OUT_FILE)s",
+ "%(IN_FILE_1)s", "%(IN_FILE_2)s"],
+ OUT_FILE = "output-file",
+ IN_FILE_1 = "input-file-1",
+ IN_FILE_2 = "input-file-2")
+
+ Note that files that are not directly invoked may be included above,
+ in order to allow the specification of requirements. This could include
+ required data files, or executables indirectly executed by a script.
+
+ If the above is prefixed with "TEMP_", files are read from / written
+ to the temporary folder in which the command is executed. Note that all
+ TEMP_OUT_ files are deleted when commit is called (if they exist), and
+ only filenames (not dirname component) are allowed for TEMP_ values.
+
+ In addition, the follow special names may be used with the above:
+ STDIN_ -- Takes a filename, or an AtomicCmd, in which case stdout
+ of that command is piped to the stdin of this instance.
+ STDOUT_ -- Takes a filename, or the special value PIPE to allow
+ another AtomicCmd instance to use the output directly.
+ STDERR_ -- Takes a filename.
+
+ Each pipe can only be used once, with or without the TEMP_ prefix.
+
+ EXAMPLE 2: zcat'ing an archive
+ The command "zcat input-file > output-file" could be represented using
+ the following AtomicCmd:
+ cmd = AtomicCmd(["zcat", "%(IN_FILE)s"],
+ OUT_STDOUT = "output-file")
+
+ If 'set_cwd' is True, the current working directory is set to the
+ temporary directory before the command is executed. Input paths are
+ automatically turned into absolute paths in this case."""
+ self._proc = None
+ self._temp = None
+ self._running = False
+ self._command = map(str, safe_coerce_to_tuple(command))
+ self._set_cwd = set_cwd
+ if not self._command or not self._command[0]:
+ raise ValueError("Empty command in AtomicCmd constructor")
+
+ arguments = self._process_arguments(id(self), self._command, kwargs)
+ self._files = self._build_files_dict(arguments)
+ self._file_sets = self._build_files_map(self._command, arguments)
+
+ # Dry-run, to catch errors early
+ self._generate_call("/tmp")
+
+ def run(self, temp, wrap_errors=True):
+ """Runs the given command, saving files in the specified temp folder.
+ To move files to their final destination, call commit(). Note that in
+ contexts where the *Cmds classes are used, this function may block.
+
+ """
+ if self._running:
+ raise CmdError("Calling 'run' on already running command.")
+ self._temp = temp
+ self._running = True
+
+ # kwords for pipes are always built relative to the current directory,
+ # since these are opened before (possibly) CD'ing to the temp
+ # directory.
+ stdin = stdout = stderr = None
+ try:
+ kwords = self._generate_filenames(self._files, root=temp)
+ stdin = self._open_pipe(kwords, "IN_STDIN", "rb")
+ stdout = self._open_pipe(kwords, "OUT_STDOUT", "wb")
+ stderr = self._open_pipe(kwords, "OUT_STDERR", "wb")
+
+ cwd = temp if self._set_cwd else None
+ temp = "" if self._set_cwd else os.path.abspath(temp)
+ call = self._generate_call(temp)
+
+ self._proc = subprocess.Popen(call,
+ stdin=stdin,
+ stdout=stdout,
+ stderr=stderr,
+ cwd=cwd,
+ preexec_fn=os.setsid,
+ close_fds=True)
+ except StandardError, error:
+ if not wrap_errors:
+ raise
+
+ message = \
+ "Error running commands:\n" \
+ " Call = %r\n" \
+ " Error = %r"
+ raise CmdError(message % (self._command, error))
+ finally:
+ # Close pipes to allow the command to recieve SIGPIPE
+ for handle in (stdin, stdout, stderr):
+ if handle not in (None, self.PIPE):
+ handle.close()
+
+ # Allow subprocesses to be killed in case of a SIGTERM
+ _add_to_killlist(self._proc)
+
+ def ready(self):
+ """Returns true if the command has been run to completion,
+ regardless of wether or not an error occured."""
+ return self._proc and self._proc.poll() is not None
+
+ def join(self):
+ """Similar to Popen.wait(), but returns the value wrapped in a list,
+ and ensures that any opened handles are closed. Must be called before
+ calling commit."""
+ if not self._proc:
+ return [None]
+
+ self._running = False
+ return_code = self._proc.wait()
+ if return_code < 0:
+ return_code = signals.to_str(-return_code)
+ return [return_code]
+
+ def wait(self):
+ """Equivalent to Subproces.wait. This function should only
+ be used in contexts where a AtomicCmd needs to be combined
+ with Subprocesses, as it does not exist for AtomicSets."""
+ return self.join()[0]
+
+ def terminate(self):
+ """Sends SIGTERM to process if it is still running.
+ Has no effect if the command has already finished."""
+ if self._proc and self._proc.poll() is None:
+ try:
+ os.killpg(self._proc.pid, signal.SIGTERM)
+ except OSError:
+ pass # Already dead / finished process
+
+ # Properties, returning filenames from self._file_sets
+ def _property_file_sets(key): # pylint: disable=E0213
+ def _get_property_files(self):
+ return self._file_sets[key] # pylint: disable=W0212
+ return property(_get_property_files)
+
+ executables = _property_file_sets("executable")
+ requirements = _property_file_sets("requirements")
+ input_files = _property_file_sets("input")
+ output_files = _property_file_sets("output")
+ auxiliary_files = _property_file_sets("auxiliary")
+ expected_temp_files = _property_file_sets("output_fname")
+ optional_temp_files = _property_file_sets("temporary_fname")
+
+ def commit(self, temp):
+ if not self.ready():
+ raise CmdError("Attempting to commit before command has completed")
+ elif self._running:
+ raise CmdError("Called 'commit' before calling 'join'")
+ elif not os.path.samefile(self._temp, temp):
+ raise CmdError("Mismatch between previous and current temp folders"
+ ": %r != %s" % (self._temp, temp))
+
+ missing_files = self.expected_temp_files - set(os.listdir(temp))
+ if missing_files:
+ raise CmdError("Expected files not created: %s"
+ % (", ".join(missing_files)))
+
+ temp = os.path.abspath(temp)
+ filenames = self._generate_filenames(self._files, temp)
+ committed_files = set()
+ try:
+ for (key, filename) in filenames.iteritems():
+ if isinstance(filename, types.StringTypes):
+ if key.startswith("OUT_"):
+ fileutils.move_file(filename, self._files[key])
+ committed_files.add(self._files[key])
+ elif key.startswith("TEMP_OUT_"):
+ fileutils.try_remove(filename)
+ except:
+ # Cleanup after failed commit
+ for fpath in committed_files:
+ fileutils.try_remove(fpath)
+ raise
+
+ self._proc = None
+ self._temp = None
+
+ def __str__(self):
+ return atomicpp.pformat(self)
+
+ def _generate_call(self, temp):
+ kwords = self._generate_filenames(self._files, root=temp)
+
+ try:
+ return [(field % kwords) for field in self._command]
+ except (TypeError, ValueError), error:
+ raise CmdError("Error building Atomic Command:\n"
+ " Call = %s\n Error = %s: %s"
+ % (self._command, error.__class__.__name__, error))
+ except KeyError, error:
+ raise CmdError("Error building Atomic Command:\n"
+ " Call = %s\n Value not specified for path = %s"
+ % (self._command, error))
+
+ @classmethod
+ def _process_arguments(cls, proc_id, command, kwargs):
+ arguments = collections.defaultdict(dict)
+ for (key, value) in kwargs.iteritems():
+ match = _KEY_RE.match(key)
+ if not match:
+ raise ValueError("Invalid keyword argument %r" % (key,))
+
+ # None is ignored, to make use of default arguments easier
+ if value is not None:
+ group, = match.groups()
+ arguments[group][key] = value
+
+ # Pipe stdout/err to files by default
+ executable = os.path.basename(command[0])
+ for pipe in ("STDOUT", "STDERR"):
+ has_out_pipe = ("OUT_" + pipe) in arguments["OUT"]
+ has_temp_out_pipe = ("TEMP_OUT_" + pipe) in arguments["TEMP_OUT"]
+ if not (has_out_pipe or has_temp_out_pipe):
+ filename = "pipe_%s_%i.%s" % (executable, proc_id,
+ pipe.lower())
+ arguments["TEMP_OUT"]["TEMP_OUT_" + pipe] = filename
+
+ cls._validate_arguments(arguments)
+ cls._validate_output_files(arguments)
+ cls._validate_pipes(arguments)
+
+ return arguments
+
+ @classmethod
+ def _validate_arguments(cls, arguments):
+ # Output files
+ for group in ("OUT", "TEMP_OUT"):
+ for (key, value) in arguments.get(group, {}).iteritems():
+ if isinstance(value, types.StringTypes):
+ continue
+
+ if key in ("OUT_STDOUT", "TEMP_OUT_STDOUT"):
+ if value != cls.PIPE:
+ raise TypeError("STDOUT must be a string or "
+ "AtomicCmd.PIPE, not %r" % (value,))
+ else:
+ raise TypeError("%s must be string, not %r" % (key, value))
+
+ # Input files, including executables and auxiliary files
+ for group in ("IN", "TEMP_IN", "EXEC", "AUX"):
+ for (key, value) in arguments.get(group, {}).iteritems():
+ if isinstance(value, types.StringTypes):
+ continue
+
+ if key in ("IN_STDIN", "TEMP_IN_STDIN"):
+ if not isinstance(value, AtomicCmd):
+ raise TypeError("STDIN must be string or AtomicCmd, "
+ "not %r" % (value,))
+ else:
+ raise TypeError("%s must be string, not %r" % (key, value))
+
+ for (key, value) in arguments.get("CHECK", {}).iteritems():
+ if not isinstance(value, collections.Callable):
+ raise TypeError("%s must be callable, not %r" % (key, value))
+
+ for group in ("TEMP_IN", "TEMP_OUT"):
+ for (key, value) in arguments.get(group, {}).iteritems():
+ is_string = isinstance(value, types.StringTypes)
+ if is_string and os.path.dirname(value):
+ raise ValueError("%s cannot contain dir component: %r"
+ % (key, value))
+
+ return True
+
+ @classmethod
+ def _validate_output_files(cls, arguments):
+ output_files = collections.defaultdict(list)
+ for group in ("OUT", "TEMP_OUT"):
+ for (key, value) in arguments.get(group, {}).iteritems():
+ if isinstance(value, types.StringTypes):
+ filename = os.path.basename(value)
+ output_files[filename].append(key)
+
+ for (filename, keys) in output_files.iteritems():
+ if len(keys) > 1:
+ raise ValueError("Same output filename (%s) is specified for "
+ "multiple keys: %s"
+ % (filename, ", ".join(sorted(keys))))
+
+ @classmethod
+ def _validate_pipes(cls, arguments):
+ for (group, pipe) in _PIPES:
+ has_pipe = pipe in arguments[group]
+ has_temp_pipe = ("TEMP_" + pipe) in arguments["TEMP_" + group]
+ if has_pipe and has_temp_pipe:
+ raise CmdError("Pipes may only be specified once")
+
+ @classmethod
+ def _open_pipe(cls, kwords, pipe, mode):
+ filename = kwords.get(pipe, kwords.get("TEMP_" + pipe))
+ if filename in (None, cls.PIPE):
+ return filename
+ elif isinstance(filename, AtomicCmd):
+ # pylint: disable=W0212
+ return filename._proc and filename._proc.stdout
+
+ return open(filename, mode)
+
+ @classmethod
+ def _generate_filenames(cls, files, root):
+ filenames = {"TEMP_DIR": root}
+ for (key, filename) in files.iteritems():
+ if isinstance(filename, types.StringTypes):
+ if key.startswith("TEMP_") or key.startswith("OUT_"):
+ filename = os.path.join(root, os.path.basename(filename))
+ elif not root and (key.startswith("IN_") or key.startswith("AUX_")):
+ filename = os.path.abspath(filename)
+ filenames[key] = filename
+
+ return filenames
+
+ @classmethod
+ def _build_files_dict(cls, arguments):
+ files = {}
+ for groups in arguments.itervalues():
+ for (key, value) in groups.iteritems():
+ files[key] = value
+
+ return files
+
+ @classmethod
+ def _build_files_map(cls, command, arguments):
+ file_sets = dict((key, set()) for key in _FILE_MAP.itervalues())
+
+ file_sets["executable"].add(command[0])
+ for (group, files) in arguments.iteritems():
+ group_set = file_sets[_FILE_MAP[group]]
+
+ for (key, filename) in files.iteritems():
+ is_string = isinstance(filename, types.StringTypes)
+ if is_string or key.startswith("CHECK_"):
+ group_set.add(filename)
+
+ file_sets["output_fname"] = map(os.path.basename, file_sets["output"])
+
+ return dict(zip(file_sets.iterkeys(),
+ map(frozenset, file_sets.itervalues())))
+
+
+# The following ensures proper cleanup of child processes, for example in the
+# case where multiprocessing.Pool.terminate() is called.
+_PROCS = None
+
+
+def _cleanup_children(signum, _frame):
+ for proc_ref in list(_PROCS):
+ proc = proc_ref()
+ if proc:
+ try:
+ os.killpg(proc.pid, signal.SIGTERM)
+ except OSError, error:
+ # Ignore already closed processes
+ if error.errno != errno.ESRCH:
+ sys.stderr.write("Warning: Failed to cleanup process %i: %s\n"
+ % (proc.pid, error))
+ sys.exit(-signum)
+
+
+def _add_to_killlist(proc):
+ global _PROCS
+
+ if _PROCS is None:
+ signal.signal(signal.SIGTERM, _cleanup_children)
+ _PROCS = set()
+
+ _PROCS.add(weakref.ref(proc, _PROCS.remove))
diff --git a/pypeline/atomiccmd/pprint.py b/pypeline/atomiccmd/pprint.py
new file mode 100644
index 0000000..94e624e
--- /dev/null
+++ b/pypeline/atomiccmd/pprint.py
@@ -0,0 +1,198 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+# pylint: disable=W0212
+
+from __future__ import print_function
+
+import os
+import sys
+import types
+import subprocess
+
+
+def _is_cls(obj, *cls_names):
+ return obj.__class__.__name__ in cls_names
+
+def _get_pipe_name(files, pipe):
+ if pipe in files:
+ return pipe.split("_")[-1] + " "
+ return pipe.split("_")[-1] + "*"
+
+def _get_pipe_file(files, pipe):
+ pipe_filename = files.get(pipe)
+ if pipe_filename:
+ return pipe_filename
+ return files.get("TEMP_%s" % (pipe,))
+
+def _describe_cls(atomiccmd):
+ if _is_cls(atomiccmd, "ParallelCmds"):
+ return "Parallel commands"
+ elif _is_cls(atomiccmd, "SequentialCmds"):
+ return "Sequential commands"
+ assert False # pragma: no coverage
+
+
+def _collect_stats(atomiccmd, stats):
+ assert atomiccmd not in stats["id"]
+
+ if _is_cls(atomiccmd, "AtomicCmd"):
+ stats["id"][atomiccmd] = len(stats["id"])
+ pipe = _get_pipe_file(atomiccmd._files, "IN_STDIN")
+ if _is_cls(pipe, "AtomicCmd"):
+ stats["pipe"][pipe] = atomiccmd
+ elif _is_cls(atomiccmd, "ParallelCmds", "SequentialCmds"):
+ for subcmd in atomiccmd._commands:
+ _collect_stats(subcmd, stats)
+ else:
+ assert False # pragma: no coverage
+
+ return stats
+
+
+def _build_status(atomiccmd, _stats, indent, lines):
+ prefix = " " * indent + "Status = "
+ if atomiccmd._proc:
+ if atomiccmd.ready():
+ return_code = tuple(atomiccmd.join())
+ if isinstance(return_code[0], types.StringTypes):
+ lines.append(prefix + "Terminated with signal %s" % return_code)
+ else:
+ lines.append(prefix + "Exited with return-code %i" % return_code)
+ else:
+ lines.append(prefix + "Running ...")
+
+
+def _build_stdin(atomiccmd, files, stats, indent, lines):
+ pipe_name = _get_pipe_name(files, "IN_STDIN")
+ pipe = _get_pipe_file(files, "IN_STDIN")
+ prefix = "%s%s = " % (" " * indent, pipe_name)
+ if pipe and pipe in stats["id"]:
+ lines.append("%s<%02i>" % (prefix, stats["id"][pipe],))
+ elif isinstance(pipe, types.StringTypes):
+ if atomiccmd._set_cwd and (pipe_name == "STDIN*"):
+ pipe = os.path.basename(pipe)
+ lines.append("%s'%s'" % (prefix, pipe))
+ elif pipe:
+ lines.append("%s<PIPE>" % (prefix,))
+
+
+def _build_out_pipe(atomiccmd, files, stats, indent, lines, pipe):
+ pipe_name = _get_pipe_name(files, pipe)
+ prefix = "%s%s = " % (" " * indent, pipe_name)
+
+ if (atomiccmd in stats["pipe"]) and (pipe == "OUT_STDOUT"):
+ pipe = stats["pipe"].get(atomiccmd)
+ lines.append("%s<%02i>" % (prefix, stats["id"][pipe],))
+ return
+
+ filename = _get_pipe_file(files, pipe)
+ if filename is not subprocess.PIPE:
+ lines.append("%s'%s'" % (prefix, filename))
+ else:
+ lines.append("%s<PIPE>" % (prefix,))
+
+
+def _build_cwd(atomiccmd, indent, lines):
+ prefix = " " * indent + "CWD = "
+ if atomiccmd._temp:
+ if atomiccmd._set_cwd:
+ lines.append("%s'%s'" % (prefix, atomiccmd._temp,))
+ else:
+ lines.append("%s'%s'" % (prefix, os.getcwd()))
+ elif atomiccmd._set_cwd:
+ lines.append("%s'%s'" % (prefix, "${TEMP_DIR}"))
+
+
+def _pformat(atomiccmd, stats, indent, lines, include_prefix = True):
+ s_prefix = ""
+ if include_prefix:
+ s_prefix = " " * indent + "- "
+ if _is_cls(atomiccmd, "AtomicCmd"):
+ cmd_id = stats["id"][atomiccmd]
+ s_prefix += "<%02i> " % (cmd_id,)
+ s_prefix_len = len(s_prefix)
+
+ if _is_cls(atomiccmd, "AtomicCmd"):
+ temp = "" if atomiccmd._set_cwd else (atomiccmd._temp or "${TEMP_DIR}")
+ files = atomiccmd._generate_filenames(atomiccmd._files, temp)
+
+ c_prefix = s_prefix + "Command = "
+ for line in _pformat_list(atomiccmd._generate_call(temp)).split("\n"):
+ lines.append("%s%s" % (c_prefix, line))
+ c_prefix = " " * len(c_prefix)
+
+ if not s_prefix_len:
+ s_prefix_len += 1
+
+ _build_status(atomiccmd, stats, s_prefix_len, lines)
+ _build_stdin(atomiccmd, files, stats, s_prefix_len, lines)
+ _build_out_pipe(atomiccmd, files, stats, s_prefix_len, lines, "OUT_STDOUT")
+ _build_out_pipe(atomiccmd, files, stats, s_prefix_len, lines, "OUT_STDERR")
+ _build_cwd(atomiccmd, s_prefix_len, lines)
+ elif _is_cls(atomiccmd, "ParallelCmds", "SequentialCmds"):
+ lines.append("%s%s:" % (s_prefix, _describe_cls(atomiccmd)))
+ for subcmd in atomiccmd._commands:
+ _pformat(subcmd, stats, s_prefix_len + 2, lines)
+ else:
+ assert False # pragma: no coverage
+
+
+def _pformat_list(lst, width = 80):
+ """Return a printable representation of a list, where line-breaks
+ are inserted between items to minimize the number of lines with a
+ width greater than 'width'. Very long items may cause this maximum
+ to be exceeded."""
+ result = [[]]
+ current_width = 0
+ for item in map(repr, lst):
+ if current_width + len(item) + 2 > width:
+ if not result[-1]:
+ result[-1] = [item]
+ current_width = len(item) + 2
+ else:
+ result.append([item])
+ current_width = len(item) + 2
+ else:
+ result[-1].append(item)
+ current_width += len(item) + 2
+
+ return "[%s]" % (",\n ".join(", ".join(line) for line in result))
+
+
+def pformat(atomiccmd):
+ """Returns a human readable description of an Atomic Cmd or Atomic Set
+ of commands. This is currently equivalent to str(cmd_obj)."""
+ if not _is_cls(atomiccmd, "AtomicCmd", "ParallelCmds", "SequentialCmds"):
+ raise TypeError("Invalid type in pformat: %r" % atomiccmd.__class__.__name__)
+
+ lines = []
+ stats = _collect_stats(atomiccmd, {"id" : {}, "pipe" : {}})
+ _pformat(atomiccmd, stats, 0, lines, False)
+ return "<%s>" % "\n".join(lines)
+
+
+def pprint(atomiccmd, out = sys.stdout):
+ """Prints a human readable description of an Atomic Cmd or Atomic Set
+ of commands. This is currently equivalent to print(str(cmd_obj), ...)."""
+ print(pformat(atomiccmd), file = out)
+
diff --git a/pypeline/atomiccmd/sets.py b/pypeline/atomiccmd/sets.py
new file mode 100644
index 0000000..264a7ce
--- /dev/null
+++ b/pypeline/atomiccmd/sets.py
@@ -0,0 +1,191 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import time
+import collections
+
+import pypeline.atomiccmd.pprint as atomicpp
+
+from pypeline.atomiccmd.command import AtomicCmd, CmdError
+from pypeline.common.utilities import safe_coerce_to_tuple
+from pypeline.common.fileutils import try_remove
+
+
+class _CommandSet:
+ def __init__(self, commands):
+ self._commands = safe_coerce_to_tuple(commands)
+ if not self._commands:
+ raise CmdError("Empty list passed to command set")
+
+ self._validate_commands()
+
+ def commit(self, temp):
+ committed_files = set()
+ try:
+ for command in self._commands:
+ command.commit(temp)
+ committed_files.update(command.output_files)
+ except:
+ # Cleanup after failed commit
+ for fpath in committed_files:
+ try_remove(fpath)
+ raise
+
+ def _collect_properties(key): # pylint: disable=E0213
+ def _collector(self):
+ values = set()
+ for command in self._commands: # pylint: disable=W0212
+ values.update(getattr(command, key))
+ return values
+ return property(_collector)
+
+ input_files = _collect_properties("input_files")
+ output_files = _collect_properties("output_files")
+ auxiliary_files = _collect_properties("auxiliary_files")
+ executables = _collect_properties("executables")
+ requirements = _collect_properties("requirements")
+ expected_temp_files = _collect_properties("expected_temp_files")
+ optional_temp_files = _collect_properties("optional_temp_files")
+
+ @property
+ def stdout(self):
+ raise CmdError("%s does not implement property 'stdout'!" \
+ % (self.__class__.__name__,))
+
+ def terminate(self):
+ for command in self._commands:
+ command.terminate()
+
+ def __str__(self):
+ return atomicpp.pformat(self)
+
+ def _validate_commands(self):
+ if len(self._commands) != len(set(self._commands)):
+ raise ValueError("Same command included multiple times in %s" \
+ % (self.__class__.__name__,))
+
+ filenames = collections.defaultdict(int)
+ for command in self._commands:
+ for filename in command.expected_temp_files:
+ filenames[filename] += 1
+ for filename in command.optional_temp_files:
+ filenames[filename] += 1
+
+ clobbered = [filename for (filename, count) in filenames.items() if (count > 1)]
+ if any(clobbered):
+ raise CmdError("Commands clobber each others' files: %s" % (", ".join(clobbered),))
+
+
+class ParallelCmds(_CommandSet):
+ """This class wraps a set of AtomicCmds, running them in parallel.
+ This corresponds to a set of piped commands, which only terminate
+ when all parts of the pipe have terminated. For example:
+ $ dmesg | grep -i segfault | gzip > log.txt.gz
+
+ In case of any one sub-command failing, the remaining commands are
+ automatically terminated. This is done to ensure that commands waiting
+ on pipes are not left running indefinetly.
+
+ Note that only AtomicCmds and ParallelCmds are allowed as
+ sub-commands for this class, since the model requires non-
+ blocking commands."""
+
+ def __init__(self, commands):
+ self._joinable = False
+
+ commands = safe_coerce_to_tuple(commands)
+ for command in commands:
+ if not isinstance(command, (AtomicCmd, ParallelCmds)):
+ raise CmdError("ParallelCmds must only contain AtomicCmds or other ParallelCmds!")
+ _CommandSet.__init__(self, commands)
+
+ def run(self, temp):
+ for command in self._commands:
+ command.run(temp)
+ self._joinable = True
+
+ def ready(self):
+ return all(cmd.ready() for cmd in self._commands)
+
+ def join(self):
+ sleep_time = 0.05
+ commands = list(enumerate(self._commands))
+ return_codes = [[None]] * len(commands)
+ while commands and self._joinable:
+ for (index, command) in list(commands):
+ if command.ready():
+ return_codes[index] = command.join()
+ commands.remove((index, command))
+ sleep_time = 0.05
+ elif any(any(codes) for codes in return_codes):
+ command.terminate()
+ return_codes[index] = command.join()
+ commands.remove((index, command))
+ sleep_time = 0.05
+
+ time.sleep(sleep_time)
+ sleep_time = min(1, sleep_time * 2)
+ return sum(return_codes, [])
+
+
+
+
+class SequentialCmds(_CommandSet):
+ """This class wraps a set of AtomicCmds, running them sequentially.
+ This class therefore corresponds a set of lines in a bash script,
+ each of which invokes a forground job. For example:
+ $ bcftools view snps.bcf | bgzip > snps.vcf.bgz
+ $ tabix snps.vcf.bgz
+
+ The list of commands may include any type of command. Note that
+ the run function only returns once each sub-command has completed.
+ A command is only executed if the previous command in the sequence
+ was succesfully completed, and as a consequence the return codes
+ of a failed SequentialCommand may contain None."""
+
+ def __init__(self, commands):
+ self._ready = False
+
+ commands = safe_coerce_to_tuple(commands)
+ for command in commands:
+ if not isinstance(command, (AtomicCmd, _CommandSet)):
+ raise CmdError("ParallelCmds must only contain AtomicCmds or other ParallelCmds!")
+ _CommandSet.__init__(self, commands)
+
+ def run(self, temp):
+ self._ready = False
+ for command in self._commands:
+ command.run(temp)
+ if any(command.join()):
+ break
+
+ self._ready = True
+
+ def ready(self):
+ return self._ready
+
+ def join(self):
+ return_codes = []
+ for command in self._commands:
+ return_codes.extend(command.join())
+
+ return return_codes
diff --git a/pypeline/common/__init__.py b/pypeline/common/__init__.py
new file mode 100644
index 0000000..cd42802
--- /dev/null
+++ b/pypeline/common/__init__.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
diff --git a/pypeline/common/bamfiles.py b/pypeline/common/bamfiles.py
new file mode 100644
index 0000000..5a2991b
--- /dev/null
+++ b/pypeline/common/bamfiles.py
@@ -0,0 +1,138 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import itertools
+
+# BAM flags as defined in the BAM specification
+BAM_SUPPLEMENTARY_ALIGNMENT = 0x800
+BAM_PCR_DUPLICATE = 0x400
+BAM_QUALITY_CONTROL_FAILED = 0x200
+BAM_SECONDARY_ALIGNMENT = 0x100
+BAM_IS_LAST_SEGMENT = 0x80
+BAM_IS_FIRST_SEGMENT = 0x40
+BAM_NEXT_IS_REVERSED = 0x20
+BAM_READ_IS_REVERSED = 0x10
+BAM_NEXT_IS_UNMAPPED = 0x8
+BAM_READ_IS_UNMAPPED = 0x4
+BAM_PROPER_SEGMENTS = 0x2
+BAM_SEGMENTED = 0x1
+
+# Default filters when processing reads
+EXCLUDED_FLAGS = \
+ BAM_SUPPLEMENTARY_ALIGNMENT | \
+ BAM_PCR_DUPLICATE | \
+ BAM_QUALITY_CONTROL_FAILED | \
+ BAM_SECONDARY_ALIGNMENT | \
+ BAM_READ_IS_UNMAPPED
+
+
+class BAMRegionsIter(object):
+ """Iterates over a BAM file, yield a separate iterator for each contig
+ in the BAM or region in the list of regions if these are species, which in
+ turn iterates over individual positions. This allows for the following
+ pattern when parsing BAM files:
+
+ for region in BAMRegionsIter(handle):
+ # Setup per region
+ for (position, records) in region:
+ # Setup per position
+ ...
+ # Teardown per position
+ # Teardown per region
+
+ The list of regions given to the iterator is expected to be in BED-like
+ records (see e.g. pypeline.common.bedtools), with these properties:
+ - contig: Name of the contig in the BED file
+ - start: 0-based offset for the start of the region
+ - end: 1-based offset (i.e. past-the-end) of the region
+ - name: The name of the region
+ """
+
+ def __init__(self, handle, regions=None, exclude_flags=EXCLUDED_FLAGS):
+ """
+ - handle: BAM file handle (c.f. module 'pysam')
+ - regions: List of BED-like regions (see above)
+ """
+ self._handle = handle
+ self._regions = regions
+ self._excluded = exclude_flags
+
+ def __iter__(self):
+ if self._regions:
+ for region in self._regions:
+ records = self._handle.fetch(region.contig,
+ region.start,
+ region.end)
+ records = self._filter(records)
+
+ tid = self._handle.gettid(region.contig)
+ yield _BAMRegion(tid, records,
+ region.name,
+ region.start,
+ region.end)
+ else:
+ def _by_tid(record):
+ """Group by reference ID."""
+ return record.tid
+
+ # Save a copy, as these are properties generated upon every access!
+ names = self._handle.references
+ lengths = self._handle.lengths
+ records = self._filter(self._handle)
+ records = itertools.groupby(records, key=_by_tid)
+
+ for (tid, items) in records:
+ if tid >= 0:
+ name = names[tid]
+ length = lengths[tid]
+ else:
+ name = length = None
+
+ yield _BAMRegion(tid, items, name, 0, length)
+
+ def _filter(self, records):
+ """Filters records by flags, if 'exclude_flags' is set."""
+ if self._excluded:
+ pred = lambda record: not record.flag & self._excluded
+ return itertools.ifilter(pred, records)
+ return records
+
+
+class _BAMRegion(object):
+ """Implements iteration over sites in a BAM file. It is assumed that the
+ BAM file is sorted, and that the input records are from one contig.
+ """
+
+ def __init__(self, tid, records, name, start, end):
+ self._records = records
+ self.tid = tid
+ self.name = name
+ self.start = start
+ self.end = end
+
+ def __iter__(self):
+ def _by_pos(record):
+ """Group by position."""
+ return record.pos
+
+ for group in itertools.groupby(self._records, _by_pos):
+ yield group
diff --git a/pypeline/common/bedtools.py b/pypeline/common/bedtools.py
new file mode 100644
index 0000000..a2fedae
--- /dev/null
+++ b/pypeline/common/bedtools.py
@@ -0,0 +1,179 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import copy
+
+import pypeline.common.fileutils as fileutils
+import pypeline.common.text as text
+
+
+def _strand_type(value):
+ if value not in ("+", "-"):
+ raise ValueError("Strand must be '+' or '-', not %r" % (value,))
+ return value
+
+
+_BED_DEFAULTS = ("", 0, 0, "", 0, "+")
+_BED_KEYS = ("contig", "start", "end", "name", "score", "strand")
+_BED_TYPES = (str, int, int, str, int, _strand_type)
+
+
+class BEDRecord(object):
+ """Class for parsing and representing a BED records.
+
+ The class has the following properties:
+ .name -> str
+ .start -> int (0-based)
+ .end -> int (1-based)
+ .name -> str
+ .score -> int
+ .strand -> '+' or '-'
+
+ These fields can also be accessed using the square brackets notation, which
+ also gives access to any additional values, after the strand column. Fields
+ default to 0 or empty string, except the strand which defaults to '+'.
+ """
+
+ def __init__(self, line=None, _len=None):
+ """Constructs a BED record from a line of text. The length of the
+ object matches the number of columns in the input line; in the case
+ incompatible values, the ValueError exception is raised.
+
+ The len parameter is unused, and included only for compatibility with
+ pysam parser objects, such as 'asBED'. No minimum number of columns are
+ required, and it is possible to construct an empty bed record.
+ """
+ self._fields = []
+
+ if line:
+ line = line.rstrip("\r\n").split('\t')
+ for column, (value, func) in enumerate(zip(line, _BED_TYPES)):
+ try:
+ self._fields.append(func(value))
+ except ValueError:
+ raise ValueError("Error parsing column %i in BED record "
+ "(%r); expected type %s, but found %r."
+ % (column, "\t".join(line),
+ func.__name__, value,))
+
+ if len(line) > len(self._fields):
+ self._fields.extend(line[len(self._fields):])
+
+ def __copy__(self):
+ """Needed for copy.copy to work correctly as expected."""
+ record = BEDRecord()
+ record._fields = copy.copy(self._fields)
+ return record
+
+ def __len__(self):
+ """Returns the number of fields in the record; 0 .. N."""
+ return len(self._fields)
+
+ def __str__(self):
+ """Returns a string suitable for writing to a .bed file."""
+ return "\t".join(str(value) for value in self._fields)
+
+ def __repr__(self):
+ """Returns a printable representation of the record."""
+ fields = []
+ for name, value in zip(_BED_KEYS, self._fields):
+ fields.append("%s=%r" % (name, value))
+
+ fields.extend(repr(value) for value in self._fields[len(_BED_KEYS):])
+
+ return "BEDRecord(%s)" % (", ".join(fields))
+
+ def __getitem__(self, index):
+ return self._fields[index]
+
+ def __setitem__(self, index, value):
+ if len(self._fields) <= index:
+ defaults = _BED_DEFAULTS[len(self._fields):index + 1]
+ self._fields.extend(defaults)
+ while len(self._fields) <= index:
+ self._fields.append("")
+
+ if index < len(_BED_TYPES):
+ if type(_BED_TYPES[index]) is type:
+ if not isinstance(value, _BED_TYPES[index]):
+ raise ValueError("Expected %s for BED field %i, got %r"
+ % (_BED_TYPES[index].__name__,
+ index + 1, value))
+ else:
+ value = _BED_TYPES[index](value)
+
+ self._fields[index] = value
+
+ def __cmp__(self, other):
+ if not isinstance(other, BEDRecord):
+ return cmp(self.__class__, other.__class__)
+
+ return cmp(self._fields, other._fields)
+
+ @classmethod
+ def _set_properties(cls):
+ for index, name in enumerate(_BED_KEYS):
+ setattr(cls, name, cls._new_attr(index))
+
+ @classmethod
+ def _new_attr(cls, index):
+ """Returns an getter / setter property for the given value."""
+ def _get(self):
+ return self._fields[index]
+
+ def _set(self, value):
+ self[index] = value
+
+ return property(_get, _set)
+
+
+# Fill out properties for BEDRecord
+BEDRecord._set_properties()
+
+
+def read_bed_file(filename):
+ """Parses a (gzip/bzip2 compressed) BED file, and yields
+ a sequence of records. Comments and empty lines are skipped."""
+ handle = None
+ try:
+ handle = fileutils.open_ro(filename)
+ for record in text.parse_lines(handle, BEDRecord):
+ yield record
+ finally:
+ if handle:
+ handle.close()
+
+
+def sort_bed_by_bamfile(bamfile, regions):
+ """Orders a set of BED regions, such that processing matches
+ (as far as possible) the layout of the BAM file. This may be
+ used to ensure that extraction of regions occurs (close to)
+ linearly."""
+ if not regions:
+ return
+
+ indices = dict(zip(bamfile.references,
+ xrange(len(bamfile.references))))
+
+ def _by_bam_layout(region):
+ return (indices[region.contig], region.start, region.end)
+ regions.sort(key=_by_bam_layout)
diff --git a/pypeline/common/console.py b/pypeline/common/console.py
new file mode 100644
index 0000000..74b1bb8
--- /dev/null
+++ b/pypeline/common/console.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2013 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from __future__ import print_function
+
+import sys
+
+
+# Global setting to enable, disable, or force the use console codes when the
+# print_* functions are used. By default (ON), color codes will only be used if
+# the destination is a TTY.
+COLORS_OFF, COLORS_ON, COLORS_FORCED = range(3)
+def set_color_output(clr):
+ assert clr in (COLORS_OFF, COLORS_ON, COLORS_FORCED)
+ global _COLORS
+ _COLORS = clr
+
+
+def print_msg(*vargs, **kwargs):
+ """Equivalent to print. Currently does not apply a color to the text"""
+ print(*vargs, **kwargs)
+
+
+def print_debug(*vargs, **kwargs):
+ """Equivalent to print, but prints using shell colorcodes (blue)."""
+ _do_print_color(*vargs, colorcode = 36, **kwargs)
+
+
+def print_info(*vargs, **kwargs):
+ """Equivalent to print, but prints using shell colorcodes (green)."""
+ _do_print_color(*vargs, colorcode = 32, **kwargs)
+
+
+def print_err(*vargs, **kwargs):
+ """Equivalent to print, but prints using shell colorcodes (red)."""
+ _do_print_color(*vargs, colorcode = 31, **kwargs)
+
+
+def print_warn(*vargs, **kwargs):
+ """Equivalent to print, but prints using shell colorcodes (yellow)."""
+ _do_print_color(*vargs, colorcode = 33, **kwargs)
+
+
+def print_disabled(*vargs, **kwargs):
+ """Equivalent to print, but prints using shell colorcodes (gray)."""
+ _do_print_color(*vargs, colorcode = 30, **kwargs)
+
+
+def _do_print_color(*vargs, **kwargs):
+ """Utility function: Prints using shell colors."""
+ colorcode = kwargs.pop("colorcode")
+ destination = kwargs.pop("file", sys.stdout)
+
+ # No colors if output is redirected (e.g. less, file, etc.)
+ colors_on = _COLORS != COLORS_OFF
+ colors_forced = _COLORS == COLORS_FORCED
+ if colors_on and (destination.isatty() or colors_forced):
+ vargs = list(vargs)
+ for (index, varg) in enumerate(vargs):
+ varg_lines = []
+ # Newlines terminate the color-code for e.g. 'less', so ensure that
+ # each line is color-coded, while preserving the list of arguments
+ for line in str(varg).split("\n"):
+ varg_lines.append("\033[00;%im%s\033[00m" % (colorcode, line))
+ vargs[index] = "\n".join(varg_lines)
+
+ print(*vargs, file = destination, **kwargs)
+_COLORS = COLORS_ON
\ No newline at end of file
diff --git a/pypeline/common/fileutils.py b/pypeline/common/fileutils.py
new file mode 100644
index 0000000..1ef705a
--- /dev/null
+++ b/pypeline/common/fileutils.py
@@ -0,0 +1,346 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import bz2
+import gzip
+import uuid
+import errno
+import types
+import shutil
+
+from pypeline.common.utilities import safe_coerce_to_tuple, \
+ safe_coerce_to_frozenset
+
+
+
+
+def add_postfix(filename, postfix):
+ """Ads a postfix to a filename (before any extensions that filename may have)."""
+ filename, ext = os.path.splitext(filename)
+ return filename + postfix + ext
+
+
+def swap_ext(filename, ext):
+ """Replaces the existing extension of a filename with the specified extension,
+ ensuring that the extension is prefixed by a '.'. If no extension is specified,
+ other than potentially a dot, the existing extension is stripped."""
+ filename, _ = os.path.splitext(filename)
+ if ext in ("", "."):
+ return filename
+
+ if not ext.startswith("."):
+ ext = "." + ext
+
+ return filename + ext
+
+
+def reroot_path(root, filename):
+ """Returns the basename of filename, joined to root."""
+ return os.path.join(root, os.path.basename(filename))
+
+
+def create_temp_dir(root):
+ """Creates a temporary directory, accessible only by the owner,
+ at the specified location. The folder name is randomly generated,
+ and only the current user has access"""
+ def _generate_path():
+ return os.path.join(root, str(uuid.uuid4()))
+
+ path = _generate_path()
+ while not make_dirs(path, mode = 0750):
+ path = _generate_path()
+ return path
+
+
+def missing_files(filenames):
+ """Given a list of filenames, returns a list of those that
+ does not exist. Note that this function does not differentiate
+ between files and folders."""
+ result = []
+ for filename in safe_coerce_to_frozenset(filenames):
+ if not os.path.exists(filename):
+ result.append(filename)
+
+ return result
+
+
+def modified_after(younger, older):
+ """Returns true any of the files expected to be 'younger' have
+ been modified after any of the files expected to be 'older'."""
+ def get_mtimes(filenames):
+ for filename in filenames:
+ yield os.path.getmtime(filename)
+
+ younger_time = max(get_mtimes(safe_coerce_to_frozenset(younger)))
+ older_time = min(get_mtimes(safe_coerce_to_frozenset(older)))
+
+ return younger_time > older_time
+
+
+def is_executable(filename):
+ """Returns true if the specified file is an executable file."""
+ return os.path.isfile(filename) and os.access(filename, os.X_OK)
+
+
+def which_executable(filename):
+ """Returns the path of the first executable in the PATH which
+ matches the filename, or None if no match was found. If the
+ filename contains a directory component, only that path is
+ tested, and None is returned if that file is not an executable."""
+ if os.path.dirname(filename):
+ if is_executable(filename):
+ return filename
+ return None
+
+ path_variable = os.environ.get("PATH")
+ if not path_variable:
+ return None
+
+ for path in path_variable.split(os.pathsep):
+ fpath = os.path.join(path, filename)
+ if is_executable(fpath):
+ return fpath
+
+ return None
+
+
+def executable_exists(filename):
+ """Returns true if the filename refers to an executable file,
+ either by relative or full path, or if the executable is found
+ on the current PATH."""
+ exec_path = which_executable(filename)
+
+ return exec_path and is_executable(exec_path)
+
+
+def missing_executables(filenames):
+ result = []
+ for filename in safe_coerce_to_frozenset(filenames):
+ if not executable_exists(filename):
+ result.append(filename)
+ return result
+
+
+def make_dirs(directory, mode = 0777):
+ """Wrapper around os.makedirs to make it suitable for using
+ in a multithreaded/multiprocessing enviroment: Unlike the
+ regular function, this wrapper does not throw an exception if
+ the directory already exists, which may happen if another
+ thread/process created the directory during the function call.
+
+ Returns true if a new directory was created, false if it
+ already existed. Other errors result in exceptions."""
+ if not directory:
+ raise ValueError("Empty directory passed to make_dirs()")
+
+ try:
+ os.makedirs(directory, mode = mode)
+ return True
+ except OSError, error:
+ # make_dirs be called by multiple subprocesses at the same time,
+ # so only raise if the actual creation of the folder failed
+ if error.errno != errno.EEXIST:
+ raise
+ return False
+
+
+def move_file(source, destination):
+ """Wrapper around shutils which ensures that the
+ destination directory exists before moving the file."""
+ _sh_wrapper(shutil.move, source, destination)
+
+
+def copy_file(source, destination):
+ """Wrapper around shutils which ensures that the
+ destination directory exists before copying the file."""
+ _sh_wrapper(shutil.copy, source, destination)
+
+
+def open_ro(filename):
+ """Opens a file for reading, transparently handling
+ GZip and BZip2 compressed files. Returns a file handle."""
+ handle = open(filename)
+ try:
+ header = handle.read(2)
+
+ if header == "\x1f\x8b":
+ handle.close()
+ # TODO: Re-use handle (fileobj)
+ handle = gzip.open(filename)
+ elif header == "BZ":
+ handle.close()
+ handle = bz2.BZ2File(filename)
+ else:
+ handle.seek(0)
+
+ return handle
+ except:
+ handle.close()
+ raise
+
+
+def try_remove(filename):
+ """Tries to remove a file. Unlike os.remove, the function does not
+ raise an exception if the file does not exist, but does raise
+ exceptions on other errors. The return value reflects whether or
+ not the file was actually removed."""
+ return _try_rm_wrapper(os.remove, filename)
+
+
+def try_rmdir(filename):
+ """Tries to remove a directory. Unlike os.rmdir, the function does not raise
+ an exception if the file does not exist, but does raise exceptions on other
+ errors. The return value reflects whether or not the file was actually
+ removed."""
+ return _try_rm_wrapper(os.rmdir, filename)
+
+
+def try_rmtree(filename):
+ """Tries to remove a dir-tree. Unlike shutil.rmtree, the function does not raise
+ an exception if the file does not exist, but does raise exceptions on other
+ errors. The return value reflects whether or not the file was actually
+ removed."""
+ return _try_rm_wrapper(shutil.rmtree, filename)
+
+
+def describe_files(files):
+ """Return a text description of a set of files."""
+ files = _validate_filenames(files)
+
+ if not files:
+ return "No files"
+ elif len(files) == 1:
+ return repr(files[0])
+
+ glob_files = _get_files_glob(files, max_differences = 2)
+ if glob_files:
+ return repr(glob_files)
+
+ paths = set(os.path.dirname(filename) for filename in files)
+ if len(paths) == 1:
+ return "%i files in '%s'" % (len(files), paths.pop())
+ return "%i files" % (len(files),)
+
+
+def describe_paired_files(files_1, files_2):
+ """Return a text description of a set of paired filenames; the
+ sets must be of the same length, a the description will depend
+ on the overall similarity of the filenames / paths. If 'files_2'
+ is empty, this function is the equivalent of calling
+ 'describe_files' with 'files_1' as the argument. In all other
+ cases the length of the two sets must be the same."""
+ files_1 = _validate_filenames(files_1)
+ files_2 = _validate_filenames(files_2)
+
+ if files_1 and not files_2:
+ return describe_files(files_1)
+ elif len(files_1) != len(files_2):
+ raise ValueError("Unequal number of files for mate 1 vs mate 2 reads: %i vs %i" \
+ % (len(files_1), len(files_2)))
+
+ glob_files_1 = _get_files_glob(files_1, 3)
+ glob_files_2 = _get_files_glob(files_2, 3)
+ if glob_files_1 and glob_files_2:
+ final_glob = _get_files_glob((glob_files_1, glob_files_2), 1, show_differences = True)
+ if final_glob:
+ return repr(final_glob)
+
+ fnames = files_1 + files_2
+ paths = set(os.path.dirname(fname) for fname in fnames)
+ if len(paths) == 1:
+ return "%i pair(s) of files in '%s'" % (len(files_1), paths.pop())
+ return "%i pair(s) of files" % (len(files_1),)
+
+
+def _get_files_glob(filenames, max_differences = 1, show_differences = False):
+ """Tries to generate a glob-string for a set of filenames, containing
+ at most 'max_differences' different columns. If more differences are
+ found, or if the length of filenames vary, None is returned."""
+ # File lengths must be the same, otherwise we'd have to do MSA
+ if len(set(map(len, filenames))) > 1:
+ return None
+
+ glob_fname, differences = [], 0
+ for chars in zip(*filenames):
+ if "?" in chars:
+ chars = ('?',)
+
+ if len(frozenset(chars)) > 1:
+ if show_differences:
+ chars = ("[%s]" % ("".join(sorted(chars))),)
+ else:
+ chars = ("?",)
+ differences += 1
+ glob_fname.append(chars[0])
+
+ if differences > max_differences:
+ return None
+
+ return "".join(glob_fname)
+
+
+def _validate_filenames(filenames):
+ """Sanity checks for filenames handled by
+ 'describe_files' and 'describe_paired_files."""
+ filenames = safe_coerce_to_tuple(filenames)
+ for filename in filenames:
+ if not isinstance(filename, types.StringTypes):
+ raise ValueError("Only string types are allowed for filenames, not %s" \
+ % (filename.__class__.__name__,))
+ return filenames
+
+
+def _sh_wrapper(func, source, destination):
+ """Runs an 'shutil' function ('func') which takes an 'source' and
+ a 'destination' argument (e.g. copy/move/etc.), but silently
+ handles the case where the destination directory does not exist.
+
+ If this is the case, the function will first create the destination
+ directory, and then retry the function."""
+ try:
+ func(source, destination)
+ except IOError, error:
+ if (error.errno == errno.ENOENT):
+ if source and destination and os.path.exists(source):
+ dirname = os.path.dirname(destination)
+ make_dirs(dirname)
+ func(source, destination)
+ return
+ elif (error.errno == errno.ENOSPC):
+ # Not enough space; remove partial file
+ os.unlink(destination)
+ raise
+
+
+def _try_rm_wrapper(func, fpath):
+ """Takes a function (e.g. os.remove / os.rmdir), and attempts to remove a
+ path; returns true if that path was succesfully remove, and false if it did
+ not exist."""
+ try:
+ func(fpath)
+ return True
+ except OSError, error:
+ if error.errno != errno.ENOENT:
+ raise
+ return False
+
diff --git a/pypeline/common/formats/__init__.py b/pypeline/common/formats/__init__.py
new file mode 100644
index 0000000..967d5e9
--- /dev/null
+++ b/pypeline/common/formats/__init__.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+# pylint: disable=W0611
+
+from pypeline.common.formats._common import FormatError
diff --git a/pypeline/common/formats/_common.py b/pypeline/common/formats/_common.py
new file mode 100644
index 0000000..e4c89d2
--- /dev/null
+++ b/pypeline/common/formats/_common.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+
+class FormatError(RuntimeError):
+ pass
diff --git a/pypeline/common/formats/_graph.py b/pypeline/common/formats/_graph.py
new file mode 100644
index 0000000..85693ff
--- /dev/null
+++ b/pypeline/common/formats/_graph.py
@@ -0,0 +1,295 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2013 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""
+
+
+"""
+
+from pypeline.common.utilities import \
+ safe_coerce_to_frozenset, \
+ get_in, \
+ set_in
+
+from pypeline.common.formats import FormatError
+
+
+class GraphError(FormatError):
+ pass
+
+
+
+class _Graph:
+ """Internal representation of an unrooted graph, allowing various forms of
+ manipulation directly on the graph. To ensure that all manipulations can be
+ carried out, it is required that branch-lengths are present for ALL branches,
+ or for NO branches.
+
+ Note that neither the root-length, nor node-ordering is preserved."""
+
+ def __init__(self):
+ self.names = {}
+ self.connections = {}
+ self.has_branch_lengths = None
+
+
+ def is_leaf(self, node):
+ """Returns true if the node is a leaf, defined as having a single connection."""
+ return len(self.connections[node]) == 1
+
+
+ def get_path_length(self, *nodes):
+ """Returns the length of a path through the graph. Calling the function
+ with two nodes is the equivalent of getting the branch-length between
+ those two nodes."""
+ if not self.has_branch_lengths:
+ return None
+
+ path_length = 0.0
+ for (node_a, node_b) in zip(nodes, nodes[1:]):
+ segment_length = float(self.connections[node_a][node_b])
+ path_length += segment_length
+
+ return path_length
+
+
+ def set_name(self, node_id, name):
+ self.names[node_id] = name
+
+
+ def add_connection(self, node_id_a, node_id_b, blength = None):
+ if (blength is not None) and float(blength) < 0:
+ raise GraphError("Branch-lengths must be non-negative")
+ elif (blength is not None) != self.has_branch_lengths:
+ if not self.has_branch_lengths is None:
+ raise GraphError("Tree contains branches with and without lengths")
+ self.has_branch_lengths = (blength is not None)
+
+ set_in(self.connections, (node_id_a, node_id_b), blength)
+ set_in(self.connections, (node_id_b, node_id_a), blength)
+
+
+ def remove_connection(self, node_a, node_b):
+ length_a = self.connections[node_a].pop(node_b)
+ length_b = self.connections[node_b].pop(node_a)
+ assert length_a == length_b, (length_a, length_b)
+ return length_a
+
+
+ def remove_node(self, node):
+ connections = self.connections.pop(node)
+ for node_b in connections:
+ self.connections[node_b].pop(node)
+ self.names.pop(node)
+
+
+ def rebuild_tree(self, parent_id, node_id):
+ """Rebuilds a tree starting at a node with id
+ 'node_id' and a parent with id 'parent_id' (or the
+ same value as 'node_id' if a root node)."""
+ raise NotImplementedError("Subclasses must implement 'rebuild_nodes'.") # pragma: no coverage
+
+
+ def prune_uninformative_nodes(self):
+ """Removes nodes without names, and which are connected
+ to two other nodes, extending the branch lengths of the
+ two connected nodes. This process is repreated, until no
+ further nodes are pruned. A rooted tree will typically
+ contain just 1 such node, namely the old root node.
+
+ For example, the tree "(A:5,(B:6):3);" would be reduced to
+ the tree "(A:5,B:9);", whereas the trees "(A:5,(B:6)C:3);"
+ and "(A:5,(B:6,C:2):3);" would not be pruned.
+
+ For a node to be pruned, both adjacent nodes must have a
+ length specified, or both must not have a length specified."""
+ while True:
+ for (cur_node, connections) in self.connections.iteritems():
+ if not self.names[cur_node] and (len(connections) == 2):
+ conn_a, conn_b = connections
+
+ blength = self.get_path_length(conn_a, cur_node, conn_b)
+
+ # Splice out the current node
+ self.remove_node(cur_node)
+ self.add_connection(conn_a, conn_b, blength)
+ break
+ else:
+ # Nothing was pruned this round, terminate
+ break
+
+
+
+ ################################################################################
+ ################################################################################
+ ## Functions relating to NEWICK rooting on midpoint
+
+ def reroot_on_midpoint(self):
+ if not self.has_branch_lengths:
+ raise GraphError("Cannot reroot on midpoint for tree without branch-lengths")
+
+ longest_path, length = self._find_longest_path()
+ root = self._create_root_at(longest_path, length / 2.0)
+
+ return self.rebuild_tree(root, root)
+
+
+ def _find_longest_path(self):
+ """This function determines the longest non-overlapping path possible,
+ and returns a list of the sequence of nodes in this path, as well as
+ the total length of this path."""
+ path_blengths = {}
+ path_guides = {}
+ def _collect_paths(guide, length, p_node, c_node):
+ length += self.get_path_length(p_node, c_node)
+
+ guide.append(c_node)
+ key = frozenset(guide)
+ path_blengths[key] = length
+ path_guides[key ] = guide
+
+ for other in self.connections[c_node]:
+ if other not in key:
+ _collect_paths(list(guide), length, c_node, other)
+
+ for (p_node, connections) in self.connections.iteritems():
+ for c_node in connections:
+ _collect_paths([p_node], 0, p_node, c_node)
+
+ key, length = max(path_blengths.iteritems(), key = lambda item: item[1])
+ return path_guides[key], length
+
+
+ def _create_root_at(self, path, root_at):
+ """Finds the midpoint of a path through a tree, and
+ either creates a new node at that point, or selects
+ the node already present at that point (if any). The
+ mid-point is assumed to be at distance of 'root_at'
+ from the starting node.
+
+ E.g. if the path is the longest path, and 'root_at' is
+ half the length of this path, then this corresponds to
+ rooting at the midpoint.
+
+ The id of the new / selected node is returned. New
+ nodes (if created) are always given the id None."""
+ for (c_node, n_node) in zip(path, path[1:]):
+ branch_length = self.get_path_length(c_node, n_node)
+
+ if (branch_length > root_at):
+ left_len = root_at
+ right_len = branch_length - root_at
+
+ self.remove_connection(c_node, n_node)
+ self.add_connection(None, c_node, left_len)
+ self.add_connection(None, n_node, right_len)
+
+ return None
+ elif branch_length == root_at:
+ return n_node
+ root_at -= branch_length
+ assert False # pragma: no coverage
+
+
+ ################################################################################
+ ################################################################################
+ ## Functions relating to NEWICK rooting on taxa
+
+ def reroot_on_taxa(self, taxa):
+ taxa = safe_coerce_to_frozenset(taxa)
+ if not taxa:
+ raise ValueError("No taxa in outgroup")
+
+ clades = self._collect_clades()
+ root_on = self._collect_nodes_from_names(taxa)
+ # Because None is the id of the root atm: # pylint: disable=W1111
+ root = self._create_root_with_clade(clades, root_on)
+
+ return self.rebuild_tree(root, root)
+
+
+ def _collect_nodes_from_names(self, taxa):
+ known_taxa = set()
+ for (node_id, name) in self.names.iteritems():
+ if self.is_leaf(node_id):
+ known_taxa.add(name)
+
+ unknown_taxa = taxa - known_taxa
+ if unknown_taxa:
+ raise ValueError("Cannot root on unknown taxa: %s" % (", ".join(unknown_taxa),))
+ elif not (known_taxa - taxa):
+ raise ValueError("Cannot root on every taxa in tree")
+
+ return frozenset(key for (key, name) in self.names.iteritems() if name in taxa)
+
+
+ def _collect_clades(self):
+ clades = {}
+ for (node_a, connections) in self.connections.iteritems():
+ for node_b in connections:
+ self._collect_clade_from(clades, node_a, node_b)
+ return clades
+
+
+ def _collect_clade_from(self, cache, p_node, c_node):
+ c_clade = get_in(cache, (p_node, c_node), set())
+ if not c_clade:
+ if self.is_leaf(c_node):
+ c_clade.add(c_node)
+
+ for n_node in self.connections[c_node]:
+ if n_node != p_node:
+ c_clade.update(self._collect_clade_from(cache, c_node, n_node))
+ set_in(cache, (p_node, c_node), frozenset(c_clade))
+ return c_clade
+
+
+ def _create_root_with_clade(self, clades, taxa):
+ root_key, root_clade, root_length = None, None, None
+ for (p_node, connections) in clades.iteritems():
+ for (n_node, clade) in connections.iteritems():
+ if (root_clade is None) or (len(clade) < len(root_clade)):
+ if taxa.issubset(clade):
+ root_key = (p_node, n_node)
+ root_clade = clade
+ root_length = self.get_path_length(p_node, n_node)
+
+ p_node, n_node = root_key
+ if root_length is not None:
+ root_length = float(root_length) / 2.0
+
+ self.remove_connection(p_node, n_node)
+ self.add_connection(None, p_node, root_length)
+ self.add_connection(None, n_node, root_length)
+
+ return None
+
+
+ ################################################################################
+ ################################################################################
+ ## Functions relating to calculating bootstrap support
+ def get_clade_names(self):
+ result = set()
+ for (_, connections) in self._collect_clades().iteritems():
+ for (_, clade) in connections.iteritems():
+ result.add(frozenset(self.names[node_id] for node_id in clade))
+ return result
diff --git a/pypeline/common/formats/fasta.py b/pypeline/common/formats/fasta.py
new file mode 100644
index 0000000..04da34e
--- /dev/null
+++ b/pypeline/common/formats/fasta.py
@@ -0,0 +1,113 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import sys
+import types
+
+from pypeline.common.utilities import \
+ fragment, \
+ split_before, \
+ Immutable, \
+ TotallyOrdered
+from pypeline.common.fileutils import open_ro
+from pypeline.common.formats._common import FormatError
+
+
+class FASTAError(FormatError):
+ pass
+
+
+class FASTA(TotallyOrdered, Immutable):
+ def __init__(self, name, meta, sequence):
+ if not (name and isinstance(name, types.StringTypes)):
+ raise FASTAError("FASTA name must be a non-empty string")
+ elif not (isinstance(meta, types.StringTypes) or (meta is None)):
+ raise FASTAError("FASTA meta-information must be a string, or None")
+ elif not isinstance(sequence, types.StringTypes):
+ raise FASTAError("FASTA sequence must be a string")
+
+ Immutable.__init__(self,
+ name = name,
+ meta = meta,
+ sequence = sequence)
+
+
+ def write(self, fileobj = sys.stdout):
+ """Prints a FASTA sequence (iterable), wrapping long sequences at 60 chars."""
+ fileobj.write(repr(self))
+
+
+ @classmethod
+ def from_lines(cls, lines):
+ """Parses FASTA sequences found in a sequence of lines, and returns
+ a tuple for each FASTA record: ((name, meta-information), sequence)
+ No assumptions are made about the line-lengths."""
+ lines = (line.rstrip() for line in lines)
+ for record in split_before(lines, lambda v: v.startswith(">")):
+ name = record[0]
+ if (not name.startswith(">")) or (len(name) == 1):
+ raise FASTAError("Unnamed FASTA record")
+ elif len(record) == 1:
+ raise FASTAError("FASTA record does not contain sequence: " + name[1:])
+
+ # Split out any meta information
+ name_and_meta = name[1:].split(None, 1)
+ if len(name_and_meta) < 2:
+ name_and_meta.append(None)
+ name, meta = name_and_meta
+
+ yield FASTA(name = name,
+ meta = meta,
+ sequence = "".join(record[1:]))
+
+
+ @classmethod
+ def from_file(cls, filename):
+ """Reads an unindexed FASTA file, returning a sequence of
+ tuples containing the name and sequence of each entry in
+ the file. The FASTA file may be GZIP/BZ2 compressed."""
+ fasta_file = open_ro(filename)
+ try:
+ for record in FASTA.from_lines(fasta_file):
+ yield record
+ finally:
+ fasta_file.close()
+
+
+ def __lt__(self, other):
+ if not isinstance(other, FASTA):
+ return NotImplemented
+
+ return (self.name, self.meta, self.sequence) \
+ < (other.name, other.meta, other.sequence)
+
+
+ def __hash__(self):
+ return hash((self.name, self.meta, self.sequence))
+
+
+ def __repr__(self):
+ """Process a printable FASTA sequence, wrapping long sequences at 60 chars."""
+ name = self.name
+ if self.meta:
+ name = "%s %s" % (name, self.meta)
+ return ">%s\n%s\n" % (name, "\n".join(fragment(60, self.sequence)))
diff --git a/pypeline/common/formats/fastq.py b/pypeline/common/formats/fastq.py
new file mode 100644
index 0000000..f45f8d3
--- /dev/null
+++ b/pypeline/common/formats/fastq.py
@@ -0,0 +1,76 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+
+
+# Quality score offsets for Phred (or similar) scores in FASTQ reads (33 or 64)
+OFFSET_33 = 33
+OFFSET_64 = 64
+# Quality score found in both ranges that are unique to each offset,
+# suggesting that the list contains mixed quality offsets, or invalid data.
+OFFSET_BOTH = "BOTH"
+# No quality scores in the expected range of ASCII values (33 .. 105)
+OFFSET_MISSING = "MISSING"
+# Quality scores are in the ASCII range 59 .. 74, which could signify
+# low-quality reads with offset 64, or high-quality reads with offset 33
+OFFSET_AMBIGIOUS = "AMBIGIOUS"
+
+
+def classify_quality_strings(quality_strings):
+ """Takes a sequence of quality strings from FASTQ"""
+ counts = [0] * 256
+ for read in quality_strings:
+ for char in read:
+ counts[ord(char)] += 1
+
+ return _identify_format(counts)
+
+
+def _identify_format(counts):
+ """Given a list representing counts of ASCII characters found in one or
+ more FASTQ quality strins, this function attempts to identify the offset
+ used to encode the quality scores.
+
+ The following constants may be returned:
+ - OFFSET_33: Offset identified as being 33
+ - OFFSET_64: Offset identified as being 64
+ - OFFSET_BOTH: Both offset 33 and 64 found, mixed file? (error)
+ - OFFSET_MISSING: No quality scores found, wrong file? (error)
+ - OFFSET_AMBIGIOUS: Qualities could be either offset. (warning)
+ """
+ # The range of scores that can unambigiously be identified
+ # as belonging to Phred scores with offset 33 or 64. Scores
+ # in between could potentially signify either offset
+ # See e.g. http://en.wikipedia.org/wiki/FASTQ_format#Encoding
+ has_offset_33_scores = any(counts[33:59])
+ has_ambigious_scores = any(counts[59:75])
+ has_offset_64_scores = any(counts[75:105])
+
+ if has_offset_33_scores:
+ if has_offset_64_scores:
+ return OFFSET_BOTH
+ return OFFSET_33
+ elif has_offset_64_scores:
+ return OFFSET_64
+ elif has_ambigious_scores:
+ return OFFSET_AMBIGIOUS
+ return OFFSET_MISSING
diff --git a/pypeline/common/formats/msa.py b/pypeline/common/formats/msa.py
new file mode 100644
index 0000000..2c9762c
--- /dev/null
+++ b/pypeline/common/formats/msa.py
@@ -0,0 +1,230 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from itertools import izip
+from collections import defaultdict
+
+from pypeline.common.sequences import split
+from pypeline.common.fileutils import open_ro
+from pypeline.common.formats.fasta import FASTA, FASTAError
+from pypeline.common.sequences import NT_CODES, encode_genotype
+from pypeline.common.utilities import safe_coerce_to_frozenset
+
+
+class MSAError(FASTAError):
+ pass
+
+
+class MSA(frozenset):
+ """Represents a Multiple Sequence Alignment of FASTA records."""
+
+ def __new__(cls, sequences):
+ records, names = [], set()
+ for record in sequences:
+ if record.name in names:
+ raise MSAError("Duplicate name found in FASTA records: %r" % record.name)
+ records.append(record)
+ names.add(record.name)
+
+ if not records:
+ raise MSAError("MSA does not contain any sequences")
+
+ instance = frozenset.__new__(cls, records)
+ MSA.validate(instance)
+ return instance
+
+ def seqlen(self):
+ """Retrurns the length of the sequences in the MSA."""
+ return len(iter(self).next().sequence)
+
+ def exclude(self, names):
+ """Builds a new MSA that excludes the named set of records."""
+ _, excluded, _ = self._group(names)
+ return MSA(excluded)
+
+ def select(self, names):
+ """Builds a new MSA that includes only the named set of records."""
+ included, _, _ = self._group(names)
+ return MSA(included)
+
+ def reduce(self):
+ columns = []
+ uncalled = frozenset("Nn-")
+ for column in izip(*(record.sequence for record in self)):
+ if (frozenset(column) - uncalled):
+ columns.append(column)
+
+ if not columns:
+ return None
+
+ records = []
+ for (record, sequence) in izip(self, izip(*columns)):
+ records.append(FASTA(record.name, record.meta, "".join(sequence)))
+
+ return MSA(records)
+
+ def filter_singletons(self, to_filter, filter_using):
+ included, excluded, to_filter \
+ = self._group(filter_using, to_filter)
+
+ sequence = list(to_filter.sequence)
+ sequences = [record.sequence.upper() for record in included]
+ for (index, nts) in enumerate(zip(*sequences)):
+ current_nt = sequence[index].upper()
+ if current_nt in "N-":
+ continue
+
+ allowed_nts = set()
+ for allowed_nt in nts:
+ if allowed_nt not in "N-":
+ allowed_nts.update(NT_CODES[allowed_nt])
+ filtered_nts = frozenset(NT_CODES[current_nt]) & allowed_nts
+
+ if not filtered_nts:
+ filtered_nts = "N"
+
+ genotype = encode_genotype(filtered_nts)
+ if genotype != current_nt:
+ sequence[index] = genotype.lower()
+ new_record = FASTA(to_filter.name,
+ to_filter.meta,
+ "".join(sequence))
+
+ return MSA([new_record] + included + excluded)
+
+
+ def split(self, split_by = "123"):
+ """Splits a MSA and returns a dictionary of keys to MSAs,
+ using the keys in the 'split_by' parameter at the top
+ level. See also pypeline.common.sequences.split."""
+ self.validate(self)
+ if not split_by:
+ raise TypeError("No partitions to split by specified")
+
+ results = dict((key, set()) for key in split_by)
+ for record in self:
+ for (key, partition) in split(record.sequence, split_by).iteritems():
+ results[key].add(FASTA(record.name, None, partition))
+
+ for (key, value) in results.items():
+ results[key] = MSA(value)
+
+ return results
+
+ @classmethod
+ def join(cls, *msas):
+ """Merge multiple MSAs into a single MSA, by concatenating sequences in
+ the order of the passed MSAs. Sequences are joined by name, and all MSAs
+ must therefore contain the same set of sequence names. Meta information
+ is not preserved."""
+ cls.validate(*msas)
+
+ merged = defaultdict(list)
+ for msa in msas:
+ for record in msa:
+ merged[record.name].append(record.sequence)
+
+ sequences = []
+ for (name, sequence) in merged.iteritems():
+ sequences.append(FASTA(name, None, "".join(sequence)))
+ return MSA(sequences)
+
+ @classmethod
+ def from_lines(cls, lines):
+ """Parses a MSA from a file/list of lines, and returns a dictionary
+ of names to sequences. If read_meta is True, meta information included
+ after the first space in header of each sequence:
+ >NAME META-INFORMATION
+ SEQUENCE
+ As suggested above, sequences are expected to be in FASTA format."""
+ return MSA(FASTA.from_lines(lines))
+
+ @classmethod
+ def from_file(cls, filename):
+ """Reads a MSA from the specified filename. The file may
+ be uncompressed, gzipped or bzipped. See also 'MSA.from_lines'."""
+ fasta_file = open_ro(filename)
+ try:
+ return MSA.from_lines(fasta_file)
+ except MSAError, error:
+ raise MSAError("%s in file %r" % (error, filename))
+ finally:
+ fasta_file.close()
+
+ def to_file(self, fileobj):
+ for fst in sorted(self):
+ fileobj.write(str(fst))
+
+ @classmethod
+ def validate(cls, *msas):
+ """Validates one or more MSAs, requiring:
+ 1. Identical sets of sequence names across all MSAs.
+ 2. That all names are non-empty strings.
+ 3. That all sequences are of the same length (per MSA).
+ 4. That no empty MSA (no sequences) are specified."""
+ if not msas:
+ raise TypeError("No MSAs given as arguments")
+
+ seqs_all = msas[0].names()
+ seqs_common = set(seqs_all)
+ for msa in msas:
+ if len(set(len(record.sequence) for record in msa)) != 1:
+ raise MSAError("MSA contains sequences of differing lengths")
+
+ seqs_all.update(msa.names())
+ seqs_common &= set(msa.names())
+
+ if seqs_all != seqs_common:
+ raise MSAError("Some sequences not found in all MSAs: '%s'" \
+ % ("', '".join(seqs_all - seqs_common),))
+
+ def __repr__(self):
+ def _fasta_to_str(fst):
+ return "FASTA(%r, %r, %r)" % \
+ (fst.name, fst.meta, fst.sequence)
+ return "MSA(%s)" % (", ".join(map(_fasta_to_str, sorted(self))))
+
+ def names(self):
+ return set(record.name for record in self)
+
+
+ def _group(self, selection, extra = None):
+ selection = safe_coerce_to_frozenset(selection)
+ if (extra in selection):
+ raise MSAError("Key used for multiple selections: %r" % extra)
+ elif not selection:
+ raise ValueError("No FASTA names given")
+
+ missing_keys = selection - self.names()
+ if missing_keys:
+ raise KeyError("Key(s) not found: %r" % (", ".join(map(str, missing_keys))))
+
+ included, excluded, other = [], [], None
+ for record in self:
+ if record.name in selection:
+ included.append(record)
+ elif record.name != extra:
+ excluded.append(record)
+ else:
+ other = record
+
+ return included, excluded, other
diff --git a/pypeline/common/formats/newick.py b/pypeline/common/formats/newick.py
new file mode 100644
index 0000000..d49004c
--- /dev/null
+++ b/pypeline/common/formats/newick.py
@@ -0,0 +1,357 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+# Required due to use of NotImplementedError in setattr:
+# pylint: disable=R0921
+import re
+
+from pypeline.common.utilities import \
+ safe_coerce_to_tuple, \
+ Immutable, \
+ TotallyOrdered
+from pypeline.common.formats._graph import \
+ GraphError, \
+ _Graph
+
+
+class NewickError(GraphError):
+ pass
+
+
+class NewickParseError(NewickError):
+ """Exception raised if errors occur during parsing
+ of Newick strings."""
+ pass
+
+
+class Newick(TotallyOrdered, Immutable):
+ """Immutable object representing a Newick node.
+
+ Nodes are classified as either internal nodes (have children),
+ or leaf nodes (does not have children). A node MUST either have
+ 1 or more child-nodes, or have a name and/or a length. This is to
+ ensure that nodes can be represented in an unambigious manner
+ using the Newick format.
+
+ No assumptions are made about the type of the 'name' and the 'length'
+ properties when simply parsing the tree, and these are simply converted
+ into strings when the Newick string is generated. However, additional
+ contraints apply when unrooting/rerooting trees (see below). """
+
+ def __init__(self, name = None, length = None, children = None):
+ """See class documentation for constraints."""
+
+ name = name or None
+ length = length or None
+ children = tuple(children or ())
+ nw_hash = hash((name, length, children))
+ Immutable.__init__(self,
+ name = name,
+ length = length,
+ children = children,
+ _hash = nw_hash)
+
+ if not (self.children or self.name or self.length):
+ raise NewickError("Leaf nodes MUST have either a name or a length")
+
+ # Ensure that these values are hashable
+ hash(self.name)
+ hash(self.length)
+
+ weight = 0
+ for child in self.children:
+ if not isinstance(child, Newick):
+ raise TypeError("Child nodes must be Newick nodes")
+ weight += 1
+ object.__setattr__(self, "_weight", weight)
+
+
+ @property
+ def is_leaf(self):
+ """Returns true if the node is a leaf (has no children)."""
+ return not self.children
+
+
+ def get_leaf_nodes(self):
+ """Returns iterable for leaf-nodes accessible from this node."""
+ if not self.is_leaf:
+ for child in self.children:
+ for leaf in child.get_leaf_nodes():
+ yield leaf
+ else:
+ yield self
+
+
+ def get_leaf_names(self):
+ for node in self.get_leaf_nodes():
+ yield node.name
+
+
+ def reroot_on_taxa(self, taxa):
+ """Returns the Newick tree from this node, but rooted on the midpoint
+ of the branch leading to one or more taxa. Note that the taxa are not
+ required to form a clade. If the taxa do not form a monophyletic clade,
+ then the outgroup will include more taxa than those passed to the
+ function."""
+ return _NewickGraph(self).reroot_on_taxa(taxa)
+
+
+ def reroot_on_midpoint(self):
+ """Returns the newick tree from this node, but rooted on the midpoint
+ of the tree. That is to say that a root node is added at the exact
+ midpoint of the longest path in the unrooted tree. If this midpoint
+ lies at an existing internal node, then this node is made the root.
+
+ Note that the sorting of nodes is not preserved, and that any
+ uninformative nodes (lacking name/length, while connecting two
+ other nodes, e.g. the old root) are spliced out.
+
+ All nodes must have a length of zero or greater (no missing values
+ are allowed), but note that rerooting behavior around nodes with
+ length zero may yield unexpected results."""
+ if len(list(self.get_leaf_nodes())) < 2:
+ return self # No meaningful way to reroot such trees
+
+ return _NewickGraph(self).reroot_on_midpoint()
+
+
+ def add_support(self, bootstraps, fmt = "{Support}"):
+ """Adds support values to the current tree, based on a set of trees containing
+ the same taxa. It is assumed that the support trees represent unrooted or
+ arbitarily rooted trees, and no weight is given to the rooted topology of these
+ trees.
+
+ The main tree should itself be rooted, and the the toplogy and ordering of this
+ tree is preserved, with node-names updated using the formatting string 'fmt'.
+
+ Formatting is carried out using str.format, with these fields:
+ {Support} -- The total number of trees in which a clade is supported.
+ {Percentage} -- The percentage of trees in which a clade is supported (float).
+ {Fraction} -- The fraction of trees in which a clade is supported (float).
+
+ For example, typical percentage support-values can be realized by setting 'fmt'
+ to the value "{Percentage:.0f}" to produce integer values.
+ """
+ clade_counts = {}
+ leaf_names_lst = list(self.get_leaf_names())
+ leaf_names = frozenset(leaf_names_lst)
+ if len(leaf_names) != len(leaf_names_lst):
+ raise NewickError("Cannot add support values to trees with duplicate leaf names")
+
+ bootstraps = safe_coerce_to_tuple(bootstraps)
+ for support_tree in bootstraps:
+ support_tree_names = frozenset(support_tree.get_leaf_names())
+ if leaf_names != support_tree_names:
+ raise NewickError("Support tree does not contain same set of leaf nodes")
+
+ support_graph = _NewickGraph(support_tree)
+ for clade in support_graph.get_clade_names():
+ clade_counts[clade] = clade_counts.get(clade, 0) + 1
+
+ return self._add_support(self, len(bootstraps), clade_counts, fmt)
+
+
+ @classmethod
+ def from_string(cls, string):
+ """Parses a Newick string and returns a representation of the tree.
+ See e.g. http://en.wikipedia.org/wiki/Newick_format
+
+ Note that implicit nodes, such as (), (A,), and the like are not
+ allowed, as they cannot always be represented/parsed in an unambigious
+ manner. Thus all leaf nodes must have a name and/or a length."""
+ tokens = _tokenize(string)
+ if tokens and tokens[0] == "(":
+ top_node = _parse_tokens(tokens)
+ else:
+ top_node = _parse_child(tokens)
+
+ if tokens != [";"]:
+ raise NewickParseError("Missing terminating semi-colon")
+
+ return top_node
+
+
+ def __lt__(self, other):
+ """See TotallyOrdered"""
+ if not isinstance(other, Newick):
+ return NotImplemented
+
+ # pylint: disable=W0212
+ return (-self._weight, self.name, self.length, self.children) \
+ < (-other._weight, other.name, other.length, other.children)
+
+
+ def __hash__(self):
+ """Hashing function, see 'hash'."""
+ return self._hash
+
+
+ def __repr__(self):
+ """Representation corresponds to the Newick string for the (sub)tree,
+ which can be parsed by 'from_string'."""
+ return "%s;" % (self._to_str(),)
+
+
+ def _to_str(self):
+ fields = []
+ if self.children:
+ fields.append("(")
+ for child in self.children:
+ fields.append(child._to_str()) # pylint: disable=W0212
+ fields.append(",")
+ fields.pop()
+ fields.append(")")
+ if self.name is not None:
+ fields.append(str(self.name))
+ if self.length is not None:
+ fields.append(":")
+ fields.append(str(self.length))
+ return "".join(fields)
+
+
+ def _add_support(self, node, total, clade_counts, fmt):
+ """Recursively annotates a subtree with support values,
+ excepting leaf nodes (where the name is preserved) and
+ the root node (where the name is cleared)."""
+ if node.is_leaf:
+ return node
+
+ clade = frozenset(leaf.name for leaf in node.get_leaf_nodes())
+ support = clade_counts.get(clade, 0)
+ name = fmt.format(Support = support,
+ Percentage = (support * 100.0) / (total or 1),
+ Fraction = (support * 1.0) / (total or 1))
+
+ children = []
+ for child in node.children:
+ children.append(self._add_support(child, total, clade_counts, fmt))
+
+ return Newick(name = (None if (node is self) else name),
+ length = node.length,
+ children = children)
+
+
+
+
+
+################################################################################
+################################################################################
+## Functions related to NEWICK parsing
+
+_TOKENIZER = re.compile("([():,;])")
+_NODE_KEYS = frozenset(("name", "length", "children"))
+
+
+def _tokenize(string):
+ result = []
+ for field in _TOKENIZER.split(string):
+ field = field.strip()
+ if field:
+ result.append(field)
+ return result
+
+
+def _parse_tokens(tokens):
+ assert tokens and tokens[0] == "("
+
+ tokens.pop(0)
+ child, children = None, []
+ while tokens and (tokens[0] not in ");"):
+ if tokens[0] == ",":
+ children.append(child)
+ tokens.pop(0)
+ child = _parse_child(tokens)
+ children.append(child)
+
+ if any(child is None for child in children):
+ raise NewickParseError("Implicit leaf nodes (no name OR length) are not allowed")
+ elif not tokens or (tokens[0] != ")"):
+ raise NewickParseError("Malformed Newick string, contains unbalanced parantheses")
+ tokens.pop(0)
+
+ return _parse_child(tokens, children = children)
+
+
+def _parse_child(tokens, children = None):
+ if tokens and tokens[0] == "(":
+ return _parse_tokens(tokens)
+
+ name, length = None, None
+ while tokens and (tokens[0] not in ",);"):
+ if (tokens[0] == ":"):
+ if length is not None:
+ raise NewickParseError("Node has multiple length values")
+ tokens.pop(0)
+ if tokens[0] in ",);":
+ raise NewickParseError("Missing length value")
+ length = tokens.pop(0).strip()
+ else:
+ name = tokens.pop(0).strip()
+
+ if not (name or length or children):
+ raise NewickParseError("Parsing of implicit nodes not supported")
+
+ return Newick(name = name,
+ length = length,
+ children = children)
+
+
+
+################################################################################
+################################################################################
+## Class related to tree manipulations
+
+class _NewickGraph(_Graph):
+ def __init__(self, node):
+ _Graph.__init__(self)
+ self._collect_names_and_blengths(node)
+ self.prune_uninformative_nodes()
+
+
+ def _collect_names_and_blengths(self, c_node):
+ c_node_id = id(c_node)
+
+ self.set_name(c_node_id, c_node.name)
+ for child in c_node.children:
+ child_id = id(child)
+ self.add_connection(c_node_id, child_id, child.length)
+ self._collect_names_and_blengths(child)
+
+
+ def rebuild_tree(self, parent_id, node_id):
+ """Rebuilds a newick tree starting at a node with id
+ 'node_id' and a parent with id 'parent_id' (or the
+ same value as 'node_id' if a root node)."""
+
+ children = []
+ for child_id in self.connections[node_id]:
+ if child_id != parent_id:
+ children.append(self.rebuild_tree(node_id, child_id))
+ children.sort()
+
+ blength = self.connections.get(parent_id).get(node_id)
+ if isinstance(blength, float):
+ blength = repr(blength)
+
+ return Newick(name = self.names.get(node_id),
+ length = blength,
+ children = children)
diff --git a/pypeline/common/formats/phylip.py b/pypeline/common/formats/phylip.py
new file mode 100644
index 0000000..d1087c8
--- /dev/null
+++ b/pypeline/common/formats/phylip.py
@@ -0,0 +1,90 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+
+from pypeline.common.utilities import grouper
+from pypeline.common.formats.msa import MSA
+
+
+_NUM_BLOCKS = 6
+_BLOCK_SIZE = 10
+_BLOCK_SPACING = 2
+_MAX_NAME_LENGTH = 30
+_NAME_ENDS_AT = 36
+_LINE_SIZE = _NUM_BLOCKS * _BLOCK_SIZE + (_NUM_BLOCKS - 1) * _BLOCK_SPACING
+
+
+def sequential_phy(msa, add_flag = False, max_name_length = _MAX_NAME_LENGTH):
+ MSA.validate(msa)
+ header = "%i %i" % (len(msa), msa.seqlen())
+ if add_flag:
+ header += " S"
+
+ spacing = " " * _BLOCK_SPACING
+ result = [header, ""]
+ for record in sorted(msa):
+ result.append(record.name[:max_name_length])
+
+ blocks = grouper(_BLOCK_SIZE, record.sequence, fillvalue = "")
+ lines = grouper(_NUM_BLOCKS, blocks)
+ for line in lines:
+ result.append(spacing.join("".join(block) for block in line if block))
+
+ return "\n".join(result)
+
+
+
+def interleaved_phy(msa, add_flag = False, max_name_length = _MAX_NAME_LENGTH):
+ MSA.validate(msa)
+ header = "%i %i" % (len(msa), msa.seqlen())
+ if add_flag:
+ header += " I"
+ result = [header, ""]
+
+ padded_len = min(max_name_length, max(len(name) for name in msa.names())) + 2
+ padded_len -= padded_len % -(_BLOCK_SIZE + _BLOCK_SPACING) + _BLOCK_SPACING
+
+ streams = []
+ spacing = " " * _BLOCK_SPACING
+ for record in sorted(msa):
+ name = record.name[:max_name_length]
+ padding = (padded_len - len(name)) * " "
+
+ lines = []
+ line = [name, padding]
+ for block in grouper(_BLOCK_SIZE, record.sequence, fillvalue = ""):
+ block = "".join(block)
+ if sum(len(segment) for segment in line) >= _LINE_SIZE:
+ lines.append("".join(line))
+ line = [block]
+ else:
+ line.extend((spacing, block))
+
+ lines.append("".join(line))
+ streams.append(lines)
+
+ for rows in zip(*streams):
+ result.extend(row for row in rows)
+ result.append("")
+ result.pop()
+
+ return "\n".join(result)
diff --git a/pypeline/common/makefile.py b/pypeline/common/makefile.py
new file mode 100644
index 0000000..3f009d7
--- /dev/null
+++ b/pypeline/common/makefile.py
@@ -0,0 +1,882 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""Generalized methods for parsing/validating "makefiles" in YAML format.
+
+The following example will use a imagined makefile for 'vcf_filter', which
+takes a set of input files, each of which is assigned an output file, and
+each of which may have a set of filters (in addition to a set of defaults):
+
+The following example can also be found in pypeline/examples/pypeline/makefile.
+
+Example makefile in YAML format:
+-------------------------------------------------------------------------------
+| Defaults:
+| --min-mapq-bias: 1e-4
+| --min-end-distance-bias: 1e-4
+|
+| VCF_Files:
+| "path/to/file1.vcf":
+| Output_File: "path/to/output1.vcf"
+| Options:
+| --min-strand-bias: 1e-4
+| --min-baseq-bias: 1e-4
+| "path/to/file2.vcf":
+| Output_File: "path/to/output2.vcf"
+-------------------------------------------------------------------------------
+
+Such a makefile can be parsed into a dictionary using YAML, but to help us
+ensure that the makefile fits the expected layout (as above), we need to
+specify the structure of the makefile.
+
+Firstly, note that the options are specified twice, so we will make a re-usable
+specification for those. In this case, this can accomplished like so:
+-------------------------------------------------------------------------------
+| _SPECIFICATION_OF_OPTIONS = {
+| StringStartsWith("--") : Or(IsInt, IsFloat),
+| }
+-------------------------------------------------------------------------------
+
+or as so:
+-------------------------------------------------------------------------------
+| _SPECIFICATION_OF_OPTIONS = IsDictOf(StringStartsWith("--"),
+| Or(IsInt, IsFloat))
+-------------------------------------------------------------------------------
+
+In either case, we require that the options be a dictionary with string keys
+that start with "--", and that the values are either floats or integers. In
+this case the two methods are equivalent, but normally the first method would
+be preferred for more complex structures, while the second method is required
+if different sub-structures are possible. For example, to require EITHER a
+list of integers, or a dict of strings -> integers would have to be specified
+as so:
+-------------------------------------------------------------------------------
+| Or(IsListOf(IsInt), IsDictOf(IsStr, IsInt))
+-------------------------------------------------------------------------------
+
+Note that specification objects that do not take any parameters (IsInt, etc.)
+do not need to be instantiated. Thus one can use both 'IsInt' or 'IsInt()',
+whereas 'IsListOf', 'IsDictOf', etc. needs to be instantiated. This is purely
+for convinience.
+
+
+Having specified the expected structure of the options, we can specify the
+remaining structure of the makefile:
+-------------------------------------------------------------------------------
+| _MAKEFILE_SPECIFICATION = {
+| Defaults" : _SPECIFICATION_OF_OPTIONS,
+|
+| "VCF_Files" : {
+| Str : {
+| "Output_File" : IsStr,
+| "Options" : _SPECIFICATION_OF_OPTIONS,
+| }
+| }
+| }
+-------------------------------------------------------------------------------
+
+Finally, we can specify default values. Defaults can be specified for almost
+all specification objects (excepting specifications for keys in dictionaries,
+sub-specification for logical operators, and a couple of others). Let's suppose
+that we always want a min/max depth set, even if the user did not include them
+in the defaults:
+-------------------------------------------------------------------------------
+| _SPECIFICATION_OF_OPTIONS = {
+| StringStartsWith("--") : Or(IsInt, IsFloat),
+| "--min-depth" : IsInt(default = 8),
+| "--max-depth" : IsInt(default = 100),
+| }
+-------------------------------------------------------------------------------
+
+These values would then be set, unless they were already set. Note that named
+keys are given precedence above specification objects, when validating
+key/value pairs. In other words, given this specification, the key
+"--min-depth" is ALWAYS valid (even if it would fail StringStartsWith("--"),
+and the value is ONLY checked against IsInt(default = 8).
+
+Bringing all this together, we could then parse the a file containing the YAML
+code shown above as follows:
+-------------------------------------------------------------------------------
+| makefile = read_makefile("/path/to/makefile.yaml",
+| _MAKEFILE_SPECIFICATION)
+-------------------------------------------------------------------------------
+
+which would yield the following dictionary:
+-------------------------------------------------------------------------------
+| {'Makefile': {'Defaults': {'--max-depth': 100,
+| '--min-depth': 8,
+| '--min-end-distance-bias': 0.001,
+| '--min-mapq-bias': 0.001},
+| 'VCF_Files': {'path/to/file1.vcf':
+| {'Options': {'--max-depth': 100,
+| '--min-baseq-bias': 0.005,
+| '--min-depth': 8,
+| '--min-strand-bias': 0.005},
+| 'Output_File': 'path/to/output1.vcf'},
+| 'path/to/file2.vcf':
+| {'Output_File': 'path/to/output1.vcf'}}},
+| 'Statistics': {'Filename': 'makefile.yaml',
+| 'Hash': 'c0138fd4ffcbbc0dff2c82c6e7595ec38b01f532',
+| 'MTime': '2013-08-13 10:22:46.000000 '}}
+-------------------------------------------------------------------------------
+
+Note the actual contents of the makefile is found in the sub-dictionary
+"Makefile", while the sub-dictionary "Statistics" contains various information
+about the file itself.
+
+Unfortunately, the defaults are being applied to BOTH "Options" sub-trees,
+which makes it impossible to tell which values are supposed to be over-ridden
+for the files. To prevent this from happening, we can specify that defaults
+should NOT be applied, by using the WithoutDefaults wrapper object:
+-------------------------------------------------------------------------------
+| _MAKEFILE_SPECIFICATION = {
+| Defaults" : _SPECIFICATION_OF_OPTIONS,
+|
+| "VCF_Files" : {
+| Str : {
+| "Output_File" : IsStr,
+| "Options" : WithoutDefaults(_SPECIFICATION_OF_OPTIONS),
+| }
+| }
+| }
+-------------------------------------------------------------------------------
+
+Which yields the following structure following processing:
+-------------------------------------------------------------------------------
+| {'Makefile': {'Defaults': {'--max-depth': 100,
+| '--min-depth': 8,
+| '--min-end-distance-bias': 0.001,
+| '--min-mapq-bias': 0.001},
+| 'VCF_Files': {'path/to/file1.vcf':
+| {'Options': {'--min-baseq-bias': 0.005,
+| '--min-strand-bias': 0.005},
+| 'Output_File': 'path/to/output1.vcf'},
+| 'path/to/file2.vcf':
+| {'Output_File': 'path/to/output2.vcf'}}},
+| 'Statistics': {'Filename': 'makefile.yaml',
+| 'Hash': 'c0138fd4ffcbbc0dff2c82c6e7595ec38b01f532',
+| 'MTime': '2013-08-13 10:22:46.000000 '}}
+-------------------------------------------------------------------------------
+
+If the file contents does not match the expected structure, a MakefileError is
+raised which describes the problem. For example, suppose that an "Output_File"
+value has accidentically been left blank ('IsStr' requires a NON-EMPTY string):
+-------------------------------------------------------------------------------
+| Makefile requirement not met at ...:
+| Expected value(s): a non-empty string
+| Observed value(s): ''
+-------------------------------------------------------------------------------
+"""
+import os
+import copy
+import types
+import hashlib
+import datetime
+import operator
+
+import pypeline.yaml
+from pypeline.common.utilities import group_by_pred
+
+
+class MakefileError(RuntimeError):
+ """Raised if a makefile is unreadable, or does not meet specifications."""
+
+
+def read_makefile(filename, specification):
+ """Reads and parses a makefile using the given specification.
+
+ Returns a dictionary of the form
+ {
+ "Makefile": <parsed makefile>,
+ "Statistics": {
+ "Filename": <filename>,
+ "Hash": <SHA1 hash of makefile>,
+ "MTime": <Modification time of makefile>,
+ }
+ }
+ """
+ try:
+ with open(filename) as makefile:
+ string = makefile.read()
+ data = pypeline.yaml.safe_load(string)
+ except pypeline.yaml.error.YAMLError, error:
+ raise MakefileError(error)
+
+ mtime = os.path.getmtime(os.path.realpath(filename))
+ mtime_str = datetime.datetime.fromtimestamp(mtime).strftime("%F %T")
+ return {"Makefile": process_makefile(data, specification),
+ "Statistics": {"Filename": filename,
+ "Hash": hashlib.sha1(string).hexdigest(),
+ "MTime": mtime_str}}
+
+
+def process_makefile(data, specification, path=("root",), apply_defaults=True):
+ """Validates a makefile and applies defaults to missing keys.
+
+ Note that that default values are deep-copied before being set.
+ """
+ if isinstance(specification, WithoutDefaults):
+ specification = specification.specification
+ data = process_makefile(data, specification, path,
+ apply_defaults=False)
+ elif _is_spec(specification):
+ _instantiate_spec(specification)(path, data)
+ elif isinstance(data, (dict, types.NoneType)) \
+ and isinstance(specification, dict):
+ # A limitation of YAML is that empty subtrees are equal to None;
+ # this check ensures that empty subtrees to be handled properly
+ if data is None:
+ data = {}
+
+ _process_default_values(data, specification, path, apply_defaults)
+
+ for cur_key in data:
+ ref_key = _get_matching_spec_or_value(cur_key,
+ specification,
+ path + (cur_key,))
+ data[cur_key] = process_makefile(data[cur_key],
+ specification[ref_key],
+ path + (cur_key,),
+ apply_defaults)
+ elif isinstance(data, (list, types.NoneType)) \
+ and isinstance(specification, list):
+ if not all(_is_spec(spec) for spec in specification):
+ raise TypeError("Lists contains non-specification objects (%r): %r"
+ % (_path_to_str(path), specification))
+ elif data is None: # See comment above
+ data = []
+
+ specification = IsListOf(*specification)
+ _instantiate_spec(specification)(path, data)
+ elif not isinstance(specification, (dict, list)):
+ raise TypeError("Unexpected type in makefile specification at %r: %r!"
+ % (_path_to_str(path), specification))
+ else:
+ raise MakefileError("Inconsistency between makefile specification and "
+ "current makefile at %s:\n Expected %s, "
+ "found %s %r!" % (_path_to_str(path),
+ type(specification).__name__,
+ type(data).__name__,
+ data))
+
+ return data
+
+
+###############################################################################
+###############################################################################
+# Unique 'value' used to specify that a MakefileSpec lacks a default value.
+DEFAULT_NOT_SET = object()
+# Unique 'value' used to specify that the user MUST supply a value
+REQUIRED_VALUE = object()
+
+
+class WithoutDefaults(object):
+ """Wrapper object, that tells 'process_makefile' not to apply
+ default values for the wrapped specification. See module docs
+ for example usage.
+ """
+
+ def __init__(self, specification):
+ self.specification = specification
+
+
+class MakefileSpec(object):
+ """Base-class for specifications, from which ALL specification
+ objects are expected to derive. Sub-classes must implement the
+ 'meets_spec' function, which must return True or False depending
+ on whether or not the given value meets the specification.
+ """
+
+ def __init__(self, description, default=DEFAULT_NOT_SET):
+ """description -- A string describing the specification.
+ default -- A default value, or DEFAULT_NOT_SET if not used. If a
+ value is set, it is copied before being applied."""
+
+ self.description = description
+ self.default = default
+ if (default not in (DEFAULT_NOT_SET, REQUIRED_VALUE)) \
+ and not self.meets_spec(default):
+ raise ValueError(("Default value does not meet requirements:\n"
+ " Expected value(s): %s\n"
+ " Observed value(s): %r\n")
+ % (description, default))
+
+ def __call__(self, path, value):
+ if not self.meets_spec(value):
+ raise MakefileError(("Makefile requirement not met at %r:\n"
+ " Expected value(s): %s\n"
+ " Observed value(s): %r\n"
+ " Observed type: %s")
+ % (_path_to_str(path), self.description,
+ value, type(value).__name__))
+
+ def meets_spec(self, _value):
+ """Return True if value meets the specification, False otherwise."""
+ raise NotImplementedError
+
+
+###############################################################################
+###############################################################################
+# Tests for basic types
+
+class IsInt(MakefileSpec):
+ """Require that the value is either an Int or a Long."""
+
+ def __init__(self, description="an integer", default=DEFAULT_NOT_SET):
+ MakefileSpec.__init__(self, description, default)
+
+ def meets_spec(self, value):
+ return isinstance(value, (types.IntType, types.LongType)) \
+ and not isinstance(value, types.BooleanType)
+
+
+class IsUnsignedInt(IsInt):
+ """Require that the value is either an Int or a Long, and >= 0."""
+
+ def __init__(self, description="an unsigned integer",
+ default=DEFAULT_NOT_SET):
+ IsInt.__init__(self, description, default)
+
+ def meets_spec(self, value):
+ return IsInt.meets_spec(self, value) & (value >= 0)
+
+
+class IsFloat(MakefileSpec):
+ """Require that the value is a float (does not cover integer types)."""
+
+ def __init__(self, description="a float", default=DEFAULT_NOT_SET):
+ MakefileSpec.__init__(self, description, default)
+
+ def meets_spec(self, value):
+ return isinstance(value, types.FloatType)
+
+
+class IsBoolean(MakefileSpec):
+ """Require that the value is a boolean (True/False)."""
+
+ def __init__(self, description="a boolean", default=DEFAULT_NOT_SET):
+ MakefileSpec.__init__(self, description, default)
+
+ def meets_spec(self, value):
+ return isinstance(value, types.BooleanType)
+
+
+class IsStr(MakefileSpec):
+ """Require that the value is a non-empty string."""
+
+ def __init__(self, description="a non-empty string",
+ default=DEFAULT_NOT_SET):
+ MakefileSpec.__init__(self, description, default)
+
+ def meets_spec(self, value):
+ return isinstance(value, types.StringTypes) and value
+
+
+class IsNone(MakefileSpec):
+ """Require that the value is None, typically signifying that
+ the value was not set in the makefile."""
+
+ def __init__(self, description="None or not set", default=DEFAULT_NOT_SET):
+ if default is not DEFAULT_NOT_SET:
+ raise NotImplementedError("IsNone does not support default values")
+ MakefileSpec.__init__(self, description, default)
+
+ def meets_spec(self, value):
+ return value is None
+
+
+class ValueMissing(MakefileSpec):
+ """Used to signify empty substructures in the makefile specification."""
+
+ def __init__(self, description="no values"):
+ MakefileSpec.__init__(self, description, DEFAULT_NOT_SET)
+
+ def meets_spec(self, _value):
+ return False
+
+
+###############################################################################
+###############################################################################
+# BinaryOperators
+
+class _BinaryOperator(MakefileSpec):
+ """Base class for binary operations; takes a operation function which is
+ assumed to take parameters (lvalue, rvalue), a rvalue to use when calling
+ the function, and a description in the form 'operator {rvalue}' which is
+ used to generate a human readable description of the specification.
+
+ If list_kword is specified, the rvalue is assumed to be a sequence, and
+ _list_values is used to convert it to human readable form.
+ """
+
+ def __init__(self, description, default, opfunc, rvalue, key=None,
+ list_kword=None):
+ self._operator = opfunc
+ self._keyfunc = key
+ self._rvalue = rvalue
+
+ repr_func = repr
+ if list_kword is not None:
+ repr_func = lambda value: _list_values(value, list_kword)
+ description = description.format(rvalue=repr_func(rvalue))
+ MakefileSpec.__init__(self, description, default)
+
+ def meets_spec(self, value):
+ if self._keyfunc is not None:
+ value = self._keyfunc(value)
+ return self._operator(value, self._rvalue)
+
+
+def _create_binary_operator(operator_func, description, list_kword=None):
+ """Creates and returns a BinaryOperator class based on the given
+ operator_func function, which is assumed to be a function taking two
+ arguments (lvalue, rvalue) and returning a boolean value.
+ """
+
+ class _BinaryOperatorImpl(_BinaryOperator):
+ """Implements a binary operator specfication."""
+
+ def __init__(self, rvalue, key=None, description=description,
+ default=DEFAULT_NOT_SET):
+ _BinaryOperator.__init__(self, description, default, operator_func,
+ rvalue, key, list_kword)
+ return _BinaryOperatorImpl
+
+
+def _create_set_operator(operator_func, description):
+ """Creates and returns a BinaryOperator designed to operate on sets of
+ values. Thus, values in the makefile are expected to be either lists or
+ strings (for case sensitive operations).
+ """
+
+ def _operator(lvalue, rvalue):
+ """Operator function for set based operations."""
+ if not isinstance(lvalue, (types.ListType,) + types.StringTypes):
+ return False
+
+ return bool(operator_func(frozenset(lvalue), rvalue))
+
+ description = "%s {rvalue}" % (description,)
+ return _create_binary_operator(_operator, description, "or")
+
+
+ValueLT = _create_binary_operator(operator.lt, "value < {rvalue}")
+ValueLE = _create_binary_operator(operator.le, "value <= {rvalue}")
+ValueEQ = _create_binary_operator(operator.eq, "value = {rvalue}")
+ValueGE = _create_binary_operator(operator.ge, "value >= {rvalue}")
+ValueGT = _create_binary_operator(operator.gt, "value > {rvalue}")
+ValueIn = _create_binary_operator(lambda lvalue, rvalue: lvalue in rvalue,
+ "value in {rvalue}", "or")
+ValuesIntersect = _create_set_operator(frozenset.intersection, "contains")
+ValuesSubsetOf = _create_set_operator(frozenset.issubset, "subset of")
+
+
+###############################################################################
+###############################################################################
+# Logical operators
+
+class _MultipleSpecs(MakefileSpec): # pylint: disable=W0223
+ """Base-class for logical operators for one or more specifications."""
+
+ def __init__(self, specs, kwargs, name, prefix="", postfix="",
+ join_by=" ", fmt="%s"):
+ self._specs = [_instantiate_spec(spec) for spec in specs]
+ if not self._specs:
+ raise ValueError("No specification given to %r" % (name.title(),))
+ elif not all((spc.default is DEFAULT_NOT_SET) for spc in self._specs):
+ raise ValueError("Default values cannot be set in specs given to "
+ "logical operators")
+
+ description = [(fmt % (spec.description,)) for spec in self._specs]
+ description = "%s%s%s" % (prefix, join_by.join(description), postfix)
+ default_value = kwargs.get("default", DEFAULT_NOT_SET)
+ MakefileSpec.__init__(self, description, default_value)
+
+
+class And(_MultipleSpecs):
+ """Takes one or more specification objects, and requires that values meets
+ all of these specifications. A default value may be set for the 'And'
+ specification, but not for the specifications given to the 'And' object.
+ """
+
+ def __init__(self, *specs, **kwargs):
+ _MultipleSpecs.__init__(self, specs, kwargs, "And",
+ join_by=" and ", fmt="(%s)")
+
+ def meets_spec(self, value):
+ return all(spec.meets_spec(value) for spec in self._specs)
+
+
+class Or(_MultipleSpecs):
+ """Takes one or more specification objects, and requires that values meets
+ at least one these specifications. A default value may be set for the 'Or'
+ specification, but not for the specifications given to the 'Or' object.
+ """
+
+ def __init__(self, *specs, **kwargs):
+ _MultipleSpecs.__init__(self, specs, kwargs, "Or",
+ join_by=" or ", fmt="(%s)")
+
+ def meets_spec(self, value):
+ return any(spec.meets_spec(value) for spec in self._specs)
+
+
+class Xor(_MultipleSpecs):
+ """Takes two specification objects, and requires that values meets ONE and
+ ONLY ONE of these specifications. A default value may be set for the 'Xor'
+ specification, but not for the specifications given to the 'Xor' object.
+ """
+
+ def __init__(self, *specs, **kwargs):
+ if len(specs) != 2:
+ raise ValueError("'Xor' takes exactly 2 specifications, not %i"
+ % (len(specs),))
+
+ _MultipleSpecs.__init__(self, specs, kwargs, "Xor",
+ join_by=" xor ", fmt="(%s)")
+
+ def meets_spec(self, value):
+ return operator.xor(*(spec.meets_spec(value) for spec in self._specs))
+
+
+class Not(_MultipleSpecs):
+ """Takes a single specification object, and requires that values do NOT
+ meet this specification. A default value may be set for the 'Not'
+ specification, but not for the specifications given to the 'Not' object.
+ """
+
+ def __init__(self, spec, **kwargs):
+ _MultipleSpecs.__init__(self, [spec], kwargs, "Not",
+ prefix="not ", fmt="(%s)")
+
+ def meets_spec(self, value):
+ return not self._specs[0].meets_spec(value)
+
+
+###############################################################################
+###############################################################################
+# String operators
+#
+# In addition to providing string-specific operators (is uppercase, ends/starts
+# with), "in" and set operators are provided which do case-insensitive
+# comparsions. For case-sensitive operations, use the Value* specifications.
+
+
+class StringIn(_BinaryOperator):
+ """Require that values are found in a set of values. For strings, the
+ comparison is done in a case-insensitive. For case-sensitive comparisons,
+ see 'ValueIn'.
+ """
+
+ def __init__(self, rvalues, key=None,
+ description="one of {rvalue}, case-insentive",
+ default=DEFAULT_NOT_SET):
+ description = description.format(rvalue=_list_values(rvalues, "or"))
+ rvalues = frozenset(map(_safe_coerce_to_lowercase, rvalues))
+
+ _BinaryOperator.__init__(self, description, default,
+ self._string_in_operator, rvalues)
+
+ @classmethod
+ def _string_in_operator(cls, lvalue, rvalues):
+ """Implements case-insensitive 'in' operator."""
+ return _safe_coerce_to_lowercase(lvalue) in rvalues
+
+
+class _StrSetOperator(_BinaryOperator):
+ """Base class for set operations involving case-insensitive strings."""
+
+ def __init__(self, description, default, opfunc, rvalues, key=None):
+ rvalues = frozenset(map(_safe_coerce_to_lowercase, rvalues))
+ _BinaryOperator.__init__(self, description, default, opfunc, rvalues,
+ key)
+
+ def meets_spec(self, value):
+ if not isinstance(value, (types.ListType,) + types.StringTypes):
+ return False
+
+ lvalues = frozenset(map(_safe_coerce_to_lowercase, value))
+ return _BinaryOperator.meets_spec(self, lvalues)
+
+
+class StringsIntersect(_StrSetOperator):
+ """Require that a set of values overlap with a pre-defined set of values
+ (as set in the constructor). For strings, values are compared in a case-
+ insensitive manner. For case-sensitive comparisons, see 'ValuesIntersect'.
+ """
+
+ def __init__(self, rvalue, key=None,
+ description="contains {rvalue}, case-insentive",
+ default=DEFAULT_NOT_SET):
+ description = description.format(rvalue=_list_values(rvalue, "and/or"))
+
+ _StrSetOperator.__init__(self, description, default,
+ self._string_intersection_operator,
+ frozenset(rvalue), key)
+
+ @classmethod
+ def _string_intersection_operator(cls, lvalue, rvalues):
+ """Implements case-insensitive 'intersect' operator."""
+ return bool(frozenset(lvalue).intersection(rvalues))
+
+
+class StringsSubsetOf(_StrSetOperator):
+ """Require that a set of values are a subset of a pre-defined set of values
+ (as set in the constructor). For strings, values are compared in a case-
+ insensitive manner. For case-sensitive comparisons, see 'ValuesSubsetOf'.
+
+ Note that empty sets are always considered to be a subset of the
+ pre-defined set.
+ """
+
+ def __init__(self, rvalue, key=None,
+ description="subset of {rvalue}, case-insentive",
+ default=DEFAULT_NOT_SET):
+ description = description.format(rvalue=_list_values(rvalue, "and"))
+
+ _StrSetOperator.__init__(self, description, default,
+ self._operator_func, frozenset(rvalue), key)
+
+ @classmethod
+ def _operator_func(cls, lvalue, rvalue):
+ """Operator implementation."""
+ return bool(frozenset(lvalue).issubset(rvalue))
+
+
+class StringIsUppercase(IsStr):
+ """Require that the value is a uppercase, non-empty string."""
+
+ def __init__(self, default=DEFAULT_NOT_SET):
+ IsStr.__init__(self, "an uppercase non-empty string", default)
+
+ def meets_spec(self, value):
+ return IsStr().meets_spec(value) and value.isupper()
+
+
+class StringStartsWith(IsStr):
+ """Require that the value is a string with given prefix."""
+
+ def __init__(self, prefix, default=DEFAULT_NOT_SET):
+ assert prefix and isinstance(prefix, types.StringTypes)
+ self._prefix = prefix
+ description = "a string with the prefix %r" % (prefix,)
+ IsStr.__init__(self, description, default)
+
+ def meets_spec(self, value):
+ return IsStr.meets_spec(self, value) \
+ and value.startswith(self._prefix)
+
+
+class StringEndsWith(IsStr):
+ """Require that the value is a string with given postfix."""
+
+ def __init__(self, postfix, default=DEFAULT_NOT_SET):
+ assert postfix and isinstance(postfix, types.StringTypes)
+ self._postfix = postfix
+ description = "a string with the postfix %r" % (postfix,)
+ IsStr.__init__(self, description, default)
+
+ def meets_spec(self, value):
+ return IsStr.meets_spec(self, value) and value.endswith(self._postfix)
+
+
+###############################################################################
+###############################################################################
+# Tests for collections
+
+class IsListOf(_MultipleSpecs):
+ """Require that the value is a list, the contents of which matches one or
+ more of the provided specifications; if no default value (ie. a non-empty
+ list) is required, then using the following syntax is preferred:
+ [IsType1, IsType2, ...]
+ This is equivalent to the following:
+ IsListOf(IsType1, IsType2, ...)
+ """
+
+ def __init__(self, *specs, **kwargs):
+ _MultipleSpecs.__init__(self, specs, kwargs, "IsListOf",
+ prefix="[", postfix=", ...]",
+ join_by=" or ", fmt="(%s)")
+
+ def meets_spec(self, value):
+ if not isinstance(value, types.ListType):
+ return False
+
+ return all(any(spec.meets_spec(lstvalue) for spec in self._specs)
+ for lstvalue in value)
+
+
+class IsDictOf(MakefileSpec):
+ """Require that the value is a list, the keys/values of which matches
+ the specifications provided for keys/values; if no default value (ie. a
+ dictioanry) is required, then using the following syntax is preferred:
+ {IsType1: IsType2}
+
+ This is equivalent to the following:
+ IsDictOf(IsType1, IsType2)
+ but also allows multiple type-pairs to be specified.
+ """
+
+ def __init__(self, key_spec, value_spec, default=DEFAULT_NOT_SET):
+ self._key_spec = _instantiate_spec(key_spec)
+ self._value_spec = _instantiate_spec(value_spec)
+ if self._key_spec.default is not DEFAULT_NOT_SET:
+ raise ValueError("Default values cannot be set in key-specs")
+ elif self._value_spec.default is not DEFAULT_NOT_SET:
+ raise ValueError("Default values cannot be set in value-specs")
+
+ description = "{(%s) : (%s)}" \
+ % (self._key_spec.description, self._value_spec.description)
+ MakefileSpec.__init__(self, description, default)
+
+ def meets_spec(self, value):
+ if not isinstance(value, types.DictType):
+ return False
+
+ for (key, value) in value.iteritems():
+ if not (self._key_spec.meets_spec(key)
+ and self._value_spec.meets_spec(value)):
+ return False
+
+ return True
+
+
+###############################################################################
+###############################################################################
+# Helper functions
+
+def _is_spec(spec):
+ """Returns true if 'spec' is a specification instance or class."""
+ if isinstance(spec, MakefileSpec):
+ return True
+ elif isinstance(spec, types.TypeType) and issubclass(spec, MakefileSpec):
+ return True
+ return False
+
+
+def _instantiate_spec(spec):
+ """Takes a specification instance or class, and returns an instance."""
+ if isinstance(spec, MakefileSpec):
+ return spec
+ elif isinstance(spec, types.TypeType) and issubclass(spec, MakefileSpec):
+ return spec()
+ else:
+ raise TypeError("Specifications must derive from 'MakefileSpec'")
+
+
+def _safe_coerce_to_lowercase(value):
+ """Returns strings as lowercase, and any other types of value unchanged."""
+ if isinstance(value, types.StringTypes):
+ return value.lower()
+ return value
+
+
+def _list_values(values, sep):
+ """Returns list of values as '[values[0], values[1], ..., sep values[-1]]':
+
+ $ _list_values([1, 2, 3], "and")
+ "[1, 2, and 3]"
+ """
+ values = map(repr, values)
+ if len(values) > 2:
+ values = (", ".join(values[:-1]) + ",", values[-1])
+ if len(values) == 2:
+ values = (" ".join((values[0], sep, values[1])),)
+
+ return values[0]
+
+
+def _get_summary_spec(specs_or_keys):
+ """Returns a specification object that may be used to describe a set of
+ requirements. This is used if a key or value does not match the possible
+ specs, thereby describing the set of allowed values.
+ """
+ specs, keys = group_by_pred(_is_spec, specs_or_keys)
+ if specs and keys:
+ return Or(ValueIn(keys, description="key in {rvalue}"), *specs)
+ elif specs:
+ return Or(*specs)
+ elif keys:
+ return ValueIn(keys, description="key in {rvalue}")
+ return ValueMissing()
+
+
+def _get_matching_spec_or_value(value, specs, path):
+ """Returns the specification object or value that matches the observed
+ value; specs may be a list of specification objects and/or constant values
+ allowed by the makefile. If no matching specification or value is found,
+ an MakefileError is raised.
+ """
+ if value in specs:
+ return value
+
+ for spec in specs:
+ if _is_spec(spec) and _instantiate_spec(spec).meets_spec(value):
+ return spec
+
+ # No matching key or spec; create combined spec to raise error message
+ _get_summary_spec(specs)(path, value)
+ assert False # pragma: no coverage
+
+
+def _process_default_values(data, specification, path, apply_defaults):
+ """Checks a subtree against a specification, verifies that required values
+ have been set, and (optionally) sets values for keys where defaults have
+ been specified.
+ """
+
+ for cur_key in specification:
+ if (not _is_spec(cur_key)) and (cur_key not in data):
+ default_value = specification[cur_key]
+ default_value_from_spec = False
+ if _is_spec(default_value):
+ default_value = _instantiate_spec(default_value)
+ if default_value.default is DEFAULT_NOT_SET:
+ continue
+ elif default_value.default is REQUIRED_VALUE:
+ raise MakefileError("A value MUST be supplified for %r"
+ % (_path_to_str(path + (cur_key,))))
+ default_value = default_value.default
+ default_value_from_spec = True
+
+ if apply_defaults \
+ and not isinstance(default_value, WithoutDefaults):
+ if isinstance(default_value, dict):
+ # Setting of values in the dict will be accomplished
+ # in subsequent calls to _process_default_values
+ default_value = {}
+ elif isinstance(default_value, list):
+ # Lists of specs defaults to empty lists
+ if not default_value_from_spec:
+ default_value = []
+
+ # Prevent clobbering of values when re-using sub-specs
+ data[cur_key] = copy.deepcopy(default_value)
+
+
+def _path_to_str(path):
+ """Converts a path (tuple of strings) to a printable string."""
+ return ":".join(str(field) for field in path)
+
+
+CLI_PARAMETERS = Or(IsListOf(IsStr, IsInt, IsFloat),
+ Or(IsStr, IsInt, IsFloat, IsNone))
diff --git a/pypeline/common/procs.py b/pypeline/common/procs.py
new file mode 100644
index 0000000..156b9fe
--- /dev/null
+++ b/pypeline/common/procs.py
@@ -0,0 +1,85 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""
+Tools used for running raw (not Atomic) processes.
+"""
+
+import sys
+import time
+import subprocess
+
+
+PIPE = subprocess.PIPE
+
+
+def open_proc(call, *args, **kwargs):
+ """Equivalent to subprocess.Popen, but records the system call as a tuple
+ assigned to the .call property of the Popen object.
+ """
+ proc = subprocess.Popen(call, *args, **kwargs)
+ proc.call = tuple(call)
+ return proc
+
+
+def join_procs(procs, out=sys.stderr):
+ """Joins a set of Popen processes. If a processes fail, the remaining
+ processes are terminated. The function returns a list of return-code,
+ containing the result of each call. Status messages are written to STDERR
+ by default.
+ """
+ sleep_time = 0.05
+ commands = list(enumerate(procs))
+ assert all(hasattr(cmd, "call") for (_, cmd) in commands)
+
+ return_codes = [None] * len(commands)
+ out.write("Joinining subprocesses:\n")
+ while commands:
+ for (index, command) in list(commands):
+ if command.poll() is not None:
+ return_codes[index] = command.wait()
+ commands.remove((index, command))
+ sleep_time = 0.05
+
+ out.write(" - Command finished: %s\n"
+ " - Return-code: %s\n"
+ % (" ".join(command.call),
+ return_codes[index]))
+ out.flush()
+ elif any(return_codes):
+ out.write(" - Terminating command: %s\n"
+ % (" ".join(command.call),))
+ out.flush()
+
+ command.terminate()
+ return_codes[index] = command.wait()
+ commands.remove((index, command))
+ sleep_time = 0.05
+
+ time.sleep(sleep_time)
+ sleep_time = min(1, sleep_time * 2)
+
+ if any(return_codes):
+ out.write("Errors occured during processing!\n")
+ out.flush()
+
+ return return_codes
diff --git a/pypeline/common/sampling.py b/pypeline/common/sampling.py
new file mode 100644
index 0000000..fb0435d
--- /dev/null
+++ b/pypeline/common/sampling.py
@@ -0,0 +1,67 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import types
+import bisect
+import random
+
+
+def weighted_sampling(choices, weights, rng=random):
+ choices = list(choices)
+ weights = list(weights)
+ if not weights or (len(weights) != len(choices)):
+ raise ValueError("Choices and probabilities must be non-empty lists "
+ "of identical length, not lengths %i and %i"
+ % (len(choices), len(weights)))
+
+ total = 0
+ totals = []
+ for (index, weight) in enumerate(weights, start=1):
+ if weight <= 0:
+ raise ValueError("Probablities must be > 0, not %r for weight %i"
+ % (weight, index))
+ total += weight
+ totals.append(total)
+
+ while True:
+ rand = rng.random() * total
+ index = bisect.bisect_right(totals, rand)
+ yield choices[index]
+
+
+def reservoir_sampling(items, downsample_to, rng=random):
+ if not isinstance(downsample_to, (types.IntType, types.LongType)):
+ raise TypeError("Unexpected type for 'downsample_to': %r"
+ % (type(downsample_to),))
+ elif downsample_to < 0:
+ raise ValueError("Negative value for 'downsample_to': %i"
+ % (downsample_to,))
+
+ reservoir = []
+ for (index, item) in enumerate(items):
+ if index >= downsample_to:
+ index = rng.randint(0, index)
+ if index < downsample_to:
+ reservoir[index] = item
+ else:
+ reservoir.append(item)
+ return reservoir
diff --git a/pypeline/common/sequences.py b/pypeline/common/sequences.py
new file mode 100644
index 0000000..989a7cb
--- /dev/null
+++ b/pypeline/common/sequences.py
@@ -0,0 +1,205 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""Various functions relating to DNA sequence manipulation."""
+
+import itertools
+
+
+# Pairs of complementary bases and ambigious basees
+_COMPL = [ "AT", "CG",
+ "NN", "RY",
+ "KM", "SS",
+ "WW", "BV",
+ "DH", "XX" ]
+_COMPL_TABLE = ["N"] * 256
+for (_a, _b) in _COMPL :
+ # Complement both upper/lower-case bases
+ for _func in (str.upper, str.lower):
+ _COMPL_TABLE[ord(_func(_a))] = _func(_b)
+ _COMPL_TABLE[ord(_func(_b))] = _func(_a)
+_COMPL_TABLE = "".join(_COMPL_TABLE)
+
+
+
+# Table of nt codes (IUPAC codes) used to encode (ambigious) bases:
+# Nomenclature for incompletely specified bases in nucleic acid sequences.
+# Recommendations 1984. J Biol Chem. 1986 Jan 5;261(1):13-7.
+# PubMed PMID: 2416744.
+NT_CODES = [
+ ["A", "A"],
+ ["C", "C"],
+ ["G", "G"],
+ ["T", "T"],
+ ["N", "N"],
+ ["R", "AG"],
+ ["Y", "CT"],
+ ["K", "GT"],
+ ["M", "AC"],
+ ["S", "CG"],
+ ["W", "AT"],
+ ["B", "CGT"],
+ ["D", "AGT"],
+ ["H", "ACT"],
+ ["V", "ACG"],
+ ["N", "ACGT"]]
+
+_NT_CODES_TABLE = {}
+for (_abr, _nts) in NT_CODES:
+ _NT_CODES_TABLE[frozenset(_nts)] = _abr
+ _NT_CODES_TABLE[frozenset(_nts + ",")] = _abr
+
+NT_CODES = dict(NT_CODES)
+
+
+CODONS = {
+ "+": {
+ "TTT": "Phe", "TCT": "Ser", "TAT": "Tyr", "TGT": "Cys",
+ "TTC": "Phe", "TCC": "Ser", "TAC": "Tyr", "TGC": "Cys",
+ "TTA": "Leu", "TCA": "Ser", "TAA": "Stop", "TGA": "Stop",
+ "TTG": "Leu", "TCG": "Ser", "TAG": "Stop", "TGG": "Trp",
+
+ "CTT": "Leu", "CCT": "Pro", "CAT": "His", "CGT": "Arg",
+ "CTC": "Leu", "CCC": "Pro", "CAC": "His", "CGC": "Arg",
+ "CTA": "Leu", "CCA": "Pro", "CAA": "Gln", "CGA": "Arg",
+ "CTG": "Leu", "CCG": "Pro", "CAG": "Gln", "CGG": "Arg",
+
+ "ATT": "Ile", "ACT": "Thr", "AAT": "Asn", "AGT": "Ser",
+ "ATC": "Ile", "ACC": "Thr", "AAC": "Asn", "AGC": "Ser",
+ "ATA": "Ile", "ACA": "Thr", "AAA": "Lys", "AGA": "Arg",
+ "ATG": "Met", "ACG": "Thr", "AAG": "Lys", "AGG": "Arg",
+
+ "GTT": "Val", "GCT": "Ala", "GAT": "Asp", "GGT": "Gly",
+ "GTC": "Val", "GCC": "Ala", "GAC": "Asp", "GGC": "Gly",
+ "GTA": "Val", "GCA": "Ala", "GAA": "Glu", "GGA": "Gly",
+ "GTG": "Val", "GCG": "Ala", "GAG": "Glu", "GGG": "Gly"},
+ "-": {}}
+
+
+def complement(sequence):
+ """Returns the complement of a DNA sequence (string)."""
+ return sequence.translate(_COMPL_TABLE)
+
+
+def reverse_complement(sequence):
+ """Returns the reverse complement of a DNA sequence."""
+ return complement(sequence)[::-1]
+
+
+for _codon, _aa in CODONS["+"].iteritems():
+ assert not set(_codon) - set("ACGT")
+ CODONS["-"][reverse_complement(_codon)] = _aa
+
+assert len(CODONS["+"]) == 64
+assert len(CODONS["-"]) == 64
+
+
+def encode_genotype(nucleotides):
+ """Parses a string representing a set of nucleotides observed at a loci,
+ and returns the corresponding IUPAC code. Commas are allowed, but are
+ simply ignored if found in the string. Does not handle lower-case
+ nucleotides, due to lack of clear criteria for mixed case input.
+ See e.g. http://www.ebi.ac.uk/2can/tutorials/aa.html"""
+ try:
+ return _NT_CODES_TABLE[frozenset(nucleotides)]
+ except KeyError:
+ raise ValueError("Invalid input for 'encode_genotype': %s" % (repr(nucleotides), ))
+
+
+
+def count_nts(sequence):
+ """Given a nucleotide sequence (str), this function returns
+ the number of each type of nucleotide representable using
+ IUPAC codes. The sequence must not contain non-IUPAC
+ nucleotides, or other annotation. IUPAC nucleotides are
+ handled in a case-insensitive manner."""
+ counts = {}
+ sequence = sequence.upper()
+ for nucleotide in NT_CODES:
+ count = sequence.count(nucleotide)
+ if count:
+ counts[nucleotide] = count
+
+ if len(sequence) != sum(counts.itervalues()):
+ raise ValueError("Sequence contains non-(IUPAC-)nucleotides: %s" % \
+ ", ".join(set(sequence) - set(counts)))
+
+ return counts
+
+
+def count_gc_diploid(sequence):
+ """Given a sequence, this function returns a tuple containing the
+ the total number of bases that were G/C, as well as the total number
+ of bases. The sequence is assumed to represent a diploid genome, with
+ the total number of bases being twice the sequence length, and
+ hence IUPAC codes representing one of or both of G/C are treated as
+ reflecting both strands. Thus R counts for 1, while S counts for 2.
+
+ The sequence must only contain valid IUPAC codes, and no other
+ form of annotation. Both uppercase/lowercase G/Cs are counted.
+ Ambigious site (n/N) are not counted, neither in the number of G/C,
+ nor in the total number of bases."""
+ total_nts = total_gc = 0
+ counts = count_nts(sequence)
+ for (code, count) in counts.iteritems():
+ value = 0
+ if code == "N":
+ continue
+ elif code in "CGcg":
+ value = 2
+ else:
+ code_represents = NT_CODES[code]
+ if (len(code_represents) > 2) and (code != 'N'):
+ raise ValueError("calculate_gcp assumes diploid genome, nt code for tri-valued SNP observed: " + code)
+
+ if 'G' in code_represents:
+ value += 1
+ if 'C' in code_represents:
+ value += 1
+
+ total_nts += count * 2
+ total_gc += count * value
+
+ return (total_gc, total_nts)
+
+
+def split(sequence, split_by = "123"):
+ """Splits a sequence by position, as specified by the 'split_by' parameter. By
+ default, the function will split by codon position, and return a dictionary
+ containing the keys '1', '2' and '3'.
+
+ The 'split_by' parameter may contain any non-zero number of values, which must
+ however be hashable. If a value is specified multiple times, then those positions
+ are interleaved (e.g. split_by = "112" returns the first two positions in a codon
+ as one sequence, as well as the last positions as one sequence."""
+ if not split_by:
+ raise TypeError("No partitions to split by specified")
+
+ results = dict((key, []) for key in split_by)
+ keys = itertools.chain(itertools.cycle(split_by))
+ for (key, nucleotide) in itertools.izip(keys, sequence):
+ results[key].append(nucleotide)
+
+ for key in results:
+ results[key] = "".join(results[key])
+
+ return results
diff --git a/pypeline/common/signals.py b/pypeline/common/signals.py
new file mode 100644
index 0000000..9d0ddee
--- /dev/null
+++ b/pypeline/common/signals.py
@@ -0,0 +1,54 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import signal
+import types
+
+def from_str(value):
+ if not isinstance(value, types.StringTypes):
+ raise TypeError("'from_str' takes strings, not %r" % (value.__class__.__name__,))
+ return FROM_STRING[value]
+
+def to_str(value):
+ if not isinstance(value, (types.IntType, types.LongType)):
+ raise TypeError("'from_str' takes strings, not %r" % (value.__class__.__name__,))
+ return FROM_SIGNAL[value]
+
+
+
+
+def _get_signals():
+ signals = {}
+ for key in dir(signal):
+ if key.startswith("SIG") and not key.startswith("SIG_"):
+ signals[getattr(signal, key)] = key
+
+ # The following signals may have synonyms, so specify which to use.
+ # For example, SIGIOT is a synonym of SIGABTR on OSX.
+ for key in ("SIGABRT", "SIGCHLD", "SIGIO"):
+ value = getattr(signal, key)
+ signals[value] = key
+
+ return signals
+
+FROM_SIGNAL = _get_signals()
+FROM_STRING = dict(zip(FROM_SIGNAL.values(), FROM_SIGNAL.keys()))
diff --git a/pypeline/common/system.py b/pypeline/common/system.py
new file mode 100644
index 0000000..190f252
--- /dev/null
+++ b/pypeline/common/system.py
@@ -0,0 +1,36 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2013 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import sys
+import ctypes
+
+def set_procname(name = os.path.basename(sys.argv[0])):
+ """Attempts to set the current process-name to the
+ given name. Fails silently if this is not possible.
+
+ Currently only works for Linux systems."""
+ try:
+ libc = ctypes.cdll.LoadLibrary('libc.so.6')
+ libc.prctl(15, name, 0, 0, 0)
+ except StandardError:
+ pass
diff --git a/pypeline/common/testing.py b/pypeline/common/testing.py
new file mode 100644
index 0000000..87f1988
--- /dev/null
+++ b/pypeline/common/testing.py
@@ -0,0 +1,113 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import sys
+import shutil
+import tempfile
+
+import nose
+from nose.tools import assert_equal
+
+from pypeline.common.fileutils import \
+ make_dirs
+
+
+
+def assert_list_equal(iter_a, iter_b):
+ """Compare two values, after first converting them to lists.
+ This ensures that lazily generated results can be compared."""
+ list_a = list(iter_a)
+ list_b = list(iter_b)
+
+ assert_equal(list_a, list_b)
+
+
+def with_temp_folder(func):
+ """Decorator for unit-tests:
+ Creates a unique temporary folder before running 'func'. The
+ function is is assumed to take at least one parameter, the first
+ of which is assumed to represent the temporary folder."""
+ temp_root = os.path.join(tempfile.gettempdir(), os.getlogin())
+ make_dirs(temp_root) # Ensure that this subdirectory exists
+
+ @nose.tools.istest
+ def _wrapper(*args, **kwargs):
+ try:
+ temp_folder = None
+ temp_folder = tempfile.mkdtemp(dir = temp_root,
+ prefix = "pypeline_unit")
+ func(temp_folder, *args, **kwargs)
+ finally:
+ if temp_folder:
+ shutil.rmtree(temp_folder)
+ _wrapper.__name__ = func.__name__ + "__wrapped_by_with_temp_folder"
+ return _wrapper
+
+
+class Monkeypatch:
+ """Replaces a function/object in a module with the specified wrapper
+ upon entry, reverting the change upon exit from the with statement.
+ A full path to the given function is required, for example
+ 'os.path.join'."""
+ def __init__(self, path, wrapper):
+ self.wrapper = wrapper
+
+ parts = path.split(".")
+ assert len(parts) > 1
+ self.module, self.object = None, sys.modules[parts[0]]
+ for path_cmp in parts[1:]:
+ self.module, self.object = self.object, getattr(self.object, path_cmp)
+ self.name = parts[-1]
+
+ def __enter__(self):
+ setattr(self.module, self.name, self.wrapper)
+ return self
+
+ def __exit__(self, _type, _value, _traceback):
+ setattr(self.module, self.name, self.object)
+
+
+class SetWorkingDirectory:
+ """Sets the current working directory upon entry to that specified,
+ in the constructor upon entry, and reverts to the previously used
+ directory upon exiting a with statement."""
+ def __init__(self, path):
+ self._old_cwd = None
+ self._new_cwd = path
+
+ def __enter__(self):
+ self._old_cwd = os.getcwd()
+ os.chdir(self._new_cwd)
+
+ def __exit__(self, _type, _value, _traceback):
+ os.chdir(self._old_cwd)
+
+
+def set_file_contents(fname, contents):
+ with open(fname, "w") as handle:
+ handle.write(contents)
+
+
+def get_file_contents(fname):
+ with open(fname) as handle:
+ return handle.read()
diff --git a/pypeline/common/text.py b/pypeline/common/text.py
new file mode 100644
index 0000000..1820d04
--- /dev/null
+++ b/pypeline/common/text.py
@@ -0,0 +1,120 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import re
+import types
+import collections
+
+
+class TableError(RuntimeError):
+ pass
+
+
+_MIN_PADDING = 4
+_WHITESPACE_OR_EMPTY = re.compile(r"\s|^$")
+
+
+def padded_table(table):
+ """Takes a sequence of iterables, each of which represents a row in a
+ table. Values are converted to string, and padded with whitespace such that
+ each column is separated from its adjacent columns by at least 4 spaces.
+ Empty cells or whitespace in values are not allowed.
+
+ If a string is included instead of a row, this value is added as is. Note
+ that these lines should be whitespace only, or start with a '#' if the
+ resulting table is to be readable with 'parse_padded_table'.
+ """
+ str_rows = []
+ nsizes, sizes = None, []
+ for row in table:
+ if not isinstance(row, types.StringTypes):
+ row = map(str, row)
+ if (len(row) != nsizes):
+ if nsizes is not None:
+ raise TableError("Malformed table; rows with different "
+ "number of columns: %r" % row)
+ nsizes = len(row)
+ sizes = [0] * nsizes
+ sizes = map(max, zip(sizes, map(len, row)))
+ str_rows.append(row)
+
+ sizes = [(size + _MIN_PADDING) for size in sizes]
+ for row in str_rows:
+ if not isinstance(row, types.StringTypes):
+ row = "".join(field.ljust(padding)
+ for (field, padding) in zip(row, sizes)).rstrip()
+ yield row
+
+
+def parse_padded_table(lines, header=None):
+ """Parses a padded table generated using 'padded_table', or any table which
+ consists of a fixed number of columns seperated by whitespace, with no
+ whitespace in the cells. Empty lines and lines starting with '#' (comments)
+ are ignored. Each row is returned as a dictionary, using the values found
+ in the first row as keys.
+ """
+ for line in lines:
+ stripped = line.strip()
+ if not stripped or stripped.startswith("#"):
+ continue
+ elif header is None:
+ header = stripped.split()
+ nheader = len(header)
+ continue
+
+ fields = stripped.split()
+ if len(fields) != nheader:
+ raise TableError("Malformed table; #columns does not match header:"
+ " %r vs %r" % (header, fields))
+
+ yield dict(zip(header, fields))
+
+
+def parse_lines(lines, parser):
+ """Parses a set of lines using the supplied callable:
+ lambda (line, length): ...
+
+ Supports the parser functions available in 'pysam': asGTF, asBED, etc.
+ """
+ if not isinstance(parser, collections.Callable):
+ raise TypeError("'parser' must be a callable, not %r"
+ % parser.__class__.__name__)
+
+ for line in lines:
+ stripped = line.lstrip()
+ if stripped and not stripped.startswith("#"):
+ stripped = line.rstrip()
+ yield parser(stripped, len(stripped))
+
+
+def parse_lines_by_contig(lines, parser):
+ """Reads the lines of a text file, parsing each line with the specified
+ parser, and aggregating results by the 'contig' property of reach record.
+ """
+ table = {}
+ for record in parse_lines(lines, parser):
+ try:
+ table[record.contig].append(record)
+ except KeyError:
+ table[record.contig] = [record]
+
+ return table
diff --git a/pypeline/common/timer.py b/pypeline/common/timer.py
new file mode 100644
index 0000000..2e9cfa2
--- /dev/null
+++ b/pypeline/common/timer.py
@@ -0,0 +1,111 @@
+#!/usr/bin/python -3
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from __future__ import print_function
+
+import sys
+import time
+
+from pypeline.common.utilities import fragment, cumsum
+
+
+_DESC = "Processed {Records} records ({Progress}) in {Time}, est. {Remaining} left. Last {RecordsDelta} records in {TimeDelta}, now at {Contig}: {Position} ..."
+_FINAL = "Processed {Records} records in {Time}. Last {RecordsDelta} records in {TimeDelta} ..."
+
+class BAMTimer:
+ def __init__(self, bamfile, desc = None, step = 1e6, out = sys.stderr):
+ self._bam = None
+ self._out = out
+ self._desc = desc
+ self._step = int(step)
+ self._count = 0
+ self._last_count = 0
+ self._last_time = time.time()
+ self._start_time = self._last_time
+ self._last_fract = -1.0
+
+ self._bam_references = None
+
+ self._total = 0.0
+ self._counts = []
+ if bamfile and bamfile.header.get("HD", {}).get("SO", "NA") == "coordinate":
+ self._bam = bamfile
+ self._bam_references = self._bam.references
+
+ lengths = bamfile.lengths
+ self._total = float(sum(lengths)) or 1.0
+ self._counts.append(0)
+ self._counts.extend(cumsum(lengths))
+
+
+ def increment(self, count = 1, read = None):
+ self._count += count
+ if (self._count - self._last_count) >= self._step:
+ current_time = time.time()
+ self._print(current_time, read)
+ self._last_time = current_time
+ self._last_count = self._count
+ return self
+
+
+ def finalize(self):
+ self._print(time.time(), None)
+
+
+ def _print(self, current_time, read):
+ desc = _FINAL
+ contig, position, progress, remaining = "NA", "NA", "NA", "NA"
+ if read and not read.is_unmapped and self._bam:
+ fraction = ((read.pos + self._counts[read.tid]) / self._total)
+ if fraction >= self._last_fract:
+ self._last_fract = fraction
+ contig = self._bam_references[read.tid]
+ position = self._format_int(read.pos + 1)
+ progress = "%.2f%%" % (fraction * 100,)
+
+ current_running = current_time - self._start_time
+ remaining = self._format_time(current_running / fraction - current_running)
+ desc = _DESC
+ else:
+ print("File appears to be unsorted, cannot estimate progress ...", file = self._out)
+ self._bam = None
+
+ if self._desc:
+ print("%s: " % self._desc, end = "", file = self._out)
+
+ print(desc.format(Records = self._format_int(self._count),
+ RecordsDelta = self._format_int(self._count - self._last_count),
+ Time = self._format_time(current_time - self._start_time),
+ TimeDelta = self._format_time(current_time - self._last_time),
+ Contig = contig,
+ Position = position,
+ Progress = progress,
+ Remaining = remaining),
+ file = self._out)
+
+
+ def _format_time(self, ftime):
+ utc = time.gmtime(ftime)
+ return "%02i:%02i:%02is" % (utc.tm_hour, utc.tm_min, utc.tm_sec)
+
+ def _format_int(self, value):
+ return (",".join(fragment(3, str(value)[::-1])))[::-1]
diff --git a/pypeline/common/utilities.py b/pypeline/common/utilities.py
new file mode 100644
index 0000000..2551aea
--- /dev/null
+++ b/pypeline/common/utilities.py
@@ -0,0 +1,303 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import copy
+import types
+import pickle
+import cPickle
+import itertools
+import binascii
+
+
+def _safe_coerce(cls):
+ def _do_safe_coerce(value):
+ if isinstance(value, (types.StringTypes, types.DictType)):
+ return cls((value,))
+
+ try:
+ return cls(value)
+ except TypeError:
+ return cls((value,))
+
+ _do_safe_coerce.__doc__ = \
+ """Takes a value which be a single object, or an an iterable
+ and returns the content wrapped in a {0}. In the case of strings,
+ and dictionaries the original string object is returned in a {0},
+ and not as a {0} of chars. A TypeError is raised if this is not
+ possible (e.g. dict in frozenset).""".format(cls.__name__)
+ _do_safe_coerce.__name__ = \
+ "safe_coerce_to_{0}".format(cls.__name__)
+
+ return _do_safe_coerce
+
+safe_coerce_to_tuple = _safe_coerce(tuple)
+safe_coerce_to_frozenset = _safe_coerce(frozenset)
+
+
+def try_cast(value, cast_to):
+ try:
+ return cast_to(value)
+ except (ValueError, TypeError):
+ return value
+
+
+def crc32(data):
+ return binascii.crc32(data) & 0xffffffff
+
+
+def set_in(dictionary, keys, value):
+ """Traverses a set of nested dictionaries using the given keys,
+ and assigns the specified value to the inner-most
+ dictionary (obtained from the second-to-last key), using
+ the last key in keys. Thus calling set_in is(d, [X, Y, Z], v)
+ is equivalent to calling
+ d.setdefault(X, {}).setdefault(Y, {})[Z] = v
+
+ Behavior on non-dictionaries is undefined."""
+ keys = list(keys)
+ if not keys:
+ raise ValueError("No keys passed to 'set_in'!")
+
+ for key in keys[:-1]:
+ try:
+ dictionary = dictionary[key]
+ except KeyError:
+ new_dict = {}
+ dictionary[key] = new_dict
+ dictionary = new_dict
+
+ dictionary[keys[-1]] = value
+
+
+def get_in(dictionary, keys, default = None):
+ """Traverses a set of nested dictionaries using the keys in
+ kws, and returns the value assigned to the final keyword
+ in the innermost dictionary. Calling get_in(d, [X, Y])
+ is equivalent to calling d.get(X).get(Y), with the
+ difference that any missing keys causes the default value
+ to be returned.
+
+ Behavior on non-dictgionaries is undefined."""
+ keys = list(keys)
+ for key in keys[:-1]:
+ try:
+ dictionary = dictionary[key]
+ except KeyError:
+ return default
+
+ return dictionary.get(keys[-1], default)
+
+
+def split_before(iterable, pred):
+ """Takes a sequence and splits it before every value where pred(v) is true.
+ Thus split_before(range(10), key = lambda x: x % 2 == 0) would return the
+ sequence [[1], [2,3], [4,5], [6,7], [7,8], [9]]"""
+ items = []
+ for value in iterable:
+ if pred(value) and items:
+ yield items
+ items = []
+ items.append(value)
+
+ if items:
+ yield items
+
+
+def is_strictly_increasing(lst):
+ """Returns true if the contents of the list is strictly increasing."""
+ return all(x < y for (x, y) in itertools.izip(lst, itertools.islice(lst, 1, None)))
+
+
+# Copied from the Python 'itertools' module documentation
+def grouper(size, iterable, fillvalue=None):
+ "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
+ args = [iter(iterable)] * size
+ return itertools.izip_longest(fillvalue = fillvalue, *args)
+
+
+def group_by_pred(pred, iterable):
+ """Splits items in a sequence into two lists, one containing
+ items matching the predicate, and another containing those that
+ do not."""
+ is_true, is_false = [], []
+ for item in iterable:
+ if pred(item):
+ is_true.append(item)
+ else:
+ is_false.append(item)
+
+ return is_true, is_false
+
+
+def fragment(size, lstlike):
+ """Faster alternative to grouper for lists/strings."""
+ return (lstlike[i : i + size] for i in range(0, len(lstlike), size))
+
+
+def cumsum(lst, initial = 0):
+ """Yields the cummulative sums of the values in a
+ iterable, starting with the specified initial value."""
+ for item in lst:
+ initial += item
+ yield initial
+
+
+def fast_pickle_test(obj):
+ """Attempts to pickle an object, raising a PicklingError
+ if the object is unpicklable. This function uses cPickle
+ to determine if the object is pickable, but 'pickle' to
+ generate the exception, since the python module produces
+ more informative error messages."""
+ try:
+ cPickle.dumps(obj)
+ except (TypeError, cPickle.PicklingError):
+ pickle.dumps(obj)
+ assert False # pragma: no coverage
+
+
+def fill_dict(destination, source):
+ """Returns a copy of 'destination' after setting missing key-
+ pairs with copies of those of 'source' recursively."""
+ if not isinstance(destination, dict) or not isinstance(source, dict):
+ raise TypeError("Non-dictionary parameters in 'fill_dict'")
+
+ def _fill_dict(cur_dest, cur_src):
+ for key in cur_src:
+ if isinstance(cur_src[key], dict) and isinstance(cur_dest.get(key), dict):
+ _fill_dict(cur_dest[key], cur_src[key])
+ elif key not in cur_dest:
+ cur_dest[key] = cur_src[key]
+ return cur_dest
+
+ return _fill_dict(copy.deepcopy(destination), copy.deepcopy(source))
+
+
+def chain_sorted(*sequences, **kwargs):
+ """Chains together sorted sequences, and yields the contents
+ in the same order, such that the result is also a sorted sequence.
+ The function accepts a 'key'-function keyword, and a 'reverse'
+ keyword, in which case the values assumed to be decreasing rather
+ than increasing.
+
+ chain_sorted is intended for a few long sequences, and not many short
+ sequences. Behavior is undefined if the sequences are not sorted.
+
+ Example:
+ >>> tuple(chain_sorted((1, 3, 5), (0, 2, 4)))
+ (0, 1, 2, 3, 4, 5)
+ """
+
+ key = kwargs.pop('key', None)
+ select_func = max if kwargs.pop('reverse', None) else min
+ if kwargs:
+ raise TypeError("chain_sorted expected keyword 'key', got %r"
+ % (', '.join(kwargs)))
+
+ iterators = []
+ for sequence in sequences:
+ try:
+ sequence_iter = iter(sequence)
+ current_value = sequence_iter.next()
+ key_value = current_value
+ if key is not None:
+ key_value = key(key_value)
+
+ iterators.append([key_value, current_value, sequence_iter])
+ except StopIteration:
+ pass
+
+ while iterators:
+ current = select_func(iterators)
+ yield current[1]
+
+ try:
+ current_value = current[2].next()
+ key_value = current_value
+ if key is not None:
+ key_value = key(current_value)
+ current[0] = key_value
+ current[1] = current_value
+ except StopIteration:
+ iterators.remove(current)
+
+
+
+
+
+class Immutable(object):
+ """Mixin implementing a immutable class; member variables are specified in
+ the init function, cannot be changed afterwards; note that this does not
+ prevent changes to the member variables themselves (if not immutable)."""
+
+ def __init__(self, **kwargs):
+ object.__init__(self)
+ for (key, value) in kwargs.iteritems():
+ object.__setattr__(self, key, value)
+
+ def __setattr__(self, _name, _value):
+ raise NotImplementedError("Object is immutable")
+
+ def __delattr__(self, _name):
+ raise NotImplementedError("Object is immutable")
+
+
+class TotallyOrdered(object):
+ """Mixin implementing a rich-comparison interface, provided
+ that the subclass implements the less-than operator (__lt__).
+ The __lt__ function should return NotImplemented if the other
+ object is not the same type.
+
+ The implementation assumes total order:
+ http://en.wikipedia.org/wiki/Total_order
+ """
+
+ def __lt__(self, other):
+ raise NotImplementedError("__lt__ must be implemented!")
+
+ def __eq__(self, other):
+ if not isinstance(other, type(self)):
+ return NotImplemented
+ return not ((self < other) or (other < self))
+
+ def __ne__(self, other):
+ if not isinstance(other, type(self)):
+ return NotImplemented
+ return not (self == other)
+
+ def __le__(self, other):
+ if not isinstance(other, type(self)):
+ return NotImplemented
+ return not (other < self)
+
+ def __ge__(self, other):
+ if not isinstance(other, type(self)):
+ return NotImplemented
+ return not (self < other)
+
+ def __gt__(self, other):
+ if not isinstance(other, type(self)):
+ return NotImplemented
+ return (other < self)
+
+ # Shut up warning; if hashable, then the subclass will have
+ # to implement the __hash__ member function.
+ __hash__ = None
diff --git a/pypeline/common/vcffilter.py b/pypeline/common/vcffilter.py
new file mode 100644
index 0000000..323617f
--- /dev/null
+++ b/pypeline/common/vcffilter.py
@@ -0,0 +1,397 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from __future__ import with_statement
+
+import sys
+import optparse
+import collections
+
+import pysam
+
+import pypeline.common.vcfwrap as vcfwrap
+
+
+_INF = float("inf")
+# Rough number of records to keep in memory at once
+_CHUNK_SIZE = 10000
+
+
+def add_varfilter_options(parser):
+ group = optparse.OptionGroup(parser, "varFilter: Novel options")
+ group.add_option("--homozygous-chromosome", action="append", default = [],
+ help = "Filter heterozygous SNPs observed on this chromosome (e.g. chrX) [%default].")
+ group.add_option("-q", "--min-quality", type = int, default = 30,
+ help = "Minimum Phred score recorded in the QUAL column [%default]")
+ group.add_option("-f", "--min-allele-frequency", type = float, default = 0.2,
+ help = "Minimum frequency of the alleles at heterozygous sites [%default]. " \
+ "WARNING: A pileup must be provided for multi-allelic sites to be filtered!")
+ group.add_option("-b", "--pileup", default = None,
+ help = "Tabix indexed pileup for multi-allelic sites. This is required for such "\
+ "sites to be filtered using the --min-allele-frequency filter.")
+ group.add_option("-k", "--keep-ambigious-genotypes", default = False, action = "store_true",
+ help = "Keep SNPs without a most likely genotype (based on PL) [%default]")
+ parser.add_option_group(group)
+
+ group = optparse.OptionGroup(parser, "varFilter: Derived options")
+ # Options adapted from varFilter
+ group.add_option("-Q", "--min-mapping-quality", type = int, default = 10,
+ help = "Minimum RMS mapping quality for SNPs [%default]")
+ group.add_option("-d", "--min-read-depth", type = int, default = 8,
+ help = "Minimum read depth [%default]")
+ group.add_option("-D", "--max-read-depth", type = int, default = 10000000,
+ help = "Maximum read depth [%default]")
+ group.add_option("-a", "--min-num-alt-bases", type = int, default = 2,
+ help = "Minimum number of alternative bases observed for variants [%default]")
+ group.add_option("-w", "--min-distance-to-indels", type = int, default = 3,
+ help = "SNP within INT bp around a gap to be filtered [%default]")
+ group.add_option("-W", "--min-distance-between-indels", type = int, default = 10,
+ help = "Window size for filtering adjacent gaps [%default]")
+ group.add_option("-1", "--min-strand-bias", type = float, default = 1e-4,
+ help = "Min P-value for strand bias (given PV4) [%default]")
+ group.add_option("-2", "--min-baseq-bias", type = float, default = 1e-100,
+ help = "Min P-value for baseQ bias (given PV4) [%default]")
+ group.add_option("-3", "--min-mapq-bias", type = float, default = 0,
+ help = "Min P-value for mapQ bias (given PV4) [%default]")
+ group.add_option("-4", "--min-end-distance-bias", type = float, default = 1e-4,
+ help = "Min P-value for end distance bias (given PV4) [%default]")
+ parser.add_option_group(group)
+
+
+def describe_filters(options):
+ return {
+ "HET": "Heterozygous SNPs observed on homozygous chromosome (e.g. chrX)",
+ "q:%i" % options.min_quality: "Minimum Phred score recorded in the QUAL column",
+ "f:%.4f" % options.min_allele_frequency: "Minimum frequency of the alleles at heterozygous sites",
+ "k": "SNPs without a most likely genotype (based on PL)",
+ "Q:%i" % options.min_mapping_quality: "Minimum RMS mapping quality",
+ "d:%i" % options.min_read_depth: "Minimum read depth",
+ "D:%i" % options.max_read_depth: "Maximum read depth",
+ "a:%i" % options.min_num_alt_bases: "Minimum number of alternative bases observed for variants",
+ "w:%i" % options.min_distance_to_indels: "SNP within INT bp around a gap",
+ "W:%i" % options.min_distance_between_indels: "Indel within INT bp of another indel",
+ "1:%e" % options.min_strand_bias: "Min P-value for strand bias (given PV4)",
+ "2:%e" % options.min_baseq_bias: "Min P-value for baseQ bias (given PV4)",
+ "3:%e" % options.min_mapq_bias: "Min P-value for mapQ bias (given PV4)",
+ "4:%e" % options.min_end_distance_bias: "Min P-value for end distance bias (given PV4)",
+ }
+
+
+def filter_vcfs(options, vcfs):
+ vcfs = iter(vcfs)
+ chunk = collections.deque()
+ filename = options.pileup
+ min_freq = options.min_allele_frequency
+
+ with AlleleFrequencies(filename, min_freq) as frequencies:
+ while _read_chunk(vcfs, chunk):
+ chunk = _filter_chunk(options, chunk, frequencies)
+ for vcf in _trim_chunk(options, chunk):
+ if vcf.filter == ".":
+ vcf.filter = "PASS"
+
+ yield vcf
+
+
+class AlleleFrequencies:
+ VALID, INVALID, NA = range(3)
+
+ def __init__(self, filename, min_freq):
+ assert min_freq >= 0
+ self._min_freq = min_freq
+ self._handle = None
+
+ if filename and min_freq:
+ self._handle = pysam.Tabixfile(filename)
+ self.frequency_is_valid = self._frequency_is_valid
+ else:
+ self.frequency_is_valid = self._frequency_is_always_valid
+
+ def _frequency_is_always_valid(self, contig, position, _ref, _first, _second):
+ if self._min_freq:
+ sys.stderr.write("WARNING: Multi-allelic SNP found at %s:%i, but --pileup has not been specified.\n" \
+ % (contig, position + 1))
+ return self.VALID
+
+ def _frequency_is_valid(self, contig, position, ref, first, second):
+ assert self._handle
+
+ if any((len(nt) > 1) for nt in (ref, first, second)):
+ assert len(first) != len(second)
+ first = len(first) - len(ref)
+ second = len(second) - len(ref)
+
+ counts = self._fetch(contig, position)
+ n_first = counts.get(first, 0)
+ n_second = counts.get(second, 0)
+
+ n_minor = min(n_first, n_second)
+ n_major = max(n_first, n_second)
+ if not n_major:
+ return self.NA
+ elif n_minor / float(n_minor + n_major) < self._min_freq:
+ return self.INVALID
+ return self.VALID
+
+ def close(self):
+ if self._handle:
+ self._handle.close()
+ self._handle = None
+ self.frequency_is_valid = self._frequency_is_always_valid
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, _exc_type, _exc_value, _traceback):
+ self.close()
+
+ def _fetch(self, contig, position):
+ fetched = False
+ for line in self._handle.fetch(contig, position, position + 1):
+ fields, fetched = line.split("\t"), True
+ assert len(fields) == 6
+ break
+
+ if not fetched:
+ raise RuntimeError("Pileup did not contain position %s:%i, please rebuild." \
+ % (contig, position + 1))
+ elif (fields[0] != contig) or (int(fields[1]) != position + 1):
+ raise RuntimeError("Got wrong record (%s:%i vs %s:%s), is index corrupt?" \
+ % (contig, position + 1, fields[0], fields[1]))
+
+ counts = {}
+ bases = list(fields[4][::-1].upper())
+ ref = fields[2]
+ while bases:
+ current = bases.pop()
+ if current in "ACGTN":
+ counts[current] = counts.get(current, 0) + 1
+ elif current in ",.":
+ counts[ref] = counts.get(ref, 0) + 1
+ elif current in "+-":
+ indel_length = [current]
+ while bases[-1].isdigit():
+ indel_length.append(bases.pop())
+ indel_length = int("".join(indel_length))
+
+ for _ in xrange(abs(indel_length)):
+ bases.pop()
+
+ counts[indel_length] = counts.get(indel_length, 0) + 1
+ elif current == "*":
+ counts[-1] = counts.get(-1, 0) + 1
+ elif current == "^":
+ bases.pop()
+ elif current != "$":
+ raise RuntimeError("Error parsing pileup (unexpected char '%s'): %s" \
+ % (current, repr(line)))
+ return counts
+
+
+def _read_chunk(vcfs, chunk):
+ try:
+ while len(chunk) < _CHUNK_SIZE:
+ chunk.append(vcfs.next())
+ except StopIteration:
+ chunk.append(None)
+
+ return len(chunk) > 1
+
+
+def _trim_chunk(options, chunk):
+ min_distance = max(options.min_distance_between_indels,
+ options.min_distance_to_indels)
+
+ if not chunk:
+ return
+ elif chunk[-1] is None:
+ end_chr = "!@#$%^&*()_+"
+ end_pos = _INF
+ chunk.pop()
+ else:
+ end_chr = chunk[-1].contig
+ end_pos = chunk[-1].pos
+
+ while chunk:
+ vcf = chunk[0]
+ if (vcf.contig == end_chr):
+ # 'length' will become a too large value for heterozygous SNPs,
+ # but it is faster than having to parse every position, and has
+ # no effect on the final results.
+ length = max(len(vcf.ref), len(vcf.alt))
+ if (vcf.pos + length + min_distance) >= end_pos:
+ break
+
+ yield chunk.popleft()
+
+
+def _group_indels_near_position(indels, distance):
+ """Returns a dictionary of positions that are either directly covered by, or
+ adjacent to indels, given some arbitrary distance. For each position, a list
+ of adjacent/overlapping indels are provided."""
+ positions = collections.defaultdict(list)
+ if not distance:
+ return positions
+
+ for vcf in indels:
+ # The number of bases covered (excluding the prefix)
+ # For ambigious indels (e.g. in low complexity regions), this ensures
+ # that the entire region is considered. Note that we do not need to
+ # consider the alternative sequence(s)
+ length = len(vcf.ref) - 1
+
+ # Inclusive start/end positions for bases that should be blacklisted
+ # Note that vcf.pos is the base just before the insertion/deletion
+ start = vcf.pos + 1 - distance
+ end = vcf.pos + 1 + distance + length
+
+ for position in xrange(start, end + 1):
+ positions[position].append(vcf)
+
+ return positions
+
+
+def _select_best_indel(indels):
+ """Select the highest quality indel, based on the quality,
+ prefering low earlier positions above later positions in
+ case of ties."""
+ def _indel_by_quality_and_position(indel):
+ # The negative position is used to select the first
+ # of equally quality indels
+ return (float(indel.qual), -indel.pos)
+
+ return max(indels, key = _indel_by_quality_and_position)
+
+
+def _filter_by_indels(options, chunk):
+ """Filters a list of SNPs and Indels, such that no SNP is closer to
+ an indel than the value set in options.min_distance_to_indels, and
+ such that no two indels too close. If two or more indels are within
+ this distance, the indel with the highest QUAL score is retained. When
+ no unique highest QUAL score exists, an arbitrary indel is retained
+ among those indels with the highest QUAL score. SNPs are filtered
+ based on prefiltered Indels."""
+ indels = set([vcf for vcf in chunk if vcfwrap.is_indel(vcf)])
+
+ distance_between = options.min_distance_between_indels
+ indel_blacklist = _group_indels_near_position(indels, distance_between)
+ distance_to = options.min_distance_to_indels
+ snp_blacklist = _group_indels_near_position(indels, distance_to)
+
+ for vcf in chunk:
+ if vcfwrap.is_indel(vcf):
+ blacklisted = indel_blacklist.get(vcf.pos + 1, [vcf])
+ if vcf is not _select_best_indel(blacklisted):
+ _mark_as_filtered(vcf, "W:%i" % distance_between)
+ elif (vcf.alt != ".") and (vcf.pos in snp_blacklist):
+ # TODO: How to handle heterozygous SNPs near
+ _mark_as_filtered(vcf, "w:%i" % distance_to)
+
+
+def _filter_by_properties(options, vcfs, frequencies):
+ """Filters a list of SNPs/indels based on the various properties recorded in
+ the info column, and others. This mirrors most of the filtering carried out
+ by vcfutils.pl varFilter."""
+ for vcf in vcfs:
+ if float(vcf.qual) < options.min_quality:
+ _mark_as_filtered(vcf, "q:%i" % options.min_quality)
+
+ properties = {}
+ for field in vcf.info.split(";"):
+ if "=" in field:
+ key, value = field.split("=")
+ else:
+ key, value = field, None
+ properties[key] = value
+
+ read_depth = float(properties["DP"])
+ if options.min_read_depth > read_depth:
+ _mark_as_filtered(vcf, "d:%i" % options.min_read_depth)
+ elif options.max_read_depth < read_depth:
+ _mark_as_filtered(vcf, "D:%i" % options.max_read_depth)
+
+ if "MQ" in properties:
+ if float(properties["MQ"]) < options.min_mapping_quality:
+ _mark_as_filtered(vcf, "Q:%i" % options.min_mapping_quality)
+
+ if "PV4" in properties:
+ pv4 = [float(value) for value in properties["PV4"].split(",")]
+ if (pv4[0] < options.min_strand_bias):
+ _mark_as_filtered(vcf, "1:%e" % options.min_strand_bias)
+ if (pv4[1] < options.min_baseq_bias):
+ _mark_as_filtered(vcf, "2:%e" % options.min_baseq_bias)
+ if (pv4[2] < options.min_mapq_bias):
+ _mark_as_filtered(vcf, "3:%e" % options.min_mapq_bias)
+ if (pv4[3] < options.min_end_distance_bias):
+ _mark_as_filtered(vcf, "4:%e" % options.min_end_distance_bias)
+
+ if vcf.alt != ".":
+ ref_fw, ref_rev, alt_fw, alt_rev = map(int, properties["DP4"].split(","))
+ if (alt_fw + alt_rev) < options.min_num_alt_bases:
+ _mark_as_filtered(vcf, "a:%i" % options.min_num_alt_bases)
+
+ ml_genotype = vcfwrap.get_ml_genotype(vcf)
+ if (ml_genotype == ("N", "N")) and not options.keep_ambigious_genotypes:
+ # No most likely genotype
+ _mark_as_filtered(vcf, "k")
+
+ if (ml_genotype[0] != ml_genotype[1]):
+ if vcf.contig in options.homozygous_chromosome:
+ _mark_as_filtered(vcf, "HET")
+
+ # Filter by frequency of minor allele
+ if vcf.ref in ml_genotype:
+ n_minor = min(ref_fw + ref_rev, alt_fw + alt_rev)
+ n_major = max(ref_fw + ref_rev, alt_fw + alt_rev)
+
+ if (n_minor / float(n_minor + n_major)) < options.min_allele_frequency:
+ _mark_as_filtered(vcf, "f:%.4f" % options.min_allele_frequency)
+ else:
+ state = frequencies.frequency_is_valid(vcf.contig, vcf.pos, vcf.ref, *ml_genotype)
+ if state is frequencies.INVALID:
+ _mark_as_filtered(vcf, "f:%.4f" % options.min_allele_frequency)
+ elif state is frequencies.NA:
+ if _mark_as_filtered(vcf, "F:%.4f" % options.min_allele_frequency):
+ sys.stderr.write("WARNING: Could not determine allele-counts for SNP at %s:%s, filtering ...\n" % (vcf.contig, vcf.pos + 1))
+
+
+def _filter_chunk(options, chunk, frequencies):
+ at_end = False
+ if chunk[-1] is None:
+ at_end = True
+ chunk.pop()
+
+ _filter_by_indels(options, chunk)
+ _filter_by_properties(options, chunk, frequencies)
+
+ if at_end:
+ chunk.append(None)
+ return chunk
+
+
+def _mark_as_filtered(vcf, filter_name):
+ if vcf.filter in (".", "PASS"):
+ vcf.filter = filter_name
+ return True
+ elif filter_name not in vcf.filter.split(";"):
+ vcf.filter += ";" + filter_name
+ return True
diff --git a/pypeline/common/vcfwrap.py b/pypeline/common/vcfwrap.py
new file mode 100644
index 0000000..8b95172
--- /dev/null
+++ b/pypeline/common/vcfwrap.py
@@ -0,0 +1,129 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""Wrapper and utility functions for VCF handling, using
+the VCF data-structures from pysam."""
+
+import re
+import collections
+
+
+_re_tmpl = "(^|;)%s=([^;]+)(;|$)"
+_re_cache = {}
+
+def get_info(vcf, field, default = None, type = str):
+ """Returns the value of the specified field from the info column
+ of a VCF record. The type is determined by 'type' parameter, which
+ may be any function. If no matching key is found, or if the key is
+ not associated with a value, the function returns None by default."""
+ try:
+ regexp = _re_cache[field]
+ except KeyError:
+ regexp = _re_cache[field] = re.compile(_re_tmpl % (field,))
+
+ match = regexp.search(vcf.info)
+ if not match:
+ return default
+
+ return type(match.groups()[1])
+
+
+Indel = collections.namedtuple("Indel", ["in_reference", "pos", "prefix", "what", "postfix"])
+
+def parse_indel(vcf):
+ """Parses the VCF record of an indel, and returns a tuple containing the
+ position (0-based) of the previous base, a boolean indicating whether or
+ not the subsequent sequence is found in the reference sequence, and a
+ string containing the bases added to / removed from the reference.
+
+ Thus (7, False, "ACGT", "AC") indicates that the sequence ACGT has been
+ inserted following the 8th nucleotide, compared with the reference, and
+ that the insertion is followed by the bases "AC" on the reference."""
+ if not is_indel(vcf):
+ raise ValueError("SNP passed to 'parse_indel'!")
+ elif "," in vcf.alt:
+ raise ValueError("VCF records with multiple indels not supported!")
+ elif vcf.ref[0] != vcf.alt[0]:
+ raise ValueError("Sequences do not match VCF spec, first base differs: "
+ "%s:%s -- %s > %s" % (vcf.contig, vcf.pos + 1, vcf.ref, vcf.alt))
+
+ ref_len, alt_len = len(vcf.ref), len(vcf.alt)
+ # The length of the insertion / deletion
+ len_diff = abs(alt_len - ref_len)
+ if not len_diff:
+ raise ValueError("VCF record does not appear to be an indel:" + str(vcf))
+
+ # Wheter or not the sequence 'what' is found in the reference
+ in_reference = (ref_len >= alt_len)
+
+ # The sequence added or removed from the reference
+ longest = max(vcf.ref, vcf.alt, key = len)
+ shortest = min(vcf.ref, vcf.alt, key = len)
+ what = longest[1:len_diff + 1]
+
+ postfix = shortest[1:]
+ if longest[len_diff + 1:] != postfix:
+ raise ValueError("Sequence postfix does not match; malformed indel!")
+
+ return Indel(in_reference, vcf.pos, vcf.ref[0], what, postfix)
+
+
+def is_indel(vcf):
+ """Returns true if the VCF entry represents an indel."""
+ # FIXME: Is this a universal key for indels?
+ return "INDEL" in vcf.info
+
+
+# The corresponding nucleotides for each value in the VCF PL field
+_genotype_indices = [(jj, ii) for ii in range(0, 10) for jj in range(0, ii + 1)]
+
+def get_ml_genotype(vcf):
+ """Returns the most likely genotype of a sample in a vcf record. Note that
+ only records with exactly one sample are supported. If no single most likely
+ genotype can be determined, the function returns 'N' for both bases."""
+ if len(vcf) != 1:
+ raise ValueError("Only records with 1 sample are supported!")
+
+ genotypes = []
+ genotypes.extend(vcf.ref.split(","))
+ genotypes.extend(vcf.alt.split(","))
+
+ PL = map(int, get_format(vcf)["PL"].split(","))
+
+ expected_length = (len(genotypes) * (len(genotypes) + 1)) // 2
+ if len(PL) != expected_length:
+ raise ValueError("Unexpected number of PL values, expected %i, found %i!" \
+ % (expected_length, len(PL)))
+
+ if PL.count(min(PL)) > 1:
+ # No single most likely genotype
+ return ("N", "N")
+
+ most_likely = min(xrange(len(PL)), key=PL.__getitem__)
+ prefix, postfix = _genotype_indices[most_likely]
+
+ return (genotypes[prefix], genotypes[postfix])
+
+
+def get_format(vcf, sample = 0):
+ return dict(zip(vcf.format.split(":"),
+ vcf[sample].split(":")))
diff --git a/pypeline/common/versions.py b/pypeline/common/versions.py
new file mode 100644
index 0000000..b798f74
--- /dev/null
+++ b/pypeline/common/versions.py
@@ -0,0 +1,432 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+# pylint: disable=W0223
+#
+"""Version checks for apps or libraries required by PALEOMIX pipelines.
+
+The module contains to sets of classes: RequirementObj and Check. The
+RequirementObj class implements the determation of the current version for a
+given tool, while the Check (sub)classes implements various comparison
+to be carried against the detected version (less than, greater than or equal,
+etc.).
+
+To reduce the overhead of detmining versions (which mostly involve invoking
+external programs), the RequirementObj caches results. Additionally, to avoid
+redundant calls, RequirementObjs are created using the 'Requirement' function
+which caches RequirementObjs.
+
+For example, to check that the Java version is v1.7 or later:
+ obj = Requirement(call=("java", "-version"),
+ search='java version "(\\d+).(\\d+)',
+ checks=GE(1, 7),
+ name="Java Runtime Environment")
+ try:
+ obj()
+ except VersionRequirementError:
+ pass # requirements not met, or failure to determine version
+"""
+import re
+import operator
+import subprocess
+import collections
+
+from pypeline.common.utilities import \
+ Immutable, \
+ TotallyOrdered, \
+ safe_coerce_to_tuple, \
+ try_cast
+from pypeline.common.fileutils import \
+ which_executable
+
+
+# Cache used to store the output of cmd-line / function calls
+_CALL_CACHE = {}
+# Cache used to store Requirement object
+_REQUIREMENT_CACHE = {}
+
+
+class VersionRequirementError(StandardError):
+ """Raised if version requirements are not met, or if a version could not be
+ determined for a requirement check.
+ """
+
+
+def Requirement(call, search, checks, name=None, priority=0):
+ # Ignore function naming scheme
+ # pylint: disable=C0103
+ """Returns a singleton Requirement object, based on the parameters,
+ which may be used to check that version requirements are met for a
+ given program/utility/module, etc.
+
+ Parameters:
+ call -- A string, or a tuple containing strings for a system call,
+ or a tuple containing a function at the first position, and
+ a set of positional parameters. In the case of system calls,
+ stdout and stderr are returned as a single string, in the case
+ of a function call, the return value is expected to be a str.
+ search -- A regular expression (string or re object), used to search
+ the output of the "call". Groups are assumed to represent
+ version numbers.
+ checks -- A callable that implements the interface described in the
+ Check class.
+ name -- Descriptive name for the executable/module/etc. If not
+ specified, first value in 'call' will be used; if multiple
+ otherwise identical checks are made, the last name that
+ does not equal the first value of 'call' will be used.
+ priority -- Order in which requirements are checked; if multiple
+ otherwise identical checks are made with different priority,
+ the highest priority takes precedence.
+
+ Implementation detail: To reduce the need for performing calls or system-
+ calls multiple times, caches are implemented using the call object as keys.
+ Thus the same calls should be passed in a manner which allow equality
+ between the same calls to be established.
+ """
+ call = safe_coerce_to_tuple(call)
+ key = (call, search, checks)
+
+ try:
+ requirement = _REQUIREMENT_CACHE[key]
+
+ # Highest priority takes precedence
+ requirement.priority = max(requirement.priority, priority)
+ # Last explicitly specified name takes precedence
+ requirement.name = name or requirement.name
+ except KeyError:
+ requirement = RequirementObj(*key, name=name, priority=priority)
+ _REQUIREMENT_CACHE[key] = requirement
+
+ return requirement
+
+
+class RequirementObj(object):
+ """Represents a version requirement."""
+
+ def __init__(self, call, search, checks, name=None, priority=0):
+ """See function 'Requrement' for a description of parameters.
+ """
+ self._call = safe_coerce_to_tuple(call)
+ self._done = None
+ self.name = str(name or self._call[0])
+ self.priority = int(priority)
+ self.checks = checks
+ self._rege = re.compile(search)
+ self._version = None
+
+ @property
+ def version(self):
+ """The version determined for the application / library. If the version
+ could not be determined, a VersionRequirementError is raised,
+ describing the cause of the problem.
+ """
+ if self._version is None:
+ output = _do_call(self._call)
+ # Raise an exception if the JRE is outdated, even if the
+ # version could be determined (likely a false positive match).
+ self._check_for_outdated_jre(output)
+
+ match = self._rege.search(output)
+ if not match:
+ self._raise_failure(output)
+
+ self._version = tuple(0 if value is None else try_cast(value, int)
+ for value in match.groups())
+
+ return self._version
+
+ @property
+ def executable(self):
+ """Returns the executable invoked during version determination; if no
+ executable is invoked, None is returned.
+ """
+ if not isinstance(self._call[0], collections.Callable):
+ return self._call[0]
+
+ def __call__(self, force=False):
+ if force or self._done is None:
+ if not self.checks(self.version):
+ lines = ["Version requirements not met for %s; please refer\n"
+ "to the PALEOMIX documentation for more information."
+ "\n" % (self.name,)]
+ lines.extend(self._describe_call())
+
+ version = _pprint_version(self.version)
+ lines.append(" Version: %s" % version)
+ lines.append(" Required: %s" % self.checks)
+
+ raise VersionRequirementError("\n".join(lines))
+
+ self._done = True
+
+ def _check_for_outdated_jre(self, output):
+ """Checks for the error raised if the JRE is unable to run a JAR file.
+ This happens if the JAR was built with a never version of the JRE, e.g.
+ if Picard was built with a v1.7 JRE, and then run with a v1.6 JRE.
+ """
+ # This exception is raised if the JRE is incompatible with the JAR
+ if "UnsupportedClassVersionError" in output:
+ self._raise_failure(output)
+
+ def _raise_failure(self, output):
+ """Raises a VersionRequirementError when a version check failed; if the
+ output indicates that the JRE is outdated (i.e. the output contains
+ "UnsupportedClassVersionError") a special message is givenself.
+ """
+ lines = ["Version could not be determined for %s:" % (self.name,)]
+ lines.append("")
+ lines.extend(self._describe_call())
+ lines.append("")
+
+ # Raised if the JRE is too old compared to the JAR
+ if "UnsupportedClassVersionError" in output:
+ lines.extend([
+ "The version of the Java Runtime Environment on this",
+ "system is too old; please check the the requirement",
+ "for the program and upgrade your version of Java.",
+ "",
+ "See the documentation for more information.",
+ ])
+ else:
+ lines.append("Program may be broken or a version not supported by the")
+ lines.append("pipeline; please refer to the PALEOMIX documentation.\n")
+ lines.append(" Required: %s" % (self.checks,))
+ lines.append(" Search string: %r\n" % (self._rege.pattern))
+ lines.append("%s Command output %s" % ("-" * 22, "-" * 22))
+ lines.append(output)
+
+ raise VersionRequirementError("\n".join(lines))
+
+ def _describe_call(self):
+ """Yields string describing the current system call, if any.
+ """
+ if self.executable:
+ exec_path = which_executable(self.executable) or self.executable
+ yield " Executable: %s" % (exec_path,)
+
+ if not isinstance(self._call[0], collections.Callable):
+ yield " Call: %s" % (" ".join(self._call),)
+
+
+class Check(Immutable, TotallyOrdered):
+ # Ignore "missing" members; required due to use of Immutable
+ # pylint: disable=E1101
+ """Abstract base-class for version checks.
+
+ Callable with a tuple of version fields (typically integers), and returns
+ either True or False, depending on whether or not the specified check
+ passed.
+
+ The contructor takes a string describing the check ('description'), a
+ function with the signature 'func(version, values)', where version is the
+ version determined for a app/library, and where values are the values
+ passed to the Check constructor.
+ """
+
+ def __init__(self, description, func, *values):
+ if not callable(func):
+ raise TypeError('func must be callable, not %r' % (func,))
+
+ values = tuple(values)
+ Immutable.__init__(self,
+ _func=func,
+ _values=values,
+ _description=description,
+ _objs=(description, func, values))
+
+ def __str__(self):
+ return self._description
+
+ def __lt__(self, other):
+ if isinstance(other, Check):
+ return self._objs < other._objs # pylint: disable=W0212
+ return NotImplemented # pragma: no coverage
+
+ def __hash__(self):
+ return hash(self._objs)
+
+ def __call__(self, current):
+ """Takes a tuple of version fields (e.g. (1, 7)) and returns True if
+ this version matches the check.
+ """
+ return self._do_check_version(current, self._values)
+
+ def _do_check_version(self, current, reference):
+ """Invokes the actual check; may be overridden in subclasses."""
+ return self._func(current, reference)
+
+
+class CheckVersion(Check):
+ """Base class for comparisons involving versions; requires that the version
+ checks has at least as many fields as specified for the Check object. If
+ the version checked has more fields, these are truncated away.
+ """
+
+ def __init__(self, description, func, *version):
+ description = description.format(_pprint_version(version))
+ Check.__init__(self, description, func, *version)
+
+ def _do_check_version(self, current, reference):
+ if len(current) < len(reference):
+ raise ValueError("Expects at least %i fields, not %i: %r"
+ % (len(reference), len(current), current))
+
+ return Check._do_check_version(self,
+ current[:len(reference)],
+ reference)
+
+
+class EQ(CheckVersion):
+ """Checks that a version is Equal to this version; note that version fields
+ are truncated to the number of fields specified for this Check. As a
+ consequence, EQ(1, 5) is true for (1, 5), (1, 5, 7), (1, 5, 7, 1), etc. See
+ 'Check' for more information.
+ """
+
+ def __init__(self, *version):
+ CheckVersion.__init__(self, "{0}", operator.eq, *version)
+
+
+class GE(CheckVersion):
+ """Checks that a version is Greater-than or Equal to this version; note
+ that version fields are truncated to the number of fields specified for
+ this Check. See 'Check'.
+ """
+
+ def __init__(self, *version):
+ CheckVersion.__init__(self, "at least {0}", operator.ge, *version)
+
+
+class LT(CheckVersion):
+ """Checks that a version is Less Than this version; note that version
+ fields are truncated to the number of fields specified for this Check.
+ See 'Check'.
+ """
+
+ def __init__(self, *version):
+ CheckVersion.__init__(self, "prior to {0}", operator.lt, *version)
+
+
+class Any(CheckVersion):
+ """Dummy check; is always true."""
+
+ def __init__(self):
+ CheckVersion.__init__(self, "any version", _func_any)
+
+
+class Operator(Check):
+ """Base class for logical operations on Checks; and, or, etc."""
+
+ def __init__(self, keyword, func, *checks):
+ """Arguments:
+ keyword -- Keyword to join description of checks by.
+ func -- Function implementing the logical operation; is called as
+ func(*checks). See the 'func' argument for Check.__init__.
+ checks -- Zero or more Checks.
+ """
+ descriptions = []
+ for check in checks:
+ if isinstance(check, Operator):
+ descriptions.append("(%s)" % (check,))
+ elif isinstance(check, Check):
+ descriptions.append("%s" % (check,))
+ else:
+ raise ValueError("%r is not of type Check" % (check,))
+
+ description = keyword.join(descriptions)
+ Check.__init__(self, description, func, *checks)
+
+
+class And(Operator):
+ """Carries out 'and' on a set of checks; always true for no Checks"""
+
+ def __init__(self, *checks):
+ Operator.__init__(self, " and ", _func_and, *checks)
+
+
+class Or(Operator):
+ """Carries out 'or' on a set of checks; always false for no Checks"""
+
+ def __init__(self, *checks):
+ Operator.__init__(self, " or ", _func_or, *checks)
+
+
+###############################################################################
+###############################################################################
+# Check functions; must be available for pickle
+
+def _func_any(_current, _checks):
+ """Implementation of Any."""
+ return True
+
+
+def _func_and(current, checks):
+ """Implementation of And."""
+ return all(check(current) for check in checks)
+
+
+def _func_or(current, checks):
+ """Implementation of Or."""
+ return any(check(current) for check in checks)
+
+
+###############################################################################
+###############################################################################
+# Utility functions
+
+def _run(call):
+ """Carries out a system call and returns STDOUT and STDERR as a combined
+ string. If an OSError is raied (e.g. due to missing executables), the
+ resulting message is returned as a string.
+ """
+ try:
+ proc = subprocess.Popen(call,
+ stdout=subprocess.PIPE,
+ # Merge STDERR with STDOUT output
+ stderr=subprocess.STDOUT,
+ close_fds=True)
+
+ return proc.communicate()[0]
+ except (OSError, subprocess.CalledProcessError), error:
+ return str(error)
+
+
+def _do_call(call):
+ """Performs a call; the result is cached, and returned upon subsequent
+ calls with the same signature (either a function call or system call).
+ """
+ try:
+ return _CALL_CACHE[call]
+ except KeyError:
+ if callable(call[0]):
+ result = call[0](*call[1:])
+ else:
+ result = _run(call)
+ _CALL_CACHE[call] = result
+ return result
+
+
+def _pprint_version(value):
+ """Pretty-print version tuple; takes a tuple of field numbers / values,
+ and returns it as a string joined by dots with a 'v' prepended.
+ """
+ return "v%s.x" % (".".join(map(str, value)),)
diff --git a/pypeline/config.py b/pypeline/config.py
new file mode 100644
index 0000000..c725e17
--- /dev/null
+++ b/pypeline/config.py
@@ -0,0 +1,182 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2013 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import sys
+import types
+import socket
+import getpass
+import optparse
+import ConfigParser
+import multiprocessing
+
+from pypeline.common.fileutils import \
+ make_dirs
+from pypeline.common.console import \
+ print_info
+
+
+class ConfigError(RuntimeError):
+ pass
+
+
+class PerHostValue:
+ def __init__(self, value, is_path = False):
+ """Represents a config value that should be settable on a
+ per-host basis. If 'is_path' is set, the value is assumed
+ to represent a path, and ~ is expanded to the user's home
+ folder."""
+
+ self.value = value
+ self.is_path = is_path
+
+
+class PerHostConfig:
+ """Helper class for optparse.OptionParser use by pypelines; standardizes the
+ process of reading / writing overridable CLI options, while allowing per-host
+ options to be set in the .ini files. Values for options with a default value
+ that is an instance of PerHostValue will automatically be read-from /
+ written-to the per-user config file.
+
+ Given a pypeline with name "NAME", the class will read options from the
+ following configuration files:
+ - /etc/pypeline/NAME.ini
+ - ~/.pypeline/NAME.ini
+
+ These files are expected to contain a "Defaults" section (applies to all hosts),
+ and an optional section using the hostname of a server. A file containing the
+ current settings (as passed on the CLI) may be written using --write-config-file.
+
+ Example usage:
+ per_host_cfg = PerHostConfig("my_pypeline")
+ parser = OptionParser(...)
+ parser.add_option(..., default = PerHostValue(...))
+ config, args = per_host_cfg.parse_args(parser, sys.argv[1:])
+ """
+
+ def __init__(self, pipeline_name):
+ """Creates a PerHostConfig for a pypeline with the specified name."""
+ # Various common options
+ self.temp_root = PerHostValue(os.path.join("/tmp", getpass.getuser(), pipeline_name), True)
+ # At least 2 threads are required for e.g. PE BWA nodes, and generally recommended anyway
+ self.max_threads = PerHostValue(max(2, multiprocessing.cpu_count()))
+
+ self._filenames = self._get_filenames(pipeline_name)
+ self._handle = ConfigParser.SafeConfigParser()
+ self._handle.read(self._filenames)
+ self._sections = []
+
+ hostname = socket.gethostname()
+ if self._handle.has_section(hostname):
+ self._sections.append(hostname)
+ self._sections.append("Defaults")
+
+
+ def parse_args(self, parser, argv):
+ """Calls 'parse_args' on the parser object after updating default values
+ using the settings-files. If --write-config-file is set, a config file
+ containing the resulting settings is written."""
+ self._add_per_host_options(parser)
+ defaults = self._update_defaults(parser)
+ config, args = parser.parse_args(argv)
+
+ if config.write_config_file:
+ self._write_config_file(config, defaults)
+
+ return config, args
+
+
+ def _write_config_file(self, config, defaults):
+ """Writes a basic config files, using the values previously found in the
+ config files, and specified on the command-line."""
+ defaults_cfg = ConfigParser.SafeConfigParser()
+ defaults_cfg.add_section("Defaults")
+ for key in defaults:
+ value = getattr(config, key)
+ if isinstance(value, (types.ListType, types.TupleType)):
+ value = ";".join(value)
+
+ defaults_cfg.set("Defaults", key, str(value))
+
+ filename = self._filenames[-1]
+ make_dirs(os.path.dirname(filename))
+ with open(filename, "w") as handle:
+ defaults_cfg.write(handle)
+
+ print_info("Wrote config file %r" % (filename,))
+ sys.exit(0)
+
+
+ def _add_per_host_options(self, parser):
+ """Adds options to a parser relating to the PerHostConfig."""
+ group = optparse.OptionGroup(parser, "Config files")
+ group.add_option("--write-config-file", default = False, action="store_true",
+ help = "Write config using current settings to %s" % (self._filenames[-1],))
+ parser.add_option_group(group)
+
+
+ def _update_defaults(self, parser):
+ """Updates default values in a OptionParser, and returns a new
+ ConfigParser object containing a new default-values object derived
+ from current config-files / CLI options."""
+ defaults = {}
+ for opt in parser._get_all_options(): # pylint: disable=W0212
+ if isinstance(opt.default, PerHostValue):
+ defaults[opt.dest] = self._get_default(opt)
+ parser.set_defaults(**defaults)
+ return defaults
+
+
+ def _get_default(self, option):
+ value = option.default.value
+ getter = self._handle.get
+ if isinstance(value, types.BooleanType):
+ getter = self._handle.getboolean
+ elif isinstance(value, (types.IntType, types.LongType)):
+ getter = self._handle.getint
+ elif isinstance(value, (types.FloatType)):
+ getter = self._handle.getfloat
+ elif isinstance(value, (types.ListType, types.TupleType)):
+ def getter(section, key): # pylint: disable=E0102
+ return filter(None, self._handle.get(section, key).split(";"))
+
+ for section in self._sections:
+ if self._handle.has_option(section, option.dest):
+ value = getter(section, option.dest)
+ break
+
+ if option.default.is_path:
+ value = os.path.expanduser(value)
+
+ return value
+
+
+ @classmethod
+ def _get_filenames(cls, name):
+ """Return standard list of config files for pypeline pipelines:
+ - /etc/pypeline/{name}.ini
+ - ~/.pypeline/{name}.ini
+ """
+ filename = "%s.ini" % (name,)
+ homefolder = os.path.expanduser('~')
+ return ["/etc/pypeline/%s" % (filename,),
+ os.path.join(homefolder, ".pypeline", filename)]
diff --git a/pypeline/logger.py b/pypeline/logger.py
new file mode 100644
index 0000000..992b168
--- /dev/null
+++ b/pypeline/logger.py
@@ -0,0 +1,175 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2013 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import sys
+import errno
+import optparse
+import logging
+
+import pypeline.common.console as _cli
+
+
+def initialize(config, template = None):
+ """Takes an OptionParser object for which 'add_optiongroup' has
+ been called, as well as a filename template (containing one '%i'
+ field), and initializes logging for a pypeline.
+
+ If --log-file has not been specified, the template is used to
+ create a new logfile in --temp-root, skipping existing logfiles
+ by incrementing the counter value. If a --log-file has been
+ specified, this file is always created / opened.
+
+ If neither --log-file nor 'template' has been specified, then
+ logging is only carried out by printing messages to STDERR."""
+ global _INITIALIZED # pylint: disable=W0603
+ if _INITIALIZED:
+ raise RuntimeError("Attempting to initialize logging more than once")
+
+ root = logging.getLogger()
+ root.setLevel(logging.INFO)
+ root.addHandler(_PrintToConsole(logging.INFO))
+
+ if config.log_file or template:
+ # Verify that the template is functional up front
+ template % (1,) # pylint: disable=W0104
+
+ level = _LOGLEVELS[config.log_level]
+ if config.log_file:
+ handler = logging.FileHandler(config.log_file)
+ else:
+ handler = _LazyLogfile(config.temp_root, template)
+ fmt = "%s\n%%(asctime)s -- %%(levelname)s:\n%%(message)s"
+ formatter = logging.Formatter(fmt % ("-" * 60,))
+ handler.setFormatter(formatter)
+ handler.setLevel(level)
+ root.addHandler(handler)
+
+ _INITIALIZED = True
+
+
+def add_optiongroup(parser, default = "warning"):
+ """Adds an option-group to an OptionParser object, with options
+ pertaining to logging. Note that 'initialize' expects the config
+ object to have these options."""
+ group = optparse.OptionGroup(parser, "Logging")
+ group.add_option("--log-file", default = None,
+ help = "Create the specified log-file and write any "
+ "messages to this file. By default, a log-file "
+ "will be generated in the folder specified using "
+ "--temp-root, but only when messages are logged")
+ group.add_option("--log-level", default = default, type = "choice",
+ choices = ("info", "warning", "error", "debug"),
+ help = "Log messages to log-file at and above the "
+ "specified level; one of 'info', 'warning', "
+ "'error', or 'debug' [%default]")
+ parser.add_option_group(group)
+
+
+def get_logfile():
+ return _LOGFILE
+
+
+class _PrintToConsole(logging.Handler):
+ """Logger that prints messages to the console using the
+ pypeline.ui functions for colored text. Colors are blue
+ for DEBUG, green for INFO (and unknown levels), yellow
+ for WARNING, and red for ERROR and CRITICAL."""
+ def __init__(self, level = logging.NOTSET):
+ logging.Handler.__init__(self, level)
+
+ def emit(self, record):
+ func = self.get_ui_function(record.levelno)
+ func(record.getMessage(), file = sys.stderr)
+
+ @classmethod
+ def get_ui_function(cls, level):
+ if level in (logging.ERROR, logging.CRITICAL):
+ return _cli.print_err
+ elif level == logging.WARNING:
+ return _cli.print_warn
+ elif level == logging.DEBUG:
+ return _cli.print_debug
+ return _cli.print_info
+
+
+class _LazyLogfile(logging.Handler):
+ def __init__(self, folder, template):
+ logging.Handler.__init__(self)
+ self._folder = folder
+ self._template = template
+ self._stream = None
+ self._handler = None
+ self._formatter = None
+
+
+ def emit(self, record):
+ if not self._handler:
+ global _LOGFILE # pylint: disable = W0603
+ _LOGFILE, self._stream = \
+ _open_logfile(self._folder, self._template)
+ self._handler = logging.StreamHandler(self._stream)
+ self._handler.setFormatter(self._formatter)
+ self._handler.emit(record)
+
+
+ def flush(self):
+ if self._handler:
+ self._handler.flush()
+
+
+ def setFormatter(self, form):
+ logging.Handler.setFormatter(self, form)
+ self._formatter = form
+
+
+ def close(self):
+ if self._handler:
+ self._handler.close()
+ self._stream.close()
+ self._handler = None
+ self._stream = None
+
+
+def _open_logfile(folder, template, start = 0):
+ """Try to open a new logfile, taking steps to ensure that
+ existing logfiles using the same template are not clobbered."""
+ flags = os.O_WRONLY | os.O_CREAT | os.O_EXCL
+ while True:
+ filename = os.path.join(folder, template % (start,))
+ try:
+ if not os.path.exists(filename):
+ return filename, os.fdopen(os.open(filename, flags), "w")
+ except OSError, error:
+ if error.errno != errno.EEXIST:
+ raise
+ start += 1
+
+
+_INITIALIZED = False
+_LOGFILE = None
+_LOGLEVELS = {
+ 'info' : logging.INFO,
+ 'warning' : logging.WARNING,
+ 'error' : logging.ERROR,
+ 'debug' : logging.DEBUG,
+}
diff --git a/pypeline/node.py b/pypeline/node.py
new file mode 100644
index 0000000..20aa604
--- /dev/null
+++ b/pypeline/node.py
@@ -0,0 +1,313 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import sys
+import types
+import traceback
+import collections
+
+import pypeline.common.fileutils as fileutils
+from pypeline.common.utilities import \
+ safe_coerce_to_frozenset
+
+from pypeline.atomiccmd.command import \
+ CmdError
+
+
+class NodeError(RuntimeError):
+ pass
+
+class CmdNodeError(NodeError):
+ pass
+
+class MetaNodeError(NodeError):
+ pass
+
+class NodeUnhandledException(NodeError):
+ """This exception is thrown by Node.run() if a non-NodeError exception
+ is raised in a subfunction (e.g. _setup, _run, or _teardown). The text
+ for this exception will include both the original error message and a
+ stacktrace for that error."""
+ pass
+
+
+class Node(object):
+ def __init__(self, description = None, threads = 1,
+ input_files = (), output_files = (),
+ executables = (), auxiliary_files = (),
+ requirements = (), subnodes = (), dependencies = ()):
+
+ if not isinstance(description, _DESC_TYPES):
+ raise TypeError("'description' must be None or a string, not %r" \
+ % (description.__class__.__name__,))
+
+ self.__description = description
+ self.input_files = self._validate_files(input_files)
+ self.output_files = self._validate_files(output_files)
+ self.executables = self._validate_files(executables)
+ self.auxiliary_files = self._validate_files(auxiliary_files)
+ self.requirements = self._validate_requirements(requirements)
+
+ self.threads = self._validate_nthreads(threads)
+ self.subnodes = self._collect_nodes(subnodes, "Subnode")
+ self.dependencies = self._collect_nodes(dependencies, "Dependency")
+
+ # If there are no input files, the node cannot be re-run based on
+ # changes to the input, and nodes with output but no input are not
+ # expected based on current usage.
+ if not self.input_files and self.output_files:
+ raise NodeError("Node not dependant upon input files: %s" % self)
+
+
+ def run(self, config):
+ """Runs the node, by calling _setup, _run, and _teardown in that order.
+ Prior to calling these functions, a temporary dir is created using the
+ 'temp_root' prefix from the config object. Both the config object and
+ the temporary dir are passed to the above functions. The temporary
+ dir is removed after _teardown is called, and all expected files
+ should have been removed/renamed at that point.
+
+ Any non-NodeError exception raised in this function is wrapped in a
+ NodeUnhandledException, which includes a full backtrace. This is needed
+ to allow showing these in the main process."""
+
+ try:
+ temp = None
+ temp = self._create_temp_dir(config)
+
+ self._setup(config, temp)
+ self._run(config, temp)
+ self._teardown(config, temp)
+ self._remove_temp_dir(temp)
+ except NodeError, error:
+ self._write_error_log(temp, error)
+ raise NodeError("Error(s) running Node:\n\tTemporary directory: %s\n\n%s" \
+ % (repr(temp), error))
+ except Exception, error:
+ self._write_error_log(temp, error)
+ raise NodeUnhandledException("Error(s) running Node:\n\tTemporary directory: %s\n\n%s" \
+ % (repr(temp), traceback.format_exc()))
+
+
+ def _create_temp_dir(self, config):
+ """Called by 'run' in order to create a temporary folder.
+
+ 'config' is expected to have a property .temp_root under
+ which the temporary folder is created."""
+ return fileutils.create_temp_dir(config.temp_root)
+
+
+ def _remove_temp_dir(self, temp):
+ """Called by 'run' in order to remove an (now) empty temporary folder."""
+ os.rmdir(temp)
+
+
+ def _setup(self, _config, _temp):
+ """Is called prior to '_run()' by 'run()'. Any code used to copy/link files,
+ or other steps needed to ready the node for running may be carried out in this
+ function. Checks that required input files exist, and raises an NodeError if
+ this is not the case."""
+ if fileutils.missing_executables(self.executables):
+ raise NodeError("Executable(s) does not exist for node: %s" % (self,))
+ self._check_for_missing_files(self.input_files, "input")
+ self._check_for_missing_files(self.auxiliary_files, "auxiliary")
+
+
+ def _run(self, _config, _temp):
+ pass
+
+
+ def _teardown(self, _config, _temp):
+ self._check_for_missing_files(self.output_files, "output")
+
+
+ def __str__(self):
+ """Returns the description passed to the constructor, or a default
+ description if no description was passed to the constructor."""
+ if self.__description:
+ return self.__description
+ return repr(self)
+
+
+ def __getstate__(self):
+ """Called by pickle/cPickle to determine what to pickle; this is
+ overridden to avoid pickling of requirements, dependencies and
+ subnodes, which would otherwise greatly inflate the amount of
+ information that needs to be pickled."""
+ obj_dict = self.__dict__.copy()
+ obj_dict["requirements"] = None
+ obj_dict["dependencies"] = None
+ obj_dict["subnodes"] = None
+ return obj_dict
+
+
+ def _write_error_log(self, temp, error):
+ if not (temp and os.path.isdir(temp)):
+ return
+
+ prefix = "\n "
+ message = ["Command = %s" % (" ".join(sys.argv),),
+ "CWD = %s" % (os.getcwd(),),
+ "Node = %s" % (str(self),),
+ "Threads = %i" % (self.threads,),
+ "Input files = %s" % (prefix.join(sorted(self.input_files)),),
+ "Output files = %s" % (prefix.join(sorted(self.output_files)),),
+ "Auxiliary files = %s" % (prefix.join(sorted(self.auxiliary_files)),),
+ "Executables = %s" % (prefix.join(sorted(self.executables)),),
+ "",
+ "Errors =\n%s\n" % (error,)]
+ message = "\n".join(message)
+
+ try:
+ with open(os.path.join(temp, "pipe.errors"), "w") as handle:
+ handle.write(message)
+ except OSError, oserror:
+ sys.stderr.write("ERROR: Could not write failure log: %s\n" % (oserror,))
+
+
+ def _collect_nodes(self, nodes, description):
+ if nodes is None:
+ return frozenset()
+
+ nodes = safe_coerce_to_frozenset(nodes)
+ bad_nodes = [node for node in nodes if not isinstance(node, Node)]
+
+ if bad_nodes:
+ bad_nodes = [repr(node) for node in bad_nodes]
+ message = "%s-list contain non-Node objects:\n\t- Command: %s\n\t- Objects: %s" \
+ % (description, self, "\n\t ".join(bad_nodes))
+ raise TypeError(message)
+
+ return nodes
+
+
+ def _check_for_missing_files(self, filenames, description):
+ missing_files = fileutils.missing_files(filenames)
+ if missing_files:
+ message = "Missing %s files for command:\n\t- Command: %s\n\t- Files: %s" \
+ % (description, self, "\n\t ".join(missing_files))
+ raise NodeError(message)
+
+ @classmethod
+ def _validate_requirements(cls, requirements):
+ requirements = safe_coerce_to_frozenset(requirements)
+ for requirement in requirements:
+ if not isinstance(requirement, collections.Callable):
+ raise TypeError("'requirements' must be callable, not %r" \
+ % (type(requirement),))
+ return requirements
+
+ @classmethod
+ def _validate_files(cls, files):
+ files = safe_coerce_to_frozenset(files)
+ for filename in files:
+ if not isinstance(filename, types.StringTypes):
+ raise TypeError('Files must be strings, not %r' % filename.__class__.__name__)
+ return files
+
+ @classmethod
+ def _validate_nthreads(cls, threads):
+ if not isinstance(threads, (types.IntType, types.LongType)):
+ raise TypeError("'threads' must be a positive integer, not %s" % (type(threads),))
+ elif threads < 1:
+ raise ValueError("'threads' must be a positive integer, not %i" % (threads,))
+ return int(threads)
+
+
+
+
+class CommandNode(Node):
+ def __init__(self, command, description = None, threads = 1,
+ subnodes = (), dependencies = ()):
+ Node.__init__(self,
+ description = description,
+ input_files = command.input_files,
+ output_files = command.output_files,
+ auxiliary_files = command.auxiliary_files,
+ executables = command.executables,
+ requirements = command.requirements,
+ threads = threads,
+ subnodes = subnodes,
+ dependencies = dependencies)
+
+ self._command = command
+
+ def _run(self, _config, temp):
+ """Runs the command object provided in the constructor, and waits for it to
+ terminate. If any errors during the running of the command, this function
+ raises a NodeError detailing the returned error-codes."""
+ try:
+ self._command.run(temp)
+ except CmdError, error:
+ desc = "\n\t".join(str(self._command).split("\n"))
+ raise CmdNodeError("%s\n\n%s" % (desc, error))
+
+ return_codes = self._command.join()
+ if any(return_codes):
+ desc = "\n\t".join(str(self._command).split("\n"))
+ raise CmdNodeError(desc)
+
+
+ def _teardown(self, config, temp):
+ required_files = self._command.expected_temp_files
+ optional_files = self._command.optional_temp_files
+ current_files = set(os.listdir(temp))
+
+ missing_files = (required_files - current_files)
+ if missing_files:
+ raise CmdNodeError(("Error running Node, required files not created:\n"
+ "Temporary directory: %r\n"
+ "\tRequired files missing from temporary directory:\n\t - %s") \
+ % (temp, "\n\t - ".join(sorted(map(repr, missing_files)))))
+
+ extra_files = current_files - (required_files | optional_files)
+ if extra_files:
+ raise CmdNodeError("Error running Node, unexpected files created:\n"
+ "\tTemporary directory: %r\n"
+ "\tUnexpected files found in temporary directory:\n\t - %s" \
+ % (temp, "\n\t - ".join(sorted(map(repr, extra_files)))))
+
+ self._command.commit(temp)
+
+ Node._teardown(self, config, temp)
+
+
+
+class MetaNode(Node):
+ """A MetaNode is a simplified node, which only serves the purpose of aggregating
+ a set of subnodes. It does not carry out any task itself (run() does nothing),
+ and is marked as done when all its subnodes / dependencies are completed."""
+
+ def __init__(self, description = None, subnodes = (), dependencies = ()):
+ Node.__init__(self,
+ description = description,
+ subnodes = subnodes,
+ dependencies = dependencies)
+
+ def run(self, config):
+ raise MetaNodeError("Called 'run' on MetaNode")
+
+
+
+# Types that are allowed for the 'description' property
+_DESC_TYPES = types.StringTypes + (types.NoneType,)
diff --git a/pypeline/nodegraph.py b/pypeline/nodegraph.py
new file mode 100644
index 0000000..d71e5fe
--- /dev/null
+++ b/pypeline/nodegraph.py
@@ -0,0 +1,444 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import collections
+import errno
+import logging
+import os
+
+import pypeline.common.versions as versions
+
+from pypeline.node import MetaNode
+from pypeline.common.fileutils import \
+ reroot_path, \
+ missing_executables
+from pypeline.common.utilities import \
+ safe_coerce_to_frozenset
+
+
+# Max number of error messages of each type
+_MAX_ERROR_MESSAGES = 10
+
+
+class FileStatusCache(object):
+ """Cache used to avoid repeatedly checking the state (existance / mtime) of
+ files required / generated by nodes. A new cache is generated for every
+ operation (e.g. refreshing all states / manually setting the state of a
+ node) to avoid relying on the filesystem staying consistant for long
+ periods of time.
+ """
+
+ def __init__(self):
+ self._stat_cache = {}
+
+ def files_exist(self, fpaths):
+ """Returns true if all paths listed in fpaths exist."""
+ return all((self._get_state(fpath) is not None) for fpath in fpaths)
+
+ def missing_files(self, fpaths):
+ """Returns a list of paths in fpaths that do not exist."""
+ return [fpath for fpath in fpaths if (self._get_state(fpath) is None)]
+
+ def files_up_to_date(self, younger, older):
+ """Returns true if all files listed in 'younger' have a time-stamp
+ post-dating the time-stamp of the youngest file listed in 'older'.
+ """
+ younger_time = max(self._get_state(fpath) for fpath in younger)
+ older_time = min(self._get_state(fpath) for fpath in older)
+ return younger_time > older_time
+
+ def _get_state(self, fpath):
+ """Returns the mtime of a path, or None if the path does not exist."""
+ if fpath not in self._stat_cache:
+ try:
+ mtime = os.path.getmtime(fpath)
+ except OSError, error:
+ if error.errno != errno.ENOENT:
+ raise
+ mtime = None
+ self._stat_cache[fpath] = mtime
+ return self._stat_cache[fpath]
+
+
+class NodeGraphError(RuntimeError):
+ pass
+
+
+class NodeGraph:
+ NUMBER_OF_STATES = 6
+ DONE, RUNNING, RUNABLE, QUEUED, OUTDATED, ERROR \
+ = range(NUMBER_OF_STATES)
+
+ def __init__(self, nodes, cache_factory=FileStatusCache):
+ self._cache_factory = cache_factory
+ self._state_observers = []
+ self._states = {}
+
+ nodes = safe_coerce_to_frozenset(nodes)
+
+ self._logger = logging.getLogger(__name__)
+ self._reverse_dependencies = collections.defaultdict(set)
+ self._collect_reverse_dependencies(nodes, self._reverse_dependencies, set())
+ self._intersections = {}
+ self._top_nodes = [node for (node, rev_deps) in self._reverse_dependencies.iteritems() if not rev_deps]
+
+ self._logger.info(" - Checking file dependencies ...")
+ self._check_file_dependencies(self._reverse_dependencies)
+ self._logger.info(" - Checking for required executables ...")
+ self._check_required_executables(self._reverse_dependencies)
+ self._logger.info(" - Checking version requirements ...")
+ self._check_version_requirements(self._reverse_dependencies)
+ self._logger.info(" - Determining states ...")
+ self.refresh_states()
+ self._logger.info(" - Ready ...\n")
+
+ def get_node_state(self, node):
+ return self._states[node]
+
+ def set_node_state(self, node, state):
+ if state not in (NodeGraph.RUNNING, NodeGraph.ERROR, NodeGraph.DONE):
+ raise ValueError("Invalid state: %r" % (state,))
+ old_state = self._states[node]
+ if state == old_state:
+ return
+
+ self._states[node] = state
+ self._notify_state_observers(node, old_state, state, True)
+
+ intersections = self._calculate_intersections(node)
+
+ # Not all nodes may need to be updated, but we still need to
+ # traverse the "graph" (using the intersection counts) in order
+ # to ensure that all nodes that need to be updated are updated.
+ requires_update = dict.fromkeys(intersections, False)
+ for dependency in self._reverse_dependencies[node]:
+ requires_update[dependency] = True
+
+ cache = self._cache_factory()
+ while any(requires_update.itervalues()):
+ for (node, count) in intersections.items():
+ if not count:
+ has_changed = False
+ if requires_update[node]:
+ old_state = self._states.pop(node)
+ new_state = self._update_node_state(node, cache)
+ if new_state != old_state:
+ self._notify_state_observers(node, old_state,
+ new_state, False)
+ has_changed = True
+
+ for dependency in self._reverse_dependencies[node]:
+ intersections[dependency] -= 1
+ requires_update[dependency] |= has_changed
+
+ intersections.pop(node)
+ requires_update.pop(node)
+
+
+ def __iter__(self):
+ """Returns a graph of nodes."""
+ return iter(self._top_nodes)
+
+ def iterflat(self):
+ return iter(self._reverse_dependencies)
+
+ def refresh_states(self):
+ states = {}
+ cache = self._cache_factory()
+ for (node, state) in self._states.iteritems():
+ if state in (self.ERROR, self.RUNNING):
+ states[node] = state
+ self._states = states
+ for node in self._reverse_dependencies:
+ self._update_node_state(node, cache)
+ self._refresh_state_observers()
+
+ def add_state_observer(self, observer):
+ """Add an observer of changes to the node-graph. The observer
+ is expected to have the following functions:
+
+ refresh(nodegraph):
+ Called when an observer has been added, or when 'refresh_states'
+ has been called on the nodegraph. The observer should rebuild any
+ internal state at this point.
+
+ state_changed(node, old_state, new_state, is_primary):
+ Called when the state of an node has changed. 'is_primary' is
+ True only if the node for which 'set_node_state' was called,
+ and false for nodes the state of which changed as a consequence
+ of the change to the node marked 'is_primary'. This includes
+ ERROR propegating, MetaNodes being DONE when all their subnodes
+ are DONE and more."""
+ self._state_observers.append(observer)
+ observer.refresh(self)
+
+ def _notify_state_observers(self, node, old_state, new_state, is_primary):
+ for observer in self._state_observers:
+ observer.state_changed(node, old_state, new_state, is_primary)
+
+ def _refresh_state_observers(self):
+ for observer in self._state_observers:
+ observer.refresh(self)
+
+ def _calculate_intersections(self, for_node):
+ def count_nodes(node, counts):
+ for node in self._reverse_dependencies[node]:
+ if node in counts:
+ counts[node] += 1
+ else:
+ counts[node] = 1
+ count_nodes(node, counts)
+ return counts
+
+ if for_node not in self._intersections:
+ counts = count_nodes(for_node, {})
+ for dependency in self._reverse_dependencies[for_node]:
+ counts[dependency] -= 1
+ self._intersections[for_node] = counts
+
+ return dict(self._intersections[for_node])
+
+ def _update_node_state(self, node, cache):
+ if node in self._states:
+ return self._states[node]
+
+ # Update sub-nodes before checking for fixed states
+ dependency_states = set((NodeGraph.DONE,))
+ for dependency in node.dependencies:
+ dependency_states.add(self._update_node_state(dependency, cache))
+
+ subnode_states = set()
+ for subnode in node.subnodes:
+ subnode_states.add(self._update_node_state(subnode, cache))
+
+ state = max(subnode_states | dependency_states)
+ if isinstance(node, MetaNode):
+ if (state < NodeGraph.ERROR):
+ # Mark a meta-node as running if a subnode is running
+ running_states = (NodeGraph.RUNNING in subnode_states)
+ if (state == NodeGraph.RUNABLE):
+ # MetaNodes cannot actually be run!
+ state = NodeGraph.QUEUED
+ if (state == NodeGraph.RUNNING) and not running_states:
+ # A dependency is running, don't inherit state
+ state = NodeGraph.QUEUED
+ elif running_states:
+ # Prevent RUNABLE/QUEUED/OUTDATED from taking precedence
+ state = NodeGraph.RUNNING
+ elif state == NodeGraph.DONE:
+ if not self._is_done(node, cache):
+ state = NodeGraph.RUNABLE
+ elif not cache.files_exist(node.input_files):
+ # Somehow the input files have gone missing, despite the
+ # dependant nodes being done; this implies this node is
+ # outdated, since the input-files should be re-generated, but
+ # obviously it is not possible to run it at this point.
+ missing = cache.missing_files(node.input_files)
+ self._logger.error("ERROR: Input file(s) missing for node; "
+ "may have been moved while the pipeline "
+ "was running. Cannot proceed:\n"
+ " Node = %s\n Files = %s\n"
+ % (node, "\n ".join(missing)))
+ state = NodeGraph.ERROR
+ elif self._is_outdated(node, cache):
+ state = NodeGraph.RUNABLE
+ elif state in (NodeGraph.RUNNING, NodeGraph.RUNABLE, NodeGraph.QUEUED):
+ if self._is_done(node, cache):
+ state = NodeGraph.OUTDATED
+ else:
+ state = NodeGraph.QUEUED
+ self._states[node] = state
+
+ return state
+
+ @classmethod
+ def _is_done(cls, node, cache):
+ """Returns true if the node itself is done; this only implies that the
+ output files generated by this node exists. Subnodes may still be left,
+ and the files themselves may be outdated.
+ """
+ return cache.files_exist(node.output_files)
+
+ @classmethod
+ def _is_outdated(cls, node, cache):
+ """Returns true if the output exists (is_done == True), but one or more
+ of the intput files appear to have been changed since the creation of
+ the output files (based on the timestamps). A node that lacks either
+ input or output files is never considered outdated.
+ """
+ if not (node.input_files and node.output_files):
+ return False
+
+ return cache.files_up_to_date(node.input_files, node.output_files)
+
+ @classmethod
+ def _check_required_executables(cls, nodes):
+ exec_filenames = set()
+ for node in nodes:
+ exec_filenames.update(node.executables)
+
+ missing_exec = missing_executables(exec_filenames)
+ if missing_exec:
+ raise NodeGraphError("Required executables are missing:\n\t%s"
+ % ("\n\t".join(sorted(missing_exec))))
+
+ @classmethod
+ def _check_version_requirements(cls, nodes):
+ exec_requirements = set()
+ for node in nodes:
+ exec_requirements.update(node.requirements)
+
+ def _key_func(reqobj):
+ # Sort priority in decreasing order, name in increasing order
+ return (-reqobj.priority, reqobj.name)
+ exec_requirements = list(sorted(exec_requirements, key=_key_func))
+
+ try:
+ for requirement in exec_requirements:
+ requirement()
+ except versions.VersionRequirementError, error:
+ raise NodeGraphError(error)
+ except OSError, error:
+ raise NodeGraphError("Could not check version for %s:\n\t%s"
+ % (requirement.name, error))
+
+ @classmethod
+ def _check_file_dependencies(cls, nodes):
+ files = ("input_files", "output_files")
+ files = dict((key, collections.defaultdict(set)) for key in files)
+ # Auxiliary files are treated as input files
+ files["auxiliary_files"] = files["input_files"]
+
+ for node in nodes:
+ for (attr, nodes_by_file) in files.iteritems():
+ for filename in getattr(node, attr):
+ nodes_by_file[filename].add(node)
+
+ max_messages = range(_MAX_ERROR_MESSAGES)
+ error_messages = []
+ error_messages.extend(zip(max_messages, cls._check_output_files(files["output_files"])))
+ error_messages.extend(zip(max_messages, cls._check_input_dependencies(files["input_files"],
+ files["output_files"], nodes)))
+
+ if error_messages:
+ messages = []
+ for (_, error) in error_messages:
+ for line in error.split("\n"):
+ messages.append("\t" + line)
+
+ raise NodeGraphError("Errors detected during graph construction (max %i shown):\n%s" \
+ % (_MAX_ERROR_MESSAGES * 2, "\n".join(messages)),)
+
+
+ @classmethod
+ def _check_output_files(cls, output_files):
+ """Checks dict of output files to nodes for cases where
+ multiple nodes create the same output file.
+
+ The directory component of paths are realized in order to
+ detect cases where nodes create the same file, but via
+ different paths (e.g. due to relative/absolute paths, or
+ due to use of symbolic links). Since output files are
+ replaced, not modified in place, it is not nessesary to
+ compare files themselves."""
+ dirpath_cache, real_output_files = {}, {}
+ for (filename, nodes) in output_files.iteritems():
+ dirpath = os.path.dirname(filename)
+ if dirpath not in dirpath_cache:
+ dirpath_cache[dirpath] = os.path.realpath(dirpath)
+
+ real_output_file = reroot_path(dirpath_cache[dirpath], filename)
+ real_output_files.setdefault(real_output_file, []).extend(nodes)
+
+ for (filename, nodes) in real_output_files.iteritems():
+ if (len(nodes) > 1):
+ nodes = _summarize_nodes(nodes)
+ yield "Multiple nodes create the same (clobber) output-file:" \
+ "\n\tFilename: %s\n\tNodes: %s" \
+ % (filename, "\n\t ".join(nodes))
+
+
+ @classmethod
+ def _check_input_dependencies(cls, input_files, output_files, nodes):
+ dependencies = cls._collect_dependencies(nodes, {})
+
+ for (filename, nodes) in sorted(input_files.items(), key = lambda v: v[0]):
+ if (filename in output_files):
+ producers = output_files[filename]
+ bad_nodes = set()
+ for consumer in nodes:
+ if not (producers & dependencies[consumer]):
+ bad_nodes.add(consumer)
+
+ if bad_nodes:
+ producer = iter(producers).next()
+ bad_nodes = _summarize_nodes(bad_nodes)
+ yield "Node depends on dynamically created file, but not on the node creating it:" + \
+ "\n\tFilename: %s\n\tCreated by: %s\n\tDependent node(s): %s" \
+ % (filename, producer, "\n\t ".join(bad_nodes))
+ elif not os.path.exists(filename):
+ nodes = _summarize_nodes(nodes)
+ yield "Required file does not exist, and is not created by a node:" + \
+ "\n\tFilename: %s\n\tDependent node(s): %s" \
+ % (filename, "\n\t ".join(nodes))
+
+
+ @classmethod
+ def _collect_dependencies(cls, nodes, dependencies):
+ for node in nodes:
+ if node not in dependencies:
+ subnodes = node.subnodes | node.dependencies
+ if not subnodes:
+ dependencies[node] = frozenset()
+ continue
+
+ cls._collect_dependencies(subnodes, dependencies)
+
+ collected = set(subnodes)
+ for subnode in subnodes:
+ collected.update(dependencies[subnode])
+ dependencies[node] = frozenset(collected)
+
+ return dependencies
+
+
+ @classmethod
+ def _collect_reverse_dependencies(cls, lst, rev_dependencies, processed):
+ for node in lst:
+ if node not in processed:
+ processed.add(node)
+
+ # Initialize default-dict
+ rev_dependencies[node] # pylint: disable=W0104
+
+ subnodes = node.dependencies | node.subnodes
+ for dependency in subnodes:
+ rev_dependencies[dependency].add(node)
+ cls._collect_reverse_dependencies(subnodes, rev_dependencies, processed)
+
+
+
+def _summarize_nodes(nodes):
+ nodes = list(sorted(set(map(str, nodes))))
+ if len(nodes) > 4:
+ nodes = nodes[:5] + ["and %i more nodes ..." % len(nodes)]
+ return nodes
diff --git a/pypeline/nodes/__init__.py b/pypeline/nodes/__init__.py
new file mode 100644
index 0000000..cd42802
--- /dev/null
+++ b/pypeline/nodes/__init__.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
diff --git a/pypeline/nodes/adapterremoval.py b/pypeline/nodes/adapterremoval.py
new file mode 100644
index 0000000..89e5b3c
--- /dev/null
+++ b/pypeline/nodes/adapterremoval.py
@@ -0,0 +1,318 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+
+from pypeline.node import \
+ CommandNode
+from pypeline.atomiccmd.command import \
+ AtomicCmd,\
+ CmdError
+from pypeline.atomiccmd.sets import \
+ ParallelCmds
+from pypeline.atomiccmd.builder import \
+ AtomicCmdBuilder, \
+ use_customizable_cli_parameters, \
+ create_customizable_cli_parameters
+from pypeline.nodes.validation import \
+ check_fastq_files
+
+import pypeline.common.utilities as utilities
+import pypeline.common.fileutils as fileutils
+import pypeline.common.versions as versions
+import pypeline.tools.factory as factory
+
+
+VERSION_14 = "1.4"
+_VERSION_14_CHECK = versions.Requirement(call=("AdapterRemoval", "--version"),
+ search=r"ver. (\d+)\.(\d+)",
+ checks=versions.EQ(1, 4))
+
+VERSION_15 = "1.5+"
+_VERSION_15_CHECK = versions.Requirement(call=("AdapterRemoval", "--version"),
+ search=r"ver. (\d+)\.(\d+)\.(\d+)",
+ checks=versions.GE(1, 5, 0))
+
+
+class SE_AdapterRemovalNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_files, output_prefix, output_format="bz2",
+ quality_offset=33, version=VERSION_15, dependencies=()):
+ # See below for parameters in common between SE/PE
+ cmd = _get_common_parameters(version)
+
+ # Uncompressed reads (piped from 'paleomix cat')
+ cmd.set_option("--file1", "%(TEMP_IN_READS)s")
+
+ # Prefix for output files
+ cmd.set_option("--basename", "%(TEMP_OUT_BASENAME)s")
+
+ # Quality offset for Phred (or similar) scores
+ assert quality_offset in (33, 64)
+ cmd.set_option("--qualitybase", quality_offset)
+
+ basename = os.path.basename(output_prefix)
+ cmd.set_kwargs(# Only settings file is saved, rest is temporary files
+ OUT_SETTINGS = output_prefix + ".settings",
+ TEMP_OUT_BASENAME = basename,
+
+ # Named pipe for uncompressed input (paleomix cat)
+ TEMP_IN_READS = "uncompressed_input",
+
+ # Named pipes for output of AdapterRemova
+ TEMP_OUT_LINK_1 = basename + ".truncated",
+ TEMP_OUT_LINK_2 = basename + ".discarded")
+
+ return {"basename" : basename,
+ "version" : version,
+ "command" : cmd}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._quality_offset = parameters.quality_offset
+ self._basename = parameters.basename
+ self._check_fastqs = _are_fastq_checks_required(parameters.version)
+
+ zcat = _build_cat_command(parameters.input_files, "uncompressed_input")
+ zip_truncated = _build_zip_command(parameters.output_format, parameters.output_prefix, ".truncated")
+ zip_discarded = _build_zip_command(parameters.output_format, parameters.output_prefix, ".discarded")
+ adapterrm = parameters.command.finalize()
+
+ commands = ParallelCmds([adapterrm, zip_discarded, zip_truncated, zcat])
+ CommandNode.__init__(self,
+ command = commands,
+ description = "<AdapterRM (SE): %s -> '%s.*'>" \
+ % (fileutils.describe_files(parameters.input_files),
+ parameters.output_prefix),
+ dependencies = parameters.dependencies)
+
+ def _setup(self, config, temp):
+ if self._check_fastqs:
+ check_fastq_files(self.input_files, self._quality_offset)
+
+ os.mkfifo(os.path.join(temp, self._basename + ".truncated"))
+ os.mkfifo(os.path.join(temp, self._basename + ".discarded"))
+ os.mkfifo(os.path.join(temp, "uncompressed_input"))
+
+ CommandNode._setup(self, config, temp)
+
+
+class PE_AdapterRemovalNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_files_1, input_files_2, output_prefix,
+ quality_offset=33, output_format="bz2", collapse=True,
+ version=VERSION_15, dependencies=()):
+ cmd = _get_common_parameters(version)
+
+ # Uncompressed mate 1 and 2 reads (piped from 'paleomix cat')
+ cmd.set_option("--file1", "%(TEMP_IN_READS_1)s")
+ cmd.set_option("--file2", "%(TEMP_IN_READS_2)s")
+
+ # Prefix for output files, ensure that all end up in temp folder
+ cmd.set_option("--basename", "%(TEMP_OUT_BASENAME)s")
+
+ # Quality offset for Phred (or similar) scores
+ assert quality_offset in (33, 64)
+ cmd.set_option("--qualitybase", quality_offset)
+
+
+ # Output files are explicity specified, to ensure that the order is
+ # the same here as below. A difference in the order in which files are
+ # opened can cause a deadlock, due to the use of named pipes
+ # (see __init__).
+ cmd.set_option("--output1", "%(TEMP_OUT_LINK_PAIR1)s")
+ cmd.set_option("--output2", "%(TEMP_OUT_LINK_PAIR2)s")
+
+ if collapse:
+ cmd.set_option("--collapse")
+ cmd.set_option("--outputcollapsed", "%(TEMP_OUT_LINK_ALN)s")
+ if version == VERSION_15:
+ cmd.set_option("--outputcollapsedtruncated",
+ "%(TEMP_OUT_LINK_ALN_TRUNC)s")
+
+ cmd.set_option("--singleton", "%(TEMP_OUT_LINK_UNALN)s")
+ cmd.set_option("--discarded", "%(TEMP_OUT_LINK_DISC)s")
+
+ basename = os.path.basename(output_prefix)
+ cmd.set_kwargs(# Only settings file is saved, rest is temporary files
+ OUT_SETTINGS=output_prefix + ".settings",
+ TEMP_OUT_BASENAME=basename,
+
+ # Named pipes for uncompressed input (paleomix cat)
+ TEMP_IN_READS_1="uncompressed_input_1",
+ TEMP_IN_READS_2="uncompressed_input_2",
+
+ # Named pipes for output of AdapterRemoval
+ TEMP_OUT_LINK_PAIR1=basename + ".pair1.truncated",
+ TEMP_OUT_LINK_PAIR2=basename + ".pair2.truncated",
+ TEMP_OUT_LINK_DISC=basename + ".discarded")
+
+ if version == VERSION_15:
+ cmd.set_kwargs(TEMP_OUT_LINK_ALN=basename + ".collapsed",
+ TEMP_OUT_LINK_ALN_TRUNC=basename + ".collapsed.truncated",
+ TEMP_OUT_LINK_UNALN=basename + ".singleton.truncated")
+ elif version == VERSION_14:
+ cmd.set_kwargs(TEMP_OUT_LINK_ALN=basename + ".singleton.aln.truncated",
+ TEMP_OUT_LINK_UNALN=basename + ".singleton.unaln.truncated")
+ else:
+ assert False
+
+ return {"basename": basename,
+ "command": cmd}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._quality_offset = parameters.quality_offset
+ self._version = parameters.version
+ self._basename = parameters.basename
+ self._collapse = parameters.collapse
+ self._check_fastqs = _are_fastq_checks_required(parameters.version)
+ if len(parameters.input_files_1) != len(parameters.input_files_2):
+ raise CmdError("Number of mate 1 files differ from mate 2 files: "
+ "%i != %i" % (len(parameters.input_files_1),
+ len(parameters.input_files_2)))
+
+ zcat_pair_1 = _build_cat_command(parameters.input_files_1, "uncompressed_input_1")
+ zcat_pair_2 = _build_cat_command(parameters.input_files_2, "uncompressed_input_2")
+ zip_pair_1 = _build_zip_command(parameters.output_format, parameters.output_prefix, ".pair1.truncated")
+ zip_pair_2 = _build_zip_command(parameters.output_format, parameters.output_prefix, ".pair2.truncated")
+ zip_discarded = _build_zip_command(parameters.output_format, parameters.output_prefix, ".discarded")
+ adapterrm = parameters.command.finalize()
+
+ commands = [adapterrm, zip_pair_1, zip_pair_2]
+ if parameters.version == VERSION_15:
+ zip_unaligned = _build_zip_command(parameters.output_format, parameters.output_prefix, ".singleton.truncated")
+ if parameters.collapse:
+ zip_aln = _build_zip_command(parameters.output_format, parameters.output_prefix, ".collapsed")
+ zip_aln_trunc = _build_zip_command(parameters.output_format, parameters.output_prefix, ".collapsed.truncated")
+ commands += [zip_aln, zip_aln_trunc, zip_unaligned]
+ else:
+ commands += [zip_unaligned]
+ else:
+ zip_aln = _build_zip_command(parameters.output_format, parameters.output_prefix, ".singleton.aln.truncated")
+ zip_unaligned = _build_zip_command(parameters.output_format, parameters.output_prefix, ".singleton.unaln.truncated")
+ commands += [zip_aln, zip_unaligned]
+ commands += [zip_discarded, zcat_pair_1, zcat_pair_2]
+ commands = ParallelCmds(commands)
+
+ description = "<AdapterRM (PE): %s -> '%s.*'>" \
+ % (fileutils.describe_paired_files(parameters.input_files_1,
+ parameters.input_files_2),
+ parameters.output_prefix)
+
+ CommandNode.__init__(self,
+ command=commands,
+ description=description,
+ dependencies=parameters.dependencies)
+
+ def _setup(self, config, temp):
+ if self._check_fastqs:
+ check_fastq_files(self.input_files, self._quality_offset)
+
+ os.mkfifo(os.path.join(temp, self._basename + ".discarded"))
+ os.mkfifo(os.path.join(temp, self._basename + ".pair1.truncated"))
+ os.mkfifo(os.path.join(temp, self._basename + ".pair2.truncated"))
+ os.mkfifo(os.path.join(temp, "uncompressed_input_1"))
+ os.mkfifo(os.path.join(temp, "uncompressed_input_2"))
+
+ if self._version == VERSION_15:
+ if self._collapse:
+ os.mkfifo(os.path.join(temp, self._basename + ".collapsed"))
+ os.mkfifo(os.path.join(temp, self._basename + ".collapsed.truncated"))
+ os.mkfifo(os.path.join(temp, self._basename + ".singleton.truncated"))
+ else:
+ os.mkfifo(os.path.join(temp, self._basename + ".singleton.aln.truncated"))
+ os.mkfifo(os.path.join(temp, self._basename + ".singleton.unaln.truncated"))
+
+ CommandNode._setup(self, config, temp)
+
+
+def _build_cat_command(input_files, output_file):
+ cat = factory.new("cat")
+ cat.set_option("--output", "%(TEMP_OUT_CAT)s")
+ cat.set_kwargs(TEMP_OUT_CAT=output_file)
+ cat.add_multiple_values(input_files)
+
+ return cat.finalize()
+
+
+def _build_zip_command(output_format, prefix, name, output=None):
+ if output_format not in ("gz", "bz2"):
+ message = "Invalid output-format (%r), please select 'gz' or 'bz2'"
+ raise CmdError(message % (output_format,))
+
+ basename = os.path.basename(prefix)
+ compress = factory.new("zip")
+ compress.set_option("--format", output_format)
+ compress.add_value("%(TEMP_IN_PIPE)s")
+ compress.set_kwargs(TEMP_IN_PIPE=basename + name,
+ OUT_STDOUT=prefix + (output or name) + "." + output_format)
+
+ return compress.finalize()
+
+
+_DEPRECATION_WARNING_PRINTED = False
+
+
+def _get_common_parameters(version):
+ global _DEPRECATION_WARNING_PRINTED
+
+ if version == VERSION_14:
+ version_check = _VERSION_14_CHECK
+ elif version == VERSION_15:
+ version_check = _VERSION_15_CHECK
+ else:
+ raise CmdError("Unknown version: %s" % version)
+
+ cmd = AtomicCmdBuilder("AdapterRemoval",
+ CHECK_VERSION=version_check)
+
+ # Trim Ns at read ends
+ cmd.set_option("--trimns", fixed=False)
+ # Trim low quality scores
+ cmd.set_option("--trimqualities", fixed=False)
+
+ try:
+ if not _DEPRECATION_WARNING_PRINTED and version_check.version < (2, 0):
+ import pypeline.ui as ui
+ ui.print_warn("\nWARNING: AdapterRemoval v1.5.x is deprecated;")
+ ui.print_warn(" Upgrading to 2.1.x is strongly adviced!\n")
+ ui.print_warn(" Download the newest version of AdapterRemoval at ")
+ ui.print_warn(" https://github.com/MikkelSchubert/adapterremoval\n")
+
+ _DEPRECATION_WARNING_PRINTED = True
+ except versions.VersionRequirementError:
+ pass
+
+ return cmd
+
+
+def _are_fastq_checks_required(version):
+ if version == VERSION_14:
+ return True
+ elif version == VERSION_15:
+ try:
+ return _VERSION_15_CHECK.version < (2, 0)
+ except versions.VersionRequirementError:
+ return True
+ else:
+ raise CmdError("Unknown version: %s" % version)
diff --git a/pypeline/nodes/bedtools.py b/pypeline/nodes/bedtools.py
new file mode 100644
index 0000000..67d4342
--- /dev/null
+++ b/pypeline/nodes/bedtools.py
@@ -0,0 +1,63 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from pypeline.node import CommandNode
+from pypeline.atomiccmd.command import AtomicCmd
+
+import pypeline.common.versions as versions
+
+
+BEDTOOLS_VERSION = versions.Requirement(call = ("bedtools", "--version"),
+ search = r"bedtools v?(\d+)\.(\d+)\.(\d+)",
+ checks = versions.GE(2, 15, 0))
+
+
+
+
+class SlopBedNode(CommandNode):
+ def __init__(self, infile, outfile, genome, from_start = 0, from_end = 0, strand_relative = False, dependencies = ()):
+ if type(from_start) != type(from_end):
+ raise ValueError("'from_start' and 'from_end' should be of same type!")
+
+ call = ["bedtools", "slop",
+ "-i", "%(IN_FILE)s",
+ "-g", "%(IN_GENOME)s",
+ "-l", str(from_start),
+ "-r", str(from_end)]
+
+ if strand_relative:
+ call.append("-s")
+ if type(from_start) is float:
+ call.append("-pct")
+
+ command = AtomicCmd(call,
+ IN_FILE = infile,
+ IN_GENOME = genome,
+ OUT_STDOUT = outfile,
+ CHECK_VERSION = BEDTOOLS_VERSION)
+
+ description = "<SlopBed: '%s' -> '%s'>" % (infile, outfile)
+
+ CommandNode.__init__(self,
+ description = description,
+ command = command,
+ dependencies = dependencies)
diff --git a/pypeline/nodes/bowtie2.py b/pypeline/nodes/bowtie2.py
new file mode 100644
index 0000000..4015326
--- /dev/null
+++ b/pypeline/nodes/bowtie2.py
@@ -0,0 +1,133 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+
+from pypeline.node import CommandNode, NodeError
+from pypeline.atomiccmd.command import AtomicCmd
+from pypeline.atomiccmd.builder import \
+ AtomicCmdBuilder, \
+ use_customizable_cli_parameters, \
+ create_customizable_cli_parameters
+from pypeline.atomiccmd.sets import \
+ ParallelCmds
+from pypeline.nodes.bwa import \
+ _get_node_description, \
+ _process_output, \
+ _get_max_threads
+
+import pypeline.common.versions as versions
+
+
+
+BOWTIE2_VERSION = versions.Requirement(call = ("bowtie2", "--version"),
+ search = r"version (\d+)\.(\d+)\.(\d+)",
+ checks = versions.GE(2, 1, 0))
+
+
+
+class Bowtie2IndexNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_file, prefix = None, dependencies = ()):
+ prefix = prefix if prefix else input_file
+ params = _bowtie2_template(("bowtie2-build"), prefix, iotype = "OUT",
+ IN_FILE = input_file,
+ TEMP_OUT_PREFIX = os.path.basename(prefix),
+ CHECK_VERSION = BOWTIE2_VERSION)
+ params.add_value("%(IN_FILE)s")
+ # Destination prefix, in temp folder
+ params.add_value("%(TEMP_OUT_PREFIX)s")
+
+ return {"prefix" : prefix,
+ "command" : params,
+ "dependencies" : dependencies}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ command = parameters.command.finalize()
+ description = "<Bowtie2 Index '%s' -> '%s.*'>" % (parameters.input_file,
+ parameters.prefix)
+ CommandNode.__init__(self,
+ command = command,
+ description = description,
+ dependencies = parameters.dependencies)
+
+
+
+class Bowtie2Node(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_file_1, input_file_2, output_file, reference, prefix, threads = 2, dependencies = ()):
+ aln = _bowtie2_template(("bowtie2",), prefix,
+ IN_FILE_1 = input_file_1,
+ # Setting IN_FILE_2 to None makes AtomicCmd ignore this key
+ IN_FILE_2 = input_file_2 or None,
+ OUT_STDOUT = AtomicCmd.PIPE,
+ CHECK_VERSION = BOWTIE2_VERSION)
+ aln.set_option("-x", prefix)
+
+ if input_file_1 and not input_file_2:
+ aln.set_option("-U", "%(IN_FILE_1)s")
+ elif input_file_1 and input_file_2:
+ aln.set_option("-1", "%(IN_FILE_1)s")
+ aln.set_option("-2", "%(IN_FILE_2)s")
+ else:
+ raise NodeError("Input 1, OR both input 1 and input 2 must be specified for Bowtie2 node")
+
+ max_threads = _get_max_threads(reference, threads)
+ aln.set_option("--threads", max_threads)
+
+ order, commands = _process_output(aln, output_file, reference, run_fixmate = (input_file_1 and input_file_2))
+ commands["aln"] = aln
+
+ return {"commands" : commands,
+ "order" : ["aln"] + order,
+ "threads" : max_threads,
+ "dependencies" : dependencies}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ command = ParallelCmds([parameters.commands[key].finalize() for key in parameters.order])
+
+ algorithm = "PE" if parameters.input_file_2 else "SE"
+ description = _get_node_description(name = "Bowtie2",
+ algorithm = algorithm,
+ input_files_1 = parameters.input_file_1,
+ input_files_2 = parameters.input_file_2,
+ prefix = parameters.prefix,
+ threads = parameters.threads)
+
+ CommandNode.__init__(self,
+ command = command,
+ description = description,
+ threads = parameters.threads,
+ dependencies = parameters.dependencies)
+
+
+def _bowtie2_template(call, prefix, iotype = "IN", **kwargs):
+ params = AtomicCmdBuilder(call, **kwargs)
+ for postfix in ("1.bt2", "2.bt2", "3.bt2", "4.bt2", "rev.1.bt2", "rev.2.bt2"):
+ key = "%s_PREFIX_%s" % (iotype, postfix.upper())
+ params.set_kwargs(**{key : (prefix + "." + postfix)})
+
+ return params
diff --git a/pypeline/nodes/bwa.py b/pypeline/nodes/bwa.py
new file mode 100644
index 0000000..63233fb
--- /dev/null
+++ b/pypeline/nodes/bwa.py
@@ -0,0 +1,439 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import types
+
+from pypeline.node import CommandNode, NodeError
+from pypeline.atomiccmd.command import AtomicCmd
+from pypeline.atomiccmd.builder import \
+ AtomicCmdBuilder, \
+ use_customizable_cli_parameters, \
+ create_customizable_cli_parameters
+
+from pypeline.atomiccmd.sets import ParallelCmds
+from pypeline.nodes.samtools import SAMTOOLS_VERSION
+from pypeline.common.fileutils import \
+ describe_paired_files, \
+ missing_files
+
+import pypeline.common.versions as versions
+import pypeline.tools.factory as factory
+
+
+BWA_VERSION = versions.Requirement(call = ("bwa",),
+ search = r"Version: (\d+)\.(\d+)\.(\d+)",
+ checks = versions.Or(versions.EQ(0, 5, 9),
+ versions.EQ(0, 5, 10),
+ versions.EQ(0, 6, 2),
+ versions.GE(0, 7, 9)))
+
+BWA_VERSION_07x = versions.Requirement(call = ("bwa",),
+ search = r"Version: (\d+)\.(\d+)\.(\d+)",
+ checks = versions.GE(0, 7, 9))
+
+
+
+class BWAIndexNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_file, prefix = None, dependencies = ()):
+ prefix = prefix if prefix else input_file
+ params = _get_bwa_template(("bwa", "index"), prefix, iotype = "OUT",
+ IN_FILE = input_file,
+ TEMP_OUT_PREFIX = os.path.basename(prefix),
+ CHECK_BWA = BWA_VERSION)
+
+ # Input fasta sequence
+ params.add_value("%(IN_FILE)s")
+ # Destination prefix, in temp folder
+ params.set_option("-p", "%(TEMP_OUT_PREFIX)s")
+
+ return {"prefix" : prefix,
+ "command" : params,
+ "dependencies" : dependencies}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ command = parameters.command.finalize()
+ description = "<BWA Index '%s' -> '%s.*'>" % (parameters.input_file,
+ parameters.prefix)
+ CommandNode.__init__(self,
+ command = command,
+ description = description,
+ dependencies = parameters.dependencies)
+
+
+def BWANode(input_file_1, input_file_2=None, algorithm="backtrack", **kwargs):
+ if algorithm == "backtrack":
+ if input_file_1 and input_file_2:
+ return PEBWANode.customize(input_file_1 = input_file_1,
+ input_file_2 = input_file_2,
+ **kwargs)
+ elif input_file_1 and not input_file_2:
+ return SEBWANode.customize(input_file = input_file_1,
+ **kwargs)
+ else:
+ assert False, "Neither input_file_1 nor input_file_2 set"
+ else:
+ return BWAAlgorithmNode.customize(input_file_1=input_file_1,
+ input_file_2=input_file_2,
+ algorithm=algorithm,
+ **kwargs)
+
+
+class SEBWANode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_file, output_file, reference, prefix, threads = 1, dependencies = ()):
+ threads = _get_max_threads(reference, threads)
+
+ aln_in = _build_cat_command(input_file, "uncompressed_input_aln")
+ aln = _get_bwa_template(("bwa", "aln"), prefix,
+ TEMP_IN_FILE = "uncompressed_input_aln",
+ OUT_STDOUT = AtomicCmd.PIPE,
+ CHECK_BWA = BWA_VERSION)
+ aln.add_value(prefix)
+ aln.add_value("%(TEMP_IN_FILE)s")
+ aln.set_option("-t", threads)
+
+ samse_in = _build_cat_command(input_file, "uncompressed_input_samse")
+ samse = _get_bwa_template(("bwa", "samse"), prefix,
+ IN_STDIN = aln,
+ TEMP_IN_FILE = "uncompressed_input_samse",
+ OUT_STDOUT = AtomicCmd.PIPE,
+ CHECK_BWA = BWA_VERSION)
+ samse.add_value(prefix)
+ samse.add_value("-")
+ samse.add_value("%(TEMP_IN_FILE)s")
+
+ order, commands = _process_output(samse, output_file, reference)
+ commands["sam_in"] = samse_in
+ commands["sam"] = samse
+ commands["aln_in"] = aln_in
+ commands["aln"] = aln
+
+ return {"commands" : commands,
+ "order" : ["aln_in", "aln", "sam_in", "sam"] + order,
+ "threads" : threads,
+ "dependencies" : dependencies}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ _check_bwa_prefix(parameters.prefix)
+ command = ParallelCmds([parameters.commands[key].finalize() for key in parameters.order])
+ description = _get_node_description(name = "BWA",
+ algorithm = "SE",
+ input_files_1 = (parameters.input_file,),
+ input_files_2 = (),
+ prefix = parameters.prefix,
+ threads = parameters.threads)
+
+ CommandNode.__init__(self,
+ command = command,
+ description = description,
+ threads = parameters.threads,
+ dependencies = parameters.dependencies)
+
+
+ def _setup(self, _config, temp):
+ os.mkfifo(os.path.join(temp, "uncompressed_input_aln"))
+ os.mkfifo(os.path.join(temp, "uncompressed_input_samse"))
+
+
+class PEBWANode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_file_1, input_file_2, output_file, reference, prefix, threads = 2, dependencies = ()):
+ threads = _get_max_threads(reference, threads)
+
+ aln_commands, aln_in_commands = \
+ cls._create_aln_cmds(prefix, input_file_1, input_file_2, threads)
+
+ sampe_in_1 = _build_cat_command(input_file_1, "uncompressed_input_sampe_1")
+ sampe_in_2 = _build_cat_command(input_file_2, "uncompressed_input_sampe_2")
+ sampe = cls._create_sampe_cmd(prefix)
+
+ order, commands = _process_output(sampe, output_file, reference, run_fixmate = True)
+ commands["sam"] = sampe
+ commands["sam_in_1"] = sampe_in_1
+ commands["sam_in_2"] = sampe_in_2
+ commands["aln_in_1"], commands["aln_in_2"] = aln_in_commands
+ commands["aln_1"], commands["aln_2"] = aln_commands
+
+ return {"commands" : commands,
+ "order" : ["aln_in_1", "aln_1",
+ "aln_in_2", "aln_2",
+ "sam_in_1", "sam_in_2", "sam"] + order,
+ # At least one thread per 'aln' process
+ "threads" : max(2, threads),
+ "dependencies" : dependencies}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ _check_bwa_prefix(parameters.prefix)
+ command = ParallelCmds([parameters.commands[key].finalize() for key in parameters.order])
+
+ description = _get_node_description(name = "BWA",
+ algorithm = "PE",
+ input_files_1 = parameters.input_file_1,
+ input_files_2 = parameters.input_file_2,
+ prefix = parameters.prefix,
+ threads = parameters.threads)
+
+ CommandNode.__init__(self,
+ command = command,
+ description = description,
+ threads = parameters.threads,
+ dependencies = parameters.dependencies)
+
+
+ def _setup(self, _config, temp):
+ os.mkfifo(os.path.join(temp, "uncompressed_input_aln_1"))
+ os.mkfifo(os.path.join(temp, "uncompressed_input_aln_2"))
+ os.mkfifo(os.path.join(temp, "uncompressed_input_sampe_1"))
+ os.mkfifo(os.path.join(temp, "uncompressed_input_sampe_2"))
+ os.mkfifo(os.path.join(temp, "pair_1.sai"))
+ os.mkfifo(os.path.join(temp, "pair_2.sai"))
+
+
+ @classmethod
+ def _create_aln_cmds(cls, prefix, input_file_1, input_file_2, threads):
+ alns, aln_ins = [], []
+ for (iindex, filename) in enumerate((input_file_1, input_file_2), start = 1):
+ aln_in = _build_cat_command(filename, "uncompressed_input_aln_%i" % iindex)
+ aln = _get_bwa_template(("bwa", "aln"), prefix,
+ TEMP_IN_FILE = "uncompressed_input_aln_%i" % iindex,
+ OUT_STDOUT = AtomicCmd.PIPE,
+ TEMP_OUT_SAI = "pair_%i.sai" % iindex,
+ CHECK_BWA = BWA_VERSION)
+ aln.set_option("-f", "%(TEMP_OUT_SAI)s")
+ aln.set_option("-t", max(1, threads // 2))
+ aln.add_value(prefix)
+ aln.add_value("%(TEMP_IN_FILE)s")
+ aln_ins.append(aln_in)
+ alns.append(aln)
+ return alns, aln_ins
+
+
+ @classmethod
+ def _create_sampe_cmd(cls, prefix):
+ sampe = _get_bwa_template(("bwa", "sampe"), prefix,
+ TEMP_IN_FILE_1 = "uncompressed_input_sampe_1",
+ TEMP_IN_FILE_2 = "uncompressed_input_sampe_2",
+ TEMP_IN_SAI_1 = "pair_1.sai",
+ TEMP_IN_SAI_2 = "pair_2.sai",
+ OUT_STDOUT = AtomicCmd.PIPE,
+ CHECK_BWA = BWA_VERSION)
+ sampe.add_value(prefix)
+ sampe.add_value("%(TEMP_IN_SAI_1)s")
+ sampe.add_value("%(TEMP_IN_SAI_2)s")
+ sampe.add_value("%(TEMP_IN_FILE_1)s")
+ sampe.add_value("%(TEMP_IN_FILE_2)s")
+ sampe.set_option("-P", fixed = False)
+
+ return sampe
+
+
+class BWAAlgorithmNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_file_1, output_file, reference, prefix,
+ input_file_2=None, threads=1, algorithm="mem",
+ dependencies=()):
+ assert algorithm in ("mem", "bwasw"), algorithm
+ threads = _get_max_threads(reference, threads)
+
+ zcat_1 = _build_cat_command(input_file_1, "uncompressed_input_1")
+ aln = _get_bwa_template(("bwa", algorithm), prefix,
+ TEMP_IN_FILE_1="uncompressed_input_1",
+ OUT_STDOUT=AtomicCmd.PIPE,
+ CHECK_BWA=BWA_VERSION_07x)
+ aln.add_value(prefix)
+ aln.add_value("%(TEMP_IN_FILE_1)s")
+
+ _, commands = _process_output(aln, output_file, reference)
+ commands["aln"] = aln
+ commands["zcat_1"] = zcat_1
+ if input_file_2:
+ aln.add_value("%(TEMP_IN_FILE_2)s")
+ aln.set_kwargs(**{"TEMP_IN_FILE_2": "uncompressed_input_2"})
+ zcat_2 = _build_cat_command(input_file_2, "uncompressed_input_2")
+ commands["zcat_2"] = zcat_2
+ else:
+ # Ensure that the pipe is automatically removed
+ aln.set_kwargs(**{"TEMP_OUT_FILE_2": "uncompressed_input_2"})
+
+ aln.set_option("-t", threads)
+ # Mark alternative hits as secondary; required by e.g. Picard
+ aln.set_option("-M")
+
+ commands["aln"] = aln
+ return {"commands": commands,
+ "threads": threads,
+ "dependencies": dependencies}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ _check_bwa_prefix(parameters.prefix)
+ algorithm = parameters.algorithm.upper()
+ algorithm += "_PE" if parameters.input_file_2 else "_SE"
+ description = _get_node_description(name="BWA",
+ algorithm=algorithm,
+ input_files_1=parameters.input_file_1,
+ input_files_2=parameters.input_file_2,
+ prefix=parameters.prefix)
+
+ command = ParallelCmds([cmd.finalize()
+ for cmd in parameters.commands.itervalues()])
+ CommandNode.__init__(self,
+ command=command,
+ description=description,
+ threads=parameters.threads,
+ dependencies=parameters.dependencies)
+
+ def _setup(self, _config, temp):
+ os.mkfifo(os.path.join(temp, "uncompressed_input_1"))
+ os.mkfifo(os.path.join(temp, "uncompressed_input_2"))
+
+
+
+def _process_output(stdin, output_file, reference, run_fixmate=False):
+ convert = factory.new("cleanup")
+ convert.set_option("--fasta", "%(IN_FASTA_REF)s")
+ convert.set_option("--temp-prefix", "%(TEMP_OUT_PREFIX)s")
+ convert.set_kwargs(IN_STDIN=stdin,
+ IN_FASTA_REF=reference,
+ OUT_STDOUT=output_file,
+ TEMP_OUT_PREFIX="bam_cleanup",
+ CHECK_SAMTOOLS=SAMTOOLS_VERSION)
+
+ if run_fixmate:
+ convert.set_option('--paired-ended')
+
+ return ["convert"], {"convert": convert}
+
+
+
+def _get_bwa_template(call, prefix, iotype = "IN", **kwargs):
+ extensions = ["amb", "ann", "bwt", "pac", "sa"]
+ try:
+ if BWA_VERSION.version < (0, 6, 0):
+ extensions.extend(("rbwt", "rpac", "rsa"))
+ except versions.VersionRequirementError:
+ pass # Ignored here, handled elsewhere
+
+ params = AtomicCmdBuilder(call, **kwargs)
+ for postfix in extensions:
+ key = "%s_PREFIX_%s" % (iotype, postfix.upper())
+ params.set_kwargs(**{key : (prefix + "." + postfix)})
+
+ return params
+
+
+def _get_max_threads(reference, threads):
+ """Returns the maximum number of threads to use when mapping against a
+ given reference sequence. This is done since very little gain is obtained
+ when using multiple threads for a small genome (e.g. < 1MB). If the
+ reference falls below this size, only 1 thread is used (returned),
+ otherwise the requested number of threads is returned.
+ """
+ if reference not in _PREFIX_SIZE_CACHE:
+ if not os.path.exists(reference):
+ _PREFIX_SIZE_CACHE[reference] = None
+ else:
+ _PREFIX_SIZE_CACHE[reference] = os.path.getsize(reference)
+
+ prefix_size = _PREFIX_SIZE_CACHE[reference]
+ if prefix_size is None or prefix_size >= 2 ** 20: # > 1 MB
+ return threads
+ return 1
+_PREFIX_SIZE_CACHE = {}
+
+
+def _check_bwa_prefix(prefix):
+ """Checks that a given prefix is compatible with the currently
+ installed version of BWA. This is required in order to allow
+ auto-indexing of prefixes, as indexes produced by v0.5.x and
+ by 0.6+ are not only incompatible, but differs in the files
+ produced, with 0.5.x producing a handful of additional files.
+
+ As a consequence, simply using normal input-file dependencies
+ would result in prefixes being re-indexed if the version of
+ BWA was changed from 0.6+ to 0.5.x, and in failures during
+ runtime if the version was changed from 0.5.x to 0.6+.
+
+ This function treats that a difference in the version of BWA
+ installed and the version implied by the prefix files is an
+ error, and therefore requires user intervention."""
+ if prefix in _PREFIXES_CHECKED:
+ return
+ _PREFIXES_CHECKED.add(prefix)
+
+ try:
+ bwa_version = BWA_VERSION.version
+ except versions.VersionRequirementError:
+ return # Ignored here, reported elsewhere
+
+ # Files unique to v0.5.x
+ v05x_files = set((prefix + ext) for ext in (".rbwt", ".rpac", ".rsa"))
+ # Files common to v0.5.x, v0.6.x, and v0.7.x
+ common_files = set((prefix + ext) for ext in (".amb", ".ann", ".bwt", ".pac", ".sa"))
+ all_files = v05x_files | common_files
+ current_files = all_files - set(missing_files(all_files))
+
+ expected_version = None
+ if (current_files & common_files):
+ if bwa_version >= (0, 6, 0):
+ if (current_files & v05x_files):
+ expected_version = "v0.5.x"
+ elif bwa_version < (0, 6, 0):
+ if not (current_files & v05x_files):
+ expected_version = "v0.6.x or later"
+
+ if expected_version:
+ raise NodeError("BWA version is v%s, but prefix appears to be created using %s!\n"
+ " Your copy of BWA may have changed, or you may be using the wrong\n"
+ " prefix. To resolve this issue, either change your prefix, re-install\n"
+ " BWA %s, or remove the prefix files at\n"
+ " $ ls %s.*" \
+ % (".".join(map(str, bwa_version)), expected_version, expected_version, prefix))
+_PREFIXES_CHECKED = set()
+
+
+def _build_cat_command(input_file, output_file):
+ cat = factory.new("cat")
+ cat.set_option("--output", "%(TEMP_OUT_CAT)s")
+ cat.add_value("%(IN_ARCHIVE)s")
+ cat.set_kwargs(TEMP_OUT_CAT=output_file,
+ IN_ARCHIVE=input_file)
+ return cat
+
+
+def _get_node_description(name, algorithm, input_files_1, input_files_2 = (), prefix = None, threads = 1):
+ threads_str = ("%i threads" % (threads,)) if (threads > 1) else None
+ prefix_str = os.path.basename(prefix) if prefix else None
+ if prefix_str.endswith(".fasta") or prefix_str.endswith(".fa"):
+ prefix_str = prefix_str.rsplit(".", 1)[0]
+ file_desc = describe_paired_files(input_files_1, input_files_2 or ())
+ info = ", ".join(filter(None, (prefix_str, algorithm, threads_str)))
+
+ return "<%s (%s): %s>" % (name, info, file_desc)
diff --git a/pypeline/nodes/examl.py b/pypeline/nodes/examl.py
new file mode 100644
index 0000000..c34a40f
--- /dev/null
+++ b/pypeline/nodes/examl.py
@@ -0,0 +1,290 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2013 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import re
+import glob
+import random
+
+import pypeline.common.fileutils as fileutils
+import pypeline.common.versions as versions
+
+from pypeline.node import CommandNode
+from pypeline.atomiccmd.builder import \
+ AtomicCmdBuilder, \
+ AtomicMPICmdBuilder, \
+ use_customizable_cli_parameters, \
+ create_customizable_cli_parameters
+
+
+from pypeline.nodegraph import \
+ FileStatusCache
+
+
+EXAML_VERSION = versions.Requirement(call = ("examl", "-version"),
+ search = r"version (\d+)\.(\d+)\.(\d+)",
+ checks = versions.GE(1, 0, 5))
+
+PARSER_VERSION = versions.Requirement(call = ("examlParser", "-h"),
+ search = r"version (\d+)\.(\d+)\.(\d+)",
+ checks = versions.GE(1, 0, 2))
+
+
+class ExaMLParserNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_alignment, input_partition, output_file, dependencies = ()):
+ """
+ Arguments:
+ input_alignment -- An alignment file in a format readable by RAxML.
+ input_partition -- A set of partitions in a format readable by RAxML.
+ output_filename -- Filename for the output binary sequence."""
+
+ command = AtomicCmdBuilder("examlParser", set_cwd = True)
+
+ command.set_option("-s", "%(TEMP_OUT_ALN)s")
+ command.set_option("-q", "%(TEMP_OUT_PART)s")
+ # Output file will be named output.binary, and placed in the CWD
+ command.set_option("-n", "output")
+
+ # Substitution model
+ command.set_option("-m", "DNA", fixed = False)
+
+
+ command.set_kwargs(# Auto-delete: Symlinks
+ TEMP_OUT_PART = os.path.basename(input_partition),
+ TEMP_OUT_ALN = os.path.basename(input_alignment),
+
+ # Input files, are not used directly (see below)
+ IN_ALIGNMENT = input_alignment,
+ IN_PARTITION = input_partition,
+
+ # Final output file, are not created directly
+ OUT_BINARY = output_file,
+
+ CHECK_EXAML = PARSER_VERSION)
+
+ return {"command" : command}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._symlinks = [os.path.abspath(parameters.input_alignment),
+ os.path.abspath(parameters.input_partition)]
+ self._output_file = os.path.basename(parameters.output_file)
+
+
+ CommandNode.__init__(self,
+ command = parameters.command.finalize(),
+ description = "<ExaMLParser: '%s' -> '%s'>" \
+ % (parameters.input_alignment, parameters.output_file),
+ dependencies = parameters.dependencies)
+
+
+ def _setup(self, config, temp):
+ CommandNode._setup(self, config, temp)
+
+ # Required to avoid the creation of files outside the temp folder
+ for filename in self._symlinks:
+ source = os.path.abspath(filename)
+ destination = os.path.join(temp, os.path.basename(filename))
+
+ os.symlink(source, destination)
+
+
+ def _teardown(self, config, temp):
+ os.remove(os.path.join(temp, "RAxML_info.output"))
+
+ source = os.path.join(temp, "output.binary")
+ destination = fileutils.reroot_path(temp, self._output_file)
+ fileutils.move_file(source, destination)
+
+ CommandNode._teardown(self, config, temp)
+
+
+class ExaMLNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_binary, initial_tree, output_template, threads = 1, dependencies = ()):
+ """
+ Arguments:
+ input_binary -- A binary alignment file in a format readable by ExaML.
+ output_template -- A template string used to construct final filenames. Should consist
+ of a full path, including a single '%s', which is replaced with the
+ variable part of RAxML output files (e.g. 'info', 'bestTree', ...).
+ Example destination: '/disk/project/SN013420.RAxML.%s'
+ Example output: '/disk/project/SN013420.RAxML.bestTree'"""
+
+ # TODO: Make MPIParams!
+ command = AtomicMPICmdBuilder("examl", threads = threads)
+
+ # Ensures that output is saved to the temporary directory
+ command.set_option("-w", "%(TEMP_DIR)s")
+
+ command.set_option("-s", "%(IN_ALN)s")
+ command.set_option("-t", "%(IN_TREE)s")
+ command.set_option("-n", "Pypeline")
+
+ command.set_kwargs(IN_ALN=input_binary,
+ IN_TREE=initial_tree,
+
+ # Final output files, are not created directly
+ OUT_INFO=output_template % "info",
+ OUT_BESTTREE=output_template % "result",
+ OUT_BOOTSTRAP=output_template % "log",
+
+ # Only generated by newer versions of ExaML
+ TEMP_OUT_MODELFILE=os.path.basename(output_template
+ % "modelFile"),
+
+ CHECK_EXAML=EXAML_VERSION)
+
+ # Use the GAMMA model of NT substitution by default
+ command.set_option("-m", "GAMMA", fixed = False)
+
+ return {"command" : command}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._dirname = os.path.dirname(parameters.output_template)
+ self._template = os.path.basename(parameters.output_template)
+
+ CommandNode.__init__(self,
+ command = parameters.command.finalize(),
+ description = "<ExaML (%i thread(s)): '%s' -> '%s'>" \
+ % (parameters.threads,
+ parameters.input_binary,
+ parameters.output_template),
+ threads = parameters.threads,
+ dependencies = parameters.dependencies)
+
+ def _create_temp_dir(self, _config):
+ """Called by 'run' in order to create a temporary folder.
+ To allow restarting from checkpoints, we use a fixed folder
+ determined by the output_template."""
+ temp = os.path.join(self._dirname, self._template % ("temp",))
+ fileutils.make_dirs(temp)
+ return temp
+
+ def _setup(self, config, temp):
+ CommandNode._setup(self, config, temp)
+
+ # The temp folder may contain old files:
+ # Remove old pipes to prevent failure at _teardown
+ for pipe_fname in glob.glob(os.path.join(temp, "pipe*")):
+ fileutils.try_remove(pipe_fname)
+ # ExaML refuses to overwrite old info files
+ fileutils.try_remove(os.path.join(temp, "ExaML_info.Pypeline"))
+
+ # Resume from last checkpoint, if one such was generated
+ checkpoints = glob.glob(os.path.join(temp,
+ "ExaML_binaryCheckpoint.Pypeline_*"))
+ if not checkpoints:
+ return
+
+ cache = FileStatusCache()
+ if cache.files_up_to_date(checkpoints, self.input_files):
+ checkpoints.sort(key=lambda fname: int(fname.rsplit("_", 1)[-1]))
+
+ # FIXME: Less hacky solution to modifying AtomicCmds needed
+ self._command._command.append("-R")
+ self._command._command.append(checkpoints[-1])
+ else:
+ for fpath in checkpoints:
+ fileutils.try_remove(fpath)
+
+ def _teardown(self, config, temp):
+ for filename in os.listdir(temp):
+ match = re.match("ExaML_(.*).Pypeline", filename)
+ if match:
+ if "binaryCheckpoint" in match.groups():
+ os.remove(os.path.join(temp, filename))
+ else:
+ source = os.path.join(temp, filename)
+ destination = os.path.join(temp, self._template % match.groups())
+
+ fileutils.move_file(source, destination)
+
+ CommandNode._teardown(self, config, temp)
+
+
+
+
+class ParsimonatorNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_alignment, output_tree, dependencies = ()):
+ """
+ Arguments:
+ input_alignment -- An alignment file in a format readable by RAxML.
+ output_tree -- Filename for the output newick tree."""
+
+ command = AtomicCmdBuilder("parsimonator", set_cwd = True)
+
+ command.set_option("-s", "%(TEMP_OUT_ALN)s")
+ command.set_option("-n", "output")
+ # Random seed for the stepwise addition process
+ command.set_option("-p", int(random.random() * 2**31 - 1), fixed = False)
+
+ command.set_kwargs(# Auto-delete: Symlinks
+ TEMP_OUT_ALN = os.path.basename(input_alignment),
+
+ # Input files, are not used directly (see below)
+ IN_ALIGNMENT = input_alignment,
+
+ # Final output file, are not created directly
+ OUT_TREE = output_tree)
+
+ return {"command" : command}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._symlinks = [os.path.abspath(parameters.input_alignment)]
+ self._output_tree = os.path.basename(parameters.output_tree)
+
+
+ CommandNode.__init__(self,
+ command = parameters.command.finalize(),
+ description = "<Parsimonator: '%s' -> '%s'>" \
+ % (parameters.input_alignment, parameters.output_tree),
+ dependencies = parameters.dependencies)
+
+
+ def _setup(self, config, temp):
+ CommandNode._setup(self, config, temp)
+
+ # Required to avoid the creation of files outside the temp folder
+ for filename in self._symlinks:
+ source = os.path.abspath(filename)
+ destination = os.path.join(temp, os.path.basename(filename))
+
+ os.symlink(source, destination)
+
+
+ def _teardown(self, config, temp):
+ os.remove(os.path.join(temp, "RAxML_info.output"))
+
+ source = os.path.join(temp, "RAxML_parsimonyTree.output.0")
+ destination = fileutils.reroot_path(temp, self._output_tree)
+ fileutils.move_file(source, destination)
+
+ CommandNode._teardown(self, config, temp)
+
diff --git a/pypeline/nodes/formats.py b/pypeline/nodes/formats.py
new file mode 100755
index 0000000..59b292e
--- /dev/null
+++ b/pypeline/nodes/formats.py
@@ -0,0 +1,257 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import copy
+import collections
+
+from pypeline.node import Node
+from pypeline.common.fileutils import move_file, reroot_path
+from pypeline.common.formats.msa import MSA
+from pypeline.common.formats.phylip import interleaved_phy, sequential_phy
+
+from pypeline.common.utilities import \
+ safe_coerce_to_frozenset, \
+ safe_coerce_to_tuple
+
+
+
+_VALID_KEYS = frozenset(["partitions", "filenames"])
+
+
+class FastaToPartitionedInterleavedPhyNode(Node):
+ def __init__(self, infiles, out_prefix, exclude_groups=(), reduce=False,
+ dependencies=(), file_dependencies=()):
+ """
+ infiles = {names : {"partitions" : ..., "filenames" : [...]}}
+ """
+ if not (isinstance(infiles, dict)
+ and all(isinstance(dd, dict) for dd in infiles.values())):
+ raise TypeError("'infiles' must be a dictionary of dictionaries")
+
+ input_filenames = []
+ for (name, subdd) in infiles.iteritems():
+ if set(subdd) - _VALID_KEYS:
+ raise ValueError("Invalid keys found for %r: %s"
+ % (name, ", ".join(set(subdd) - _VALID_KEYS)))
+ elif not isinstance(subdd["filenames"], list):
+ raise ValueError("filenames must be a list of strings")
+ input_filenames.extend(subdd["filenames"])
+ # Optional file dependencies; used to depend on the list of sequcences
+ input_filenames.extend(safe_coerce_to_tuple(file_dependencies))
+
+ self._reduce = bool(reduce)
+ self._infiles = copy.deepcopy(infiles)
+ self._out_prefix = out_prefix
+ self._excluded = safe_coerce_to_frozenset(exclude_groups)
+
+ description = "<FastaToPartitionedPhy%s: %i file(s) -> '%s.*'>" % \
+ (" (reducing)" if reduce else "", len(infiles), out_prefix)
+
+ Node.__init__(self,
+ description=description,
+ input_files=input_filenames,
+ output_files=[out_prefix + ".phy",
+ out_prefix + ".partitions"],
+ dependencies=dependencies)
+
+ def _run(self, _config, temp):
+ merged_msas = []
+ for (name, files_dd) in sorted(self._infiles.iteritems()):
+ partitions = files_dd["partitions"]
+ msas = dict((key, []) for key in partitions)
+ for filename in files_dd["filenames"]:
+ msa = MSA.from_file(filename)
+ if self._excluded:
+ msa = msa.exclude(self._excluded)
+
+ for (key, msa_part) in msa.split(partitions).iteritems():
+ msas[key].append(msa_part)
+
+ msas.pop("X", None)
+ for (key, msa_parts) in sorted(msas.iteritems()):
+ merged_msa = MSA.join(*msa_parts)
+ if self._reduce:
+ merged_msa = merged_msa.reduce()
+
+ if merged_msa is not None:
+ merged_msas.append(("%s_%s" % (name, key),
+ merged_msa))
+
+ out_fname_phy = reroot_path(temp, self._out_prefix + ".phy")
+ with open(out_fname_phy, "w") as output_phy:
+ final_msa = MSA.join(*(msa for (_, msa) in merged_msas))
+ output_phy.write(interleaved_phy(final_msa))
+
+ partition_end = 0
+ out_fname_parts = reroot_path(temp, self._out_prefix + ".partitions")
+ with open(out_fname_parts, "w") as output_part:
+ for (name, msa) in merged_msas:
+ length = msa.seqlen()
+ output_part.write("DNA, %s = %i-%i\n"
+ % (name,
+ partition_end + 1,
+ partition_end + length))
+ partition_end += length
+
+ def _teardown(self, _config, temp):
+ move_file(reroot_path(temp, self._out_prefix + ".phy"),
+ self._out_prefix + ".phy")
+ move_file(reroot_path(temp, self._out_prefix + ".partitions"),
+ self._out_prefix + ".partitions")
+
+
+
+
+class FastaToPartitionsNode(Node):
+ def __init__(self, infiles, out_partitions, partition_by = "123", dependencies = ()):
+ if (len(partition_by) != 3):
+ raise ValueError("Default 'partition_by' must be 3 entires long!")
+ elif not isinstance(infiles, dict):
+ raise TypeError("'infiles' must be a dictionary")
+ elif any(len(dd.get("partition_by", "123")) != 3 for dd in infiles.itervalues()):
+ raise ValueError("'partition_by' must be 3 entires long!")
+ elif not all(isinstance(dd, dict) for dd in infiles.values()):
+ raise TypeError("'infiles' must be a dictionary of dictionaries")
+ elif not any(("name" in dd) for dd in infiles.values()):
+ raise ValueError("'name' must be specified for all input files")
+ elif any((set(dd) - _VALID_KEYS) for dd in infiles.values()):
+ raise ValueError("Invalid keys found: %s" % ", ".join(set(dd) - _VALID_KEYS))
+
+ self._infiles = infiles
+ self._out_part = out_partitions
+ self._part_by = partition_by
+
+ description = "<FastaToPartitions (default: %s): %i file(s) -> '%s'>" % \
+ (partition_by, len(infiles), out_partitions)
+
+ Node.__init__(self,
+ description = description,
+ input_files = infiles.keys(),
+ output_files = out_partitions,
+ dependencies = dependencies)
+
+
+ def _run(self, _config, temp):
+ end = 0
+ partitions = collections.defaultdict(list)
+ for (filename, msa) in _read_sequences(self._infiles):
+ length = msa.seqlen()
+ start, end = end + 1, end + length
+
+ for (group, offsets) in self._get_partition_by(filename):
+ if len(offsets) != 3:
+ parts = [("%i-%i\\3" % (start + offset, end)) for offset in offsets]
+ else:
+ parts = ["%i-%i" % (start, end)]
+
+ name = "%s_%s" % (self._infiles[filename]["name"], group)
+ partitions[name].extend(parts)
+
+ with open(reroot_path(temp, self._out_part), "w") as part_file:
+ for (name, parts) in sorted(partitions.items()):
+ part_file.writelines("DNA, %s = %s\n" % (name, ", ".join(parts)))
+
+
+ def _teardown(self, _config, temp):
+ move_file(reroot_path(temp, self._out_part), self._out_part)
+
+
+ def _get_partition_by(self, filename):
+ groups = self._infiles[filename].get("partition_by", self._part_by)
+
+ partition_by = {}
+ for (group, offset) in zip(groups, range(3)):
+ partition_by.setdefault(group, []).append(offset)
+
+ return list(sorted(partition_by.items()))
+
+
+
+class FastaToInterleavedPhyNode(Node):
+ def __init__(self, infiles, out_phy, add_flag = False, dependencies = ()):
+ self._add_flag = add_flag
+ self._out_phy = out_phy
+
+ description = "<FastaToInterleavedPhy: %i file(s) -> '%s'%s>" % \
+ (len(infiles), out_phy, (" (w/ flag)" if add_flag else ""))
+
+ Node.__init__(self,
+ description = description,
+ input_files = infiles,
+ output_files = [out_phy],
+ dependencies = dependencies)
+
+
+ def _run(self, _config, temp):
+ msa = MSA.join(*(MSA.from_file(filename) for filename in sorted(self.input_files)))
+
+ with open(reroot_path(temp, self._out_phy), "w") as output:
+ output.write(interleaved_phy(msa, add_flag = self._add_flag))
+
+
+ def _teardown(self, _config, temp):
+ move_file(reroot_path(temp, self._out_phy), self._out_phy)
+
+
+
+class FastaToSequentialPhyNode(Node):
+ def __init__(self, infiles, out_phy, add_flag = False, dependencies = ()):
+ self._add_flag = add_flag
+ self._out_phy = out_phy
+
+ description = "<FastaToInterleavedPhy: %i file(s) -> '%s'%s>" % \
+ (len(infiles), out_phy, (" (w/ flag)" if add_flag else ""))
+
+ Node.__init__(self,
+ description = description,
+ input_files = infiles,
+ output_files = [out_phy],
+ dependencies = dependencies)
+
+
+ def _run(self, _config, temp):
+ # Read and check that MSAs share groups
+ msas = [MSA.from_file(filename) for filename in sorted(self.input_files)]
+ MSA.validate(*msas)
+
+ blocks = []
+ for msa in msas:
+ blocks.append(sequential_phy(msa, add_flag = self._add_flag))
+
+ with open(reroot_path(temp, self._out_phy), "w") as output:
+ output.write("\n\n".join(blocks))
+
+
+ def _teardown(self, _config, temp):
+ move_file(reroot_path(temp, self._out_phy), self._out_phy)
+
+
+
+
+
+def _read_sequences(filenames):
+ results = {}
+ for filename in filenames:
+ results[filename] = MSA.from_file(filename)
+ MSA.validate(*results.values())
+
+ return results.iteritems()
diff --git a/pypeline/nodes/gatk.py b/pypeline/nodes/gatk.py
new file mode 100644
index 0000000..135b74f
--- /dev/null
+++ b/pypeline/nodes/gatk.py
@@ -0,0 +1,176 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+
+import pypeline.common.fileutils as \
+ fileutils
+from pypeline.node import \
+ MetaNode, \
+ CommandNode
+from pypeline.atomiccmd.command import \
+ AtomicCmd
+from pypeline.atomiccmd.builder import \
+ AtomicJavaCmdBuilder
+from pypeline.atomiccmd.sets import \
+ ParallelCmds
+from pypeline.common.fileutils import \
+ swap_ext, \
+ describe_files
+from pypeline.common.utilities import \
+ safe_coerce_to_tuple
+from pypeline.nodes.samtools import \
+ SAMTOOLS_VERSION
+
+import pypeline.common.versions as versions
+
+
+def _get_gatk_version_check(config):
+ """Returns a version-check object for the "GenomeAnalysisTK.jar" located at
+ config.jar_root; for now, this check only serves to verify that the JAR can
+ be executed, which may not be the case if the JRE is outdated.
+ """
+ jar_file = os.path.join(config.jar_root, "GenomeAnalysisTK.jar")
+ if jar_file not in _GATK_VERSION:
+ params = AtomicJavaCmdBuilder(jar_file,
+ temp_root=config.temp_root,
+ jre_options=config.jre_options)
+ params.add_value("--version")
+
+ # Any version is fine; for now just catch old JREs
+ requirement = versions.Requirement(call=params.finalized_call,
+ name="GenomeAnalysisTK",
+ search=r"^(\d+)\.(\d+)",
+ checks=versions.Any())
+ _GATK_VERSION[jar_file] = requirement
+ return _GATK_VERSION[jar_file]
+_GATK_VERSION = {}
+
+
+class _IndelTrainerNode(CommandNode):
+ def __init__(self, config, reference, infiles, outfile, dependencies=()):
+ infiles = safe_coerce_to_tuple(infiles)
+ jar_file = os.path.join(config.jar_root, "GenomeAnalysisTK.jar")
+ command = AtomicJavaCmdBuilder(jar_file,
+ jre_options=config.jre_options)
+ command.set_option("-T", "RealignerTargetCreator")
+ command.set_option("-R", "%(IN_REFERENCE)s")
+ command.set_option("-o", "%(OUT_INTERVALS)s")
+
+ _set_input_files(command, infiles)
+ command.set_kwargs(IN_REFERENCE=reference,
+ IN_REF_DICT=fileutils.swap_ext(reference, ".dict"),
+ OUT_INTERVALS=outfile,
+ CHECK_GATK=_get_gatk_version_check(config))
+
+ description = "<Indel Realigner (training): %s -> %r>" \
+ % (describe_files(infiles), outfile)
+ CommandNode.__init__(self,
+ description=description,
+ command=command.finalize(),
+ dependencies=dependencies)
+
+
+class _IndelRealignerNode(CommandNode):
+ def __init__(self, config, reference, intervals, infiles, outfile,
+ dependencies=()):
+ self._basename = os.path.basename(outfile)
+
+ infiles = safe_coerce_to_tuple(infiles)
+ jar_file = os.path.join(config.jar_root, "GenomeAnalysisTK.jar")
+ command = AtomicJavaCmdBuilder(jar_file,
+ jre_options=config.jre_options)
+ command.set_option("-T", "IndelRealigner")
+ command.set_option("-R", "%(IN_REFERENCE)s")
+ command.set_option("-targetIntervals", "%(IN_INTERVALS)s")
+ command.set_option("-o", "%(OUT_BAMFILE)s")
+ command.set_option("--bam_compression", 0)
+ command.set_option("--disable_bam_indexing")
+ _set_input_files(command, infiles)
+
+ command.set_kwargs(IN_REFERENCE=reference,
+ IN_REF_DICT=fileutils.swap_ext(reference, ".dict"),
+ IN_INTERVALS=intervals,
+ OUT_BAMFILE=outfile,
+ CHECK_GATK=_get_gatk_version_check(config))
+
+ calmd = AtomicCmd(["samtools", "calmd", "-b",
+ "%(TEMP_IN_BAM)s", "%(IN_REF)s"],
+ TEMP_IN_BAM=self._basename,
+ IN_REF=reference,
+ TEMP_OUT_STDOUT=self._basename + ".calmd",
+ CHECK_VERSION=SAMTOOLS_VERSION)
+
+ description = "<Indel Realigner (aligning): %s -> %r>" \
+ % (describe_files(infiles), outfile)
+ CommandNode.__init__(self,
+ description=description,
+ command=ParallelCmds([command.finalize(), calmd]),
+ dependencies=dependencies)
+
+ def _setup(self, config, temp):
+ CommandNode._setup(self, config, temp)
+ os.mkfifo(os.path.join(temp, self._basename))
+
+ def _teardown(self, config, temp):
+ os.rename(os.path.join(temp, self._basename) + ".calmd",
+ os.path.join(temp, self._basename))
+
+ CommandNode._teardown(self, config, temp)
+
+
+class IndelRealignerNode(MetaNode):
+ def __init__(self, config, reference, infiles, outfile, intervals=None,
+ dependencies=()):
+ if not intervals:
+ intervals = outfile + ".intervals"
+
+ infiles = safe_coerce_to_tuple(infiles)
+ trainer = _IndelTrainerNode(config=config,
+ reference=reference,
+ infiles=infiles,
+ outfile=intervals,
+ dependencies=dependencies)
+ aligner = _IndelRealignerNode(config=config,
+ reference=reference,
+ intervals=intervals,
+ infiles=infiles,
+ outfile=outfile,
+ dependencies=trainer)
+
+ description = "<GATK Indel Realigner: %i files -> '%s'>" \
+ % (len(infiles), outfile)
+
+ MetaNode.__init__(self,
+ description=description,
+ subnodes=[trainer, aligner],
+ dependencies=dependencies)
+
+
+def _set_input_files(command, input_files):
+ keys = {}
+ for (index, filename) in enumerate(input_files):
+ command.add_option("-I", "%%(IN_BAMFILE_%02i)s" % index)
+ keys["IN_BAMFILE_%02i" % index] = filename
+ keys["IN_BAIFILE_%02i" % index] = swap_ext(filename, ".bai")
+
+ command.set_kwargs(**keys)
diff --git a/pypeline/nodes/mafft.py b/pypeline/nodes/mafft.py
new file mode 100644
index 0000000..1324f32
--- /dev/null
+++ b/pypeline/nodes/mafft.py
@@ -0,0 +1,93 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from pypeline.node import \
+ CommandNode, \
+ NodeError
+from pypeline.atomiccmd.builder import \
+ AtomicCmdBuilder, \
+ use_customizable_cli_parameters, \
+ create_customizable_cli_parameters
+from pypeline.common.fileutils import \
+ reroot_path
+from pypeline.common.formats.msa import \
+ MSA, \
+ MSAError
+import pypeline.common.versions as versions
+
+
+MAFFT_VERSION = versions.Requirement(call = ("mafft", "--version"),
+ search = r"v(\d+)\.(\d+)",
+ checks = versions.GE(7, 0))
+
+
+# Presets mainly taken from
+# http://mafft.cbrc.jp/alignment/software/algorithms/algorithms.html
+_PRESETS = {
+ "mafft" : ["mafft"],
+ "auto" : ["mafft", "--auto"],
+ "fft-ns-1" : ["mafft-fftns", "--retree", 1],
+ "fft-ns-2" : ["mafft-fftns"],
+ "fft-ns-i" : ["mafft-fftnsi"],
+ "nw-ns-i" : ["mafft-nwnsi"],
+ "l-ins-i" : ["mafft-linsi"],
+ "e-ins-i" : ["mafft-einsi"],
+ "g-ins-i" : ["mafft-ginsi"],
+ }
+
+
+
+
+class MAFFTNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_file, output_file, algorithm = "auto", dependencies = ()):
+ command = AtomicCmdBuilder(_PRESETS[algorithm.lower()])
+ command.add_value("%(IN_FASTA)s")
+ command.set_kwargs(IN_FASTA = input_file,
+ OUT_STDOUT = output_file,
+ CHECK_VERSION = MAFFT_VERSION)
+
+ return {"command" : command,
+ "dependencies" : dependencies}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._output_file = parameters.output_file
+ description = "<MAFFTNode (%s): '%s' -> '%s'>" \
+ % (parameters.algorithm,
+ parameters.input_file,
+ parameters.output_file)
+
+ CommandNode.__init__(self,
+ command = parameters.command.finalize(),
+ description = description,
+ dependencies = parameters.dependencies)
+
+ def _teardown(self, config, temp):
+ # Validate output from MAFFT
+ output_file = reroot_path(temp, self._output_file)
+ try:
+ MSA.from_file(output_file)
+ except MSAError, error:
+ raise NodeError("Invalid MSA produced by MAFFT:\n%s" % (error,))
+ CommandNode._teardown(self, config, temp)
diff --git a/pypeline/nodes/mapdamage.py b/pypeline/nodes/mapdamage.py
new file mode 100644
index 0000000..e971b44
--- /dev/null
+++ b/pypeline/nodes/mapdamage.py
@@ -0,0 +1,285 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+
+import pypeline.common.versions as versions
+
+from pypeline.common.fileutils import \
+ describe_files
+
+from pypeline.node import \
+ NodeError, \
+ CommandNode
+from pypeline.atomiccmd.sets import \
+ ParallelCmds
+from pypeline.nodes.picard import \
+ MultiBAMInput, \
+ MultiBAMInputNode
+from pypeline.atomiccmd.builder import \
+ AtomicCmdBuilder, \
+ use_customizable_cli_parameters, \
+ create_customizable_cli_parameters
+
+
+MAPDAMAGE_VERSION = versions.Requirement(call=("mapDamage", "--version"),
+ search=r"(\d+)\.(\d+).(\d+)",
+ checks=versions.GE(2, 0, 1))
+
+RSCRIPT_VERSION = versions.Requirement(call=("Rscript", "--version"),
+ search=r"(\d+)\.(\d+).(\d+)",
+ checks=versions.GE(2, 15, 1))
+
+
+class MapDamagePlotNode(MultiBAMInputNode):
+ @create_customizable_cli_parameters
+ def customize(self, config, reference, input_files, output_directory,
+ title="mapDamage", dependencies=()):
+ command = AtomicCmdBuilder(
+ ["mapDamage", "--no-stats",
+ # Prevent references with many contigs from using excessive
+ # amounts of memory, at the cost of per-contig statistics:
+ "--merge-reference-sequences",
+ "-t", title,
+ "-i", "%(TEMP_IN_BAM)s",
+ "-d", "%(TEMP_DIR)s",
+ "-r", "%(IN_REFERENCE)s"],
+ IN_REFERENCE=reference,
+ OUT_FREQ_3p=os.path.join(output_directory, "3pGtoA_freq.txt"),
+ OUT_FREQ_5p=os.path.join(output_directory, "5pCtoT_freq.txt"),
+ OUT_COMP_USER=os.path.join(output_directory, "dnacomp.txt"),
+ OUT_PLOT_FRAG=os.path.join(output_directory,
+ "Fragmisincorporation_plot.pdf"),
+ OUT_PLOT_LEN=os.path.join(output_directory, "Length_plot.pdf"),
+ OUT_LENGTH=os.path.join(output_directory, "lgdistribution.txt"),
+ OUT_MISINCORP=os.path.join(output_directory,
+ "misincorporation.txt"),
+ OUT_LOG=os.path.join(output_directory, "Runtime_log.txt"),
+ TEMP_OUT_STDOUT="pipe_mapDamage.stdout",
+ TEMP_OUT_STDERR="pipe_mapDamage.stderr",
+
+ CHECK_RSCRIPT=RSCRIPT_VERSION,
+ CHECK_MAPDAMAGE=MAPDAMAGE_VERSION)
+
+ return {"command": command,
+ "config": config,
+ "input_files": input_files,
+ "dependencies": dependencies}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ bam_input = MultiBAMInput(parameters.config, parameters.input_files)
+ bam_input.setup(parameters.command)
+ cmd_map = parameters.command.finalize()
+
+ description = "<mapDamage (plots): %s -> '%s'>" \
+ % (describe_files(parameters.input_files),
+ parameters.output_directory)
+ MultiBAMInputNode.__init__(self,
+ bam_input=bam_input,
+ command=ParallelCmds(bam_input.commands +
+ [cmd_map]),
+ description=description,
+ dependencies=parameters.dependencies)
+
+ def _teardown(self, config, temp):
+ # No Length_plot.pdf file is written if there are no SE reads in the
+ # input_file. In that case, we write a dummy PDF to ensure that all
+ # expected files exist.
+ err_message = "No length distributions are available"
+ with open(os.path.join(temp, "pipe_mapDamage.stderr")) as in_handle:
+ if any(line.startswith(err_message) for line in in_handle):
+
+ fpath = os.path.join(temp, "Length_plot.pdf")
+ with open(fpath, "w") as out_handle:
+ out_handle.write(_DUMMY_LENGTH_PLOT_PDF)
+
+ MultiBAMInputNode._teardown(self, config, temp)
+
+
+class MapDamageModelNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(self, reference, directory, dependencies=()):
+ command = AtomicCmdBuilder(
+ ["mapDamage", "--stats-only",
+ "-r", "%(IN_REFERENCE)s",
+ "-d", "%(TEMP_DIR)s"],
+ IN_REFERENCE=reference,
+ TEMP_OUT_FREQ_3p="3pGtoA_freq.txt",
+ TEMP_OUT_FREQ_5p="5pCtoT_freq.txt",
+ TEMP_OUT_COMP_USER="dnacomp.txt",
+ TEMP_OUT_MISINCORP="misincorporation.txt",
+ TEMP_OUT_LOG="Runtime_log.txt",
+ TEMP_OUT_STDOUT="pipe_mapDamage.stdout",
+ TEMP_OUT_STDERR="pipe_mapDamage.stderr",
+ OUT_COMP_GENOME=os.path.join(directory, "dnacomp_genome.csv"),
+ OUT_MCMC_PROBS=os.path.join(directory,
+ "Stats_out_MCMC_correct_prob.csv"),
+ OUT_MCMC_HIST=os.path.join(directory, "Stats_out_MCMC_hist.pdf"),
+ OUT_MCMC_ITER=os.path.join(directory, "Stats_out_MCMC_iter.csv"),
+ OUT_MCMC_ITERSUM=os.path.join(directory,
+ "Stats_out_MCMC_iter_summ_stat.csv"),
+ OUT_MCMC_POSTPRED=os.path.join(directory,
+ "Stats_out_MCMC_post_pred.pdf"),
+ OUT_MCMC_TRACE=os.path.join(directory, "Stats_out_MCMC_trace.pdf"),
+
+ CHECK_RSCRIPT=RSCRIPT_VERSION,
+ CHECK_MAPDAMAGE=MAPDAMAGE_VERSION)
+
+ return {"command": command,
+ "dependencies": dependencies}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._directory = parameters.directory
+
+ description = "<mapDamage (model): %r>" % (parameters.directory,)
+ CommandNode.__init__(self,
+ command=parameters.command.finalize(),
+ description=description,
+ dependencies=parameters.dependencies)
+
+ def _setup(self, config, temp):
+ CommandNode._setup(self, config, temp)
+ for fname in ("3pGtoA_freq.txt", "5pCtoT_freq.txt", "dnacomp.txt",
+ "misincorporation.txt"):
+ relpath = os.path.join(self._directory, fname)
+ abspath = os.path.abspath(relpath)
+ os.symlink(abspath, os.path.join(temp, fname))
+
+ def _run(self, config, temp):
+ try:
+ CommandNode._run(self, config, temp)
+ except NodeError, error:
+ err_message = "DNA damage levels are too low"
+ if self._command.join() == [1]:
+ fpath = os.path.join(temp, "pipe_mapDamage.stdout")
+ with open(fpath) as handle:
+ for line in handle:
+ if err_message in line:
+ line = line.strip().replace("Warning:", "ERROR:")
+ error = NodeError("%s\n\n%s" % (error, line))
+ break
+ raise error
+
+
+class MapDamageRescaleNode(MultiBAMInputNode):
+ @create_customizable_cli_parameters
+ def customize(self, config, reference, input_files, output_file, directory,
+ dependencies=()):
+ stats_out_fname = "Stats_out_MCMC_correct_prob.csv"
+ command = AtomicCmdBuilder(["mapDamage", "--rescale-only",
+ "-i", "%(TEMP_IN_BAM)s",
+ "-d", "%(TEMP_DIR)s",
+ "-r", "%(IN_REFERENCE)s",
+ "--rescale-out", "%(OUT_BAM)s"],
+ IN_REFERENCE=reference,
+ TEMP_OUT_LOG="Runtime_log.txt",
+ TEMP_OUT_CSV=stats_out_fname,
+ OUT_BAM=output_file,
+ CHECK_VERSION=MAPDAMAGE_VERSION)
+
+ return {"command": command,
+ "config": config,
+ "input_files": input_files,
+ "directory": directory,
+ "dependencies": dependencies}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._directory = parameters.directory
+ bam_input = MultiBAMInput(parameters.config, parameters.input_files)
+ bam_input.setup(parameters.command)
+ command = parameters.command.finalize()
+
+ description = "<mapDamage (rescale): %s -> %r>" \
+ % (describe_files(parameters.input_files),
+ parameters.output_file)
+ MultiBAMInputNode.__init__(self,
+ bam_input=bam_input,
+ command=ParallelCmds(bam_input.commands +
+ [command]),
+ description=description,
+ dependencies=parameters.dependencies)
+
+ def _setup(self, config, temp):
+ MultiBAMInputNode._setup(self, config, temp)
+ for fname in ("Stats_out_MCMC_correct_prob.csv", ):
+ relpath = os.path.join(self._directory, fname)
+ abspath = os.path.abspath(relpath)
+ os.symlink(abspath, os.path.join(temp, fname))
+
+
+# Minimal PDF written if Length_plot.pdf wasn't generated
+_DUMMY_LENGTH_PLOT_PDF = \
+ """%PDF-1.4
+
+1 0 obj
+ <</Type /Font /Subtype /Type1 /Encoding /WinAnsiEncoding /BaseFont /Courier >>
+endobj
+
+2 0 obj
+ <</Parent 4 0 R /MediaBox[0 0 450 50] /Type /Page /Contents[3 0 R ] /Resources 5 0 R >>
+endobj
+
+3 0 obj
+ <</Length 138 >>
+stream
+ BT
+ /F0 18 Tf
+ 20 10 Td
+ (Input file(s) did not contain SE reads.) Tj
+ 0 20 Td
+ (Length_plot.pdf not generated:) Tj
+ ET
+endstream
+endobj
+
+4 0 obj
+ <</Type /Pages /Count 1 /Kids[2 0 R ]>>
+endobj
+
+5 0 obj
+ <</ProcSet[/PDF /Text] /Font <</F0 1 0 R >>
+>>
+endobj
+
+6 0 obj
+ <</Type /Catalog /Pages 4 0 R >>
+endobj
+
+xref
+0 7
+0000000000 65535 f
+0000000010 00000 n
+0000000106 00000 n
+0000000211 00000 n
+0000000400 00000 n
+0000000457 00000 n
+0000000521 00000 n
+trailer
+ <</Size 7 /Root 6 0 R >>
+
+startxref
+571
+%%EOF
+"""
diff --git a/pypeline/nodes/misc.py b/pypeline/nodes/misc.py
new file mode 100644
index 0000000..c763997
--- /dev/null
+++ b/pypeline/nodes/misc.py
@@ -0,0 +1,54 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2013 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from pypeline.node import \
+ Node
+from pypeline.common.fileutils import \
+ copy_file, \
+ reroot_path
+from pypeline.common.utilities import \
+ safe_coerce_to_tuple
+
+
+class CopyOutputFilesNode(Node):
+ """Copies the output-files of one or more nodes to a specified folder."""
+
+ def __init__(self, description, destination, source_nodes):
+ source_nodes = safe_coerce_to_tuple(source_nodes)
+
+ input_files = []
+ for source_node in source_nodes:
+ input_files.extend(source_node.output_files)
+
+ output_files = [reroot_path(destination, fpath) for fpath in input_files]
+ self._files = zip(input_files, output_files)
+
+ Node.__init__(self,
+ description = "<Copy %s output to %r>" % (description, destination),
+ input_files = input_files,
+ output_files = output_files,
+ dependencies = source_nodes)
+
+
+ def _run(self, _config, _temp):
+ for (src_file, dst_file) in self._files:
+ copy_file(src_file, dst_file)
diff --git a/pypeline/nodes/newick.py b/pypeline/nodes/newick.py
new file mode 100644
index 0000000..5f4bdc9
--- /dev/null
+++ b/pypeline/nodes/newick.py
@@ -0,0 +1,116 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+
+from pypeline.common.formats.newick import \
+ Newick
+from pypeline.common.utilities import \
+ safe_coerce_to_tuple
+from pypeline.common.fileutils import \
+ describe_files, \
+ move_file
+from pypeline.node import \
+ Node
+
+
+
+class NewickRerootNode(Node):
+ def __init__(self, tree_files, output_file, taxa = (), dependencies = ()):
+ self._output_file = output_file
+ self._tree_files = safe_coerce_to_tuple(tree_files)
+ self._reroot_on_taxa = safe_coerce_to_tuple(taxa)
+
+ reroot_on = "midpoint"
+ if self._reroot_on_taxa:
+ reroot_on = repr("', '".join(sorted(self._reroot_on_taxa)))
+
+ description = "<NewickReroot (on %s): %s>" % \
+ (reroot_on, describe_files(tree_files),)
+
+ Node.__init__(self,
+ description = description,
+ input_files = self._tree_files,
+ output_files = self._output_file,
+ dependencies = dependencies)
+
+
+ def _run(self, _config, temp):
+ lines = []
+ for tree in _read_tree_files(self._tree_files):
+ if self._reroot_on_taxa:
+ rooted_tree = tree.reroot_on_taxa(self._reroot_on_taxa)
+ else:
+ rooted_tree = tree.reroot_on_midpoint()
+ lines.append(str(rooted_tree))
+ lines = "\n".join(lines) + "\n"
+
+ temp_output_file = os.path.join(temp, os.path.basename(self._output_file))
+ with open(temp_output_file, "w") as handle:
+ handle.write(lines)
+
+ move_file(temp_output_file, self._output_file)
+
+
+
+
+class NewickSupportNode(Node):
+ def __init__(self, main_tree_files, support_tree_files, output_file, dependencies = ()):
+ self._output_file = output_file
+ self._main_tree_files = safe_coerce_to_tuple(main_tree_files)
+ self._support_tree_files = safe_coerce_to_tuple(support_tree_files)
+ input_files = self._main_tree_files + self._support_tree_files
+
+ description = "<NewickSupport: %s>" % \
+ (describe_files(main_tree_files),)
+
+ Node.__init__(self,
+ description = description,
+ input_files = input_files,
+ output_files = output_file,
+ dependencies = dependencies)
+
+ def _run(self, _config, temp):
+ main_trees = _read_tree_files(self._main_tree_files)
+ support_trees = _read_tree_files(self._support_tree_files)
+
+ lines = []
+ for main_tree in main_trees:
+ supported_tree = main_tree.add_support(support_trees)
+ lines.append(str(supported_tree))
+ lines = "\n".join(lines) + "\n"
+
+ temp_output_file = os.path.join(temp, os.path.basename(self._output_file))
+ with open(temp_output_file, "w") as handle:
+ handle.write(lines)
+
+ move_file(temp_output_file, self._output_file)
+
+
+
+def _read_tree_files(filenames):
+ trees = []
+ for filename in filenames:
+ with open(filename) as handle:
+ for line in handle:
+ trees.append(Newick.from_string(line))
+ return trees
diff --git a/pypeline/nodes/paleomix.py b/pypeline/nodes/paleomix.py
new file mode 100644
index 0000000..22f453d
--- /dev/null
+++ b/pypeline/nodes/paleomix.py
@@ -0,0 +1,372 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""Implements nodes for calling PALEOMIX commands.
+
+Each node is equivalent to a particular command:
+ $ palemix [...]
+"""
+import os
+import gzip
+
+from pypeline.node import \
+ CommandNode, \
+ Node
+from pypeline.atomiccmd.command import \
+ AtomicCmd
+from pypeline.atomiccmd.sets import \
+ ParallelCmds
+from pypeline.common.fileutils import \
+ describe_files
+from pypeline.nodes.picard import \
+ MultiBAMInput, \
+ MultiBAMInputNode
+from pypeline.atomiccmd.builder import \
+ AtomicCmdBuilder, \
+ create_customizable_cli_parameters, \
+ use_customizable_cli_parameters
+from pypeline.common.fileutils import \
+ reroot_path, \
+ move_file
+
+from pypeline.nodes.samtools import \
+ SAMTOOLS_VERSION, \
+ BCFTOOLS_VERSION
+
+import pypeline.tools.bam_stats.coverage as coverage
+import pypeline.tools.factory as factory
+
+
+class DuplicateHistogramNode(MultiBAMInputNode):
+ """Node for calling the 'paleomix duphist' command.
+
+ Takes 1 or more BAMs as imput, requiring a config object in order to run
+ MergeSamFiles.jar to merge these files. The output is a histogram of PCR
+ duplicate counts, usable as input for the 'preseq' tool.
+ """
+
+ def __init__(self, config, input_files, output_file, dependencies=()):
+ bam_input = MultiBAMInput(config, input_files)
+ duphist_command = factory.new("duphist")
+ duphist_command.add_value('%(TEMP_IN_BAM)s')
+ duphist_command.set_kwargs(OUT_STDOUT=output_file)
+ bam_input.setup(duphist_command)
+ duphist_command = duphist_command.finalize()
+
+ commands = ParallelCmds(bam_input.commands + [duphist_command])
+
+ description = "<DuplicateHistogram: %s -> %r>" \
+ % (describe_files(input_files), output_file)
+ MultiBAMInputNode.__init__(self,
+ bam_input=bam_input,
+ command=commands,
+ description=description,
+ dependencies=dependencies)
+
+
+class CoverageNode(CommandNode):
+ def __init__(self, config, target_name, input_file, output_file,
+ regions_file=None, dependencies=()):
+ builder = factory.new("coverage")
+ builder.add_value("%(IN_BAM)s")
+ builder.add_value("%(OUT_FILE)s")
+ builder.set_option("--target-name", target_name)
+ builder.set_kwargs(IN_BAM=input_file,
+ OUT_FILE=output_file)
+
+ if regions_file:
+ builder.set_option('--regions-file', '%(IN_REGIONS)s')
+ builder.set_kwargs(IN_REGIONS=regions_file)
+
+ description = "<Coverage: %s -> '%s'>" % (input_file, output_file)
+ CommandNode.__init__(self,
+ command=builder.finalize(),
+ description=description,
+ dependencies=dependencies)
+
+
+class MergeCoverageNode(Node):
+ def __init__(self, input_files, output_file, dependencies=()):
+ self._output_file = output_file
+
+ Node.__init__(self,
+ description="<MergeCoverage: '%s' -> '%s'>"
+ % (describe_files(input_files), self._output_file),
+ input_files=input_files,
+ output_files=self._output_file,
+ dependencies=dependencies)
+
+ def _run(self, _config, temp):
+ table = {}
+ for filename in self.input_files:
+ coverage.read_table(table, filename)
+
+ coverage.write_table(table, reroot_path(temp, self._output_file))
+ move_file(reroot_path(temp, self._output_file), self._output_file)
+
+
+class DepthHistogramNode(MultiBAMInputNode):
+ def __init__(self, config, target_name, input_files, output_file,
+ regions_file=None, dependencies=()):
+ bam_input = MultiBAMInput(config, input_files)
+ if len(bam_input.files) > 1 and regions_file:
+ raise ValueError("DepthHistogram for regions require single, "
+ "indexed input BAM file.")
+
+ builder = factory.new("depths")
+ builder.add_value("%(TEMP_IN_BAM)s")
+ builder.add_value("%(OUT_FILE)s")
+ builder.set_option("--target-name", target_name)
+ builder.set_kwargs(OUT_FILE=output_file)
+ bam_input.setup(builder)
+
+ if regions_file:
+ builder.set_option('--regions-file', '%(IN_REGIONS)s')
+ builder.set_kwargs(IN_REGIONS=regions_file)
+
+ command = ParallelCmds(bam_input.commands + [builder.finalize()])
+ description = "<DepthHistogram: %s -> '%s'>" \
+ % (describe_files(bam_input.files), output_file)
+ MultiBAMInputNode.__init__(self,
+ bam_input=bam_input,
+ command=command,
+ description=description,
+ dependencies=dependencies)
+
+
+class FilterCollapsedBAMNode(MultiBAMInputNode):
+ def __init__(self, config, input_bams, output_bam, keep_dupes=True,
+ dependencies=()):
+ bam_input = MultiBAMInput(config, input_bams)
+
+ builder = factory.new("rmdup_collapsed")
+ builder.add_value("%(TEMP_IN_BAM)s")
+ builder.set_kwargs(OUT_STDOUT=output_bam)
+ bam_input.setup(builder)
+
+ if not keep_dupes:
+ builder.set_option("--remove-duplicates")
+
+ filteruniq = builder.finalize()
+ command = ParallelCmds(bam_input.commands + [filteruniq])
+ description = "<FilterCollapsedBAM: %s>" \
+ % (describe_files(bam_input.files),)
+ MultiBAMInputNode.__init__(self,
+ bam_input=bam_input,
+ command=command,
+ description=description,
+ dependencies=dependencies)
+
+
+class VCFPileupNode(CommandNode):
+ """Collects heterozygous SNPs from a VCF file, and generates a bgzipped
+ pileup for those sites containing the SNPs.
+
+ The resulting pileup is read by 'paleomix vcf_filter'; this allows
+ filtering based on the frequency of the minority SNP, since this is not
+ reported in the VCF.
+ """
+
+ @create_customizable_cli_parameters
+ def customize(cls, reference, infile_bam, infile_vcf, outfile,
+ dependencies=()):
+ params = factory.new("genotype")
+ params.add_value("%(IN_BAMFILE)s")
+ params.add_value("%(OUT_PILEUP)s")
+ params.set_option("--bedfile", "%(TEMP_IN_INTERVALS)s")
+ params.set_option("--pileup-only")
+ # Ignore read-groups for pileup
+ params.add_option("--mpileup-argument", "-R", sep="=")
+ # Reference sequence (FASTA)
+ params.add_option("--mpileup-argument",
+ "-f=%s" % (reference,), sep="=")
+
+ params.set_kwargs(IN_BAMFILE=infile_bam,
+ TEMP_IN_INTERVALS="heterozygous_snps.bed",
+ # Automatically remove this file
+ TEMP_OUT_INTERVALS="heterozygous_snps.bed",
+ OUT_PILEUP=outfile,
+ CHECK_SAMTOOLS=SAMTOOLS_VERSION)
+
+ return {"command": params}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._in_vcf = parameters.infile_vcf
+ command = parameters.command.finalize()
+ description = "<VCFPileup: '%s' -> '%s'>" \
+ % (parameters.infile_vcf,
+ parameters.outfile)
+
+ CommandNode.__init__(self,
+ description=description,
+ command=command,
+ dependencies=parameters.dependencies)
+
+ def _run(self, config, temp):
+ with gzip.open(self._in_vcf) as handle:
+ with open(os.path.join(temp, "heterozygous_snps.bed"), "w") as bed:
+ for line in handle:
+ if line.startswith("#"):
+ continue
+
+ fields = line.split("\t", 5)
+ if "," in fields[4]:
+ pos = int(fields[1])
+ bed.write("%s\t%i\t%i\n" % (fields[0], pos - 1, pos))
+
+ CommandNode._run(self, config, temp)
+
+
+class VCFFilterNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, pileup, infile, outfile, regions, dependencies=()):
+ cat = factory.new("cat")
+ cat.add_value("%(IN_VCF)s")
+ cat.set_kwargs(IN_VCF=infile,
+ OUT_STDOUT=AtomicCmd.PIPE)
+
+ vcffilter = factory.new("vcf_filter")
+ vcffilter.add_option("--pileup", "%(IN_PILEUP)s")
+ for contig in regions["HomozygousContigs"]:
+ vcffilter.add_option("--homozygous-chromosome", contig)
+ vcffilter.set_kwargs(IN_PILEUP=pileup,
+ IN_STDIN=cat,
+ OUT_STDOUT=AtomicCmd.PIPE)
+
+ bgzip = AtomicCmdBuilder(["bgzip"],
+ IN_STDIN=vcffilter,
+ OUT_STDOUT=outfile)
+
+ return {"commands": {"cat": cat,
+ "filter": vcffilter,
+ "bgzip": bgzip}}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ commands = [parameters.commands[key].finalize()
+ for key in ("cat", "filter", "bgzip")]
+
+ description = "<VCFFilter: '%s' -> '%s'>" % (parameters.infile,
+ parameters.outfile)
+ CommandNode.__init__(self,
+ description=description,
+ command=ParallelCmds(commands),
+ dependencies=parameters.dependencies)
+
+
+class GenotypeRegionsNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, reference, infile, bedfile, outfile,
+ pileup_only=False, nbatches=1, dependencies=()):
+ params = factory.new("genotype")
+ params.add_value("%(IN_BAMFILE)s")
+ params.add_value("%(OUT_VCFFILE)s")
+ params.set_option("--nbatches", nbatches)
+
+ if bedfile:
+ params.set_option("--bedfile", "%(IN_INTERVALS)s")
+
+ if pileup_only:
+ params.set_option("--pileup-only")
+ # Ignore read-groups for pileup
+ params.add_option("--mpileup-argument", "-R", sep="=")
+
+ # Reference sequence (FASTA)
+ params.add_option("--mpileup-argument",
+ "-f=%s" % (reference,), sep="=")
+
+ params.set_kwargs(IN_BAMFILE=infile,
+ IN_INTERVALS=bedfile,
+ OUT_VCFFILE=outfile,
+ CHECK_SAMTOOLS=SAMTOOLS_VERSION,
+ CHECK_BCFTOOLS=BCFTOOLS_VERSION)
+
+ return {"command": params}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ command = parameters.command.finalize()
+ invokation = " (%s%i thread(s))" \
+ % ("pileup; " if parameters.pileup_only else "",
+ parameters.nbatches)
+ description = "<GenotypeRegions%s: '%s' -> '%s'>" \
+ % (invokation,
+ parameters.infile,
+ parameters.outfile)
+
+ CommandNode.__init__(self,
+ description=description,
+ command=command,
+ threads=parameters.nbatches,
+ dependencies=parameters.dependencies)
+
+
+class BuildRegionsNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, infile, bedfile, outfile, padding, dependencies=()):
+ params = factory.new("vcf_to_fasta")
+ params.set_option("--padding", padding)
+ params.set_option("--genotype", "%(IN_VCFFILE)s")
+ params.set_option("--intervals", "%(IN_INTERVALS)s")
+
+ params.set_kwargs(IN_VCFFILE=infile,
+ IN_TABIX=infile + ".tbi",
+ IN_INTERVALS=bedfile,
+ OUT_STDOUT=outfile)
+
+ return {"command": params}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ command = parameters.command.finalize()
+ description = "<BuildRegions: '%s' -> '%s'>" % (parameters.infile,
+ parameters.outfile)
+ CommandNode.__init__(self,
+ description=description,
+ command=command,
+ dependencies=parameters.dependencies)
+
+
+class SampleRegionsNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, infile, bedfile, outfile, dependencies=()):
+ params = factory.new("sample_pileup")
+ params.set_option("--genotype", "%(IN_PILEUP)s")
+ params.set_option("--intervals", "%(IN_INTERVALS)s")
+ params.set_kwargs(IN_PILEUP=infile,
+ IN_INTERVALS=bedfile,
+ OUT_STDOUT=outfile)
+
+ return {"command": params}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ command = parameters.command.finalize()
+
+ description = "<SampleRegions: '%s' -> '%s'>" \
+ % (parameters.infile, parameters.outfile)
+
+ CommandNode.__init__(self,
+ description=description,
+ command=command,
+ dependencies=parameters.dependencies)
diff --git a/pypeline/nodes/phylip.py b/pypeline/nodes/phylip.py
new file mode 100644
index 0000000..d8ccc8a
--- /dev/null
+++ b/pypeline/nodes/phylip.py
@@ -0,0 +1,188 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import re
+import random
+
+from pypeline.node import \
+ Node, \
+ NodeError
+from pypeline.common.fileutils import \
+ move_file, \
+ reroot_path
+
+
+
+
+class PHYLIPBootstrapNode(Node):
+ """Generates a bootstrap alignment for a partition PHYLIP file;
+
+ Note that only the PHYLIP / partitions format produced by the Node
+ FastaToPartitionedInterleavedPhyNode is supported, in addition to the
+ formats produced by RAxMLReduceNode.
+
+ Parameters:
+ -- input_alignment - The input alignment file in PHYLIP format
+ -- input_partition - The input partition file in RAxML format
+ -- output_alignment - The output alignment file in PHYLIP format
+ The simple (RAxML like) sequential format is used.
+ -- seed - RNG seed for selecting alignment columns."""
+
+ def __init__(self, input_alignment, input_partition, output_alignment,
+ seed = None, dependencies = ()):
+ self._input_phy = input_alignment
+ self._input_part = input_partition
+ self._output_phy = output_alignment
+ self._seed = seed
+
+ Node.__init__(self,
+ description = "<PHYLIPBootstrap: %r -> %r>" \
+ % (input_alignment, output_alignment),
+ input_files = (input_alignment, input_partition),
+ output_files = (output_alignment,),
+ dependencies = dependencies)
+
+
+ def _run(self, _config, temp):
+ if self._seed is not None:
+ rng = random.Random(self._seed)
+ partitions = _read_partitions(self._input_part)
+ header, names, sequences = _read_sequences(self._input_phy)
+ bootstraps = self._bootstrap_sequences(sequences, partitions, rng)
+
+ temp_fpath = reroot_path(temp, self._output_phy)
+ with open(temp_fpath, "w") as output_phy:
+ output_phy.write(header)
+
+ for (name, fragments) in zip(names, bootstraps):
+ output_phy.write(name)
+ output_phy.write(" ")
+ for sequence in fragments:
+ output_phy.write(sequence)
+ output_phy.write("\n")
+
+ move_file(temp_fpath, self._output_phy)
+
+
+ @classmethod
+ def _bootstrap_sequences(cls, sequences, partitions, rng):
+ final_partitions = [[] for _ in sequences]
+ for (start, end) in partitions:
+ # Convert alignment to columns, and randomly select among those
+ columns = zip(*(sequence[start:end] for sequence in sequences))
+ bootstrap_partition = (rng.choice(columns) for _ in columns)
+
+ # Convert randomly selected columns back into sequences
+ for (dest, partition) in zip(final_partitions,
+ zip(*bootstrap_partition)):
+ dest.append("".join(partition))
+
+ return final_partitions
+
+
+
+_RE_PARTITION = re.compile(r"^[A-Z]+, [^ ]+ = (\d+)-(\d+)$")
+_RE_PARTITION_SINGLE = re.compile(r"^[A-Z]+, [^ ]+ = (\d+)$")
+
+def _read_partitions(filename):
+ """Read a partition file, as produced by the pipeline itself, and
+ returns a list of tuples containing the (start, end) coordinates;
+ each line is expected to follow the following format:
+
+ DNA, Name = Start-End
+
+ Multiple regions, or skips are not supported."""
+ partitions = []
+ with open(filename) as handle:
+ for (line_num, line) in enumerate(handle):
+ result = _RE_PARTITION.match(line.rstrip())
+ if result:
+ start, end = result.groups()
+ else:
+ result = _RE_PARTITION_SINGLE.match(line.rstrip())
+ if not result:
+ message = ("Line %i in partitions file does not follow "
+ "expected format:\n"
+ " Expected, either = 'DNA, Name = Start-End'\n"
+ " or = 'DNA, Name = Start'\n"
+ " Found = %r") % (line_num, line.rstrip())
+ raise NodeError(message)
+ start, = result.groups()
+ end = start
+
+ partitions.append((int(start) - 1, int(end)))
+ return partitions
+
+
+def _read_sequences(filename):
+ """Collects the sequences from a PHYLIP file, and returns the header,
+ the names of the sequences, and the sequences themselves. The parser
+ supports interleaved sequences (as produced by the pipeline), or simple
+ sequential (each paired name and sequence on a single line) as produced
+ by RAxML's reduce functionality. PHYLIP files containing multiple entries
+ are not supported."""
+ line, header = " ", None
+ with open(filename) as handle:
+ # Find header
+ num_sequences = num_bases = 0
+ while line:
+ line = handle.readline()
+ if line.strip():
+ header = line
+ num_sequences, num_bases = map(int, line.split())
+ break
+
+ names = [None for _ in xrange(num_sequences)]
+ sequences = [[] for _ in xrange(num_sequences)]
+
+ line_num = 0
+ while line:
+ line = handle.readline()
+ line_strip = line.strip()
+ if line_strip:
+ # The first N sequences are expected to contain sample names
+ index = line_num % num_sequences
+ if line_num < num_sequences:
+ name, line_strip = line_strip.split(None, 1)
+ names[index] = name
+
+ sequences[index].extend(line_strip.split())
+ line_num += 1
+
+ if len(sequences) != num_sequences:
+ message = ("Expected %i sequences, but found %i in PHYLIP file:\n"
+ " Filename = %r") % (num_sequences,
+ len(sequences),
+ filename)
+ raise NodeError(message)
+
+ for (index, fragments) in enumerate(sequences):
+ sequences[index] = "".join(fragments)
+ if len(sequences[index]) != num_bases:
+ message = ("Expected %ibp sequences, found %ibp sequence for %r\n"
+ " Filename = %r") % (num_bases,
+ len(sequences[index]),
+ names[index],
+ filename)
+ raise NodeError(message)
+
+ return header, names, sequences
diff --git a/pypeline/nodes/picard.py b/pypeline/nodes/picard.py
new file mode 100644
index 0000000..e755656
--- /dev/null
+++ b/pypeline/nodes/picard.py
@@ -0,0 +1,277 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import getpass
+
+from pypeline.node import CommandNode
+from pypeline.atomiccmd.builder import \
+ AtomicJavaCmdBuilder, \
+ create_customizable_cli_parameters, \
+ use_customizable_cli_parameters
+from pypeline.common.fileutils import \
+ swap_ext, \
+ try_rmtree, \
+ try_remove, \
+ reroot_path, \
+ describe_files
+from pypeline.common.utilities import \
+ safe_coerce_to_tuple
+import pypeline.common.versions as versions
+
+
+class PicardNode(CommandNode):
+ """Base class for nodes using Picard Tools; adds an additional cleanup
+ step, in order to allow the jars to be run using the same temporary folder
+ as any other commands associated with the node. This is nessesary as some
+ Picard tools create a large number of temporary files, leading to potential
+ performance issues if these are located in the same folder.
+ """
+
+ def _teardown(self, config, temp):
+ # Picard creates a folder named after the user in the temp-root
+ try_rmtree(os.path.join(temp, getpass.getuser()))
+ # Some JREs may create a folder for temporary performance counters
+ try_rmtree(os.path.join(temp, "hsperfdata_" + getpass.getuser()))
+
+ CommandNode._teardown(self, config, temp)
+
+
+class ValidateBAMNode(PicardNode):
+ @create_customizable_cli_parameters
+ def customize(cls, config, input_bam, output_log=None, dependencies=()):
+ params = picard_command(config, "ValidateSamFile")
+
+ params.set_option("I", "%(IN_BAM)s", sep="=")
+
+ output_log = output_log or swap_ext(input_bam, ".validated")
+ params.set_kwargs(IN_BAM=input_bam,
+ OUT_STDOUT=output_log)
+
+ return {"command": params,
+ "dependencies": dependencies}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ description = "<Validate BAM: '%s'>" % (parameters.input_bam,)
+ PicardNode.__init__(self,
+ command=parameters.command.finalize(),
+ description=description,
+ dependencies=parameters.dependencies)
+
+
+class BuildSequenceDictNode(PicardNode):
+ @create_customizable_cli_parameters
+ def customize(cls, config, reference, dependencies=()):
+ params = picard_command(config, "CreateSequenceDictionary")
+
+ params.set_option("R", "%(TEMP_OUT_REF)s", sep="=")
+ params.set_option("O", "%(OUT_DICT)s", sep="=")
+ params.set_kwargs(IN_REF=reference,
+ TEMP_OUT_REF=os.path.basename(reference),
+ OUT_DICT=swap_ext(reference, ".dict"))
+
+ return {"command": params,
+ "dependencies": dependencies}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._in_reference = os.path.abspath(parameters.reference)
+ description = "<SequenceDictionary: '%s'>" % (parameters.reference,)
+
+ PicardNode.__init__(self,
+ command=parameters.command.finalize(),
+ description=description,
+ dependencies=parameters.dependencies)
+
+ def _setup(self, _config, temp):
+ os.symlink(self._in_reference, reroot_path(temp, self._in_reference))
+
+
+class MarkDuplicatesNode(PicardNode):
+ @create_customizable_cli_parameters
+ def customize(cls, config, input_bams, output_bam, output_metrics=None,
+ keep_dupes=False, dependencies=()):
+ params = picard_command(config, "MarkDuplicates")
+
+ # Create .bai index, since it is required by a lot of other programs
+ params.set_option("CREATE_INDEX", "True", sep="=")
+
+ params.set_option("OUTPUT", "%(OUT_BAM)s", sep="=")
+ params.set_option("METRICS_FILE", "%(OUT_METRICS)s", sep="=")
+ params.add_multiple_options("I", input_bams, sep="=")
+
+ if not keep_dupes:
+ # Remove duplicates from output by default to save disk-space
+ params.set_option("REMOVE_DUPLICATES", "True",
+ sep="=", fixed=False)
+
+ output_metrics = output_metrics or swap_ext(output_bam, ".metrics")
+ params.set_kwargs(OUT_BAM=output_bam,
+ OUT_BAI=swap_ext(output_bam, ".bai"),
+ OUT_METRICS=output_metrics)
+
+ return {"command": params,
+ "dependencies": dependencies}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ description = "<MarkDuplicates: %s>" \
+ % (describe_files(parameters.input_bams),)
+ PicardNode.__init__(self,
+ command=parameters.command.finalize(),
+ description=description,
+ dependencies=parameters.dependencies)
+
+
+class MergeSamFilesNode(PicardNode):
+ @create_customizable_cli_parameters
+ def customize(cls, config, input_bams, output_bam, dependencies=()):
+ params = picard_command(config, "MergeSamFiles")
+
+ params.set_option("OUTPUT", "%(OUT_BAM)s", sep="=")
+ params.set_option("CREATE_INDEX", "True", sep="=")
+ params.set_option("SO", "coordinate", sep="=", fixed=False)
+ params.add_multiple_options("I", input_bams, sep="=")
+
+ params.set_kwargs(OUT_BAM=output_bam,
+ OUT_BAI=swap_ext(output_bam, ".bai"))
+
+ return {"command": params,
+ "dependencies": dependencies}
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ description = "<Merge BAMs: %i file(s) -> '%s'>" \
+ % (len(parameters.input_bams), parameters.output_bam)
+ PicardNode.__init__(self,
+ command=parameters.command.finalize(),
+ description=description,
+ dependencies=parameters.dependencies)
+
+
+class MultiBAMInput(object):
+ """Container used to ease processing of 1 or more BAM files; used in
+ conjunctin with MultiBAMInputNode.
+ """
+
+ def __init__(self, config, input_bams, pipename="input.bam"):
+ self.pipe = pipename
+ self.files = safe_coerce_to_tuple(input_bams)
+
+ self.commands = []
+ self.kwargs = {"TEMP_IN_BAM": self.pipe}
+ if len(self.files) > 1:
+ params = picard_command(config, "MergeSamFiles")
+
+ params.set_option("SO", "coordinate", sep="=", fixed=False)
+ params.set_option("CREATE_INDEX", "False", sep="=")
+ params.set_option("COMPRESSION_LEVEL", 0, sep="=")
+ params.set_option("OUTPUT", "%(TEMP_OUT_BAM)s", sep="=")
+ params.add_multiple_options("I", input_bams, sep="=")
+
+ params.set_kwargs(TEMP_OUT_BAM=self.pipe)
+
+ self.commands = [params.finalize()]
+ else:
+ # Ensure that the actual command depends on the input
+ self.kwargs["IN_FILE_00"] = self.files[0]
+ self.kwargs["IN_FILE_01"] = swap_ext(self.files[0], ".bai")
+
+ def setup(self, command):
+ command.set_kwargs(**self.kwargs)
+
+
+class MultiBAMInputNode(CommandNode):
+ """Node which provides concatenation of input BAM files. Takes a
+ MultiBAMInput object, and creates a pipe in the temporary folder which
+ yields the concatenated BAM resulting from the concatenation of all input
+ files. To avoid unnessary overhead, a symbolic link is used in the case
+ where there is only a single input file.
+
+ Usage example:
+ class ExampleNode(MultiBAMInputNode):
+ def __init__(self, config, input_bams):
+ bam_input = MultiBAMInput(config, input_bams)
+ command = AtomicCmd(['analyse_bam', '%(TEMP_IN_BAM)s'],
+ TEMP_IN_BAM=bam_input.pipe)
+ commands = ParallelCmds(bam_input.commands + [command])
+ MultiBAMInputNode.__init__(bam_input=bam_input,
+ command=commands)
+ """
+
+ def __init__(self, bam_input, *args, **kwargs):
+ self._bam_input = bam_input
+ CommandNode.__init__(self, *args, **kwargs)
+
+ def _setup(self, config, temp_root):
+ CommandNode._setup(self, config, temp_root)
+ dst_fname = os.path.join(temp_root, self._bam_input.pipe)
+ if len(self._bam_input.files) > 1:
+ os.mkfifo(dst_fname)
+ else:
+ src_fname, = self._bam_input.files
+ os.symlink(os.path.join(os.getcwd(), src_fname), dst_fname)
+
+ src_fname = os.path.join(os.getcwd(), swap_ext(src_fname, ".bai"))
+ os.symlink(src_fname, dst_fname + ".bai")
+
+ def _teardown(self, config, temp_root):
+ pipe_fname = os.path.join(temp_root, self._bam_input.pipe)
+ os.remove(pipe_fname)
+ try_remove(pipe_fname + ".bai")
+ CommandNode._teardown(self, config, temp_root)
+
+
+###############################################################################
+
+_PICARD_JAR = "picard.jar"
+_PICARD_VERSION_CACHE = {}
+
+
+def picard_command(config, command):
+ """Returns basic AtomicJavaCmdBuilder for Picard tools commands."""
+ jar_path = os.path.join(config.jar_root, _PICARD_JAR)
+
+ if jar_path not in _PICARD_VERSION_CACHE:
+ params = AtomicJavaCmdBuilder(jar_path,
+ temp_root=config.temp_root,
+ jre_options=config.jre_options)
+
+ # Arbitrary command, since just '--version' does not work
+ params.set_option("MarkDuplicates")
+ params.set_option("--version")
+
+ requirement = versions.Requirement(call=params.finalized_call,
+ name="Picard tools",
+ search=r"^(\d+)\.(\d+)",
+ checks=versions.GE(1, 124))
+ _PICARD_VERSION_CACHE[jar_path] = requirement
+
+ version = _PICARD_VERSION_CACHE[jar_path]
+ params = AtomicJavaCmdBuilder(jar_path,
+ temp_root=config.temp_root,
+ jre_options=config.jre_options,
+ CHECK_JAR=version)
+ params.set_option(command)
+
+ return params
diff --git a/pypeline/nodes/raxml.py b/pypeline/nodes/raxml.py
new file mode 100644
index 0000000..a371af0
--- /dev/null
+++ b/pypeline/nodes/raxml.py
@@ -0,0 +1,348 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import re
+import random
+
+import pypeline.common.fileutils as fileutils
+import pypeline.common.versions as versions
+
+from pypeline.node import CommandNode
+from pypeline.atomiccmd.builder import \
+ AtomicCmdBuilder, \
+ use_customizable_cli_parameters, \
+ create_customizable_cli_parameters
+
+
+RAXML_VERSION = versions.Requirement(call = ("raxmlHPC", "-version"),
+ search = r"version (\d+)\.(\d+)\.(\d+)",
+ checks = versions.GE(7, 3, 2))
+RAXML_PTHREADS_VERSION = versions.Requirement(call = ("raxmlHPC-PTHREADS", "-version"),
+ search = r"version (\d+)\.(\d+)\.(\d+)",
+ checks = versions.GE(7, 3, 2))
+
+
+class RAxMLReduceNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_alignment, input_partition, output_alignment, output_partition, dependencies = ()):
+ command = AtomicCmdBuilder("raxmlHPC")
+
+ # Read and (in the case of empty columns) reduce input
+ command.set_option("-f", "c")
+ # Output files are saved with a .Pypeline postfix, and subsequently renamed
+ command.set_option("-n", "Pypeline")
+ # Model required, but not used
+ command.set_option("-m", "GTRGAMMA")
+ # Ensures that output is saved to the temporary directory
+ command.set_option("-w", "%(TEMP_DIR)s")
+
+ # Symlink to sequence and partitions, to prevent the creation of *.reduced files outside temp folder
+ # In addition, it may be nessesary to remove the .reduced files if created
+ command.set_option("-s", "%(TEMP_IN_ALIGNMENT)s")
+ command.set_option("-q", "%(TEMP_IN_PARTITION)s")
+
+ command.set_kwargs(IN_ALIGNMENT = input_alignment,
+ IN_PARTITION = input_partition,
+
+ TEMP_IN_ALIGNMENT = "RAxML_alignment",
+ TEMP_IN_PARTITION = "RAxML_partitions",
+ TEMP_OUT_INFO = "RAxML_info.Pypeline",
+
+ OUT_ALIGNMENT = output_alignment,
+ OUT_PARTITION = output_partition,
+ CHECK_VERSION = RAXML_VERSION)
+
+ return {"command" : command}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._kwargs = parameters.command.kwargs
+ CommandNode.__init__(self,
+ command = parameters.command.finalize(),
+ description = "<RAxMLReduce: '%s' -> '%s'>" \
+ % (parameters.input_alignment, parameters.output_alignment),
+ dependencies = parameters.dependencies)
+
+
+ def _setup(self, config, temp):
+ for key in ("IN_ALIGNMENT", "IN_PARTITION"):
+ source = os.path.abspath(self._kwargs[key])
+ destination = os.path.join(temp, self._kwargs["TEMP_" + key])
+
+ os.symlink(source, destination)
+
+ CommandNode._setup(self, config, temp)
+
+
+ def _teardown(self, config, temp):
+ for postfix in ("ALIGNMENT", "PARTITION"):
+ filenames = [self._kwargs["TEMP_IN_" + postfix],
+ self._kwargs["TEMP_IN_" + postfix] + ".reduced",
+ self._kwargs["OUT_" + postfix]]
+
+ for (source, destination) in zip(filenames, filenames[1:]):
+ source = fileutils.reroot_path(temp, source)
+ destination = fileutils.reroot_path(temp, destination)
+
+ if not os.path.exists(destination):
+ fileutils.copy_file(source, destination)
+ os.remove(source)
+
+ CommandNode._teardown(self, config, temp)
+
+
+class RAxMLBootstrapNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_alignment, input_partition, template, start = 0, bootstraps = 50, dependencies = ()):
+ command = AtomicCmdBuilder("raxmlHPC", set_cwd = True)
+
+ # Read and (in the case of empty columns) reduce input
+ command.set_option("-f", "j")
+ # Output files are saved with a .Pypeline postfix, and subsequently renamed
+ command.set_option("-n", "Pypeline")
+ # Model required, but not used
+ command.set_option("-m", "GTRGAMMA")
+ # Set random seed for bootstrap generation. May be set to a fixed value to allow replicability.
+ command.set_option("-b", int(random.random() * 2**31 - 1), fixed = False)
+ # Generate a single bootstrap alignment (makes growing the number of bootstraps easier).
+ command.set_option("-N", int(bootstraps), fixed = False)
+
+ # Symlink to sequence and partitions, to prevent the creation of *.reduced files outside temp folder
+ # In addition, it may be nessesary to remove the .reduced files if created
+ command.set_option("-s", "input.alignment")
+ command.set_option("-q", "input.partition")
+
+ bootstrap_files = {"IN_ALIGNMENT" : input_alignment,
+ "IN_PARTITION" : input_partition,
+ "TEMP_OUT_INF" : "RAxML_info.Pypeline",
+ "TEMP_OUT_ALN" : "input.alignment",
+ "TEMP_OUT_PAR" : "input.partition",
+ "CHECK_VERSION": RAXML_VERSION}
+
+ for (index, (_, filename)) in enumerate(cls._bootstraps(template, bootstraps, start)):
+ bootstrap_files["OUT_BS_%03i" % index] = filename
+ command.set_kwargs(**bootstrap_files)
+
+ return {"command" : command}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._input_alignment = parameters.input_alignment
+ self._input_partition = parameters.input_partition
+ self._output_template = parameters.template
+ self._bootstrap_num = parameters.bootstraps
+ self._bootstrap_start = parameters.start
+
+ CommandNode.__init__(self,
+ command = parameters.command.finalize(),
+ description = "<RAxMLBootstrap: '%s' -> '%s' (%i .. %i>" \
+ % (parameters.input_alignment, parameters.template,
+ parameters.start, parameters.start + parameters.bootstraps - 1),
+ dependencies = parameters.dependencies)
+
+ def _setup(self, config, temp):
+ os.symlink(os.path.realpath(self._input_alignment), os.path.join(temp, "input.alignment"))
+ os.symlink(os.path.realpath(self._input_partition), os.path.join(temp, "input.partition"))
+
+
+ def _teardown(self, config, temp):
+ template = self._output_template
+ bootstraps = self._bootstrap_num
+ start = self._bootstrap_start
+ for (src_file, dst_file) in self._bootstraps(template, bootstraps, start):
+ src_file = os.path.join(temp, src_file)
+ dst_file = fileutils.reroot_path(temp, dst_file)
+ fileutils.move_file(src_file, dst_file)
+ CommandNode._teardown(self, config, temp)
+
+ @classmethod
+ def _bootstraps(cls, template, number, start):
+ for bootstrap in range(number):
+ src_file = "input.alignment.BS%i" % (bootstrap,)
+ dst_file = template % (bootstrap + start,)
+ yield (src_file, dst_file)
+
+
+class RAxMLRapidBSNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_alignment, input_partition, output_template, threads = 1, dependencies = ()):
+ """
+ Arguments:
+ input_alignment -- An alignment file in a format readable by RAxML.
+ input_partition -- A set of partitions in a format readable by RAxML.
+ output_template -- A template string used to construct final filenames. Should consist
+ of a full path, including a single '%s', which is replaced with the
+ variable part of RAxML output files (e.g. 'info', 'bestTree', ...).
+ Example destination: '/disk/project/SN013420.RAxML.%s'
+ Example output: '/disk/project/SN013420.RAxML.bestTree'"""
+
+ if threads > 1:
+ command = AtomicCmdBuilder("raxmlHPC-PTHREADS")
+ command.set_option("-T", threads)
+ version = RAXML_PTHREADS_VERSION
+ else:
+ command = AtomicCmdBuilder("raxmlHPC")
+ version = RAXML_VERSION
+
+ # Perform rapid bootstrapping
+ command.set_option("-f", "a")
+ # Output files are saved with a .Pypeline postfix, and subsequently renamed
+ command.set_option("-n", "Pypeline")
+ # Ensures that output is saved to the temporary directory
+ command.set_option("-w", "%(TEMP_DIR)s")
+ # Symlink to sequence and partitions, to prevent the creation of *.reduced files outside temp folder
+ # In addition, it may be nessesary to remove the .reduced files if created
+ command.set_option("-s", "%(TEMP_OUT_ALN)s")
+ command.set_option("-q", "%(TEMP_OUT_PART)s")
+
+ command.set_kwargs(# Auto-delete: Symlinks and .reduced files that RAxML may generate
+ TEMP_OUT_PART = os.path.basename(input_partition),
+ TEMP_OUT_PART_R = os.path.basename(input_partition) + ".reduced",
+ TEMP_OUT_ALN = os.path.basename(input_alignment),
+ TEMP_OUT_ALN_R = os.path.basename(input_alignment) + ".reduced",
+
+ # Input files, are not used directly (see below)
+ IN_ALIGNMENT = input_alignment,
+ IN_PARTITION = input_partition,
+
+ # Final output files, are not created directly
+ OUT_INFO = output_template % "info",
+ OUT_BESTTREE = output_template % "bestTree",
+ OUT_BOOTSTRAP = output_template % "bootstrap",
+ OUT_BIPART = output_template % "bipartitions",
+ OUT_BIPARTLABEL = output_template % "bipartitionsBranchLabels",
+
+ CHECK_VERSION = version)
+
+ # Use the GTRGAMMAI model of NT substitution by default
+ command.set_option("-m", "GTRGAMMAI", fixed = False)
+ # Enable Rapid Boostrapping and set random seed. May be set to a fixed value to allow replicability.
+ command.set_option("-x", int(random.random() * 2**31 - 1), fixed = False)
+ # Set random seed for parsimony inference. May be set to a fixed value to allow replicability.
+ command.set_option("-p", int(random.random() * 2**31 - 1), fixed = False)
+ # Terminate bootstrapping upon convergence, rather than after a fixed number of repetitions
+ command.set_option("-N", "autoMRE", fixed = False)
+
+ return {"command" : command}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._symlinks = [parameters.input_alignment,
+ parameters.input_partition]
+ self._template = os.path.basename(parameters.output_template)
+
+
+ CommandNode.__init__(self,
+ command = parameters.command.finalize(),
+ description = "<RAxMLRapidBS: '%s' -> '%s'>" \
+ % (parameters.input_alignment, parameters.output_template),
+ threads = parameters.threads,
+ dependencies = parameters.dependencies)
+
+
+ def _setup(self, config, temp):
+ CommandNode._setup(self, config, temp)
+
+ # Required to avoid the creation of files outside the temp folder
+ for filename in self._symlinks:
+ source = os.path.abspath(filename)
+ destination = os.path.join(temp, os.path.basename(filename))
+
+ os.symlink(source, destination)
+
+
+ def _teardown(self, config, temp):
+ for filename in os.listdir(temp):
+ match = re.match("RAxML_(.*).Pypeline", filename)
+ if match:
+ source = os.path.join(temp, filename)
+ destination = os.path.join(temp, self._template % match.groups())
+
+ fileutils.move_file(source, destination)
+
+ CommandNode._teardown(self, config, temp)
+
+
+class RAxMLParsimonyTreeNode(CommandNode):
+ @create_customizable_cli_parameters
+ def customize(cls, input_alignment, input_partitions, output_tree, dependencies = ()):
+ command = AtomicCmdBuilder("raxmlHPC")
+
+ # Compute a randomized parsimony starting tree
+ command.set_option("-y")
+ # Output files are saved with a .Pypeline postfix, and subsequently renamed
+ command.set_option("-n", "Pypeline")
+ # Model required, but not used
+ command.set_option("-m", "GTRGAMMA")
+ # Ensures that output is saved to the temporary directory
+ command.set_option("-w", "%(TEMP_DIR)s")
+ # Set random seed for bootstrap generation. May be set to a fixed value to allow replicability.
+ command.set_option("-p", int(random.random() * 2**31 - 1), fixed = False)
+
+ # Symlink to sequence and partitions, to prevent the creation of *.reduced files outside temp folder
+ command.set_option("-s", "%(TEMP_OUT_ALIGNMENT)s")
+ command.set_option("-q", "%(TEMP_OUT_PARTITION)s")
+
+ command.set_kwargs(IN_ALIGNMENT = input_alignment,
+ IN_PARTITION = input_partitions,
+
+ # TEMP_OUT_ is used to automatically remove these files
+ TEMP_OUT_ALIGNMENT = "RAxML_alignment",
+ TEMP_OUT_PARTITION = "RAxML_partitions",
+ TEMP_OUT_INFO = "RAxML_info.Pypeline",
+
+ OUT_TREE = output_tree,
+
+ CHECK_VERSION = RAXML_VERSION)
+
+ return {"command" : command}
+
+
+ @use_customizable_cli_parameters
+ def __init__(self, parameters):
+ self._input_alignment = parameters.input_alignment
+ self._input_partitions = parameters.input_partitions
+ self._output_tree = parameters.output_tree
+
+ CommandNode.__init__(self,
+ command = parameters.command.finalize(),
+ description = "<RAxMLParsimonyTree: '%s' -> '%s'>" \
+ % (parameters.input_alignment, parameters.output_tree),
+ dependencies = parameters.dependencies)
+
+
+ def _setup(self, config, temp):
+ os.symlink(os.path.abspath(self._input_alignment), os.path.join(temp, "RAxML_alignment"))
+ os.symlink(os.path.abspath(self._input_partitions), os.path.join(temp, "RAxML_partitions"))
+ CommandNode._setup(self, config, temp)
+
+
+ def _teardown(self, config, temp):
+ basename = os.path.basename(self._output_tree)
+ os.rename(os.path.join(temp, "RAxML_parsimonyTree.Pypeline"),
+ os.path.join(temp, basename))
+
+ CommandNode._teardown(self, config, temp)
diff --git a/pypeline/nodes/samtools.py b/pypeline/nodes/samtools.py
new file mode 100644
index 0000000..a8772b0
--- /dev/null
+++ b/pypeline/nodes/samtools.py
@@ -0,0 +1,156 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+
+from pypeline.node import CommandNode
+from pypeline.atomiccmd.command import AtomicCmd
+
+from pypeline.common.fileutils import reroot_path, swap_ext
+import pypeline.common.versions as versions
+
+
+_VERSION_REGEX = r"Version: (\d+)\.(\d+)(?:\.(\d+))?"
+
+# v0.2.0 was the pre-release version of v1.0, and lacks required features
+_COMMON_CHECK = versions.And(versions.GE(0, 1, 18),
+ versions.LT(0, 2, 0))
+
+SAMTOOLS_VERSION = versions.Requirement(call=("samtools",),
+ search=_VERSION_REGEX,
+ checks=_COMMON_CHECK)
+
+BCFTOOLS_VERSION \
+ = versions.Requirement(call=("bcftools",),
+ search=_VERSION_REGEX,
+ checks=_COMMON_CHECK)
+
+TABIX_VERSION = versions.Requirement(call=("tabix",),
+ search=_VERSION_REGEX,
+ checks=versions.GE(0, 2, 5))
+
+
+def samtools_compatible_wbu_mode():
+ """Returns a writing mode for Pysam compatible with the current version of
+ samtools; uncompressed output from Pysam 0.8.x cannot be read by older
+ versions of samtools:
+
+ https://github.com/pysam-developers/pysam/issues/43
+ """
+ import pysam
+
+ if map(int, pysam.__version__.split(".")) < [0, 8, 0]:
+ return "wbu"
+ else:
+ return "wb"
+
+
+class TabixIndexNode(CommandNode):
+ """Tabix indexes a BGZip compressed VCF or pileup file.
+
+ The class currently supports the following presets:
+ - vcf -- BGZipped VCF file.
+ - pileup -- BGZipped pileup (non-binary) as produced by 'mpileup'.
+ """
+
+ def __init__(self, infile, preset="vcf", dependencies=()):
+ assert infile.lower().endswith(".bgz")
+ if preset == "pileup":
+ call = ["tabix", "-s", 1, "-b", 2, "-e", 2]
+ elif preset == "vcf":
+ call = ["tabix", "-p", preset]
+ else:
+ assert False, "Unxpected preset: %r" % preset
+
+ self._infile = infile
+ cmd_tabix = AtomicCmd(call + ["%(TEMP_IN_VCFFILE)s"],
+ TEMP_IN_VCFFILE=os.path.basename(infile),
+ IN_VCFFILE=infile,
+ OUT_TBI=infile + ".tbi",
+ CHECK_TABIX=TABIX_VERSION)
+
+ CommandNode.__init__(self,
+ description="<TabixIndex (%s): '%s'>" % (preset,
+ infile,),
+ command=cmd_tabix,
+ dependencies=dependencies)
+
+ def _setup(self, config, temp):
+ """See CommandNode._setup."""
+ infile = os.path.abspath(self._infile)
+ outfile = reroot_path(temp, self._infile)
+ os.symlink(infile, outfile)
+
+ CommandNode._setup(self, config, temp)
+
+ def _teardown(self, config, temp):
+ """See CommandNode._teardown."""
+ os.remove(reroot_path(temp, self._infile))
+
+ CommandNode._teardown(self, config, temp)
+
+
+class FastaIndexNode(CommandNode):
+ """Indexed a FASTA file using 'samtools faidx'."""
+
+ def __init__(self, infile, dependencies=()):
+ self._infile = infile
+ cmd_faidx = AtomicCmd(["samtools", "faidx", "%(TEMP_IN_FASTA)s"],
+ TEMP_IN_FASTA=os.path.basename(infile),
+ IN_FASTA=infile,
+ OUT_TBI=infile + ".fai",
+ CHECK_SAM=SAMTOOLS_VERSION)
+
+ CommandNode.__init__(self,
+ description="<FastaIndex: '%s'>" % (infile,),
+ command=cmd_faidx,
+ dependencies=dependencies)
+
+ def _setup(self, config, temp):
+ """See CommandNode._setup."""
+ infile = os.path.abspath(self._infile)
+ outfile = reroot_path(temp, self._infile)
+ os.symlink(infile, outfile)
+
+ CommandNode._setup(self, config, temp)
+
+ def _teardown(self, config, temp):
+ """See CommandNode._teardown."""
+ os.remove(reroot_path(temp, self._infile))
+
+ CommandNode._teardown(self, config, temp)
+
+
+class BAMIndexNode(CommandNode):
+ """Indexed a BAM file using 'samtools index'."""
+
+ def __init__(self, infile, dependencies=()):
+ cmd_index = AtomicCmd(["samtools", "index", "%(IN_BAM)s",
+ "%(OUT_BAI)s"],
+ IN_BAM=infile,
+ OUT_BAI=swap_ext(infile, ".bai"),
+ CHECK_SAM=SAMTOOLS_VERSION)
+
+ CommandNode.__init__(self,
+ description="<BAMIndex: '%s'>" % (infile,),
+ command=cmd_index,
+ dependencies=dependencies)
diff --git a/pypeline/nodes/sequences.py b/pypeline/nodes/sequences.py
new file mode 100644
index 0000000..19d344f
--- /dev/null
+++ b/pypeline/nodes/sequences.py
@@ -0,0 +1,225 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from __future__ import with_statement
+
+import os
+import copy
+import itertools
+import collections
+
+import pysam
+
+import pypeline.common.fileutils as fileutils
+import pypeline.common.utilities as utilities
+import pypeline.common.sequences as sequtils
+import pypeline.common.text as text
+
+from pypeline.common.formats.fasta import \
+ FASTA
+from pypeline.common.formats.msa import \
+ MSA
+from pypeline.node import \
+ NodeError, \
+ Node, \
+ MetaNode
+from pypeline.common.bedtools import \
+ BEDRecord
+
+
+class CollectSequencesNode(Node):
+ def __init__(self, fasta_files, sequences, destination, dependencies=()):
+ """
+ fasta_files -- { taxon_name_1 : filename_1, ... }
+ sequences -- { interval_name_1, ... }
+ """
+
+ self._infiles = copy.deepcopy(fasta_files)
+ self._sequences = utilities.safe_coerce_to_frozenset(sequences)
+ self._destination = copy.copy(destination)
+ self._outfiles = [os.path.join(destination, name + ".fasta")
+ for name in self._sequences]
+
+ input_files = list(self._infiles.itervalues())
+ for filename in self._infiles.itervalues():
+ input_files.append(filename + ".fai")
+
+ desc = "<CollectSequences: %i sequences from %i files -> '%s'>" \
+ % (len(self._sequences), len(self._infiles), self._destination)
+ Node.__init__(self,
+ description=desc,
+ input_files=input_files,
+ output_files=self._outfiles,
+ dependencies=dependencies)
+
+ def _setup(self, _config, _temp):
+ for filename in self._infiles.itervalues():
+ with open(filename + ".fai") as handle:
+ sequences = set()
+ for line in handle:
+ sequences.add(line.split("\t", 1)[0])
+
+ missing_sequences = list(self._sequences - sequences)
+ if missing_sequences:
+ if len(missing_sequences) >= 4:
+ missing_sequences = missing_sequences[:3]
+ missing_sequences.append("...")
+
+ message = ("FASTA file does not contain expected "
+ "sequences:\n File = %r\n "
+ "Sequences = %s\n") \
+ % (filename, ", ".join(missing_sequences))
+ raise NodeError(message)
+
+ def _run(self, _config, temp):
+ fasta_files = []
+ for (name, filename) in sorted(self._infiles.iteritems()):
+ fasta_files.append((name, pysam.Fastafile(filename)))
+
+ for sequence_name in sorted(self._sequences):
+ filename = os.path.join(temp, sequence_name + ".fasta")
+ with open(filename, "w") as out_handle:
+ for (sample, fasta_file) in fasta_files:
+ sequence = fasta_file.fetch(sequence_name)
+ fasta = FASTA(sample, sequence_name, sequence)
+ out_handle.write(str(fasta))
+
+ def _teardown(self, _config, temp):
+ for destination in sorted(self._outfiles):
+ source = fileutils.reroot_path(temp, destination)
+ fileutils.move_file(source, destination)
+
+
+class FilterSingletonsNode(Node):
+ def __init__(self, input_file, output_file, filter_by, dependencies):
+ self._input_file = input_file
+ self._output_file = output_file
+ self._filter_by = dict(filter_by)
+ for (to_filter, groups) in self._filter_by.items():
+ # The taxa to be filtered is implied to be part of the group,
+ # but is not needed when actually carrying out the filtering
+ groups = utilities.safe_coerce_to_frozenset(groups) \
+ - utilities.safe_coerce_to_frozenset(to_filter)
+
+ if not groups:
+ raise RuntimeError("Singleton filtering must involve at least "
+ "one other taxa")
+ self._filter_by[to_filter] = groups
+
+ Node.__init__(self,
+ description="<FilterSingleton: '%s' -> '%s'>"
+ % (input_file, output_file),
+ input_files=[input_file],
+ output_files=[output_file],
+ dependencies=dependencies)
+
+ def _run(self, _config, temp):
+ alignment = MSA.from_file(self._input_file)
+ for (to_filter, groups) in self._filter_by.iteritems():
+ alignment = alignment.filter_singletons(to_filter, groups)
+
+ temp_filename = fileutils.reroot_path(temp, self._output_file)
+ with open(temp_filename, "w") as handle:
+ alignment.to_file(handle)
+ fileutils.move_file(temp_filename, self._output_file)
+
+
+class FilterSingletonsMetaNode(MetaNode):
+ def __init__(self, input_files, destination, filter_by, dependencies=()):
+ subnodes = []
+ filter_by = dict(filter_by)
+ for (filename, node) in input_files.iteritems():
+ output_filename = fileutils.reroot_path(destination, filename)
+ subnodes.append(FilterSingletonsNode(input_file=filename,
+ output_file=output_filename,
+ filter_by=filter_by,
+ dependencies=node))
+
+ MetaNode.__init__(self,
+ description="<FilterSingleton: %i files -> '%s'>"
+ % (len(subnodes), destination),
+ subnodes=subnodes,
+ dependencies=dependencies)
+
+
+class ExtractReferenceNode(Node):
+ def __init__(self, reference, bedfile, outfile, dependencies=()):
+ self._reference = reference
+ self._bedfile = bedfile
+ self._outfile = outfile
+
+ description = "<ExtractReference: '%s' -> '%s'>" \
+ % (reference, outfile)
+ Node.__init__(self,
+ description=description,
+ input_files=[reference, bedfile],
+ output_files=[outfile],
+ dependencies=dependencies)
+
+ def _run(self, _config, temp):
+ def _by_name(bed):
+ return bed.name
+
+ fastafile = pysam.Fastafile(self._reference)
+ seqs = collections.defaultdict(list)
+ with open(self._bedfile) as bedfile:
+ bedrecords = text.parse_lines_by_contig(bedfile, BEDRecord)
+ for (contig, beds) in sorted(bedrecords.iteritems()):
+ beds.sort(key=lambda bed: (bed.contig, bed.name, bed.start))
+
+ for (gene, gene_beds) in itertools.groupby(beds, _by_name):
+ gene_beds = tuple(gene_beds)
+ sequence = self._collect_sequence(fastafile, gene_beds)
+ seqs[(contig, gene)] = sequence
+
+ temp_file = os.path.join(temp, "sequences.fasta")
+ with open(temp_file, "w") as out_file:
+ for ((_, gene), sequence) in sorted(seqs.items()):
+ FASTA(gene, None, sequence).write(out_file)
+
+ fileutils.move_file(temp_file, self._outfile)
+
+ @classmethod
+ def _collect_sequence(cls, fastafile, beds):
+ sequence = []
+ for bed in beds:
+ fragment = fastafile.fetch(bed.contig, bed.start, bed.end)
+ if len(fragment) != (bed.end - bed.start):
+ cls._report_failure(bed, fragment)
+
+ sequence.append(fragment)
+ sequence = "".join(sequence)
+
+ if any((bed.strand == "-") for bed in beds):
+ assert all((bed.strand == "-") for bed in beds)
+ sequence = sequtils.reverse_complement(sequence)
+
+ return sequence
+
+ @classmethod
+ def _report_failure(cls, bed, fragment):
+ message = "Failed to extract region from " \
+ "reference sequence at %s:%i-%i; got " \
+ "%i bp, but expected %i bp." \
+ % (bed.contig, bed.start, bed.end,
+ len(fragment), (bed.end - bed.start))
+ raise NodeError(message)
diff --git a/pypeline/nodes/validation.py b/pypeline/nodes/validation.py
new file mode 100644
index 0000000..f50d8eb
--- /dev/null
+++ b/pypeline/nodes/validation.py
@@ -0,0 +1,359 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import io
+import os
+import re
+import subprocess
+import collections
+from itertools import \
+ izip_longest
+
+import pysam
+
+from pypeline.node import \
+ Node, \
+ NodeError
+from pypeline.common.fileutils import \
+ describe_files, \
+ make_dirs
+from pypeline.common.utilities import \
+ chain_sorted
+
+import pypeline.common.formats.fastq as fastq
+import pypeline.common.sampling as sampling
+import pypeline.tools.factory as factory
+
+
+class DetectInputDuplicationNode(Node):
+ """Attempts to detect reads included multiple times as input based on the
+ presence of reads with identical names AND sequences. This is compromise
+ between sensitivity, specificity, and running time.
+
+ A possible refinement would be to consider reads with the same name where
+ one read is the prefix of the other (due to different amounts of trimming
+ or collapsing of reads).
+ """
+
+ def __init__(self, input_files, output_file, dependencies=()):
+ Node.__init__(self,
+ description="<Detect Input Duplication: %s>"
+ % (describe_files(input_files)),
+ input_files=input_files,
+ output_files=output_file,
+ dependencies=dependencies)
+
+ def run(self, _):
+ handles = []
+ try:
+ sequences = []
+ for fpath in self.input_files:
+ handle = pysam.Samfile(fpath)
+ handles.append(handle)
+
+ sequence = izip_longest(handle, (), fillvalue=fpath)
+ sequences.append(sequence)
+
+ position = 0
+ records = chain_sorted(*sequences, key=self._key_by_tid_pos)
+ observed_reads = collections.defaultdict(list)
+ for (record, fpath) in records:
+ if record.pos != position:
+ self._process_reads(observed_reads, self.output_files)
+ observed_reads.clear()
+ position = record.pos
+ elif record.is_unmapped:
+ break
+
+ # Ignore supplementary / secondary alignments
+ if not record.flag & 0x900:
+ key = (record.is_reverse, record.qname,
+ record.seq, record.qual)
+ observed_reads[key].append(fpath)
+ self._process_reads(observed_reads, self.output_files)
+
+ # Everything is ok, touch the output files
+ for fpath in self.output_files:
+ make_dirs(os.path.dirname(fpath))
+ with open(fpath, "w"):
+ pass
+ finally:
+ for handle in handles:
+ handle.close()
+
+ @classmethod
+ def _process_reads(cls, observed_reads, output_files):
+ for ((_, name, _, _), fpaths) in observed_reads.iteritems():
+ if len(fpaths) > 1:
+ message = ["Read %r found in multiple files:" % (name,)]
+ for fpath in fpaths:
+ message.append(" - %r" % (fpath,))
+ message.append("")
+ message.append("This indicates that the same data files have "
+ "been included multiple times in the project. "
+ "Please review the input files used in this "
+ "project, to ensure that each set of data is "
+ "included only once.\n\n"
+
+ "If this is not the case, then execute the "
+ "following command(s) to mark this test as having "
+ "succeeded:")
+
+ for fpath in output_files:
+ message.append("$ touch '%s'" % (fpath,))
+
+ raise NodeError("\n".join(message))
+
+ @classmethod
+ def _key_by_tid_pos(cls, record):
+ return (record[0].tid, record[0].pos)
+
+
+class ValidateFASTQFilesNode(Node):
+ def __init__(self, input_files, output_file, offset, dependencies=()):
+ self._offset = offset
+ Node.__init__(self,
+ description="<Validate FASTQ Files: %s>"
+ % (describe_files(input_files)),
+ input_files=input_files,
+ output_files=output_file,
+ dependencies=dependencies)
+
+ def _run(self, _config, _temp):
+ check_fastq_files(self.input_files, self._offset, True)
+ output_file = tuple(self.output_files)[0]
+ make_dirs(os.path.dirname(output_file))
+ with open(output_file, "w"):
+ pass
+
+
+class ValidateFASTAFilesNode(Node):
+ def __init__(self, input_files, output_file, dependencies=()):
+ Node.__init__(self,
+ description="<Validate FASTA Files: %s>"
+ % (describe_files(input_files)),
+ input_files=input_files,
+ output_files=output_file,
+ dependencies=dependencies)
+
+ assert len(self.output_files) == 1, self.output_files
+
+ def _run(self, _config, _temp):
+ for filename in self.input_files:
+ check_fasta_file(filename)
+ output_file, = self.output_files
+ make_dirs(os.path.dirname(output_file))
+ with open(output_file, "w"):
+ pass
+
+
+def check_fastq_files(filenames, required_offset, allow_empty=False):
+ for filename in filenames:
+ qualities = _read_sequences(filename)
+ offsets = fastq.classify_quality_strings(qualities)
+ if offsets == fastq.OFFSET_BOTH:
+ raise NodeError("FASTQ file contains quality scores with both "
+ "quality offsets (33 and 64); file may be "
+ "unexpected format or corrupt. Please ensure "
+ "that this file contains valid FASTQ reads from a "
+ "single source.\n Filename = %r" % (filename,))
+ elif offsets == fastq.OFFSET_MISSING:
+ if allow_empty and not qualities:
+ return
+
+ raise NodeError("FASTQ file did not contain quality scores; file "
+ "may be unexpected format or corrupt. Ensure that "
+ "the file is a FASTQ file.\n Filename = %r"
+ % (filename,))
+ elif offsets not in (fastq.OFFSET_AMBIGIOUS, required_offset):
+ raise NodeError("FASTQ file contains quality scores with wrong "
+ "quality score offset (%i); expected reads with "
+ "quality score offset %i. Ensure that the "
+ "'QualityOffset' specified in the makefile "
+ "corresponds to the input.\n Filename = %s"
+ % (offsets, required_offset, filename))
+
+
+def _read_sequences(filename):
+ cat_call = factory.new("cat")
+ cat_call.add_multiple_values((filename,))
+ cat_call = cat_call.finalized_call
+
+ cat = None
+ try:
+ cat = subprocess.Popen(cat_call,
+ bufsize=io.DEFAULT_BUFFER_SIZE,
+ stderr=subprocess.PIPE,
+ stdout=subprocess.PIPE)
+ qualities = _collect_qualities(cat.stdout, filename)
+
+ return sampling.reservoir_sampling(qualities, 100000)
+ except:
+ if cat:
+ cat.kill()
+ cat.wait()
+ cat = None
+ raise
+ finally:
+ rc_cat = cat.wait() if cat else 0
+ if rc_cat:
+ message = "Error running 'paleomix cat':\n" \
+ " Unicat return-code = %i\n\n%s" \
+ % (rc_cat, cat.stderr.read())
+ raise NodeError(message)
+
+
+def _collect_qualities(handle, filename):
+ header = handle.readline()
+ while header:
+ sequence = handle.readline()
+ seperator = handle.readline()
+ qualities = handle.readline()
+
+ if not header.startswith("@"):
+ if header.startswith(">"):
+ raise NodeError("Input file appears to be in FASTA format "
+ "(header starts with '>', expected '@'), "
+ "but only FASTQ files are supported\n"
+ "Filename = %r" % (filename,))
+
+ raise NodeError("Input file lacks FASTQ header (expected '@', "
+ "found %r), but only FASTQ files are supported\n"
+ " Filename = %r" % (header[:1], filename))
+ elif not qualities:
+ raise NodeError("Partial record found; is not 4 lines long:\n"
+ "Filename = %r\n Record = '%s'"
+ % (filename, header.rstrip()))
+ elif not seperator.startswith("+"):
+ raise NodeError("Input file lacks FASTQ seperator (expected '+', "
+ "found %r), but only FASTQ files are supported\n"
+ " Filename = %r" % (seperator[:1], filename))
+ elif len(sequence) != len(qualities):
+ raise NodeError("Input file contains malformed FASTQ records; "
+ "length of sequence / qualities are not the "
+ "same.\n Filename = %r\n Record = '%s'"
+ % (filename, header.rstrip()))
+
+ yield qualities
+ header = handle.readline()
+
+
+def check_fasta_file(filename):
+ with open(filename) as handle:
+ namecache = {}
+ state, linelength, linelengthchanged = _NA, None, False
+ for linenum, line in enumerate(handle, start=1):
+ # Only \n is allowed as not all tools (e.g. GATK) handle \r
+ line = line.rstrip('\n')
+
+ if not line:
+ if state in (_NA, _IN_WHITESPACE):
+ continue
+ elif state == _IN_HEADER:
+ raise NodeError("Expected FASTA sequence, found empty line"
+ "\n Filename = %r\n Line = %r"
+ % (filename, linenum))
+ elif state == _IN_SEQUENCE:
+ state = _IN_WHITESPACE
+ else:
+ assert False
+ elif line.startswith(">"):
+ if state in (_NA, _IN_SEQUENCE, _IN_WHITESPACE):
+ _validate_fasta_header(filename, linenum, line, namecache)
+ state = _IN_HEADER
+ linelength = None
+ linelengthchanged = False
+ elif state == _IN_HEADER:
+ raise NodeError("Empty sequences not allowed\n"
+ " Filename = %r\n Line = %r"
+ % (filename, linenum - 1))
+ else:
+ assert False
+ else:
+ if state == _NA:
+ raise NodeError("Expected FASTA header, found %r\n"
+ " Filename = %r\n Line = %r"
+ % (line, filename, linenum))
+ elif state == _IN_HEADER:
+ _validate_fasta_line(filename, linenum, line)
+ linelength = len(line)
+ state = _IN_SEQUENCE
+ elif state == _IN_SEQUENCE:
+ _validate_fasta_line(filename, linenum, line)
+ # If the length has changed, then that line must be the
+ # last line in the record, which may be shorter due to the
+ # sequence length. This is because the FAI index format
+ # expects that each line has the same length.
+ if linelengthchanged or (linelength < len(line)):
+ raise NodeError("Lines in FASTQ files must be of same "
+ "length\n Filename = %r\n"
+ " Line = %r" % (filename, linenum))
+ elif linelength != len(line):
+ linelengthchanged = True
+ elif state == _IN_WHITESPACE:
+ raise NodeError("Empty lines not allowed in sequences\n"
+ " Filename = %r\n Line = %r"
+ % (filename, linenum))
+ else:
+ assert False
+
+ if state in (_NA, _IN_HEADER):
+ raise NodeError("File does not contain any sequences"
+ " Filename = %r" % (filename, ))
+
+# Standard nucleotides + UIPAC codes
+_VALID_CHARS_STR = "ACGTN" "RYSWKMBDHV"
+_VALID_CHARS = frozenset(_VALID_CHARS_STR.upper() + _VALID_CHARS_STR.lower())
+_NA, _IN_HEADER, _IN_SEQUENCE, _IN_WHITESPACE = range(4)
+
+
+def _validate_fasta_header(filename, linenum, line, cache):
+ name = line.split(" ", 1)[0][1:]
+ if not name:
+ raise NodeError("FASTA sequence must have non-empty name\n"
+ " Filename = %r\n Line = %r\n"
+ % (filename, linenum))
+ elif not _RE_REF_NAME.match(name):
+ raise NodeError("Invalid name for FASTA sequence: %r\n"
+ " Filename = %r\n Line = %r\n"
+ % (name, filename, linenum))
+ elif name in cache:
+ raise NodeError("FASTA sequences have identical name\n"
+ " Filename = %r\n Name = %r\n"
+ " Line 1 = %r\n Line 2 = %r\n"
+ % (filename, name, linenum, cache[name]))
+ cache[name] = linenum
+_RE_REF_NAME = re.compile("[!-()+-<>-~][!-~]*")
+
+
+def _validate_fasta_line(filename, linenum, line):
+ invalid_chars = frozenset(line) - _VALID_CHARS
+ if invalid_chars:
+ if invalid_chars == frozenset('\r'):
+ raise NodeError("FASTA file contains carriage-returns ('\\r')!\n"
+ "Please convert file to unix format, using e.g. "
+ "dos2unix.\n Filename = %r\n" % (filename,))
+
+ raise NodeError("FASTA sequence contains invalid characters\n"
+ " Filename = %r\n Line = %r\n"
+ " Invalid characters = %r"
+ % (filename, linenum, "".join(invalid_chars)))
diff --git a/pypeline/pipeline.py b/pypeline/pipeline.py
new file mode 100644
index 0000000..da6b13e
--- /dev/null
+++ b/pypeline/pipeline.py
@@ -0,0 +1,442 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from __future__ import print_function
+
+import os
+import errno
+import Queue
+import pickle
+import signal
+import logging
+import multiprocessing
+
+import pypeline.ui
+import pypeline.logger
+
+from pypeline.node import Node, MetaNode
+from pypeline.nodegraph import NodeGraph, NodeGraphError
+from pypeline.common.utilities import \
+ safe_coerce_to_tuple, \
+ fast_pickle_test
+from pypeline.common.versions import \
+ VersionRequirementError
+
+
+class Pypeline(object):
+ def __init__(self, config):
+ self._nodes = []
+ self._config = config
+ self._logger = logging.getLogger(__name__)
+ # Set if a keyboard-interrupt (SIGINT) has been caught
+ self._interrupted = False
+ self._queue = multiprocessing.Queue()
+ self._pool = multiprocessing.Pool(1, _init_worker, (self._queue,))
+
+ def add_nodes(self, *nodes):
+ for subnodes in safe_coerce_to_tuple(nodes):
+ for node in safe_coerce_to_tuple(subnodes):
+ if not isinstance(node, Node):
+ raise TypeError("Node object expected, recieved %s"
+ % repr(node))
+ self._nodes.append(node)
+
+ def run(self, max_running=1, dry_run=False, progress_ui="verbose"):
+ assert max_running >= 1, max_running
+ _update_nprocesses(self._pool, max_running)
+
+ try:
+ nodegraph = NodeGraph(self._nodes)
+ except NodeGraphError, error:
+ self._logger.error(error)
+ return False
+
+ for node in nodegraph.iterflat():
+ if (node.threads > max_running) and not isinstance(node, MetaNode):
+ message = "Node(s) use more threads than the max allowed; " \
+ "the pipeline may therefore use more than the " \
+ "expected number of threads.\n"
+ pypeline.ui.print_warn(message)
+ break
+
+ if dry_run:
+ progress_printer = pypeline.ui.QuietUI()
+ nodegraph.add_state_observer(progress_printer)
+ progress_printer.flush()
+ progress_printer.finalize()
+ self._logger.info("Dry run done ...")
+ return True
+
+ old_handler = signal.signal(signal.SIGINT, self._sigint_handler)
+ try:
+ return self._run(nodegraph, max_running, progress_ui)
+ finally:
+ signal.signal(signal.SIGINT, old_handler)
+
+ return False
+
+ def _run(self, nodegraph, max_running, progress_ui):
+ # Dictionary of nodes -> async-results
+ running = {}
+ # Set of remaining nodes to be run
+ remaining = set(nodegraph.iterflat())
+
+ is_ok = True
+ progress_printer = pypeline.ui.get_ui(progress_ui)
+ nodegraph.add_state_observer(progress_printer)
+
+ with pypeline.ui.CommandLine() as cli:
+ while running or (remaining and not self._interrupted):
+ is_ok &= self._poll_running_nodes(running,
+ nodegraph,
+ self._queue)
+
+ if not self._interrupted: # Prevent starting of new nodes
+ self._start_new_tasks(remaining, running, nodegraph,
+ max_running, self._pool)
+
+ if running:
+ progress_printer.flush()
+
+ max_running = cli.process_key_presses(nodegraph, max_running)
+ _update_nprocesses(self._pool, max_running)
+
+ self._pool.close()
+ self._pool.join()
+
+ progress_printer.flush()
+ progress_printer.finalize()
+
+ return is_ok
+
+ def _start_new_tasks(self, remaining, running, nodegraph, max_threads,
+ pool):
+ started_nodes = []
+ idle_processes = max_threads \
+ - sum(node.threads for (node, _) in running.itervalues())
+
+ if not idle_processes:
+ return False
+
+ for node in remaining:
+ if not running or (idle_processes >= node.threads):
+ state = nodegraph.get_node_state(node)
+ if state == nodegraph.RUNABLE:
+ try:
+ # The multi-processing module relies on pickling
+ fast_pickle_test(node)
+ except pickle.PicklingError, error:
+ self._logger.error("Node cannot be pickled; please "
+ "file a bug-report:\n"
+ "\tNode: %s\n\tError: %s"
+ % (self, error))
+ nodegraph.set_node_state(node, nodegraph.ERROR)
+ started_nodes.append(node)
+ continue
+
+ key = id(node)
+ proc_args = (key, node, self._config)
+ running[key] = (node, pool.apply_async(_call_run,
+ args=proc_args))
+ started_nodes.append(node)
+
+ nodegraph.set_node_state(node, nodegraph.RUNNING)
+ idle_processes -= node.threads
+ elif state in (nodegraph.DONE, nodegraph.ERROR):
+ started_nodes.append(node)
+ elif idle_processes <= 0:
+ break
+
+ for node in started_nodes:
+ remaining.remove(node)
+
+ def _poll_running_nodes(self, running, nodegraph, queue):
+ errors = None
+ blocking = False
+
+ while running and not errors:
+ node, proc = self._get_finished_node(queue, running, blocking)
+ if not node:
+ if blocking:
+ break
+
+ blocking = True
+ continue
+
+ try:
+ # Re-raise exceptions from the node-process
+ proc.get()
+ except (KeyboardInterrupt, SystemExit):
+ raise
+ except Exception, errors:
+ nodegraph.set_node_state(node, nodegraph.ERROR)
+
+ errors = "\n".join(("\t" + line)
+ for line in str(errors).strip().split("\n"))
+ self._logger.error("%s: Error occurred running command:\n%s\n",
+ node, errors)
+
+ if not errors:
+ nodegraph.set_node_state(node, nodegraph.DONE)
+
+ return not errors
+
+ @property
+ def nodes(self):
+ return set(self._nodes)
+
+ def walk_nodes(self, func):
+ skip_nodes = set()
+
+ def _walk_nodes(nodes):
+ for node in nodes:
+ if node in skip_nodes:
+ continue
+ elif not func(node):
+ return False
+
+ skip_nodes.add(node)
+ if not _walk_nodes(node.subnodes):
+ return False
+ elif not _walk_nodes(node.dependencies):
+ return False
+ return True
+
+ _walk_nodes(self._nodes)
+
+ def list_output_files(self):
+ output_files = {}
+ nodegraph = NodeGraph(self._nodes)
+
+ def collect_output_files(node):
+ state = nodegraph.get_node_state(node)
+ for filename in node.output_files:
+ output_files[os.path.abspath(filename)] = state
+ return True
+
+ self.walk_nodes(collect_output_files)
+
+ return output_files
+
+ def list_required_executables(self):
+ requirements = {}
+
+ def collect_requirements(node):
+ for executable in node.executables:
+ if executable not in requirements:
+ requirements[executable] = set()
+
+ for requirement in node.requirements:
+ if requirement.name not in requirements:
+ requirements[requirement.name] = set()
+
+ requirements[requirement.name].add(requirement)
+
+ executable = requirement.executable
+ if not requirements.get(executable):
+ requirements.pop(executable, None)
+
+ return True
+
+ self.walk_nodes(collect_requirements)
+ return requirements
+
+ def print_output_files(self, print_func=print):
+ output_files = self.list_output_files()
+
+ for filename, state in sorted(output_files.iteritems()):
+ if state == NodeGraph.DONE:
+ state = "Ready "
+ elif state == NodeGraph.OUTDATED:
+ state = "Outdated "
+ else:
+ state = "Missing "
+
+ print_func("%s\t%s" % (state, filename))
+
+ def print_required_executables(self, print_func=print):
+ pipeline_executables = self.list_required_executables()
+ print_func("{: <40s} {: <10s} {}".format("Executable",
+ "Version",
+ "Required version"))
+
+ for (name, requirements) in sorted(pipeline_executables.items()):
+ if not requirements:
+ print_func(name)
+
+ for requirement in requirements:
+ try:
+ version = ".".join(map(str, requirement.version))
+ except VersionRequirementError:
+ version = "UNKNOWN"
+
+ print_func("{: <40s} v{: <10s} {}".format(name,
+ version,
+ requirement.checks))
+
+ def _sigint_handler(self, signum, frame):
+ """Signal handler; see signal.signal."""
+ if not self._interrupted:
+ self._interrupted = True
+ self._logger.error("\nKeyboard interrupt detected, waiting for "
+ "current tasks to complete ... Press CTRL-C "
+ "again to force termination.\n")
+ else:
+ self._pool.terminate()
+ raise signal.default_int_handler(signum, frame)
+
+ def to_dot(self, destination):
+ """Writes a simlpe dot file to the specified destination, representing
+ the full dependency tree, after MetaNodes have been removed. Nodes are
+ named by their class.
+ """
+ try:
+ nodegraph = NodeGraph(self._nodes)
+ except NodeGraphError, error:
+ self._logger.error(error)
+ return False
+
+ # Dict recording all dependencies / subnodes of non-MetaNodes
+ # MetaNode dependencies / subnodes are collapsed
+ meta_dependencies = {}
+ # Dict recording if anything depends on a speific node
+ meta_rev_dependencies = {}
+ for node in nodegraph.iterflat():
+ if not isinstance(node, MetaNode):
+ selection = set()
+ candidates = list(node.subnodes | node.dependencies)
+ while candidates:
+ candidate = candidates.pop()
+ if isinstance(candidate, MetaNode):
+ candidates.extend(candidate.subnodes)
+ candidates.extend(candidate.dependencies)
+ else:
+ selection.add(candidate)
+
+ meta_dependencies[node] = selection
+ for dep in selection:
+ meta_rev_dependencies[dep] = True
+
+ return self._write_dot(destination,
+ meta_dependencies,
+ meta_rev_dependencies)
+
+ @classmethod
+ def _write_dot(cls, destination, meta_dependencies, meta_rev_dependencies):
+ """Writes simple dot file, in which each node is connected to their
+ dependencies, using the object IDs as the node names. Labels are
+ derived from the class names, excluding any "Node" postfix.
+ """
+ with open(destination, "w") as out:
+ out.write("digraph G {\n")
+ out.write(" graph [ dpi = 75 ];\n")
+ out.write(" node [shape=record,width=.1,height=.1];\n")
+ out.write(" splines=ortho;\n\n")
+
+ for node, dependencies in meta_dependencies.iteritems():
+ node_id = "Node_%i" % (id(node),)
+ node_type = node.__class__.__name__
+ if node_type.endswith("Node"):
+ node_type = node_type[:-4]
+
+ rank = None
+ color = "white"
+ if not meta_dependencies.get(node):
+ color = "red"
+ elif not meta_rev_dependencies.get(node):
+ color = "green"
+ rank = "sink"
+
+ if rank is not None:
+ out.write(" {")
+ out.write(" rank = %s;\n " % (rank,))
+
+ out.write(' %s [label="%s"; fillcolor=%s; style=filled]\n'
+ % (node_id, node_type, color))
+
+ if rank is not None:
+ out.write(" }")
+
+ for dependency in dependencies:
+ dep_id = "Node_%i" % (id(dependency),)
+ out.write(" %s -> %s\n" % (dep_id, node_id))
+ out.write("\n")
+
+ out.write("}\n")
+
+ return True
+
+ @classmethod
+ def _get_finished_node(cls, queue, running, blocking):
+ """Returns a tuple containing a node that has finished running
+ and it's async-result, or None for both if no such node could
+ be found (and blocking is False), or if an interrupt occured
+ while waiting for a node to finish.
+
+ If blocking is True, the function will timeout after 0.1s.
+ """
+ try:
+ key = queue.get(blocking, 0.1)
+ return running.pop(key)
+ except IOError, error:
+ # User pressed ctrl-c (SIGINT), or similar event ...
+ if error.errno != errno.EINTR:
+ raise
+ except Queue.Empty:
+ pass
+ return None, None
+
+
+def _init_worker(queue):
+ """Init function for subprocesses created by multiprocessing.Pool: Ensures
+ that KeyboardInterrupts only occur in the main process, allowing us to do
+ proper cleanup.
+ """
+ signal.signal(signal.SIGINT, signal.SIG_IGN)
+ # This is a workaround to avoid having to use multiprocessing.Manager
+ # to create the Queue objects; this is needed because the Manager class
+ # creates it own process, which inherits the signal-handlers of the main
+ # process, causing some rather odd behavior when the user causes a SIGINT.
+ _call_run.queue = queue
+
+
+def _call_run(key, node, config):
+ """Wrapper function, required in order to call Node.run()
+ in subprocesses, since it is not possible to pickle
+ bound functions (e.g. self.run)"""
+ try:
+ return node.run(config)
+ finally:
+ # See comment in _init_worker
+ _call_run.queue.put(key)
+
+
+def _update_nprocesses(pool, processes):
+ """multiprocessing.Pool does not expose calls to change number of active
+ processes, but does in fact support this for the 'maxtasksperchild' option.
+ This function calls the related private functions to increase the number
+ of available processes."""
+ # FIXME: Catch ERRNO 11:
+ # OSError: [Errno 11] Resource temporarily unavailable
+ if pool._processes < processes:
+ pool._processes = processes
+ pool._repopulate_pool()
diff --git a/pypeline/tools/__init__.py b/pypeline/tools/__init__.py
new file mode 100644
index 0000000..90e5529
--- /dev/null
+++ b/pypeline/tools/__init__.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
diff --git a/pypeline/tools/bam_pipeline/__init__.py b/pypeline/tools/bam_pipeline/__init__.py
new file mode 100644
index 0000000..b4da426
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/__init__.py
@@ -0,0 +1,23 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import paths
diff --git a/pypeline/tools/bam_pipeline/config.py b/pypeline/tools/bam_pipeline/config.py
new file mode 100644
index 0000000..b987354
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/config.py
@@ -0,0 +1,120 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2013 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import optparse
+
+import pypeline
+import pypeline.ui
+
+from pypeline.config import \
+ ConfigError, \
+ PerHostValue, \
+ PerHostConfig
+
+
+_TARGETS_BY_NAME = ("targets", "prefixes", "samples", "libraries",
+ "lanes", "mapping", "trimming")
+
+
+def _run_config_parser(argv):
+ per_host_cfg = PerHostConfig("bam_pipeline")
+
+ usage_str = "%prog <command> [options] [makefiles]"
+ version_str = "%%prog %s" % (pypeline.__version__,)
+ parser = optparse.OptionParser(usage = usage_str, version = version_str)
+ parser.add_option("--allow-missing-input-files", action = "store_true", default = False,
+ help = "Allow processing of lanes, even if the original input files are no-longer " \
+ "accesible, if for example a network drive is down. This option should be " \
+ "used with care!")
+
+ pypeline.ui.add_optiongroup(parser,
+ ui_default=PerHostValue("running"),
+ color_default=PerHostValue("on"))
+ pypeline.logger.add_optiongroup(parser, default = PerHostValue("warning"))
+
+ group = optparse.OptionGroup(parser, "Scheduling")
+ group.add_option("--bowtie2-max-threads", type = int, default = PerHostValue(1),
+ help = "Maximum number of threads to use per BWA instance [%default]")
+ group.add_option("--bwa-max-threads", type = int, default = PerHostValue(1),
+ help = "Maximum number of threads to use per BWA instance [%default]")
+ group.add_option("--max-threads", type = int, default = per_host_cfg.max_threads,
+ help = "Maximum number of threads to use in total [%default]")
+ group.add_option("--dry-run", action = "store_true", default = False,
+ help = "If passed, only a dry-run in performed, the dependency "
+ "tree is printed, and no tasks are executed.")
+ parser.add_option_group(group)
+
+ group = optparse.OptionGroup(parser, "Required paths")
+ group.add_option("--jar-root", default = PerHostValue("~/install/jar_root", is_path = True),
+ help = "Folder containing Picard JARs (http://picard.sf.net), " \
+ "and GATK (www.broadinstitute.org/gatk). " \
+ "The latter is only required if realigning is enabled. " \
+ "[%default]")
+ group.add_option("--temp-root", default = per_host_cfg.temp_root,
+ help = "Location for temporary files and folders [%default/]")
+ group.add_option("--destination", default = None,
+ help = "The destination folder for result files. By default, files will be "
+ "placed in the same folder as the makefile which generated it.")
+ parser.add_option_group(group)
+
+ group = optparse.OptionGroup(parser, "Files and executables")
+ group.add_option("--list-output-files", action = "store_true", default = False,
+ help = "List all files generated by pipeline for the makefile(s).")
+ group.add_option("--list-orphan-files", action = "store_true", default = False,
+ help = "List all files at destination not generated by the pipeline. " \
+ "Useful for cleaning up after making changes to a makefile.")
+ group.add_option("--list-executables", action="store_true", default=False,
+ help="List all executables required by the pipeline, "
+ "with version requirements (if any).")
+ parser.add_option_group(group)
+
+ group = optparse.OptionGroup(parser, "Targets")
+ group.add_option("--target", dest = "targets", action = "append", default = [],
+ help = "Only execute nodes required to build specified target.")
+ group.add_option("--list-targets", default = None, choices = _TARGETS_BY_NAME,
+ help = "List all targets at a given resolution (%s)" \
+ % (", ".join(_TARGETS_BY_NAME),))
+ group.add_option("--to-dot-file", dest="dot_file",
+ help="Write dependency tree to the specified dot-file.")
+ parser.add_option_group(group)
+
+ group = optparse.OptionGroup(parser, "Misc")
+ group.add_option("--jre-option", dest = "jre_options", action = "append", default = PerHostValue([]),
+ help = "May be specified one or more times with options to be passed "
+ "tot the JRE (Jave Runtime Environment); e.g. to change the "
+ "maximum amount of memory (default is -Xmx4g)")
+ parser.add_option_group(group)
+
+ return per_host_cfg.parse_args(parser, argv)
+
+
+def parse_config(argv):
+ config, args = _run_config_parser(argv)
+ pypeline.ui.set_ui_colors(config.ui_colors)
+
+ config.targets = set(config.targets)
+
+ if config.list_output_files and config.list_orphan_files:
+ raise ConfigError("ERROR: Both --list-output-files and --list-orphan-files set!")
+
+ return config, args
+
diff --git a/pypeline/tools/bam_pipeline/makefile.py b/pypeline/tools/bam_pipeline/makefile.py
new file mode 100644
index 0000000..061954b
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/makefile.py
@@ -0,0 +1,688 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import sys
+import copy
+import glob
+import types
+import string
+import itertools
+import collections
+
+import pysam
+
+import pypeline.tools.bam_pipeline.paths as paths
+from pypeline.common.utilities import fill_dict
+from pypeline.common.fileutils import missing_files
+from pypeline.common.makefile import \
+ MakefileError, \
+ REQUIRED_VALUE, \
+ WithoutDefaults, \
+ read_makefile, \
+ IsInt, \
+ IsUnsignedInt, \
+ IsFloat, \
+ IsStr, \
+ IsNone, \
+ IsBoolean, \
+ And, \
+ Or, \
+ Not, \
+ ValueGE, \
+ ValueIn, \
+ ValuesIntersect, \
+ ValuesSubsetOf, \
+ StringIn, \
+ StringStartsWith, \
+ IsListOf, \
+ IsDictOf
+from pypeline.common.console import \
+ print_info, \
+ print_warn
+
+import pypeline.nodes.bwa as bwa
+import pypeline.common.versions as versions
+import pypeline.common.sequences as sequences
+
+
+_READ_TYPES = set(("Single", "Collapsed", "CollapsedTruncated", "Paired"))
+
+
+def read_makefiles(config, filenames):
+ makefiles = []
+ for filename in filenames:
+ makefile = read_makefile(filename, _VALIDATION)
+ makefile = _mangle_makefile(makefile)
+
+ makefiles.append(makefile)
+
+ return _validate_makefiles(config, makefiles)
+
+
+def _alphanum_check(whitelist):
+ description = "characters a-z, A-Z, 0-9%s allowed"
+ description %= (", and %r" % whitelist,) if whitelist else ""
+
+ whitelist += string.ascii_letters + string.digits
+
+ return And(IsStr(),
+ ValuesSubsetOf(whitelist, description=description))
+
+
+# Valid names for prefixes
+_VALID_PREFIX_NAME = \
+ And(_alphanum_check(whitelist="._-*"),
+ Not(StringIn(["Options"] + [(s + "Reads") for s in _READ_TYPES])))
+
+# Valid paths for prefixes; avoids some problems with e.g. Bowtie2
+_VALID_PREFIX_PATH = \
+ And(IsStr(), Not(ValuesIntersect("\\:?\"<>|() \t\n\v\f\r")),
+ default=REQUIRED_VALUE)
+
+# Valid strings for targets / samples / libraries / lanes
+_VALID_TARGET_NAME = \
+ And(_alphanum_check(whitelist="._-"),
+ ValueGE(2, key=len, description="at least two characters long"))
+
+
+_VALIDATION_OPTIONS = {
+ # Sequencing platform, used to tag read-groups.
+ "Platform": StringIn(("CAPILLARY", "LS454", "ILLUMINA", "SOLID",
+ "HELICOS", "IONTORRENT", "PACBIO"),
+ default="ILLUMINA"),
+ # Offset for quality scores in FASTQ files.
+ "QualityOffset": ValueIn((33, 64, "Solexa"),
+ default=33),
+ # Split a lane into multiple entries, one for each (pair of) file(s)
+ "SplitLanesByFilenames": Or(IsBoolean, IsListOf(IsStr),
+ default=True),
+ # Format to use when compressing FASTQ files ("gz" or "bz2")
+ "CompressionFormat": ValueIn(("gz", "bz2"),
+ default="bz2"),
+
+ "AdapterRemoval": {
+ "Version": ValueIn(("v1.4", "v1.5+"),
+ default="v1.5+"),
+ "--pcr1": IsStr,
+ "--pcr2": IsStr,
+ "--adapter1": IsStr,
+ "--adapter2": IsStr,
+ "--maxns": IsUnsignedInt,
+ "--minquality": IsUnsignedInt,
+ "--trimns": Or(IsNone, IsBoolean),
+ "--trimqualities": Or(IsNone, IsBoolean),
+ "--collapse": Or(IsNone, IsBoolean, default=True),
+ "--mm": Or(IsFloat, IsUnsignedInt,
+ default=3),
+ "--minlength": IsUnsignedInt(default=25),
+ "--minalignmentlength": IsUnsignedInt,
+ "--shift": IsUnsignedInt,
+ "--5prime": IsStr,
+ },
+
+ # Which aliger/mapper to use (BWA/Bowtie2)
+ "Aligners": {
+ "Program": ValueIn(("BWA", "Bowtie2"),
+ default="BWA"),
+ "BWA": {
+ # Mapping algorithm; availability depends on BWA version
+ "Algorithm": StringIn(("backtrack", "mem", "bwasw"),
+ default="backtrack"),
+
+ # Minimum mapping quality (PHREAD) of reads to retain
+ "MinQuality": IsUnsignedInt(default=0),
+ # Remove unmapped reads or not
+ "FilterUnmappedReads": IsBoolean(default=True),
+ # Use seed region during mapping
+ # Verbose name for command-line option "-l 65535"
+ "UseSeed": IsBoolean(default=True),
+ # Any number of user specific options
+ StringStartsWith("-"): Or(IsListOf(IsStr, IsInt, IsFloat),
+ Or(IsStr, IsInt, IsFloat, IsNone)),
+ },
+ "Bowtie2": {
+ # Minimum mapping quality (PHREAD) of reads to retain
+ "MinQuality": IsUnsignedInt(default=0),
+ # Remove unmapped reads or not
+ "FilterUnmappedReads": IsBoolean(default=True),
+ # Any number of user specific options
+ StringStartsWith("-"): Or(IsListOf(IsStr, IsInt, IsFloat),
+ Or(IsStr, IsInt, IsFloat, IsNone)),
+ },
+ },
+
+ # Does sample contain PCR duplicates / what to do about it.
+ # True is equivalent of 'remove'.
+ "PCRDuplicates": StringIn((True, False, 'mark', 'filter'),
+ default='filter'),
+ # Qualities should be rescaled using mapDamage
+ "RescaleQualities": IsBoolean(default=False),
+
+ "mapDamage": {
+ # Tabulation options
+ "--downsample": Or(IsUnsignedInt, IsFloat),
+ "--length": IsUnsignedInt,
+ "--around": IsUnsignedInt,
+ "--min-basequal": IsUnsignedInt,
+
+ # Plotting options
+ "--ymax": IsFloat,
+ "--readplot": IsUnsignedInt,
+ "--refplot": IsUnsignedInt,
+
+ # Model options
+ "--rand": IsUnsignedInt,
+ "--burn": IsUnsignedInt,
+ "--adjust": IsUnsignedInt,
+ "--iter": IsUnsignedInt,
+ "--forward": IsNone,
+ "--reverse": IsNone,
+ "--var-disp": IsNone,
+ "--jukes-cantor": IsNone,
+ "--diff-hangs": IsNone,
+ "--fix-nicks": IsNone,
+ "--use-raw-nick-freq": IsNone,
+ "--single-stranded": IsNone,
+ "--seq-length": IsUnsignedInt,
+ },
+
+ # Exclude READ_TYPES from alignment/analysis
+ "ExcludeReads": Or(IsNone,
+ ValuesSubsetOf(_READ_TYPES),
+ default=[]),
+
+ # Features of pipeline
+ "Features": Or(IsNone,
+ ValuesSubsetOf(("Raw BAM", "Realigned BAM", "Coverage",
+ "Summary", "mapDamage", "Depths",
+ "DuplicateHist")),
+ default=["Realigned BAM", "Coverage",
+ "Summary", "mapDamage", "Depths"]),
+}
+
+
+_VALIDATION = {
+ "Options": _VALIDATION_OPTIONS,
+
+ "Prefixes": {
+ _VALID_PREFIX_NAME: {
+ "Path": _VALID_PREFIX_PATH,
+ "Label": ValueIn(("nuclear", "mitochondrial", "chloroplast",
+ "plasmid", "bacterial", "viral")),
+ "RegionsOfInterest": IsDictOf(IsStr, IsStr),
+ },
+ },
+
+ _VALID_TARGET_NAME: { # Target
+ _VALID_TARGET_NAME: { # Sample
+ _VALID_TARGET_NAME: { # Library
+ _VALID_TARGET_NAME: Or(IsStr, IsDictOf(IsStr, IsStr)),
+
+ "Options": WithoutDefaults(_VALIDATION_OPTIONS),
+ },
+
+ "Options": WithoutDefaults(_VALIDATION_OPTIONS),
+ },
+
+ "Options": WithoutDefaults(_VALIDATION_OPTIONS),
+ },
+}
+
+
+def _mangle_makefile(makefile):
+ makefile = copy.deepcopy(makefile)
+ makefile["Options"] = makefile["Makefile"].pop("Options")
+ makefile["Prefixes"] = makefile["Makefile"].pop("Prefixes")
+ makefile["Targets"] = makefile.pop("Makefile")
+
+ _update_options(makefile)
+ _update_prefixes(makefile)
+ _update_lanes(makefile)
+ _update_tags(makefile)
+
+ _split_lanes_by_filenames(makefile)
+
+ return makefile
+
+
+def _update_options(makefile):
+ def _update_possibly_empty_lists(options):
+ for key in ("Features", "ExcludeReads"):
+ if options[key] is None:
+ options[key] = []
+
+ def _do_update_options(options, data, path):
+ options = copy.deepcopy(options)
+ if "Options" in data:
+ if "Features" in data["Options"]:
+ raise MakefileError("Features may only be specified at root "
+ "level, not at %r" % (":".join(path),))
+
+ # Fill out missing values using those of prior levels
+ options = fill_dict(destination=data.pop("Options"),
+ source=options)
+ _update_possibly_empty_lists(options)
+
+ if len(path) < 2:
+ for key in data:
+ if key != "Options":
+ _do_update_options(options, data[key], path + (key,))
+ else:
+ data["Options"] = options
+
+ for data in makefile["Targets"].itervalues():
+ _update_possibly_empty_lists(makefile["Options"])
+ _do_update_options(makefile["Options"], data, ())
+
+
+def _update_prefixes(makefile):
+ prefixes = {}
+ for (name, values) in makefile.get("Prefixes", {}).iteritems():
+ filename = values["Path"]
+ if "*" in name[:-1]:
+ raise MakefileError("The character '*' is not allowed in Prefix "
+ "names; if you use to select .fasta files "
+ "using a search-string, then use the prefix "
+ "name '%s*' instead and specify the wildcards "
+ "in the 'Path' instead."
+ % (name.replace("*", "",)))
+ elif name.endswith("*"):
+ records = []
+ for fname in glob.glob(filename):
+ name = os.path.basename(fname).split(".")[0]
+ _VALID_PREFIX_NAME(("Prefixes", name), name)
+ new_prefix = copy.copy(values)
+ new_prefix["Path"] = fname
+
+ records.append((name, new_prefix))
+ if not records:
+ raise MakefileError("Did not find any matches for glob %s"
+ % repr(filename))
+ else:
+ records = [(name, values)]
+
+ for (name, record) in records:
+ if name in prefixes:
+ raise MakefileError("Multiple prefixes with the same name: %s"
+ % name)
+
+ if not record["Path"].endswith(".fasta"):
+ raise MakefileError("Path for prefix %r does not end with "
+ ".fasta:\n %r" % (name, record["Path"]))
+
+ record["Name"] = name
+ record["Reference"] = record["Path"]
+ prefixes[name] = record
+
+ if not prefixes:
+ raise MakefileError("At least one prefix must be specified")
+ makefile["Prefixes"] = prefixes
+
+
+def _update_lanes(makefile):
+ prefixes = makefile["Prefixes"]
+ for (target_name, samples) in makefile["Targets"].iteritems():
+ for (sample_name, libraries) in samples.iteritems():
+ for (library_name, lanes) in libraries.iteritems():
+ options = lanes.pop("Options")
+
+ for (lane, data) in lanes.iteritems():
+ path = (target_name, sample_name, library_name, lane)
+ lane_type = _determine_lane_type(prefixes, data, path)
+ lanes[lane] = {"Type": lane_type,
+ "Data": data,
+ "Options": options}
+
+
+def _determine_lane_type(prefixes, data, path):
+ if isinstance(data, types.StringTypes):
+ return "Raw"
+ elif isinstance(data, types.DictType):
+ if all((key in _READ_TYPES) for key in data):
+ for (key, files) in data.iteritems():
+ is_paired = paths.is_paired_end(files)
+
+ if is_paired and (key != "Paired"):
+ raise MakefileError("Error at Barcode level; Path "
+ "includes {Pair} key, but read-type "
+ "is not Paired:\n "
+ "%s:%s" % (":".join(path), key))
+ elif not is_paired and (key == "Paired"):
+ raise MakefileError("Error at Barcode level; Paired pre-"
+ "trimmed reads specified, but path "
+ "does not contain {Pair} key:\n "
+ "%s:%s" % (":".join(path), key))
+
+ return "Trimmed"
+ elif all((key in prefixes) for key in data):
+ return "BAMs"
+
+ raise MakefileError("Error at Barcode level; keys must either be "
+ "prefix-names, OR 'Paired', 'Single' or 'Collapsed'. "
+ "Found: %s" % (", ".join(data),))
+
+
+def _update_tags(makefile):
+ for (target, samples) in makefile["Targets"].iteritems():
+ for (sample, libraries) in samples.iteritems():
+ for (library, barcodes) in libraries.iteritems():
+ for (barcode, record) in barcodes.iteritems():
+ tags = {"Target": target,
+ "ID": library,
+ "SM": sample,
+ "LB": library,
+ # Source/Current PU may differ if a lane has been
+ # split by filenames, in which case PU_src contains
+ # the original PU, and PU_cur is a derived PU.
+ "PU_src": barcode,
+ "PU_cur": barcode,
+ "PG": record["Options"]["Aligners"]["Program"],
+ "PL": record["Options"]["Platform"].upper()}
+
+ record["Tags"] = tags
+
+
+def _split_lanes_by_filenames(makefile):
+ iterator = _iterate_over_records(makefile)
+ for (target, sample, library, barcode, record) in iterator:
+ if record["Type"] == "Raw":
+ template = record["Data"]
+ record["Data"] = files = paths.collect_files(template)
+ split = record["Options"]["SplitLanesByFilenames"]
+
+ if (split == True) or (isinstance(split, list) and (barcode in split)):
+ if any(missing_files(file_set) for file_set in files.itervalues()):
+ raise MakefileError("Unable to split by filename for "
+ "search-string '%s', did not find any "
+ "files; please verify that the path"
+ "is correct and update the makefile."
+ % template)
+ elif any(len(v) > 1 for v in files.itervalues()):
+ template = makefile["Targets"][target][sample][library].pop(barcode)
+ keys = ("SE",) if ("SE" in files) else ("PE_1", "PE_2")
+
+ input_files = [files[key] for key in keys]
+ input_files_iter = itertools.izip_longest(*input_files)
+ for (index, filenames) in enumerate(input_files_iter, start=1):
+ assert len(filenames) == len(keys)
+ assert len(filenames[0]) == len(filenames[-1])
+ new_barcode = "%s_%03i" % (barcode, index)
+
+ current = copy.deepcopy(template)
+ current["Data"] = dict((key, [filename]) for (key, filename) in zip(keys, filenames))
+ current["Tags"]["PU_cur"] = new_barcode
+
+ makefile["Targets"][target][sample][library][new_barcode] = current
+
+
+def _validate_makefiles(config, makefiles):
+ for makefile in makefiles:
+ _validate_makefile_libraries(makefile)
+ _validate_makefile_adapters(makefile)
+ _validate_makefiles_duplicate_targets(config, makefiles)
+ _validate_makefiles_duplicate_files(makefiles)
+ _validate_makefiles_features(makefiles)
+ _validate_hg_prefixes(makefiles)
+
+ return makefiles
+
+
+def _validate_makefile_adapters(makefile):
+ """Checks for the default adapter sequences specified in the wrong
+ orientation for AdapterRemoval, which is a typical mistake when using
+ the --pcr2 option.
+ """
+ # The non-reverse complemented mate 2 adapter, as seen in raw FASTQ reads
+ adapter_2 = "AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT"
+
+ tests = {
+ # --pcr2 expects the reverse complement of the mate 2 adapter seq.
+ "--pcr2": adapter_2,
+ # --adapter2 (AdapterRemoval v2) expects the regular sequence
+ "--adapter2": sequences.reverse_complement(adapter_2)
+ }
+
+ def check_options(options, results):
+ for key, value in tests.iteritems():
+ if options.get(key) == value:
+ results[key] = True
+
+ results = dict.fromkeys(tests, False)
+ for (_, _, _, _, record) in _iterate_over_records(makefile):
+ adapterrm_opt = record.get("Options", {}).get("AdapterRemoval", {})
+ check_options(adapterrm_opt, results)
+
+ adapterrm_opt = makefile.get("Options", {}).get("AdapterRemoval", {})
+ check_options(adapterrm_opt, results)
+
+ if any(results.itervalues()):
+ print_warn("WARNING: An adapter specified for AdapterRemoval "
+ "corresponds to the default sequence, but is reverse "
+ "complemented. Please make sure that this is intended! ",
+ end="")
+
+ if results["--pcr2"]:
+ print_warn("For --pcr2, the sequence given should be the "
+ "reverse complement of the sequence observed in the "
+ "mate 2 FASTQ file.\n")
+
+ if results["--adapter2"]:
+ print_warn("For --adapter2 (AdapterRemoval v2, only) the value "
+ "should be exactly as observed in the FASTQ reads.\n")
+
+
+def _validate_makefile_libraries(makefile):
+ libraries = collections.defaultdict(set)
+ iterator = _iterate_over_records(makefile)
+ for (target, sample, library, _, _) in iterator:
+ libraries[(target, library)].add(sample)
+
+ for ((target, library), samples) in libraries.iteritems():
+ if len(samples) > 1:
+ raise MakefileError("Library '%s' in target '%s' spans multiple "
+ " samples: %s" % (library, target,
+ ", ".join(samples)))
+
+
+def _validate_makefiles_duplicate_files(makefiles):
+ filenames = collections.defaultdict(list)
+ for makefile in makefiles:
+ iterator = _iterate_over_records(makefile)
+ for (target, sample, library, barcode, record) in iterator:
+ current_filenames = []
+ if record["Type"] == "Raw":
+ for raw_filenames in record["Data"].itervalues():
+ current_filenames.extend(raw_filenames)
+ else:
+ current_filenames.extend(record["Data"].values())
+
+ for realpath in map(os.path.realpath, current_filenames):
+ filenames[realpath].append((target, sample, library, barcode))
+
+ has_overlap = {}
+ for (filename, records) in filenames.iteritems():
+ if len(records) > 1:
+ has_overlap[filename] = list(set(records))
+
+ by_records = sorted(zip(has_overlap.values(), has_overlap.keys()))
+ for (records, pairs) in itertools.groupby(by_records, lambda x: x[0]):
+ pairs = list(pairs)
+ description = _describe_files_in_multiple_records(records, pairs)
+
+ if len(set(record[0] for record in records)) != len(records):
+ message = "Path included multiple times in target:\n"
+ raise MakefileError(message + description)
+ else:
+ print_warn("WARNING: Path included in multiple targets:",
+ file=sys.stderr)
+ print_warn(description, file=sys.stderr)
+ print_warn(file=sys.stderr)
+
+
+def _describe_files_in_multiple_records(records, pairs):
+ descriptions = []
+ for (index, record) in enumerate(records, start=1):
+ descriptions.append("\t- Record {0}: Name: {1}, Sample: {2}, "
+ "Library: {3}, Barcode: {4}".format(index,
+ *record))
+
+ for (index, (_, filename)) in enumerate(sorted(pairs), start=1):
+ message = "\t- Canonical path {0}: {1}"
+ descriptions.append(message.format(index, filename))
+
+ return "\n".join(descriptions)
+
+
+def _validate_makefiles_duplicate_targets(config, makefiles):
+ targets = set()
+ for makefile in makefiles:
+ destination = config.destination
+ if destination is None:
+ filename = makefile["Statistics"]["Filename"]
+ destination = os.path.dirname(filename)
+
+ for target in makefile["Targets"]:
+ key = (destination, target)
+ if key in targets:
+ raise MakefileError("Target name '%s' used multiple times; "
+ "output files would be clobbered!"
+ % target)
+ targets.add(key)
+
+
+def _validate_makefiles_features(makefiles):
+ for makefile in makefiles:
+ features = makefile["Options"]["Features"]
+ roi_enabled = False
+
+ for prefix in makefile["Prefixes"].itervalues():
+ roi_enabled |= bool(prefix.get("RegionsOfInterest"))
+
+ if "Depths" in features and roi_enabled:
+ if not (("Raw BAM" in features) or ("Realigned BAM") in features):
+ raise MakefileError("The feature 'Depths' (depth histograms) "
+ "with RegionsOfInterest enabled, requires "
+ "that either the feature 'Raw BAM' or the "
+ "feature 'Raligned BAM' is enabled.")
+
+
+def _validate_hg_prefixes(makefiles):
+ """Implementation of the checks included in GATK, which require that the
+ FASTA for the human genome is ordered 1 .. 23, .
+ """
+ already_validated = set()
+ print_info(" - Validating prefixes ...", file=sys.stderr)
+ for makefile in makefiles:
+ uses_gatk = "Realigned BAM" in makefile["Options"]["Features"]
+ for prefix in makefile["Prefixes"].itervalues():
+ path = prefix["Path"]
+ if path in already_validated:
+ continue
+
+ if not os.path.exists(path):
+ print_info(" - Reference FASTA file does not exist:\n"
+ " %r" % (path,), file=sys.stderr)
+ continue
+ elif not os.path.exists(path + ".fai"):
+ print_info(" - Index does not exist for %r; this may "
+ "take a while ..." % (path,), file=sys.stderr)
+
+ if not os.access(os.path.dirname(path), os.W_OK):
+ message = \
+ "FASTA index for prefix is missing, but folder is\n" \
+ "not writable, so it cannot be created:\n" \
+ " Prefix = %s\n\n" \
+ "Either change permissions on the folder, or move\n" \
+ "the prefix to different location." % (path,)
+ raise MakefileError(message)
+
+ # Use pysam to index the file
+ pysam.Fastafile(path).close()
+
+ contigs = []
+ with open(path + ".fai") as handle:
+ for line in handle:
+ name, size, _ = line.split('\t', 2)
+ contigs.append((name, int(size)))
+
+ _do_validate_hg_prefix(makefile, prefix, contigs, fatal=uses_gatk)
+ already_validated.add(path)
+
+
+def _do_validate_hg_prefix(makefile, prefix, contigs, fatal):
+ if not _is_invalid_hg_prefix(contigs):
+ return
+
+ message = \
+ "Prefix appears to be a human genome, but chromosomes are ordered\n" \
+ "lexically (chr1, chr10, chr11, ...), rather than numerically\n" \
+ "(chr1, chr2, chr3, ...):\n\n" \
+ " Makefile = %s\n" \
+ " Prefix = %s\n\n" \
+ "GATK requires that human chromosomes are ordered numerically;\n%s\n" \
+ "See the documentation at the GATK website for more information:\n " \
+ "http://www.broadinstitute.org/gatk/guide/article?id=1204\n"
+
+ prefix_path = prefix["Path"]
+ mkfile_path = makefile["Statistics"]["Filename"]
+ if fatal:
+ details = "Either disable GATK in the makefile, or fix the prefix."
+ message %= (mkfile_path, prefix_path, details)
+
+ raise MakefileError(message)
+ else:
+ details = \
+ "You will not be able to use the resulting BAM file with GATK."
+ message %= (mkfile_path, prefix_path, details)
+ print_warn("\nWARNING:\n", message, file=sys.stderr, sep="")
+
+
+def _is_invalid_hg_prefix(contigs):
+ hg_contigs = {
+ # Contig sizes based on hg18 and hg19 and hg38
+ "chr1": [247249719, 249250621, 248956422],
+ "chr2": [242951149, 243199373, 242193529],
+ "chr10": [135374737, 135534747, 133797422],
+ }
+
+ size_to_idx = dict((size, idx) for (idx, (_, size)) in enumerate(contigs))
+
+ # Equivalent to the GATK 'nonCanonicalHumanContigOrder' function
+ for (key, values) in hg_contigs.iteritems():
+ for value in values:
+ if value in size_to_idx:
+ hg_contigs[key] = size_to_idx[value]
+ break
+ else:
+ # Contig not found; probably not hg18, hg19, or hg38
+ return False
+
+ return not (hg_contigs["chr1"] < hg_contigs["chr2"] < hg_contigs["chr10"])
+
+
+def _iterate_over_records(makefile):
+ for (target, samples) in makefile["Targets"].items():
+ for (sample, libraries) in samples.items():
+ for (library, barcodes) in libraries.items():
+ for (barcode, record) in barcodes.items():
+ yield target, sample, library, barcode, record
diff --git a/pypeline/tools/bam_pipeline/mkfile.py b/pypeline/tools/bam_pipeline/mkfile.py
new file mode 100755
index 0000000..3965902
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/mkfile.py
@@ -0,0 +1,298 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from __future__ import print_function
+
+import os
+import sys
+import glob
+import datetime
+from optparse import OptionParser
+
+from pypeline.common.console import \
+ print_info, \
+ print_err
+
+
+_TRIM_PIPELINE = (os.path.basename(sys.argv[0]) == "trim_pipeline")
+_TEMPLATE_TOP = \
+ """# -*- mode: Yaml; -*-
+# Timestamp: %s
+#
+# Default options.
+# Can also be specific for a set of samples, libraries, and lanes,
+# by including the "Options" hierarchy at the same level as those
+# samples, libraries, or lanes below. This does not include
+# "Features", which may only be specific globally.
+Options:
+ # Sequencing platform, see SAM/BAM reference for valid values
+ Platform: Illumina
+ # Quality offset for Phred scores, either 33 (Sanger/Illumina 1.8+)
+ # or 64 (Illumina 1.3+ / 1.5+). For Bowtie2 it is also possible to
+ # specify 'Solexa', to handle reads on the Solexa scale. This is
+ # used during adapter-trimming and sequence alignment
+ QualityOffset: 33
+ # Split a lane into multiple entries, one for each (pair of) file(s)
+ # found using the search-string specified for a given lane. Each
+ # lane is named by adding a number to the end of the given barcode.
+ SplitLanesByFilenames: yes
+ # Compression format for FASTQ reads; 'gz' for GZip, 'bz2' for BZip2
+ CompressionFormat: bz2
+"""
+
+_TEMPLATE_BAM_OPTIONS = \
+ """ # Settings for trimming of reads, see AdapterRemoval man-page
+ AdapterRemoval:
+ # Adapter sequences, set and uncomment to override defaults
+# --pcr1: ...
+# --pcr2: ...
+ # Some BAM pipeline defaults differ from AR defaults;
+ # To override, change these value(s):
+ --mm: 3
+ --minlength: 25
+ # Extra features enabled by default; change 'yes' to 'no' to disable
+ --collapse: yes
+ --trimns: yes
+ --trimqualities: yes
+
+ # Settings for aligners supported by the pipeline
+ Aligners:
+ # Choice of aligner software to use, either "BWA" or "Bowtie2"
+ Program: BWA
+
+ # Settings for mappings performed using BWA
+ BWA:
+ # One of "backtrack", "bwasw", or "mem"; see the BWA documentation
+ # for a description of each algorithm (defaults to 'backtrack')
+ Algorithm: backtrack
+ # Filter hits with a mapping quality (Phred) below this value
+ MinQuality: 0
+ # Filter reads that did not map to the reference sequence
+ FilterUnmappedReads: yes
+ # Should be disabled ("no") for aDNA alignments, as post-mortem
+ # localizes to the seed region, which BWA expects to have few
+ # errors (sets "-l"). See http://pmid.us/22574660
+ UseSeed: yes
+ # Additional command-line options may be specified for the "aln"
+ # call(s), as described below for Bowtie2 below.
+
+ # Settings for mappings performed using Bowtie2
+ Bowtie2:
+ # Filter hits with a mapping quality (Phred) below this value
+ MinQuality: 0
+ # Filter reads that did not map to the reference sequence
+ FilterUnmappedReads: yes
+ # Examples of how to add additional command-line options
+# --trim5: 5
+# --trim3: 5
+ # Note that the colon is required, even if no value is specified
+ --very-sensitive:
+ # Example of how to specify multiple values for an option
+# --rg:
+# - CN:SequencingCenterNameHere
+# - DS:DescriptionOfReadGroup
+
+ # Mark / filter PCR duplicates. If set to 'filter', PCR duplicates
+ # are removed from the output files; if set to 'mark', these are
+ # flagged with bit 0x400; if set to 'no', the reads are assumed to
+ # not have been amplified. Collapsed reads are filtered using the
+ # command 'bam_rmdup_duplicates', while "normal" reads are filtered
+ # using Picard MarkDuplicates.
+ PCRDuplicates: filter
+
+ # Carry out quality base re-scaling of libraries using mapDamage
+ # This will be done using the options set for mapDamage below
+ RescaleQualities: no
+
+ # Command-line options for mapDamage; note that the long-form
+ # options are expected; --length, not -l, etc. Uncomment the
+ # "mapDamage" line adding command-line options below.
+ mapDamage:
+ # By default, the pipeline will downsample the input to 100k hits
+ # when running mapDamage; remove to use all hits
+ --downsample: 100000
+
+ # Exclude a type of trimmed reads from alignment/analysis; possible
+ # types reflect the output of AdapterRemoval
+# ExcludeReads:
+# - Single # Single-ended reads / Orphaned paired-ended reads
+# - Paired # Paired ended reads
+# - Collapsed # Overlapping paired-ended reads collapsed into a
+ # single sequence by AdapterRemoval
+# - CollapsedTruncated # Like 'Collapsed', except that the reads
+ # truncated due to the presence ambigious
+ # bases or low quality bases at termini.
+
+ # Optional steps to perform during processing
+ # To disable all features, replace with line "Features: []"
+ Features:
+# - Raw BAM # Generate BAM from the raw libraries (no indel realignment)
+ # Location: {Destination}/{Target}.{Genome}.bam
+ - Realigned BAM # Generate indel-realigned BAM using the GATK Indel realigner
+ # Location: {Destination}/{Target}.{Genome}.realigned.bam
+ - mapDamage # Generate mapDamage plot for each (unrealigned) library
+ # Location: {Destination}/{Target}.{Genome}.mapDamage/{Library}/
+ - Coverage # Generate coverage information for the raw BAM (wo/ indel realignment)
+ # Location: {Destination}/{Target}.{Genome}.coverage
+ - Depths # Generate histogram of number of sites with a given read-depth
+ # Location: {Destination}/{Target}.{Genome}.depths
+ - Summary # Generate target summary (uses statistics from raw BAM)
+ # Location: {Destination}/{Target}.summary
+# - DuplicateHist # Generate histogram of PCR duplicates, for use with PreSeq
+ # Location: {Destination}/{Target}.{Genome}.duphist/{Library}/
+
+
+# Map of prefixes by name, each having a Path key, which specifies the
+# location of the BWA/Bowtie2 index, and optional label, and an option
+# set of regions for which additional statistics are produced.
+Prefixes:
+ # Name of the prefix; is used as part of the output filenames
+ NAME_OF_PREFIX:
+ # Path to .fasta file containg a set of reference sequences.
+ Path: PATH_TO_PREFIX
+
+ # Label for prefix: One of nuclear, mitochondrial, chloroplast,
+ # plasmid, bacterial, or viral. Is used in the .summary files.
+# Label: ...
+
+ # Produce additional coverage / depth statistics for a set of
+ # regions defined in a BED file; if no names are specified for the
+ # BED records, results are named after the chromosome / contig.
+# RegionsOfInterest:
+# NAME: PATH_TO_BEDFILE
+
+"""
+
+_TEMPLATE_SAMPLES = \
+ """# Targets are specified using the following structure:
+#NAME_OF_TARGET:
+# NAME_OF_SAMPLE:
+# NAME_OF_LIBRARY:
+# NAME_OF_LANE: PATH_WITH_WILDCARDS
+"""
+
+_FILENAME = "SampleSheet.csv"
+
+
+def print_header(full_mkfile=True,
+ sample_tmpl=True, minimal=False,
+ dst=sys.stdout):
+ timestamp = datetime.datetime.now().isoformat()
+ template_parts = [_TEMPLATE_TOP % (timestamp,)]
+ if full_mkfile:
+ template_parts.append(_TEMPLATE_BAM_OPTIONS)
+ if sample_tmpl:
+ template_parts.append(_TEMPLATE_SAMPLES)
+ template = "\n".join(template_parts)
+
+ if not minimal:
+ print(template, file=dst)
+ return
+
+ lines = template.split("\n")
+ minimal_template = lines[:3]
+ for line in lines[3:]:
+ if not line.lstrip().startswith("#"):
+ # Avoid too many empty lines
+ if line.strip() or minimal_template[-1].strip():
+ minimal_template.append(line)
+ print("\n".join(minimal_template), file=dst)
+
+
+def read_alignment_records(filename):
+ with open(filename) as records:
+ header = records.readline().strip().split(",")
+ for line in records:
+ yield dict(zip(header, line.strip().split(",")))
+
+
+def parse_args(argv):
+ parser = OptionParser("Usage: %prog [/path/to/SampleSheet.csv]")
+ parser.add_option("--minimal", default=False, action="store_true",
+ help = "Strip comments from makefile template.")
+
+ return parser.parse_args(argv)
+
+
+def select_path(path):
+ has_r1 = bool(glob.glob(path.format(Pair=1)))
+ has_r2 = bool(glob.glob(path.format(Pair=2)))
+
+ if has_r1 and not has_r2:
+ # Single-ended reads
+ return path.format(Pair=1)
+ return path
+
+
+def main(argv):
+ options, paths = parse_args(argv)
+ records = {}
+ for root in paths:
+ if os.path.isdir(root):
+ filename = os.path.join(root, _FILENAME)
+ else:
+ root, filename = os.path.split(root)[0], root
+
+ if not os.path.exists(filename):
+ print_err("ERROR: Could not find SampleSheet file: %r" % filename,
+ file=sys.stderr)
+ return 1
+
+ for record in read_alignment_records(filename):
+ libraries = records.setdefault(record["SampleID"], {})
+ barcodes = libraries.setdefault(record["Index"], [])
+
+ record["Lane"] = int(record["Lane"])
+ path = "%(SampleID)s_%(Index)s_L%(Lane)03i_R{Pair}_*.fastq.gz" \
+ % record
+ record["Path"] = select_path(os.path.join(root, path))
+ barcodes.append(record)
+
+ is_trim_pipeline = os.path.basename(sys.argv[0]) == "trim_pipeline"
+
+ print_header(full_mkfile=not is_trim_pipeline,
+ sample_tmpl=not bool(records),
+ minimal=options.minimal)
+
+ for (sample, libraries) in records.iteritems():
+ print("%s:" % sample)
+ print(" %s:" % sample)
+ for (library, barcodes) in libraries.iteritems():
+ print(" %s:" % library)
+ for record in barcodes:
+ print(" {FCID}_{Lane}: {Path}".format(**record))
+ print()
+ print()
+
+ if not argv:
+ print_info("No directories/files specified, standard makefile printed.", file = sys.stderr)
+ print_info("If the reads have associated %s files, these" % (_FILENAME,), file = sys.stderr)
+ print_info("may be used to generate a preliminary makefile:", file = sys.stderr)
+ print_info(" Usage: bam_pipeline mkfile [filename/directory] [...]", file = sys.stderr)
+ print_info("Each directory must contain a '%s' file." % _FILENAME, file = sys.stderr)
+ else:
+ print_info("Makefile printed. Please check for correctness before running pipeline.", file = sys.stderr)
+ return 0
+
+
+if __name__ == "__main__":
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/bam_pipeline/nodes.py b/pypeline/tools/bam_pipeline/nodes.py
new file mode 100644
index 0000000..bb3498c
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/nodes.py
@@ -0,0 +1,145 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+
+import pypeline.nodes.picard as picard
+
+from pypeline.node import \
+ MetaNode
+from pypeline.atomiccmd.command import \
+ AtomicCmd
+from pypeline.atomiccmd.builder import \
+ AtomicCmdBuilder
+from pypeline.atomiccmd.sets import \
+ ParallelCmds
+from pypeline.atomiccmd.builder import \
+ AtomicJavaCmdBuilder
+
+from pypeline.nodes.picard import \
+ PicardNode, \
+ ValidateBAMNode, \
+ MultiBAMInput, \
+ MultiBAMInputNode
+from pypeline.nodes.samtools import \
+ BAMIndexNode
+from pypeline.common.fileutils import \
+ describe_files
+
+
+def index_and_validate_bam(config, prefix, node, log_file=None):
+ input_file, has_index = _get_input_file(node)
+ if not has_index:
+ node = BAMIndexNode(infile=input_file,
+ dependencies=node)
+
+ validation_params = ValidateBAMNode.customize(config=config,
+ input_bam=input_file,
+ output_log=log_file,
+ dependencies=node)
+ # Check MD tags against reference sequence
+ # FIXME: Disabled due to issues with Picard/Samtools disagreeing,
+ # backwards compatibility. See the discussion at
+ # http://sourceforge.net/mailarchive/message.php?msg_id=31348639
+ # validation_params.command.set_kwargs(IN_REF=prefix["Reference"])
+ # validation_params.command.add_option("R", "%(IN_REF)s", sep="=")
+
+ # Ignored since we may filter out misses and low-quality hits during
+ # mapping, which leads to a large proportion of missing PE mates.
+ validation_params.command.add_option("IGNORE", "MATE_NOT_FOUND",
+ sep="=")
+ # Ignored due to high rate of false positives for lanes with few hits,
+ # where high-quality reads may cause mis-identification of qualities
+ validation_params.command.add_option("IGNORE",
+ "INVALID_QUALITY_FORMAT", sep="=")
+
+ node = validation_params.build_node()
+ return node
+
+
+def _get_input_file(node):
+ if isinstance(node, MetaNode):
+ for subnode in node.subnodes:
+ input_filename, has_index = _get_input_file(subnode)
+ if input_filename:
+ return input_filename, has_index
+
+ input_filename, has_index = None, False
+ for filename in node.output_files:
+ if filename.lower().endswith(".bai"):
+ has_index = True
+ elif filename.lower().endswith(".bam"):
+ input_filename = filename
+
+ return input_filename, has_index
+
+
+class CleanupBAMNode(PicardNode):
+ def __init__(self, config, reference, input_bam, output_bam, tags,
+ min_mapq=0, filter_unmapped=False, dependencies=()):
+ flt_params = AtomicCmdBuilder(("samtools", "view", "-bu"),
+ IN_BAM=input_bam,
+ OUT_STDOUT=AtomicCmd.PIPE)
+
+ if min_mapq:
+ flt_params.set_option("-q", min_mapq, sep="")
+ if filter_unmapped:
+ flt_params.set_option("-F", "0x4", sep="")
+
+ flt_params.add_value("%(IN_BAM)s")
+
+ jar_params = picard.picard_command(config, "AddOrReplaceReadGroups")
+ jar_params.set_option("INPUT", "/dev/stdin", sep="=")
+ # Output is written to a named pipe, since the JVM may, in some cases,
+ # emit warning messages to stdout, resulting in a malformed BAM.
+ jar_params.set_option("OUTPUT", "%(TEMP_OUT_BAM)s", sep="=")
+ jar_params.set_option("COMPRESSION_LEVEL", "0", sep="=")
+ # Ensure that the BAM is sorted; this is required by the pipeline, and
+ # needs to be done before calling calmd (avoiding pathologic runtimes).
+ jar_params.set_option("SORT_ORDER", "coordinate", sep="=")
+
+ # All tags are overwritten; ID is set since the default (e.g. '1')
+ # causes problems with pysam due to type inference (is read as a length
+ # 1 string, but written as a character).
+ for tag in ("ID", "SM", "LB", "PU", "PL"):
+ jar_params.set_option(tag, tags[tag], sep="=")
+
+ jar_params.set_kwargs(IN_STDIN=flt_params,
+ TEMP_OUT_BAM="bam.pipe")
+
+ calmd = AtomicCmdBuilder(["samtools", "calmd", "-b",
+ "%(TEMP_IN_BAM)s", "%(IN_REF)s"],
+ IN_REF=reference,
+ TEMP_IN_BAM="bam.pipe",
+ OUT_STDOUT=output_bam)
+
+ commands = [cmd.finalize() for cmd in (flt_params, jar_params, calmd)]
+ description = "<Cleanup BAM: %s -> '%s'>" \
+ % (input_bam, output_bam)
+ PicardNode.__init__(self,
+ command=ParallelCmds(commands),
+ description=description,
+ dependencies=dependencies)
+
+ def _setup(self, config, temp_root):
+ PicardNode._setup(self, config, temp_root)
+ os.mkfifo(os.path.join(temp_root, "bam.pipe"))
diff --git a/pypeline/tools/bam_pipeline/parts/__init__.py b/pypeline/tools/bam_pipeline/parts/__init__.py
new file mode 100644
index 0000000..df9cb53
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/parts/__init__.py
@@ -0,0 +1,7 @@
+from reads import Reads
+from lane import Lane
+from library import Library
+from sample import Sample
+from prefix import Prefix
+from target import Target
+from statistics import add_statistics_nodes
diff --git a/pypeline/tools/bam_pipeline/parts/lane.py b/pypeline/tools/bam_pipeline/parts/lane.py
new file mode 100644
index 0000000..61452f5
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/parts/lane.py
@@ -0,0 +1,272 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import copy
+
+
+import pypeline.tools.bam_pipeline.paths as paths
+
+from pypeline.common.utilities import \
+ safe_coerce_to_tuple
+from pypeline.atomiccmd.builder import \
+ apply_options
+from pypeline.nodes.bwa import \
+ BWANode
+from pypeline.nodes.bowtie2 import \
+ Bowtie2Node
+from pypeline.tools.bam_pipeline.parts import \
+ Reads
+from pypeline.tools.bam_pipeline.nodes import \
+ CleanupBAMNode, \
+ index_and_validate_bam
+
+
+#
+_TRIMMED_READS_CACHE = {}
+
+
+class Lane:
+ def __init__(self, config, prefix, record, name):
+ self.name = name
+ self.bams = {}
+ self.reads = None
+ self.options = copy.deepcopy(record["Options"])
+ self.tags = tags = copy.deepcopy(record["Tags"])
+ self.tags["PU"] = self.tags["PU_src"]
+ self.tags["PG"] = self.tags["PG"].lower()
+ self.folder = os.path.join(config.destination, tags["Target"], prefix["Name"],
+ tags["SM"], tags["LB"], tags["PU_cur"])
+
+ if record["Type"] == "BAMs":
+ self._init_pre_aligned_lane(config, prefix, record)
+ else:
+ self._init_reads(config, record)
+ self._init_unaligned_lane(config, prefix, record)
+
+
+ def _init_pre_aligned_lane(self, config, prefix, record):
+ if prefix["Name"] not in record["Data"]:
+ return
+
+ input_filename = record["Data"][prefix["Name"]]
+ output_filename = os.path.join(self.folder, "processed.bam")
+
+ node = CleanupBAMNode(config = config,
+ reference = prefix["Reference"],
+ input_bam = input_filename,
+ output_bam = output_filename,
+ tags = self.tags,
+ dependencies = prefix["Node"])
+
+ validated_node = index_and_validate_bam(config, prefix, node)
+ self.bams["Processed"] = {output_filename : validated_node}
+
+
+ def _init_reads(self, config, record):
+ key = tuple(self.tags[key] for key in ("Target", "SM", "LB", "PU_cur"))
+ if key not in _TRIMMED_READS_CACHE:
+ _TRIMMED_READS_CACHE[key] = Reads(config, record, record["Options"]["QualityOffset"])
+ self.reads = _TRIMMED_READS_CACHE[key]
+
+
+ def _init_unaligned_lane(self, config, prefix, record):
+ aln_key, aln_func = _select_aligner(record["Options"])
+ prefix_key = "Node:%s" % (aln_key,)
+
+ postfix = ["minQ%i" % record["Options"]["Aligners"][aln_key]["MinQuality"]]
+ if not record["Options"]["Aligners"][aln_key].get("UseSeed", True):
+ postfix.append("noSeed")
+
+ for (key, input_filename) in self.reads.files.iteritems():
+ # Common parameters between BWA / Bowtie2
+ output_filename = os.path.join(self.folder, "%s.%s.bam" % (key.lower(), ".".join(postfix)))
+ parameters = {"output_file" : output_filename,
+ "prefix" : prefix["Path"],
+ "reference" : prefix["Reference"],
+ "input_file_1" : input_filename,
+ "input_file_2" : None,
+ "dependencies" : self.reads.nodes + (prefix[prefix_key],)}
+
+ if paths.is_paired_end(input_filename):
+ parameters["input_file_1"] = input_filename.format(Pair = 1)
+ parameters["input_file_2"] = input_filename.format(Pair = 2)
+
+ alignment_obj = aln_func(config = config,
+ parameters = parameters,
+ tags = self.tags,
+ options = record["Options"])
+
+ alignment_opts = record["Options"]["Aligners"][aln_key]
+ alignment_obj.commands["convert"].set_option('-q', alignment_opts["MinQuality"])
+ if alignment_opts["FilterUnmappedReads"]:
+ alignment_obj.commands["convert"].set_option('-F', "0x4")
+
+ alignment_node = alignment_obj.build_node()
+ validated_node = index_and_validate_bam(config, prefix, alignment_node)
+
+ self.bams[key] = {output_filename : validated_node}
+
+
+def _select_aligner(options):
+ key = options["Aligners"]["Program"]
+ if key == "BWA":
+ return key, _bwa_build_nodes
+ elif key == "Bowtie2":
+ return key, _bowtie2_build_nodes
+ assert False
+
+
+def _build_mapper_cl_tag(options, cli_tag):
+ samtools = ["|", "samtools", "view", "-q", options["MinQuality"]]
+ if options["FilterUnmappedReads"]:
+ samtools.extend(("-F", "0x4"))
+ samtools.append("...")
+
+ cli_tag.extend(samtools)
+ cli_tag.extend(("|", "samtools", "fixmate", "..."))
+ cli_tag.extend(("|", "samtools", "calmd", "..."))
+
+
+def _set_rg_tags(command, rg_tags, pg_tags):
+ command.add_option("--update-pg-tag", pg_tags)
+ command.set_option("--rg-id", rg_tags["ID"])
+ for tag_name in ("SM", "LB", "PU", "PL", "PG"):
+ tag_value = "%s:%s" % (tag_name, rg_tags[tag_name])
+ command.add_option("--rg", tag_value)
+
+
+class ParamCollector:
+ def __init__(self, prefix = (), postfix = ()):
+ self._prefix = safe_coerce_to_tuple(prefix)
+ self._postfix = safe_coerce_to_tuple(postfix)
+ self._added = []
+ self._set = {}
+
+ def add_option(self, key, value):
+ self._added.extend((key, value))
+
+ def set_option(self, key, value = None):
+ self._set[key] = value
+
+ def pop_option(self, _key):
+ pass
+
+ def get_result(self):
+ result = list(self._prefix)
+ result.extend(self._added)
+ for (key, value) in sorted(self._set.items()):
+ result.append(key)
+ if value is not None:
+ result.append(value)
+ result.extend(self._postfix)
+ return result
+
+
+################################################################################
+################################################################################
+## BWA
+
+def _bwa_aln_parameters(options):
+ if not options["Aligners"]["BWA"]["UseSeed"]:
+ yield ("-l", 2**16 - 1)
+
+ if options["QualityOffset"] in (64, "Solexa"):
+ yield ("-I", None)
+
+ for (key, value) in options["Aligners"]["BWA"].iteritems():
+ yield (key, value)
+
+
+def _bwa_build_cl_tag(options):
+ # Build summary of parameters used by alignment, only including
+ # parameters that affect the output of BWA (as far as possible)
+ algorithm = options["Aligners"]["BWA"]["Algorithm"].lower()
+ algorithm = "aln" if algorithm == "backtrack" else algorithm
+
+ cli_tag = ParamCollector(("bwa", algorithm), "...")
+ apply_options(cli_tag, _bwa_aln_parameters(options))
+ cli_tag = cli_tag.get_result()
+
+ _build_mapper_cl_tag(options["Aligners"]["BWA"], cli_tag)
+
+ return " ".join(map(str, cli_tag)).replace("%", "%%")
+
+
+def _bwa_build_nodes(config, parameters, tags, options):
+ algorithm = options["Aligners"]["BWA"]["Algorithm"].lower()
+
+ params = BWANode(threads=config.bwa_max_threads,
+ algorithm=algorithm,
+ **parameters)
+
+ parameters = dict(_bwa_aln_parameters(options))
+ # "aln" is used by SE backtrack, mem, and sw; _1 and _2 by PE backtrack
+ for aln_key in ("aln", "aln_1", "aln_2"):
+ if aln_key in params.commands:
+ apply_options(params.commands[aln_key], parameters)
+
+ pg_tags = "bwa:CL:%s" % (_bwa_build_cl_tag(options),)
+ _set_rg_tags(params.commands["convert"], tags, pg_tags)
+
+ return params
+
+
+###############################################################################
+###############################################################################
+## Bowtie2:
+
+def _bowtie2_aln_parameters(options):
+ if options["QualityOffset"] == 64:
+ yield ("--phred64", None)
+ elif options["QualityOffset"] == 33:
+ yield ("--phred33", None)
+ else:
+ yield ("--solexa-quals", None)
+
+ for (key, value) in options["Aligners"]["Bowtie2"].iteritems():
+ if key.startswith("-"):
+ yield (key, value)
+
+
+def _bowtie2_build_cl_tag(options):
+ # Build summary of parameters used by alignment, only including
+ # parameters that affect the output of bowtie2 (as far as possible)
+ cli_tag = ParamCollector("bowtie2", "...")
+ apply_options(cli_tag, _bowtie2_aln_parameters(options))
+ cli_tag = cli_tag.get_result()
+
+ _build_mapper_cl_tag(options["Aligners"]["Bowtie2"], cli_tag)
+
+ return " ".join(map(str, cli_tag)).replace("%", "%%")
+
+
+def _bowtie2_build_nodes(config, parameters, tags, options):
+ params = Bowtie2Node.customize(threads = config.bowtie2_max_threads,
+ **parameters)
+
+ apply_options(params.commands["aln"], _bowtie2_aln_parameters(options))
+
+ pg_tags = "bowtie2:CL:%s" % (_bowtie2_build_cl_tag(options),)
+ _set_rg_tags(params.commands["convert"], tags, pg_tags)
+
+ return params
diff --git a/pypeline/tools/bam_pipeline/parts/library.py b/pypeline/tools/bam_pipeline/parts/library.py
new file mode 100644
index 0000000..fe40b46
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/parts/library.py
@@ -0,0 +1,236 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import types
+
+from pypeline.common.utilities import \
+ safe_coerce_to_tuple
+
+from pypeline.node import \
+ MetaNode
+from pypeline.nodes.picard import \
+ MarkDuplicatesNode
+from pypeline.atomiccmd.builder import \
+ apply_options
+from pypeline.nodes.misc import \
+ CopyOutputFilesNode
+from pypeline.nodes.mapdamage import \
+ MapDamagePlotNode, \
+ MapDamageModelNode, \
+ MapDamageRescaleNode
+from pypeline.tools.bam_pipeline.nodes import \
+ index_and_validate_bam
+from pypeline.nodes.paleomix import \
+ DuplicateHistogramNode, \
+ FilterCollapsedBAMNode
+from pypeline.nodes.validation import \
+ DetectInputDuplicationNode
+
+
+class Library:
+ """Represents a single library in a BAM pipeline.
+
+ Is reponsible for aggregating per-lane BAMS, removal of PCR duplicates,
+ rescaling of quality-scores using mapDamage, as well as running mapDamage
+ for QC purposes.
+
+ Properties:
+ name -- Name of the libray (as specified in makefile)
+ lanes -- Tuple of lanes assosisated with the library
+ options -- Makefile options that apply to the current library
+ folder -- Folder containing files assosisated with library. Is used as
+ a prefix for files generated by this class.
+ bams -- Dictionary of BAM filenames -> nodes, for each BAM generated by
+ the Library class. Depending on options, this may either be newly
+ generated files, or the files produced by Lanes.
+ mapdamage -- mapDamage plotting node if enabled. This node is not placed within
+ the library dependency tree, since other nodes typically do not
+ depend on it. See Target class.
+ """
+
+ def __init__(self, config, target, prefix, lanes, name):
+ self.name = name
+ self.lanes = safe_coerce_to_tuple(lanes)
+ self.options = lanes[0].options
+ self.folder = os.path.dirname(self.lanes[0].folder)
+ self.bams = None
+ self.mapdamage = None
+
+ assert all((self.folder == os.path.dirname(lane.folder)) for lane in self.lanes)
+ assert all((self.options == lane.options) for lane in self.lanes)
+
+ lane_bams = self._collect_bams_by_type(self.lanes)
+ self.datadup_check = self._build_dataduplication_node(lane_bams)
+ self.duphist = \
+ self._build_duphist_nodes(config, target, prefix, lane_bams)
+ pcr_duplicates = self.options["PCRDuplicates"]
+ if pcr_duplicates:
+ lane_bams = self._remove_pcr_duplicates(config, prefix, lane_bams, pcr_duplicates)
+
+ # At this point we no longer need to differentiate between types of reads
+ files_and_nodes = self._collect_files_and_nodes(lane_bams)
+
+ self.bams, self.mapdamage = \
+ self._build_mapdamage_nodes(config, target, prefix, files_and_nodes)
+
+ self.node = MetaNode(description = "Library: %s" % os.path.basename(self.folder),
+ dependencies = self.bams.values() + [self.datadup_check])
+
+
+ @classmethod
+ def _collect_bams_by_type(cls, lanes):
+ bams = {}
+ for lane in lanes:
+ for key, files in lane.bams.iteritems():
+ key = "collapsed" if (key == "Collapsed") else "normal"
+ bams.setdefault(key, {}).update(files)
+
+ return bams
+
+
+ @classmethod
+ def _collect_files_and_nodes(cls, bams):
+ files_and_nodes = {}
+ for dd in bams.itervalues():
+ files_and_nodes.update(dd)
+ return files_and_nodes
+
+
+ def _remove_pcr_duplicates(self, config, prefix, bams, strategy):
+ rmdup_cls = {"collapsed" : FilterCollapsedBAMNode,
+ "normal" : MarkDuplicatesNode}
+
+ keep_duplicates = False
+ if isinstance(strategy, types.StringTypes) and (strategy.lower() == "mark"):
+ keep_duplicates = True
+
+ results = {}
+ for (key, files_and_nodes) in bams.items():
+ output_filename = self.folder + ".rmdup.%s.bam" % key
+ node = rmdup_cls[key](config = config,
+ input_bams = files_and_nodes.keys(),
+ output_bam = output_filename,
+ keep_dupes = keep_duplicates,
+ dependencies = files_and_nodes.values())
+ validated_node = index_and_validate_bam(config, prefix, node)
+
+ results[key] = {output_filename : validated_node}
+ return results
+
+
+ def _build_mapdamage_nodes(self, config, target, prefix, files_and_nodes):
+ plot_node = model_node = None
+ if self.options["RescaleQualities"]:
+ # Basic run of mapDamage, only generates plots / tables, but no modeling
+ files_and_nodes, plot_node, model_node = \
+ self._rescale_quality_scores(config, self.folder, prefix, files_and_nodes)
+
+ if not ("mapDamage" in self.options["Features"]):
+ return files_and_nodes, None
+
+ # External destination for mapDamage plots / tables
+ # Messing with these does not cause the pipeline to re-do other stuff
+ destination = os.path.join(config.destination, "%s.%s.mapDamage" % (target, prefix["Name"]), self.name)
+
+ if plot_node:
+ # Simply copy existing results to external folder
+ plot_node = CopyOutputFilesNode(description = "mapDamage",
+ destination = destination,
+ source_nodes = (plot_node, model_node))
+ else:
+ # Results of mapDamage are placed directly in the external folder
+ plot_node = \
+ self._build_mapdamage_plot_node(config, destination, prefix, files_and_nodes)
+
+ return files_and_nodes, plot_node
+
+
+ def _build_mapdamage_plot_node(self, config, destination, prefix, files_and_nodes):
+ plot = MapDamagePlotNode.customize(config = config,
+ reference = prefix["Path"],
+ input_files = files_and_nodes.keys(),
+ output_directory = destination,
+ title = "mapDamage plot for library %r" % (self.name,),
+ dependencies = files_and_nodes.values())
+ apply_options(plot.command, self.options["mapDamage"])
+
+ return plot.build_node()
+
+
+ def _rescale_quality_scores(self, config, destination, prefix, files_and_nodes):
+ # Generate plot / table files in internal tree in order to prevent the
+ # user from accidentially messing with them / causing re=runs
+ md_directory = "%s.mapDamage" % (destination,)
+ output_filename = destination + ".rescaled.bam"
+
+ # Generates basic plots / table files
+ plot = self._build_mapdamage_plot_node(config, md_directory, prefix, files_and_nodes)
+
+ # Builds model of post-mortem DNA damage
+ model = MapDamageModelNode.customize(reference = prefix["Reference"],
+ directory = md_directory,
+ dependencies = plot)
+ apply_options(model.command, self.options["mapDamage"])
+ model = model.build_node()
+
+ # Rescales BAM quality scores using model built above
+ scale = MapDamageRescaleNode.customize(config = config,
+ reference = prefix["Reference"],
+ input_files = files_and_nodes.keys(),
+ output_file = output_filename,
+ directory = md_directory,
+ dependencies = model)
+ apply_options(scale.command, self.options["mapDamage"])
+ scale = scale.build_node()
+
+ # Grab indexing and validation nodes
+ validate = index_and_validate_bam(config, prefix, scale)
+
+ return {output_filename: validate}, plot, model
+
+ def _build_duphist_nodes(self, config, target, prefix, files_and_nodes):
+ if not ("DuplicateHist" in self.options["Features"]):
+ return None
+
+ input_files = []
+ dependencies = []
+ for values in files_and_nodes.itervalues():
+ for (filename, node) in values.iteritems():
+ input_files.append(filename)
+ dependencies.append(node)
+
+ folder = "%s.%s.duphist" % (target, prefix["Name"])
+ destination = os.path.join(config.destination, folder,
+ self.name + ".txt")
+
+ return DuplicateHistogramNode(config=config,
+ input_files=input_files,
+ output_file=destination,
+ dependencies=dependencies)
+
+ def _build_dataduplication_node(self, bams):
+ files_and_nodes = self._collect_files_and_nodes(bams)
+
+ return DetectInputDuplicationNode(input_files = files_and_nodes.keys(),
+ output_file = self.folder + ".duplications_checked",
+ dependencies = files_and_nodes.values())
diff --git a/pypeline/tools/bam_pipeline/parts/prefix.py b/pypeline/tools/bam_pipeline/parts/prefix.py
new file mode 100644
index 0000000..4ca78ec
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/parts/prefix.py
@@ -0,0 +1,103 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+
+from pypeline.common.utilities import safe_coerce_to_tuple
+from pypeline.node import MetaNode
+from pypeline.nodes.gatk import IndelRealignerNode
+from pypeline.nodes.picard import MergeSamFilesNode
+from pypeline.tools.bam_pipeline.nodes import \
+ index_and_validate_bam
+from pypeline.nodes.validation import \
+ DetectInputDuplicationNode
+
+
+class Prefix:
+ def __init__(self, config, prefix, samples, features, target):
+ self.name = prefix["Name"]
+ self.label = prefix.get("Label") or self.name
+ self.reference = prefix["Reference"]
+ self.roi = prefix.get("RegionsOfInterest", {})
+
+ self.samples = safe_coerce_to_tuple(samples)
+ self.bams = {}
+ self.folder = config.destination
+ self.target = target
+
+ files_and_nodes = {}
+ for sample in self.samples:
+ files_and_nodes.update(sample.bams.iteritems())
+
+ self.datadup_check = self._build_dataduplication_node(prefix, files_and_nodes)
+
+ if "Raw BAM" in features:
+ self.bams.update(self._build_raw_bam(config, prefix, files_and_nodes))
+ if "Realigned BAM" in features:
+ self.bams.update(self._build_realigned_bam(config, prefix, files_and_nodes))
+
+ sample_nodes = [sample.node for sample in self.samples]
+ if not self.bams:
+ for sample in self.samples:
+ self.bams.update(sample.bams)
+
+ self.node = MetaNode(description = "Prefix: %s" % prefix["Name"],
+ dependencies = sample_nodes)
+ else:
+ self.node = MetaNode(description = "Final BAMs: %s" % prefix["Name"],
+ subnodes = self.bams.values(),
+ dependencies = sample_nodes)
+
+
+ def _build_raw_bam(self, config, prefix, files_and_bams):
+ output_filename = os.path.join(self.folder, "%s.%s.bam" % (self.target, prefix["Name"]))
+ validated_filename = os.path.join(self.folder, self.target, prefix["Name"] + ".validated")
+
+ node = MergeSamFilesNode(config = config,
+ input_bams = files_and_bams.keys(),
+ output_bam = output_filename,
+ dependencies = self.datadup_check)
+ validated_node = index_and_validate_bam(config, prefix, node, validated_filename)
+
+ return {output_filename : validated_node}
+
+
+ def _build_realigned_bam(self, config, prefix, bams):
+ output_filename = os.path.join(self.folder, "%s.%s.realigned.bam" % (self.target, prefix["Name"]))
+ intervals_filename = os.path.join(self.folder, self.target, prefix["Name"] + ".intervals")
+ validated_filename = os.path.join(self.folder, self.target, prefix["Name"] + ".realigned.validated")
+
+ node = IndelRealignerNode(config = config,
+ reference = prefix["Reference"],
+ infiles = bams.keys(),
+ outfile = output_filename,
+ intervals = intervals_filename,
+ dependencies = self.datadup_check)
+ validated_node = index_and_validate_bam(config, prefix, node, validated_filename)
+
+ return {output_filename : validated_node}
+
+ def _build_dataduplication_node(self, prefix, files_and_nodes):
+ destination = os.path.join(self.folder, self.target, prefix["Name"] + ".duplications_checked")
+ return DetectInputDuplicationNode(input_files = files_and_nodes.keys(),
+ output_file = destination,
+ dependencies = files_and_nodes.values())
diff --git a/pypeline/tools/bam_pipeline/parts/reads.py b/pypeline/tools/bam_pipeline/parts/reads.py
new file mode 100644
index 0000000..c2872a3
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/parts/reads.py
@@ -0,0 +1,134 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+
+from pypeline.common.fileutils import missing_files
+from pypeline.atomiccmd.builder import apply_options
+from pypeline.nodes.adapterremoval import \
+ SE_AdapterRemovalNode, \
+ PE_AdapterRemovalNode, \
+ VERSION_14, \
+ VERSION_15
+from pypeline.nodes.validation import \
+ ValidateFASTQFilesNode
+
+
+class Reads(object):
+ def __init__(self, config, record, quality_offset):
+ self.quality_offset = quality_offset
+ self.files = {}
+ self.stats = None
+ self.nodes = ()
+
+ tags = record["Tags"]
+ self.folder = os.path.join(config.destination, tags["Target"], "reads",
+ tags["SM"], tags["LB"], tags["PU_cur"])
+
+ lane_type = record.get("Type")
+ if lane_type == "Raw":
+ self._init_raw_reads(record)
+ elif lane_type == "Trimmed":
+ self._init_pretrimmed_reads(record)
+ else:
+ assert False, "Unexpected data type in Reads(): %s" \
+ % (repr(lane_type))
+
+ for name in record["Options"]["ExcludeReads"]:
+ self.files.pop(name, None)
+
+ if config.allow_missing_input_files and self.nodes:
+ input_missing = missing_files(self.nodes[0].input_files)
+ output_missing = missing_files(self.nodes[0].output_files)
+ if input_missing and not output_missing:
+ self.nodes = ()
+
+ def _init_pretrimmed_reads(self, record):
+ self.files.update(record["Data"])
+ output_file = os.path.join(self.folder, "reads.pretrimmed.validated")
+ input_files = set()
+ for (read_type, filename) in self.files.iteritems():
+ if read_type == "Paired":
+ input_files.add(filename.format(Pair=1))
+ input_files.add(filename.format(Pair=2))
+ else:
+ input_files.add(filename)
+
+ node = ValidateFASTQFilesNode(input_files=input_files,
+ output_file=output_file,
+ offset=self.quality_offset)
+ self.nodes = (node,)
+
+ def _init_raw_reads(self, record):
+ # Support for older versions of the pipeline, which used ARv1.0 - 1.4
+ version = VERSION_14
+ if record["Options"]["AdapterRemoval"]["Version"] == "v1.5+":
+ version = VERSION_15
+
+ quality_offset = self.quality_offset
+ if quality_offset == "Solexa":
+ quality_offset = 64
+
+ ar_options = dict(record["Options"]["AdapterRemoval"])
+ # Setup of "--collapsed" is handled by the node itself
+ collapse_reads = ar_options.pop("--collapse")
+ collapse_reads = collapse_reads or collapse_reads is None
+
+ init_args = {"output_prefix": os.path.join(self.folder, "reads"),
+ "output_format": record["Options"]["CompressionFormat"],
+ "quality_offset": quality_offset,
+ "version": version}
+ output_tmpl = "{output_prefix}.%s.{output_format}".format(**init_args)
+
+ if ("SE" in record["Data"]):
+ self.files["Single"] = output_tmpl % ("truncated",)
+ init_args["input_files"] = record["Data"]["SE"]
+ command = SE_AdapterRemovalNode.customize(**init_args)
+ else:
+ if version is VERSION_14:
+ self._set_adapterrm_v14_files(self.files, output_tmpl)
+ else:
+ self._set_adapterrm_v15_files(self.files, output_tmpl,
+ collapse_reads)
+
+ init_args["collapse"] = collapse_reads
+ init_args["input_files_1"] = record["Data"]["PE_1"]
+ init_args["input_files_2"] = record["Data"]["PE_2"]
+ command = PE_AdapterRemovalNode.customize(**init_args)
+
+ apply_options(command.command, ar_options)
+ self.stats = os.path.join(self.folder, "reads.settings")
+ self.nodes = (command.build_node(),)
+
+ @classmethod
+ def _set_adapterrm_v14_files(cls, files, output_tmpl):
+ files["Single"] = output_tmpl % ("singleton.unaln.truncated",)
+ files["Collapsed"] = output_tmpl % ("singleton.aln.truncated",)
+ files["Paired"] = output_tmpl % ("pair{Pair}.truncated",)
+
+ @classmethod
+ def _set_adapterrm_v15_files(cls, files, output_tmpl, collapse_reads):
+ files["Single"] = output_tmpl % ("singleton.truncated",)
+ files["Paired"] = output_tmpl % ("pair{Pair}.truncated",)
+ if collapse_reads:
+ files["Collapsed"] = output_tmpl % ("collapsed",)
+ files["CollapsedTruncated"] = output_tmpl % ("collapsed.truncated",)
diff --git a/pypeline/tools/bam_pipeline/parts/sample.py b/pypeline/tools/bam_pipeline/parts/sample.py
new file mode 100644
index 0000000..014dc55
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/parts/sample.py
@@ -0,0 +1,40 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+
+from pypeline.node import MetaNode
+from pypeline.common.utilities import safe_coerce_to_tuple
+
+
+class Sample:
+ def __init__(self, config, prefix, libraries, name):
+ self.name = name
+ self.bams = {}
+ self.libraries = safe_coerce_to_tuple(libraries)
+
+ for library in self.libraries:
+ self.bams.update(library.bams.iteritems())
+ self.folder = os.path.dirname(self.libraries[0].folder)
+
+ self.node = MetaNode(description = "Sample: %s" % os.path.basename(self.folder),
+ dependencies = [library.node for library in self.libraries])
diff --git a/pypeline/tools/bam_pipeline/parts/statistics.py b/pypeline/tools/bam_pipeline/parts/statistics.py
new file mode 100644
index 0000000..9df8e86
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/parts/statistics.py
@@ -0,0 +1,219 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import collections
+
+from pypeline.common.fileutils import \
+ swap_ext
+
+from pypeline.node import \
+ MetaNode
+from pypeline.nodes.paleomix import \
+ CoverageNode, \
+ MergeCoverageNode, \
+ DepthHistogramNode
+from pypeline.tools.bam_pipeline.parts.summary import \
+ SummaryTableNode
+
+
+def add_statistics_nodes(config, makefile, target):
+ features = set(makefile["Options"]["Features"])
+ if not features & set(("Coverage", "Depths", "Summary")):
+ return
+
+ nodes = []
+ if "Depths" in features:
+ nodes.append(_build_depth(config, target))
+
+ if "Summary" in features or "Coverage" in features:
+ make_summary = ("Summary" in features)
+ coverage = _build_coverage(config, target, make_summary)
+ if make_summary:
+ summary_node = _build_summary_node(config, makefile,
+ target, coverage)
+ nodes.append(summary_node)
+ elif "Coverage" in features:
+ nodes.append(coverage["Node"])
+
+ target.add_extra_nodes("Statistics", nodes)
+
+
+def _build_summary_node(config, makefile, target, coverage):
+ coverage_by_label = _build_coverage_nodes(config, target, use_label=True)
+
+ return SummaryTableNode(config=config,
+ makefile=makefile,
+ target=target,
+ cov_for_lanes=coverage_by_label["Lanes"],
+ cov_for_libs=coverage_by_label["Libraries"],
+ dependencies=coverage["Node"])
+
+
+def _build_depth(config, target):
+ nodes = []
+ for prefix in target.prefixes:
+ for (roi_name, roi_filename) in _get_roi(prefix, name_prefix="."):
+ if roi_filename is not None:
+ # ROIs require indexed access, and hence that the final BAM
+ # (either raw or realigned) has been built. By default, the
+ # the realigned BAM is used (based on lexical order).
+ bam_files = tuple(sorted(prefix.bams.items()))
+ input_files, dependencies = bam_files[-1]
+ else:
+ input_files = {}
+ for sample in prefix.samples:
+ input_files.update(sample.bams)
+ dependencies = input_files.values()
+ input_files = input_files.keys()
+
+ output_filename = "%s.%s%s.depths" % (target.name, prefix.name,
+ roi_name)
+ output_fpath = os.path.join(config.destination, output_filename)
+
+ node = DepthHistogramNode(config=config,
+ target_name=target.name,
+ input_files=input_files,
+ regions_file=roi_filename,
+ output_file=output_fpath,
+ dependencies=dependencies)
+ nodes.append(node)
+
+ return MetaNode(description="DepthHistograms",
+ subnodes=nodes)
+
+
+def _aggregate_for_prefix(cov, prefix, roi_name=None, into=None):
+ prefix = _get_prefix_label(prefix, roi_name)
+ results = {} if into is None else into
+ for (key, files_and_nodes) in cov.iteritems():
+ if prefix is None or (key[0] == prefix):
+ results.update(files_and_nodes)
+ return results
+
+
+def _build_coverage(config, target, make_summary):
+ merged_nodes = []
+ coverage = _build_coverage_nodes(config, target)
+ for prefix in target.prefixes:
+ for (roi_name, _) in _get_roi(prefix):
+ label = _get_prefix_label(prefix.name, roi_name)
+ if not roi_name:
+ postfix = prefix.name
+ else:
+ postfix = "%s.%s" % (prefix.name, roi_name)
+
+ files_and_nodes = _aggregate_for_prefix(coverage["Libraries"],
+ label)
+ output_filename = os.path.join(config.destination,
+ "%s.%s.coverage"
+ % (target.name, postfix))
+ merged = MergeCoverageNode(input_files=files_and_nodes.keys(),
+ output_file=output_filename,
+ dependencies=files_and_nodes.values())
+
+ merged_nodes.append(merged)
+
+ description = "Libraries"
+ files_and_nodes = _aggregate_for_prefix(coverage["Libraries"], None)
+ if make_summary:
+ description = "Lanes and libraries"
+ files_and_nodes = _aggregate_for_prefix(coverage["Lanes"], None,
+ into=files_and_nodes)
+
+ partial_nodes = MetaNode(description=description,
+ subnodes=files_and_nodes.values())
+ final_nodes = MetaNode(description="Final coverage",
+ subnodes=merged_nodes)
+
+ coverage["Node"] = MetaNode(description="Coverage",
+ dependencies=(partial_nodes, final_nodes))
+
+ return coverage
+
+
+def _build_coverage_nodes(config, target, use_label=False):
+ coverage = {"Lanes": collections.defaultdict(dict),
+ "Libraries": collections.defaultdict(dict)}
+
+ cache = {}
+ for prefix in target.prefixes:
+ for (roi_name, roi_filename) in _get_roi(prefix):
+ prefix_label = prefix.label if use_label else prefix.name
+ prefix_label = _get_prefix_label(prefix_label, roi_name)
+
+ for sample in prefix.samples:
+ for library in sample.libraries:
+ key = (prefix_label, target.name,
+ sample.name, library.name)
+
+ for lane in library.lanes:
+ for bams in lane.bams.values():
+ bams = _build_coverage_nodes_cached(config, bams,
+ target.name,
+ roi_name,
+ roi_filename,
+ cache)
+
+ coverage["Lanes"][key].update(bams)
+
+ bams = _build_coverage_nodes_cached(config, library.bams,
+ target.name, roi_name,
+ roi_filename, cache)
+ coverage["Libraries"][key].update(bams)
+ return coverage
+
+
+def _build_coverage_nodes_cached(config, files_and_nodes, target_name,
+ roi_name, roi_filename, cache):
+ output_ext = ".coverage"
+ if roi_name:
+ output_ext = ".%s.coverage" % roi_name
+
+ coverages = {}
+ for (input_filename, node) in files_and_nodes.iteritems():
+ output_filename = swap_ext(input_filename, output_ext)
+
+ cache_key = (roi_filename, input_filename)
+ if cache_key not in cache:
+ cache[cache_key] = CoverageNode(config=config,
+ input_file=input_filename,
+ output_file=output_filename,
+ target_name=target_name,
+ regions_file=roi_filename,
+ dependencies=node)
+
+ coverages[output_filename] = cache[cache_key]
+ return coverages
+
+
+def _get_roi(prefix, name_prefix=""):
+ roi = [("", None)]
+ for (name, path) in prefix.roi.iteritems():
+ roi.append((name_prefix + name, path))
+ return roi
+
+
+def _get_prefix_label(label, roi_name):
+ if not roi_name:
+ return label
+ return "%s:%s" % (label, roi_name)
diff --git a/pypeline/tools/bam_pipeline/parts/summary.py b/pypeline/tools/bam_pipeline/parts/summary.py
new file mode 100644
index 0000000..cef32d0
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/parts/summary.py
@@ -0,0 +1,465 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import re
+import sys
+import math
+import numbers
+import subprocess
+import collections
+
+import pysam
+
+from pypeline.node import Node, NodeError
+from pypeline.common.utilities import safe_coerce_to_tuple, set_in, get_in
+from pypeline.common.fileutils import move_file, reroot_path
+from pypeline.tools.bam_stats.coverage import \
+ read_table as read_coverage_table
+from pypeline.common.bedtools import BEDRecord
+
+import pypeline.common.text as text
+
+
+_PE_READS = frozenset(("Paired", "Collapsed", "CollapsedTruncated"))
+_SE_READS = frozenset(("Single",))
+_BAMS = frozenset(())
+
+
+class SummaryTableNode(Node):
+ def __init__(self, config, makefile, target, cov_for_lanes, cov_for_libs, dependencies = ()):
+ self._target = target.name
+ self._output_file = os.path.join(config.destination, self._target + ".summary")
+ self._prefixes = makefile["Prefixes"]
+ self._makefile = makefile["Statistics"]
+
+ self._in_raw_bams = cov_for_lanes
+ self._in_lib_bams = cov_for_libs
+ input_files = set()
+ input_files.update(sum(map(list, self._in_raw_bams.values()), []))
+ input_files.update(sum(map(list, self._in_lib_bams.values()), []))
+
+ self._in_raw_read = collections.defaultdict(list)
+ for prefix in target.prefixes:
+ for sample in prefix.samples:
+ for library in sample.libraries:
+ for lane in library.lanes:
+ if lane.reads:
+ if lane.reads.stats:
+ value = lane.reads.stats
+ input_files.add(value)
+ elif set(lane.reads.files) & _PE_READS:
+ value = _PE_READS
+ elif set(lane.reads.files) & _SE_READS:
+ value = _SE_READS
+ else:
+ assert False
+ else:
+ value = _BAMS
+ self._in_raw_read[(sample.name, library.name, lane.name)] = value
+
+ Node.__init__(self,
+ description = "<Summary: %s>" % self._output_file,
+ input_files = filter(None, input_files),
+ output_files = [self._output_file],
+ dependencies = dependencies)
+
+
+ def _run(self, config, temp):
+ rois = self._stat_areas_of_interest(self._prefixes)
+ genomes = self._stat_prefixes(self._prefixes)
+ with open(reroot_path(temp, self._output_file), "w") as table:
+ table.write("# Command:\n")
+ table.write("# %s\n" % (" ".join(sys.argv)),)
+ table.write("#\n")
+ table.write("# Directory:\n")
+ table.write("# %s\n" % (os.getcwd()),)
+ table.write("#\n")
+ table.write("# Makefile:\n")
+ table.write("# Filename: %s\n" % (self._makefile["Filename"],))
+ table.write("# SHA1Sum: %s\n" % (self._makefile["Hash"],))
+ table.write("# MTime: %s\n" % (self._makefile["MTime"],))
+ table.write("#\n")
+ self._write_genomes(table, genomes)
+ table.write("#\n")
+ self._write_areas_of_interest(table, rois)
+ table.write("#\n#\n")
+
+ for roi in rois.itervalues():
+ genomes[roi["Label"]] = {"Size" : roi["Size"]}
+ self._write_tables(table, genomes)
+
+
+ def _teardown(self, _config, temp):
+ move_file(reroot_path(temp, self._output_file), self._output_file)
+
+
+ def _write_genomes(self, table, genomes):
+ table.write("# Genomes:\n")
+ rows = [["Name", "Label", "Contigs", "Size", "Prefix"]]
+ for (_, prefix) in sorted(self._prefixes.items()):
+ stats = genomes[prefix["Name"]]
+ rows.append((prefix["Name"], prefix.get("Label", "-"), stats["NContigs"], stats["Size"], prefix["Path"]))
+
+ for line in text.padded_table(rows):
+ table.write("# %s\n" % (line,))
+
+
+ def _write_areas_of_interest(self, table, rois):
+ table.write("# Regions Of Interest:\n")
+ rows = [["Genome", "ROI", "Size", "NFeatures", "NIntervals", "Path"]]
+ for (_, roi) in sorted(rois.items()):
+ rows.append([roi[key] for key in ("Genome", "Name", "Size", "NFeatures", "NIntervals", "Path")])
+
+ for line in text.padded_table(rows):
+ table.write("# %s\n" % (line,))
+
+
+ def _write_tables(self, out, genomes):
+ rows = [["Target", "Sample", "Library", "Measure", "Value", "# Description"]]
+ for (target, samples) in sorted(self._read_tables(self._prefixes, genomes).iteritems()):
+ for (sample, libraries) in sorted(samples.iteritems()):
+ for (library, prefixes) in sorted(libraries.iteritems()):
+ ordered = [("reads", prefixes.pop("reads"))] if "reads" in prefixes else []
+ ordered.extend(sorted(prefixes.items()))
+
+ for (prefix, table) in ordered:
+ table.pop("hits_unique_nts(%s)" % prefix, None)
+
+ for (key, (value, comment)) in sorted(table.iteritems(), key = _measure_ordering):
+ if isinstance(value, numbers.Number) and math.isnan(value):
+ value = "NA"
+ rows.append((target, sample, library, key, value, comment))
+ rows.append("")
+ rows.append("")
+
+ for line in text.padded_table(rows):
+ out.write("%s\n" % line)
+
+
+ def _read_tables(self, prefixes, genomes):
+ table = {}
+ self._read_reads_settings(table)
+ self._read_raw_bam_stats(table)
+ self._read_lib_bam_stats(table)
+
+ for (target, samples) in table.items():
+ merged_samples = {}
+ for (sample, libraries) in samples.items():
+ merged_libraries = {}
+ for (library, subtables) in libraries.items():
+ for (tblname, subtable) in subtables.items():
+ merged_libraries[tblname] = self._merge_tables((merged_libraries.get(tblname, {}), subtable))
+ merged_samples[tblname] = self._merge_tables((merged_samples.get(tblname, {}), subtable))
+ libraries[library] = self._annotate_subtables(subtables, genomes)
+ set_in(table, (target, sample, "*"), self._annotate_subtables(merged_libraries, genomes))
+ set_in(table, (target, "*", "*"), self._annotate_subtables(merged_samples, genomes))
+
+ return table
+
+
+ @classmethod
+ def _annotate_subtables(cls, subtables, genomes):
+ if "mitochondrial" in subtables and "nuclear" in subtables:
+ subtables["endogenous"] = cls._create_endogenous_subtable(subtables, genomes)
+
+ for (tblname, subtable) in subtables.iteritems():
+ if tblname == "reads":
+ fractions = [("seq_trash_se", "seq_reads_se", "seq_trash_se_frac", "# Fraction of SE reads trashed"),
+ ("seq_trash_pe_1", "seq_reads_pairs", "seq_trash_pe_1_frac", "# Fraction of PE mate 1 reads trashed"),
+ ("seq_trash_pe_2", "seq_reads_pairs", "seq_trash_pe_2_frac", "# Fraction of PE mate 2 reads trashed"),
+ ("seq_collapsed", "seq_reads_pairs", "seq_collapsed_frac", "# Fraction of PE pairs collapsed into one read"),
+ ("seq_retained_nts", "seq_retained_reads", "seq_retained_length", "# Average number of NTs in retained reads")]
+
+ for (numerator, denominator, measure, comment) in fractions:
+ if (numerator in subtable) and (denominator in subtable):
+ value = float(subtable[numerator][0]) / subtable[denominator][0]
+ subtable[measure] = (value, comment)
+ else:
+ total_hits = subtable["hits_raw(%s)" % tblname][0]
+ total_nts = subtable["hits_unique_nts(%s)" % tblname][0]
+ total_uniq = subtable["hits_unique(%s)" % tblname][0]
+ total_reads = subtables.get("reads",{}).get("seq_retained_reads", (float("NAN"),))[0]
+
+ subtable["hits_raw_frac(%s)" % tblname] = (total_hits / float(total_reads), "# Total number of hits vs. total number of reads retained")
+ subtable["hits_unique_frac(%s)" % tblname] = (total_uniq / float(total_reads), "# Total number of unique hits vs. total number of reads retained")
+ subtable["hits_clonality(%s)" % tblname] = (1 - total_uniq / (float(total_hits) or float("NaN")), "# Fraction of hits that were PCR duplicates")
+ subtable["hits_length(%s)" % tblname] = (total_nts / (float(total_uniq) or float("NaN")), "# Average number of aligned bases per unique hit")
+ subtable["hits_coverage(%s)" % tblname] = (total_nts / float(genomes[tblname]["Size"]), "# Estimated coverage from unique hits")
+
+ return subtables
+
+
+ @classmethod
+ def _create_endogenous_subtable(self, subtables, genomes):
+ nucl = subtables["nuclear"]
+ mito = subtables["mitochondrial"]
+
+ total_hits = mito["hits_raw(mitochondrial)"][0] + nucl["hits_raw(nuclear)"][0]
+ total_hits_unique = mito["hits_unique(mitochondrial)"][0] + nucl["hits_unique(nuclear)"][0]
+ total_hits_unique_nts = mito["hits_unique_nts(mitochondrial)"][0] + nucl["hits_unique_nts(nuclear)"][0]
+
+ ratio_hits, ratio_genome, ratio_genome_inv = "NA", "NA", "NA"
+ if mito["hits_unique(mitochondrial)"][0]:
+ ratio_nts = float(nucl["hits_unique_nts(nuclear)"][0]) / mito["hits_unique_nts(mitochondrial)"][0]
+ ratio_hits = float(nucl["hits_unique(nuclear)"][0]) / mito["hits_unique(mitochondrial)"][0]
+ ratio_genome = ratio_nts / ((float(genomes["nuclear"]["Size"]) * 2) / float(genomes["mitochondrial"]["Size"]))
+ ratio_genome_inv = ratio_genome ** -1
+
+ return {
+ "hits_raw(endogenous)" : (total_hits, "# Total number of hits against the nuclear and mitochondrial genome"),
+ "hits_unique(endogenous)" : (total_hits_unique, "# Total number of unique reads (PCR duplicates removed)"),
+ "hits_unique_nts(endogenous)" : (total_hits_unique_nts, None),
+ "ratio_reads(nuc,mito)" : (ratio_hits, "# Ratio of unique hits: Hits(nuc) / H(mito)"),
+ "ratio_genome(nuc,mito)" : (ratio_genome, "# Ratio of NTs of unique hits corrected by genome sizes: (NTs(nuc) / NTs(mito)) / ((2 * Size(nuc)) / Size(mito))"),
+ "ratio_genome(mito,nuc)" : (ratio_genome_inv, "# Ratio of NTs of unique hits corrected by genome sizes: (NTs(mito) / NTs(nuc)) / (Size(mito) / (2 * Size(nuc)))")
+ }
+
+
+ def _read_reads_settings(self, table):
+ for ((sample, library, barcode), filename) in self._in_raw_read.iteritems():
+ key = (self._target, sample, library, "reads", barcode)
+ set_in(table, key, self._stat_read_settings(filename))
+
+ for (target, samples) in table.iteritems():
+ for (sample, libraries) in samples.iteritems():
+ for (library, prefixes) in libraries.iteritems():
+ prefixes["reads"] = self._merge_tables(prefixes["reads"].values())
+
+ return table
+
+
+ def _read_raw_bam_stats(self, table):
+ for ((genome, target, sample, library), filenames) in self._in_raw_bams.iteritems():
+ key = (target, sample, library)
+ hits, _ = self._read_coverage_tables(key, filenames)
+
+ value = (hits, "# Total number of hits (prior to PCR duplicate filtering)")
+ set_in(table, (target, sample, library, genome, "hits_raw(%s)" % genome), value)
+
+
+ def _read_lib_bam_stats(self, table):
+ for ((genome, target, sample, library), filenames) in self._in_lib_bams.iteritems():
+ key = (target, sample, library)
+ hits, nts = self._read_coverage_tables(key, filenames)
+
+ value = (hits, "# Total number of hits (excluding any PCR duplicates)")
+ set_in(table, (target, sample, library, genome, "hits_unique(%s)" % genome), value)
+ set_in(table, (target, sample, library, genome, "hits_unique_nts(%s)" % genome), (nts, None))
+
+
+ @classmethod
+ def _read_coverage_tables(cls, key, filenames):
+ hits = nts = 0
+ for filename in filenames:
+ subtable = {}
+ read_coverage_table(subtable, filename)
+ contigtables = get_in(subtable, key)
+
+ if contigtables is None:
+ raise NodeError("Error reading table %r; row not found:"
+ "\n %s ...\n\nIf files have been renamed "
+ "during the run, then please remove this file "
+ "in that it may be re-generated.\nHowever, "
+ "note that read-group tags in the BAM files "
+ "may not be correct!"
+ % (filename, " ".join(key)))
+
+ for contigtable in contigtables.itervalues():
+ hits += contigtable["Hits"]
+ nts += contigtable["M"]
+ return hits, nts
+
+
+ @classmethod
+ def _merge_tables(cls, tables):
+ merged = {}
+ for table in tables:
+ for (measure, (value, comment)) in table.iteritems():
+ if not isinstance(value, numbers.Number):
+ other, _ = merged.get(measure, (value, None))
+ merged[measure] = (value if (value == other) else "*", comment)
+ else:
+ other, _ = merged.get(measure, (0, None))
+ merged[measure] = (value + other, comment)
+ return merged
+
+
+ @classmethod
+ def _stat_read_settings(cls, filename):
+ if isinstance(filename, frozenset):
+ if (filename == _SE_READS):
+ return {
+ "lib_type" : ("SE", "# SE, PE, or * (for both)"),
+ "seq_reads_se" : (float("nan"), "# Total number of single-ended reads"),
+ "seq_trash_se" : (float("nan"), "# Total number of trashed reads"),
+ "seq_retained_nts" : (float("nan"), "# Total number of NTs in retained reads"),
+ "seq_retained_reads" : (float("nan"), "# Total number of retained reads"),
+ }
+ elif (filename == _PE_READS):
+ return {
+ "lib_type" : ("PE", "# SE, PE, or * (for both)"),
+ "seq_reads_pairs" : (float("nan"), "# Total number of reads"),
+ "seq_trash_pe_1" : (float("nan"), "# Total number of reads"),
+ "seq_trash_pe_2" : (float("nan"), "# Total number of reads"),
+ "seq_retained_nts" : (float("nan"), "# Total number of NTs in retained reads"),
+ "seq_retained_reads" : (float("nan"), "# Total number of retained reads"),
+ "seq_collapsed" : (float("nan"), "# Total number of pairs collapsed into one read"),
+ }
+ else:
+ return {
+ "lib_type" : ("*", "# SE, PE, or * (for both)"),
+ "seq_reads_se" : (float("nan"), "# Total number of single-ended reads"),
+ "seq_trash_se" : (float("nan"), "# Total number of trashed reads"),
+ "seq_reads_pairs" : (float("nan"), "# Total number of reads"),
+ "seq_trash_pe_1" : (float("nan"), "# Total number of reads"),
+ "seq_trash_pe_2" : (float("nan"), "# Total number of reads"),
+ "seq_retained_nts" : (float("nan"), "# Total number of NTs in retained reads"),
+ "seq_retained_reads" : (float("nan"), "# Total number of retained reads"),
+ "seq_collapsed" : (float("nan"), "# Total number of pairs collapsed into one read"),
+ }
+
+ with open(filename) as settings_file:
+ settings = settings_file.read()
+ def _re_search(regexp, default = None):
+ match = re.search(regexp, settings)
+ if not match:
+ if default is not None:
+ return default
+ raise KeyError("Could not find match with RegExp %s in file '%s'" \
+ % (repr(regexp), filename))
+
+ return int(match.groups()[0])
+
+ if "Paired end mode" in settings or "paired-end reads" in settings:
+ return {
+ "lib_type" : ("PE", "# SE, PE, or * (for both)"),
+ "seq_reads_pairs" : (_re_search("number of read pairs: ([0-9]+)"), "# Total number of pairs"),
+ "seq_trash_pe_1" : (_re_search("discarded mate 1 reads: ([0-9]+)"), "# Total number of reads"),
+ "seq_trash_pe_2" : (_re_search("discarded mate 2 reads: ([0-9]+)"), "# Total number of reads"),
+ "seq_retained_nts" : (_re_search("retained nucleotides: ([0-9]+)"), "# Total number of NTs in retained reads"),
+ "seq_retained_reads" : (_re_search("retained reads: ([0-9]+)"), "# Total number of retained reads"),
+ "seq_collapsed" : (_re_search("of (?:full-length )?collapsed pairs: ([0-9]+)", 0) + \
+ _re_search("of truncated collapsed pairs: ([0-9]+)", 0),
+ "# Total number of pairs collapsed into one read"),
+ }
+ elif "Single end mode" in settings or "single-end reads" in settings:
+ return {
+ "lib_type" : ("SE", "# SE, PE, or * (for both)"),
+ "seq_reads_se" : (_re_search("number of (?:reads|read pairs): ([0-9]+)"), "# Total number of single-ended reads"),
+ "seq_trash_se" : (_re_search("discarded mate 1 reads: ([0-9]+)"), "# Total number of trashed reads"),
+ "seq_retained_nts" : (_re_search("retained nucleotides: ([0-9]+)"), "# Total number of NTs in retained reads"),
+ "seq_retained_reads" : (_re_search("retained reads: ([0-9]+)"), "# Total number of retained reads"),
+ }
+ else:
+ assert False, filename
+
+
+ @classmethod
+ def _stat_areas_of_interest(cls, prefixes):
+ """Returns (size, number of named intervals, total number of intervals)
+ for a set of areas of interest."""
+ areas_of_interest = {}
+ for (prefix_name, prefix) in prefixes.iteritems():
+ prefix_label = prefix.get("Label", prefix_name)
+ for (roi_name, roi_filename) in prefix.get("RegionsOfInterest", {}).iteritems():
+ count, names, size = 0, set(), 0
+ with open(roi_filename) as handle:
+ for line in handle:
+ bed = BEDRecord(line)
+ names.add(bed.name if len(bed) >= 4 else (bed.contig + "*"))
+ size += (bed.end - bed.start)
+ count += 1
+ areas_of_interest[(prefix_name, roi_name)] = {"Size" : size,
+ "NFeatures" : len(names),
+ "NIntervals" : count,
+ "Genome" : prefix["Name"],
+ "Name" : roi_name,
+ "Label" : "%s:%s" % (prefix_label, roi_name),
+ "Path" : roi_filename}
+ return areas_of_interest
+
+
+ @classmethod
+ def _stat_prefixes(cls, prefixes):
+ """Returns (size, number of contigs) for a set of BWA prefix."""
+ genomes = {}
+ for prefix in prefixes:
+ with open(prefixes[prefix]["Reference"] + ".fai") as table:
+ lengths = [int(line.split()[1]) for line in table]
+
+ labels = [prefix]
+ if "Label" in prefixes[prefix]:
+ labels.append(prefixes[prefix].get("Label"))
+
+ for label in labels:
+ if label not in genomes:
+ genomes[label] = {"Size" : 0, "NContigs" : 0}
+
+ statistics = genomes[label]
+ statistics["Size"] += sum(lengths)
+ statistics["NContigs"] += len(lengths)
+
+ if "mitochondrial" in genomes and "nuclear" in genomes:
+ nucl = genomes["nuclear"]
+ mito = genomes["mitochondrial"]
+
+ genomes["endogenous"] = {"Size" : nucl["Size"] + mito["Size"],
+ "NContigs" : nucl["NContigs"] + mito["NContigs"]}
+
+ return genomes
+
+
+
+def _measure_ordering(pair):
+ measure = pair[0]
+ key = measure.split("(")[0]
+ return (__ORDERING[key], measure)
+
+
+__ORDERING = {
+ "lib_type" : 00,
+ "seq_reads_se" : 10,
+ "seq_trash_se" : 20,
+ "seq_trash_se_frac" : 30,
+ "seq_reads_pairs" : 40,
+ "seq_trash_pe_1" : 50,
+ "seq_trash_pe_1_frac" : 60,
+ "seq_trash_pe_2" : 70,
+ "seq_trash_pe_2_frac" : 80,
+ "seq_collapsed" : 90,
+ "seq_collapsed_frac" : 100,
+ "seq_retained_reads" : 110,
+ "seq_retained_nts" : 120,
+ "seq_retained_length" : 130,
+
+
+ "hits_raw" : 140,
+ "hits_raw_frac" : 150,
+ "hits_clonality" : 160,
+ "hits_unique" : 170,
+ "hits_unique_frac" : 180,
+ "hits_coverage" : 190,
+ "hits_length" : 200,
+ "ratio_reads" : 210,
+ "ratio_genome" : 220,
+ }
diff --git a/pypeline/tools/bam_pipeline/parts/target.py b/pypeline/tools/bam_pipeline/parts/target.py
new file mode 100644
index 0000000..86ca960
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/parts/target.py
@@ -0,0 +1,71 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from pypeline.common.utilities import safe_coerce_to_tuple
+from pypeline.node import MetaNode
+
+class Target:
+ def __init__(self, config, prefixes, name):
+ self.name = name
+ self.prefixes = safe_coerce_to_tuple(prefixes)
+
+ self._nodes_extras = {}
+ self._nodes_alignment = MetaNode(description = "Alignments:",
+ dependencies = [prefix.node for prefix in self.prefixes])
+
+ self._setup_extra_nodes("mapDamage", "mapdamage")
+ self._setup_extra_nodes("Duplicate Histogram", "duphist")
+
+
+ def add_extra_nodes(self, name, nodes):
+ if name in self._nodes_extras:
+ raise RuntimeError("Cannot add extra nodes '%s', task with that name exists!" % name)
+
+ self._nodes_extras[name] = MetaNode(description = name + ":",
+ dependencies = nodes)
+
+
+ @property
+ def node(self):
+ extras = MetaNode(description = "Additional tasks:",
+ dependencies = self._nodes_extras.values())
+
+ return MetaNode(description = "Target: %s" % self.name,
+ dependencies = (self._nodes_alignment, extras))
+
+ def _setup_extra_nodes(self, name, key):
+ nodes = []
+ for prefix in self.prefixes:
+ prefix_nodes = []
+ for sample in prefix.samples:
+ for library in sample.libraries:
+ value = getattr(library, key)
+ if value:
+ prefix_nodes.append(value)
+
+ if any(prefix_nodes):
+ node = MetaNode(description=prefix.name,
+ subnodes=prefix_nodes)
+ nodes.append(node)
+
+ if nodes:
+ self.add_extra_nodes(name, nodes)
diff --git a/pypeline/tools/bam_pipeline/paths.py b/pypeline/tools/bam_pipeline/paths.py
new file mode 100644
index 0000000..6f2c302
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/paths.py
@@ -0,0 +1,44 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import glob
+import itertools
+import collections
+
+
+def is_paired_end(template):
+ return (template.format(Pair = 1) != template)
+
+
+def collect_files(template, return_missing = False):
+ """ """
+ def _glob(tmpl):
+ return list(sorted(glob.glob(tmpl))) or [tmpl]
+
+ if not is_paired_end(template):
+ return {"SE" : _glob(template)}
+
+ files = {}
+ for (ii, name) in enumerate(("PE_1", "PE_2"), start = 1):
+ files[name] = _glob(template.format(Pair = ii))
+ return files
diff --git a/pypeline/tools/bam_pipeline/pipeline.py b/pypeline/tools/bam_pipeline/pipeline.py
new file mode 100755
index 0000000..748d725
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/pipeline.py
@@ -0,0 +1,383 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import sys
+import glob
+import time
+import logging
+
+import pypeline
+import pypeline.yaml
+import pypeline.logger
+
+from pypeline.common.console import \
+ print_err, \
+ print_info
+
+from pypeline.pipeline import \
+ Pypeline
+from pypeline.node import \
+ MetaNode
+from pypeline.nodes.picard import \
+ BuildSequenceDictNode
+from pypeline.nodes.samtools import \
+ FastaIndexNode
+from pypeline.nodes.bwa import \
+ BWAIndexNode
+from pypeline.nodes.bowtie2 import \
+ Bowtie2IndexNode
+from pypeline.nodes.validation import \
+ ValidateFASTAFilesNode
+
+from pypeline.tools.bam_pipeline.makefile import \
+ MakefileError, \
+ read_makefiles
+
+import pypeline.tools.bam_pipeline.parts as parts
+import pypeline.tools.bam_pipeline.config as bam_config
+import pypeline.tools.bam_pipeline.mkfile as bam_mkfile
+
+
+def _add_extra_nodes(config, makefile, targets):
+ for target in targets:
+ parts.add_statistics_nodes(config, makefile, target)
+
+ return targets
+
+
+def build_pipeline_trimming(config, makefile):
+ """Builds only the nodes required to produce trimmed reads.
+ This reduces the required complexity of the makefile to a minimum."""
+
+ nodes = []
+ for prefix in makefile["Prefixes"].itervalues():
+ for (_, samples) in makefile["Targets"].iteritems():
+ for (_, libraries) in samples.iteritems():
+ for (_, barcodes) in libraries.iteritems():
+ for (barcode, record) in barcodes.iteritems():
+ lane = parts.Lane(config, prefix, record, barcode)
+ if lane.reads and lane.reads.nodes:
+ nodes.extend(lane.reads.nodes)
+ break # Only one prefix is required
+ return nodes
+
+
+def build_pipeline_full(config, makefile, return_nodes = True):
+ targets = []
+ features = makefile["Options"]["Features"]
+ for (target_name, sample_records) in makefile["Targets"].iteritems():
+ prefixes = []
+ for (_, prefix) in makefile["Prefixes"].iteritems():
+ samples = []
+ for (sample_name, library_records) in sample_records.iteritems():
+ libraries = []
+ for (library_name, barcode_records) in library_records.iteritems():
+ lanes = []
+ for (barcode, record) in barcode_records.iteritems():
+ lanes.append(parts.Lane(config, prefix, record, barcode))
+
+ if any(lane.bams for lane in lanes):
+ libraries.append(parts.Library(config, target_name, prefix, lanes, library_name))
+
+ if libraries:
+ samples.append(parts.Sample(config, prefix, libraries, sample_name))
+
+ if samples:
+ prefixes.append(parts.Prefix(config, prefix, samples, features, target_name))
+
+ if prefixes:
+ targets.append(parts.Target(config, prefixes, target_name))
+
+ targets = _add_extra_nodes(config, makefile, targets)
+ if not return_nodes:
+ return targets
+
+ return [target.node for target in targets]
+
+
+def _make_target_list(config, makefiles):
+ target_list = {}
+ for target in build_pipeline_full(config, makefiles, return_nodes = False):
+ target_list[(target.name,)] = [target.node]
+
+ for prefix in target.prefixes:
+ target_list[(target.name, prefix.name)] = prefix.bams.values()
+
+ for sample in prefix.samples:
+ target_list[(target.name, prefix.name, sample.name)] = sample.bams.values()
+
+ for library in sample.libraries:
+ target_list[(target.name, prefix.name, sample.name, library.name)] = library.bams.values()
+
+ for lane in library.lanes:
+ lane_bams = []
+ for files_and_nodes in lane.bams.itervalues():
+ lane_bams.extend(files_and_nodes.itervalues())
+
+ target_list[(target.name, prefix.name, sample.name, library.name, lane.name)] = lane_bams
+
+ for (reads_type, bams) in lane.bams.iteritems():
+ target_list[(target.name, prefix.name, sample.name, library.name, lane.name, reads_type)] = bams.values()
+
+ if lane.reads and lane.reads.nodes:
+ target_list[(target.name, "reads", sample.name, library.name, lane.name)] = lane.reads.nodes
+
+ return target_list
+
+
+def list_targets_for(config, makefiles, show):
+ target_list = _make_target_list(config, makefiles)
+ length = {"targets" : 1, "prefixes" : 2, "samples" : 3,
+ "libraries" : 4, "lanes" : 5, "mapping" : 6,
+ "trimming" : 5}[show]
+
+ for target in sorted(target for target in target_list if len(target) == length):
+ if (show == "trimming") and (target[1] != "reads"):
+ continue
+ print ":".join(target)
+
+
+def build_pipeline_targets(config, makefile):
+ final_nodes = set()
+ target_list = _make_target_list(config, makefile)
+ for target in list(config.targets):
+ key = tuple(target.split(":"))
+ if key in target_list:
+ final_nodes.update(target_list.get(key, ()))
+ config.targets.remove(target)
+ return final_nodes
+
+
+def index_references(config, makefiles):
+ references = {}
+ references_bwa = {}
+ references_bowtie2 = {}
+ for makefile in makefiles:
+ for subdd in makefile["Prefixes"].itervalues():
+ reference = subdd["Reference"]
+ if reference not in references:
+ # Validation of the FASTA file; not blocking for the other
+ # steps, as it is only expected to fail very rarely, but will
+ # block subsequent analyses depending on the FASTA.
+ valid_node = ValidateFASTAFilesNode(input_files=reference,
+ output_file=reference
+ + ".validated")
+ # Indexing of FASTA file using 'samtools faidx'
+ faidx_node = FastaIndexNode(reference)
+ # Indexing of FASTA file using 'BuildSequenceDictionary.jar'
+ dict_node = BuildSequenceDictNode(config=config,
+ reference=reference,
+ dependencies=(valid_node,))
+
+ # Indexing of FASTA file using 'bwa index'
+ bwa_node = BWAIndexNode(input_file=reference,
+ dependencies=(valid_node,))
+ # Indexing of FASTA file using ''
+ bowtie2_node = Bowtie2IndexNode(input_file=reference,
+ dependencies=(valid_node,))
+
+ references[reference] = \
+ MetaNode(description="Reference Sequence",
+ dependencies=(valid_node, faidx_node, dict_node))
+ references_bwa[reference] = \
+ MetaNode(description="Reference Sequence",
+ dependencies=(valid_node, faidx_node,
+ dict_node, bwa_node))
+ references_bowtie2[reference] = \
+ MetaNode(description="Reference Sequence",
+ dependencies=(valid_node, faidx_node,
+ dict_node, bowtie2_node))
+
+ subdd["Node"] = references[reference]
+ subdd["Node:BWA"] = references_bwa[reference]
+ subdd["Node:Bowtie2"] = references_bowtie2[reference]
+
+
+def list_orphan_files(config, makefiles, pipeline):
+ files, mkfiles = set(), set()
+ for mkfile in makefiles:
+ mkfile_path = mkfile["Statistics"]["Filename"]
+ mkfiles.add(os.path.abspath(mkfile_path))
+ for target in mkfile["Targets"]:
+ destination = config.destination
+ if not destination:
+ destination = os.path.dirname(mkfile_path)
+
+ glob_str = os.path.join(destination, target + "*")
+ for root_filename in glob.glob(glob_str):
+ if os.path.isdir(root_filename):
+ for (dirpath, _, filenames) in os.walk(root_filename):
+ for filename in filenames:
+ fpath = os.path.join(dirpath, filename)
+ files.add(os.path.abspath(fpath))
+ else:
+ files.add(os.path.abspath(root_filename))
+ return (files - mkfiles) - frozenset(pipeline.list_output_files())
+
+
+def run(config, args):
+ if not os.path.exists(config.temp_root):
+ try:
+ os.makedirs(config.temp_root)
+ except OSError, error:
+ print_err("ERROR: Could not create temp root:\n\t%s" % (error,))
+ return 1
+
+ if not os.access(config.temp_root, os.R_OK | os.W_OK | os.X_OK):
+ print_err("ERROR: Insufficient permissions for temp root: '%s'"
+ % (config.temp_root,))
+ return 1
+
+ # Init worker-threads before reading in any more data
+ pipeline = Pypeline(config)
+
+ try:
+ print_info("Building BAM pipeline ...", file=sys.stderr)
+ makefiles = read_makefiles(config, args)
+ except (MakefileError, pypeline.yaml.YAMLError, IOError), error:
+ print_err("Error reading makefiles:",
+ "\n %s:\n " % (error.__class__.__name__,),
+ "\n ".join(str(error).split("\n")),
+ file=sys.stderr)
+ return 1
+
+ logfile_template = time.strftime("bam_pipeline.%Y%m%d_%H%M%S_%%02i.log")
+ pypeline.logger.initialize(config, logfile_template)
+ logger = logging.getLogger(__name__)
+
+ # Build .fai files for reference .fasta files
+ index_references(config, makefiles)
+
+ if config.list_targets:
+ logger.info("Listing targets for %s ...", config.list_targets)
+ for makefile in makefiles:
+ # If a destination is not specified, save results in same folder as
+ # the makefile
+ filename = makefile["Statistics"]["Filename"]
+ old_destination = config.destination
+ if old_destination is None:
+ config.destination = os.path.dirname(filename)
+
+ list_targets_for(config, makefile, config.list_targets)
+ config.destination = old_destination
+ return 0
+
+ pipeline_func = build_pipeline_trimming
+ if config.targets:
+ pipeline_func = build_pipeline_targets
+ elif os.path.basename(sys.argv[0]) != "trim_pipeline":
+ pipeline_func = build_pipeline_full
+
+ for makefile in makefiles:
+ # If a destination is not specified, save results in same folder as the
+ # makefile
+ filename = makefile["Statistics"]["Filename"]
+ old_destination = config.destination
+ if old_destination is None:
+ config.destination = os.path.dirname(filename)
+
+ try:
+ nodes = pipeline_func(config, makefile)
+ except pypeline.node.NodeError, error:
+ logger.error("Error while building pipeline for '%s':\n%s",
+ filename, error)
+ return 1
+
+ config.destination = old_destination
+
+ pipeline.add_nodes(nodes)
+
+ if config.targets:
+ logger.error("ERROR: Could not find --target(s): '%s'", "', '".join(config.targets))
+ logger.error(" Please use --list-targets to print list of valid target names.")
+ return 1
+ elif config.list_output_files:
+ logger.info("Printing output files ...")
+ pipeline.print_output_files()
+ return 0
+ elif config.list_orphan_files:
+ logger.info("Printing orphan files ...")
+ for filename in sorted(list_orphan_files(config, makefiles, pipeline)):
+ print(filename)
+ return 0
+ elif config.list_executables:
+ logger.info("Printing required executables ...")
+ pipeline.print_required_executables()
+ return 0
+ elif config.dot_file:
+ logger.info("Writing dependency graph to %r ...", config.dot_file)
+ if not pipeline.to_dot(config.dot_file):
+ return 1
+ return 0
+
+ logger.info("Running BAM pipeline ...")
+ if not pipeline.run(dry_run=config.dry_run,
+ max_running=config.max_threads,
+ progress_ui=config.progress_ui):
+ return 1
+
+ return 0
+
+
+def _print_usage():
+ basename = os.path.basename(sys.argv[0])
+ if basename == "paleomix":
+ basename = "bam_pipeline"
+
+ print_info("BAM Pipeline %s\n" % (pypeline.__version__,))
+ print_info("Usage:")
+ print_info(" -- %s help -- Display this message" % basename)
+ print_info(" -- %s makefile [...] -- Generate makefile from 'SampleSheet.csv' files." % basename)
+ print_info(" -- %s dryrun [...] -- Perform dry run of pipeline on provided makefiles." % basename)
+ print_info(" %s Equivalent to 'bam_pipeline run --dry-run [...]'." % (" " * len(basename),))
+ print_info(" -- %s run [...] -- Run pipeline on provided makefiles." % basename)
+
+
+def main(argv):
+ try:
+ config, args = bam_config.parse_config(argv)
+ if args and args[0].startswith("dry"):
+ config.dry_run = True
+ except bam_config.ConfigError, error:
+ print_err(error)
+ return 1
+
+ commands = ("makefile", "mkfile", "run",
+ "dry_run", "dry-run", "dryrun",
+ "remap")
+ if (len(args) == 0) or (args[0] not in commands):
+ _print_usage()
+ return 1
+ elif args[0] in ("mkfile", "makefile"):
+ return bam_mkfile.main(args[1:])
+ elif args[0] in ("remap", "remap_prefix"):
+ # Import here to avoid circular dependency issues
+ import pypeline.tools.bam_pipeline.remap as bam_remap
+
+ return bam_remap.main(args[1:])
+ elif not args[1:]:
+ _print_usage()
+ print_err("\nPlease specify at least one makefile!")
+ return 1
+
+ return run(config, args[1:])
diff --git a/pypeline/tools/bam_pipeline/pipeline.pyp b/pypeline/tools/bam_pipeline/pipeline.pyp
new file mode 100644
index 0000000..e69de29
diff --git a/pypeline/tools/bam_pipeline/remap.py b/pypeline/tools/bam_pipeline/remap.py
new file mode 100644
index 0000000..b9f1b29
--- /dev/null
+++ b/pypeline/tools/bam_pipeline/remap.py
@@ -0,0 +1,290 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2013 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from __future__ import print_function
+
+import os
+import sys
+import bz2
+import pysam
+
+from optparse import OptionParser
+
+import pypeline.tools.bam_pipeline.config as bam_cfg
+import pypeline.tools.bam_pipeline.mkfile as bam_mkfile
+import pypeline.tools.bam_pipeline.pipeline as bam_pipeline
+from pypeline.common.fileutils import make_dirs, reroot_path, add_postfix
+from pypeline.common.sequences import reverse_complement
+from pypeline.common.utilities import set_in, get_in
+
+
+# Indentation used when printing makefile
+_INDENTATION = " " * 4
+
+
+def samefile(fname_a, fname_b):
+ if not (os.path.exists(fname_a) and os.path.exists(fname_b)):
+ return False
+ return os.path.samefile(fname_a, fname_b)
+
+
+class ReadSink(object):
+ # Cache of opened file-handles; used to ensure that lanes containing both
+ # PE (potentialy with orphaned reads) and SE reads are all collected.
+ _cache = {}
+
+ def __init__(self, filename, handle):
+ """See ReadSink.open"""
+ self.filename = filename
+ self._handle = handle
+
+ def close(self):
+ self._handle.close()
+
+ def write_records(self, records):
+ for record in records:
+ seq = record.seq
+ qual = record.qual
+ if record.is_reverse:
+ seq = reverse_complement(seq)
+ qual = qual[::-1]
+
+ assert len(qual) == len(seq), record.qname
+ self._handle.write("@%s\n" % (record.qname,))
+ self._handle.write("%s\n" % (seq,))
+ self._handle.write("+\n")
+ self._handle.write("%s\n" % (qual,))
+
+ @classmethod
+ def get_filename(cls, destination, prefix):
+ return os.path.join(destination, "%s.fastq.bz2" % (prefix,))
+
+ @classmethod
+ def open(cls, prefix, filename):
+ if filename not in cls._cache:
+ handle = bz2.BZ2File(os.path.join(prefix, filename), "w")
+ cls._cache[filename] = ReadSink(filename, handle)
+
+ return cls._cache[filename]
+
+ @classmethod
+ def close_all_sinks(cls):
+ for handle in cls._cache.itervalues():
+ handle.close()
+ cls._cache.clear()
+
+
+class PEReadSink(ReadSink):
+ def __init__(self, prefix, destination):
+ ReadSink.__init__(self, self.get_filename(destination, "paired.{Pair}"), None)
+ self._sink_se = ReadSink.open(prefix, self.get_filename(destination, "single"))
+ self._sink_pe_1 = ReadSink.open(prefix, self.get_filename(destination, "paired.1"))
+ self._sink_pe_2 = ReadSink.open(prefix, self.get_filename(destination, "paired.2"))
+
+ def write_records(self, records):
+ record_cache = {}
+ for record in records:
+ num = 0
+ if record.is_read1:
+ num = 1
+ elif record.is_read2:
+ num = 2
+ set_in(record_cache, (record.qname, num), record)
+
+ for pair in record_cache.itervalues():
+ # Only write complete pairs
+ if (1 in pair) and (2 in pair):
+ self._sink_pe_1.write_records([pair.pop(1)])
+ self._sink_pe_2.write_records([pair.pop(2)])
+
+ # Any orphan files are written to the SE sink
+ for record in pair.itervalues():
+ self._sink_se.write_records([record])
+
+ @classmethod
+ def open(cls, prefix, destination):
+ return PEReadSink(prefix, destination)
+
+
+def convert_reads(config, destination, record, sink_cache):
+ # Source name is used, to re-merge split lanes
+ name = record.tags.get("PU_src")
+ destination = os.path.join(destination, name)
+ make_dirs(os.path.join(config.destination, destination))
+
+ def _open_se_sink(reads_type):
+ key = (name, reads_type)
+ if not get_in(sink_cache, key):
+ filename = ReadSink.get_filename(destination, reads_type.lower())
+ set_in(sink_cache, key, ReadSink.open(config.destination, filename))
+ return key
+
+ for (reads_type, bam_files) in record.bams.iteritems():
+ # Processed reads are pre-aligned BAMs which have been cleaned up
+ if reads_type in ("Paired", "Processed"):
+ # Record "Single" reads; these may result from orphan SE reads
+ _open_se_sink("Single")
+
+ key = (name, "Paired")
+ if not get_in(sink_cache, key):
+ set_in(sink_cache, key, PEReadSink.open(config.destination,
+ destination))
+ else:
+ key = _open_se_sink(reads_type)
+
+ sink = get_in(sink_cache, key)
+ for filename in bam_files:
+ print("%sProcessing file %r" % (_INDENTATION * 4, filename))
+ with pysam.Samfile(filename) as handle:
+ def _keep_record(record):
+ return (record.qual >= config.min_quality) and \
+ (len(record.seq) >= config.min_length)
+
+ sink.write_records(record for record in handle
+ if _keep_record(record))
+
+
+def parse_options(argv):
+ tmpl = "%s <Prefix> <Makefile> [<Makefile>, ...]"
+
+ parser = OptionParser(tmpl % "bam_pipeline remap")
+ parser.add_option("--destination",
+ default="remapping", dest="destination",
+ help="Destination for resulting files [%default]")
+ parser.add_option("--output-name-postfix",
+ default="_remapping", dest="postfix",
+ help="Postfix added to filenames/target names of "
+ "generated files [%default]")
+ parser.add_option("--min-quality", default=0, type=int,
+ help="Minimum quality of hits to include in output "
+ "[%default]")
+ parser.add_option("--min-length", default=0, type=int,
+ help="Minimum length of hits to include in output "
+ "[%default]")
+
+ config, args = parser.parse_args(argv)
+ if (len(args) < 2):
+ parser.print_usage()
+ return None, None
+
+ config.prefix = args[0]
+
+ return config, args[1:]
+
+
+def main(argv):
+ config, args = parse_options(argv)
+ if config is None:
+ return 1
+
+ # Get default options for bam_pipeline
+ bam_config, _ = bam_cfg.parse_config(args)
+ makefiles = bam_pipeline.read_makefiles(bam_config, args)
+ # Build .fai files for reference .fasta files
+ bam_pipeline.index_references(bam_config, makefiles)
+
+ for makefile in makefiles:
+ mkfile_fname = makefile["Statistics"]["Filename"]
+ bam_config.destination = os.path.dirname(mkfile_fname)
+ tasks = bam_pipeline.build_pipeline_full(bam_config, makefile,
+ return_nodes=False)
+
+ make_dirs(config.destination)
+ makefile_name = add_postfix(makefile["Statistics"]["Filename"],
+ config.postfix)
+ makefile_path = reroot_path(config.destination, makefile_name)
+ if samefile(makefile["Statistics"]["Filename"], makefile_path):
+ sys.stderr.write("ERROR: Would overwrite source makefile at %r\n" % (makefile_path,))
+ sys.stderr.write(" Please set --destination and/or --output-name-postfix\n")
+ sys.stderr.write(" before continuing.\n")
+ return 1
+
+ print("Writing makefile", makefile_path)
+
+ found_prefix = False
+ for prefix in makefile["Prefixes"]:
+ if prefix != config.prefix:
+ print("%sSkipping %s" % (_INDENTATION, prefix))
+ else:
+ found_prefix = True
+
+ if not found_prefix:
+ sys.stderr.write("\nERROR:\n")
+ sys.stderr.write("Could not find prefix %r in %r! Aborting ...\n"
+ % (config.prefix, mkfile_fname))
+ return 1
+
+ with open(makefile_path, "w") as makefile_handle:
+ bam_mkfile.print_header(dst=makefile_handle)
+ makefile_handle.write("\n" * 3)
+
+ for target in tasks:
+ target_name = add_postfix(target.name, config.postfix)
+ print("%sTarget: %s -> %s" % (_INDENTATION,
+ target.name,
+ target_name))
+
+ makefile_handle.write('%s"%s":\n' % (_INDENTATION * 0,
+ target_name))
+ for prefix in target.prefixes:
+ if prefix.name != config.prefix:
+ continue
+
+ for sample in prefix.samples:
+ print("%sSample: %s" % (_INDENTATION * 2, sample.name))
+
+ makefile_handle.write('%s"%s":\n' % (_INDENTATION * 1,
+ sample.name))
+
+ for library in sample.libraries:
+ print("%sLibrary: %s" % (_INDENTATION * 3,
+ library.name))
+ makefile_handle.write('%s"%s":\n'
+ % (_INDENTATION * 2,
+ library.name))
+
+ sink_cache = {}
+ destination = os.path.join(target_name,
+ "reads",
+ sample.name,
+ library.name)
+
+ for lane in library.lanes:
+ convert_reads(config, destination, lane, sink_cache)
+ ReadSink.close_all_sinks()
+
+ for lane_name in sorted(sink_cache):
+ makefile_handle.write('%s"%s":\n' % (_INDENTATION * 3, lane_name))
+ for (reads_type, sink) in sorted(sink_cache[lane_name].items()):
+ makefile_handle.write('%s%s "%s"\n'
+ % (_INDENTATION * 4,
+ ("%s:" % (reads_type,)).ljust(20),
+ sink.filename))
+ makefile_handle.write("\n")
+ print("\tDone ...")
+ print()
+
+ return 0
+
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/bam_stats/__init__.py b/pypeline/tools/bam_stats/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/pypeline/tools/bam_stats/common.py b/pypeline/tools/bam_stats/common.py
new file mode 100644
index 0000000..99ddd27
--- /dev/null
+++ b/pypeline/tools/bam_stats/common.py
@@ -0,0 +1,171 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import sys
+import argparse
+import collections
+
+import pysam
+
+import pypeline.common.system
+
+from pypeline.common.fileutils import \
+ swap_ext
+from pypeline.common.bedtools import \
+ sort_bed_by_bamfile, \
+ read_bed_file
+
+
+class BAMStatsError(RuntimeError):
+ pass
+
+
+def collect_readgroups(args, handle):
+ if args.ignore_readgroups:
+ return {None: {"SM": "<NA>", "LB": "<NA>"}}
+
+ readgroups = {}
+ for readgroup in handle.header.get("RG", ()):
+ key_id = readgroup["ID"]
+ sample = readgroup["SM"]
+ library = readgroup["LB"]
+
+ readgroups[key_id] = {"SM": sample, "LB": library}
+ return readgroups
+
+
+def collect_references(args, handle):
+ if args.regions:
+ lengths = collections.defaultdict(int)
+ for region in args.regions:
+ lengths[region.name] += region.end - region.start
+
+ lengths = dict(lengths)
+ elif handle.nreferences <= args.max_contigs:
+ lengths = dict(zip(handle.references, handle.lengths))
+ else:
+ lengths = {"<Genome>": sum(handle.lengths)}
+
+ return lengths
+
+
+def collect_bed_regions(filename):
+ regions = []
+ for record in read_bed_file(filename):
+ if len(record) < 4:
+ record.name = "%s*" % (record.contig,)
+
+ regions.append(record)
+
+ return regions
+
+
+def parse_arguments(argv, ext):
+ parser = argparse.ArgumentParser(prog="paleomix %s" % (ext.strip("."),))
+
+ parser.add_argument("infile", metavar="BAM",
+ help="Filename of a sorted BAM file. If set to '-' "
+ "the file is read from STDIN.")
+ parser.add_argument("outfile", metavar="OUTPUT", nargs='?',
+ help="Filename of output table; defaults to name of "
+ "the input BAM with a '%s' extension. If "
+ "set to '-' the table is printed to STDOUT."
+ % (ext,))
+ parser.add_argument("--target-name", default=None,
+ help="Name used for 'Target' column; defaults to the "
+ "filename of the BAM file.")
+ parser.add_argument("--regions-file", default=None, dest="regions_fpath",
+ help="BED file containing regions of interest; %s "
+ "is calculated only for these grouping by the "
+ "name used in the BED file, or the contig name "
+ "if no name has been specified for a record."
+ % (ext.strip("."),))
+ parser.add_argument('--max-contigs', default=100, type=int,
+ help="The maximum number of contigs allowed in a BAM "
+ "file. If this number is exceeded, the entire "
+ "set of contigs is aggregated into one pseudo-"
+ "contig named '<Genome>'. This is done to "
+ "limit table sizes [default: %(default)s]")
+ parser.add_argument('--ignore-readgroups',
+ default=False, action="store_true",
+ help="Ignore readgroup information in reads, and only "
+ "provide aggregated statistics; this is required "
+ "if readgroup information is missing or partial "
+ "[default: %(default)s]")
+ parser.add_argument('--overwrite-output',
+ default=False, action="store_true",
+ help="Overwrite output file if it it exists; by "
+ "default, the script will terminate if the file "
+ "already exists.")
+
+ args = parser.parse_args(argv)
+ if not args.outfile:
+ args.outfile = swap_ext(args.infile, ext)
+
+ if args.ignore_readgroups:
+ args.get_readgroup_func = _get_readgroup_ignored
+ else:
+ args.get_readgroup_func = _get_readgroup
+
+ if not args.target_name:
+ if args.infile == "-":
+ args.target_name = "<STDIN>"
+ else:
+ args.target_name = os.path.basename(args.infile)
+
+ if os.path.exists(args.outfile) and not args.overwrite_output:
+ parser.error("Destination filename already exists (%r); use option "
+ "--overwrite-output to allow overwriting of this file."
+ % (args.outfile,))
+
+ return args
+
+
+def main_wrapper(process_func, argv, ext):
+ args = parse_arguments(argv, ext)
+ args.regions = None
+ if args.regions_fpath:
+ try:
+ args.regions = collect_bed_regions(args.regions_fpath)
+ except ValueError, error:
+ sys.stderr.write("Failed to parse BED file %r:\n%s\n"
+ % (args.regions_fpath, error))
+ return 1
+
+ sys.stderr.write("Opening %r\n" % (args.infile,))
+ with pysam.Samfile(args.infile) as handle:
+ sort_bed_by_bamfile(handle, args.regions)
+ return process_func(handle, args)
+
+
+def _get_readgroup(record):
+ try:
+ return record.opt("RG")
+ except KeyError:
+ raise BAMStatsError("Record lacks readgroup tag ('RG'), use of "
+ "--ignore-readgroups is required to process this"
+ "file.\n Record = %r" % (record.qname,))
+
+
+def _get_readgroup_ignored(_):
+ return None
diff --git a/pypeline/tools/bam_stats/coverage.py b/pypeline/tools/bam_stats/coverage.py
new file mode 100644
index 0000000..0ef80a3
--- /dev/null
+++ b/pypeline/tools/bam_stats/coverage.py
@@ -0,0 +1,191 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import sys
+import datetime
+import collections
+
+from pypeline.common.utilities import \
+ get_in, \
+ set_in
+from pypeline.common.text import \
+ padded_table, \
+ parse_padded_table
+
+from pypeline.tools.bam_stats.common import \
+ BAMStatsError
+
+
+##############################################################################
+##############################################################################
+##
+
+READGROUP_TEMPLATE = {"SE": 0, "PE_1": 0, "PE_2": 0, "Collapsed": 0,
+ "Hits": 0, "M": 0, "I": 0, "D": 0, "Size": 0}
+
+
+# Header prepended to output tables
+TABLE_HEADER = """# Timestamp: %s
+#
+# Columns:
+# Contig: Contig, chromosome, or feature for which a depth histogram was
+# created. Unnamed features are named after the chromosome or
+# contig on which they are located, with a star appended. For
+# example "chr1*".
+# Size: The total size of the region. Multiple features with the same
+# name are combined into one row, with the size representing to
+# total of these. Note that overlapping bases are counted 2 (or
+# more) times.
+# Hits: Sum of SE, PE_1, and PE_2 hits. Note that supplementary
+# alignments, duplicates, reads that failed QC, secondary
+# alignments, and unmapped reads are ignored.
+# SE, PE_*: Number of Single Ended, and Pair Ended (mate 1 and 2) hits
+# overlapping the current contig or intervals. Note that a hit may
+# be counted multiple times if it overlaps multiple intervals
+# Collapsed: Number of hits for PE pair collapsed into a single read
+# M, I, D: Number of aligned (M), inserted (I) and deleted (D) bases
+# relative to references
+# Coverage: Average number of bases covering each position in the
+# contig(s)/intervals(s).
+"""
+
+
+def calculate_totals(table):
+ lengths = {}
+ for samples in table.itervalues():
+ for libraries in samples.values():
+ for contigs in libraries.values():
+ for (name, contig) in contigs.iteritems():
+ size = lengths.get(name)
+ if (size is not None) and (size != contig["Size"]):
+ raise BAMStatsError(name)
+ lengths[name] = contig["Size"]
+
+ for (name, samples) in sorted(table.items()):
+ for (sample, libraries) in sorted(samples.items()):
+ for (library, contigs) in sorted(libraries.items()):
+ totals = _calculate_totals_in(contigs, lengths)
+ set_in(table, (name, sample, library), totals)
+
+ totals = _calculate_totals_in(libraries, lengths)
+ set_in(table, (name, sample, "*"), totals)
+
+ set_in(table, (name, "*", "*"), _calculate_totals_in(table, lengths))
+ return table
+
+
+def build_rows(table):
+ rows = [("Name", "Sample", "Library", "Contig", "Size", "Hits", "SE",
+ "PE_1", "PE_2", "Collapsed", "M", "I", "D", "Coverage")]
+
+ for (name, samples) in sorted(table.items()):
+ for (sample, libraries) in sorted(samples.items()):
+ for (library, contigs) in sorted(libraries.items()):
+ for (contig, subtable) in sorted(contigs.items()):
+ row = [name,
+ sample,
+ library,
+ contig,
+ subtable["Size"],
+ subtable["SE"] + subtable["PE_1"]
+ + subtable["PE_2"]
+ + subtable["Collapsed"],
+ subtable["SE"],
+ subtable["PE_1"],
+ subtable["PE_2"],
+ subtable["Collapsed"],
+ subtable["M"],
+ subtable["I"],
+ subtable["D"],
+ float(subtable["M"]) / subtable["Size"]]
+ rows.append(row)
+ rows.append("#")
+ rows.append("#")
+
+ while rows[-1] == "#":
+ rows.pop()
+ return rows
+
+
+def read_table(table, filename):
+ with open(filename) as table_file:
+ for record in parse_padded_table(table_file):
+ key = (record["Name"], record["Sample"],
+ record["Library"], record["Contig"])
+ if "*" in key:
+ continue
+
+ subtable = get_in(table, key)
+ if subtable is None:
+ subtable = dict(READGROUP_TEMPLATE)
+ subtable["Size"] = int(record["Size"])
+ set_in(table, key, subtable)
+
+ assert int(subtable["Size"]) == int(record["Size"])
+ for key in READGROUP_TEMPLATE:
+ if key != "Size":
+ subtable[key] += int(record.get(key, 0))
+
+
+def write_table(table, filename):
+ table = calculate_totals(table)
+ rows = build_rows(table)
+
+ if filename == "-":
+ output_handle = sys.stdout
+ else:
+ output_handle = open(filename, "w")
+
+ try:
+ output_handle.write(TABLE_HEADER % datetime.datetime.now().isoformat())
+ for line in padded_table(rows):
+ output_handle.write(line)
+ output_handle.write("\n")
+ finally:
+ if output_handle is not sys.stdout:
+ output_handle.close()
+
+
+def _calculate_totals_in(tables, lengths):
+ def _defaults():
+ return dict(READGROUP_TEMPLATE)
+
+ totals = collections.defaultdict(_defaults)
+ total_size = sum(lengths.itervalues())
+
+ subtables = tables.items()
+ while subtables:
+ subtable_key, subtable = subtables.pop()
+ if subtable_key == "*":
+ totals[subtable_key]["Size"] = total_size
+ elif "SE" in subtable:
+ for key in READGROUP_TEMPLATE:
+ if key != "Size":
+ totals[subtable_key][key] += subtable[key]
+ totals["*"][key] += subtable[key]
+ else:
+ totals[subtable_key][key] = lengths[subtable_key]
+ totals["*"][key] = total_size
+ else:
+ subtables.extend(subtable.items())
+
+ return dict(totals)
diff --git a/pypeline/tools/cat.py b/pypeline/tools/cat.py
new file mode 100755
index 0000000..f4977a4
--- /dev/null
+++ b/pypeline/tools/cat.py
@@ -0,0 +1,95 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""
+Wrapper around cat / zcat / bzcat, which selects the appropriate commmand
+based on the files specified on the command-line. Input files may be a mix
+of different types of compressed / uncompressed files.
+"""
+import os
+import sys
+import argparse
+import itertools
+import subprocess
+
+
+def _select_output(filename):
+ """Returns a file-handle for 'filename'; if filename is '-' is stdout."""
+ if not filename or (filename == '-'):
+ return sys.stdout
+ return open(filename, 'wb')
+
+
+def _select_cat(filename):
+ """Identifies the compression scheme of a given file (if any) and return a
+ tuple with the appropriate cat command to decompress it.
+ """
+ with open(filename) as source:
+ header = source.read(2)
+ # The command "gzip -cd" is used instead of "zcat" because
+ # OSX ships a broken zcat command (only accepts *.Z files).
+ if header == "\x1f\x8b":
+ return ("gzip", "-cd")
+ elif header == "BZ":
+ return ("bzip2", "-cd")
+ return ("cat",)
+
+
+def _call(input_files, output_file):
+ """Call an appropriate cat on each input file, writing the contents to the
+ file specified by 'output_file'; if the latter is '-', STDOUT is used.
+ """
+ with _select_output(output_file) as out_handle:
+ for (command, filenames) in itertools.groupby(input_files,
+ _select_cat):
+ command = list(command)
+ command.extend(filenames)
+
+ subprocess.check_call(command,
+ stdout=out_handle,
+ preexec_fn=os.setsid,
+ close_fds=True)
+ return 0
+
+
+def main(argv):
+ """Main function; takes a list of arguments but excluding sys.argv[0]."""
+ parser = argparse.ArgumentParser(prog="paleomix cat")
+ parser.add_argument("files", nargs="+", help="Input files.")
+ parser.add_argument("--output", default=None,
+ help="Write output to this file; defaults to STDOUT.")
+
+ args = parser.parse_args(argv)
+
+ try:
+ return _call(input_files=args.files,
+ output_file=args.output)
+ except Exception, error: # pylint: disable=W0703
+ sys.stderr.write("Error running 'paleomix cat':\n %s\n\n" % error)
+ sys.stderr.write("Command = %s\n" % (" ".join(sys.argv),))
+ return 1
+
+ return 0
+
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/cleanup.py b/pypeline/tools/cleanup.py
new file mode 100755
index 0000000..d4b0301
--- /dev/null
+++ b/pypeline/tools/cleanup.py
@@ -0,0 +1,320 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""
+Reads SAM or BAM from STDIN and outputs cleaned and sorted BAM to STDOUT.
+
+The cleanup involves setting header-flags, fixing mate information, clearing
+various fields of unmapped reads (due to BWA leaving CIGARs in unmapped reads),
+sorting the input, and updating MD and NM tags.
+
+This script also solves a problem with parsing record-less files by SAMTools,
+which fails with a parse error if the input SAM file only contains a header.
+This is mainly a problem when aligning ancient DNA lanes against mt genomes,
+as there may not be any hits in an entire lane. For example, the following
+command will not work:
+$ samtools view -H INPUT.BAM | samtools view -Sbu -
+
+"""
+import sys
+import copy
+import argparse
+
+import pysam
+
+from pypeline.nodes.samtools import \
+ samtools_compatible_wbu_mode
+
+import pypeline.tools.factory
+
+import pypeline.common.procs as processes
+
+
+def _set_sort_order(header):
+ """Updates a BAM header to indicate coordinate sorting."""
+ hd_dict = header.setdefault("HD", {"GO": "none", "VN": "1.0"})
+ hd_dict["SO"] = "coordinate"
+
+
+def _set_pg_tags(header, tags):
+ """Updates PG tags in a BAM header, taking a sequence of ID:TAG:VALUEs."""
+ for tag in tags:
+ pg_id, pg_field, pg_value = tag.split(":")
+
+ for pg_dict in header.setdefault("PG", []):
+ if pg_dict.get("ID") == pg_id:
+ pg_dict[pg_field] = pg_value
+ break
+ else:
+ header["PG"].append({"ID": pg_id, pg_field: pg_value})
+
+
+def _set_rg_tags(header, rg_id, rg_tags):
+ """Updates RG tags in a BAM header, taking a sequence of TAG:VALUEs."""
+ readgroup = {"ID": rg_id}
+ for tag in rg_tags:
+ rg_field, rg_value = tag.split(":")
+ readgroup[rg_field] = rg_value
+ header["RG"] = [readgroup]
+
+
+def _pipe_to_bam():
+ """Simply pipes a BAM/SAM file to stdout; this is required to handle SAM
+ files that do not contain records (i.e. only a header), which are not
+ properly handled by "samtools view -S -", resulting in a parse failure.
+ """
+ with pysam.Samfile("-", "r") as input_handle:
+ write_mode = samtools_compatible_wbu_mode()
+ with pysam.Samfile("-", write_mode, template=input_handle) as output_handle:
+ for record in input_handle:
+ output_handle.write(record)
+
+ return 0
+
+
+def _cleanup_record(record):
+ """Marks a BAM record as unmapped, clearing relevant fields and/or setting
+ fields to match those of the mate (if mapped). An updated (possibly new)
+ record is returned.
+ """
+ if record.cigar:
+ # Build a new read; this is nessesary, as it is not possible
+ # to clean the CIGAR string on an existing record in current
+ # versions of Pysam.
+ unmapped_read = pysam.AlignedRead()
+ unmapped_read.qname = record.qname
+ unmapped_read.flag = record.flag
+ unmapped_read.seq = record.seq
+ unmapped_read.qual = record.qual
+ unmapped_read.tags = record.tags
+
+ if not record.mate_is_unmapped:
+ unmapped_read.rnext = record.rnext
+ unmapped_read.pnext = record.pnext
+ else:
+ unmapped_read.rnext = -1
+ unmapped_read.pnext = -1
+ unmapped_read.tid = unmapped_read.rnext
+
+ # Set .pos TWICE; this is a workaround for a bug in current versions
+ # of pysam, in which the bin in the record is re-calculated BEFORE
+ # the new position value is set, using the old pos value.
+ unmapped_read.pos = unmapped_read.pnext # Update 1 of 2
+ unmapped_read.pos = unmapped_read.pnext # Update 2 of 2
+
+ return unmapped_read
+ else:
+ record.mapq = 0
+ if record.mate_is_unmapped:
+ record.rnext = -1
+ record.pnext = -1
+ record.tid = record.rnext
+ record.pos = record.pnext
+ record.tlen = 0
+
+ return record
+
+
+def _cleanup_unmapped(args, cleanup_sam):
+ """Reads a BAM (or SAM, if cleanup_sam is True) file from STDIN, and
+ filters reads according to the filters specified in the commandline
+ arguments 'args'. The resulting records are written to STDOUT in
+ uncompressed BAM format. The output BAM is marked as sorted (under the
+ assumption that 'samtools sort' is to be run on the output) and PG tags are
+ updated if specified in the args.
+ """
+ spec = "r" if cleanup_sam else "rb"
+ with pysam.Samfile("-", spec) as input_handle:
+ header = copy.deepcopy(input_handle.header)
+ _set_sort_order(header)
+ _set_pg_tags(header, args.update_pg_tag)
+ if args.rg_id is not None:
+ _set_rg_tags(header, args.rg_id, args.rg)
+
+ write_mode = samtools_compatible_wbu_mode()
+ with pysam.Samfile("-", write_mode, header=header) as output_handle:
+ for record in input_handle:
+ if (record.mapq < args.min_quality) \
+ or (record.flag & args.exclude_flags):
+ continue
+
+ if record.is_unmapped:
+ # Unmapped read; clear all non-required fields
+ record = _cleanup_record(record)
+ elif record.mate_is_unmapped:
+ # Unmapped mate
+ record.rnext = record.tid
+ record.pnext = record.pos
+ record.tlen = 0
+
+ if args.rg_id is not None:
+ # Ensure that only one RG tag is set
+ tags = [(key, value) for (key, value) in record.tags
+ if key != "RG"]
+ tags.append(("RG", args.rg_id))
+ record.tags = tags
+
+ output_handle.write(record)
+
+ return 0
+
+
+def _setup_single_ended_pipeline(procs, bam_cleanup):
+ # Convert input to BAM and cleanup / filter reads
+ procs["pipe"] = processes.open_proc(bam_cleanup + ['cleanup-sam'],
+ stdin=sys.stdin,
+ stdout=processes.PIPE,
+ close_fds=True)
+ sys.stdin.close()
+
+ return procs["pipe"]
+
+
+def _setup_paired_ended_pipeline(procs, bam_cleanup):
+ # Convert input to (uncompressed) BAM
+ procs["pipe"] = processes.open_proc(bam_cleanup + ["pipe"],
+ stdin=sys.stdin,
+ stdout=processes.PIPE,
+ close_fds=True)
+ sys.stdin.close()
+
+ # Fix mate information for PE reads
+ call_fixmate = ['samtools', 'fixmate', '-', '-']
+ procs["fixmate"] = processes.open_proc(call_fixmate,
+ stdin=procs["pipe"].stdout,
+ stdout=processes.PIPE,
+ close_fds=True)
+ procs["pipe"].stdout.close()
+
+ # Cleanup / filter reads. Must be done after 'fixmate', as BWA may produce
+ # hits where the mate-unmapped flag is incorrect, which 'fixmate' fixes.
+ procs["cleanup"] = processes.open_proc(bam_cleanup + ['cleanup'],
+ stdin=procs["fixmate"].stdout,
+ stdout=processes.PIPE,
+ close_fds=True)
+ procs["fixmate"].stdout.close()
+
+ return procs["cleanup"]
+
+
+def _build_wrapper_command(args):
+ bam_cleanup = pypeline.tools.factory.new("cleanup")
+ bam_cleanup.set_option('--fasta', args.fasta)
+ bam_cleanup.set_option('--temp-prefix', args.temp_prefix)
+ bam_cleanup.set_option('--min-quality', str(args.min_quality))
+ bam_cleanup.set_option('--exclude-flags', hex(args.exclude_flags))
+
+ for value in args.update_pg_tag:
+ bam_cleanup.add_option('--update-pg-tag', value)
+
+ if args.rg_id is not None:
+ bam_cleanup.set_option('--rg-id', args.rg_id)
+ for value in args.rg:
+ bam_cleanup.add_option('--rg', value)
+
+ return bam_cleanup.call
+
+
+def _run_cleanup_pipeline(args):
+ bam_cleanup = _build_wrapper_command(args)
+ procs = {}
+ try:
+ # Update 'procs' and get the last process in the pipeline
+ if args.paired_ended:
+ last_proc = _setup_paired_ended_pipeline(procs, bam_cleanup)
+ else:
+ last_proc = _setup_single_ended_pipeline(procs, bam_cleanup)
+
+ # Sort, output to stdout (-o)
+ call_sort = ['samtools', 'sort', "-o", "-", args.temp_prefix]
+ procs["sort"] = processes.open_proc(call_sort,
+ stdin=last_proc.stdout,
+ stdout=processes.PIPE,
+ close_fds=True)
+ last_proc.stdout.close()
+
+ # Update NM and MD tags; output BAM (-b) to stdout
+ call_calmd = ['samtools', 'calmd', '-b', '-', args.fasta]
+ procs["calmd"] = processes.open_proc(call_calmd,
+ stdin=procs["sort"].stdout)
+ procs["sort"].stdout.close()
+
+ if any(processes.join_procs(procs.values())):
+ return 1
+ return 0
+ except:
+ for proc in procs.itervalues():
+ proc.terminate()
+ raise
+
+
+def parse_args(argv):
+ parser = argparse.ArgumentParser()
+ # "Hidden" commands, invoking the various sub-parts of this script
+ parser.add_argument('command', choices=('pipe', 'cleanup', 'cleanup-sam'),
+ nargs="?", help=argparse.SUPPRESS)
+ # Specifies if the 'cleanup' step should expect SAM input
+ parser.add_argument('--cleanup-sam', default=False, action="store_true",
+ help=argparse.SUPPRESS)
+
+ parser.add_argument('--fasta', help="REQUIRED: Reference FASTA sequence",
+ required=True)
+ parser.add_argument('--temp-prefix', required=True,
+ help="REQUIRED: Prefix for temp files")
+ parser.add_argument("-q", "--min-quality", type=int, default=0,
+ help="Equivalent to \"samtools view -q\" "
+ "\n[Default: %(default)s]")
+ parser.add_argument("-F", "--exclude-flags", default=0,
+ type=lambda value: int(value, 0), # Handle hex, etc.
+ help="Equivalent to \"samtools view -F\" "
+ "[Default: %(default)s]")
+ parser.add_argument('--paired-ended', default=False, action="store_true",
+ help='If enabled, additional processing of PE reads'
+ 'is carried out, including updating of mate '
+ 'information [Default: off]')
+
+ parser.add_argument("--update-pg-tag", default=[], action="append",
+ help="Update one PG tags with the given values, "
+ "creating the tag if it does not already exist. "
+ "Takes arguments in the form \"PGID:TAG:VALUE\".")
+ parser.add_argument('--rg-id', default=None,
+ help="If set, the read-group is overwritten based "
+ "on tags set using the --rg option, using the "
+ "id specified using --rg-id.")
+ parser.add_argument('--rg', default=[], action="append",
+ help="Create readgroup values 'ID:TAG:VALUE' "
+ "represented using a string as shown.")
+
+ return parser.parse_args(argv)
+
+
+def main(argv):
+ args = parse_args(argv)
+ if args.command == "pipe":
+ return _pipe_to_bam()
+ elif args.command == "cleanup":
+ return _cleanup_unmapped(args, cleanup_sam=False)
+ elif args.command == "cleanup-sam":
+ return _cleanup_unmapped(args, cleanup_sam=True)
+
+ sys.stderr.write("Reading SAM file from STDIN ...\n")
+ return _run_cleanup_pipeline(args)
diff --git a/pypeline/tools/coverage.py b/pypeline/tools/coverage.py
new file mode 100755
index 0000000..83ca8f9
--- /dev/null
+++ b/pypeline/tools/coverage.py
@@ -0,0 +1,169 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import sys
+import copy
+
+from pypeline.common.utilities import \
+ get_in, \
+ set_in
+from pypeline.common.timer import \
+ BAMTimer
+from pypeline.common.bamfiles import \
+ BAMRegionsIter
+
+from pypeline.tools.bam_stats.common import \
+ collect_readgroups, \
+ collect_references, \
+ main_wrapper
+from pypeline.tools.bam_stats.coverage import \
+ READGROUP_TEMPLATE, \
+ write_table
+
+
+##############################################################################
+##############################################################################
+
+def build_region_template(args, handle):
+ template = {}
+ for key in collect_readgroups(args, handle):
+ template[key] = dict(READGROUP_TEMPLATE)
+ return template
+
+
+def get_region_table(counts, region, template):
+ subtable = counts.get(region)
+ if subtable is not None:
+ return subtable
+
+ subtable = copy.deepcopy(template)
+ counts[region] = subtable
+
+ return subtable
+
+
+##############################################################################
+##############################################################################
+
+def create_or_get_subtable(table, subtable_key, size):
+ subtable = get_in(table, subtable_key)
+ if subtable is None:
+ subtable = dict(READGROUP_TEMPLATE)
+ subtable["Size"] = size
+ set_in(table, subtable_key, subtable)
+ return subtable
+
+
+def build_table(args, handle, counts):
+ table = {}
+ for (key, readgroup) in collect_readgroups(args, handle).iteritems():
+ sample = readgroup["SM"]
+ library = readgroup["LB"]
+
+ for (reference, size) in collect_references(args, handle).iteritems():
+ subtable_key = (args.target_name, sample, library, reference)
+ subtable = create_or_get_subtable(table, subtable_key, size)
+
+ statistics = counts.get(reference, {}).get(key, {})
+ for (stat, value) in statistics.iteritems():
+ subtable[stat] += value
+
+ return table
+
+
+def print_table(args, handle, counts):
+ table = build_table(args, handle, counts)
+ write_table(table, args.outfile)
+
+
+##############################################################################
+##############################################################################
+
+def process_record(subtable, record, flags, region):
+ qname = record.qname
+ if qname.startswith("M_") or qname.startswith("MT_"):
+ subtable["Collapsed"] += 1
+ elif flags & 0x40: # first of pair
+ subtable["PE_1"] += 1
+ elif flags & 0x80: # second of pair
+ subtable["PE_2"] += 1
+ else: # Singleton
+ subtable["SE"] += 1
+
+ position = record.pos
+ start = region.start
+ end = region.end
+
+ for (cigar, num) in record.cigar:
+ left = min(max(position, start), end)
+ right = min(max(position + num, start), end)
+ bases_in_region = right - left
+ assert 0 <= bases_in_region <= num
+
+ # 0 = 'M', 1 = 'I', 2 = 'D', 7 = '=', 8 = 'X'
+ if cigar in (0, 1, 2, 7, 8):
+ if bases_in_region:
+ subtable["MID MM"[cigar]] += bases_in_region
+
+ if cigar != 1: # Everything but insertions
+ position += num
+ elif cigar == 3: # N
+ position += num
+
+
+def process_file(handle, args):
+ timer = BAMTimer(handle, step=1000000)
+
+ counts = {}
+ region_template = build_region_template(args, handle)
+ for region in BAMRegionsIter(handle, args.regions):
+ if region.name is None:
+ # Trailing unmapped reads
+ continue
+
+ name = region.name
+ if not args.regions and (handle.nreferences > args.max_contigs):
+ name = '<Genome>'
+
+ region_table = get_region_table(counts, name, region_template)
+ for (_, records) in region:
+ for record in records:
+ readgroup = args.get_readgroup_func(record)
+ readgroup_table = region_table[readgroup]
+ process_record(readgroup_table, record, record.flag, region)
+ timer.increment(read=record)
+ timer.finalize()
+
+ print_table(args, handle, counts)
+
+ return 0
+
+
+def main(argv):
+ return main_wrapper(process_file, argv, ".coverage")
+
+
+##############################################################################
+##############################################################################
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/create_pileup.py b/pypeline/tools/create_pileup.py
new file mode 100644
index 0000000..bbc5804
--- /dev/null
+++ b/pypeline/tools/create_pileup.py
@@ -0,0 +1,125 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import sys
+import argparse
+import subprocess
+
+from pypeline.common.fileutils import missing_executables
+
+
+def _collect_positions(handle):
+ positions = set()
+ for line in handle:
+ if not line.startswith("#"):
+ fields = line.split("\t", 6)
+
+ if "," in fields[4]:
+ positions.add((fields[0], int(fields[1])))
+ positions = list(positions)
+ positions.sort()
+
+ return positions
+
+
+def print_status(index, contig, position, npositions, end="\r"):
+ tmpl = " - Collected pileup %i of %i (%02.2f%% done): %s:%s ... %s"
+ sys.stderr.write(tmpl % (index,
+ npositions,
+ (100.0 * index) / npositions,
+ contig,
+ position,
+ end))
+
+
+def main(argv):
+ parser = argparse.ArgumentParser(prog="paleomix create_pileup")
+ parser.add_argument("output", help="BGZipped pileup file.")
+ parser.add_argument("mpileup_args", nargs=argparse.REMAINDER)
+ args = parser.parse_args(argv)
+
+ missing = missing_executables(("samtools", "tabix", "bgzip"))
+ if missing:
+ sys.stderr.write("ERROR: Required executables are missing:\n")
+ sys.stderr.write(" - %s\n" % "\n\t- ".join(missing))
+ return 1
+
+ with open(args.output, "w") as handle:
+ bgzip = subprocess.Popen("bgzip",
+ stdin = subprocess.PIPE,
+ stdout = handle)
+
+ # While samtools mpileup has an option for specifying a list of
+ # positions (-l), this requires traversing the entire file, and may
+ # not calculate the BAQ. Given the low number of expected sites,
+ # individual calls for each position are significantly faster.
+ sys.stderr.write("Reading VCF from STDIN ...\n")
+ positions = _collect_positions(sys.stdin)
+ npositions = len(positions)
+ sys.stderr.write(" - Read %i candidate positions ...\n"
+ % (npositions,))
+
+ positions_file = args.output + ".positions"
+ with open(positions_file, "w") as handle:
+ for (contig, position) in positions:
+ handle.write("%s\t%s\n" % (contig, position))
+ sys.stderr.write(" - Wrote positions to '%s' ...\n"
+ % (positions_file,))
+
+ sys.stderr.write("Collecting pileups:\n")
+ call = ["samtools", "mpileup", "-R", "-l", positions_file]
+ call.extend(args.mpileup_args)
+ proc = subprocess.Popen(call,
+ stdout=subprocess.PIPE,
+ close_fds=True)
+
+ line = "NA\tNA\t"
+ index = npositions = 1
+ for (index, line) in enumerate(proc.stdout, start=1):
+ if (index - 1) % 100 == 0:
+ contig, position, _ = line.split("\t", 2)
+ print_status(index, contig, position, npositions)
+ bgzip.stdin.write(line)
+
+ contig, position, _ = line.split("\t", 2)
+ print_status(index, contig, position, npositions, end="\n")
+
+ if proc.wait():
+ sys.stderr.write("ERROR: Error running samtools, return-code=%i:\n"
+ % proc.wait())
+ sys.stderr.write("\t- Command: %s\n" % " ".join(call))
+ return 1
+
+ bgzip.stdin.close()
+ if bgzip.wait():
+ sys.stderr.write("ERROR: Error running bgzip, return-code %i\n"
+ % bgzip.wait())
+
+ sys.stderr.write(" - Cleaning up ...")
+ os.remove(positions_file)
+
+ subprocess.check_call(["tabix", "-b", "2", "-e", "2", args.output])
+ return 0
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/depths.py b/pypeline/tools/depths.py
new file mode 100755
index 0000000..7bb2001
--- /dev/null
+++ b/pypeline/tools/depths.py
@@ -0,0 +1,390 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import sys
+import datetime
+import itertools
+import collections
+
+from pypeline.common.timer import \
+ BAMTimer
+from pypeline.common.text import \
+ padded_table
+from pypeline.common.bamfiles import \
+ BAMRegionsIter
+
+from pypeline.tools.bam_stats.common import \
+ collect_references, \
+ collect_readgroups, \
+ main_wrapper
+
+
+##############################################################################
+##############################################################################
+##
+
+# Maximum depth to record, and hence the number of columns in output table
+_MAX_DEPTH = 200
+# Maximum number of count patterns (numbers of bases per library for a given
+# site) to cache for bulk processing; see MappingsToTotals for implementation
+_MAX_CACHE_SIZE = 10000
+
+
+# Header prepended to output tables
+_HEADER = """# Timestamp: %s
+#
+# Columns:
+# Contig: Contig, chromosome, or feature for which a depth histogram was
+# created. Unnamed features are named after the chromosome or
+# contig on which they are located, with a star appended. For
+# example "chr1*". If the maximum number of contigs was exceeded,
+# these are collapsed into one meta-contig named "<Genome>".
+# Size: The total size of the region. Multiple features with the same
+# name are combined into one row, with the size representing the
+# total for these. Note that overlapping bases are counted 2 (or
+# more) times.
+# MaxDepth: Maximum depth to use when calling SNPs, in order to exclude
+# (at least) the 0.5%% most extreme sites based on read depth,
+# not including sites with depth 0.
+# MD_*: Fraction of sites with a minimum depth of 1-200.
+#"""
+
+
+##############################################################################
+##############################################################################
+
+class MappingToTotals(object):
+ def __init__(self, totals, region, smlbid_to_smlb):
+ self._region = region
+ self._totals = totals
+ self._map_by_smlbid, self._totals_src_and_dst \
+ = self._build_mappings(totals, region.name, smlbid_to_smlb)
+ self._cache = collections.defaultdict(int)
+
+ def process_counts(self, counts, last_pos, cur_pos):
+ start = self._region.start
+ end = self._region.end
+
+ # Pileups tends to contain identical stretches, so
+ # try to avoid repeated lookups by aggregating these
+ repeats = 1
+ last_count = None
+ while counts and (last_pos < cur_pos):
+ count = counts.popleft()
+ if start <= last_pos < end:
+ if count == last_count:
+ repeats += 1
+ else:
+ if last_count is not None:
+ self._cache[tuple(last_count)] += repeats
+ last_count = count
+ repeats = 1
+ last_pos += 1
+
+ if last_count is not None:
+ self._cache[tuple(last_count)] += repeats
+
+ if len(self._cache) > _MAX_CACHE_SIZE:
+ self.finalize()
+
+ def finalize(self):
+ """Process cached counts."""
+ for (count, multiplier) in self._cache.iteritems():
+ self._update_totals(count, multiplier)
+ self._cache.clear()
+
+ def _update_totals(self, count, multiplier=1):
+ for (smlbid, count) in enumerate(count):
+ if count:
+ for lst in self._map_by_smlbid[smlbid]:
+ lst[0] += count
+
+ for (dst_counts, src_count) in self._totals_src_and_dst:
+ if src_count[0]:
+ dst_counts[src_count[0]] += multiplier
+ src_count[0] = 0
+
+ @classmethod
+ def _build_mappings(cls, totals, name, smlbid_to_smlb):
+ # Accumulators mapped by sample+library IDs
+ totals_by_smlbid = [None] * len(smlbid_to_smlb)
+ # Accumulators mapped by the corresponding table keys
+ totals_by_table_key = {}
+
+ for (smlbid, (sm_key, lb_key)) in enumerate(smlbid_to_smlb):
+ keys = [('*', '*', '*'),
+ (sm_key, '*', '*'),
+ (sm_key, '*', name),
+ (sm_key, lb_key, '*'),
+ (sm_key, lb_key, name)]
+
+ mappings = cls._nonoverlapping_mappings(keys, totals,
+ totals_by_table_key)
+ totals_by_smlbid[smlbid] = mappings
+
+ totals_src_and_dst = []
+ for (key, dst) in totals_by_table_key.iteritems():
+ totals_src_and_dst.append((totals[key], dst))
+
+ return totals_by_smlbid, totals_src_and_dst
+
+ @classmethod
+ def _nonoverlapping_mappings(cls, keys, totals, totals_by_table_key):
+ """Returns a tuple of accumulators for a given set of table keys. As
+ multiple table keys may share the same accumulator (e.g. if there is
+ only one sample, then sample "*" and that sample will be identical),
+ the tuple of accumulators may contain fewer items than keys."""
+
+ mapping = []
+ totals_used = set()
+ for key in keys:
+ # Check that accumulator is not already included
+ totals_id = id(totals[key])
+ if totals_id not in totals_used:
+ totals_used.add(totals_id)
+ accumulator = totals_by_table_key.setdefault(key, [0])
+ mapping.append(accumulator)
+ return tuple(mapping)
+
+
+##############################################################################
+##############################################################################
+
+def calc_max_depth(counts):
+ counts = dict(counts)
+ counts.pop(0, None)
+
+ running_total = sum(counts.values())
+ if not running_total:
+ return "NA"
+
+ total = float(running_total)
+ for (index, count) in sorted(counts.items()):
+ # Stop when less than the 0.5% most extreme values are included
+ if running_total / total < 0.005:
+ # The max is inclusive, so return the depth just before this one
+ return index - 1
+ running_total -= count
+
+ return "NA"
+
+
+def print_table(handle, args, totals):
+ lengths = collect_references(args, handle)
+
+ if args.outfile == "-":
+ output_handle = sys.stdout
+ else:
+ output_handle = open(args.outfile, "w")
+
+ with output_handle:
+ rows = build_table(args.target_name, totals, lengths)
+ output_handle.write(_HEADER % datetime.datetime.now().isoformat())
+ output_handle.write("\n")
+ for line in padded_table(rows):
+ output_handle.write(line)
+ output_handle.write("\n")
+
+
+def calculate_depth_pc(counts, length):
+ final_counts = [0] * (_MAX_DEPTH + 1)
+ for (depth, count) in counts.iteritems():
+ final_counts[min(_MAX_DEPTH, depth)] += count
+
+ running_total = sum(final_counts)
+ total = float(length)
+ for count in final_counts[1:]:
+ yield "%.4f" % (running_total / total,)
+ running_total -= count
+
+
+def build_table(name, totals, lengths):
+ header = ["Name", "Sample", "Library", "Contig", "Size", "MaxDepth"]
+ for index in xrange(1, _MAX_DEPTH + 1):
+ header.append("MD_%03i" % (index,))
+
+ rows = [header]
+ last_sm = last_lb = None
+ for ((sm_key, lb_key, ct_key), counts) in sorted(totals.items()):
+ if (sm_key != last_sm) and (last_sm is not None):
+ rows.extend("##")
+ elif (lb_key != last_lb) and (last_lb is not None):
+ rows.append("#")
+ last_sm, last_lb = sm_key, lb_key
+
+ if ct_key == "*":
+ length = sum(lengths.itervalues())
+ else:
+ length = lengths[ct_key]
+
+ row = [name, sm_key, lb_key, ct_key, str(length),
+ str(calc_max_depth(counts))]
+ row.extend(calculate_depth_pc(counts, length))
+
+ rows.append(row)
+
+ return rows
+
+
+##############################################################################
+##############################################################################
+
+def build_key_struct(args, handle):
+ structure = collections.defaultdict(set)
+ for readgroup in collect_readgroups(args, handle).itervalues():
+ lb_key = readgroup["LB"]
+ sm_key = readgroup["SM"]
+ structure[sm_key].add(lb_key)
+
+ return structure
+
+
+def build_new_dicts(totals, dst_sm, dst_lb, references):
+ totals[(dst_sm, dst_lb, '*')] = collections.defaultdict(int)
+ for contig in references:
+ totals[(dst_sm, dst_lb, contig)] = collections.defaultdict(int)
+
+
+def reuse_dicts(totals, dst_sm, dst_lb, src_sm, src_lb, references):
+ totals[(dst_sm, dst_lb, '*')] = totals[(src_sm, src_lb, '*')]
+ for contig in references:
+ totals[(dst_sm, dst_lb, contig)] = totals[(src_sm, src_lb, contig)]
+
+
+def build_totals_dict(args, handle):
+ references = tuple(collect_references(args, handle))
+ structure = build_key_struct(args, handle)
+
+ totals = {}
+ for (sm_key, libraries) in structure.iteritems():
+ for lb_key in libraries:
+ if len(references) == 1:
+ key = references[0]
+ counts = collections.defaultdict(int)
+ totals[(sm_key, lb_key, key)] = counts
+ totals[(sm_key, lb_key, '*')] = counts
+ else:
+ build_new_dicts(totals, sm_key, lb_key, references)
+
+ if len(libraries) == 1:
+ key = list(libraries)[0]
+ reuse_dicts(totals, sm_key, '*', sm_key, key, references)
+ else:
+ build_new_dicts(totals, sm_key, '*', references)
+
+ if len(structure) == 1:
+ key = list(structure)[0]
+ reuse_dicts(totals, '*', '*', key, '*', references)
+ else:
+ build_new_dicts(totals, '*', '*', references)
+
+ return totals
+
+
+def count_bases(args, counts, record, rg_to_smlbid, template):
+ for _ in xrange(record.alen - len(counts)):
+ counts.append(list(template))
+
+ key = rg_to_smlbid[args.get_readgroup_func(record)]
+ index = 0
+ for (cigar, count) in record.cigar:
+ if cigar in (0, 7, 8):
+ for counter in itertools.islice(counts, index, index + count):
+ counter[key] += 1
+ index += count
+ elif cigar in (2, 3, 6):
+ index += count
+
+
+def build_rg_to_smlbid_keys(args, handle):
+ """Returns a dictionary which maps a readgroup ID to an index value,
+ as well as a list containing a tuple (samples, library) corresponding
+ to each index. Typically, this list will be shorter than the map of read-
+ groups, as multiple read-groups will map to the same sample / library.
+ """
+
+ rg_to_lbsmid = {}
+ lbsm_to_lbsmid = {}
+ lbsmid_to_smlb = []
+ for (key_rg, readgroup) in collect_readgroups(args, handle).iteritems():
+ key_sm = readgroup["SM"]
+ key_lb = readgroup["LB"]
+
+ key_lbsm = (key_sm, key_lb)
+ if key_lbsm not in lbsm_to_lbsmid:
+ lbsm_to_lbsmid[key_lbsm] = len(lbsm_to_lbsmid)
+ lbsmid_to_smlb.append(key_lbsm)
+
+ rg_to_lbsmid[key_rg] = lbsm_to_lbsmid[key_lbsm]
+ return rg_to_lbsmid, lbsmid_to_smlb
+
+
+def process_file(handle, args):
+ timer = BAMTimer(handle, step=1000000)
+
+ last_tid = 0
+ totals = build_totals_dict(args, handle)
+ rg_to_smlbid, smlbid_to_smlb = build_rg_to_smlbid_keys(args, handle)
+ template = [0] * len(smlbid_to_smlb)
+
+ for region in BAMRegionsIter(handle, args.regions):
+ if region.name is None:
+ # Trailing unmapped reads
+ continue
+ elif not args.regions and (handle.nreferences > args.max_contigs):
+ region.name = '<Genome>'
+
+ last_pos = 0
+ counts = collections.deque()
+ mapping = MappingToTotals(totals, region, smlbid_to_smlb)
+ for (position, records) in region:
+ mapping.process_counts(counts, last_pos, position)
+
+ for record in records:
+ timer.increment(read=record)
+ count_bases(args, counts, record, rg_to_smlbid, template)
+
+ if (region.tid, position) < (last_tid, last_pos):
+ sys.stderr.write("ERROR: Input BAM file is unsorted\n")
+ return 1
+
+ last_pos = position
+ last_tid = region.tid
+
+ # Process columns in region after last read
+ mapping.process_counts(counts, last_pos, float("inf"))
+ mapping.finalize()
+ timer.finalize()
+
+ print_table(handle, args, totals)
+
+ return 0
+
+
+def main(argv):
+ return main_wrapper(process_file, argv, ".depths")
+
+##############################################################################
+##############################################################################
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/duphist.py b/pypeline/tools/duphist.py
new file mode 100755
index 0000000..c421c42
--- /dev/null
+++ b/pypeline/tools/duphist.py
@@ -0,0 +1,100 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""Tool for building histogram of PCR duplicates to be used with 'preseq'.
+
+This allows estimation of the library complexity, and potential further gains
+from sequencing the library. Unlike the tools included in 'preseq', this tool
+handles collapsed reads.
+
+Preseq is located at http://smithlabresearch.org/software/preseq/
+"""
+import sys
+import random
+import argparse
+import collections
+
+import pysam
+
+import pypeline.common.bamfiles as bamfiles
+
+
+def get_template_length(record):
+ """Returns the template length of the given record for paired or collapsed
+ reads; for single-ended reads, None is returned."""
+ if record.is_paired:
+ return record.tlen
+ elif record.qname.startswith("M_"):
+ return record.alen
+ return None
+
+
+def process_records(records, counts):
+ """Processes a set of records aligned to the same positon; dulpicates are
+ inferred based on the template lengths of the records, using the sequence
+ length for collapsed reads (where qname.startswith("M_")). Single-ended
+ reads are assumed to represent a random sampling of reads for which the
+ insert size is known.
+ """
+ alignments = collections.defaultdict(int)
+ for record in records:
+ if record.is_paired:
+ if (not record.is_proper_pair) or record.is_read2:
+ continue
+
+ alignment = get_template_length(record)
+ alignments[alignment] += 1
+
+ if (None in alignments) and len(alignments) > 1:
+ ambigious_count = alignments.pop(None)
+
+ # PE reads are assummed to represent a random sample of PE / collapsed
+ # reads, and distributed randomly across these to approximate this
+ keys = tuple(alignments)
+ for _ in xrange(ambigious_count):
+ key = random.choice(keys)
+ alignments[key] += 1
+
+ for count in alignments.itervalues():
+ counts[count] += 1
+
+
+def main(argv):
+ """Main function; takes a list of arguments equivalent to sys.argv[1:]."""
+ parser = argparse.ArgumentParser(prog="paleomix duphist")
+ parser.add_argument("bamfile", help="Sorted BAM file.")
+ args = parser.parse_args(argv)
+
+ # Default filters, excepting that PCR duplicates are not filtered
+ mask = bamfiles.EXCLUDED_FLAGS & ~bamfiles.BAM_PCR_DUPLICATE
+ counts = collections.defaultdict(int)
+ with pysam.Samfile(args.bamfile) as handle:
+ for region in bamfiles.BAMRegionsIter(handle, exclude_flags=mask):
+ for (_, records) in region:
+ process_records(records, counts)
+
+ for (key, count) in sorted(counts.iteritems()):
+ print "%i\t%i" % (key, count)
+
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/factory.py b/pypeline/tools/factory.py
new file mode 100644
index 0000000..bc933c6
--- /dev/null
+++ b/pypeline/tools/factory.py
@@ -0,0 +1,96 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# Copyright (c) 2014 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+"""Factory for AtomicCmdBuilders for the various PALEOMIX commands.
+
+Ensures
+"""
+import os.path
+import pypeline
+import pypeline.common.versions as versions
+
+from pypeline.atomiccmd.builder import \
+ AtomicCmdBuilder
+
+
+# The actual path of the 'paleomix' script used to invoke the current session;
+# this is done to avoid conflict with local installs vs global installs. This
+# value is set in the set by the 'paleomix' wrapper script, to ensure that
+# factory-built commands will invoke the wrapper and not a tool script.
+_PALEOMIX_PATH = None
+
+
+def new(command, *args, **kwargs):
+ """Returns AtomicCmdBuilder setup to call the tools accessible through the
+ 'paleomix' command-line tool. This builder adds executable / version checks
+ for the specified command, but does not add any arguments. Thus, calling
+ new with the argument "cat" produces the equivalent of ["paleomix", "cat"].
+ """
+ if not _PALEOMIX_PATH:
+ raise RuntimeError("Attempting to build command invoking the "
+ "'paleomix' script, but the path has not been set!")
+
+ if command in _SPECIAL_COMMANDS:
+ return _SPECIAL_COMMANDS[command](*args, **kwargs)
+ return _build_generic_command(command)
+
+
+def set_paleomix_path(fpath):
+ global _PALEOMIX_PATH
+ assert not _PALEOMIX_PATH
+ assert os.path.exists(fpath), fpath
+ _PALEOMIX_PATH = fpath
+
+
+def _check_paleomix_version():
+ assert _PALEOMIX_PATH is not None
+ version = versions.EQ(*pypeline.__version_info__)
+ return versions.Requirement(call=[_PALEOMIX_PATH, "help"],
+ search=r"v(\d+)\.(\d+)\.(\d+)",
+ checks=version,
+ priority=100)
+
+
+def _build_generic_command(argument):
+ """Returns a AtomicCmdBuilder for a regular 'paleomix ...' command."""
+ return AtomicCmdBuilder([_PALEOMIX_PATH, argument],
+ CHECK_PALEOMIX=_check_paleomix_version())
+
+
+def _build_cat_command():
+ """Returns a AtomicCmdBuilder for the 'paleomix cat' command."""
+ return AtomicCmdBuilder([_PALEOMIX_PATH, "cat"],
+ EXEC_GZIP="gzip",
+ EXEC_BZIP="bzip2",
+ EXEC_CAT="cat",
+ CHECK_PALEOMIX=_check_paleomix_version())
+
+
+def _build_create_pileup_command(outfile):
+ """Returns a AtomicCmdBuilder for a regular 'paleomix ...' command."""
+ return AtomicCmdBuilder([_PALEOMIX_PATH, "create_pileup", outfile],
+ CHECK_PALEOMIX=_check_paleomix_version())
+
+
+_SPECIAL_COMMANDS = {
+ "cat": _build_cat_command,
+ "create_pileup": _build_create_pileup_command,
+}
diff --git a/pypeline/tools/genotype.py b/pypeline/tools/genotype.py
new file mode 100755
index 0000000..7d59680
--- /dev/null
+++ b/pypeline/tools/genotype.py
@@ -0,0 +1,518 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""Wrapper around "samtools mpileup | bcftools view", to improve performance
+when genotyping sparse regions (e.g. sets of exons / RNAs / or similar), and
+allow transparent multi-threading. Alternatively, only "samtools mpileup" may
+be called, in order to generate pileups for a set of regions.
+
+There are 3 main motivations for this wrapper:
+ 1. Current versions of SAMTools read the full contents of the input BAM,
+ when a BED file of regions is specified, even if these regions cover
+ only a fraction of sites. This can be somewhat mitigated by ALSO
+ specifying a region using -r, which fetches just that region, but this
+ does not scale well for thousands of individual regions.
+ 2. It provides transparent parallelization, allowing any set of bed regions
+ to be split and processed in parallel.
+"""
+import os
+import sys
+import shutil
+import signal
+import argparse
+import traceback
+import multiprocessing
+
+import pysam
+
+from pypeline.common.bedtools import \
+ read_bed_file, \
+ sort_bed_by_bamfile
+
+from pypeline.nodes.samtools import \
+ samtools_compatible_wbu_mode
+
+import pypeline.tools.factory as factory
+import pypeline.common.procs as processes
+
+
+class BatchError(RuntimeError):
+ pass
+
+
+# Size of smallest block in (linear) BAM index (= 2 << 14)
+_BAM_BLOCK_SIZE = 16384
+
+
+###############################################################################
+###############################################################################
+# CLI functions
+
+def build_call(call, args, positional, new_args):
+ call = list(call)
+ args = dict(args)
+
+ for new_arg in new_args:
+ key, value = new_arg, None
+ if "=" in new_arg:
+ key, value = new_arg.split("=", 1)
+ args[key] = value
+
+ for (key, value) in sorted(args.iteritems()):
+ call.append(key)
+ if value is not None:
+ call.append(value)
+
+ call.extend(positional)
+
+ return call
+
+
+###############################################################################
+###############################################################################
+# BAM filtering mode
+import time
+def filter_bam(bamfile, bedfile):
+ with pysam.Samfile(bamfile) as bam_handle_in:
+ regions = collect_regions(bedfile, bam_handle_in)
+ regions.reverse()
+
+ write_mode = samtools_compatible_wbu_mode()
+ with pysam.Samfile("-", write_mode,
+ template=bam_handle_in) as bam_handle_out:
+ while regions:
+ region_aend = 0
+ contig, start, end = regions[-1]
+ for record in bam_handle_in.fetch(contig, start):
+ current_aend = record.aend
+ region_aend = max(region_aend, current_aend)
+ if record.pos > end:
+ last_contig, _, _ = regions.pop()
+ if not regions:
+ break
+
+ contig, start, end = regions[-1]
+ if (region_aend + _BAM_BLOCK_SIZE < start) \
+ or (contig != last_contig):
+ break
+
+ if current_aend >= start:
+ bam_handle_out.write(record)
+ else: # Reached the end of this contig
+ while regions and (regions[-1][0] == contig):
+ regions.pop()
+
+ return 0
+
+
+###############################################################################
+###############################################################################
+# Common functions
+
+def cleanup_batch(setup):
+ sys.stderr.write("Cleaning up batch ...\n")
+ for handle in setup["handles"].itervalues():
+ handle.close()
+
+ for proc in setup["procs"].itervalues():
+ if proc.poll() is None:
+ proc.terminate()
+ proc.wait()
+
+ for filename in setup["temp_files"].itervalues():
+ sys.stderr.write("Removing temporary file %r\n" % (filename,))
+ os.remove(filename)
+
+
+def write_bed_file(prefix, regions):
+ fpath = prefix + ".bed"
+ with open(fpath, "w") as bed_handle:
+ for (contig, start, end) in regions:
+ bed_handle.write("%s\t%i\t%i\n" % (contig, start, end))
+ bed_handle.flush()
+ return fpath
+
+
+def setup_basic_batch(args, regions, prefix, func):
+ setup = {"files": {},
+ "temp_files": {},
+ "procs": {},
+ "handles": {}}
+
+ try:
+ setup["files"]["bed"] = write_bed_file(prefix, regions)
+ setup["temp_files"]["bed"] = setup["files"]["bed"]
+
+ filter_builder = factory.new("genotype")
+ filter_builder.set_option("--filter-only")
+ filter_builder.set_option("--bedfile", setup["files"]["bed"])
+ filter_builder.add_option(args.bamfile)
+ filter_builder.add_option(args.destination)
+
+ setup["procs"]["filter"] \
+ = processes.open_proc(filter_builder.call,
+ stdout=processes.PIPE,
+ close_fds=True)
+
+ setup["handles"]["outfile"] = open(prefix, "w")
+ zip_proc = processes.open_proc(["bgzip"],
+ stdin=func(setup),
+ stdout=setup["handles"]["outfile"],
+ close_fds=True)
+
+ setup["procs"]["gzip"] = zip_proc
+
+ return setup
+ except:
+ sys.stderr.write(traceback.format_exc() + "\n")
+ cleanup_batch(setup)
+ raise
+
+
+###############################################################################
+###############################################################################
+# Pileup batch generation
+
+def setup_mpileup_batch(args, regions, prefix):
+ def _create_mpileup_proc(setup):
+ mpileup_args = {"-l": setup["files"]["bed"]}
+ call = build_call(call=("samtools", "mpileup"),
+ args=mpileup_args,
+ new_args=args.mpileup_argument,
+ positional=("-",))
+
+ sys.stderr.write("Running 'samtools mpileup': %s\n" % (" ".join(call)))
+ procs = setup["procs"]
+ procs["mpileup"] \
+ = processes.open_proc(call,
+ stdin=procs["filter"].stdout,
+ stdout=processes.PIPE,
+ close_fds=True)
+
+ return procs["mpileup"].stdout
+
+ return setup_basic_batch(args, regions, prefix, _create_mpileup_proc)
+
+
+###############################################################################
+###############################################################################
+# Genotyping batch generation
+
+def setup_genotyping_batch(args, regions, prefix):
+ def _create_genotyping_proc(setup):
+ mpileup_args = {"-u": None,
+ "-l": setup["files"]["bed"]}
+ mpileup_call = build_call(call=("samtools", "mpileup"),
+ args=mpileup_args,
+ new_args=args.mpileup_argument,
+ positional=("-",))
+
+ sys.stderr.write("Running 'samtools mpileup': %s\n"
+ % (" ".join(mpileup_call)))
+
+ procs = setup["procs"]
+ procs["mpileup"] \
+ = processes.open_proc(mpileup_call,
+ stdin=procs["filter"].stdout,
+ stdout=processes.PIPE,
+ close_fds=True)
+
+ bcftools_call = build_call(call=("bcftools", "view"),
+ args={},
+ new_args=args.bcftools_argument,
+ positional=("-",))
+
+ sys.stderr.write("Running 'bcftools call': %s\n"
+ % (" ".join(bcftools_call)))
+
+ procs["bcftools"] \
+ = processes.open_proc(bcftools_call,
+ stdin=procs["mpileup"].stdout,
+ stdout=processes.PIPE,
+ close_fds=True)
+
+ return procs["bcftools"].stdout
+
+ return setup_basic_batch(args, regions, prefix, _create_genotyping_proc)
+
+
+###############################################################################
+###############################################################################
+
+def setup_batch(args, regions, filename):
+ """Setup a batch; either a full genotyping, or just a pileup depending on
+ 'args.pileup_only'; the results are written to 'filename'.
+ """
+ if args.pileup_only:
+ return setup_mpileup_batch(args, regions, filename)
+ return setup_genotyping_batch(args, regions, filename)
+
+
+def run_batch((args, regions, filename)):
+ setup = setup_batch(args, regions, filename)
+ try:
+ if any(processes.join_procs(setup["procs"].values())):
+ return None
+
+ return filename
+ except:
+ # Re-wrap exception with full-traceback; otherwise this information
+ # is lost when the exception is retrieved in the main process.
+ raise BatchError(traceback.format_exc())
+ finally:
+ cleanup_batch(setup)
+
+
+###############################################################################
+###############################################################################
+
+def init_worker_thread():
+ """Init function for subprocesses created by multiprocessing.Pool: Ensures
+ that KeyboardInterrupts only occur in the main process, allowing us to do
+ proper cleanup.
+ """
+ signal.signal(signal.SIGINT, signal.SIG_IGN)
+
+
+###############################################################################
+###############################################################################
+
+def merge_bed_regions(regions):
+ """Takes a sequence of bed regions [(contig, start, end), ...], which is
+ assumed to be sorted by contig and coordiates, and returns a list in which
+ overlapping records are merged into one larger region.
+ """
+ merged = []
+ last_contig = last_start = last_end = None
+ for record in regions:
+ if (record.contig != last_contig) or (record.start > last_end):
+ if last_contig is not None:
+ merged.append((last_contig, last_start, last_end))
+ last_contig = record.contig
+ last_start = record.start
+ last_end = record.end
+ else:
+ last_start = min(last_start or 0, record.start)
+ last_end = max(last_end, record.end)
+
+ if last_contig is not None:
+ merged.append((last_contig, last_start, last_end))
+
+ return merged
+
+
+def create_batches(args, regions):
+ """Yields a sequence of batches that may be passed to the 'run_batch'
+ function; each batch consists of the 'args' object, a set of BED regions,
+ and a destination filename. The set of BED regions is derived by splitting
+ the total set of regions into args.nbatches portions.
+ """
+ tmpl = "{0}.batch_%03i".format(args.destination)
+ def _get_batch_fname(count):
+ """Returns a filename for batch number 'count'."""
+ if count:
+ return tmpl % (count,)
+ return args.destination
+
+ total_size = sum(end - start for (_, start, end) in regions)
+ batch_size = total_size // args.nbatches + 5
+
+ batch_count = 0
+ current_batch = []
+ current_total = 0
+ for (contig, start, end) in regions:
+ while (end - start) + current_total > batch_size:
+ new_end = start + batch_size - current_total
+ current_batch.append((contig, start, new_end))
+ start = new_end
+ yield args, current_batch, _get_batch_fname(batch_count)
+ current_batch = []
+ current_total = 0
+ batch_count += 1
+ current_batch.append((contig, start, end))
+ current_total += end - start
+
+ if current_batch:
+ yield args, current_batch, _get_batch_fname(batch_count)
+
+
+def merge_batch_results(filenames_iter):
+ """Takes a multiprocessing.imap iterator yielding filenames of completed
+ batches (gzipped vcf or mpileup files), and writes these into the
+ file-handle out.
+ """
+ while True:
+ try:
+ # A timeout allows iteruption by the user, which is not the
+ # case otherwise. The value is arbitrary.
+ target_filename = filenames_iter.next(60)
+ # None signals error in subprocess; see 'run_batch'
+ if target_filename is None:
+ return False
+
+ sys.stderr.write("Merging into file: %r\n" % (target_filename,))
+ break
+ except multiprocessing.TimeoutError:
+ pass
+ except StopIteration:
+ return
+
+ with open(target_filename, "r+") as target_handle:
+ while True:
+ try:
+ filename = filenames_iter.next(60)
+ sys.stderr.write(" - Processing batch: %r" % (filename,))
+
+ # BGZip is terminated by 28b empty block (cf. ref)
+ # While the standard implies that these should be ignored
+ # if not actually at the end of the file, the tabix tool
+ # stops processing at the first such block it encounters
+ target_handle.seek(-28, 2)
+ with open(filename) as input_handle:
+ shutil.copyfileobj(input_handle, target_handle)
+ os.remove(filename)
+ except multiprocessing.TimeoutError:
+ pass
+ except StopIteration:
+ break
+
+ return True
+
+
+def collect_regions(bedfile, bam_input_handle):
+ """Returns the regions to be genotyped / pileup'd, as a list of bed-regions
+ in the form (contig, start, end), where start is zero-based, and end is
+ open based.
+ """
+ if bedfile is not None:
+ regions = list(read_bed_file(bedfile))
+ sort_bed_by_bamfile(bam_input_handle, regions)
+ regions = merge_bed_regions(regions)
+ else:
+ regions = []
+ for (name, length) in zip(bam_input_handle.references,
+ bam_input_handle.lengths):
+ regions.append((name, 0, length))
+ return regions
+
+
+def process_batches(args, batches):
+ """Runs a set of batches, and merges the resulting output files if more
+ than one batch is included.
+ """
+ nbatches = min(args.nbatches, len(batches))
+ pool = multiprocessing.Pool(nbatches, init_worker_thread)
+
+ try:
+ batches = pool.imap(run_batch, batches, 1)
+ if not merge_batch_results(batches):
+ pool.terminate()
+ pool.join()
+ return 1
+
+ pool.close()
+ pool.join()
+ return 0
+ except:
+ pool.terminate()
+ pool.join()
+ raise
+
+
+def create_empty_bgz(destination):
+ """Writes an empty BGZip file to the given destination; this file contains
+ a single empty BGZip block (28b).
+ """
+ with open(destination, "w") as output:
+ # Empty BGZip block
+ output.write("\x1f\x8b\x08\x04\x00\x00\x00\x00\x00\xff\x06\x00\x42")
+ output.write("\x43\x02\x00\x1b\x00\x03\x00\x00\x00\x00\x00\x00\x00")
+ output.write("\x00\x00")
+
+
+def parse_args(argv):
+ parser = argparse.ArgumentParser()
+ parser.add_argument("bamfile", metavar='INPUT',
+ help="Sorted and indexed BAM file.")
+ parser.add_argument("destination", metavar='OUTPUT',
+ help="BGZip compressed VCF or pileup. Also used as "
+ "prefix for temporary files.")
+ parser.add_argument('--bedfile', default=None,
+ help="Optional bedfile, specifying regions to pileup "
+ "or genotype [Default: %(default)s].")
+ parser.add_argument('--mpileup-argument', default=[], action="append",
+ help="Pass argument to 'samtools mpileup'; must be "
+ "used as follows: --mpileup-argument=-argument "
+ "for arguments without values, and "
+ "--mpileup-argument=-argument=value for "
+ "arguments with values.")
+ parser.add_argument('--bcftools-argument', default=[], action="append",
+ help="Pass argument to 'bcftools view'; see the "
+ "--mpileup-argument command description.")
+ parser.add_argument('--pileup-only', default=False, action="store_true",
+ help="Only run 'samtools mpileup', generating a text "
+ "pileup instead of a VCF file [Default: off].")
+ parser.add_argument('--nbatches', metavar="N", default=1, type=int,
+ help="Split the BED into N number of batches, which "
+ "are run in parallel [Default: %(default)s].")
+ parser.add_argument('--overwrite', default=False, action="store_true",
+ help="Overwrite output if it already exists "
+ "[Default: no].")
+
+ # When set, the --bedfile argument is read and used to filter the BAM
+ # specified for the 'bamfile' parameter; all other parameters are ignored.
+ parser.add_argument('--filter-only', default=False, action="store_true",
+ help=argparse.SUPPRESS)
+
+ return parser.parse_args(argv)
+
+
+def main(argv):
+ args = parse_args(argv)
+ if args.filter_only:
+ if not args.bedfile:
+ sys.stderr.write("--filter-only requires --bedfile; terminating\n")
+ return 1
+
+ return filter_bam(args.bamfile, args.bedfile)
+
+ if os.path.exists(args.destination) and not args.overwrite:
+ sys.stderr.write("Output already exists; use --overwrite to allow "
+ "overwriting of this file.\n")
+ return 1
+
+ with pysam.Samfile(args.bamfile) as bam_input_handle:
+ regions = collect_regions(args.bedfile, bam_input_handle)
+ batches = list(create_batches(args, regions))
+ if not batches:
+ create_empty_bgz(args.destination)
+ return 0
+
+ try:
+ return process_batches(args, batches)
+ except BatchError, error:
+ sys.stderr.write("ERROR while processing BAM:\n")
+ sys.stderr.write(" %s\n"
+ % ("\n ".join(str(error).split("\n"),)))
+ return 1
+
+ return 0
diff --git a/pypeline/tools/gtf_to_bed.py b/pypeline/tools/gtf_to_bed.py
new file mode 100755
index 0000000..5f0d49c
--- /dev/null
+++ b/pypeline/tools/gtf_to_bed.py
@@ -0,0 +1,316 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+#
+# Converts a GTF file to a set of BED6 files, one for each
+# feature in the GTF file (CDS, Exon, ...). Also generates a list
+# of introns, and UTRs based on sequences in the GTF.
+#
+from __future__ import with_statement
+from __future__ import print_function
+
+import sys
+from argparse import ArgumentParser
+
+import pysam
+
+from pypeline.common.utilities import set_in, get_in
+import pypeline.common.text as text
+
+
+###############################################################################
+###############################################################################
+# Functions used for GTF parsing and filtering
+
+def filter_gtf_record(gtf):
+ return gtf.feature not in ("exon", "CDS")
+
+
+def update_gtf_table(table, gtf, scaffolds, contig_prefix):
+ # Workaround for bug in Pysam, which mis-parses individual properties
+ # (e.g. exon_number) if these are not quoted. This does not apply to
+ # asDict, which uses a different parsing implementation (v0.7.8).
+ properties = gtf.asDict()
+
+ keys = (properties["gene_biotype"],
+ properties["gene_id"],
+ properties["transcript_id"],
+ int(properties["exon_number"]),
+ gtf.feature)
+
+ record = {"contig": contig_prefix + gtf.contig,
+ "start": gtf.start,
+ # In pysam, 'end' equals the past-the-end position
+ "end": gtf.end - 1,
+ "strand": gtf.strand,
+ "feature": gtf.feature,
+ "transcript": properties["transcript_id"]}
+
+ if record["contig"] in scaffolds:
+ contig = scaffolds[record["contig"]]
+ record["contig"] = contig["chrom"]
+ record["start"] += int(contig["chromStart"])
+ record["end"] += int(contig["chromStart"])
+
+ assert not get_in(table, keys), keys
+ set_in(table, keys, record)
+
+
+def read_gtf(lines, scaffolds, contig_prefix):
+ table = {} # gene_id -> transcript_id -> exon_number -> feature -> [items]
+ for gtf in text.parse_lines(lines, pysam.asGTF()):
+ if not filter_gtf_record(gtf):
+ update_gtf_table(table, gtf, scaffolds, contig_prefix)
+
+ return table
+
+
+def read_scaffolds(filename):
+ scaffolds = {}
+ with open(filename) as handle:
+ header = handle.readline().strip("#\n\r").split("\t")
+ for line in handle:
+ row = dict(zip(header, line.rstrip("\r\n").split("\t")))
+ scaffolds[row["contig"]] = row
+ return scaffolds
+
+
+###############################################################################
+###############################################################################
+
+def get_introns(exons):
+ lst = [exons[n]["exon"] for n in sorted(exons)]
+ if lst[0]["strand"] == "-":
+ # Exon numbers follow the read direction, and the coordinates are
+ # therefore descending for regions on the negative strand. Below we
+ # assume that the coordinates are ascending, so reorder the list.
+ lst = lst[::-1]
+
+ introns = []
+ for (record_a, record_b) in zip(lst, lst[1:]):
+ if record_a["end"] == record_b["start"] - 1:
+ # Intron has been lost?
+ continue
+
+ record = dict(record_a)
+ record.update(feature="intron",
+ start=record_a["end"] + 1,
+ end=record_b["start"] - 1)
+ assert record["start"] <= record["end"], lst
+
+ introns.append(record)
+
+ return introns
+
+
+def split_exon(exon, cds):
+ """Takes an exon and a CDS, and returns a map of regions for each
+ feature (UTR5/3, CDS) that may be inferred from the arguments.
+ Note that the CDS is simply returned as is, to simplify
+ downstream handling of these features."""
+ results = [cds]
+
+ if exon["start"] < cds["start"]:
+ utr = dict(exon)
+ utr.update(end=cds["start"] - 1,
+ feature=(exon["strand"] == "+" and "UTR5" or "UTR3"))
+ results.append(utr)
+
+ if exon["end"] > cds["end"]:
+ utr = dict(exon)
+ utr.update(start=cds["end"] + 1,
+ feature=(exon["strand"] == "+" and "UTR3" or "UTR5"))
+ results.append(utr)
+
+ return results
+
+
+def split_exons(exons, func):
+ # By looping over the list sorted by exon-number, we can easily
+ # determine whether or not we are dealing with a 5' or 3' UTR.
+ seen_cds = False
+ for (_, exon) in sorted(exons.iteritems()):
+ if "CDS" in exon:
+ seen_cds = True
+ cds, exon = exon["CDS"], exon["exon"]
+
+ func(split_exon(exon, cds))
+ else:
+ utr = dict(exon["exon"])
+ utr.update(feature=(seen_cds and "UTR3" or "UTR5"))
+
+ func([utr])
+
+
+def select_transcripts(options, transcripts, protein_coding):
+ """Returns the largest transcript, preferring well formed
+ transcripts (len(CDS) % 3 == 0) if the gene is protein coding."""
+ if options.keep_all_transcripts and options.keep_malformed_proteins:
+ return transcripts.itervalues()
+
+ selection = []
+ for transcript in transcripts.itervalues():
+ well_formed = True
+ exon_len = cds_len = 0
+ for records in transcript.itervalues():
+ exon_record = records["exon"]
+ exon_len += exon_record["end"] - exon_record["start"] + 1
+
+ if protein_coding and ("CDS" in records):
+ cds_record = records["CDS"]
+ cds_len += cds_record["end"] - cds_record["start"] + 1
+
+ if protein_coding:
+ well_formed = (cds_len and (cds_len % 3 == 0))
+
+ if well_formed or options.keep_malformed_proteins:
+ selection.append(((well_formed, exon_len), transcript))
+
+ if options.keep_all_transcripts or not selection:
+ return [item[-1] for item in selection]
+
+ return [max(selection, key=lambda item: item[0])[-1]]
+
+
+def _do_build_feature_table(options, table, features, protein_coding):
+ def add_records(records):
+ for record in records:
+ features[record["feature"]].append(record)
+
+ retained = read = 0
+ for transcripts in table.itervalues():
+ read += len(transcripts)
+ for exons in select_transcripts(options, transcripts, protein_coding):
+ retained += 1
+ add_records(get_introns(exons))
+ yield (exons, add_records)
+
+ print("\t- Processed %i transcripts, filtered %i (%.1f%%) ..."
+ % (read, read - retained, (100.0 * (read - retained)) / read))
+
+
+def build_coding_seqs_table(options, table):
+ """Takes a table generated from a GTF file, and constructs a table for each
+ feature, inferring introns and UTRs from the exons and CDSs of the input
+ table."""
+ print("Building table of features for coding sequences ...")
+ features = {"UTR5": [],
+ "UTR3": [],
+ "CDS": [],
+ "intron": []}
+
+ feature_table = _do_build_feature_table(options, table, features, True)
+ for (exons, add_records) in feature_table:
+ split_exons(exons, add_records)
+ return features
+
+
+def build_noncoding_seqs_table(options, table):
+ print("Building table of features for non-coding sequences ...")
+ features = {"exon": [],
+ "intron": []}
+
+ feature_table = _do_build_feature_table(options, table, features, False)
+ for (exons, add_records) in feature_table:
+ add_records(record["exon"] for record in exons.itervalues())
+ return features
+
+
+def write_bed(table, target):
+ if not table:
+ return
+
+ def sort_key(record):
+ return (record["contig"], record["start"], record["end"])
+
+ with open(target, "w") as out:
+ for record in sorted(table, key=sort_key):
+ out.write("%s\t%i\t%i\t%s\t%i\t%s\n" %
+ # As described on http://genome.ucsc.edu/FAQ/FAQformat
+ (record["contig"], # chrom
+ record["start"], # chromStart
+ record["end"] + 1, # chromEnd, past-the-end
+ record["transcript"], # name
+ 0, # score
+ record["strand"])) # strand
+
+
+###############################################################################
+###############################################################################
+
+def parse_arguments(argv):
+ parser = ArgumentParser()
+ parser.add_argument('infile', metavar="INPUT.gtf",
+ help="Input file in GTF format.")
+ parser.add_argument('output_prefix', metavar="OUTPUT_PREFIX",
+ help="Prefix of output files.")
+ parser.add_argument('scaffolds', metavar="SCAFFOLDS", nargs="?",
+ help="Mapping of scaffolds to contig positions; e.g. "
+ "mapping individual Un* scaffolds onto chrUn.")
+ parser.add_argument("--keep-all-transcripts",
+ action="store_true", default=False,
+ help="Include all transcripts in the output BED "
+ "files, not just the longest transcript of each "
+ "gene [default: off]")
+ parser.add_argument("--keep-malformed-proteins",
+ action="store_true", default=False,
+ help="Include transcripts of protein-coding in the "
+ "output, even if the the length of the CDS is "
+ "not divisible by 3 [default: off]")
+ parser.add_argument('--contig-prefix', default="",
+ help="Add prefix to contig names (e.g. 'chr') "
+ "[default: no prefix].")
+
+ return parser.parse_args(argv)
+
+
+def main(argv):
+ args = parse_arguments(argv)
+
+ scaffolds = {}
+ if args.scaffolds:
+ print("Reading scaffolds information from %r" % (args.scaffolds,))
+ scaffolds = read_scaffolds(args.scaffolds)
+
+ with open(args.infile, "r") as gtf_file:
+ print("Reading GTF from %r" % (args.infile,))
+ src_table = read_gtf(gtf_file, scaffolds, args.contig_prefix)
+
+ for (source, table) in src_table.iteritems():
+ print("Writing tables for '%s' ..." % source)
+
+ if source.startswith("protein"):
+ features = build_coding_seqs_table(args, table)
+ else:
+ features = build_noncoding_seqs_table(args, table)
+
+ for feature in features:
+ fpath = "%s.%s.%s.bed" % (args.output_prefix, source, feature)
+
+ print("\tWriting %ss to '%s' ..." % (feature, fpath, ))
+ write_bed(features[feature], fpath)
+
+ return 0
+
+
+if __name__ == "__main__":
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/phylo_pipeline/__init__.py b/pypeline/tools/phylo_pipeline/__init__.py
new file mode 100644
index 0000000..90e5529
--- /dev/null
+++ b/pypeline/tools/phylo_pipeline/__init__.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
diff --git a/pypeline/tools/phylo_pipeline/config.py b/pypeline/tools/phylo_pipeline/config.py
new file mode 100644
index 0000000..720deee
--- /dev/null
+++ b/pypeline/tools/phylo_pipeline/config.py
@@ -0,0 +1,157 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2013 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import optparse
+
+import pypeline
+
+import pypeline.tools.phylo_pipeline.parts.genotype as genotype
+import pypeline.tools.phylo_pipeline.parts.msa as msa
+import pypeline.tools.phylo_pipeline.parts.paml as paml
+import pypeline.tools.phylo_pipeline.parts.phylo as phylo
+import pypeline.common.console as console
+
+from pypeline.config import \
+ ConfigError, \
+ PerHostValue, \
+ PerHostConfig
+
+
+_DESCRIPTION = \
+ "Commands:\n" \
+ " -- %prog help -- Display this message.\n" \
+ " -- %prog makefile -- Print makefile template.\n" \
+ " -- %prog genotype [...] -- Carry out genotyping according to makefile.\n" \
+ " -- %prog msa [...] -- Carry out multiple sequence alignment.\n" \
+ " -- %prog phylogeny [...] -- Carry out phylogenetic inference.\n"
+
+
+_COMMANDS = {
+ "mkfile" : True,
+ "genotype" : genotype.chain,
+ "genotyping" : genotype.chain,
+ "msa" : msa.chain,
+ "paml:codeml" : paml.chain_codeml,
+ "phylogeny:examl" : phylo.chain_examl,
+ }
+
+
+class CustomHelpFormatter(optparse.IndentedHelpFormatter):
+ def format_description(self, description):
+ return description or ""
+
+
+def select_commands(chain):
+ commands = []
+ for command in chain.split("+"):
+ command_key = command.strip().lower()
+ command_func = None
+
+ if command in _COMMANDS:
+ command_func = _COMMANDS[command_key]
+ elif len(command) >= 3:
+ for (key, value) in _COMMANDS.iteritems():
+ if key.startswith(command):
+ command_key = key
+ command_func = value
+ break
+
+ commands.append((command_key, command_func))
+
+ return commands
+
+
+def _run_config_parser(argv):
+ per_host_cfg = PerHostConfig("phylo_pipeline")
+ usage_str = "%prog <command> [options] [makefiles]"
+ version_str = "%%prog %s" % (pypeline.__version__,)
+ parser = optparse.OptionParser(usage = usage_str, version = version_str)
+ parser.formatter = CustomHelpFormatter()
+ parser.formatter.set_parser(parser)
+ parser.description = _DESCRIPTION
+
+ pypeline.ui.add_optiongroup(parser,
+ ui_default=PerHostValue("running"),
+ color_default=PerHostValue("on"))
+ pypeline.logger.add_optiongroup(parser, default = PerHostValue("warning"))
+
+ group = optparse.OptionGroup(parser, "Scheduling")
+ group.add_option("--samtools-max-threads", default = PerHostValue(1), type = int,
+ help = "Maximum number of threads to use when genotyping or building pileups [%default]")
+ group.add_option("--examl-max-threads", default = PerHostValue(1), type = int,
+ help = "Maximum number of threads to use for each instance of ExaML [%default]")
+ group.add_option("--max-threads", default = per_host_cfg.max_threads, type = int,
+ help = "Maximum number of threads to use in total [%default]")
+ group.add_option("--dry-run", default = False, action="store_true",
+ help = "If passed, only a dry-run in performed, the dependency tree is printed, "
+ "and no tasks are executed.")
+ parser.add_option_group(group)
+
+ group = optparse.OptionGroup(parser, "Required paths")
+ group.add_option("--temp-root", default = per_host_cfg.temp_root,
+ help = "Location for temporary files and folders [%default]")
+ group.add_option("--samples-root", default = PerHostValue("./data/samples", is_path = True),
+ help = "Location of BAM files for each sample [%default]")
+ group.add_option("--regions-root", default = PerHostValue("./data/regions", is_path = True),
+ help = "Location of BED files containing regions of interest [%default]")
+ group.add_option("--prefix-root", default = PerHostValue("./data/prefixes", is_path = True),
+ help = "Location of prefixes (FASTAs) [%default]")
+ group.add_option("--refseq-root", default = PerHostValue("./data/refseqs", is_path = True),
+ help = "Location of reference sequences (FASTAs) [%default]")
+ group.add_option("--destination", default = "./results",
+ help = "The destination folder for result files [%default]")
+ parser.add_option_group(group)
+
+ group = optparse.OptionGroup(parser, "Files and executables")
+ group.add_option("--list-output-files", action = "store_true", default = False,
+ help = "List all files generated by pipeline for the makefile(s).")
+ group.add_option("--list-orphan-files", action = "store_true", default = False,
+ help = "List all files at destination not generated by the pipeline. " \
+ "Useful for cleaning up after making changes to a makefile.")
+ group.add_option("--list-executables", action="store_true", default=False,
+ help="List all executables required by the pipeline, "
+ "with version requirements (if any).")
+ parser.add_option_group(group)
+
+ parser.add_option("--to-dot-file", dest="dot_file",
+ help="Write dependency tree to the specified dot-file.")
+
+ return per_host_cfg.parse_args(parser, argv)
+
+
+
+def parse_config(argv):
+ options, args = _run_config_parser(argv)
+ pypeline.ui.set_ui_colors(options.ui_colors)
+
+ if (len(args) < 2) and (args != ["mkfile"]):
+ description = _DESCRIPTION.replace("%prog", "phylo_pipeline").strip()
+ console.print_info("Phylogeny Pipeline %s\n" % (pypeline.__version__,))
+ console.print_info(description)
+ return options, args
+
+ commands = select_commands(args[0] if args else ())
+ if any((func is None) for (_, func) in commands):
+ unknown_commands = ", ".join(repr(key) for (key, func) in commands if func is None)
+ raise ConfigError("Unknown analysis step(s): %s" % (unknown_commands,))
+
+ return options, args
diff --git a/pypeline/tools/phylo_pipeline/makefile.py b/pypeline/tools/phylo_pipeline/makefile.py
new file mode 100644
index 0000000..c3b332a
--- /dev/null
+++ b/pypeline/tools/phylo_pipeline/makefile.py
@@ -0,0 +1,697 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import types
+import pysam
+
+import pypeline.common.makefile
+from pypeline.common.makefile import \
+ MakefileError, \
+ REQUIRED_VALUE, \
+ IsDictOf, \
+ IsListOf, \
+ IsInt, \
+ IsStr, \
+ StringIn, \
+ IsFloat, \
+ IsUnsignedInt, \
+ IsBoolean, \
+ IsNone, \
+ ValueIn, \
+ ValuesSubsetOf, \
+ StringStartsWith, \
+ StringEndsWith, \
+ CLI_PARAMETERS, \
+ And, \
+ Or, \
+ Not
+
+from pypeline.common.fileutils import \
+ swap_ext, \
+ add_postfix
+from pypeline.common.utilities import \
+ fill_dict
+from pypeline.common.console import \
+ print_info, \
+ print_warn
+from pypeline.common.text import \
+ parse_padded_table
+from pypeline.common.bedtools import \
+ BEDRecord
+
+
+def read_makefiles(options, filenames, commands):
+ print_info("Reading makefile(s):")
+ steps = frozenset(key for (key, _) in commands)
+
+ makefiles = []
+ for filename in filenames:
+ makefile = pypeline.common.makefile.read_makefile(filename, _VALIDATION)
+ makefile = _mangle_makefile(options, makefile["Makefile"], steps)
+ makefiles.append(makefile)
+ return makefiles
+
+
+def _mangle_makefile(options, mkfile, steps):
+ _collapse_samples(mkfile)
+ _update_regions(options, mkfile)
+ _update_subsets(mkfile, steps)
+ _update_filtering(mkfile)
+ _update_sample_sets(mkfile)
+ _update_genotyping(mkfile)
+ _update_msa(mkfile)
+ _update_homozygous_contigs(mkfile)
+ _check_bam_sequences(options, mkfile, steps)
+ _check_genders(mkfile)
+ _update_and_check_max_read_depth(options, mkfile)
+ _check_indels_and_msa(mkfile)
+ mkfile["Nodes"] = ()
+
+ return mkfile
+
+
+def _collapse_samples(mkfile):
+ groups, samples = {}, set()
+ def _collect_samples(samples_dict, path = ()):
+ current_samples = {}
+ for (key, subdd) in samples_dict.iteritems():
+ if key.startswith("<") and key.endswith(">"):
+ key = key.lstrip("<").rstrip(">")
+ current_samples.update(_collect_samples(subdd, path + (key,)))
+ elif key not in samples:
+ samples.add(key)
+ subdd["Name"] = key
+ current_samples[key] = subdd
+ else:
+ raise MakefileError("Duplicate sample-name: %r" % (key,))
+
+ groups[path] = current_samples
+ return current_samples
+
+ _collect_samples(mkfile["Project"]["Samples"])
+ mkfile["Project"]["Samples"] = groups.pop(())
+ mkfile["Project"]["Groups"] = groups
+
+
+def _select_samples(select, groups, samples, path):
+ selection = set()
+ for group in select:
+ if group.startswith("<") and group.endswith(">"):
+ key = tuple(group[1:-1].split("/"))
+ if key not in groups:
+ raise MakefileError("Unknown group specifed for filtering %r: %r" % (path, key))
+ selection.update(groups[key])
+ elif group in samples:
+ selection.add(group)
+ else:
+ raise MakefileError("Unknown/Invalid group specifed for filtering %r: %r" % (path, group))
+ return selection
+
+
+def _update_regions(options, mkfile):
+ print_info(" - Validating regions of interest ...")
+ mkfile["Project"]["Regions"] = mkfile["Project"].pop("RegionsOfInterest")
+
+ for (name, subdd) in mkfile["Project"]["Regions"].iteritems():
+ if "Prefix" not in subdd:
+ raise MakefileError("No genome specified for regions %r" % (name,))
+
+ subdd["Name"] = name
+ subdd["Desc"] = "{Prefix}.{Name}".format(**subdd)
+ subdd["BED"] = os.path.join(options.regions_root, subdd["Desc"] + ".bed")
+ subdd["FASTA"] = os.path.join(options.prefix_root, subdd["Prefix"] + ".fasta")
+
+ required_files = (
+ ("Regions file", subdd["BED"], None),
+ ("Reference sequence", subdd["FASTA"], None),
+ ("Reference sequence index", subdd["FASTA"] + ".fai",
+ "Please index using 'samtools faidx %s'" % (subdd["FASTA"],)))
+
+ for (desc, path, instructions) in required_files:
+ if not os.path.isfile(path):
+ message = "%s does not exist for %r:\n Path = %r" \
+ % (desc, name, path)
+ if instructions:
+ message = "%s\n%s" % (message, instructions)
+ raise MakefileError(message)
+
+ # Collects seq. names / validate regions
+ subdd["Sequences"] = {None : _collect_and_validate_regions(subdd)}
+ subdd["SubsetFiles"] = {None : ()}
+
+ sampledd = subdd["Genotypes"] = {}
+ for sample_name in mkfile["Project"]["Samples"]:
+ fasta_file = ".".join((sample_name, subdd["Desc"], "fasta"))
+ sampledd[sample_name] = os.path.join(options.destination,
+ mkfile["Project"]["Title"],
+ "genotypes",
+ fasta_file)
+
+
+_CONTIGS_CACHE = {}
+def _collect_fasta_contigs(regions):
+ filename = regions["FASTA"] + ".fai"
+ if filename in _CONTIGS_CACHE:
+ return _CONTIGS_CACHE[filename]
+
+ contigs = {}
+ with open(filename) as faihandle:
+ for line in faihandle:
+ name, length, _ = line.split(None, 2)
+ if name in contigs:
+ message = ("Reference contains multiple identically named "
+ "sequences:\n Path = %r\n Name = %r\n"
+ "Please ensure that sequences have unique names") \
+ % (regions["FASTA"], name)
+ raise MakefileError(message)
+
+ contigs[name] = int(length)
+
+ _CONTIGS_CACHE[filename] = contigs
+ return contigs
+
+
+def _collect_and_validate_regions(regions):
+ contigs = _collect_fasta_contigs(regions)
+ sequences = set()
+ with open(regions["BED"]) as bedhandle:
+ for (line_num, line) in enumerate(bedhandle):
+ line = line.strip()
+ if not line or line.startswith("#"):
+ continue
+
+ try:
+ bed = BEDRecord(line)
+ except ValueError, error:
+ raise MakefileError(("Error parsing line %i in regions file:\n"
+ " Path = %r\n Line = %r\n\n%s")
+ % (line_num + 1, regions["BED"],
+ line, error))
+
+ if len(bed) < 6:
+ url = "http://genome.ucsc.edu/FAQ/FAQformat.html#format1"
+ name = repr(bed.name) if len(bed) > 3 else "unnamed record"
+ raise MakefileError(("Region at line #%i (%s) does not "
+ "contain the expected number of fields; "
+ "the first 6 fields are required. C.f. "
+ "defination at\n %s\n\nPath = %r")
+ % (line_num, name, url, regions["BED"]))
+
+ contig_len = contigs.get(bed.contig)
+ if contig_len is None:
+ raise MakefileError(("Regions file contains contig not found "
+ "in reference:\n Path = %r\n Contig = "
+ "%r\n\nPlease ensure that all contig "
+ "names match the reference names!")
+ % (regions["BED"], bed.contig))
+ elif not (0 <= bed.start < bed.end <= contig_len):
+ raise MakefileError(("Regions file contains invalid region:\n"
+ " Path = %r\n Contig = %r\n"
+ " Start = %s\n End = %s\n\n"
+ "Expected 0 <= Start < End <= %i!")
+ % (regions["BED"], bed.contig, bed.start,
+ bed.end, contig_len))
+
+ sequences.add(bed.name)
+
+ return frozenset(sequences)
+
+
+def _update_subsets(mkfile, steps):
+ subsets_by_regions = mkfile["Project"]["Regions"]
+ def _collect_subsets(roi, subset, path):
+ if roi not in subsets_by_regions:
+ raise MakefileError("Subset of unknown region (%r) requested at %r" % (roi, path))
+
+ roi_fname = swap_ext(subsets_by_regions[roi]["BED"], subset + ".names")
+ if not os.path.isfile(roi_fname):
+ raise MakefileError(("Subset file does not exist for Regions Of Interest:\n"
+ " Region = %r\n Subset = %r\n Path = %r")
+ % (roi, subset, roi_fname))
+
+ sequences = set()
+ with open(roi_fname) as handle:
+ for line in handle:
+ line = line.strip()
+ if line and not line.startswith("#"):
+ sequences.add(line)
+
+ known_seqs = subsets_by_regions[roi]["Sequences"][None]
+ unknown_seqs = sequences - known_seqs
+ if unknown_seqs:
+ message = ("Unknown sequences in subset file:\n"
+ " File = %r\n Region = %r\n Subset = %r\n"
+ " Unknown sequence names =") \
+ % (roi_fname, roi, subset)
+ unknown_seqs = list(sorted(unknown_seqs))
+ if len(unknown_seqs) > 5:
+ unknown_seqs = unknown_seqs[:5] + ["..."]
+ message = "\n - ".join([message] + unknown_seqs)
+ raise MakefileError(message)
+
+ subsets_by_regions[roi]["SubsetFiles"][subset] = (roi_fname,)
+ subsets_by_regions[roi]["Sequences"][subset] = frozenset(sequences)
+
+ if "phylogeny:examl" in steps:
+ for (key, subdd) in mkfile["PhylogeneticInference"].iteritems():
+ for (subkey, roidd) in subdd["RegionsOfInterest"].iteritems():
+ if subkey not in subsets_by_regions:
+ message = \
+ "Unknown regions name in phylogenetic inference:\n" \
+ "\tPath = PhylogeneticInference:%s:RegionsOfInterest" \
+ "\n\tName = %s"
+ raise MakefileError(message % (key, subkey))
+
+ roidd["Name"] = subkey
+
+ if roidd.get("SubsetRegions") is not None:
+ path = "PhylogeneticInference:%s:RegionsOfInterest:%s" % (key, subkey)
+ _collect_subsets(subkey, roidd["SubsetRegions"], path)
+
+ if "paml:codeml" in steps:
+ for (roi, subset) in mkfile["PAML"]["codeml"]["SubsetRegions"].iteritems():
+ _collect_subsets(roi, subset, "PAML:codeml:SubsetRegions")
+
+
+def _update_filtering(mkfile):
+ samples = mkfile["Project"]["Samples"]
+ groups = mkfile["Project"]["Groups"]
+
+ filtering = {}
+ for (target, filter_by) in mkfile["Project"]["FilterSingletons"].iteritems():
+ if target.startswith("<") and target.endswith(">"):
+ raise MakefileError("Singleton-filtering must be specified per "
+ "sample, not by groups: %r" % (target,))
+ elif target not in samples:
+ raise MakefileError("Unknown/Invalid sample specifed for singleton filtering: %r" % (target,))
+ elif target in filter_by:
+ raise MakefileError("Attempting to filter singleton in sample using itself as comparison: %r" % (target,))
+
+ path = "Project:FilterSingletons:%s" % (target,)
+ filtering[target] = _select_samples(filter_by, groups, samples, path)
+
+ # Implicit inclusion is allowed, since that is useful in some cases,
+ # where we want to filter a sample based on the group it is a member of
+ if target in filtering[target]:
+ # The target itself must be excluded, as including it is invalid
+ filtering[target] = filtering[target] - set((target,))
+ print_warn("Warning: Sample %r is singleton-filtered using a "
+ "group it is also a member of; this may be by mistake."
+ % (target,))
+
+ if not filtering[target]:
+ raise MakefileError("No samples specified by which to "
+ "singleton-filter by for %r" % (target,))
+
+ mkfile["Project"]["FilterSingletons"] = filtering
+
+
+def _update_homozygous_contigs(mkfile):
+ """Treat unspecified values for HomozygousContigs as an empty list, in
+ order that the user does not need to specify "[]" for empty lists.
+ """
+ for regions in mkfile["Project"]["Regions"].itervalues():
+ hcontigs = regions["HomozygousContigs"]
+ for key, contigs in hcontigs.items():
+ if contigs is None:
+ hcontigs[key] = []
+
+
+def _check_bam_sequences(options, mkfile, steps):
+ """Check that the BAM files contains the reference sequences found in the
+ FASTA file, matched by name and length; extra sequences are permitted. This
+ check is only done if genotyping is to be carried out, to reduce the
+ overhead of reading the BAM file headers.
+
+ """
+ if ("genotype" not in steps) and ("genotyping" not in steps):
+ return
+
+ print_info(" - Validating BAM files ...")
+ bam_files = {}
+ for regions in mkfile["Project"]["Regions"].itervalues():
+ for sample in mkfile["Project"]["Samples"].itervalues():
+ filename = os.path.join(options.samples_root, "%s.%s.bam"
+ % (sample["Name"], regions["Prefix"]))
+ if regions["Realigned"]:
+ filename = add_postfix(filename, ".realigned")
+
+ if os.path.exists(filename):
+ bam_files[filename] = _collect_fasta_contigs(regions)
+
+ for (filename, contigs) in bam_files.iteritems():
+ with pysam.Samfile(filename) as handle:
+ bam_contigs = dict(zip(handle.references, handle.lengths))
+
+ for (contig, length) in contigs.iteritems():
+ bam_length = bam_contigs.get(contig)
+
+ if bam_length is None:
+ message = ("Reference sequence missing from BAM file; "
+ "BAM file aligned against different prefix?\n"
+ " BAM file = %s\n Sequence name = %s") \
+ % (filename, contig)
+ raise MakefileError(message)
+ elif bam_length != length:
+ message = ("Length of reference sequence in FASTA differs "
+ "from length of sequence in BAM file; BAM file "
+ "aligned against different prefix?\n"
+ " BAM file = %s\n"
+ " Length in FASTA = %s\n"
+ " Length in BAM = %s") \
+ % (filename, length, bam_length)
+ raise MakefileError(message)
+
+
+def _check_genders(mkfile):
+ all_contigs = set()
+ contigs_genders = set()
+ regions_genders = set()
+ for regions in mkfile["Project"]["Regions"].itervalues():
+ all_contigs.update(_collect_fasta_contigs(regions))
+
+ for contigs in regions["HomozygousContigs"].itervalues():
+ contigs_genders.update(contigs)
+
+ current_genders = set(regions["HomozygousContigs"])
+ if not regions_genders:
+ regions_genders = current_genders
+ elif regions_genders != current_genders:
+ raise MakefileError("List of genders for regions %r does not "
+ "match other regions" % (regions["Name"],))
+
+ if not regions_genders:
+ raise MakefileError("No genders have been specified in makefile; "
+ "please list all sample genders and assosiated "
+ "homozygous contigs (if any).")
+
+ for sample in mkfile["Project"]["Samples"].itervalues():
+ if sample["Gender"] not in regions_genders:
+ genders = ", ".join(map(repr, regions_genders))
+ message = "Sample %r has unknown gender %r; known genders are %s" \
+ % (sample["Name"], sample["Gender"], genders)
+ raise MakefileError(message)
+
+ unknown_contigs = contigs_genders - all_contigs
+ if unknown_contigs:
+ print_warn("WARNING: Unknown contig(s) in 'HomozygousContigs':\n - "
+ + "\n - ".join(unknown_contigs))
+ print_warn("Please verify that the list(s) of contigs is correct!")
+
+
+def _update_and_check_max_read_depth(options, mkfile):
+ if any(subdd["VCF_Filter"]["MaxReadDepth"] == "auto"
+ for subdd in mkfile["Genotyping"].itervalues()):
+ print_info(" - Determinining max-depth from depth-histograms ...")
+
+ for (key, settings) in mkfile["Genotyping"].iteritems():
+ required_keys = set()
+ for sample in mkfile["Project"]["Samples"].itervalues():
+ if sample["GenotypingMethod"].lower() == "samtools":
+ required_keys.add(sample["Name"])
+
+ max_depths = settings["VCF_Filter"]["MaxReadDepth"]
+ if isinstance(max_depths, types.DictType):
+ # Extra keys are allowed, to make it easier
+ # to temporarily disable a sample
+ missing_keys = required_keys - set(max_depths)
+ if missing_keys:
+ missing_keys = "\n - ".join(sorted(missing_keys))
+ message = "MaxReadDepth not specified for the following " \
+ "samples for %r:\n - %s" % (key, missing_keys)
+ raise MakefileError(message)
+
+ elif isinstance(max_depths, types.StringTypes):
+ assert max_depths.lower() == "auto", max_depths
+ prefix = mkfile["Project"]["Regions"][key]["Prefix"]
+ max_depths = {}
+
+ for sample in required_keys:
+ fname = "%s.%s.depths" % (sample, prefix)
+ fpath = os.path.join(options.samples_root, fname)
+ max_depths[sample] = _read_max_depths(fpath, prefix, sample)
+
+ settings["VCF_Filter"]["MaxReadDepth"] = max_depths
+ else:
+ max_depths = dict.fromkeys(required_keys, max_depths)
+ settings["VCF_Filter"]["MaxReadDepth"] = max_depths
+
+
+def _read_max_depths(filename, prefix, sample):
+ if filename in _DEPTHS_CACHE:
+ return _DEPTHS_CACHE[filename]
+
+ max_depth = None
+ try:
+ with open(filename) as handle:
+ for row in parse_padded_table(handle):
+ if row["Name"] == sample and \
+ row["Sample"] == "*" and \
+ row["Library"] == "*" and \
+ row["Contig"] == "*":
+ max_depth = row["MaxDepth"]
+ break
+ else:
+ raise MakefileError("Could not find MaxDepth in "
+ "depth-histogram: %r" % (filename,))
+
+ except (OSError, IOError), error:
+ raise MakefileError("Error reading depth-histogram (%s): %s"
+ % (filename, error))
+
+ if max_depth == "NA":
+ raise MakefileError("MaxDepth is not calculated for sample (%s);\n"
+ "cannot determine MaxDepth values automatically."
+ % (filename,))
+ max_depth = int(max_depth)
+
+ print_info(" - %s.%s = %i" % (sample, prefix, max_depth))
+ _DEPTHS_CACHE[filename] = max_depth
+ return max_depth
+
+
+_DEPTHS_CACHE = {}
+
+
+def _check_indels_and_msa(mkfile):
+ msa = mkfile["MultipleSequenceAlignment"]
+ regions = mkfile["Project"]["Regions"]
+ for (name, subdd) in regions.iteritems():
+ msa_enabled = msa[name]["Enabled"]
+
+ if subdd["IncludeIndels"] and not msa_enabled:
+ raise MakefileError("Regions %r includes indels, but MSA is disabled!" % (name,))
+
+
+def _update_sample_sets(mkfile):
+ samples = mkfile["Project"]["Samples"]
+ groups = mkfile["Project"]["Groups"]
+
+ for (key, subdd) in mkfile["PhylogeneticInference"].iteritems():
+ subdd["ExcludeSamples"] = \
+ _select_samples(subdd["ExcludeSamples"], groups, samples, "PhylogeneticInference:%s:ExcludeSamples" % (key,))
+
+ # Replace None with an empty list, to simplify code using this value
+ root_trees_on = subdd["RootTreesOn"] or ()
+ subdd["RootTreesOn"] = \
+ _select_samples(root_trees_on, groups, samples, "PhylogeneticInference:%s:RootTreesOn" % (key,))
+
+ mkfile["PAML"]["codeml"]["ExcludeSamples"] = \
+ _select_samples(mkfile["PAML"]["codeml"]["ExcludeSamples"], groups, samples, "PAML:codeml:ExcludeSamples")
+
+
+def _update_genotyping(mkfile):
+ genotyping = mkfile["Genotyping"]
+ defaults = genotyping.pop("Defaults")
+ defaults.setdefault("Padding", 5)
+ defaults["VCF_Filter"].setdefault("MaxReadDepth", 0)
+
+ for (key, subdd) in genotyping.iteritems():
+ if subdd.get("GenotypeEntirePrefix"):
+ message = "GenotypeEntirePrefix is only allowed for prefixes " \
+ "using default parameters, but is set for %r" % (key,)
+ raise MakefileError(message)
+
+ for key in mkfile["Project"]["Regions"]:
+ subdd = fill_dict(genotyping.get(key, {}), defaults)
+ subdd["Random"]["--padding"] = subdd["Padding"]
+ genotyping[key] = subdd
+
+ regions = set(genotyping)
+ unknown_regions = regions - set(mkfile["Project"]["Regions"])
+ if unknown_regions:
+ raise MakefileError("Unknown Regions of Interest in Genotyping: %s" \
+ % (", ".join(unknown_regions),))
+
+
+def _update_msa(mkfile):
+ msa = mkfile["MultipleSequenceAlignment"]
+ defaults = msa.pop("Defaults")
+ defaults.setdefault("Program", "MAFFT")
+ defaults["MAFFT"].setdefault("Algorithm", "MAFFT")
+
+ for key in mkfile["Project"]["Regions"]:
+ msa[key] = fill_dict(msa.get(key, {}), defaults)
+
+ unknown_regions = set(msa) - set(mkfile["Project"]["Regions"])
+ if unknown_regions:
+ raise MakefileError("Unknown Regions of Interest in Genotyping: %s" \
+ % (", ".join(unknown_regions),))
+
+
+# Recursive definition of sample tree
+_VALIDATION_SUBSAMPLE_KEY = And(StringStartsWith("<"),
+ StringEndsWith(">"))
+_VALIDATION_SAMPLES_KEY = And(IsStr, Not(_VALIDATION_SUBSAMPLE_KEY))
+_VALIDATION_SAMPLES = {
+ _VALIDATION_SAMPLES_KEY: {
+ "GenotypingMethod": StringIn(("reference sequence",
+ "random sampling",
+ "samtools"),
+ default="samtools"),
+ "SpeciesName": IsStr, # Not used; left for backwards compatibility
+ "CommonName": IsStr, # Not used; left for backwards compatibility
+ "Gender": IsStr(default=REQUIRED_VALUE),
+ }
+}
+_VALIDATION_SAMPLES[_VALIDATION_SUBSAMPLE_KEY] = _VALIDATION_SAMPLES
+
+# Genotyping settings; note that explicit lists must not be used here, to allow
+# proper inheritance of default values. Use IsListOf instead.
+_VALIDATION_GENOTYPES = {
+ "Padding": IsUnsignedInt,
+ "GenotypeEntirePrefix": IsBoolean(default=False),
+ "MPileup": {
+ StringStartsWith("-"): Or(IsInt, IsStr, IsNone),
+ },
+ "BCFTools": {
+ StringStartsWith("-"): Or(IsInt, IsStr, IsNone),
+ },
+ "Random": {
+ "--min-distance-to-indels": IsUnsignedInt,
+ },
+ "VCF_Filter": {
+ "MaxReadDepth": Or(IsUnsignedInt, IsDictOf(IsStr, IsUnsignedInt),
+ StringIn(("auto",))),
+
+ "--keep-ambigious-genotypes": IsNone,
+ "--min-quality": IsUnsignedInt,
+ "--min-allele-frequency": IsFloat,
+ "--min-mapping-quality": IsUnsignedInt,
+ "--min-read-depth": IsUnsignedInt,
+ "--max-read-depth": IsUnsignedInt,
+ "--min-num-alt-bases": IsUnsignedInt,
+ "--min-distance-to-indels": IsUnsignedInt,
+ "--min-distance-between-indels": IsUnsignedInt,
+ "--min-strand-bias": IsFloat,
+ "--min-baseq-bias": IsFloat,
+ "--min-mapq-bias": IsFloat,
+ "--min-end-distance-bias": IsFloat,
+ },
+}
+
+_VALIDATION_MSA = {
+ "Enabled": IsBoolean(default=True),
+ "Program": StringIn(("mafft",)), # TODO: Add support for other programs
+
+ "MAFFT": {
+ "Algorithm": StringIn(("mafft", "auto",
+ "FFT-NS-1", "FFT-NS-2", "FFT-NS-i",
+ "NW-INS-i", "L-INS-i", "E-INS-i", "G-INS-i")),
+ StringStartsWith("-"): CLI_PARAMETERS,
+ },
+}
+
+
+_VALIDATION = {
+ "Project": {
+ "Title": IsStr(default="Untitled"),
+ "Samples": _VALIDATION_SAMPLES,
+ "RegionsOfInterest": {
+ IsStr: {
+ "Prefix": IsStr(default=REQUIRED_VALUE),
+ "Realigned": IsBoolean(default=False),
+ "ProteinCoding": IsBoolean(default=False),
+ "IncludeIndels": IsBoolean(default=True),
+ "HomozygousContigs": {
+ IsStr: Or(IsNone, IsListOf(IsStr))
+ },
+ },
+ },
+ "FilterSingletons": {
+ IsStr: [IsStr],
+ },
+ },
+ "Genotyping": {
+ "Defaults": _VALIDATION_GENOTYPES,
+ IsStr: _VALIDATION_GENOTYPES,
+ },
+ "MultipleSequenceAlignment": {
+ "Defaults": _VALIDATION_MSA,
+ IsStr: _VALIDATION_MSA,
+ },
+ "PhylogeneticInference": {
+ IsStr: {
+ # Which program to use; TODO: Add support for other programs
+ "Program": StringIn(("examl",), default="examl"),
+ # Exclude one or more samples from the phylogeny
+ "ExcludeSamples": [IsStr],
+ # Which samples to root the final trees on / or midpoint rooting
+ "RootTreesOn": [IsStr],
+ # Create a tree per gene, for each region of interest,
+ # or create a supermatrix tree from all regions specified.
+ "PerGeneTrees": IsBoolean(default=False),
+ # Selection of regions of interest / settings per region
+ "RegionsOfInterest": {
+ IsStr: {
+ "Partitions": Or(And(IsStr,
+ ValuesSubsetOf("123456789X")),
+ ValueIn([False]),
+ default=REQUIRED_VALUE),
+ "SubsetRegions": Or(IsStr, IsNone, default=None),
+ },
+ },
+ "SubsetRegions": {
+ IsStr: IsStr,
+ },
+ "ExaML": {
+ "Bootstraps": IsUnsignedInt(default=100),
+ "Replicates": IsUnsignedInt(default=1),
+ "Model": StringIn(("GAMMA", "PSR"),
+ default="gamma"),
+ }
+ }
+ },
+ "PAML": {
+ "codeml": {
+ "ExcludeSamples": [IsStr],
+ "SubsetRegions": {
+ IsStr: IsStr,
+ },
+ IsStr: {
+ "ControlFile": IsStr(default=REQUIRED_VALUE),
+ "TreeFile": IsStr(default=REQUIRED_VALUE),
+ },
+ },
+ },
+}
diff --git a/pypeline/tools/phylo_pipeline/mkfile.py b/pypeline/tools/phylo_pipeline/mkfile.py
new file mode 100755
index 0000000..965b5d5
--- /dev/null
+++ b/pypeline/tools/phylo_pipeline/mkfile.py
@@ -0,0 +1,234 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import sys
+
+
+_TEMPLATE = """# -*- mode: Yaml; -*-
+Project:
+ Title: PROJECT_NAME
+
+ # List of samples to be included in the analytical steps, which may be
+ # grouped using any arbitrary number of (levels of) groups. (Sub)groups
+ # are not required, but may be used instead of listing individual samples
+ # in 'ExcludeSamples' and 'FilterSingletons'.
+ Samples:
+ <GROUP>:
+ <SUBGROUP>:
+ SAMPLE_NAME:
+ # Gender of the sample; used to filter SNPs on homozygous
+ # contigs (see below). Any name may be used for the genders. By
+ # default the makefile specifies the genders 'Male' and 'Female'.
+ Gender: ...
+ # Method to use when genotyping samples (see 'Genotyping');
+ # defaults to 'SAMTools' if not explicitly specified.
+# Genotyping Method: ...
+
+ # Specifies a set of regions of interest, each representing one or more
+ # named regions in a reference sequence (e.g. genes) in BED format.
+ RegionsOfInterest:
+ NAME:
+ # Name of the prefix; is expected to correspond to the filename
+ # of the FASTA file without the extension / the name of the
+ # prefix used in the BAM pipeline.
+ Prefix: PREFIX_NAME
+ # If true, BAM files are expected to have the postfix ".realigned";
+ # allows easier interopterability with the BAM pipeline.
+ Realigned: yes
+ # Specifies whether or not the sequences are protein coding; if true
+ # indels are only included in the final sequence if the length is
+ # divisible by 3.
+ ProteinCoding: no
+ # Do not include indels in final sequence; note that indels are still
+ # called, and used to filter SNPs. Requires that
+ # 'MultipleSequenceAlignment' is enabled
+ IncludeIndels: yes
+ # List of contigs for which heterozygous SNPs should be filtered
+ # (site set to 'N') based on gender; All genders used in the 'Samples'
+ # section must be listed:
+ HomozygousContigs:
+ Female:
+ - chrM
+ Male:
+ - chrX
+ - chrY
+ - chrM
+
+ # Filter sites in a sample, replacing any nucleotide not observed
+ # in the specified list of samples or groups with 'N'.
+# FilterSingletons:
+# NAME_OF_SAMPLE:
+# - <NAME_OF_GROUP>
+# - NAME_OF_SAMPLE
+
+
+Genotyping:
+ # Default settings for all regions of interest
+ Defaults:
+ # Regions of interest are expanded by this number of bases when calling
+ # SNPs, in order to ensure that adjacent indels can be used during filtering
+ # (VCF_filter --min-distance-to-indels and --min-distance-between-indels).
+ # The final sequences does not include the padding.
+ Padding: 10
+
+ # By default, each set of regions of interest are genotyped seperately,
+ # even if these overlap. By setting this option to true, the entire prefix
+ # is genotyped once, and all regions of interest are extracted from this.
+ # This can only be done for prefixes that only use genotyping defaults.
+ GenotypeEntirePrefix: no
+
+ # Settings for genotyping by random sampling of nucletoides at each site
+ Random:
+ # Min distance of variants to indels
+ --min-distance-to-indels: 2
+
+ MPileup:
+ -E: # extended BAQ for higher sensitivity but lower specificity
+ -A: # count anomalous read pairs
+
+ BCFTools:
+ -g: # Call genotypes at variant sites
+
+ VCF_Filter:
+ # Maximum coverage acceptable for genotyping calls; if set to zero, the
+ # default vcf_filter value is used; if set to 'auto', the MaxDepth value
+ # will be read from the depth histograms generated by the BAM pipleine.
+ MaxReadDepth: 0
+
+ # Minimum coverage acceptable for genotyping calls
+ --min-read-depth: 8
+ # Min RMS mapping quality
+ --min-mapping-quality: 10
+ # Min QUAL score (Phred) for genotyping calls
+ --min-quality: 30
+ # Min distance of variants to indels
+ --min-distance-to-indels: 2
+ # Min distance between indels
+ --min-distance-between-indels: 10
+ # Min P-value for strand bias (given PV4)
+ --min-strand-bias: 1.0e-4
+ # Min P-value for baseQ bias (given PV4)
+ --min-baseq-bias: 1.0e-4
+ # Min P-value for mapQ bias (given PV4)
+ --min-mapq-bias: 1.0e-4
+ # Min P-value for end distance bias (given PV4)
+ --min-end-distance-bias: 1.0e-4
+ # Max frequency of the major allele at heterozygous sites
+ --min-allele-frequency: 0.2
+ # Minimum number of alternative bases observed for variants
+ --min-num-alt-bases: 2
+
+# Add / overwrite default settings for a set of regions
+# NAME_OF_REGIONS:
+# ...
+
+
+MultipleSequenceAlignment:
+ # Default settings for all regions of interest
+ Defaults:
+ Enabled: yes
+
+ # Multiple sequence alignment using MAFFT
+ MAFFT:
+ # Select alignment algorithm; valid values are 'mafft', 'auto', 'fft-ns-1',
+ # 'fft-ns-2', 'fft-ns-i', 'nw-ns-i', 'l-ins-i', 'e-ins-i', and 'g-ins-i'.
+ Algorithm: G-INS-i
+
+ # Parameters for mafft algorithm; see above for example of how to specify
+ --maxiterate: 1000
+
+# Add / overwrite default settings for a set of regions
+# NAME_OF_REGIONS:
+# ...
+
+
+PhylogeneticInference:
+ PHYLOGENY_NAME:
+ # Exclude (groups of) samples from this analytical step
+# ExcludeSamples:
+# - <NAME_OF_GROUP>
+# - NAME_OF_SAMPLE
+
+ # Root the final tree(s) on one or more samples; if no samples
+ # are specified, the tree(s) will be rooted on the midpoint(s)
+# RootTreesOn:
+# - <NAME_OF_GROUP>
+# - NAME_OF_SAMPLE
+
+ # If 'yes', a tree is generated per named sequence in the areas of
+ # interest; otherwise a super-matrix is created from the combined set
+ # of regions specfied below.
+ PerGeneTrees: no
+
+ # Which Regions Of Interest to build the phylogeny from.
+ RegionsOfInterest:
+ REGIONS_NAME:
+ # Partitioning scheme for sequences: Numbers specify which group a
+ # position belongs to, while 'X' excludes the position from the final
+ # partioned sequence; thus "123" splits sequences by codon-positions,
+ # while "111" produces a single partition per gene. If set to 'no',
+ # a single partition is used for the entire set of regions.
+ Partitions: "111"
+ # Limit analysis to a subset of a RegionOfInterest; subsets are expected to be
+ # located at <genome root>/<prefix>.<region name>.<subset name>.names, and
+ # contain single name (corresponding to column 4 in the BED file) per line.
+# SubsetRegions: SUBSET_NAME
+
+ ExaML:
+ # Number of times to perform full phylogenetic inference
+ Replicates: 1
+ # Number of bootstraps to compute
+ Bootstraps: 100
+ # Model of rate heterogeneity (GAMMA or PSR)
+ Model: GAMMA
+"""
+
+_NOT_ENABLED = """
+PAML:
+ # Run codeml on each named sequence in the regions of interest
+ codeml:
+# Exclude (groups of) samples from this analytical step
+# ExcludeSamples:
+# - <NAME_OF_GROUP>
+# - NAME_OF_SAMPLE
+
+ # Limit analysis to a subset of a RegionOfInterest; subsets are expected to be
+ # located at <genome root>/<prefix>.<region name>.<subset name>.names, and
+ # contain single name (corresponding to column 4 in the BED file) per line.
+# SubsetRegions:
+# REGIONS_NAME: SUBSET_NAME
+
+ # One or more 'codeml' runs; name is used as a postfix for results.
+ RUN_NAME:
+ # Control file template; the values 'seqfile', 'treefile'
+ # automatically set to the approriate values.
+ ControlFile: PATH_TO_CODEML_CONTROL_FILE
+ # 'treefile' in the control-file is set to this value
+ TreeFile: PATH_TO_CODEML_TREEFILE
+"""
+
+
+def main(_argv):
+ print _TEMPLATE
+
+if __name__ == "__main__":
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/phylo_pipeline/parts/__init__.py b/pypeline/tools/phylo_pipeline/parts/__init__.py
new file mode 100644
index 0000000..90e5529
--- /dev/null
+++ b/pypeline/tools/phylo_pipeline/parts/__init__.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
diff --git a/pypeline/tools/phylo_pipeline/parts/genotype.py b/pypeline/tools/phylo_pipeline/parts/genotype.py
new file mode 100644
index 0000000..8ff978b
--- /dev/null
+++ b/pypeline/tools/phylo_pipeline/parts/genotype.py
@@ -0,0 +1,392 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+
+from copy import deepcopy
+
+from pypeline.node import \
+ MetaNode
+from pypeline.atomiccmd.builder import \
+ apply_options
+from pypeline.nodes.samtools import \
+ TabixIndexNode, \
+ FastaIndexNode, \
+ BAMIndexNode
+from pypeline.nodes.bedtools import \
+ SlopBedNode
+from pypeline.nodes.sequences import \
+ ExtractReferenceNode
+from pypeline.common.fileutils import \
+ swap_ext, \
+ add_postfix
+from pypeline.nodes.paleomix import \
+ VCFPileupNode, \
+ VCFFilterNode, \
+ BuildRegionsNode, \
+ SampleRegionsNode, \
+ GenotypeRegionsNode
+
+
+def apply_samtools_options(builder, options, argument):
+ for (key, value) in dict(options).iteritems():
+ sam_argument = key
+ if value is not None:
+ sam_argument = "%s=%s" % (key, value)
+
+ builder.add_option(argument, sam_argument, sep="=")
+
+
+###############################################################################
+###############################################################################
+
+# Caches for nodes shared between multiple tasks
+_BAI_CACHE = {}
+_FAI_CACHE = {}
+_BED_CACHE = {}
+_VCF_CACHE = {}
+
+
+def build_bam_index_node(bamfile):
+ """Returns a node generating a BAI index (using SAMTools) for a BAM file;
+ the result is cached, to ensure that multiple calls for the same BAM does
+ not result in files being clobbered.
+
+ """
+ if bamfile not in _BAI_CACHE:
+ _BAI_CACHE[bamfile] = \
+ BAMIndexNode(infile=bamfile)
+ return _BAI_CACHE[bamfile]
+
+
+def build_fasta_index_node(reference):
+ if reference not in _FAI_CACHE:
+ _FAI_CACHE[reference] = \
+ FastaIndexNode(infile=reference)
+ return _FAI_CACHE[reference]
+
+
+def build_regions_nodes(regions, padding, dependencies=()):
+ destination = add_postfix(regions["BED"], ".padded_%ibp" % (padding,))
+
+ if not padding:
+ return regions["BED"], dependencies
+
+ if destination not in _BED_CACHE:
+ dependencies = list(dependencies)
+ dependencies.append(build_fasta_index_node(regions["FASTA"]))
+ _BED_CACHE[destination] \
+ = SlopBedNode(genome=regions["FASTA"] + ".fai",
+ infile=regions["BED"],
+ outfile=destination,
+ from_start=padding,
+ from_end=padding,
+ dependencies=dependencies)
+
+ return destination, (_BED_CACHE[destination],)
+
+
+def _apply_vcf_filter_options(vcffilter, genotyping, sample):
+ filter_cfg = genotyping["VCF_Filter"]
+ apply_options(vcffilter.commands["filter"], filter_cfg)
+ if filter_cfg["MaxReadDepth"][sample]:
+ max_depth = filter_cfg["MaxReadDepth"][sample]
+ vcffilter.commands["filter"].set_option("--max-read-depth", max_depth)
+ return vcffilter.build_node()
+
+
+def build_genotyping_bedfile_nodes(options, genotyping, sample, regions,
+ dependencies):
+ bamfile = "%s.%s.bam" % (sample, regions["Prefix"])
+ bamfile = os.path.join(options.samples_root, bamfile)
+ if regions["Realigned"]:
+ bamfile = add_postfix(bamfile, ".realigned")
+
+ prefix = regions["Genotypes"][sample]
+ padding, bedfile, node = genotyping["Padding"], None, dependencies
+ if not genotyping["GenotypeEntirePrefix"]:
+ bedfile, nodes = \
+ build_regions_nodes(regions, padding, dependencies)
+ bai_node = build_bam_index_node(bamfile)
+ dependencies = nodes + (bai_node,)
+ else:
+ prefix = os.path.join(os.path.dirname(prefix),
+ "%s.%s.TEMP" % (sample, regions["Prefix"]))
+
+ dependencies += (build_bam_index_node(bamfile),)
+
+ return prefix, bamfile, bedfile, dependencies
+
+
+def build_genotyping_nodes_cached(options, genotyping, sample, regions,
+ dependencies):
+ """Carries out genotyping, filtering of calls, and indexing of files for a
+ given sample and prefix. If the option 'GenotypeEntirePrefix' is enabled,
+ the BAM is genotyped once, and each set of RegionsOfInterest simply extract
+ the relevant regions during construction of the consensus sequence.
+
+ Parameters:
+ options: An options object (c.f. pypeline.tools.phylo_pipeline.config).
+ genotyping: Genotyping options defined for a specific set of areas of
+ interest, corresponding to Genotyping:NAME in the makefile.
+ sample: The name of the sample to be genotyped.
+ egions: A dictionary for a 'RegionsOfInterest' from the makefile.
+ dependencies: Depenencies that must be met before genotyping starts.
+
+ Returns a tuple containing the filename of the filtered and tabix-indexed
+ VCF file, and the top-level node generating this file. Multiple calls for
+ the same BAM and prefix will return the same VCF and nodes if the option
+ for 'GenotypeEntirePrefix' is enabled, otherwise each ROI is genotyped
+ individiually.
+
+ Output files are generated in ./results/PROJECT/genotyping. If the option
+ for 'GenotypeEntirePrefix' is enabled, the following files are generated:
+ SAMPLE.PREFIX.vcf.bgz: Unfiltered calls for variant/non-variant sites.
+ SAMPLE.PREFIX.vcf.pileup.bgz: Pileup of sites containing SNPs.
+ SAMPLE.PREFIX.vcf.pileup.bgz.tbi: Tabix index of the pileup.
+ SAMPLE.PREFIX.filtered.vcf.bgz: Variant calls filtered with vcf_filter.
+ SAMPLE.PREFIX.filtered.vcf.bgz.tbi: Tabix index for the filtered VCF.
+
+ If 'GenotypeEntirePrefix' is not enabled for a given ROI, the following
+ files are generated for that ROI (see descriptions above):
+ SAMPLE.PREFIX.ROI.filtered.vcf.bgz
+ SAMPLE.PREFIX.ROI.filtered.vcf.bgz.tbi
+ SAMPLE.PREFIX.ROI.vcf.bgz
+ SAMPLE.PREFIX.ROI.vcf.pileup.bgz
+ SAMPLE.PREFIX.ROI.vcf.pileup.bgz.tbi
+
+ In addition, the following files are generated for each set of
+ RegionsOfInterest (ROI), regardless of the 'GenotypeEntirePrefix' option:
+ SAMPLE.PREFIX.ROI.CDS.fasta: FASTA sequence of each feature in the ROI.
+ SAMPLE.PREFIX.ROI.CDS.fasta.fai: FASTA index generated using SAMTools.
+
+ """
+ output_prefix, bamfile, bedfile, dependencies \
+ = build_genotyping_bedfile_nodes(options, genotyping, sample, regions,
+ dependencies)
+
+ if (bamfile, output_prefix) in _VCF_CACHE:
+ return _VCF_CACHE[(bamfile, output_prefix)]
+
+ calls = swap_ext(output_prefix, ".vcf.bgz")
+ pileups = swap_ext(output_prefix, ".vcf.pileup.bgz")
+ filtered = swap_ext(output_prefix, ".filtered.vcf.bgz")
+
+ # 1. Call samtools mpilup | bcftools view on the bam
+ genotype = GenotypeRegionsNode.customize(reference=regions["FASTA"],
+ bedfile=bedfile,
+ infile=bamfile,
+ outfile=calls,
+ nbatches=options.samtools_max_threads,
+ dependencies=dependencies)
+
+ apply_samtools_options(genotype.command, genotyping["MPileup"],
+ "--mpileup-argument")
+ apply_samtools_options(genotype.command, genotyping["BCFTools"],
+ "--bcftools-argument")
+ genotype = genotype.build_node()
+
+ # 2. Collect pileups of sites with SNPs, to allow proper filtering by
+ # frequency of the minor allele, as only the major non-ref allele is
+ # counted in the VCF (c.f. field DP4).
+ vcfpileup = VCFPileupNode.customize(reference=regions["FASTA"],
+ infile_bam=bamfile,
+ infile_vcf=calls,
+ outfile=pileups,
+ dependencies=genotype)
+ apply_samtools_options(vcfpileup.command, genotyping["MPileup"],
+ "--mpileup-argument")
+ vcfpileup = vcfpileup.build_node()
+
+ vcf_tabix = TabixIndexNode(infile=pileups,
+ preset="pileup",
+ dependencies=vcfpileup)
+
+ # 3. Filter all sites using the 'vcf_filter' command
+ vcffilter = VCFFilterNode.customize(infile=calls,
+ pileup=pileups,
+ outfile=filtered,
+ regions=regions,
+ dependencies=vcf_tabix)
+ vcffilter = _apply_vcf_filter_options(vcffilter, genotyping, sample)
+
+ # 4. Tabix index. This allows random-access to the VCF file when building
+ # the consensus FASTA sequence later in the pipeline.
+ tabix = TabixIndexNode(infile=filtered,
+ preset="vcf",
+ dependencies=vcffilter)
+
+ _VCF_CACHE[(bamfile, output_prefix)] = (filtered, tabix)
+ return filtered, tabix
+
+
+def build_genotyping_nodes(options, genotyping, sample, regions, dependencies):
+ """Builds the nodes required for genotyping a BAM, in part or in whole.
+
+ By default, only the region of interest (including padding) will be
+ genotyped. However, if option 'GenotypeEntirePrefix' is enabled, the entire
+ genome is genotyped, and reused between different areas of interest.
+
+ In addition to the files generated by 'build_genotyping_nodes_cached', this
+ function generates the following files:
+ SAMPLE.PREFIX.ROI.fasta: FASTA containing each named region.
+ SAMPLE.PREFIX.ROI.fasta.fai: Index file built using "samtools faidx"
+
+ The function returns a sequence of the top-level nodes generating the files.
+
+ """
+ # 1. Get path of the filtered VCF file, and the assosiated node
+ filtered, node = build_genotyping_nodes_cached(options=options,
+ genotyping=genotyping,
+ sample=sample,
+ regions=regions,
+ dependencies=dependencies)
+
+ # 2. Generate consensus sequence from filtered VCF
+ output_fasta = regions["Genotypes"][sample]
+ builder = BuildRegionsNode.customize(infile=filtered,
+ bedfile=regions["BED"],
+ outfile=output_fasta,
+ padding=genotyping["Padding"],
+ dependencies=node)
+ if regions["ProteinCoding"]:
+ builder.command.set_option("--whole-codon-indels-only")
+ if not regions["IncludeIndels"]:
+ builder.command.set_option("--ignore-indels")
+ builder = builder.build_node()
+
+ # 3. Index sequences to make retrival easier for MSA
+ faidx = FastaIndexNode(infile=output_fasta,
+ dependencies=builder)
+
+ return (faidx,)
+
+
+def build_sampling_nodes(options, genotyping, sample, regions, dependencies):
+ fasta_file = regions["Genotypes"][sample]
+ pileup_file = swap_ext(fasta_file, ".pileup.bgz")
+
+ padding = genotyping["Padding"]
+ slop, node = build_regions_nodes(regions, padding, dependencies)
+
+ bam_file = "%s.%s.bam" % (sample, regions["Prefix"])
+ bam_file = os.path.join(options.samples_root, bam_file)
+ if regions["Realigned"]:
+ bam_file = add_postfix(bam_file, ".realigned")
+ bai_node = build_bam_index_node(bam_file)
+
+ genotype = GenotypeRegionsNode.customize(pileup_only=True,
+ reference=regions["FASTA"],
+ bedfile=slop,
+ infile=bam_file,
+ outfile=pileup_file,
+ nbatches=options.samtools_max_threads,
+ dependencies=node + (bai_node,))
+ apply_samtools_options(genotype.command, genotyping["MPileup"],
+ "--mpileup-argument")
+ genotype = genotype.build_node()
+
+ tabix = TabixIndexNode(infile=pileup_file,
+ preset="pileup",
+ dependencies=genotype)
+
+ builder = SampleRegionsNode(infile=pileup_file,
+ bedfile=regions["BED"],
+ outfile=fasta_file,
+ dependencies=tabix)
+
+ faidx = FastaIndexNode(infile=fasta_file,
+ dependencies=builder)
+
+ return (faidx,)
+
+
+def build_reference_nodes(options, genotyping, sample, regions, dependencies):
+ input_file = "%s.%s.fasta" % (regions["Prefix"], sample)
+ input_fpath = os.path.join(options.refseq_root, input_file)
+
+ output_file = "%s.%s.fasta" % (sample, regions["Desc"])
+ output_fpath = os.path.join(options.destination, "genotypes", output_file)
+
+ dependencies = list(dependencies)
+ dependencies.append(build_fasta_index_node(regions["FASTA"]))
+
+ node = ExtractReferenceNode(reference=input_fpath,
+ bedfile=regions["BED"],
+ outfile=output_fpath,
+ dependencies=dependencies)
+
+ faidx = FastaIndexNode(infile=output_fpath,
+ dependencies=node)
+ return (faidx,)
+
+
+# Functions used to carry out each of the supported genotyping methods
+_GENOTYPING_METHODS = {
+ "reference sequence": build_reference_nodes,
+ "random sampling": build_sampling_nodes,
+ "samtools": build_genotyping_nodes,
+}
+
+
+def build_sample_nodes(options, genotyping, regions_sets, sample,
+ dependencies=()):
+ nodes = []
+ for regions in regions_sets.itervalues():
+ regions = deepcopy(regions)
+
+ # Enforce homozygous contigs based on gender tag
+ regions["HomozygousContigs"] \
+ = regions["HomozygousContigs"][sample["Gender"]]
+
+ genotyping_method = sample["GenotypingMethod"].lower()
+ if genotyping_method not in _GENOTYPING_METHODS:
+ assert False, "Unexpected genotyping method %r for sample %r" \
+ % (genotyping_method, sample["Name"])
+
+ genotyping_function = _GENOTYPING_METHODS[genotyping_method]
+ node = genotyping_function(options=options,
+ genotyping=genotyping[regions["Name"]],
+ sample=sample["Name"],
+ regions=regions,
+ dependencies=dependencies)
+ nodes.extend(node)
+
+ return MetaNode(description=sample["Name"],
+ dependencies=nodes)
+
+
+def chain(pipeline, options, makefiles):
+ destination = options.destination
+ for makefile in makefiles:
+ regions_sets = makefile["Project"]["Regions"]
+ genotyping = makefile["Genotyping"]
+ options.destination = os.path.join(destination,
+ makefile["Project"]["Title"])
+
+ nodes = []
+ for sample in makefile["Project"]["Samples"].itervalues():
+ nodes.append(build_sample_nodes(options, genotyping, regions_sets,
+ sample, makefile["Nodes"]))
+
+ makefile["Nodes"] = tuple(nodes)
+ options.destination = destination
diff --git a/pypeline/tools/phylo_pipeline/parts/msa.py b/pypeline/tools/phylo_pipeline/parts/msa.py
new file mode 100755
index 0000000..64972b3
--- /dev/null
+++ b/pypeline/tools/phylo_pipeline/parts/msa.py
@@ -0,0 +1,92 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+#!/usr/bin/python
+
+import os
+
+from pypeline.node import \
+ MetaNode
+from pypeline.atomiccmd.builder import \
+ apply_options
+from pypeline.nodes.sequences import \
+ CollectSequencesNode, \
+ FilterSingletonsMetaNode
+from pypeline.nodes.mafft import \
+ MAFFTNode
+
+
+def build_msa_nodes(options, settings, regions, filtering, dependencies):
+ if settings["Program"].lower() != "mafft":
+ raise RuntimeError("Only MAFFT support has been implemented!")
+
+ sequencedir = os.path.join(options.destination, "alignments", regions["Name"])
+ # Run on full set of sequences
+ sequences = regions["Sequences"][None]
+
+ node = CollectSequencesNode(fasta_files = regions["Genotypes"],
+ destination = sequencedir,
+ sequences = sequences,
+ dependencies = dependencies)
+ fasta_files = dict((filename, node) for filename in node.output_files)
+
+ if settings["Enabled"]:
+ fasta_files = {}
+ algorithm = settings["MAFFT"]["Algorithm"]
+ for sequence in sequences:
+ input_file = os.path.join(sequencedir, sequence + ".fasta")
+ output_file = os.path.join(sequencedir, sequence + ".afa")
+
+ mafft = MAFFTNode.customize(input_file = input_file,
+ output_file = output_file,
+ algorithm = algorithm,
+ dependencies = node)
+ apply_options(mafft.command, settings["MAFFT"])
+ fasta_files[output_file] = mafft.build_node()
+
+ node = MetaNode(description = "MAFFT",
+ subnodes = fasta_files.values(),
+ dependencies = node)
+
+
+ if any(filtering.itervalues()):
+ node = FilterSingletonsMetaNode(input_files = fasta_files,
+ destination = sequencedir + ".filtered",
+ filter_by = filtering,
+ dependencies = node)
+
+ return node
+
+
+def chain(_pipeline, options, makefiles):
+ destination = options.destination # Move to makefile
+ for makefile in makefiles:
+ nodes = []
+ settings = makefile["MultipleSequenceAlignment"]
+ filtering = makefile["Project"]["FilterSingletons"]
+ options.destination = os.path.join(destination, makefile["Project"]["Title"])
+
+ for regions in makefile["Project"]["Regions"].itervalues():
+ regions_settings = settings[regions["Name"]]
+ nodes.append(build_msa_nodes(options, regions_settings, regions, filtering, makefile["Nodes"]))
+ makefile["Nodes"] = tuple(nodes)
+ options.destination = destination
diff --git a/pypeline/tools/phylo_pipeline/parts/paml.py b/pypeline/tools/phylo_pipeline/parts/paml.py
new file mode 100755
index 0000000..1e843ab
--- /dev/null
+++ b/pypeline/tools/phylo_pipeline/parts/paml.py
@@ -0,0 +1,175 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import re
+
+from pypeline.node import MetaNode, CommandNode, NodeError
+from pypeline.atomiccmd.command import AtomicCmd
+from pypeline.atomiccmd.sets import SequentialCmds
+from pypeline.common.formats.fasta import FASTA
+from pypeline.common.utilities import safe_coerce_to_frozenset
+
+import pypeline.common.fileutils as fileutils
+
+
+
+
+class CodemlNode(CommandNode):
+ def __init__(self, control_file, sequence_file, trees_file, output_tar, exclude_groups = (), dependencies = ()):
+ self._exclude_groups = safe_coerce_to_frozenset(exclude_groups)
+ self._control_file = control_file
+ self._sequence_file = sequence_file
+ self._trees_file = trees_file
+
+ paml_cmd = AtomicCmd(["codeml", "template.ctl"],
+ IN_CONTROL_FILE = control_file,
+ IN_SEQUENCE_FILE = sequence_file,
+ IN_TREES_FILE = trees_file,
+ TEMP_OUT_CTL = "template.ctl",
+ TEMP_OUT_SEQS = "template.seqs",
+ TEMP_OUT_TREES = "template.trees",
+ TEMP_OUT_STDOUT = "template.stdout",
+ TEMP_OUT_STDERR = "template.stderr",
+ TEMP_OUT_4FOLD = "4fold.nuc",
+ IN_STDIN = "/dev/null", # Prevent promts from blocking
+ set_cwd = True,
+ **CodemlNode._get_codeml_files("TEMP_OUT_CODEML"))
+
+ tar_pairs = CodemlNode._get_codeml_files("TEMP_IN_CODEML")
+ tar_files = ["%%(%s)s" % (key,) for key in tar_pairs]
+ tar_cmd = AtomicCmd(["tar", "cvzf", "%(OUT_FILE)s"] + tar_files,
+ OUT_FILE = output_tar,
+ set_cwd = True,
+ **tar_pairs)
+
+ CommandNode.__init__(self,
+ description = "<CodemlNode: %r -> %r>" % (sequence_file, output_tar),
+ command = SequentialCmds([paml_cmd, tar_cmd]),
+ dependencies = dependencies)
+
+
+ def _setup(self, _config, temp):
+ self._update_ctl_file(source = self._control_file,
+ destination = os.path.join(temp, "template.ctl"))
+
+ os.symlink(os.path.abspath(self._trees_file), os.path.join(temp, "template.trees"))
+ with open(os.path.join(temp, "template.seqs"), "w") as handle:
+ for record in FASTA.from_file(self._sequence_file):
+ if record.name not in self._exclude_groups:
+ name = record.name
+ sequence = record.sequence.upper()
+ handle.write("%s\n" % (FASTA(name, None, sequence),))
+
+
+ def _run(self, config, temp):
+ try:
+ CommandNode._run(self, config, temp)
+ except NodeError, error:
+ if self._command.join() == [1, None]:
+ with open(fileutils.reroot_path(temp, "template.stdout")) as handle:
+ lines = handle.readlines()
+ if lines and ("Giving up." in lines[-1]):
+ error = NodeError("%s\n\n%s" % (error, lines[-1]))
+ raise error
+
+
+ @classmethod
+ def _update_ctl_file(cls, source, destination):
+ with open(source) as handle:
+ template = handle.read()
+
+ # TODO: Do check before running everything!
+ template, count = re.subn(r'(\bseqfile\s*=).*', r'\1 template.seqs', template)
+ assert count == 1, count
+ template, count = re.subn(r'(\btreefile\s*=).*', r'\1 template.trees', template)
+ assert count == 1, count
+ template, count = re.subn(r'(\boutfile\s*=).*', r'\1 mlc', template)
+ assert count == 1, count
+
+ with open(destination, "w") as handle:
+ handle.write(template)
+
+ @classmethod
+ def _get_codeml_files(cls, key_type):
+ results = {}
+ codeml_files = ["mlc", "2NG.dN", "2NG.dS", "2NG.t", "lnf", "rst", "rst1", "rub"]
+ for filename in codeml_files:
+ key = "%s_%s" % (key_type, filename.upper().replace(".", "_"))
+ results[key] = filename
+ return results
+
+
+def build_codeml_nodes(options, settings, regions, filtering, dependencies):
+ in_postfix, out_postfix, afa_ext = "", "", ".afa"
+ if any(filtering.itervalues()):
+ in_postfix = out_postfix = ".filtered"
+ if not settings["MultipleSequenceAlignment"][regions["Name"]]["Enabled"]:
+ out_postfix = ".unaligned" + out_postfix
+ afa_ext = ".fasta"
+
+ codeml = settings["PAML"]["codeml"]
+ subset_key = codeml["SubsetRegions"].get(regions["Name"])
+ sequences = regions["Sequences"][subset_key]
+ sequencedir = os.path.join(options.destination, "alignments", regions["Name"] + in_postfix)
+ destination = os.path.join(options.destination, "paml", "codeml", regions["Name"] + out_postfix)
+
+ fasta_files = {}
+ for sequence in sequences:
+ fasta_files[sequence] = os.path.join(sequencedir, sequence + afa_ext)
+
+ codeml_nodes = []
+ for (ctl_name, ctl_files) in codeml.iteritems():
+ # This dictionary also contains the "ExcludeSamples" option
+ if ctl_name in ("ExcludeSamples", "SubsetRegions"):
+ continue
+
+ for (sequence, filename) in fasta_files.iteritems():
+ output_tar = os.path.join(destination, "%s.%s.tar.gz" % (sequence, ctl_name))
+ ctl_file = ctl_files["ControlFile"].format(Name = sequence)
+ tree_file = ctl_files["TreeFile"].format(Name = sequence)
+
+ node = CodemlNode(control_file = ctl_file,
+ trees_file = tree_file,
+ sequence_file = filename,
+ output_tar = output_tar,
+ exclude_groups = codeml["ExcludeSamples"],
+ dependencies = dependencies)
+ codeml_nodes.append(node)
+
+ return MetaNode(description = "<CodemlNodes>",
+ subnodes = codeml_nodes,
+ dependencies = dependencies)
+
+
+
+def chain_codeml(_pipeline, options, makefiles):
+ destination = options.destination # Move to makefile
+ for makefile in makefiles:
+ nodes = []
+ filtering = makefile["Project"]["FilterSingletons"]
+ options.destination = os.path.join(destination, makefile["Project"]["Title"])
+
+ for regions in makefile["Project"]["Regions"].itervalues():
+ nodes.append(build_codeml_nodes(options, makefile, regions, filtering, makefile["Nodes"]))
+ makefile["Nodes"] = tuple(nodes)
+ options.destination = destination
diff --git a/pypeline/tools/phylo_pipeline/parts/phylo.py b/pypeline/tools/phylo_pipeline/parts/phylo.py
new file mode 100644
index 0000000..63b48e6
--- /dev/null
+++ b/pypeline/tools/phylo_pipeline/parts/phylo.py
@@ -0,0 +1,266 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import random
+import collections
+
+from pypeline.node import MetaNode
+from pypeline.nodes.formats import \
+ FastaToPartitionedInterleavedPhyNode as ToPhylipNode
+from pypeline.nodes.raxml import \
+ RAxMLReduceNode, \
+ RAxMLParsimonyTreeNode
+from pypeline.nodes.phylip import \
+ PHYLIPBootstrapNode
+from pypeline.nodes.examl import \
+ ExaMLNode, \
+ ExaMLParserNode
+from pypeline.nodes.newick import \
+ NewickRerootNode, \
+ NewickSupportNode
+from pypeline.common.fileutils import \
+ swap_ext, \
+ add_postfix
+
+
+def _build_supermatrix(destination, input_files, exclude_samples, subset_files,
+ dependencies):
+ matrixprefix = os.path.join(destination, "alignments")
+
+ # This supermatrix (and partitions) is not used by the pipeline, but is
+ # built for reference purposes; may be made optional in the future.
+ supermatrix = ToPhylipNode(infiles=input_files,
+ out_prefix=matrixprefix,
+ exclude_groups=exclude_samples,
+ dependencies=dependencies,
+ file_dependencies=subset_files)
+
+ # Supermatrix with empty columns (all N, n, or -) stripped
+ reduced = ToPhylipNode(reduce=True,
+ infiles=input_files,
+ out_prefix=matrixprefix + ".reduced",
+ exclude_groups=exclude_samples,
+ dependencies=dependencies,
+ file_dependencies=subset_files)
+
+ return (supermatrix, reduced)
+
+
+def _examl_nodes(options, settings, input_alignment, input_partitions, input_binary, output_template, dependencies):
+ parsimony_tree = output_template % ("parsimony_tree",)
+ tree = RAxMLParsimonyTreeNode(input_alignment = input_alignment,
+ input_partitions = input_partitions,
+ output_tree = parsimony_tree,
+ dependencies = dependencies)
+
+ params = ExaMLNode.customize(input_binary = input_binary,
+ initial_tree = parsimony_tree,
+ output_template = output_template,
+ threads = options.examl_max_threads,
+ dependencies = tree)
+
+ params.command.set_option("-m", settings["ExaML"]["Model"].upper())
+
+ return params.build_node()
+
+
+def _build_rerooted_trees(meta_node, reroot_on):
+ filenames = []
+ for node in meta_node.subnodes:
+ for filename in node.output_files:
+ if filename.endswith(".result"):
+ filenames.append(filename)
+
+ output_file = os.path.dirname(filenames[0]) + ".newick"
+ output_node = NewickRerootNode(tree_files = filenames,
+ output_file = output_file,
+ taxa = reroot_on,
+ dependencies = meta_node)
+ return output_node
+
+
+def _build_examl_replicates(options, phylo, destination, input_alignment, input_partition, dependencies):
+ input_binary = os.path.join(destination, "alignments.reduced.binary")
+ binary = ExaMLParserNode(input_alignment = input_alignment,
+ input_partition = input_partition,
+ output_file = input_binary,
+ dependencies = dependencies)
+
+ replicates = []
+ for replicate_num in range(phylo["ExaML"]["Replicates"]):
+ replicate_destination = os.path.join(destination, "replicates")
+ replicate_template = os.path.join(replicate_destination, "replicate.%04i.%%s" % (replicate_num,))
+ replicates.append(_examl_nodes(options, phylo, input_alignment, input_partition, input_binary, replicate_template, binary))
+
+ if replicates:
+ meta = MetaNode(description = "Replicates",
+ subnodes = replicates,
+ dependencies = binary)
+
+ return _build_rerooted_trees(meta, phylo["RootTreesOn"])
+ return None
+
+
+def _build_examl_bootstraps(options, phylo, destination, input_alignment, input_partition, dependencies):
+ bootstraps = []
+ num_bootstraps = phylo["ExaML"]["Bootstraps"]
+ bootstrap_destination = os.path.join(destination, "bootstraps")
+ bootstrap_template = os.path.join(bootstrap_destination, "bootstrap.%04i.phy")
+
+ for bootstrap_num in xrange(num_bootstraps):
+ bootstrap_alignment = bootstrap_template % (bootstrap_num,)
+ bootstrap = PHYLIPBootstrapNode(input_alignment = input_alignment,
+ input_partition = input_partition,
+ output_alignment = bootstrap_alignment,
+ seed = random.randint(1, 2**32 - 1),
+ dependencies = dependencies)
+
+ bootstrap_binary = swap_ext(bootstrap_alignment, ".binary")
+ bootstrap_final = swap_ext(bootstrap_alignment, ".%s")
+ bs_binary = ExaMLParserNode(input_alignment = bootstrap_alignment,
+ input_partition = input_partition,
+ output_file = bootstrap_binary,
+ dependencies = bootstrap)
+
+ bootstraps.append(_examl_nodes(options = options,
+ settings = phylo,
+ input_alignment = bootstrap_alignment,
+ input_partitions = input_partition,
+ input_binary = bootstrap_binary,
+ output_template = bootstrap_final,
+ dependencies = bs_binary))
+
+ if bootstraps:
+ meta = MetaNode(description = "Bootstraps",
+ subnodes = bootstraps,
+ dependencies = dependencies)
+ return _build_rerooted_trees(meta, phylo["RootTreesOn"])
+ return None
+
+
+def add_bootstrap_support(destination, replicate, bootstrap):
+ if not (replicate and bootstrap):
+ return filter(None, (replicate, bootstrap))
+
+ replicate_file = os.path.join(destination, "replicates.newick")
+ bootstrap_file = os.path.join(destination, "bootstraps.newick")
+ output_file = add_postfix(replicate_file, ".support")
+
+ return NewickSupportNode(main_tree_files = replicate_file,
+ support_tree_files = bootstrap_file,
+ output_file = output_file,
+ dependencies = (bootstrap, replicate)),
+
+
+def _build_examl_nodes(options, settings, destination, input_files, subset_files, dependencies):
+ input_alignment = os.path.join(destination, "alignments.reduced.phy")
+ input_partition = os.path.join(destination, "alignments.reduced.partitions")
+
+ excluded = settings["ExcludeSamples"]
+ supermatrix = _build_supermatrix(destination, input_files, excluded, subset_files, dependencies)
+ examl_args = (options, settings, destination, input_alignment, input_partition, supermatrix)
+
+ examl_replicates = _build_examl_replicates(*examl_args)
+ examl_bootstraps = _build_examl_bootstraps(*examl_args)
+ examl_dependencies = add_bootstrap_support(destination, examl_replicates, examl_bootstraps)
+
+ return examl_dependencies
+
+
+def _build_examl_per_gene_nodes(options, settings, run_dd, roi, destination, filtering, dependencies):
+ regions = settings["Project"]["Regions"][roi["Name"]]
+ sequences = regions["Sequences"][roi["SubsetRegions"]]
+ subset_files = regions["SubsetFiles"][roi["SubsetRegions"]]
+ filtering_postfix = ".filtered" if any(filtering.itervalues()) else ""
+ sequence_dir = os.path.join(options.destination, "alignments", roi["Name"] + filtering_postfix)
+ msa_enabled = settings["MultipleSequenceAlignment"][regions["Name"]]["Enabled"]
+ fasta_extension = ".afa" if msa_enabled else ".fasta"
+
+ partitions = roi["Partitions"] or "111"
+
+ nodes = []
+ for sequence in sequences:
+ seq_source = os.path.join(sequence_dir, sequence + fasta_extension)
+ seq_destination = os.path.join(destination, sequence)
+ input_files = {sequence : {"partitions" : partitions, "filenames" : [seq_source]}}
+ nodes.extend(_build_examl_nodes(options, run_dd, seq_destination, input_files, subset_files, dependencies))
+
+ return nodes
+
+
+def _build_examl_regions_nodes(options, settings, run_dd, destination, filtering, dependencies):
+ input_files = collections.defaultdict(dict)
+ subset_files = []
+ for (roi_name, roi_dd) in run_dd["RegionsOfInterest"].iteritems():
+ regions = settings["Project"]["Regions"][roi_name]
+ subset_key = roi_dd.get("SubsetRegions")
+ sequences = regions["Sequences"][subset_key]
+ subset_files.extend(regions["SubsetFiles"][subset_key])
+
+ partitions = roi_dd["Partitions"]
+ filtering_postfix = ".filtered" if any(filtering.itervalues()) else ""
+ sequence_dir = os.path.join(options.destination, "alignments", roi_name + filtering_postfix)
+ msa_enabled = settings["MultipleSequenceAlignment"][regions["Name"]]["Enabled"]
+ fasta_extension = ".afa" if msa_enabled else ".fasta"
+
+ if partitions:
+ for sequence in sequences:
+ seq_source = os.path.join(sequence_dir, sequence + fasta_extension)
+ input_files[sequence] = {"partitions" : partitions, "filenames" : [seq_source]}
+ else:
+ filenames = []
+ for sequence in sequences:
+ filenames.append(os.path.join(sequence_dir, sequence + fasta_extension))
+ input_files[roi_name] = {"partitions" : "1", "filenames" : filenames}
+
+ return _build_examl_nodes(options, run_dd, destination, dict(input_files), subset_files, dependencies)
+
+
+def build_phylogeny_nodes(options, settings, filtering, dependencies):
+ nodes = []
+ for (run_name, run_dd) in settings["PhylogeneticInference"].iteritems():
+ destination = os.path.join(options.destination, "phylogenies", run_name)
+
+ if run_dd["PerGeneTrees"]:
+ run_nodes = []
+ for roi in run_dd["RegionsOfInterest"].itervalues():
+ roi_destination = os.path.join(destination, roi["Name"])
+ run_nodes.extend(_build_examl_per_gene_nodes(options, settings, run_dd, roi, roi_destination, filtering, dependencies))
+ nodes.append(MetaNode(description = run_name,
+ subnodes = run_nodes,
+ dependencies = dependencies))
+ else:
+ nodes.extend(_build_examl_regions_nodes(options, settings, run_dd, destination, filtering, dependencies))
+
+ return MetaNode("Phylogenetic Inference",
+ dependencies = nodes)
+
+
+def chain_examl(_pipeline, options, makefiles):
+ destination = options.destination # Move to makefile
+ for makefile in makefiles:
+ filtering = makefile["Project"]["FilterSingletons"]
+ options.destination = os.path.join(destination, makefile["Project"]["Title"])
+
+ makefile["Nodes"] = build_phylogeny_nodes(options, makefile, filtering, makefile["Nodes"])
+ options.destination = destination
diff --git a/pypeline/tools/phylo_pipeline/pipeline.py b/pypeline/tools/phylo_pipeline/pipeline.py
new file mode 100644
index 0000000..2e9bea8
--- /dev/null
+++ b/pypeline/tools/phylo_pipeline/pipeline.py
@@ -0,0 +1,133 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+import os
+import sys
+import time
+import logging
+
+import pypeline.ui
+import pypeline.yaml
+import pypeline.logger
+import pypeline.tools.phylo_pipeline.makefile
+import pypeline.tools.phylo_pipeline.mkfile as mkfile
+
+from pypeline.pipeline import Pypeline
+from pypeline.common.console import print_err
+from pypeline.tools.phylo_pipeline.makefile import \
+ MakefileError, \
+ read_makefiles
+from pypeline.tools.phylo_pipeline.config import \
+ ConfigError, \
+ parse_config, \
+ select_commands
+
+
+def list_orphan_files(config, makefiles, pipeline):
+ files = set()
+ for makefile in makefiles:
+ title = makefile["Project"]["Title"]
+ folder = os.path.join(config.destination, title)
+ for (dirpath, _, filenames) in os.walk(folder):
+ for filename in filenames:
+ fpath = os.path.join(dirpath, filename)
+ files.add(os.path.abspath(fpath))
+ return files - frozenset(pipeline.list_output_files())
+
+
+def main(argv):
+ try:
+ config, args = parse_config(argv)
+ except ConfigError, error:
+ print_err(error)
+ return 1
+
+ if not args or ("help" in args):
+ return 0
+ elif (len(args) < 2) and ("mkfile" not in args and "makefile" not in args):
+ print_err("\nPlease specify at least one makefile!")
+ return 1
+
+ commands = select_commands(args.pop(0))
+ if any((cmd in ("makefile", "mkfile")) for (cmd, _) in commands):
+ return mkfile.main(args[1:])
+
+ if not os.path.exists(config.temp_root):
+ try:
+ os.makedirs(config.temp_root)
+ except OSError, error:
+ print_err("ERROR: Could not create temp root:\n\t%s" % (error,))
+ return 1
+
+ if not os.access(config.temp_root, os.R_OK | os.W_OK | os.X_OK):
+ print_err("ERROR: Insufficient permissions for temp root: '%s'"
+ % (config.temp_root,))
+ return 1
+
+ # Init worker-threads before reading in any more data
+ pipeline = Pypeline(config)
+
+ try:
+ makefiles = read_makefiles(config, args, commands)
+ except (MakefileError, pypeline.yaml.YAMLError, IOError), error:
+ print_err("Error reading makefiles:",
+ "\n %s:\n " % (error.__class__.__name__,),
+ "\n ".join(str(error).split("\n")),
+ file=sys.stderr)
+ return 1
+
+ logfile_template = time.strftime("phylo_pipeline.%Y%m%d_%H%M%S_%%02i.log")
+ pypeline.logger.initialize(config, logfile_template)
+ logger = logging.getLogger(__name__)
+
+ for (command_key, command_func) in commands:
+ logger.info("Building %s pipeline ...", command_key)
+ command_func(pipeline, config, makefiles)
+
+ for makefile in makefiles:
+ if "Nodes" in makefile:
+ pipeline.add_nodes(makefile["Nodes"])
+
+ if config.list_output_files:
+ logger.info("Printing output files ...")
+ pipeline.print_output_files()
+ return 0
+ elif config.list_orphan_files:
+ logger.info("Printing orphan files ...")
+ for filename in sorted(list_orphan_files(config, makefiles, pipeline)):
+ print(filename)
+ return 0
+ elif config.list_executables:
+ logger.info("Printint required executables ...")
+ pipeline.print_required_executables()
+ return 0
+ elif config.dot_file:
+ logger.info("Writing dependency graph to %r ...", config.dot_file)
+ if not pipeline.to_dot(config.dot_file):
+ return 1
+ return 0
+
+ if not pipeline.run(max_running=config.max_threads,
+ dry_run=config.dry_run,
+ progress_ui=config.progress_ui):
+ return 1
+ return 0
diff --git a/pypeline/tools/rmdup_collapsed.py b/pypeline/tools/rmdup_collapsed.py
new file mode 100755
index 0000000..c8cb824
--- /dev/null
+++ b/pypeline/tools/rmdup_collapsed.py
@@ -0,0 +1,151 @@
+#!/usr/bin/env python
+
+"""
+Stripped down version of 'FilterUniqueBAM' by
+:Author: Martin Kircher
+:Contact: Martin.Kircher at eva.mpg.de
+:Date: *08.10.2011
+:Type: tool
+:Input: BAM
+:Output: BAM
+
+Mark/Filter PCR duplicates for merged PE reads Reads BAM
+from STDIN and writes BAM to STDOUT. All non-collapsed reads
+as well as secondary/chinermic alignments, reads that have
+failed QC and unmmaped reads, are written to STDOUT as is.
+
+The input is assumed to be sorted by coordinates, and this
+order is preservered, though individual reads at the same
+position may be re-arranged).
+"""
+
+import sys
+import pysam
+from argparse import ArgumentParser
+
+
+def calc_consensus(reads):
+ count = len(reads)
+ outread = None
+ maxsumqual = 0
+ for read in reads:
+ nsum = sum(map(ord, read.qual))
+ if nsum > maxsumqual:
+ outread = read
+ maxsumqual = nsum
+
+ # LOOK FOR PREVIOUS PCR DUPLICATE COUNTS
+ for key, value in read.tags:
+ if key == "XP":
+ count += value
+
+ if not outread.tags:
+ outread.tags = [("XP", count)]
+ else:
+ outread.tags = outread.tags + [("XP", count)]
+
+ return outread
+
+
+def get_consensus_se(reads):
+ # DETERMINE MOST FREQUENT CIGAR LINE
+ by_cigar = {}
+ cigar_count = {}
+ for read in reads:
+ tcigar = tuple(read.cigar)
+ if tcigar in by_cigar:
+ cigar_count[tcigar] += 1
+ by_cigar[tcigar].append(read)
+ else:
+ cigar_count[tcigar] = 1
+ by_cigar[tcigar] = [read]
+
+ to_sort = [(y, -len(str(x)), x) for (x, y) in cigar_count.iteritems()]
+ to_sort.sort()
+ selcigar = to_sort[-1][-1]
+ reads = by_cigar[selcigar]
+
+ return calc_consensus(reads)
+
+
+def write_consensus_se(outfile, reads, remove_duplicates):
+ consensus = get_consensus_se(reads)
+ for read in reads:
+ read.is_duplicate = (read is not consensus)
+ if not (read.is_duplicate and remove_duplicates):
+ outfile.write(read)
+
+
+def _flush_buffer(outfile, curvariants, remove_duplicates):
+ for value in curvariants.itervalues():
+ write_consensus_se(outfile, value[0], remove_duplicates)
+ curvariants.clear()
+
+
+_FILTERED_FLAGS = 0x1 # PE reads
+_FILTERED_FLAGS |= 0x4 # Unmapped
+_FILTERED_FLAGS |= 0x100 # Secondary alignment
+_FILTERED_FLAGS |= 0x200 # Failed QC
+_FILTERED_FLAGS |= 0x800 # Chimeric alignment
+
+
+def parse_args(argv):
+ parser = ArgumentParser(usage="%(prog)s [options] < in.bam > out.bam")
+ parser.add_argument("input", default="-", help="BAM file.", nargs="?")
+ parser.add_argument("--remove-duplicates",
+ help="Remove duplicates from output; by default "
+ "duplicates are only flagged (flag = 0x400).",
+ default=False, action="store_true")
+
+ return parser.parse_args(argv)
+
+
+def main(argv):
+ args = parse_args(argv)
+
+ if args.input == "-" and sys.stdin.isatty():
+ sys.stderr.write("STDIN is a terminal, terminating!\n")
+ return 1
+ elif sys.stdout.isatty():
+ sys.stderr.write("STDOUT is a terminal, terminating!\n")
+ return 1
+
+ with pysam.Samfile(args.input, "rb") as infile:
+ with pysam.Samfile("-", "wb", template=infile) as outfile:
+ curpos = None
+ curvariants = {}
+ for (read_num, read) in enumerate(infile):
+ if curpos and ((read.tid, read.pos) != curpos):
+ # Sort order is defined as ascending 'tid's and positions
+ if curpos > (read.tid, read.pos) and not read.is_unmapped:
+ sys.stderr.write("ERROR: Input file does not appear "
+ "to be sorted by coordinates at "
+ "record %i, aborting ...\n"
+ % (read_num,))
+ return 1
+
+ _flush_buffer(outfile, curvariants,
+ args.remove_duplicates)
+ curpos = None
+
+ is_filtered = read.flag & _FILTERED_FLAGS
+ is_collapsed = read.qname.startswith("M_")
+ if is_filtered or not (read.qual and is_collapsed):
+ outfile.write(read)
+ continue
+
+ curpos = (read.tid, read.pos)
+ nkey = (read.is_reverse, read.pos, read.alen)
+ if nkey in curvariants:
+ curvariants[nkey][0].append(read)
+ curvariants[nkey][1] += 1
+ else:
+ curvariants[nkey] = [[read], 1]
+
+ _flush_buffer(outfile, curvariants, args.remove_duplicates)
+
+ return 0
+
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/sample_pileup.py b/pypeline/tools/sample_pileup.py
new file mode 100755
index 0000000..a5aefcb
--- /dev/null
+++ b/pypeline/tools/sample_pileup.py
@@ -0,0 +1,237 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from __future__ import print_function
+from __future__ import with_statement
+
+import argparse
+import collections
+import heapq
+import itertools
+import random
+import sys
+
+import pysam
+
+import pypeline.common.sequences as sequences
+import pypeline.common.text as text
+
+from pypeline.common.bedtools import BEDRecord
+from pypeline.common.formats.fasta import FASTA
+
+
+# Regions are genotyped in chunks of 1 MB strings; this is done to reduce
+# overhead, as storing 1 MB of chars individually in a list adds about 45 MB of
+# overhead. A 100MB chromosome would therefore require ~4.5GB.
+_CHUNK_SIZE = 2 ** 20
+
+
+class Pileup(object):
+ def __init__(self, line):
+ fields = line.split("\t")
+
+ self.position = int(fields[1]) - 1
+ self.reference = fields[2]
+ self.depth = int(fields[3])
+ self.observed = fields[4]
+
+
+class PileupRegion(object):
+ def __init__(self, tabix, chrom, start, end, padding=0,
+ dist_to_indels=0):
+ assert padding >= 0, "Padding must be >= 0, not %i" % (padding,)
+ self._tabix = tabix
+ self._chrom = chrom
+ self._start = start
+ self._end = end
+ self._padding = padding
+ self._distance_to_indels = dist_to_indels
+
+ def __iter__(self):
+ if self._distance_to_indels <= 0:
+ for pileup in self._tabix.fetch(reference=self._chrom,
+ start=self._start,
+ end=self._end):
+ yield (pileup.position, self._sample_position(pileup))
+
+ # Note that bed.end is a past-the-end coordinate
+ start = max(0, self._start - self._padding)
+ end = self._end + self._padding
+
+ region = self._tabix.fetch(reference=self._chrom,
+ start=start,
+ end=end)
+ pileup_buffer = collections.deque()
+ blacklist = []
+
+ # Fill buffer, and detect blacklisted sites due to indels
+ for _ in xrange(max(self._padding, self._distance_to_indels) * 2):
+ self._add_to_buffer(region, pileup_buffer, blacklist)
+
+ while pileup_buffer:
+ position, nucleotide = pileup_buffer.popleft()
+ while blacklist and blacklist[0] < position:
+ heapq.heappop(blacklist)
+
+ if not blacklist or blacklist[0] != position:
+ if self._start <= position < self._end:
+ yield (position, nucleotide)
+
+ self._add_to_buffer(region, pileup_buffer, blacklist)
+
+ def _add_to_buffer(self, region, pileup_buffer, blacklist):
+ try:
+ pileup = Pileup(region.next())
+ self._collect_indels(pileup, blacklist)
+ pileup_buffer.append((pileup.position,
+ self._sample_position(pileup)))
+ except StopIteration:
+ pass
+
+ def _collect_indels(self, pileup, blacklist):
+ for (index, current) in enumerate(pileup.observed):
+ if current == "+":
+ # Insertions do not themselves cover any bases
+ length = 0
+ elif current == "-":
+ len_slice = itertools.islice(pileup.observed, index + 1, None)
+ digits = "".join(itertools.takewhile(str.isdigit, len_slice))
+ length = int(digits)
+ else:
+ continue
+
+ # Distance is defined as sites overlapping INDELs having distance
+ # 0, sites adjacent to INDELS have distance 1, etc. Note that the
+ # INDEL starts on the next position of the current row.
+ start = pileup.position - self._distance_to_indels + 2
+ end = pileup.position + self._distance_to_indels + length
+ for position in xrange(start, end):
+ heapq.heappush(blacklist, position)
+
+ @classmethod
+ def _sample_position(cls, pileup):
+ skip = 0
+ bases = []
+ observed = pileup.observed.upper()
+ for current in observed:
+ if skip:
+ skip -= 1
+ elif current in ".,":
+ bases.append(pileup.reference)
+ elif current in "ACGT":
+ bases.append(current)
+ elif current == "^":
+ skip = 1
+ elif current not in "$*N+-1234567890":
+ assert False, current
+
+ if not bases:
+ return "N"
+
+ return random.choice(bases)
+
+
+def build_region(options, genotype, bed):
+ # 'fetch' raises a ValueError if the VCF does not contain any entries for
+ # the specified contig, which can occur due to low coverage.
+ if bed.contig in genotype.contigs:
+ region = PileupRegion(genotype,
+ chrom=bed.contig,
+ start=bed.start,
+ end=bed.end,
+ padding=options.padding,
+ dist_to_indels=options.min_distance_to_indels)
+
+ remaining_length = (bed.end - bed.start)
+ offset = bed.start
+
+ # Genotyping is done in chunks, so that these can be reduced to strings
+ # and thereby reduce the memory requirements for larger regions.
+ chunk = ["N"] * min(_CHUNK_SIZE, remaining_length)
+
+ for position, nucleotide in region:
+ while position >= offset + len(chunk):
+ yield "".join(chunk)
+ remaining_length -= len(chunk)
+ offset += len(chunk)
+ chunk = ["N"] * min(_CHUNK_SIZE, remaining_length)
+
+ chunk[position - offset] = nucleotide
+
+ while offset < bed.end:
+ yield "".join(chunk)
+ remaining_length -= len(chunk)
+ offset += len(chunk)
+ chunk = ["N"] * min(_CHUNK_SIZE, remaining_length)
+
+ yield "".join(chunk)
+ else:
+ yield "N" * (bed.end - bed.start)
+
+
+def build_genes(options, genotype, regions):
+ def keyfunc(bed):
+ return (bed.contig, bed.name, bed.start)
+ regions.sort(key=keyfunc)
+
+ for (gene, beds) in itertools.groupby(regions, lambda x: x.name):
+ sequence, beds = [], tuple(beds)
+ for bed in beds:
+ sequence.extend(build_region(options, genotype, bed))
+ sequence = "".join(sequence)
+
+ if any((bed.strand == "-") for bed in beds):
+ assert all((bed.strand == "-") for bed in beds)
+
+ sequence = sequences.reverse_complement(sequence)
+
+ yield (gene, sequence)
+
+
+def main(argv):
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--genotype", help="Tabix indexed pileup file.",
+ required=True)
+ parser.add_argument("--intervals", help="BED file.", required=True)
+ parser.add_argument("--padding", type=int, default=10,
+ help="Number of bases to expand intervals, when "
+ "filtering based on adjacent indels "
+ "[%(default)s]")
+ parser.add_argument("--min-distance-to-indels", type=int, default=5,
+ help="Variants closer than this distance from indels "
+ "are filtered; set to a negative value to "
+ "disable [%(default)s].")
+ args = parser.parse_args(argv)
+
+ genotype = pysam.Tabixfile(args.genotype)
+ with open(args.intervals) as bed_file:
+ intervals = text.parse_lines_by_contig(bed_file, BEDRecord)
+
+ for (_, beds) in sorted(intervals.items()):
+ for (name, sequence) in build_genes(args, genotype, beds):
+ FASTA(name, None, sequence).write(sys.stdout)
+
+ return 0
+
+
+if __name__ == "__main__":
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/vcf_filter.py b/pypeline/tools/vcf_filter.py
new file mode 100755
index 0000000..d73bc2b
--- /dev/null
+++ b/pypeline/tools/vcf_filter.py
@@ -0,0 +1,71 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+from __future__ import print_function
+
+import sys
+import errno
+import optparse
+import fileinput
+
+import pysam
+
+import pypeline.common.vcffilter as vcffilter
+
+
+def _read_files(filenames, args):
+ in_header = True
+ has_filters = False
+ vcf_parser = pysam.asVCF()
+ for line in fileinput.input(filenames):
+ if not line.startswith("#"):
+ in_header = False
+ line = line.rstrip("\n\r")
+ yield vcf_parser(line, len(line))
+ elif in_header:
+ if not (line.startswith("##") or has_filters):
+ has_filters = True
+ for item in sorted(vcffilter.describe_filters(args).items()):
+ print('##FILTER=<ID=%s,Description="%s">' % item)
+
+ print(line, end="")
+
+
+def main(argv):
+ parser = optparse.OptionParser("vcf_filter [options] [in1.vcf, ...]")
+ vcffilter.add_varfilter_options(parser)
+ (opts, args) = parser.parse_args(argv)
+
+ if (not args or "-" in args) and sys.stdin.isatty():
+ parser.error("STDIN is a terminal, terminating!")
+
+ try:
+ for vcf in vcffilter.filter_vcfs(opts, _read_files(args, opts)):
+ print(vcf)
+ except IOError, error:
+ # Check for broken pipe (head, less, etc).
+ if error.errno != errno.EPIPE:
+ raise
+
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/vcf_to_fasta.py b/pypeline/tools/vcf_to_fasta.py
new file mode 100755
index 0000000..e02f538
--- /dev/null
+++ b/pypeline/tools/vcf_to_fasta.py
@@ -0,0 +1,292 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""Creats consensus sequence from a VCF and BED file:
+vcf_to_fasta --intervals PATH_TO.bed --genotype PATH_TO.vcf
+
+The VCF file is expected to have been created using SAMTools, and makes use
+of SAMTools specific fields. For each region in the BED file, the script will
+create a consensus sequence containing all basepairs which are filtered as
+'PASS' or '.' in the VCF file; at each site, the most likely phenotype is
+selected using the PL fields, and heterozygous sites encoded using UIPAC codes.
+
+BED features with the same name are merged into single sequences. To ensure
+that indels are called near sequence termini, the script expects the VCF file
+to contain a certain amount of padding around the regions of interest.
+
+"""
+from __future__ import print_function
+
+import argparse
+import copy
+import itertools
+import os
+import sys
+
+from collections import namedtuple
+
+import pysam
+
+import pypeline.common.vcfwrap as vcfwrap
+import pypeline.common.text as text
+import pypeline.common.sequences as sequences
+import pypeline.common.utilities as utilities
+
+from pypeline.common.bedtools import BEDRecord
+
+
+# Max number of positions to keep in memory / genotype at once
+_SEQUENCE_CHUNK = 1024 * 1024 # 1kbp
+# Number of columns per line in FASTA sequences
+_FASTA_COLUMNS = 60
+
+
+###############################################################################
+###############################################################################
+# Utility functions
+
+def flush_fasta(sequence):
+ """Takes a FASTA sequence as a string, fragments it into lines of exactly
+ _FASTA_COLUMNS chars (e.g. 60), and prints all complete lines. The final
+ incomplete line (if any) is returned.
+
+ """
+ for seq_frag in utilities.fragment(_FASTA_COLUMNS, sequence):
+ if len(seq_frag) < _FASTA_COLUMNS:
+ return seq_frag
+ print(seq_frag)
+ return ""
+
+
+def split_beds(beds, size=_SEQUENCE_CHUNK):
+ """Takes a list of beds, and splits each bed into chunks that are at most
+ 'size' bp long. The resulting (smaller) beds are returned as a new list.
+
+ """
+ results = []
+ for bed in beds:
+ for start in xrange(bed.start, bed.end, size):
+ end = min(start + size, bed.end)
+ split_bed = copy.copy(bed)
+ split_bed.start = start
+ split_bed.end = end
+ results.append(split_bed)
+ return results
+
+
+###############################################################################
+###############################################################################
+# Genotyping functions
+
+def add_snp(snp, position, sequence):
+ if snp.alt != ".":
+ genotype = "".join(vcfwrap.get_ml_genotype(snp))
+ encoded = sequences.encode_genotype(genotype)
+ else:
+ encoded = snp.ref
+ sequence[position] = encoded
+
+
+def add_indel(options, bed, indel, sequence):
+ if indel.alt == ".":
+ return
+
+ genotype = vcfwrap.get_ml_genotype(indel)
+ if genotype[0] != genotype[1]:
+ # No way to represent heterozygous indels
+ return
+ elif genotype[0] == "N":
+ # No most likely genotype
+ return
+
+ # Note that bed.end is a past-the-end coordinate
+ start = max(0, bed.start - options.padding)
+
+ # FIXME: parse_indel only supports a single 'alt' values
+ indel.alt = genotype[0]
+ indel = vcfwrap.parse_indel(indel)
+ if indel.in_reference:
+ del_start = max(indel.pos + 1, bed.start)
+ del_end = min(indel.pos + 1 + len(indel.what), bed.end)
+
+ if del_start >= del_end:
+ # Deletion does not cover any bases of interest
+ return
+ elif options.whole_codon_indels_only:
+ if (del_end - del_start) % 3:
+ # Non-codon sized overlap with area of interest
+ return
+
+ for position in range(del_start, del_end):
+ sequence[position - start] = ""
+ elif (len(indel.what) % 3 == 0) or not options.whole_codon_indels_only:
+ # parse_indel assumes that the insertion is always the first possible
+ # base when multiple positions are possible. As a consequence, the
+ # position may be before start, with the rest of the bases overlapping
+ # the current sequence. For example:
+ # ref = ATTT
+ # alt = ATTTT
+ # It is assumed that the insertion (_) happened thus:
+ # interpretation = A_TTT
+ if indel.pos >= start:
+ sequence[indel.pos - start] += indel.what
+
+
+def filter_vcfs(genotype, contig, start, end):
+ if contig in genotype.contigs:
+ parser = pysam.asVCF()
+ # This raises a ValueError if the VCF does not
+ # contain any entries for the specified contig.
+ for vcf in genotype.fetch(contig, start, end, parser=parser):
+ if vcf.filter in ("PASS", "."):
+ yield vcf
+
+
+def build_region(options, genotype, bed):
+ # Note that bed.end is a past-the-end coordinate
+ start = max(0, bed.start - options.padding)
+
+ indels = []
+ sequence = ["N"] * (bed.end - start)
+ for vcf in filter_vcfs(genotype, bed.contig, start, bed.end):
+ if vcfwrap.is_indel(vcf):
+ indels.append(vcf)
+ else:
+ add_snp(vcf, vcf.pos - start, sequence)
+
+ if not options.ignore_indels:
+ for vcf in indels:
+ add_indel(options, bed, vcf, sequence)
+
+ offset = bed.start - start
+ length = bed.end - bed.start
+ truncated = sequence[offset:offset + length]
+
+ # Discard insertions after the last position
+ truncated[-1] = truncated[-1][:1]
+
+ return "".join(truncated)
+
+
+def build_regions(options, genotype, beds, reverse_compl):
+ for bed in beds:
+ sequence = build_region(options, genotype, bed)
+ if reverse_compl:
+ sequence = sequences.reverse_complement(sequence)
+ yield sequence
+
+
+def build_genes(options, genotype, regions):
+ def keyfunc(bed):
+ return (bed.contig, bed.name, bed.start)
+ regions.sort(key=keyfunc)
+
+ for (gene, beds) in itertools.groupby(regions, lambda x: x.name):
+ beds = split_beds(beds)
+ reverse_compl = False
+ if any((bed.strand == "-") for bed in beds):
+ assert all((bed.strand == "-") for bed in beds)
+
+ beds.reverse()
+ reverse_compl = True
+
+ fragments = build_regions(options, genotype, beds, reverse_compl)
+ yield (gene, fragments)
+
+
+def genotype_genes(options, intervals, genotype):
+ for (_, beds) in sorted(intervals.items()):
+ for (name, fragments) in build_genes(options, genotype, beds):
+ print(">%s" % (name,))
+
+ sequence = ""
+ for fragment in fragments:
+ sequence = flush_fasta(sequence + fragment)
+
+ if sequence:
+ print(sequence)
+
+ return 0
+
+
+###############################################################################
+###############################################################################
+
+def read_intervals(filename):
+ with open(filename) as bed_file:
+ intervals = text.parse_lines_by_contig(bed_file, BEDRecord)
+
+ for (key, beds) in intervals.iteritems():
+ bed_tuples = []
+ for bed in beds:
+ if len(bed) < 6:
+ sys.stderr.write(("ERROR: Invalid BED record '%r', must "
+ "have at least 6 fields ...\n") % (bed,))
+ return None
+
+ bed_tuples.append(bed)
+ intervals[key] = bed_tuples
+
+ return intervals
+
+
+def main(argv):
+ parser = argparse.ArgumentParser(prog="paleomix vcf_to_fasta")
+ parser.add_argument("--genotype", help="Tabix indexed VCF file.",
+ required=True)
+ parser.add_argument("--intervals", help="BED file.", required=True)
+ parser.add_argument("--padding", type=int, default=10,
+ help="Number of bases to expand intervals, when "
+ "checking for adjacent indels [%default]")
+ parser.add_argument("--whole-codon-indels-only",
+ action="store_true", default=False,
+ help="If true, only indels where (length % 3) == 0 "
+ "are retained [%default]")
+ parser.add_argument("--ignore-indels",
+ action="store_true", default=False,
+ help="Do not include indels generated FASTA "
+ "sequence [%default].")
+ opts = parser.parse_args(argv)
+
+ print("Running vcf_to_fasta", end="", file=sys.stderr)
+ if opts.whole_codon_indels_only:
+ print(", assuming sequences represents CDS", end="", file=sys.stderr)
+ print(" ...", file=sys.stderr)
+
+ if not os.path.exists(opts.genotype):
+ sys.stderr.write("ERROR: VCF file does not exist.\n")
+ return 1
+ elif not os.path.exists(opts.genotype + ".tbi"):
+ sys.stderr.write("ERROR: VCF file not tabix indexed.\n")
+ sys.stderr.write(" To index, run \"tabix -p vcf <filename>\".\n")
+ return 1
+
+ genotype = pysam.Tabixfile(opts.genotype)
+ intervals = read_intervals(opts.intervals)
+ if intervals is None:
+ return 1
+
+ return genotype_genes(opts, intervals, genotype)
+
+
+if __name__ == "__main__":
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/tools/zip.py b/pypeline/tools/zip.py
new file mode 100644
index 0000000..c3706c7
--- /dev/null
+++ b/pypeline/tools/zip.py
@@ -0,0 +1,67 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""
+Wrapper around gzip / bzip2.
+This is motivated by the need to ensure proper handling of pipes, for which
+the gzip / bzip2 commands do not behave consistently, to ensure that input
+files are not removed, and finally to ensure that opening the pipe does not
+block the main process.
+"""
+import os
+import sys
+import argparse
+import subprocess
+
+
+def main(argv):
+ """Main function; takes a list of arguments but excluding sys.argv[0]."""
+ parser = argparse.ArgumentParser(prog="paleomix cat")
+ parser.add_argument("file", help="Input file.")
+ parser.add_argument("--format", default="gz", choices=("bz2", "gz"),
+ help="Output format (gz / bz2).")
+
+ args = parser.parse_args(argv)
+ if args.format == "gz":
+ command = ["gzip"]
+ elif args.format == "bz2":
+ command = ["bzip2"]
+ else:
+ assert False, args.format
+
+ try:
+ with open(args.file) as input_handle:
+ subprocess.check_call(command,
+ stdin=input_handle,
+ preexec_fn=os.setsid,
+ close_fds=True)
+
+ except Exception, error: # pylint: disable=W0703
+ sys.stderr.write("Error running 'paleomix zip':\n %s\n\n" % error)
+ sys.stderr.write("Command = %s\n" % (" ".join(sys.argv),))
+ return 1
+
+ return 0
+
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))
diff --git a/pypeline/ui.py b/pypeline/ui.py
new file mode 100644
index 0000000..4e6f584
--- /dev/null
+++ b/pypeline/ui.py
@@ -0,0 +1,472 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2012 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+"""Functions relating to the CLI interface."""
+import datetime
+import multiprocessing
+import optparse
+import os
+import select
+import sys
+import termios
+import time
+import tty
+
+import pypeline.nodegraph
+import pypeline.logger
+import pypeline.common.text as text
+from pypeline.node import MetaNode
+from pypeline.common.console import \
+ print_msg, \
+ print_debug, \
+ print_info, \
+ print_err, \
+ print_disabled, \
+ print_warn
+
+
+def add_optiongroup(parser, ui_default="running", color_default="on"):
+ """Adds an option-group to an OptionParser object, with options
+ pertaining to logging. Note that 'initialize' expects the config
+ object to have these options."""
+ group = optparse.OptionGroup(parser, "Progress reporting")
+ group.add_option("--progress-ui", default=ui_default, type="choice",
+ choices=("running", "progress", "summary",
+ "verbose", "quiet"),
+ help="Select method for displaying the progress of the "
+ "pipeline: 'running' = Display only currently "
+ "running nodes; 'progress' = Display changes in "
+ "state; 'summary'; oneline summary only. "
+ "[Default is '%default']")
+ group.add_option("--ui-colors", default=color_default,
+ choices=("on", "off", "force"),
+ help="Enable, disable, or force the use of color codes "
+ "when printing the command-line UI. Unless forced, "
+ "colors will only be printed if STDOUT is a TTY "
+ "[Default is '%default']")
+ parser.add_option_group(group)
+
+
+def get_ui(ui_name):
+ """Returns a UI instance by name, using the choices allowed by
+ the 'add_optiongroup' function. See keys in 'UI_TYPES'."""
+ ui_name = ui_name.title()
+ if ui_name not in UI_TYPES:
+ raise ValueError("Unknown UI type %r" % (ui_name,))
+ return UI_TYPES[ui_name]()
+
+
+def set_ui_colors(choice):
+ import pypeline.common.console as console
+ choice = choice.lower()
+ if choice == "on":
+ console.set_color_output(console.COLORS_ON)
+ elif choice == "off":
+ console.set_color_output(console.COLORS_OFF)
+ elif choice == "force":
+ console.set_color_output(console.COLORS_FORCED)
+ else:
+ raise ValueError("Unknown color setting %r" % (choice,))
+
+
+class CommandLine(object):
+ def __init__(self):
+ self._tty_settings = None
+
+ def __enter__(self):
+ assert not self._tty_settings
+ # False if the pipeline is being piped somewhere
+ if sys.stdin.isatty() and sys.stdout.isatty():
+ # False if the process is running in the background
+ if os.getpgrp() == os.tcgetpgrp(sys.stdout.fileno()):
+ try:
+ # Store old settings
+ self._tty_settings = termios.tcgetattr(sys.stdin)
+ # Disable echo
+ tty.setcbreak(sys.stdin.fileno())
+ except tty.error:
+ pass # Silently ignore failures
+
+ return self
+
+ def __exit__(self, _type, _value, _traceback):
+ if self._tty_settings:
+ # Restore settings (re-enable echo)
+ termios.tcsetattr(sys.stdin, termios.TCSADRAIN, self._tty_settings)
+
+ def process_key_presses(self, nodegraph, max_running):
+ if not self._tty_settings:
+ return max_running
+
+ help_printed = False
+ old_max_running = max_running
+ while self.poll_stdin():
+ character = sys.stdin.read(1)
+ if character == "+":
+ max_running = min(multiprocessing.cpu_count(), max_running + 1)
+ elif character == "-":
+ max_running = max(1, max_running - 1)
+ elif character in "lL":
+ pypeline.ui.print_info()
+ progress_printer = pypeline.ui.RunningUI()
+ progress_printer.refresh(nodegraph)
+ progress_printer.flush()
+ elif character in "hH":
+ if help_printed:
+ continue
+
+ help_printed = True
+ pypeline.ui.print_info("""
+Commands:
+ Key Function
+ h Prints this message.
+ l Lists the currently runnning nodes.
+ + Increases the maximum number of threads by one.
+ - Decreases the maximum number of threads by one; already running tasks
+ are NOT terminated if the current number of threads used exceeds the
+ resulting maximum.
+""")
+ else:
+ continue
+
+ if max_running != old_max_running:
+ pypeline.ui.print_debug("Maximum number of threads changed "
+ "from %i to %i."
+ % (old_max_running, max_running))
+
+ return max_running
+
+ @classmethod
+ def poll_stdin(cls):
+ return select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], [])
+
+
+class BaseUI(object):
+ """UI base class.
+
+ Can be initialized, but does nothing but collect stats about
+ the pipeline. Subclasses should override at least one of
+ (but still call the BaseUI function) the functions 'flush',
+ 'finalize', and/or 'state_changed'.
+
+ In addition, the class contains the following properties:
+ - states -- List containing the observed number of states
+ for a state-value corresponding to the index
+ - threads -- Est. number of threads used by running nodes.
+
+ These properties should be treated as read-only.
+ """
+
+ def __init__(self):
+ """Basic initializer; must be called in subclasses."""
+ self.states = []
+ self.threads = 0
+ self._start_time = None
+ self._end_time = None
+ self._updated = True
+
+ def flush(self):
+ """Called by the user of the UI to ensure that the UI to print
+ the current state of the pipeline / changes to pipeline / etc.
+
+ Returns true if node-states have changed since last update.
+ """
+ if self._updated:
+ self._updated = False
+ return True
+ return False
+
+ def finalize(self):
+ """Called by the pipeline at the termination of a run. By default,
+ this function prints the location of the log-file if one was created
+ during the run (e.g. if there were errors), and a summary of all nodes.
+ """
+ runtime = (self._end_time or 0) - (self._start_time or 0)
+
+ if self.states[self.ERROR]:
+ print_err("Done; but errors were detected ...")
+ else:
+ print_info("Done ...")
+
+ print_info()
+ rows = [(" Number of nodes:", sum(self.states)),
+ (" Number of done nodes:", self.states[self.DONE]),
+ (" Number of runable nodes:", self.states[self.RUNABLE]),
+ (" Number of queued nodes:", self.states[self.QUEUED]),
+ (" Number of outdated nodes:", self.states[self.OUTDATED]),
+ (" Number of failed nodes:", self.states[self.ERROR]),
+ (" Pipeline runtime:", _fmt_runtime(round(runtime)))]
+
+ for line in text.padded_table(rows):
+ print_info(line)
+
+ print_info()
+ print_info("Use --list-output-files to view status of output files.")
+
+ logfile = pypeline.logger.get_logfile()
+ if logfile:
+ print_debug("Log-file located at %r" % (logfile,))
+
+ print_info()
+
+ def refresh(self, nodegraph):
+ """Called when the nodegraph has refreshed, causing state-counts
+ to be recalculated."""
+ self._updated = True
+ self.states, self.threads \
+ = self._count_states(nodegraph, nodegraph.iterflat())
+
+ def state_changed(self, node, old_state, new_state, _is_primary):
+ """Observer function for NodeGraph; counts states of non-meta nodes."""
+ self._updated = True
+ if not isinstance(node, MetaNode):
+ self.states[old_state] -= 1
+ self.states[new_state] += 1
+ if old_state == self.RUNNING:
+ self.threads -= node.threads
+ elif new_state == self.RUNNING:
+ self.threads += node.threads
+
+ if self._start_time is None:
+ self._start_time = time.time()
+ self._end_time = time.time()
+
+ @classmethod
+ def _count_states(cls, nodegraph, nodes):
+ """Counts the number of each state observed for a set of nodes, and
+ returns these as a list, as well as the estimated number of threads
+ being used by running nodes.
+
+ If 'meta' is true, these are considered to be the subnodes of a
+ MetaNode; in that case, MetaNode(s) themselves are not counted, but
+ their subnodes are counted for the first level encountered."""
+ states = [0] * nodegraph.NUMBER_OF_STATES
+ threads = 0
+
+ for node in nodes:
+ if not isinstance(node, MetaNode):
+ state = nodegraph.get_node_state(node)
+ states[state] += 1
+ if state == nodegraph.RUNNING:
+ threads += node.threads
+
+ return states, threads
+
+ @classmethod
+ def _describe_states(cls, states, threads=0):
+ """Returns a human readable summary of the states
+ given to the function. 'states' is expected to be
+ a list/tuple such as that produced by the
+ '_count_states' function."""
+ run_tmpl = "running"
+ if threads > 1:
+ run_tmpl = "%s using ~%i threads" % (run_tmpl, threads)
+ elif threads == 1:
+ run_tmpl = "%s using ~1 thread" % (run_tmpl,)
+
+ fields = [(run_tmpl, states[cls.RUNNING]),
+ ("outdated", states[cls.OUTDATED]),
+ ("failed", states[cls.ERROR])]
+
+ line = []
+ for (name, value) in fields:
+ if value:
+ line.append("%i %s" % (value, name))
+
+ line.append("%i done of %i tasks"
+ % (states[cls.DONE],
+ sum(states)))
+
+ return ", ".join(line)
+
+ DONE = pypeline.nodegraph.NodeGraph.DONE
+ RUNNING = pypeline.nodegraph.NodeGraph.RUNNING
+ RUNABLE = pypeline.nodegraph.NodeGraph.RUNABLE
+ QUEUED = pypeline.nodegraph.NodeGraph.QUEUED
+ OUTDATED = pypeline.nodegraph.NodeGraph.OUTDATED
+ ERROR = pypeline.nodegraph.NodeGraph.ERROR
+
+
+class RunningUI(BaseUI):
+ """Prints a summary, and the list of running nodes every
+ time 'flush' is called."""
+
+ def __init__(self):
+ BaseUI.__init__(self)
+ self._running_nodes = []
+
+ def flush(self):
+ """See BaseUI.flush."""
+ if BaseUI.flush(self) and self._running_nodes:
+ self._print_header(self.states, self.threads)
+ for node in sorted(map(str, self._running_nodes)):
+ print_info(" - %s" % (node,))
+ print_info()
+
+ def refresh(self, nodegraph):
+ """See BaseUI.refresh."""
+ BaseUI.refresh(self, nodegraph)
+ self._running_nodes = []
+ for node in nodegraph.iterflat():
+ if nodegraph.get_node_state(node) == self.RUNNING \
+ and not isinstance(node, MetaNode):
+ self._running_nodes.append(node)
+
+ def state_changed(self, node, old_state, new_state, is_primary):
+ """See BaseUI.state_changed."""
+ BaseUI.state_changed(self, node, old_state, new_state, is_primary)
+ if not isinstance(node, MetaNode):
+ if old_state == self.RUNNING:
+ self._running_nodes.remove(node)
+ elif new_state == self.RUNNING:
+ self._running_nodes.append(node)
+
+ @classmethod
+ def _print_header(cls, states, threads):
+ print_msg(datetime.datetime.now().strftime("%F %T"))
+ print_msg("Pipeline; %s (press 'h' for help):"
+ % cls._describe_states(states, threads))
+ logfile = pypeline.logger.get_logfile()
+ if logfile:
+ print_debug(" Log-file located at %r" % (logfile,))
+
+
+class ProgressUI(BaseUI):
+ """Progress based UI: Prints nodes when they start running; they finish
+ running; or when they fail running. Changes to state resulting from the
+ above is not printed. Every 25th update is followed by a summary of the
+ current total progress."""
+
+ # Print a summery of the current state very N events
+ _SUMMARY_EVERY = 25
+
+ def __init__(self):
+ self._refresh_count = ProgressUI._SUMMARY_EVERY
+ self._runtimes = {}
+ BaseUI.__init__(self)
+
+ def refresh(self, nodegraph):
+ """See BaseUI.refresh."""
+ BaseUI.refresh(self, nodegraph)
+ self._print_summary()
+
+ def state_changed(self, node, old_state, new_state, is_primary):
+ """See BaseUI.state_changed."""
+ BaseUI.state_changed(self, node, old_state, new_state, is_primary)
+ if is_primary and (new_state in self._DESCRIPTIONS):
+ self._print_state(node, new_state)
+
+ self._refresh_count -= 1
+ if (self._refresh_count <= 0) or (new_state == self.ERROR):
+ self._refresh_count = ProgressUI._SUMMARY_EVERY
+ self._print_summary()
+
+ def _print_summary(self):
+ """Prints a summary of the pipeline progress."""
+ time_label = datetime.datetime.now().strftime("%T")
+ description = self._describe_states(self.states, self.threads)
+ print_msg("\n%s Pipeline: %s (press 'h' for help):"
+ % (time_label, description))
+ logfile = pypeline.logger.get_logfile()
+ if logfile:
+ print_debug("Log-file located at %r" % (logfile,))
+
+ def _print_state(self, node, new_state):
+ state_label, print_func = self._DESCRIPTIONS[new_state]
+ if new_state == self.RUNNING:
+ self._runtimes[node] = time.time()
+ elif new_state in (self.RUNNING, self.DONE, self.ERROR):
+ state_label = "%s (%s)" % (state_label, self._get_runtime(node))
+
+ time_label = datetime.datetime.now().strftime("%T")
+ print_func("%s %s: %s" % (time_label, state_label, node))
+
+ def _get_runtime(self, node):
+ current_time = time.time()
+ runtime = int(current_time - self._runtimes.pop(node, current_time))
+ return _fmt_runtime(runtime)
+
+ _DESCRIPTIONS = {
+ BaseUI.DONE: ("Finished", print_disabled),
+ BaseUI.RUNNING: ("Started", print_info),
+ BaseUI.ERROR: ("Failed", print_err),
+ }
+
+
+class SummaryUI(BaseUI):
+ def __init__(self):
+ self._max_len = 0
+ self._starting_time = time.time()
+ self._new_error = False
+ BaseUI.__init__(self)
+
+ def state_changed(self, node, old_state, new_state, is_primary):
+ BaseUI.state_changed(self, node, old_state, new_state, is_primary)
+ self._new_error |= (new_state == self.ERROR and is_primary)
+
+ def flush(self):
+ if BaseUI.flush(self):
+ time_label = datetime.datetime.now().strftime("%T")
+ runtime = _fmt_runtime(int(time.time() - self._starting_time))
+ description = self._describe_states(self.states, self.threads)
+ message = "%s Pipeline: %s in %s (press 'h' for help)." \
+ % (time_label, description, runtime)
+
+ self._max_len = max(len(message), self._max_len)
+ print_msg("\r%s" % (message.ljust(self._max_len),), end="")
+
+ logfile = pypeline.logger.get_logfile()
+ if logfile and self._new_error:
+ print_debug("\nLog-file located at %r" % (logfile,))
+ self._new_error = False
+ sys.stdout.flush()
+
+ def finalize(self):
+ print_msg()
+ BaseUI.finalize(self)
+
+
+def _fmt_runtime(runtime):
+ if runtime >= 3600:
+ fmt = "{hours}:{mins:02}:{secs:02.1f}s"
+ elif runtime >= 60:
+ fmt = "{mins}:{secs:02.1f}s"
+ else:
+ fmt = "{secs:.1f}s"
+
+ return fmt.format(hours=int(runtime) // 3600,
+ mins=(int(runtime) // 60) % 60,
+ secs=(runtime % 60.0))
+
+
+# No longer provided
+VerboseUI = RunningUI
+QuietUI = RunningUI
+
+# Different types of UIs
+UI_TYPES = {
+ "Verbose": VerboseUI,
+ "Quiet": RunningUI,
+ "Running": RunningUI,
+ "Progress": ProgressUI,
+ "Summary": SummaryUI,
+}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/metabit.git
More information about the debian-med-commit
mailing list