| name | bio-workflows-microbiome-pipeline |
| description | End-to-end 16S amplicon workflow from FASTQ reads to differential abundance. Orchestrates DADA2 ASV inference, taxonomy assignment, diversity analysis, and compositional testing with ALDEx2. Use when processing 16S/ITS amplicon data. |
| tool_type | r |
| primary_tool | dada2 |
| workflow | true |
| depends_on | ["microbiome/amplicon-processing","microbiome/taxonomy-assignment","microbiome/diversity-analysis","microbiome/differential-abundance"] |
Microbiome Pipeline
Pipeline Overview
Paired-End FASTQ (16S V4)
│
▼
┌──────────────────────────────────────────────────┐
│ microbiome-pipeline │
├──────────────────────────────────────────────────┤
│ 1. Quality Filtering (DADA2 filterAndTrim) │
│ 2. Error Learning & Denoising │
│ 3. Merge Pairs & Remove Chimeras │
│ 4. Taxonomy Assignment (SILVA) │
│ 5. Create phyloseq Object │
│ 6. Alpha/Beta Diversity │
│ 7. Differential Abundance (ALDEx2) │
│ 8. Visualization & Export │
└──────────────────────────────────────────────────┘
│
▼
ASV Table + Taxonomy + Diversity Plots + Differential Taxa
Complete R Workflow
library(dada2)
library(phyloseq)
library(ALDEx2)
library(vegan)
library(ggplot2)
path <- 'raw_reads'
silva_train <- 'silva_nr99_v138.1_train_set.fa.gz'
silva_species <- 'silva_species_assignment_v138.1.fa.gz'
metadata_file <- 'sample_metadata.csv'
fnFs <- sort(list.files(path, pattern = '_R1_001.fastq.gz', full.names = TRUE))
fnRs <- sort(list.files(path, pattern = '_R2_001.fastq.gz', full.names = TRUE))
sample_names <- sapply(strsplit(basename(fnFs), '_'), `[`, 1
filtFs file.path paste0sample_names
filtRs file.path paste0sample_names
out filterAndTrimfnFs filtFs fnRs filtRs
truncLen maxN maxEE
truncQ rm.phix compress multithread
errF learnErrorsfiltFs multithread
errR learnErrorsfiltRs multithread
dadaFs dadafiltFs err errF multithread
dadaRs dadafiltRs err errR multithread
mergers mergePairsdadaFs filtFs dadaRs filtRs verbose
seqtab makeSequenceTablemergers
seqtab_nochim removeBimeraDenovoseqtab method multithread
taxa assignTaxonomyseqtab_nochim silva_train multithread
taxa addSpeciestaxa silva_species
libraryDECIPHER
libraryphangorn
seqs getSequencesseqtab_nochim
seqs paste0 seqs
alignment AlignSeqsDNAStringSetseqs anchor processors
phang_align phyDatasalignment type
dm dist.mlphang_align
tree NJdm
tree midpointladderizetree
metadata read.csvmetadata_file row.names
ps phyloseqotu_tableseqtab_nochim taxa_are_rows
tax_tabletaxa sample_datametadata phy_treetree
taxa_namesps paste0 seqntaxaps
librarypicante
alpha_div estimate_richnessps measures
faith_pd pdtotu_tableps phy_treeps include.root
alpha_divPD faith_pdPD
alpha_divGroup sample_datapsGroup
bray_dist phyloseqdistanceps method
unifrac_dist UniFracps weighted
pcoa_bray ordinateps method distance bray_dist
pcoa_unifrac ordinateps method distance unifrac_dist
meta_df data.framesample_dataps
permanova_bray adonis2bray_dist Group data meta_df permutations
permanova_unifrac adonis2unifrac_dist Group data meta_df permutations
ps_filt filter_taxaps x x nsamplesps
otu as.data.frametotu_tableps_filt
groups sample_dataps_filtGroup
aldex_results aldexotu groups mc.samples test effect
aldex_resultssignificant aldex_resultswe.eBH aldex_resultseffect
cat
cat ntaxaps
cat nsamplesps
cat permanovaR2 permanova`Pr(>F)`
cat aldex_resultssignificant
QC Checkpoints
| Stage | Check | Expected | Action if Failed |
|---|
| Filter | >70% reads pass | >70% | Adjust truncLen/maxEE |
| Merge | >80% pairs merge | >80% | Check amplicon length |
| Chimera | <25% chimeras | <25% | Check PCR cycles |
| Taxonomy | >80% genus assigned | >80% | Try different database |
| Rarefaction | Curves plateau | Plateau | Increase depth |
| PERMANOVA | p < 0.05 | p < 0.05 | Check experimental design |
Output Files
microbiome_results/
├── phyloseq_object.rds # Complete phyloseq
├── asv_table.csv # ASV counts
├── taxonomy.csv # Taxonomic assignments
├── alpha_diversity.csv # Per-sample metrics
├── aldex2_results.csv # Differential taxa
├── read_tracking.csv # Reads per pipeline stage
├── plots/
│ ├── quality_profiles.pdf
│ ├── alpha_diversity.pdf
│ ├── beta_diversity_pcoa.pdf
│ ├── taxonomic_barplot.pdf
│ └── aldex2_effect_plot.pdf
Workflow Variants
ITS Fungal Workflow
out <- filterAndTrim(fnFs, filtFs, fnRs, filtRs, maxN = 0, maxEE = c(2, 2),
truncQ = 2, minLen = 50, rm.phix = TRUE, multithread = TRUE)
taxa <- assignTaxonomy(seqtab_nochim, 'sh_general_release_dynamic_25.07.2023.fasta',
multithread = TRUE)
Different 16S Regions
GTDB Taxonomy
taxa <- assignTaxonomy(seqtab_nochim, 'GTDB_bac120_arc53_ssu_r214_fullTaxo.fa.gz',
multithread = TRUE)
Related Skills
- microbiome/amplicon-processing - DADA2 details
- microbiome/taxonomy-assignment - Database options, IDTAXA
- microbiome/diversity-analysis - Diversity metrics, Faith's PD
- microbiome/differential-abundance - ALDEx2, ANCOM-BC2
- microbiome/functional-prediction - PICRUSt2 functional analysis