AEGIS: Annotation Extraction Genomic Integration Suite
1.7K
AEGIS is a powerful and flexible Python-based suite for the manipulation, analysis, and integration of genomic annotations. It provides a robust, object-oriented framework for working with genomic data, enabling complex analyses and data transformations with intuitive, high-level commands.
The core of AEGIS is its custom class system, which models the hierarchical nature of genomic annotations. This object-oriented approach provides several key advantages over traditional, line-by-line processing of annotation files:
Gene object contains Transcript objects, which in turn contain Exon and CDS objects. This makes the code more readable, maintainable, and less error-prone.Gene object is updated, all its associated Transcript and sub-feature objects are updated accordingly, ensuring that the annotation remains coherent.Genome: Represents a genome, containing a collection of Scaffold objects.Scaffold: Represents a chromosome or scaffold, containing the sequence and a collection of Gene objects.Annotation: The main container for genomic annotations, holding a collection of Gene objects.Gene: Represents a gene, containing one or more Transcript objects.Transcript: Represents a transcript, containing Exon, CDS, and UTR objects.Exon, CDS, UTR, Intron: Represent the sub-features of a transcript.Protein, Promoter: Represent other biological features of interest.You can install and run AEGIS in several ways. Using a container (Docker or Singularity) is the recommended approach as it handles all dependencies automatically.
If you have Docker installed, you can easily pull and run the pre-built AEGIS image from Docker Hub. This image includes AEGIS and all third-party software used for orthology analyses.
1a. Pull the image from Docker Hub:
docker pull tomsbiolab/aegis
1b. OR Pull the image from GHRC:
docker pull ghcr.io/tomsbiolab/aegis
2. Run an AEGIS command:
The following command runs aegis extract on a test dataset. The -v flag is crucial as it makes your current directory accessible inside the container.
docker run --rm -ti -v `pwd`:`pwd` -w `pwd` tomsbiolab/aegis aegis extract -f protein test_data/arabidopsis_araport11.gff3 test_data/arabidopsis_tair10.fasta
3. (Optional) Build the image locally:
If you want to build the image from the source code in this repository, you can use the provided Dockerfile.
docker build -t aegis local .
You can then run your local image by replacing tomsbiolab/aegis with aegis local.
For high-performance computing (HPC) environments where Docker is not available, Singularity is an excellent alternative.
1. Build the Singularity image from Docker Hub:
singularity build aegis.sif docker://tomsbiolab/aegis
This will create a single aegis.sif file in your current directory.
2. Run an AEGIS command:
Use the singularity run command to execute AEGIS. The -B flag mounts your current directory into the container.
singularity run -B `pwd`:`pwd` aegis.sif aegis extract -f protein test_data/arabidopsis_tair10.gff3 test_data/arabidopsis_tair10.fasta
Easiest way to install, however, some dependencies used in 'aegis orthology' will be missing (such as Liftoff, LiftOn, MCScan, Orthofinder, Diamond...). If you are planning to use 'aegis orthology' you will require these, so to avoid having to install the dependencies yourself see docker and singularity options above. The latest version in pypi will always match the version of the latest release.
pip3 install aegis-bio
Alternatively, you can install AEGIS directly from the source by cloning the repository and installing the required Python dependencies.
git clone https://github.com/Tomsbiolab/aegis.git
cd aegis
pip install .
# Or for development (editable mode):
pip install -e .
AEGIS is designed to be used as a library in your Python scripts or directly through the CLI
All of the commands are called with aegis {subcommand} in a terminal:
Here is a simple example of how to load an annotation and extract the sequences of all genes:
from aegis.annotation import Annotation
from aegis.genome import Genome
# Load the genome and annotation
genome = Genome(name = "my_genome", genome_file_path = "path/to/genome.fasta")
annotation = Annotation(name = "my_annotation", annot_file_path = "path/to/annotation.gff3", genome=genome)
# Generate and export gene sequences
annotation.export.genes()
For further and more detailed information on how to use the AEGIS package, including Jupyter Notebook examples, please refer to the GitHub Wiki. The wiki provides comprehensive guides and tutorials to help you get the most out of the suite.
Link to Wiki: https://github.com/Tomsbiolab/aegis/wiki
If you use AEGIS in your research, please cite the following journal article:
Navarro-Payá, D., Santiago, A., Velt, A., Moretto, M., Rustenholz, C., & Matus, J. T. (2026). AEGIS: An annotation extraction and genomic integration resource. Bioinformatics. doi: 10.1093/bioinformatics/btag363
AEGIS is licensed under the GNU General Public License v3.0. See the LICENSE.md file for more details. Third-party tools included in the Docker image are distributed under their respective licenses.
Content type
Image
Digest
sha256:759f21ed3…
Size
4.3 GB
Last updated
about 3 hours ago
docker pull tomsbiolab/aegis