阅读最新的真实Python教程

getENA的Python项目详细描述


License: GPL v3PyPI release

盖特纳

有时我们需要从ENA下载一个测序项目;幸运的是ENA在其平台上提供了一个指向 我们需要的文件。但是,如果文件量很大,我们可以花很多时间手动下载文件。在

我用Python开发了一个小项目,能够以自动化和并行的方式完成这项工作,从而提高性能。在

安装

pip install getENA

或者,从GitHub

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

使用

假设我对Clostridium perfringens测序项目感兴趣;我们必须在https://www.ebi.ac.uk/ena/browser/text-search?query=clostridium%20perfringens上搜索ENA以查找公共测序项目。在这里,我们选择需要的代码,例如:

PRJNA350702 PRJNA285473 PRJNA508810

我们有两个选项来下载FASTQ文件,(1)将项目代码添加到命令行中,以空格作为参数分隔,或者(2)创建一个包含所有需要的项目代码列表的文件。在

对于第一个选项(建议用于少数项目,例如,>;=5),我们运行以下内容

getENA.py -acc PRJNA350702 PRJNA285473 PRJNA508810

对于第二个选项(建议用于许多项目,例如,>;=5),我们运行以下命令

getENA.py -accfile ena.list.txt

在哪里ena.list.txt文件包含所有项目代码列表的文件。在

相反,如果您只想从项目中下载一些选定的基因组,只需添加run_登录作为参数

getENA.py -acc SRR096826 SRR8867692 SRR7601184

如果需要,可以通过增加并行下载的读取次数来提高性能(-t选项)。但是,要小心,因为如果ENA检测到您同时使用FTP连接了许多个连接,那么ENA会中止连接。根据经验,我观察到12个并行连接可以正常工作而不需要ENA取消下载。在

以上命令的许多并行连接的疯狂例子如下:

getENA.py -t 64 -acc PRJNA350702 PRJNA285473 PRJNA508810

getENA.py的一个主要特性是,当您下载FASTQ文件时,它会自动确认它的完整性。如果连接丢失,如果ENA取消连接或getENA.py停止,您可以再次运行程序并重新启动下载,而不会丢失已下载的文件。在

默认情况下,getENA.py的输出目录是当前目录中名为ENA_out的文件夹。它可以用-o参数修改。例如:

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

输出文件

创建的文件和文件夹的格式如下:

|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

其中PRJNA350702.tsvPRJNA285473.tsv和{}是所选项目的元数据,metadata.tsv是这三个文件的合并。文件夹ENA_out,包含每个项目的所有FASTQ文件

如果您只想获取ENA中报告的程序集,可以获取给定分类单元ID的所有FASTA文件。在本例中,Clostridium perfringens的分类单元ID是1502。所以下载这个物种的所有程序集的命令行是:

getENA.py -o Cperfringens -tax 1502

此命令行将在Cperfringens文件夹中生成一个genomes目录,其中放置了迄今为止报告的所有程序集

许可证

GPL v3

作者

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
orm如何在Java中实现规范化映射?   java以编程方式修改Xtext生成的Mwe2工作流   java正在覆盖外部文件中的现有数据,如何停止?   java在ANTLR BNF语法符号中epsilon的等价物是什么?   java如何使用Hibernate@Anyrelated注释?   代码生成生成java类并在运行时加载它   java Maven无法在本地jar文件中收集依赖项   java NetBeans IDE 8.2不显示错误消息   java Selenium web驱动程序找不到元素   java如何修复“拒绝访问属性”invoke“”的权限?   JavaApacheJClouds,从比日期更早的blob中删除blob的最佳方法   java如何比较和排序树集中的项目?   使用JavaSpring和无头/解耦CMS   java使用swagercodegen在不同的类中生成端点   Java外部Keylistener没有响应