发布于:2019年09月04号
更新于:2020年02月28号
翻译者:james yang
校验者:james yang

总之这是我最大胆的一次参与开源项目,首先感谢kblinncbi-genome-download的python包,多亏这个好工具,我才能免于再次重写爬虫脚本,它可以一行命令就下载了全部基因组的序列文件,当然NCBI服务器远在,虽然全局ssr也还是下载缓慢,等了将近3个小时才把890多个文件下好。吃水不忘挖井人,索性就把他的README翻译成中文吧,凭借着渣语文和英语功底,搭配着谷歌翻译不是全机翻,既然翻译了就应该负起责任但那英语翻译成汉语实在是太绕口了。以下做一个备份,还有请翻译好的同学看一下。

NCBI基因组下载脚本

Translate by jamesyang, the translation may not be timely. If you can't find it in the Chinese version, you can refer to the original document.
jamesyang翻译,翻译可能不及时,如果在中文文档里找不到需要的东西,你可以参考原文档。

PyPI release

从NCBI下载重组FTP后的细菌和真菌基因组的一些脚本

Mick Watson的Kraken下载程序脚本 中获得的想法,这些脚本也可以在Mick的GitHub仓库中找到。然而,Mick是用Perl语言编写的 专门用于实际构建 Kraken 数据库(如广告所示)。

因此,这是一组侧重于实际基因组下载的脚本。

安装

pip install ncbi-genome-download

或者,从GitHub克隆此存储库,然后运行(在python虚拟环境中)

pip install .

如果在旧版本的Python上失败,请先尝试更新您的pip工具:

pip install --upgrade pip

然后重新运行ncbi-genome-download安装。

或者,ncbi-genome-download也被打包在conda。请参阅 Anaconda/miniconda 网站以安装发行版(强烈推荐)https://conda.io/miniconda.html 安装后可以执行以下操作:

conda install -c bioconda ncbi-genome-download

ncbi-genome-download仅在Python团队仍活跃支持下的Python版本上开发和测试。目前,这些代表版本有2.7,3.5,3.6,3.7和3.8。具体来说,没有尝试在2.7或3.5之前的Python版本下进行测试。

如果您的系统停留在旧版本的 Python 上,请考虑使用 Homebrew 等工具获取更新版本。

ncbi-genome-download0.2.12是支持Python2的最后一个版本。

使用

要从NCBI RefSeq下载GenBank格式的所有的细菌基因组,请运行以下命令:

ncbi-genome-download bacteria

也可以下载多个组:

ncbi-genome-download bacteria,viral

注意:查看所有可用组,请参阅 ncbi-genome-download --help,或只是使用all来检查所有组。命名更具体的组将减少下载大小和查找要下载的序列所需的时间。

如果您的连接速度相当快,您可能需要尝试并行运行多个下载:

ncbi-genome-download bacteria --parallel 4

要从NCBI GenBank下载GenBank格式的所有的真菌基因组,请运行:

ncbi-genome-download --section genbank fungi

要从RefSeq下载所有FASTA格式的病毒基因组,请运行:

ncbi-genome-download --format fasta viral

可以通过提供格式列表或仅下载所有格式来下载多种格式:

ncbi-genome-download --format fasta,assembly-report viral
ncbi-genome-download --format all viral

仅从RefSeq下载GenBank格式的细菌全基因组,请运行:

ncbi-genome-download --assembly-level complete bacteria

通过提供列表,可以一次下载多个程序集级别:

ncbi-genome-download --assembly-level complete,chromosome bacteria

仅从RefSeq下载GenBank格式的细菌参考基因组,请运行:

ncbi-genome-download --refseq-category reference bacteria

要从RefSeq下载Streptomyces(链霉菌)属的细菌基因组,请运行:

ncbi-genome-download --genus Streptomyces bacteria

注意:这是仅由NCBI提供的有机体名称上的简单字符串匹配。

您也可以用一点小技巧来下载特定物种的基因组

ncbi-genome-download --genus "Streptomyces coelicolor" bacteria

注意:引号很重要。同样,这是NCBI提供的有机体名称上的简单字符串匹配。

也可以有多个属:

ncbi-genome-download --genus "Streptomyces coelicolor,Escherichia coli" bacteria

您还可以将属名放入一个文件中,每行一个有机体,例如:

Streptomyces
Amycolatopsis

然后,将该文件的路径(例如my_genera.txt)传递给 --genus 选项,如下所示:

ncbi-genome-download --genus my_genera.txt bacteria

注意:上述命令将从RefSeq下载所有Streptomyces(链球菌)和Amycolatopsis(拟无枝菌酸菌)的基因组。

