top of page

16S profiling analysis pipeline (Illumina paired-end)

 

BMP advisory board recommend the use of this pipeline as a standard for 16S rRNA data analysis.

We are now working in order to improve this workflow besides making it easier for end-users. 

If you have any questions or suggestions, please contact Victor Pylro: victor.pylro@brmicrobiome.org, Leandro Lemos: lemosbioinfo@gmail.com or Luiz Roesch: luiz.roesch@brmicrobiome.org

 

Please, cite our efforts when using this pipeline: Data analysis for 16S microbial profiling from different benchtop sequencing platforms. J Microbiol Methods. 2014. doi: 10.1016/j.mimet.2014.08.018.

 

Also, remember to cite all others softwares applied here.

​

WE STRONGLY RECOMMEND USING THE BMPOS v2 TO EASILY PERFORMING ALL THE BELOW STEPS. TRY IT NOW!

​

Please, cite our efforts when using the BMPOS: BMPOS: a Flexible and User-Friendly Tool Sets for Microbiome Studies Microb Ecol. 2016. doi: 10.1007/s00248-016-0785-x.

Here, we provide the recommended pipeline for 16S profiling analysis for BMP users, from Illumina paired-end data.

 

This pipeline was optimized to using VSEARCH instead USEARCH. This made this pipeline more flexible and applicable

to processing larger datasets (USEARCH 32 bit - can only handle data of up to 4 Gb). 

 

What you need: CLICK HERE!

 

This example assumes reads in FASTQ format.

 

This page gives a complete pipeline to analyze 16S rRNA gene data. Of course, you should edit as needed for your reads and file locations (represented here as $PWD/). 

 

From Illumina paired-end reads (R1.fastq/R2.fastq/Barcode.fastq):  

OBS: for already demultiplexed Illumina data (each sample represented by one file), please contact us. We have a solution, and it will be available here soon.

 

1 - Take forward and reverse Illumina reads (R1.fastq and R2.fastq files) and joins them using the method fastq-join, together with updating the barcode file on QIIME 1.9.

 

join_paired_ends.py -f $PWD/forward_reads.fastq -r $PWD/reverse_reads.fastq -b $PWD/barcodes.fastq -o $PWD/joined.fastq

 

2 - Demultiplex .fastq sequence data, when barcodes and sequences are contained in two separate .fastq files. Here, we are "turning off" filter parameters, and storing the demultiplexed .fastq file (quality filtering will be done in the next step).

 

split_libraries_fastq.py -i $PWD/joined.fastq -b $PWD/barcode.fastq -o $PWD/slout/ -m $PWD/map.txt --rev_comp_mapping_barcodes --store_demultiplexed_fastq -r 999 -n 999 -q 0 -p 0.0001

 

3 - Quality filtering, length truncate, and convert to FASTA <<<USING VSEARCH>>>

 

vsearch --fastx_filter $PWD/slout/seqs.fastq --fastq_maxee 1.0 --fastq_trunclen 240 --fastaout reads.fa

 

4 - Change sequence header to make file compatible with further UPARSE steps <<<USING BMP PERL SCRIPT>>>. This script will generate your converted FASTA file.

 

bmp-Qiime2Uparse.pl -i $PWD/reads.fa -o reads_uparse.fa

 

5 - Dereplication <<<USING VSEARCH>>>

 

vsearch --derep_fulllength $PWD/reads_uparse.fa --output derep.fa --sizeout

 

6 - Abundance sort and discard singletons <<<USING VSEARCH>>>

 

vsearch --sortbysize $PWD/derep.fa --output sorted.fa --minsize 2

 

7 - OTU clustering using UPARSE method <<<USING VSEARCH>>>

 

vsearch --cluster_size $PWD/sorted.fa --consout otus1.fa --id 0.97

 

8 - Fasta Formatter <<<FASTX TOOLKIT SCRIPT>>>

 

fasta_formatter -i otus1.fa -o formated_otus1.fa

 

9 - Renamer <<<BMP SCRIPT>>>

 

bmp-otuName.pl -i formated_otus1.fa -o otus.fa

 

10 - Map reads back to OTU database <<<VSEARCH>>>

 

vsearch --usearch_global $PWD/reads_uparse.fa --db otus.fa --strand plus --id 0.97 --uc map.txt

 

11 - Assign taxonomy to OTUS using uclust method on QIIME (use the file “otus.fa” as input file)

 

assign_taxonomy.py -i $PWD/otus.fa -o output

 

12 - Align sequences on QIIME, using greengenes reference sequences (use the file “otus.fa” as input file)

 

align_seqs.py -i $PWD/otus.fa -o rep_set_align

 

13 - Filter alignments on QIIME

 

filter_alignment.py -i $PWD/otus_aligned.fasta -o filtered_alignment

 

14 - Make the reference tree on QIIME

 

make_phylogeny.py -i $PWD/otus_aligned_pfiltered.fasta -o rep_set.tre

 

15 - Convert UC to otu-table.txt <<< BMP SCRIPT>>>

 

bmp-map2qiime.py map.uc > otu_table.txt

 

16 - Convert otu_table.txt to otu-table.biom <<< QIIME SCRIPT>>>

 

make_otu_table.py -i otu_table.txt -t otus_tax_assignments.txt -o otu_table.biom

 

17 - Check OTU Table  on QIIME.

 

biom summarize-table -i $PWD/otu_table.biom -o results_biom_table

 

18 - Run diversity analyses on QIIME (or any other analysis of your choice). The parameter “-e” is the sequencing depth to use for even sub-sampling and maximum rarefaction depth. You should review the output of the ‘biom summarize-table’ (step 18) command to decide on this value.

 

core_diversity_analyses.py -i $PWD/otu_table.biom -m $PWD/mapping_file.txt -t $PWD/rep_set.tre -e xxxx -o $PWD/core_output

 

 

A reduced dataset for 16S (Illumina and Ion Torrent) and ITS (Illumina) can be obtained here and used as example.

 

​​This workflow is under improvement.

​

​This website is best viewed using Firefox Browser.

© Copyright 2012-2013 Brazilian Microbiome Project

bottom of page