Commit 7343e34a authored by Erwan DELAGE's avatar Erwan DELAGE
Browse files

Merge branch 'develop' : Qiime2 2020.6

parents cb9b312f 654bc3a3
......@@ -43,6 +43,13 @@
},
"required": ["p-sampling-depth"]
},
"beta_group_significance": {
"type": "object",
"properties": {
"m-metadata-column" : { "type": "string" }
},
"required": ["m-metadata-column"]
},
"alpha-rarefaction": {
"type": "object",
"properties": {
......
......@@ -280,7 +280,7 @@ def check_system():
OS = "linux"
# Conda's environment files
qiime2_version = "2019.10-py36"
qiime2_version = "2020.6-py36"
global qiime2_yml
qiime2_yml = "conda/qiime2-" + qiime2_version + "-" + OS + "-conda.yml"
......@@ -348,7 +348,7 @@ def set_multithreading():
set_default_value("dada2", "p-n-threads", config["global"]["nbthreads"])
if "diversity" in config:
set_default_value("diversity", "p-n-jobs", config["global"]["nbthreads"])
set_default_value("diversity", "p-n-jobs-or-threads", config["global"]["nbthreads"])
set_default_value("phylogeny", "p-n-threads", config["global"]["nbthreads"])
if "taxonomy" in config:
......@@ -481,7 +481,7 @@ def getInput(tool, given_file=""):
else:
return getOutput("merge_denoiser_results", "table.qza") if config["global"]["parallel-samples"] else getOutput("denoiser", given_file)
if tool == "alpha_group_significance":
if tool == "alpha_group_significance" or tool == "beta_group_significance":
return getOutput("diversity", given_file)
if tool == "alpha_rarefaction":
......@@ -499,7 +499,7 @@ def getInput(tool, given_file=""):
return getOutput("merge_denoiser_results", "table.qza") if config["global"]["parallel-samples"] else getOutput("denoiser", given_file)
if tool == "ancom":
return getOutput("merge_denoiser_results", "table.qza") if config["global"]["parallel-samples"] else getOutput("denoiser", given_file)
return getOutput("taxorank_tables", "{taxorank}_table.qza")
def getOutput(tool, given_file=""):
......@@ -559,16 +559,12 @@ def pairedOrSingle(tool):
if config["global"]["library-type"] == "paired-end":
if tool == "dada2":
return "denoise-paired"
elif tool == "quality_filter":
return "q-score-joined"
elif tool == "cutadapt":
return "trim-paired"
else:
if tool == "dada2":
return "denoise-single"
elif tool == "quality_filter":
return "q-score"
elif tool == "cutadapt":
return "trim-single"
......@@ -610,12 +606,16 @@ def format_all_rule():
all_input.append(getOutput("diversity", "pcoa/weighted_unifrac/emperor.html"))
all_input.append(getOutput("alpha_group_significance", "shannon-group-significance.qzv"))
if "beta_group_significance" in config.keys():
all_input.append(getOutput("beta_group_significance", "bray_curtis_distance_matrix/index.html"))
if "taxonomy" in config.keys():
all_input.append(getOutput("taxonomy", "barplot/index.html"))
all_input.append(getOutput("summarize_table", "plots"))
all_input += expand(getOutput("taxorank_tables", "{taxorank}_table.tsv"), taxorank=["phylum", "class", "order", "family", "genus", "species"])
if "ancom" in config.keys():
all_input.append(getOutput("ancom", "volcano/index.html"))
all_input += expand(getOutput("ancom", "{taxorank}/volcano/index.html"), taxorank=["phylum", "class", "order", "family", "genus", "species", "asv"])
return all_input
......@@ -737,11 +737,10 @@ rule quality_filter:
directory(getOutput("quality_filter", "html")),
getOutput("quality_filter", "stats/stats.csv")
params: options = getOptions("quality-filter"),
lib_type = pairedOrSingle("quality_filter")
params: options = getOptions("quality-filter")
conda: qiime2_yml
shell: """
qiime quality-filter {params.lib_type} --i-demux {input} --o-filtered-sequences {output[0]} --o-filter-stats {output[1]} {params.options}
qiime quality-filter q-score --i-demux {input} --o-filtered-sequences {output[0]} --o-filter-stats {output[1]} {params.options}
qiime metadata tabulate --m-input-file {output[1]} --o-visualization {output[2]}
qiime tools export --input-path {output[2]} --output-path {output[3]}
qiime tools export --input-path {output[1]} --output-path `dirname {output[4]}`
......@@ -963,7 +962,7 @@ if "denoiser" in config["global"]:
logfile = config["global"]["outdir"] + "/" + LOGFILE
conda: qiime2_yml
shell: """
qiime diversity core-metrics-phylogenetic --i-phylogeny {input[0]} --i-table {input[1]} --m-metadata-file {input[2]} --o-rarefied-table {output[0]} --o-faith-pd-vector {output[1]} --o-observed-otus-vector {output[2]} --o-shannon-vector {output[3]} --o-evenness-vector {output[4]} --o-unweighted-unifrac-distance-matrix {output[5]} --o-weighted-unifrac-distance-matrix {output[6]} --o-jaccard-distance-matrix {output[7]} --o-bray-curtis-distance-matrix {output[8]} --o-unweighted-unifrac-pcoa-results {output[9]} --o-weighted-unifrac-pcoa-results {output[10]} --o-jaccard-pcoa-results {output[11]} --o-bray-curtis-pcoa-results {output[12]} --o-unweighted-unifrac-emperor {output[13]} --o-weighted-unifrac-emperor {output[14]} --o-jaccard-emperor {output[15]} --o-bray-curtis-emperor {output[16]} {params.options}
qiime diversity core-metrics-phylogenetic --i-phylogeny {input[0]} --i-table {input[1]} --m-metadata-file {input[2]} --o-rarefied-table {output[0]} --o-faith-pd-vector {output[1]} --o-observed-features-vector {output[2]} --o-shannon-vector {output[3]} --o-evenness-vector {output[4]} --o-unweighted-unifrac-distance-matrix {output[5]} --o-weighted-unifrac-distance-matrix {output[6]} --o-jaccard-distance-matrix {output[7]} --o-bray-curtis-distance-matrix {output[8]} --o-unweighted-unifrac-pcoa-results {output[9]} --o-weighted-unifrac-pcoa-results {output[10]} --o-jaccard-pcoa-results {output[11]} --o-bray-curtis-pcoa-results {output[12]} --o-unweighted-unifrac-emperor {output[13]} --o-weighted-unifrac-emperor {output[14]} --o-jaccard-emperor {output[15]} --o-bray-curtis-emperor {output[16]} {params.options}
qiime tools export --input-path {output[16]} --output-path {output.braycurtis_pcoa}
qiime tools export --input-path {output[15]} --output-path {output.jaccard_pcoa}
qiime tools export --input-path {output[13]} --output-path {output.unweighted_unifrac_pcoa}
......@@ -998,6 +997,33 @@ if "denoiser" in config["global"]:
qiime tools export --input-path {output[3]} --output-path `dirname {output[7]}`
"""
rule beta_group_significance:
input: uw_unifrac = getInput("beta_group_significance", "unweighted_unifrac_distance_matrix.qza"),
w_unifrac = getInput("beta_group_significance", "weighted_unifrac_distance_matrix.qza"),
jaccard = getInput("beta_group_significance", "jaccard_distance_matrix.qza"),
bray_curtis = getInput("beta_group_significance", "bray_curtis_distance_matrix.qza"),
metadata = config["global"]["context"]
output: getOutput("beta_group_significance", "unweighted_unifrac_distance_matrix.qzv"),
getOutput("beta_group_significance", "weighted_unifrac_distance_matrix.qzv"),
getOutput("beta_group_significance", "jaccard_distance_matrix.qzv"),
getOutput("beta_group_significance", "bray_curtis_distance_matrix.qzv"),
getOutput("beta_group_significance", "unweighted_unifrac_distance_matrix/index.html"),
getOutput("beta_group_significance", "weighted_unifrac_distance_matrix/index.html"),
getOutput("beta_group_significance", "jaccard_distance_matrix/index.html"),
getOutput("beta_group_significance", "bray_curtis_distance_matrix/index.html")
params: options = getOptions("beta_group_significance"),
conda: qiime2_yml
shell: """
qiime diversity beta-group-significance --i-distance-matrix {input.uw_unifrac} --m-metadata-file {input.metadata} {params.options} --o-visualization {output[0]}
qiime diversity beta-group-significance --i-distance-matrix {input.w_unifrac} --m-metadata-file {input.metadata} {params.options} --o-visualization {output[1]}
qiime diversity beta-group-significance --i-distance-matrix {input.jaccard} --m-metadata-file {input.metadata} {params.options} --o-visualization {output[2]}
qiime diversity beta-group-significance --i-distance-matrix {input.bray_curtis} --m-metadata-file {input.metadata} {params.options} --o-visualization {output[3]}
qiime tools export --input-path {output[0]} --output-path `dirname {output[4]}`
qiime tools export --input-path {output[1]} --output-path `dirname {output[5]}`
qiime tools export --input-path {output[2]} --output-path `dirname {output[6]}`
qiime tools export --input-path {output[3]} --output-path `dirname {output[7]}`
"""
# Write the alpha rarefaction max depth parameter into a file
rule prepare_alpha_rarefaction:
input: getInput("alpha_rarefaction", "abundance_table.tsv")
......@@ -1060,6 +1086,39 @@ if "denoiser" in config["global"]:
echo "\nTaxonomy.....OK" >> {params.logfile}
"""
rule build_taxorank_tables_qza:
input: asv_table = getInput("summarize_table", "table.qza"),
taxo = getOutput("taxonomy", "taxonomy.qza")
output: phylum_qza = getOutput("taxorank_tables", "phylum_table.qza"),
class_qza = getOutput("taxorank_tables", "class_table.qza"),
order_qza = getOutput("taxorank_tables", "order_table.qza"),
family_qza = getOutput("taxorank_tables", "family_table.qza"),
genus_qza = getOutput("taxorank_tables", "genus_table.qza"),
species_qza = getOutput("taxorank_tables", "species_table.qza"),
asv_qza = getOutput("taxorank_tables", "asv_table.qza")
conda: qiime2_yml
shell: """
qiime taxa collapse --i-table {input.asv_table} --i-taxonomy {input.taxo} --p-level 2 --o-collapsed-table {output.phylum_qza}
qiime taxa collapse --i-table {input.asv_table} --i-taxonomy {input.taxo} --p-level 3 --o-collapsed-table {output.class_qza}
qiime taxa collapse --i-table {input.asv_table} --i-taxonomy {input.taxo} --p-level 4 --o-collapsed-table {output.order_qza}
qiime taxa collapse --i-table {input.asv_table} --i-taxonomy {input.taxo} --p-level 5 --o-collapsed-table {output.family_qza}
qiime taxa collapse --i-table {input.asv_table} --i-taxonomy {input.taxo} --p-level 6 --o-collapsed-table {output.genus_qza}
qiime taxa collapse --i-table {input.asv_table} --i-taxonomy {input.taxo} --p-level 7 --o-collapsed-table {output.species_qza}
# Copy the ASV table in the same folder as other taxorank tables so that ANCOM will be run on each table
cp {input.asv_table} {output.asv_qza}
"""
rule build_taxo_rank_tables_tsv:
input: getOutput("taxorank_tables", "{taxorank}.qza")
output: getOutput("taxorank_tables", "{taxorank}.tsv")
conda: qiime2_yml
shell: """
qiime tools export --input-path {input} --output-path `dirname {output}`/{wildcards.taxorank}
biom convert -i `dirname {output}`/{wildcards.taxorank}/feature-table.biom -o `dirname {output}`/{wildcards.taxorank}.tsv --to-tsv
rm -r `dirname {output}`/{wildcards.taxorank}
"""
rule prevalence_abundance:
input: getOutput("export_table_tsv", "abundance_table.tsv"),
getOutput("taxonomy", "taxons/metadata.tsv")
......@@ -1073,12 +1132,12 @@ if "denoiser" in config["global"]:
rule ancom:
input:
getInput("ancom", "table.qza"),
getInput("ancom", "{taxorank}.qza"),
config["global"]["context"]
output:
getOutput("ancom", "table-pseudocount.qza"),
getOutput("ancom", "ancom.qzv"),
getOutput("ancom", "volcano/index.html")
getOutput("ancom", "{taxorank}/table-pseudocount.qza"),
getOutput("ancom", "{taxorank}/ancom.qzv"),
getOutput("ancom", "{taxorank}/volcano/index.html")
conda: qiime2_yml
params: options = getOptions("ancom")
shell: """
......
channels:
- qiime2/label/r2019.10
- conda-forge
- bioconda
- defaults
dependencies:
- _libgcc_mutex=0.1
- _r-mutex=1.0.1
- alsa-lib=1.1.5
- arb-bio-tools=6.0.6
- asn1crypto=1.2.0
- atomicwrites=1.3.0
- attrs=19.3.0
- backcall=0.1.0
- bibtexparser=1.1.0
- binutils_impl_linux-64=2.31.1
- binutils_linux-64=2.31.1
- bioconductor-biobase=2.42.0
- bioconductor-biocgenerics=0.28.0
- bioconductor-biocparallel=1.16.6
- bioconductor-biostrings=2.50.2
- bioconductor-dada2=1.10.0
- bioconductor-delayedarray=0.8.0
- bioconductor-genomeinfodb=1.18.1
- bioconductor-genomeinfodbdata=1.2.1
- bioconductor-genomicalignments=1.18.1
- bioconductor-genomicranges=1.34.0
- bioconductor-iranges=2.16.0
- bioconductor-rsamtools=1.34.0
- bioconductor-s4vectors=0.20.1
- bioconductor-shortread=1.40.0
- bioconductor-summarizedexperiment=1.12.0
- bioconductor-xvector=0.22.0
- bioconductor-zlibbioc=1.28.0
- biom-format=2.1.7
- blas=2.14
- blast=2.9.0
- bleach=3.1.0
- bokeh=1.3.4
- boost=1.68.0
- boost-cpp=1.68.0
- bwidget=1.9.13
- bzip2=1.0.8
- ca-certificates=2019.9.11
- cachecontrol=0.12.5
- cairo=1.16.0
- certifi=2019.9.11
- cffi=1.13.1
- chardet=3.0.4
- click=7.0
- cryptography=2.7
- curl=7.65.3
- cutadapt=2.6
- cycler=0.10.0
- cython=0.29.13
- dbus=1.13.6
- deblur=1.1.0
- decorator=4.4.1
- defusedxml=0.6.0
- dendropy=4.4.0
- dnaio=0.4
- emperor=1.0.0b20
- entrypoints=0.3
- expat=2.2.5
- fastcluster=1.1.25
- fasttree=2.1.10
- fontconfig=2.13.1
- freetype=2.10.0
- future=0.18.2
- gcc_impl_linux-64=7.3.0
- gcc_linux-64=7.3.0
- gettext=0.19.8.1
- gfortran_impl_linux-64=7.3.0
- gfortran_linux-64=7.3.0
- giflib=5.1.7
- glib=2.58.3
- gmp=6.1.2
- gneiss=0.4.6
- gnutls=3.6.5
- graphite2=1.3.13
- gsl=2.5
- gst-plugins-base=1.14.5
- gstreamer=1.14.5
- gxx_impl_linux-64=7.3.0
- gxx_linux-64=7.3.0
- h5py=2.10.0
- harfbuzz=2.4.0
- hdf5=1.10.5
- hdmedians=0.13
- hmmer=3.1b2
- icu=58.2
- idna=2.8
- ijson=2.5
- importlib_metadata=0.23
- ipykernel=5.1.3
- ipython=7.9.0
- ipython_genutils=0.2.0
- ipywidgets=7.5.1
- iqtree=1.6.12
- jedi=0.15.1
- jinja2=2.10.3
- joblib=0.14.0
- jpeg=9c
- jsonschema=3.1.1
- jupyter_client=5.3.3
- jupyter_core=4.5.0
- kiwisolver=1.1.0
- krb5=1.16.3
- lcms2=2.9
- libarbdb=6.0.6
- libblas=3.8.0
- libcblas=3.8.0
- libcurl=7.65.3
- libedit=3.1.20170329
- libffi=3.2.1
- libgcc=7.2.0
- libgcc-ng=9.1.0
- libgfortran-ng=7.3.0
- libiconv=1.15
- liblapack=3.8.0
- liblapacke=3.8.0
- libopenblas=0.3.7
- libpng=1.6.37
- libsodium=1.0.17
- libssh2=1.8.2
- libstdcxx-ng=9.1.0
- libtiff=4.0.10
- libuuid=2.32.1
- libxcb=1.13
- libxml2=2.9.9
- lockfile=0.12.2
- lz4-c=1.8.3
- mafft=7.310
- make=4.2.1
- markupsafe=1.1.1
- matplotlib=3.1.0
- matplotlib-base=3.1.0
- mistune=0.8.4
- more-itertools=7.2.0
- msgpack-python=0.6.2
- natsort=6.0.0
- nbconvert=5.6.1
- nbformat=4.4.0
- ncurses=6.1
- nettle=3.4.1
- networkx=2.4
- nose=1.3.7
- notebook=6.0.1
- numpy=1.17.3
- olefile=0.46
- openjdk=11.0.1
- openssl=1.1.1c
- packaging=19.2
- pandas=0.25.2
- pandoc=2.7.3
- pandocfilters=1.4.2
- pango=1.40.14
- parso=0.5.1
- patsy=0.5.1
- pcre=8.43
- perl=5.26.2
- perl-archive-tar=2.32
- perl-carp=1.38
- perl-common-sense=3.74
- perl-compress-raw-bzip2=2.087
- perl-compress-raw-zlib=2.087
- perl-exporter=5.72
- perl-exporter-tiny=1.002001
- perl-extutils-makemaker=7.36
- perl-io-compress=2.087
- perl-io-zlib=1.10
- perl-json=4.02
- perl-json-xs=2.34
- perl-list-moreutils=0.428
- perl-list-moreutils-xs=0.428
- perl-pathtools=3.75
- perl-scalar-list-utils=1.52
- perl-types-serialiser=1.0
- perl-xsloader=0.24
- pexpect=4.7.0
- pickleshare=0.7.5
- pigz=2.3.4
- pillow=6.2.1
- pip=19.3.1
- pixman=0.38.0
- pluggy=0.12.0
- prometheus_client=0.7.1
- prompt_toolkit=2.0.10
- psutil=5.6.3
- pthread-stubs=0.4
- ptyprocess=0.6.0
- py=1.8.0
- pycparser=2.19
- pygments=2.4.2
- pyopenssl=19.0.0
- pyparsing=2.4.2
- pyqt=5.9.2
- pyrsistent=0.15.5
- pysocks=1.7.1
- pytest=5.2.2
- python=3.6.7
- python-dateutil=2.8.0
- pytz=2019.3
- pyyaml=5.1.2
- pyzmq=18.1.0
- q2-alignment=2019.10.0
- q2-composition=2019.10.0
- q2-cutadapt=2019.10.0
- q2-dada2=2019.10.0
- q2-deblur=2019.10.0
- q2-demux=2019.10.0
- q2-diversity=2019.10.0
- q2-emperor=2019.10.0
- q2-feature-classifier=2019.10.0
- q2-feature-table=2019.10.0
- q2-fragment-insertion=2019.10.0
- q2-gneiss=2019.10.0
- q2-longitudinal=2019.10.0
- q2-metadata=2019.10.0
- q2-phylogeny=2019.10.0
- q2-quality-control=2019.10.0
- q2-quality-filter=2019.10.0
- q2-sample-classifier=2019.10.0
- q2-taxa=2019.10.0
- q2-types=2019.10.0
- q2-vsearch=2019.10.0
- q2cli=2019.10.0
- q2templates=2019.10.0
- qiime2=2019.10.0
- qt=5.9.7
- r-assertthat=0.2.1
- r-backports=1.1.5
- r-base=3.5.1
- r-bh=1.69.0_1
- r-bitops=1.0_6
- r-cli=1.1.0
- r-cluster=2.1.0
- r-colorspace=1.4_1
- r-crayon=1.3.4
- r-data.table=1.12.6
- r-digest=0.6.22
- r-ellipsis=0.3.0
- r-fansi=0.4.0
- r-formatr=1.7
- r-futile.logger=1.4.3
- r-futile.options=1.0.1
- r-ggplot2=3.2.1
- r-glue=1.3.1
- r-gtable=0.3.0
- r-hwriter=1.3.2
- r-labeling=0.3
- r-lambda.r=1.2.4
- r-lattice=0.20_38
- r-latticeextra=0.6_28
- r-lazyeval=0.2.2
- r-magrittr=1.5
- r-mass=7.3_51.4
- r-matrix=1.2_17
- r-matrixstats=0.55.0
- r-mgcv=1.8_29
- r-munsell=0.5.0
- r-nlme=3.1_141
- r-permute=0.9_5
- r-pillar=1.4.2
- r-pkgconfig=2.0.3
- r-plyr=1.8.4
- r-r6=2.4.0
- r-rcolorbrewer=1.1_2
- r-rcpp=1.0.2
- r-rcppparallel=4.4.4
- r-rcurl=1.95_4.12
- r-reshape2=1.4.3
- r-rlang=0.4.1
- r-scales=1.0.0
- r-snow=0.4_3
- r-stringi=1.4.3
- r-stringr=1.4.0
- r-tibble=2.1.3
- r-utf8=1.1.4
- r-vctrs=0.2.0
- r-vegan=2.5_6
- r-viridislite=0.3.0
- r-withr=2.1.2
- r-zeallot=0.1.0
- raxml=8.2.12
- readline=8.0
- requests=2.22.0
- scikit-bio=0.5.5
- scikit-learn=0.21.2
- scipy=1.3.1
- seaborn=0.9.0
- send2trash=1.5.0
- sepp=4.3.10
- setuptools=41.6.0
- sina=1.6.0
- sip=4.19.8
- six=1.12.0
- sortmerna=2.0
- sqlite=3.30.1
- statsmodels=0.10.1
- tbb=2019.9
- terminado=0.8.2
- testpath=0.4.2
- tk=8.6.9
- tktable=2.10
- tornado=6.0.3
- traitlets=4.3.3
- tzlocal=2.0.0
- unifrac=0.10.0
- urllib3=1.25.6
- vsearch=2.7.0
- wcwidth=0.1.7
- webencodings=0.5.1
- wheel=0.33.6
- widgetsnbextension=3.5.1
- xopen=0.8.4
- xorg-fixesproto=5.0
- xorg-inputproto=2.3.2
- xorg-kbproto=1.0.7
- xorg-libice=1.0.10
- xorg-libsm=1.2.3
- xorg-libx11=1.6.9
- xorg-libxau=1.0.9
- xorg-libxdmcp=1.1.3
- xorg-libxext=1.3.4
- xorg-libxfixes=5.0.3
- xorg-libxi=1.7.10
- xorg-libxrender=0.9.10
- xorg-libxtst=1.2.3
- xorg-recordproto=1.14.2
- xorg-renderproto=0.11.1
- xorg-xextproto=7.3.0
- xorg-xproto=7.0.31
- xz=5.2.4
- yaml=0.1.7
- zeromq=4.3.2
- zipp=0.6.0
- zlib=1.2.11
- zstd=1.4.3
channels:
- qiime2/label/r2019.10
- conda-forge
- bioconda
- defaults
dependencies:
- _r-mutex=1.0.1
- appnope=0.1.0
- arb-bio-tools=6.0.6
- asn1crypto=1.2.0
- atomicwrites=1.3.0
- attrs=19.3.0
- backcall=0.1.0
- bibtexparser=1.1.0
- bioconductor-biobase=2.42.0
- bioconductor-biocgenerics=0.28.0
- bioconductor-biocparallel=1.16.6
- bioconductor-biostrings=2.50.2
- bioconductor-dada2=1.10.0
- bioconductor-delayedarray=0.8.0
- bioconductor-genomeinfodb=1.18.1
- bioconductor-genomeinfodbdata=1.2.1
- bioconductor-genomicalignments=1.18.1
- bioconductor-genomicranges=1.34.0
- bioconductor-iranges=2.16.0
- bioconductor-rsamtools=1.34.0
- bioconductor-s4vectors=0.20.1
- bioconductor-shortread=1.40.0
- bioconductor-summarizedexperiment=1.12.0
- bioconductor-xvector=0.22.0
- bioconductor-zlibbioc=1.28.0
- biom-format=2.1.7
- blas=2.12
- blast=2.6.0
- bleach=3.1.0
- bokeh=1.3.4
- boost=1.67.0
- boost-cpp=1.67.0
- bwidget=1.9.13
- bzip2=1.0.8
- ca-certificates=2019.9.11
- cachecontrol=0.12.5
- cairo=1.14.12
- cctools=921
- certifi=2019.6.16
- cffi=1.13.1
- chardet=3.0.4
- clang=9.0.0
- clang_osx-64=9.0.0
- clangxx=9.0.0
- clangxx_osx-64=9.0.0
- click=7.0
- compiler-rt=9.0.0
- cryptography=2.7
- curl=7.65.3
- cutadapt=2.6
- cycler=0.10.0
- cython=0.29.13
- deblur=1.1.0
- decorator=4.4.1
- defusedxml=0.6.0
- dendropy=4.2.0
- dnaio=0.4
- emperor=1.0.0b20
- entrypoints=0.3
- fastcluster=1.1.25
- fasttree=2.1.10
- fontconfig=2.13.1
- freetype=2.10.0
- future=0.18.2
- gettext=0.19.8.1
- gfortran_osx-64=4.8.5
- glib=2.56.2
- gneiss=0.4.6
- graphite2=1.3.13
- h5py=2.10.0
- harfbuzz=1.9.0
- hdf5=1.10.5
- hdmedians=0.13
- hmmer=3.1b2
- icu=58.2
- idna=2.8
- ijson=2.5
- importlib_metadata=0.23
- ipykernel=5.1.3
- ipython=7.9.0
- ipython_genutils=0.2.0
- ipywidgets=7.5.1
- iqtree=1.6.12
- jedi=0.15.1
- jinja2=2.10.3
- joblib=0.14.0
- jpeg=9c
- jsonschema=3.1.1
- jupyter_client=5.3.3
- jupyter_core=4.5.0