访问NCBI Entrez数据库
Entrez (http://www.ncbi.nlm.nih.gov/Entrez) 是一个给客户提供 NCBI 各个数据库(如PubMed, GeneBank, GEO等等)访问的检索系统。 用户可以通过浏览器手动输入查询条目访问Entrez,也可以使用 Biopython 的 Bio.Entrez
模块以编程方式访问来访问 Entrez。 如果使用第二种方法,用户用一个 Python 脚本就可以实现在PubMed 里面搜索或者从 GenBank 下载数据。
1 | > pip install Bio #安装模块 |
ESearch: 搜索Entrez数据库
esearch 会根据参数得出所需文献、序列等的 ID 号。
检索文献:
1 | from Bio import Entrez |
检索序列:
1 | from Bio import Entrez |
常用db参数:pubmed
nucleotide
protein
gene
snp
unigene
,默认为pubmed
term参数:在检索文献时,term 就是关键词。在检索序列时,ncbi 自己有一套规则,如Cypripedioideae[Orgn] AND matK[Gene]
的意思是 拖鞋兰物种中的 matK 基因序列
biomol_mrna[properties] AND Osteichthyes[organism]
只要 mRNA 序列在硬骨鱼纲中
其他关键词还有:OR NOT
EFetch: 从Entrez下载数据
1 | from Bio import Entrez |
id 参数 :ncbi 为每一条序列标识的ID号,可以使用 Entrez.esearch 获得。
rettype 参数:常用的有 fasta
gb
retmode 参数:数据的组织形式有 text
xml
1 | from Bio import Entrez, SeqIO |
EGQuery: 全局搜索- 统计搜索的条目
EGQuery提供搜索字段在每个Entrez数据库中的数目。当我们只需要知道在每个数据库中能找到的条目的个数, 而不需要知道具体搜索结果的时候,这个非常的有用。
1 | from Bio import Entrez |
搜索,下载,和解析Entrez核酸记录
获取 Cypripedioideae 在 gene 库的条目数:
1 | from Bio import Entrez |
获得这376条数据的ID:
1 | from Bio import Entrez |
使用 efetch
来下载这些结果的前5条:
1 | ",".join(record["IdList"][:5]) idlist = |