Nov 23, 2020

Public workspaceA Bioinformatics Analysis workflow for 16S rRNA Amplicon Sequencing data

Peer-reviewed method
  • 1BGI-shenzhen
  • GigaScience Press
  • BGI
Icon indicating open access to content
QR code linking to this content
Protocol CitationLilan Hao 2020. A Bioinformatics Analysis workflow for 16S rRNA Amplicon Sequencing data. protocols.io https://dx.doi.org/10.17504/protocols.io.bntpmemn
Manuscript citation:
Chen C, Hao L, Wei W, Li F, Song L, Zhang X, Dai J, Jie Z, Li J, Song X, Wang Z, Zhang Z, Zeng L, Du H, Tang H, Zhang T, Yang H, Wang J, Brix S, Kristiansen K, Xu X, Wu R, Jia H, The female urinary microbiota in relation to the reproductive tract microbiota. GigaByte. 2020. 
License: This is an open access protocol distributed under the terms of the Creative Commons Attribution License,  which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited
Protocol status: Working
We use this protocol and it's working
Created: October 23, 2020
Last Modified: November 25, 2020
Protocol Integer ID: 43599
Abstract
Deal with the 16S rRNA amplicon sequencing reads, which sequenced by Ion PGMTM Sequencer with Ion 318TMChip v2 with a read length of 400bp, and takes the OTU table( the measured abundance profile of detected operational taxonomic units (OTUs)).
## Convert the bam files to fastq files
../bam2fastq-1.1.0/bam2fastq -o vagina/01.trim.data/16_s1.fq ../rawdata/RFEMpxjMAADGAAPGM-47.bam


## Delete the primer
perl ../iontorrent/re-primers.pl ../v4-v5_primers.fa 2 vagina/01.trim.data/16_s1.fq

## Reverse fastq to fasta and quality
perl ../fq2qual.pl vagina/01.trim.data/16_s1.fq vagina/01.trim.data/16_s1
## Trim the poly-A/T, multi-N and low-quality sequences.
mothur "#trim.seqs(fasta= vagina/01.trim.data/16_s1.fa, qfile= vagina/01.trim.data/16_s1.qual, minlength=200,maxambig=1,maxhomop=10,qwindowaverage=25,qwindowsize=50,processors=8)"

mothur "#reverse.seqs(fasta= vagina/01.trim.data/16_s1.trim.fasta, qfile=vagina/01.trim.data/16_s1.trim.qual)"

perl ../creat.group.pl vagina/01.trim.data/16_s1.trim.rc.fasta 16_s1 >> /vagina/02.processing.data/vagina.groups

cat vagina/01.trim.data/16_s1.trim.rc.fasta >> vagina/02.processing.data/vagina.trim.fasta
cat vagina/01.trim.data/16_s1.trim.rc.qual >> vagina/02.processing.data/vagina.trim.qual

## Pick the representative sequences.
mothur"#unique.seqs(fasta=vagina/02.processing.data/vagina.trim.fasta)"

## Assign to the SAILVA
mothur "#align.seqs(fasta=vagina/02.processing.data/vagina.trim.unique.fasta, reference=../bin/16s/database/silva.bacteria.fasta, processors=8)"

mothur "#summary.seqs(fasta=vagina/02.processing.data/vagina.trim.unique.align, name=vagina/02.processing.data/vagina.trim.names)" > vagina/02.processing.data/vagina.trim.unique.align.summary.log
## Pick the high-scoring sequences
mothur "#screen.seqs(fasta=vagina/02.processing.data/vagina.trim.unique.align, name=vagina/02.processing.data/vagina.trim.names,group=vagina/02.processing.data/vagina.groups,
optimize=start-end, criteria=90,processors=8)"

mothur "#filter.seqs(fasta=vagina/02.processing.data/vagina.trim.unique.good.align, vertical=T,trump=.,processors=8)"

mothur "#unique.seqs(fasta=vagina/02.processing.data/vagina.trim.unique.good.filter.fasta, name=vagina/02.processing.data/vagina.trim.good.names)"

rm vagina/02.processing.data/vagina.trim.unique.good.align vagina/02.processing.data/vagina.trim.unique.align

mothur "#summary.seqs(fasta=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.fasta, name=vagina/02.processing.data/vagina.trim.unique.good.filter.names)" > vagina/02.processing.data/vagina.trim.unique.good.filter.unique.fasta.summary.log
##Check chimera and delete chimeric sequences
mothur "#pre.cluster(fasta=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.fasta, name=vagina/02.processing.data/vagina.trim.unique.good.filter.names,group=vagina/02.processing.data/vagina.good.groups,diffs=2)"

mothur "#chimera.uchime(fasta=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.fasta, name=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.names,group=vagina/02.processing.data/vagina.good.groups,processors=8)"

mothur "#remove.seqs(
accnos=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.devono.uchime.accnos, fasta=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.fasta, name=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.names,group=vagina/02.processing.data/vagina.good.groups)"

mothur "#summary.seqs(fasta=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.fasta, name=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.names)" > vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.fasta.summary.log
## Classify according to the Greengene reference sequences (gg_13_8_otus)

ln -s ../database/greengenes/gg_13_5_99.fasta vagina/02.processing.data/gg_13_5_99.fasta
ln -s ../database/greengenes/gg_13_5_99.gg.tax vagina/02.processing.data/gg_13_5_99.gg.tax

mothur "#classify.seqs(fasta=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.fasta, template=vagina/02.processing.data/gg_13_5_99.fasta,taxonomy=vagina/02.processing.data/gg_13_5_99.gg.tax,cutoff=50,processors=8)"

## Delete reads of Mitochondria and Chloroplast
mothur "#remove.lineage(
fasta=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.fasta, name=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.names,group=vagina/02.processing.data/vagina.good.pick.groups,taxonomy=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.gg.wang.taxonomy,taxon=Mitochondria-Cyanobacteria_Chloroplast-unknown)"

## Make the otu table
python ../bin/pick_otus.py -i vagina/03.otu.data/vagina.final.uclu.fasta -o vagina/03.otu.data

perl ../bin/OTU_format_trans.pl vagina/03.otu.data/vagina.final.uclu_otus.txt vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.pick.names 0.03 > vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.pick.an.list

perl ../bin/tags_taxonomy.stat.v2.pl vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.pick.names vagina/02.processing.data/vagina.good.pick.pick.groups vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.gg.wang.pick.taxonomy.pick vagina/03.otu.data/vagina.raw.data.info

mothur "#make.shared(
list=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.pick.an.list, group=vagina/02.processing.data/vagina.good.pick.pick.groups,label=0.03)"

mothur "#classify.otu(list=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.pick.an.list, name=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.pick.names,taxonomy=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.gg.wang.pick.taxonomy.pick,label=0.03)"
mothur "#summary.single(
shared=vagina/02.processing.data/vagina.trim.unique.good.filter.unique.precluster.pick.pick.an.shared,groupmode=t)"