如何利用efetch從NCBI中批量下載數據?


假設我要從NCBI中下載所有水稻的mRNA序列,如何實施?

找序列

第一步,確定是找到相關序列。html

我從ncbi taxonomy進入,搜索oryza。由於要搜索mRNA核酸序列,今後選擇nucleotide,點擊Go:
image.pngpython

注意,若是你真正想要的是哪些序列。好比,稻屬中可能野生稻之類的並不是你想要的。這時就要用oryza sativa搜索,或者從oryza中選擇合適的。
image.pngvim

進一步在左側欄中選擇mRNA,此時出如今Search details中的關鍵字組合就是咱們的過濾篩選條件,注意不是搜索框中關鍵字,不然你下載的將是未過濾的。
image.pngide

下序列

找到序列以後,就能夠下載序列。一般咱們利用NCBI網頁中的Send to來進行下載。
image.png
可是這種方法很不穩定,常常會掉線,下載的序列極可能不完整,並不適合大批量序列的下載。fetch

這時,Entrez Direct就派上用場了。其中三個常見的命令:命令行

  • esearch:對進行Entrez檢索。
  • efilter:對esearch的檢索結果進行過濾
  • efetch:對上面兩個操做的結果進行抓取(下載)

好比以上示例,咱們能夠用Search details中的關鍵字組合來進行下載。code

esearch -db nucleotide -query 'txid4530[Organism:exp] AND biomol_mrna[PROP]' | efetch -format fasta >all_oryza_mRNA.fasta

從速度來看,還不如網頁直接下載。但由於是命名行,可放在後臺慢慢下載。相對更爲穩定。orm

Entrez Direct的功能很強大,文獻、結構、基因、表達等數據均可下載。BioPerl和BioPython都有相應的用法,感興趣時能夠慢慢摸索。htm

官網命令行:
https://www.ncbi.nlm.nih.gov/books/NBK179288/#chapter6.Sequence_Recordsblog

批量下載NCBI數據的利器——Entrez Direct
Python Entrez.efetch方法代碼示例

相關文章
相關標籤/搜索