QIIME: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
No edit summary
Line 24: Line 24:
}}
}}


<translate>
Building image of the latest version of qiime:<!--T:16-->
Building image of the latest version of qiime:<!--T:16-->
</translate>


<translate>
{{Commands
{{Commands
|module load singularity
|module load singularity
Line 32: Line 33:
}}
}}


<translate>
<!--T:21-->
<!--T:21-->
This build step may take over an hour, but you only need do this once.  Save the image file (<code>qiime2-2019.10.sif</code> in this example)
This build step may take over an hour, but you only need do this once.  Save the image file (<code>qiime2-2019.10.sif</code> in this example)
Line 38: Line 40:
<!--T:17-->
<!--T:17-->
Then run your code as described at [[Singularity]].  Typically you will run each QIIME command in a <code>singularity exec</code> statement:
Then run your code as described at [[Singularity]].  Typically you will run each QIIME command in a <code>singularity exec</code> statement:
</translate>


<!--T:22-->
{{Commands
{{Commands
|singularity exec qiime2-2019.10.sif <your QIIME command>
|singularity exec qiime2-2019.10.sif <your QIIME command>
}}
}}


<translate>
<!--T:23-->
<!--T:23-->
So your [[Running jobs|SBATCH]] script might look something like this:
So your [[Running jobs|SBATCH]] script might look something like this:


<!--T:24-->
</translate>
<pre>
<pre>
#!/bin/bash
#!/bin/bash
Line 53: Line 57:
#SBATCH --account=def-someuser
#SBATCH --account=def-someuser


<!--T:25-->
singularity exec -B $PWD:/home -B /scratch/someuser:/outputs \
singularity exec -B $PWD:/home -B /scratch/someuser:/outputs \
   -B /projects/someuser/path/to/inputs:/inputs qiime2-2019.10.sif \
   -B /projects/someuser/path/to/inputs:/inputs qiime2-2019.10.sif \
Line 60: Line 63:
   --output-path /outputs/some_output_feature.qza
   --output-path /outputs/some_output_feature.qza


<!--T:26-->
singularity exec -B $PWD:/home -B /scratch/someuser:/outputs \
singularity exec -B $PWD:/home -B /scratch/someuser:/outputs \
   -B /projects/someuser/path/to/inputs:/inputs qiime2-2019.10.sif \
   -B /projects/someuser/path/to/inputs:/inputs qiime2-2019.10.sif \
Line 69: Line 71:
   --output-path /outputs/some_output_ref-taxonomy.qza
   --output-path /outputs/some_output_ref-taxonomy.qza


<!--T:27-->
singularity exec -B $PWD:/home -B /scratch/someuser:/outputs \
singularity exec -B $PWD:/home -B /scratch/someuser:/outputs \
   -B /projects/someuser/path/to/inputs:/inputs qiime2-2019.10.sif \
   -B /projects/someuser/path/to/inputs:/inputs qiime2-2019.10.sif \
Line 78: Line 79:
</pre>
</pre>


<translate>
<!--T:28-->
<!--T:28-->
Note that it is important to use the [[Singularity#Bind_mounts|bind]] option (<tt>-B</tt>) with each folder you want to work with when you run programs in your container. For more information about Singularity, you can watch the recorded [https://www.youtube.com/watch?v=kYb0aXS5DEE Singularity webinar].
Note that it is important to use the [[Singularity#Bind_mounts|bind]] option (<tt>-B</tt>) with each folder you want to work with when you run programs in your container. For more information about Singularity, you can watch the recorded [https://www.youtube.com/watch?v=kYb0aXS5DEE Singularity webinar].
Line 88: Line 90:
This can be worked around by setting a time zone before invoking Singularity:
This can be worked around by setting a time zone before invoking Singularity:


<!--T:19-->
</translate>
{{Commands
{{Commands
|export TZ{{=}}'UTC'
|export TZ{{=}}'UTC'
Line 94: Line 96:
}}
}}


<translate>
=References = <!--T:11-->
=References = <!--T:11-->



Revision as of 17:18, 7 February 2022

Other languages:

QIIME (pronounced chime) stands for Quantitative Insights Into Microbial Ecology, is an open-source bioinformatics pipeline for performing microbiome analysis from raw DNA sequencing data. QIIME is designed to take users from raw sequencing data generated on Illumina or other platforms to publication-quality graphics and statistics. This includes demultiplexing and quality filtering, OTU picking, taxonomic assignment, phylogenetic reconstruction, diversity analyses and visualizations. QIIME has been applied to studies based on billions of sequences from tens of thousands of samples.

Note: QIIME 2 has replaced QIIME 1 as of January 1, 2018; version 1 is no longer supported.

Note: As of February, 2020, due to various issues generated by Conda environments in our HPC systems, installation using Anaconda or Miniconda is no longer supported.

Installation

QIIME2 can be installed using Singularity or using EasyBuild. Singularity is strongly preferred since it does not generate many thousands of files in your home directory, potentially causing you to exceed the disk quota limit on the number of files.

Using Singularity

The QIIME2 developers publish images on Docker Hub. In order to use one of these images on our systems you must first build a Singularity image:

[name@server ~]$ module load singularity
[name@server ~]$ singularity build qiime2-2019.10.sif docker://qiime2/core:2019.10


Building image of the latest version of qiime:

[name@server ~]$ module load singularity
[name@server ~]$ singularity build qiime2-2021.11.sif docker://quay.io/qiime2/core:2021.11


This build step may take over an hour, but you only need do this once. Save the image file (qiime2-2019.10.sif in this example) for later re-use.

Then run your code as described at Singularity. Typically you will run each QIIME command in a singularity exec statement:


[name@server ~]$ singularity exec qiime2-2019.10.sif <your QIIME command>


So your SBATCH script might look something like this:

#!/bin/bash
#SBATCH --time=15:00:00
#SBATCH --account=def-someuser

singularity exec -B $PWD:/home -B /scratch/someuser:/outputs \
  -B /projects/someuser/path/to/inputs:/inputs qiime2-2019.10.sif \
  qiime tools import --type 'FeatureData[Sequence]' \
  --input-path /inputs/some_fastafile.fa \
  --output-path /outputs/some_output_feature.qza

singularity exec -B $PWD:/home -B /scratch/someuser:/outputs \
  -B /projects/someuser/path/to/inputs:/inputs qiime2-2019.10.sif \
  qiime tools import \
  --type 'FeatureData[Taxonomy]' \
  --input-format HeaderlessTSVTaxonomyFormat \
  --input-path /inputs/some_taxonomy_file.tax \
  --output-path /outputs/some_output_ref-taxonomy.qza

singularity exec -B $PWD:/home -B /scratch/someuser:/outputs \
  -B /projects/someuser/path/to/inputs:/inputs qiime2-2019.10.sif \
  qiime feature-classifier fit-classifier-naive-bayes \
  --i-reference-reads  /outputs/some_output_feature.qza \
  --i-reference-taxonomy /outputs/some_output_ref-taxonomy.qza \
  --o-classifier /outputs/some_output_classifier.qza

Note that it is important to use the bind option (-B) with each folder you want to work with when you run programs in your container. For more information about Singularity, you can watch the recorded Singularity webinar.

On first importing data into QIIME format you may receive an error ending with a message like this:

Timezone offset does not match system offset: 0 != -18000. Please, check your config files.

This can be worked around by setting a time zone before invoking Singularity:

[name@server ~]$ export TZ='UTC'
[name@server ~]$ singularity exec qiime2-2019.10.sif qiime tools import ...


References

QIIME homepage