enAPI Reference

API Reference

Complete reference for MICOS-2024 command-line interface.


Table of Contents


Overview

MICOS-2024 provides a unified command-line interface (CLI) for metagenomic analysis. All commands follow the pattern:

python -m micos.cli [GLOBAL_OPTIONS] <COMMAND> [COMMAND_OPTIONS]

Getting Help

# General help
python -m micos.cli --help
 
# Command-specific help
python -m micos.cli full-run --help
python -m micos.cli run quality-control --help

Global Options

OptionShortDescriptionDefault
--config-cPath to configuration fileconfig/analysis.yaml
--verbose-vEnable verbose outputfalse
--log-file-lPath to log filelogs/micos.log
--threads-tNumber of parallel threads16
--dry-run-nShow what would be executedfalse
--version-VShow version information-

Examples

# Use custom config
python -m micos.cli --config my_config.yaml full-run --input-dir data/
 
# Verbose output with custom log
python -m micos.cli --verbose --log-file analysis.log full-run ...
 
# Dry run (preview only)
python -m micos.cli --dry-run full-run --input-dir data/

Commands

full-run

Execute the complete analysis pipeline from raw reads to final report.

Synopsis

python -m micos.cli full-run [OPTIONS]

Required Arguments

ArgumentDescriptionExample
--input-dirDirectory containing raw FASTQ files--input-dir data/raw
--results-dirDirectory for output files--results-dir results

Database Arguments

ArgumentDescriptionExample
--kneaddata-dbPath to KneadData database--kneaddata-db /db/human_genome
--kraken2-dbPath to Kraken2 database--kraken2-db /db/kraken2_standard

Optional Arguments

ArgumentDescriptionDefault
--threadsMaximum parallel threads16
--samplesComma-separated sample listAll samples
--skip-qcSkip quality controlfalse
--skip-taxonomySkip taxonomic profilingfalse
--skip-functionalSkip functional annotationfalse
--skip-diversitySkip diversity analysisfalse

Examples

# Basic usage
python -m micos.cli full-run \
  --input-dir data/raw_input \
  --results-dir results \
  --threads 16 \
  --kneaddata-db /db/human_genome \
  --kraken2-db /db/kraken2_standard
 
# Analyze specific samples only
python -m micos.cli full-run \
  --input-dir data/raw_input \
  --results-dir results \
  --samples SampleA,SampleB,SampleC
 
# Skip functional analysis (taxonomy only)
python -m micos.cli full-run \
  --input-dir data/raw_input \
  --results-dir results \
  --skip-functional

Output Structure

results/
├── quality_control/
│   ├── fastqc_reports/
│   └── kneaddata/
├── taxonomic_profiling/
│   ├── *.kraken
│   ├── *.report
│   ├── *.krona.html
│   └── feature-table.biom
├── functional_annotation/
│   ├── *_genefamilies.tsv
│   └── *_pathabundance.tsv
├── diversity_analysis/
│   ├── alpha_diversity/
│   └── beta_diversity/
└── report.html

run

Execute individual analysis modules.

Synopsis

python -m micos.cli run <MODULE> [OPTIONS]

Available Modules

ModuleDescription
quality-controlFastQC and KneadData processing
taxonomic-profilingKraken2 classification
diversity-analysisQIIME2 diversity metrics
functional-annotationHUMAnN functional profiling
summarize-resultsGenerate HTML report

quality-control

python -m micos.cli run quality-control [OPTIONS]

Arguments:

ArgumentRequiredDescription
--input-dirRaw FASTQ directory
--output-dirQC results directory
--kneaddata-dbHost genome database
--threadsParallel threads

Example:

python -m micos.cli run quality-control \
  --input-dir data/raw_input \
  --output-dir results/quality_control \
  --kneaddata-db /db/human_genome \
  --threads 8

taxonomic-profiling

python -m micos.cli run taxonomic-profiling [OPTIONS]

Arguments:

ArgumentRequiredDescription
--input-dirCleaned FASTQ directory (QC output)
--output-dirTaxonomy results directory
--kraken2-dbKraken2 database path
--confidenceClassification confidence threshold
--threadsParallel threads

Example:

python -m micos.cli run taxonomic-profiling \
  --input-dir results/quality_control/kneaddata \
  --output-dir results/taxonomic_profiling \
  --kraken2-db /db/kraken2_standard \
  --confidence 0.1 \
  --threads 16

diversity-analysis

python -m micos.cli run diversity-analysis [OPTIONS]

Arguments:

ArgumentRequiredDescription
--input-biomBIOM feature table path
--output-dirDiversity results directory
--metadataSample metadata file
--sampling-depthRarefaction depth

Example:

python -m micos.cli run diversity-analysis \
  --input-biom results/taxonomic_profiling/feature-table.biom \
  --output-dir results/diversity_analysis \
  --metadata metadata.tsv \
  --sampling-depth 10000

functional-annotation

python -m micos.cli run functional-annotation [OPTIONS]

Arguments:

ArgumentRequiredDescription
--input-dirCleaned FASTQ directory
--output-dirFunctional results directory
--threadsParallel threads
--nucleotide-dbChocoPhlAN database
--protein-dbUniRef database

Example:

python -m micos.cli run functional-annotation \
  --input-dir results/quality_control/kneaddata \
  --output-dir results/functional_annotation \
  --threads 8

summarize-results

python -m micos.cli run summarize-results [OPTIONS]

Arguments:

ArgumentRequiredDescription
--results-dirMain results directory
--output-fileOutput HTML report path
--formatOutput format (html, pdf)

Example:

python -m micos.cli run summarize-results \
  --results-dir results \
  --output-file results/final_report.html

validate-config

Validate configuration file before running analysis.

Synopsis

python -m micos.cli validate-config [OPTIONS]

Arguments:

ArgumentRequiredDescription
--configPath to configuration file

Example:

# Validate default config
python -m micos.cli validate-config
 
# Validate custom config
python -m micos.cli validate-config --config my_config.yaml

Output:

✓ Configuration file syntax valid
✓ Required fields present
✓ Database paths exist
✓ Parameter values in valid range
⚠ Warning: Sampling depth not specified (will auto-detect)
Configuration validation completed successfully!

Configuration File Reference

Location

Default configuration search order:

  1. Path specified with --config
  2. ./config/analysis.yaml
  3. ~/.config/micos/analysis.yaml

Structure

# config/analysis.yaml
 
project:
  name: "My_Study"
  description: "Metagenomic analysis of gut samples"
 
paths:
  input_dir: "data/raw"
  output_dir: "results"
 
resources:
  max_threads: 16
  max_memory: "32GB"
 
quality_control:
  kneaddata:
    min_quality: 20
    min_length: 50
 
taxonomic_profiling:
  kraken2:
    confidence: 0.1
    threads: 16
 
diversity_analysis:
  qiime2:
    sampling_depth: 10000
 
functional_annotation:
  humann:
    threads: 8

Return Codes

CodeMeaning
0Success
1General error
2Invalid arguments
3Configuration error
4Missing dependencies
5Database error
6I/O error
130Interrupted by user

Environment Variables

VariableDescriptionExample
MICOS_CONFIGDefault config file path/path/to/config.yaml
MICOS_THREADSDefault thread count16
MICOS_LOG_LEVELLogging levelINFO, DEBUG
KRAKEN2_DB_PATHDefault Kraken2 database/db/kraken2

Batch Processing

Running Multiple Samples

# Process multiple datasets
for dataset in dataset1 dataset2 dataset3; do
  python -m micos.cli full-run \
    --input-dir "data/${dataset}" \
    --results-dir "results/${dataset}" \
    --config "config/${dataset}.yaml"
done

Parallel Sample Processing

# GNU parallel for parallel sample processing
ls data/*/ | parallel -j 4 \
  'python -m micos.cli run taxonomic-profiling \
    --input-dir data/{} \
    --output-dir results/{}/taxonomy'

See Also