您可以使用--fuzzy-genus选项模糊匹配字符串。如果您需要匹配NCBI生物体名称中间的值,这很方便,如下所示:

ncbi-genome-download --genus coelicolor --fuzzy-genus bacteria

注意:上述命令将从 RefSeq 下载所有含有“coelicolor”的细菌基因组。

要基于NCBI物种分类ID从RefSeq下载细菌基因组,请运行:

ncbi-genome-download --species-taxid 562 bacteria

注意:上述命令将下载属于Escherichia coli(大肠杆菌)的所有RefSeq基因组。

要基于NCBI分类标识ID从RefSeq下载特定细菌基因组,请运行:

ncbi-genome-download --taxid 511145 bacteria

注意:上述命令将从 RefSeq 下载属于Escherichia coli str. K-12 substr. MG1655的基因组 。

也可以下载多种分类ID或通过在逗号分隔列表中提供数字来下载多种分类ID物种:

ncbi-genome-download --taxid 9606,9685 --assembly-level chromosome vertebrate_mammalian

注意:上述命令将下载猫和人类的参考基因组。

此外,您可以将多个物种分类ID或物种分类ID放入一个文件中,每行一个,并将该文件名分别传递给--species-taxid--taxid参数。

假设您有一个my_taxids.txt文件包含以下内容:

9606
9685

你可以下载猫和人的参考基因组,如下所示:

ncbi-genome-download --taxid my_taxids.txt --assembly-level chromosome vertebrate_mammalian

也可以创建可读的目录结构,并行镜像 NCBI 使用的布局:

ncbi-genome-download --human-readable bacteria

这将使用链接指向NCBI目录结构中的相应文件,因此可以节省文件空间。请注意,链接不支持某些Windows文件系统和旧版Windows。

也可以使用该--human-readable选项重新运行先前的下载。在这种情况下,ncbi-genome-download不会下载任何新的基因组文件,只需创建可读的目录结构。请注意,如果在NCBI端更改了任何文件,将触发文件下载。

根据您的筛选器,有个--dry-run选项可显示下载哪些加入:

ncbi-genome-download --dry-run bacteria

如果要筛选程序集摘要文件的“与类型材料的关系”列,可以使用该--type-material选项。可能的值是“any”,“all”,“type”,“reference”,“synonym”,“proxytype”和/或“neotype”。“any”将包括与定义的类型材料值无关的装配体,“all”将仅下载具有定义值的装配体。可以给出多个值,用逗号分隔:

ncbi-genome-download --type-material type,reference

默认情况下,ncbi-genome-download缓存相应分类组的程序集摘要文件一天。您可以用--no-cache --help选项跳过使用缓存文件。如果要删除任何缓存文件,输出也会显示缓存目录。

要获得所有选项的概述,请运行

ncbi-genome-download --help

作为一种方法

您也可以将其用作方法调用。传递上述被转述的关键字参数(_而不是-)或用--help

import ncbi_genome_download as ngd
ngd.download()

注意:要指定分类组,如bacteria,请使用group关键字。

贡献的脚本: gimme_taxa.py

此脚本允许您找出要传递给 ngd 的 物种分类ID,并将编写一个简单的每行一项文件以传递给它。它使用 ete3 工具包,因此,如果尚未满足,请参阅其站点来安装依赖项。

您可以使用特定的 物种分类ID 或科学名称查询数据库。脚本的主要功能是返回指定父 taxa 的所有子 taxa。该脚本具有用于在输出中写入的信息的各种选项。

基本调用可能如下所示:

# Fetch all descendent taxa for Escherichia (taxid 561):
python gimme_taxa.py -o ~/mytaxafile.txt 561

# Alternatively, just provide the taxon name
python gimme_taxa.py -o all_descendent_taxids.txt Escherichia

# You can provide multiple taxids and/or names
python gimme_taxa.py -o all_descendent_taxids.txt 561,Methanobrevibacter

首次使用时,默认情况下将在主目录中创建一个小的sqlite数据库(使用--database标志更改位置)。您可以使用该--update标志更新此数据库。请注意,如果数据库不在您的主目录中,则必须使用该--database数据库进行指定,否则将在主目录中创建新数据库。

要查看所有帮助:

python gimme_taxa.py
python gimme_taxa.py -h
python gimme_taxa.py --help

许可证

所有代码在Apache许可证版本2下都可用,有关详细信息,请参阅该 LICENSE文件。

Last modification:April 17th, 2020 at 10:34 pm
如果觉得我的文章对你有用,请随意赞赏