QIIME 2 Plugin for Functional Analysis of Rhizosphere and Phyllosphere Microbiota
Using soil-specific metabolic reconstructions to transform 16S rRNA sequencing data into functional predictions about microbial metabolic potential in plant-associated soil ecosystems.
q2-soilmetnet bridges two critical gaps in plant microbiome analysis:
- Taxonomy → Function: Converts SILVA-classified 16S rRNA data to metabolic functional profiles
- Soil-Specific Models: Uses metabolic models curated for rhizosphere/phyllosphere bacteria, not gut organisms
Key features:
- ✅ Reaction-level and subsystem-level metabolic scores
- ✅ Automated mapping from SILVA taxonomy to soil organism metabolic models
- ✅ Differential metabolic activity analysis (Wilcoxon test)
- ✅ Publication-quality visualizations (PCA, heatmaps, boxplots)
- ✅ Support for multiple soil ecosystems (rhizosphere, phyllosphere, bulk soil)
- QIIME 2 (2024.10 or later)
- Python 3.10+
- conda (optional but recommended)
# Clone the repository
git clone https://github.com/shravanva/q2-soilmetnet.git
cd q2-soilmetnet
# Create environment
conda env create -f environment.yml
conda activate q2-soilmetnet
# Install in development mode
python setup.py develop
# Refresh QIIME 2 cache
qiime dev refresh-cache
# Verify installation
qiime soilmetnet --help# You need:
# 1. ASV table (QIIME 2 artifact)
# 2. SILVA-classified taxonomy (QIIME 2 artifact)
# 3. Sample metadata (TSV file)
qiime tools import \
--type 'FeatureTable[Frequency]' \
--input-path your_asv_table.csv \
--output-path asv_table.qza
qiime tools import \
--type 'FeatureData[Taxonomy]' \
--input-path your_taxonomy.csv \
--output-path taxonomy.qzaqiime soilmetnet generateSoilFeatures \
--i-frequency-table asv_table.qza \
--i-taxonomy taxonomy.qza \
--p-taxonomic-level species \
--p-ecosystem rhizosphere \
--o-reaction-scores reaction_scores.qza \
--o-subsystem-scores subsystem_scores.qzaqiime soilmetnet plotPCA \
--i-table subsystem_scores.qza \
--m-sample-metadata-file metadata.tsv \
--m-sample-metadata-column Treatment \
--o-visualization pca.qzv
qiime tools view pca.qzvqiime soilmetnet differentialSubsystems \
--i-subsystem-scores subsystem_scores.qza \
--m-sample-metadata-file metadata.tsv \
--m-sample-metadata-column Treatment \
--p-condition-name stress \
--p-control-name control \
--o-differential-subsystems diff_results.qzaq2-soilmetnet implements a 5-step algorithm adapted from q2-metnet:
Step 1: Feature Table Normalization
- Convert read counts to relative frequencies per sample
- Result: Matrix X (ASVs × samples)
Step 2: ASV-Reaction Association
- Map SILVA-classified ASVs to soil organism models
- Build binary matrix R (reactions × ASVs)
- Each ASV receives reactions from its soil model
Step 3: Reaction Activity Scores
- Compute W = R × X (reactions × samples)
- Normalize to [0, 1] range
- Result: Reaction activity scores
Step 4: Subsystem-Reaction Association
- Define soil-relevant metabolic subsystems (N-cycling, C-cycling, biofilm, etc.)
- Build matrix S (subsystems × reactions)
- Each reaction contributes equally to its subsystem
Step 5: Subsystem Activity Scores
- Compute Y = S × W (subsystems × samples)
- Normalize to [0, 1] range
- Result: Subsystem activity scores
Rhizosphere (root-associated soil):
- Streptomyces spp. - Plant compound degradation, antibiotic production
- Bacillus subtilis - Biofilm formation, plant growth promotion
- Pseudomonas fluorescens - Motility, biofilm, siderophore production
- Acidobacteria - Aromatic compound degradation
- Verrucomicrobia - Polysaccharide degradation
Phyllosphere (leaf surface):
- Sphingomonas phyllosphaerae - Plant defense metabolism
- Methylobacterium spp. - Methanol metabolism, plant hormone production
- Rhodococcus spp. - Plant cuticle degradation
- Corynebacterium spp. - Rapid growth, surface colonization
Soil-Relevant Subsystems:
- Nitrogen cycling (fixation, nitrification, denitrification)
- Phosphorus cycling (solubilization, uptake, degradation)
- Carbon cycling (cellulose, hemicellulose, lignin, organic acids)
- Biofilm formation & motility
- Plant hormone metabolism
- Plant defense metabolite degradation
- Quorum sensing & siderophore production
- Nutrient uptake (Fe, Zn, Mn)
Results have been compared against:
- PICRUSt2 (published functional prediction tool)
- Tax4Fun2 (metagenome function prediction)
- mgPipe (metabolic pathway analysis tool)
q2-soilmetnet shows complementary results with improved separation of samples under stress conditions.
| Type | Format | Description |
|---|---|---|
| Feature table | .qza (FeatureTable[Frequency]) |
ASV abundance table |
| Taxonomy | .qza (FeatureData[Taxonomy]) |
SILVA taxonomy assignments |
| Metadata | .tsv |
Sample metadata with condition labels |
| Method | Output | Format |
|---|---|---|
| generateSoilFeatures | Reaction scores | .qza (FeatureTable[Frequency]) |
| Subsystem scores | .qza (FeatureTable[Frequency]) |
|
| differentialSubsystems | Differential results | .qza + .qzv |
| plotPCA | PCA visualization | .qzv |
| plotClustermap | Heatmap | .qzv |
--p-taxonomic-level: 'genus' or 'species' (default: 'species')--p-ecosystem: 'rhizosphere', 'phyllosphere', or 'bulk_soil' (default: 'rhizosphere')
--p-metadata-column: Column name for condition grouping--p-condition-name: Condition group label--p-control-name: Control group label
- Range: 0–1 (normalized)
- Interpretation: Probability that the microbial community can perform that reaction/subsystem
- Visualization: Use PCA to separate samples by metabolic profile; heatmaps to identify condition-specific patterns
- p_value: Statistical significance (Wilcoxon test)
- adjusted_p_value: FDR-corrected p-value (Benjamini-Hochberg)
- effect_size: Mean difference in subsystem activity between condition and control
- mean_condition / mean_control: Mean activity scores in each group
If "Nitrogen_fixation" subsystem is significantly enriched in drought-stressed rhizosphere:
- Implies: Stressed conditions select for N-fixing bacteria
- Mechanism: Drought reduces plant N uptake; N-fixing bacteria become more competitive
- Follow-up: Measure actual soil N levels; validate with qPCR of nifH genes
If you use q2-soilmetnet, please cite:
Parunandi, S.S., et al. (2025). q2-soilmetnet:
Functional analysis of rhizosphere and phyllosphere microbiota
using soil-specific metabolic reconstructions. bioRxiv.
Also cite the original q2-metnet paper:
Balzerani, F., et al. (2024). q2-metnet: QIIME2 package to analyse
16S rRNA data via high-quality metabolic reconstructions of the
human gut microbiota. Bioinformatics, 40(11), btae455.
Problem: Error "No ASVs mapped to rhizosphere soil organisms"
Solutions:
- Check taxonomy assignments - ensure SILVA format (e.g., 's__Bacillus_subtilis')
- Use '--p-ecosystem bulk_soil' for more comprehensive organism coverage
- Verify taxonomy classifier used compatible SILVA database (v138.1+)
Problem: Most subsystem scores are ~0
Possible causes:
- Ecosystem mismatch (using 'rhizosphere' for phyllosphere samples)
- Contaminated/low-diversity samples
- Extreme conditions (e.g., acidic soil with acid-intolerant organisms)
Solution: Check sample metadata and compare with literature on similar ecosystems
Problem: Mean differences are large but p-values high
Likely cause: High within-group variance; collect more replicates
We welcome contributions! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/YourFeature) - Commit changes (
git commit -am 'Add YourFeature') - Push to branch (
git push origin feature/YourFeature) - Submit a pull request
MIT License - see LICENSE file
Shravan Sharma Parunandi
Texas A&M University
shravan_parunandi@tamu.edu
Issues & questions: https://github.com/shravanva/q2-soilmetnet/issues
- q2-metnet for original QIIME 2 plugin architecture
- QIIME 2 team for the excellent microbiome analysis framework
- SILVA database for taxonomy reference
- Published research on rhizosphere/phyllosphere metabolic ecology
Version: 0.1.0
Last Updated: January 2026
Status: Alpha release (feedback welcome!)