omics.co.in logo omics.co.in

Chapter 9: Functional Profiling & Metabolic Pathway Reconstruction with HUMAnN3

Tested Stacks: GATK 4.6.1 Samtools 1.21 Nextflow 24.10 Seurat v5.1 Python 3.12
Prerequisites: Basic Linux CLI & Sequencing Formats
📚 Chapter 9 of 13 0% Course Completed

Chapter 9: Functional Profiling & Metabolic Pathway Reconstruction with HUMAnN3

Knowing who is in a microbial community is only half the story; understanding what they are doing requires functional profiling. HUMAnN3 (HMP Unified Metabolic Analysis Network 3) quantifies the abundance and coverage of metabolic pathways from metagenomic sequencing.

The HUMAnN3 Tiered Search Strategy
  1. Tier 1 (Fast Pangenome Search): Reads are aligned to species pangenomes identified by MetaPhlAn using Bowtie2.
  2. Tier 2 (Translated Search with Diamond): Unmapped reads are translated into protein frames and searched against UniRef50/UniRef90 to capture uncharacterized orthologs.
  3. Pathway Reconstruction: Maps detected enzymes to MetaCyc pathways, calculating Pathway Abundance and Pathway Coverage.

1. Running HUMAnN3

# Run HUMAnN3 functional quantification
humann \\
    --input decontaminated_reads.fastq.gz \\
    --output ./humann3_out/ \\
    --threads 16 \\
    --protein-database /ref/uniref90/ \\
    --nucleotide-database /ref/chocophlan/

# Outputs generated:
#   ├── sample_genefamilies.tsv  -> Abundance of UniRef90 gene families (in RPK)
#   ├── sample_pathabundance.tsv -> Abundance of MetaCyc pathways
#   └── sample_pathcoverage.tsv  -> Completeness (0.0 to 1.0) of each pathway
⚠️

Common Pitfalls & Troubleshooting Checklist

  • Java Heap Exhaustion (GATK / Picard): If processes terminate with java.lang.OutOfMemoryError, set your environment variable explicitly: export _JAVA_OPTIONS="-Xmx16g -Djava.io.tmpdir=/tmp".
  • Index Timestamp Mismatch: If tools complain that a BAM index is missing or out of date, regenerate with samtools index -@ 4 sample.bam.
  • Conda Channel Conflicts: Avoid ABI incompatibilities between bioconda and conda-forge by setting strict priority: conda config --set channel_priority strict.
  • Chromosome Naming Contamination: Always verify whether reference FASTA headers use chr1 or 1; divergent naming causes silent alignment drops.
Was this guide helpful to your research?
Help us maintain 100% accurate, peer-reviewed bioinformatics standards.
📝 Propose Edit on GitHub ↗