AquaaG: Automated Quality Assessment and Annotation of Genomes

AquaaG is a Python-based pipeline for:

  • Downloading genomic assemblies from NCBI
  • Performing quality assessment with QUAST
  • Annotating genomes:
    • Prokaryotic genomes with Prokka
    • Eukaryotic genomes with BRAKER3 (Docker-based, repeat masked)
  • Evaluating annotation completeness with BUSCO

It supports India-specific filtering of assemblies (based on submitter metadata) and can also process user-provided assembly IDs via a file (assembly.txt). AquaaG is designed for production-grade bioinformatics workflows and supports both prokaryotic (PK) and eukaryotic (EK) organisms.


✨ Features

  • Assembly Fetching
    • Automated download from the NCBI Assembly database
    • Optional India-specific submitter filtering
  • Quality Assessment
    • Assembly evaluation using QUAST
  • Annotation
    • PK: Prokka-based genome annotation
    • EK:
      • RepeatModeler for repeat library construction
      • RepeatMasker for genome masking
      • BRAKER3 gene prediction using GeneMark-ETP and AUGUSTUS
  • Completeness Evaluation
    • BUSCO analysis on predicted protein sets
  • Flexible Execution Modes
    • Species mode: --species "Genus species"
    • Kingdom mode: --kingdom Bacteria/Fungi
    • Assembly list mode: --assembly-file assembly.txt
    • India-only filtering: -I / --india-only
    • Any-source mode: -a / --any-source
  • Parallel & Configurable
    • Multi-threaded execution (QUAST, Prokka, BRAKER3, BUSCO)
    • All parameters controlled via YAML configuration files

🧩 Requirements

  • Operating System: Linux (Ubuntu / HPC compatible)
  • Conda: Miniconda or Anaconda
  • Docker: Required for eukaryotic annotation
  • Internet: Required for NCBI, BUSCO datasets, Docker pulls
  • Disk Space: Minimum 10–20 GB recommended

📦 Installation & Setup

git clone https://github.com/skbinfo/AquaaG.git
cd AquaaG
bash setup_new.sh
source ~/.bashrc
conda activate assembly_tool_env

Verify Installation

quast.py --version
prokka --version
busco --version
docker --version

⚙️ Configuration Files

Eukaryotic Configuration (Eu_config.yaml)

email: "your@email.com"
organism: "Arabidopsis thaliana"
organism_type: "EK"
quast_threads: 50
busco_lineage: "fungi_odb10"
busco_params:
  cpu: 50
braker_params:
  cpus: 50

Prokaryotic Configuration (Pr_config.yaml)

email: "your@email.com"
organism: "Mycobacterium tuberculosis"
organism_type: "PK"
group: "bacteria"
quast_threads: 8
busco_lineage: "bacteria_odb10"
busco_params:
  cpu: 8
prokka_params:
  cpus: 8

🚀 Running AquaaG

python AquaaG.py -c CONFIG.yaml -o OUTPUT_DIR [OPTIONS]

Examples

# Eukaryotic (India-only)
python AquaaG.py -c Eu_config.yaml -o output_eu --species "Arabidopsis thaliana" -I --num-assemblies 1

# Prokaryotic (Kingdom mode)
python AquaaG.py -c Pr_config.yaml -o output_pk --kingdom Bacteria --num-species 3 --num-assemblies 1 -a

📁 Output Structure

Each run produces organized directories containing QUAST reports, annotation outputs, BUSCO summaries, and log files for full reproducibility.


🛠 Troubleshooting

  • Ensure Docker daemon is running for EK pipelines
  • Check BUSCO lineage availability
  • Verify internet connectivity for NCBI downloads
  • Use -a flag if species-specific filtering is too strict

Figure 1. AquaaG workflow overview

AquaaG Workflow Overview

Figure 2. Prokaryotic genome annotation outputs (Prokka)

Prokaryotic Annotation Outputs

Figure 3. Eukaryotic genome annotation outputs (BRAKER3)

Eukaryotic Annotation Outputs

⬇️ Download AquaaG

git clone https://github.com/skbinfo/AquaaG.git

🤝 Contributions & Acknowledgements

Contributions are welcome via GitHub issues and pull requests. If you use AquaaG in your research, please cite the corresponding publication.