Skip to main content

Ensembl GenomIO

License Coverage CI Release

Pipelines to turn basic genomic data into Ensembl cores and back.

This is a multilanguage (Perl, Python) repo providing eHive pipelines and various scripts (see below) to prepare genomic data and load it as Ensembl core database or to dump such core databases as file bundles.

Bundles themselves consist of genomic data in various formats (e.g. fasta, gff3, json) and should follow the corresponding specification.

Installation and configuration

This repository is publicly available in PyPI, so it can be easily installed with your preferred Python package manager, e.g.:

pip install ensembl-genomio

Prerequisites

Pipelines are intended to be run inside the Ensembl production environment. Please, make sure you have all the proper credential, keys, etc. set up.

Get repo and install

Clone:

git clone git@github.com:Ensembl/ensembl-genomio.git

Install the python part (of the pipelines) and test it:

pip install ./ensembl-genomio
# And test it has been installed correctly
python -c 'import ensembl.io.genomio'

Update your perl envs (if you need to)

export PERL5LIB=$(pwd)/ensembl-genomio/src/perl:$PERL5LIB
export PATH=$(pwd)/ensembl-genomio/scripts:$PATH

Optional installation

If you need to install "editable" Python package use '-e' option

pip install -e ./ensembl-genomio

To install additional dependencies (e.g. [docs] or [cicd]) provide [<tag>] string, e.g.:

pip install -e ./ensembl-genomio[cicd]

For the list of tags see [project.optional-dependencies] in pyproject.toml.

Additional steps to use automated generation of the documentation

  • Install python part with the [docs] tag
  • Change into repo dir
  • Run mkdocs build command
git clone git@github.com:Ensembl/ensembl-genomio.git
cd ./ensembl-genomio
pip install -e .[docs]
mkdocs build

Nextflow installation

Please, refer to the "Installation" section of the Nextflow pipelines document.

Pipelines

Initialising and running eHive-based pipelines

Pipelines are derived from Bio::EnsEMBL::Hive::PipeConfig::HiveGeneric_conf, or from Bio::EnsEMBL::Hive::PipeConfig::EnsemblGeneric_conf, of from Bio::EnsEMBL::EGPipeline::PipeConfig::EGGeneric_conf (see documentation).

And the same perl class prefix used for every pipeline: Bio::EnsEMBL::EGPipeline::PipeConfig:: .

N.B. Don't forget to specify -reg_file option for the beekeeper.pl -url $url -reg_file $REG_FILE -loop command.

init_pipeline.pl Bio::EnsEMBL::Pipeline::PipeConfig::BRC4_genome_loader_conf
    $($CMD details script) \
    -hive_force_init 1\
    -queue_name $SPECIFIC_QUEUE_NAME \
    -registry $REG_FILE \
    -pipeline_tag "_${PIPELINE_RUN_TAG}" \
    -ensembl_root_dir ${ENSEMBL_ROOT_DIR} \
    -dbsrv_url $($CMD details url) \
    -proddb_url "$($PROD_SERVER details url)""$PROD_DBNAME" \
    -taxonomy_url "$($PROD_SERVER details url)""$TAXONOMY_DBNAME" \
    -release ${RELEASE_VERSION} \
    -data_dir ${INPUT_DIR}/manifests_dir/ \
    -pipeline_dir $OUT_DIR/loader_run \
    ${OTHER_OPTIONS} \
    2> $OUT_DIR/init.stderr \
    1> $OUT_DIR/init.stdout

SYNC_CMD=$(cat $OUT_DIR/init.stdout | grep -- -sync'$' | perl -pe 's/^\s*//; s/"//g')
# should get something like
#   beekeeper.pl -url $url -sync

LOOP_CMD=$(cat $OUT_DIR/init.stdout | grep -- -loop | perl -pe 's/^\s*//; s/\s*#.*$//; s/"//g')
# should get something like
#   beekeeper.pl -url $url -reg_file $REG_FILE -loop

$SYNC_CMD 2> $OUT_DIR/sync.stderr 1> $OUT_DIR/sync.stdout
$LOOP_CMD 2> $OUT_DIR/loop.stderr 1> $OUT_DIR/loop.stdout

List of the pipelines

Pipeline name Description Document Comment Module
BRC4_genome_loader creates an Ensembl core database from a set of flat files or adds ad-hoc (i.e. organellas) sequences to the existing core BRC4_genome_loader Bio::EnsEMBL::Pipeline::PipeConfig::BRC4_genome_loader_conf
BRC4_genome_dumper
BRC4_genome_prepare
BRC4_addition_prepare
BRC4_genome_compare
LoadGFF3
LoadGFF3Batch

Scripts

CI/CD bits

As for now some Gitlab CI pipelines introduced to keep things in shape. Though, this bit is in constant development. Some documentation can be found in docs for GitLab CI/CD

Various docs

See docs

Unit testing

The Python part of the codebase has now unit tests available to test each module. Make sure you have installed this repository's [cicd] dependencies (via pip install ensembl-genomio[cicd]) before continuing.

Running all the tests in one go is as easy as running pytest from the root of the repository. If you also want to measure, collect and report the code coverage, you can do:

coverage run -m pytest
coverage report

You can also run specific tests by supplying the path to the specific test file/subfolder, e.g.:

pytest lib/python/tests/test_schema.py

Acknowledgements

Some of this code and documentation is inherited from the EnsemblGenomes and other Ensembl projects. We appreciate the effort and time spent by developers of the EnsemblGenomes and Ensembl projects.

Thank you!

Metadata

Release files for ensembl-genomio 1.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ensembl-genomio 1.7.0
File Size Uploaded Provenance Actions
ensembl_genomio-1.7.0.tar.gz 648.3 kB With provenance Details for ensembl_genomio-1.7.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ensembl-genomio 1.7.0
File Interpreter ABI Platform Actions
ensembl_genomio-1.7.0-py3-none-any.whl Python 3 none any Details for ensembl_genomio-1.7.0-py3-none-any.whl

Total release size: 1.2 MB

Release files / ensembl_genomio-1.7.0.tar.gz

Download URL ensembl_genomio-1.7.0.tar.gz
Size 648.3 kB
Tags Source
SHA-256 checksum
How to use checksums
ba9b136b45d5c372f6002c8b6746cf0bae82cbc0fc71e0e8accd0efd2c0efc4c
BLAKE2b-256 checksum
How to use checksums
4afce337abaaeb6706451de37af49bb079492de26409ee78c9947f6cdc71d3f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 18, 2026.

Transparency log

Release files / ensembl_genomio-1.7.0-py3-none-any.whl

Download URL ensembl_genomio-1.7.0-py3-none-any.whl
Size 526.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a5222f340b99dd25295afa4cc73a961f1b1703eb3e9d13696b388e2651516997
BLAKE2b-256 checksum
How to use checksums
b23c15598ededdfe33fe86ce562ad4da537bf253719ca153d9e52c1e5e94f7d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 18, 2026.

Transparency log

Security for ensembl-genomio 1.7.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ensembl_genomio-1.7.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 18, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page