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
Figure 2. Prokaryotic genome annotation outputs (Prokka)
Figure 3. Eukaryotic genome annotation outputs (BRAKER3)
⬇️ 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.