假设我要从NCBI中下载全部水稻的mRNA序列,如何实施?
找序列
第一步,肯定是找到相关序列。
我从ncbi taxonomy进入,搜索oryza。因为要搜索mRNA核酸序列,从此选择nucleotide,点击Go:
注意,如果你真正想要的是哪些序列。比如,稻属中可能野生稻之类的并非你想要的。这时就要用oryza sativa搜索,或者从oryza中选择合适的。
进一步在左侧栏中选择mRNA,此时出现在Search details中的关键字组合就是我们的过滤筛选条件,注意不是搜索框中关键字,否则你下载的将是未过滤的。
下序列
找到序列之后,就可以下载序列。通常我们利用NCBI网页中的Send to来进行下载。
但是这种方法很不稳定,经常会掉线,下载的序列很可能不完整,并不适合大批量序列的下载。
这时,Entrez Direct就派上用场了。其中三个常见的命令:
- esearch:对进行Entrez检索。
- efilter:对esearch的检索结果进行过滤
- efetch:对上面两个操作的结果进行抓取(下载)
比如以上示例,我们可以用Search details中的关键字组合来进行下载。
esearch -db nucleotide -query 'txid4530[Organism:exp] AND biomol_mrna[PROP]' | efetch -format fasta >all_oryza_mRNA.fasta
从速度来看,还不如网页直接下载。但因为是命名行,可放在后台慢慢下载。相对更为稳定。
Entrez Direct的功能很强大,文献、结构、基因、表达等数据都可下载。BioPerl和BioPython都有相应的用法,感兴趣时可以慢慢摸索。
官网命令行:
https://www.ncbi.nlm.nih.gov/books/NBK179288/#chapter6.Sequence_Records