Skip to content

shravanva/q2-soilmetnet

Repository files navigation

q2-soilmetnet

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.

Overview

q2-soilmetnet bridges two critical gaps in plant microbiome analysis:

  1. Taxonomy → Function: Converts SILVA-classified 16S rRNA data to metabolic functional profiles
  2. 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)

Installation

Prerequisites

  • QIIME 2 (2024.10 or later)
  • Python 3.10+
  • conda (optional but recommended)

Quick Install

# 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

Quick Start

1. Prepare your data

# 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.qza

2. Generate metabolic features

qiime 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.qza

3. Visualize results

qiime 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.qzv

4. Differential analysis

qiime 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.qza

Methods

Algorithm

q2-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

Soil Organisms Included

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)

Validation

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.

Input/Output Formats

Inputs

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

Outputs

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

Parameters

generateSoilFeatures

  • --p-taxonomic-level: 'genus' or 'species' (default: 'species')
  • --p-ecosystem: 'rhizosphere', 'phyllosphere', or 'bulk_soil' (default: 'rhizosphere')

Differential Analysis

  • --p-metadata-column: Column name for condition grouping
  • --p-condition-name: Condition group label
  • --p-control-name: Control group label

Output Interpretation

Reaction & Subsystem Scores

  • 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

Differential Analysis

  • 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

Example Interpretation

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

Citation

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.

Troubleshooting

No ASVs map to soil organisms

Problem: Error "No ASVs mapped to rhizosphere soil organisms"

Solutions:

  1. Check taxonomy assignments - ensure SILVA format (e.g., 's__Bacillus_subtilis')
  2. Use '--p-ecosystem bulk_soil' for more comprehensive organism coverage
  3. Verify taxonomy classifier used compatible SILVA database (v138.1+)

Low coverage (few subsystems active)

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

Large effect sizes but low statistical significance

Problem: Mean differences are large but p-values high

Likely cause: High within-group variance; collect more replicates

Contributing

We welcome contributions! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/YourFeature)
  3. Commit changes (git commit -am 'Add YourFeature')
  4. Push to branch (git push origin feature/YourFeature)
  5. Submit a pull request

License

MIT License - see LICENSE file

Contact

Shravan Sharma Parunandi
Texas A&M University
shravan_parunandi@tamu.edu

Issues & questions: https://github.com/shravanva/q2-soilmetnet/issues

Acknowledgments

  • 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!)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages