Skip to content

About

🧬 Comprehensive automated genomics analysis pipeline for bacterial genome analysis. Supports BUSCO, ANI, Snippy, Roary, Prokka, EggNOG with strain name extraction and organized output.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧬 Automated Genomics Analysis Pipeline

A comprehensive automated bacterial genome analysis pipeline that performs quality assessment, phylogenetic analysis, functional annotation, and comparative genomics with publication-ready results.

✨ Features

Core Analyses

  • BUSCO - Genome quality assessment
  • Prokka - Genome annotation
  • FastANI - Average nucleotide identity analysis
  • Snippy - SNP calling and phylogenetic analysis
  • Panaroo - Pan-genome analysis (Roary-compatible output)
  • EggNOG-mapper - Functional annotation (optional; needs make eggnog-db)

Advanced Analyses

  • PCoA - Principal Coordinates Analysis
  • Core/Accessory Genome - Comparative genome analysis
  • Jaccard Distance - Gene presence/absence analysis
  • Enhanced Phylogeny - ML phylogenetic trees with bootstrap support

Automation Features

  • Automatic strain name extraction from FASTA headers
  • Organized output structure by analysis type and strain
  • Publication-ready plots with proper strain naming
  • Comprehensive reporting in multiple formats

πŸš€ Quick Start

Prerequisites

  • macOS or Linux
  • Conda/Miniconda
  • 8+ GB RAM
  • 10+ GB disk space

One command

git clone https://github.com/ceydaakin/genomics-pipeline.git
cd genomics-pipeline
cp your_genomes/*.fna data/fe_cs_genomics/   # add your genomes
make run                                     # runs the whole pipeline

make run discovers the genomes, runs every analysis end-to-end in the correct conda environment, skips steps whose output already exists (resume), and writes the organized results β€” non-interactively.

Make targets

Command What it does
make run Full pipeline, resume-aware, non-interactive
make check Verify conda envs, tools and input data
make dry-run Discover genomes and preview the plan (no tools needed)
make eggnog-db Download the (large) EggNOG database to enable functional annotation
make test Run unit tests
make clean Remove results and logs
make help List targets

Override defaults with variables, e.g. make run INPUT=path/to/genomes THREADS=8.

Conda environments

Tools run in their own conda environments (mapped in tool_envs, see configs/example_config.json): BUSCO / FastANI / EggNOG in genomics, prokka, snippy/snippy-core in snippy-env, and pan-genome (panaroo) + iqtree in pangenome. The orchestrator runs with the genomics env's Python and invokes each tool via conda run -n <env>. Run make check to confirm everything is in place.

πŸ“ Output Structure

Results are automatically organized into a clear directory structure:

automated_genomics_results/
β”œβ”€β”€ 01_BUSCO_Quality_Assessment/    # Genome quality metrics
β”œβ”€β”€ 02_Prokka_Annotation/          # Gene annotations by strain
β”œβ”€β”€ 03_ANI_Analysis/               # Phylogenetic relationships  
β”œβ”€β”€ 04_Snippy_SNP_Analysis/        # SNP-based phylogeny
β”œβ”€β”€ 05_Roary_Pangenome/           # Pan-genome analysis
β”œβ”€β”€ 06_EggNOG_Functional/         # Functional annotations
β”œβ”€β”€ 07_Comparative_Analysis/       # Cross-analysis comparisons
β”œβ”€β”€ 08_Plots_and_Figures/         # Publication-ready figures
β”œβ”€β”€ 09_Final_Reports/             # Summary reports and tables
└── 10_Advanced_Analysis/         # PCoA, Jaccard, etc.

πŸ”§ Advanced Usage

Command Line Interface

# Basic usage
python src/automated_genomics_pipeline.py --input data/fe_cs_genomics/

# Custom parameters
python src/automated_genomics_pipeline.py \
    --input /path/to/genomes \
    --output custom_results/ \
    --threads 8 \
    --busco-db lactobacillales_odb10

# Dry run (preview only)
python src/automated_genomics_pipeline.py --input data/ --dry-run

Configuration Files

# Save settings
python src/automated_genomics_pipeline.py \
    --input data/ \
    --config configs/my_settings.json

# Reuse settings  
python src/automated_genomics_pipeline.py --config configs/my_settings.json

πŸ“„ Supported File Formats

  • .fna - FASTA Nucleic Acid
  • .fasta - Standard FASTA format
  • .fa - FASTA short extension
  • .fna.gz - Compressed FASTA

πŸ“Š Example Results

Strain Summary Table

Strain Name Species Type Quality Score
L. senmaizukei DSM 21775 Levilactobacillus senmaizukei Reference 95.2%
L. senmaizukei OPSG_3_2_4 Levilactobacillus senmaizukei Local isolate 94.8%

Analysis Status

  • βœ… BUSCO: Completed (15 genomes)
  • βœ… Prokka: Completed (15 genomes)
  • βœ… ANI: Completed (105 comparisons)
  • βœ… Snippy: Completed (SNP phylogeny)
  • βœ… Roary: Completed (pan-genome)
  • βœ… EggNOG: Completed (functional annotation)

πŸ› οΈ Troubleshooting

Common Issues

Not sure if envs/tools/data are ready

make check

Tools not found

# Confirm which conda env each tool lives in
make check
# tool->env mapping is in configs/example_config.json (tool_envs)

Memory errors

# Reduce thread count
--threads 2

Large dataset issues

# Use custom output location
--output /path/to/large/disk/results/

πŸ§ͺ Testing

# Run unit tests (no conda required)
make test

# Preview the plan without running tools
make dry-run

πŸ“– Documentation

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

🧬 Comprehensive automated genomics analysis pipeline for bacterial genome analysis. Supports BUSCO, ANI, Snippy, Roary, Prokka, EggNOG with strain name extraction and organized output.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages