Skip to main content

License: GPL v3 PyPI release

getENA

Sometimes we need to download a sequencing project from ENA; fortunately ENA offers in its platform a link to the file that we need. However, we can spend a lot of time downloading files manually if the amount of files is large.

I have developed a small project in Python to be able to do this work in an automated and parallel way to increase the performance.

Installation

pip install getENA

Alternatively, from GitHub

pip install git+https://github.com/EnzoAndree/getENA

Usage

Let's say I'm interested in Clostridium perfringens sequencing projects; we have to search ENA for public sequencing projects at https://www.ebi.ac.uk/ena/browser/text-search?query=clostridium%20perfringens. Here, we choose the codes that we need, for example:

PRJNA350702 PRJNA285473 PRJNA508810

We have 2 options to download the FASTQ files, (1) add the project codes to the command line separated by spaces as an argument, or (2) make a file containing a list of all the project codes that need.

For the first option (recommended for few projects, e.g. >= 5) we run the following

getENA.py -acc PRJNA350702 PRJNA285473 PRJNA508810

For the second option (recommended for many projects, e.g. >= 5) we run the following

getENA.py -accfile ena.list.txt

Where ena.list.txt is the file containing a list of all the project codes.

Instead, if you only want to download a few selected genomes from the project, simply add the run_accession as a parameter

getENA.py -acc SRR096826 SRR8867692 SRR7601184

If you want, you can increase the performance by increasing the number of reads that are downloaded in parallel (-t option). However, be careful, because ENA aborts the connection if it detects that you have many connections at the same time with its FTP. Empirically I have observed that 12 parallel connections work properly without ENA cancelling the download.

As a crazy example of many parallel connections of the above commands would be the following:

getENA.py -t 64 -acc PRJNA350702 PRJNA285473 PRJNA508810

One of the main features of getENA.py is that it automatically confirms the integrity of the FASTQ file when you download it. If the connection is lost, if ENA cancels the connection or if the getENA.py is stopped, you can run the program again and restart the download without losing the files that were already downloaded.

By default the output directory of getENA.py is a folder called ENA_out in the current directory. It can be modified with the -o argument. For example:

getENA.py -o Cperfringens -t 64 -acc PRJNA350702 PRJNA285473 PRJNA508810

Output files

The scheme of the files and folders created follows the next format:

|ENA_out
|-- metadata.tsv
|-- ERR0001_1.fastq.gz
|-- ERR0001_2.fastq.gz
|-- ...
|-- ERR0009_1.fastq.gz
|-- ERR0009_2.fastq.gz
|-- tmp
|---- PRJNA350702.tsv
|---- PRJNA285473.tsv
|---- PRJNA508810.tsv

Where PRJNA350702.tsv, PRJNA285473.tsv and PRJNA508810.tsv are the metadata of selected projects and metadata.tsv is a merge of this three files. The folder ENA_out, contain all FASTQ file of each project

If you only want to get the assemblies reported in ENA, you can get all the FASTA files for a given taxon ID. In this case the taxon id of Clostridium perfringens is 1502. So the command line to download all assemblies of this species is:

getENA.py -o Cperfringens -tax 1502

This command line will generate a genomes directory within the Cperfringens folder where all assemblies reported to date are placed

Licence

GPL v3

Author

Metadata

Release files for getENA 1.2.2

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

Built distribution (wheel)

Table of built distributions (wheels) for getENA 1.2.2
File Interpreter ABI Platform
getENA-1.2.2-py3-none-any.whl Python 3 none any Details

Release files / getENA-1.2.2-py3-none-any.whl

Download URL getENA-1.2.2-py3-none-any.whl
Size 19.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a7ea818ee03ba1b23c3b6a22b62a874cc8f3924e87317a9320743ac9a63a8fe0
BLAKE2b-256 checksum
How to use checksums
b979aaf72825669d929c9d2121a716cd38db5533806f3e3661dd3027b4b0b606
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.3

Security for getENA 1.2.2

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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