发表的文章,如果其数据储存在NCBI上,那么应该会在文章中告诉NCBI上的项目编号,我们可以据此下载这篇文章涉及的原始测序数据,样本信息,蛋白序列等信息,只要是作者上传在了NCBI都可以看到。
本文主要记录一下怎么下载样本信息。
在某篇文章上获得某项目的编号为:PRJNA257197
如果我们访问NCBI网站,在BioProject数据库中检索上面这个编号,会搜到两个相关的结果。仔细看,发现只有其中一个与上面的编号完全匹配。当舍弃前面的大写字母,只检索编号时,发现完美匹配了唯一的结果。并且在结果的页面中,搜索栏里面自动加上了[uid]。这几个数字就是UID(Unique Identifier),即数据库中的某条信息唯一对应的身份证号。
另一方面,想获得该项目的样本信息,直接在BioSample数据库中搜索上述项目编号,无论带不带字母,检索结果都不符合我们预期,因此不能直接在biosample中搜索某项目的样本信息。可以在bioproject中搜索进入到项目页面,然后点击biosample后面的数字,则会跳转到该项目所有样本的页面列表中。
那么,在命令行下载该项目的样本信息可以这样做:
esearch -db bioproject -query 257197 | elink -target biosample | efetch -format native > samples.txt
esearch先再项目数据库中搜索到该项目,注意只用UID作为关键词。
elink这里用的功能是“将输入的一组UID在相同或不同的数据库中检索出与之有链接的UID”,即esearch搜索到的257197这个项目的UID在elink指定的检索目标biosample数据库中进行检索,返回与257197有链接的UID。翻译成人话就是,先搜到257197这个项目,搜索结果列表就只有1个结果(1个UID),将这个结果甩给elink,即点开这个结果开始找里面的超链接,且这个超链接要链接到biosample这个数据库,然后点这个超链接,返回一堆样本的检索结果(返回的UID),这个结果列表页面显示的都是与这个项目有关的。
efetch拿到样本的UID去取回相关的信息。格式native省略-moede参数即取回的数据为纯文本格式。
因此存为txt文件。
NCBI提供的这个Etrez命令行工具中,都是以UID为检索词的,因为数据库中每条记录都给了一个UID。