原始数据下载专题 | datasets——基因与基因组数据查询和获取的NCBI官方解决方案
背景
原始数据下载专题到最后一个工具啦,前面介绍的很多工具都是下载原始的测序数据
的,而这个则不同,它是NCBI官方推出的用于查询和获取基因、基因组数据
的工具。
NCBI的官方工具大家有印象的可能是Entrez
,但是今天要介绍的这个datasets
是一套新的更现代化的工具:
简单介绍
Entrez
:
Entrez
是NCBI
的综合搜索和检索系统,涵盖多个数据库,如PubMed、基因、核酸序列和蛋白质序列等。它允许用户通过固定的URL语法进行搜索、链接和检索操作。这些工具使研究人员能够以编程方式自动访问NCBI的各种数据库。简单介绍
Datasets
:
Datasets
是NCBI推出的现代化工具,旨在简化基因组、分类和基因信息的访问和下载。它提供了一个统一的入口,用户可以通过Web界面
或命令行界面
获取所需的数据集。NCBI已宣布,Datasets
将取代传统的Genome和Assembly资源,提供更流畅的用户体验。
安装
conda一键完成:
conda install ncbi-datasets-cli
这个工具还在活跃的开发中,基本上半个月就更新一个小版本,目前最新版是16.39.0
如果你直接搜索datasets
,那个是huggingface旗下的用于机器学习模型训练的数据集,跟咱们今天介绍的不是一个东西,要分清楚哦。
使用
datasets
主要的三个子程序分别是:
- summary: 打印包含基因、基因组、分类学或病毒元数据的数据报告
- download:以zip压缩包形式下载一个基因、基因组或者病毒的数据集
- rehydrate:解除冻结已下载的冻结数据集
Data Retrieval Commands
summary Print a data report containing gene, genome, taxonomy or virus metadata
download Download a gene, genome or virus dataset as a zip file
rehydrate Rehydrate a downloaded, dehydrated dataset
前两个功能大家应该好理解,我解释一下第三个rehydrate:
在NCBI的datasets命令行工具中,
rehydrate
命令用于处理之前下载的“脱水”数据集。当您使用
datasets download
命令并添加--dehydrated
标志下载数据集时,系统会创建一个包含元数据和数据文件位置的压缩包,但不包含实际的数据文件。这种方法适用于需要下载大量数据的情况,因为初始下载的文件较小,便于传输和管理。
下载并解压缩该压缩包后,您可以使用rehydrate命令根据元数据中的文件位置下载实际的数据文件,从而“重新填充”数据集。这种两步下载过程提高了大规模数据集的下载效率和灵活性。
下载这个功能比较常用咱们先来使用这个。
下载一共能下载四个方面的内容:
- gene:下载一个基因的蛋白质和DNA序列
- genome:下载一个基因组的组装注释数据
- taxonomy:根据进化分类下载数据,例如
taxon human,sars-cov-2
- virus: 下载病毒相关的数据
场景1:下载基因组数据
基因组文件下载
在大多数的生信分析的准备工作里都有要下载基因组这一步,以前都是打开网页不断地查询之后复制链接地址然后下载,现在直接一行命令就可以完成了。
在genome
这个子程序里,又分为通过taxon
或者accession
来下载。
例如官方给的案例:
datasets download genome accession GCF_000001405.40 --chromosomes X,Y --include genome,gff3,rna
datasets download genome taxon "bos taurus" --dehydrated
datasets download genome taxon human --assembly-level chromosome,complete --dehydrated
datasets download genome taxon mouse --search C57BL/6J --search "Broad Institute" --dehydrated
用taxon途径
下载一下拟南芥
(Arabidopsis thaliana)的基因组文件。
datasets
可以不仅仅是把参考基因组文件下了,还把一整套的基因组注释文件也一起下载下来:
datasets download genome taxon "Arabidopsis thaliana" --reference --include genome,gff3,gtf,rna,cds,protein --filename Arabidopsis.genome.zip
- 如果不指定
--filename
则默认会使用ncbi_dataset.zip
作为输出的文件名。 -
--reference
用于指定NCBI官方打了reference标记
的版本,也就是官方认定的参考基因组版本,如果不加这个参数,默认会下载所有的基因组版本。 -
--include
用于指定要下载的内容,genome
,gff3
,gtf
,rna
,cds
,protein
,gbff
,seq-report
都是可选的,默认是仅下载genome
。 - 像一些常见的物种有
nickname
,例如human
和mouse
就可以不用写拉丁名直接用常用名词下载了。
下载一个物种的所有基因组组装版本
当涉及到大量数据下载的时候就可以用--dehydrated
这个参数先脱水, 也就是先获取信息,然后再rehydrate
下载想要的信息。
datasets download genome taxon "Arabidopsis thaliana" --dehydrated --filename Arabidopsis.genome.all.zip
下载下来之后解压开,有文件里有一个叫ncbi_dataset/fetch.txt
,这个文件大概长这样:
https://api.ncbi.nlm.nih.gov/datasets/fetch_h/R2V0UmVtb3RlRGF0YWZpbGU/eNqTyuRKz0tOytROKymw0tdPT83Lz00t1k_MydF3d3bUNzAwAGJDfXNjUxA_3gAEDIE8PaP4EEfPIEMDPUOcEvFg0zKT9dLyEvXSqwwYLRgBs5Ud6A 0 data/GCA_000001735.2/GCA_000001735.2_TAIR10.1_genomic.fna
https://api.ncbi.nlm.nih.gov/datasets/fetch_h/R2V0UmVtb3RlRGF0YWZpbGU/eNqTyuXKzktOytROKymw0tdPT83Lz00t1k_MydF3d3bUNzAw0DcyNNQ3MjcF8eOBfCAXyNMzjHcM9gWzywzxSMWDTcxM1kvLS9RLrzJgtGAEADJ9Hx4 0 data/GCA_000211275.1/GCA_000211275.1_ASM21127v1_genomic.fna
看起来是一个三列的文件,第一列是要下载的文件的URL地址,第二列是个文件大小,显示为0,这可能表示文件大小未知或未指定。
第三列表示文件在本地存储时的路径。
我把前两行的内容代替掉整个fetch.txt文件,然后运行下面这个
datasets rehydrate --directory .
萌哥吐槽时间:
它这个功能有点傻,是自动匹配*/ncbi_dataset/fetch.txt
这样一个地址的,如果重命名了文件夹就找不到了,会报下载失败。
也不能在上面的命令里指定datasets rehydrate --directory ncbi_dataset/
,因为它会去找ncbi_dataset/ncbi_dataset/fetch.txt
这样的一个地址然后告诉你找不到这个地址而下载失败。不够智能啊。
下载下来的文件会存放在./ncbi_dataset/data
以各自的accession id命名的文件夹里。
场景2:下载基因数据
可以用以下的方式下载gene数据
datasets download gene gene-id 672
datasets download gene symbol brca1 --taxon "mus musculus"
datasets download gene accession NP_000483.3
datasets download gene gene-id 2778 --fasta-filter NC_000020.11,NM_001077490.3,NP_001070958.1
gene支持下面这四种方式:
-
gene-id
: 是一串纯数字,例如著名的人类的tp53基因
是7157
。 -
symbol
:基因的名称,比如brca1
,tp53
-
accession
:基因的NCBI编号
-
taxon
:NCBI的Taxonomy ID
,拉丁名或者是常用名。
有的时候做进化树,会使用到特定的基因,比如酵母
(saccharomyces cerevisiae)的RPO21
基因。
这个基因的gene id
是851415
,而RPO21
则是Official Symbol
。YDL140C
是这个基因的Locus tag
(不支持这个关键字)。
但是我尝试了几次:
datasets download gene symbol rpo21
datasets download gene symbol RPO21 #试了试大写
得到的结果都是
Error: No genes found that match selection
Use datasets download gene symbol --help for detailed help about a command.
看起来这个symbol
的功能可能目前只适用于人类的Official Symbol
,感觉可以去提一个issue。
用Symbol
下载tp53倒是非常丝滑
datasets download gene symbol tp53 --ortholog all --filename tp53.zip
-
--ortholog
是把所有物种中含有这个symbol的基因都下载下来。感觉很适合用在做系统发育树的分析上。
用gene-id
的方法去下载数据倒是很容易。
datasets download gene gene-id 851415 --filename RPO21.zip
下载下来的压缩文件默认情况下会同时包含DNA序列和蛋白质序列。
如果你想下载时同时包含5' UTR
或者3' UTR
的信息,也可以也可以用--include
来指定。
萌哥碎碎念
也没想到自己真能把这个系列写完,之后可能还想再更新一个大道至简的原始数据下载方法
,介绍一下https://sra-explorer.info/
这个工具结合wget
或者curl
或者axel
的下载方式作为这个专题的收尾,然后再整理成一个大合集推文方便大家横向比较。
接下来距离我毕业大概还有五百多天,一半年,说长不长说短不短,要开始转变重心从咔咔分析数据到开始学习如何写文章了。我也收集了一些关于如何写学术论文的文章,到时候可以分享读文献笔记作为一个“从零开始学习学术论文写作”
的专题给大家。总的框架是输入,模仿,输出
,大家敬请期待哈。
说起来似乎是明白写公众号的意义了,其实还是主要是服务我自己,除非你是广告主来约投放,那么可以为了你写东西,否则绝大多数的内容都是为我自己服务的。当然包括给粉丝回答问题修复bug这也是一种为我服务。写推文的过程也是我自己整理学习和内化的一个过程,挺好。
版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/180845.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论