Package: getENA
getENASometimes 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.Installationpip install getENAAlternatively, from GitHubpip install git+https://github.com/EnzoAndree/getENAUsageLet's say I'm interested inClostridium perfringenssequencing projects; we have to search ENA for public sequencing projects athttps://www.ebi.ac.uk/ena/browser/text-search?query=clostridium%20perfringens. Here, we choose the codes that we need, for example:PRJNA350702 PRJNA285473 PRJNA508810We 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 followinggetENA.py -acc PRJNA350702 PRJNA285473 PRJNA508810For the second option (recommended for many projects, e.g. >= 5) we run the followinggetENA.py -accfile ena.list.txtWhere 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 parametergetENA.py -acc SRR096826 SRR8867692 SRR7601184If 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 PRJNA508810One of the main features ofgetENA.pyis 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 thegetENA.pyis stopped, you can run the program again and restart the download without losing the files that were already downloaded.By default the output directory ofgetENA.pyis 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 PRJNA508810Output filesThe 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.tsvWherePRJNA350702.tsv,PRJNA285473.tsvandPRJNA508810.tsvare the metadata of selected projects andmetadata.tsvis a merge of this three files. The folderENA_out, contain all FASTQ file of each projectIf 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 ofClostridium perfringensis1502. So the command line to download all assemblies of this species is:getENA.py -o Cperfringens -tax 1502This command line will generate agenomesdirectory within the Cperfringens folder where all assemblies reported to date are placedLicenceGPL v3AuthorEnzo Guerrero-ArayaTwitter:@eguerreroaraya