python的Bio下的Entrez使用
python的Bio下的Entrez
- biopython文档
- 进入NCBI的Entrez数据库
- 注意事项
- 方法
- (注意Bio.Entrez官方文档的方法并没有展示全部属性,比如maxdata、mindata等,所以要看NCBI的*The E-utilities In-Depth: Parameters, Syntax and More*)
- Entrez.read()
- Entrez.einfo()
- Entrez.esearch()
- Entrez.efetch()
- Entrez.elink()
- Entrez.esummary()
- 参考
biopython文档
http://biopython.org/DIST/docs/tutorial/Tutorial.html
https://biopython-cn.readthedocs.io/zh_CN/latest/index.html
https://biopython-cn.readthedocs.io/zh_CN/latest/cn/chr09.html#entrez
进入NCBI的Entrez数据库
Entrez (https://www.ncbi.nlm.nih.gov/Web/Search/entrezfs.html)是一个数据检索系统,为用户提供对PubMed、GenBank、GEO等NCBI数据库的访问。您可以通过网络浏览器访问Entrez,手动输入查询,也可以使用Biopython s Bio。以规划方式进入Entrez的模块。例如,后者允许您搜索PubMed或从Python脚本中下载GenBank记录。生物。Entrez模块使用Entrez编程实用工具(也称为EUtils),由8个工具组成,在https://www.ncbi.nlm.nih.gov/books/NBK25501/的NCBI页面上有详细描述。这些工具中的每一个都对应于Bio中的一个Python函数。Entrez模块,如下节所述。此模块确保查询使用了正确的URL,并遵循NCBI负责数据访问的指导原则。————来自官方文档机翻
注意事项
如果你使用一个API键,你每秒最多可以做10个查询,否则每秒最多3个查询。这是由Biopython自动执行的。在参数列表中包含api_key="MyAPIkey"或将其设置为模块级变量。
from Bio import Entrez
Entrez.api_key = "MyAPIkey"
使用可选的email参数,NCBI可以在有问题时联系您。您可以在每次调用Entrez时显式地将其设置为一个参数(例如,在参数列表中包含email=“123@example.com”),或者您可以设置一个全局电子邮件地址。
from Bio import Entrez
Entrez.email = "123@example.com"
如果您在一些较大的软件套件中使用了Biopython,请使用工具参数指定此参数。你可以在每次调用Entrez时显式地设置工具名作为参数(例如在参数列表中包括tool=“MyLocalScript”),或者你可以设置一个全局工具名
from Bio import Entrez
Entrez.tool = "MyLocalScript"
方法
**
(注意Bio.Entrez官方文档的方法并没有展示全部属性,比如maxdata、mindata等,所以要看NCBI的The E-utilities In-Depth: Parameters, Syntax and More)
**
Entrez.read()
这个函数解析由NCBI的Entrez实用程序创建的XML文件,返回Python列表和字典的多级数据结构。只要DTD可用,NCBI的Entrez实用程序返回的大多数XML文件都可以通过该函数进行解析。Biopython包括最常用的Entrez实用程序的DTD。——来自代码注释机翻
返回是:
Entrez.Parser.DictionaryElement类型,继承dict类型
NCBI Entrez XML元素映射到字典。
所以dict字典的方法应该都能用
将查询结果XML数据格式转换成python对象
Entrez.einfo()
EInfo为每个NCBI的数据库提供了条目索引,最近更新的时间以及可用的链接。此外,你可以很容易的使用EInfo通过 Entrez获取所有数据库名字的列表一个具有注脚的文本。
from Bio import Entrez
Entrez.email = "123@example.com" # Always tell NCBI who you are
handle = Entrez.einfo()
result = handle.read()
Entrez.esearch()
我们可以使用 Bio.Entrez.esearch() 来搜索任意的数据库,返回pmid等信息。
from Bio import Entrez
Entrez.email = "123@example.com"
search_results = Entrez.read(Entrez.esearch(db="pubmed", term="mutation", reldate=365, datetype="pdat", usehistory="y")
)
count = int(search_results["Count"])
print("Found %i results" % count)
参数:
参数列表 | 意义 |
---|---|
db | 数据库名称 |
term | 查询内容 |
retmax | 检索获取的结果条目数最大值 |
datetype | 设置查询文献的日期类型,是按照修改日期检索、还是出版日期、还是Entrez日期 |
reldate | … |
mindate, maxdate | 两个参数必须一起使用,设置检索日期范围 |
usehistory | … |
retmode | 返回的数据格式;XML是唯一支持的值,它实际上返回TXT。——源代码注释 |
…
python程序里只需要db和term两个参数即可使用。其他参数可以参考:EDirect
Entrez.efetch()
从Entrez中提取完整的记录,可以通过efetch()下载特点格式的文章数据。
通过传入id参数精确查找文献信息。
from Bio import Entrez, Medline
Entrez.email = "123@example.com" # Always tell NCBI who you are
handle = Entrez.efetch(db="nucleotide", id="186972394", rettype="gb", retmode="text")handle = Entrez.efetch(db="pubmed", id=id, rettype="medline", retmode="text")
# record = Entrez.read(handle)#这种方法不好用
record = list(Medline.parse(handle))[0] #检验使用Bio.Medline包
title = record['TI'] if 'TI' in record else 'nan' #标题
year = record['DP'].split(' ')[0] if 'DP' in record else 'nan'#年份
author = record['FAU'] if 'FAU' in record else 'nan'#作者
abtxt = record['AB'] if 'AB' in record else 'nan'#摘要
具体哪个缩写对应哪个信息,Medline源码里有注释
Entrez.elink()
很神奇的函数,上传两个参数db和id,返回查询结果(id)。
功能是:Similar articles,也就是返回和id文献相似的文献()。
功能等同下图。
from Bio import Entrez
Entrez.email = "qwe@example.com"
pmid = "19304878"
record = Entrez.read(Entrez.elink(dbfrom="pubmed", id=pmid))
Entrez.esummary()
从主id检索摘要
其实这个摘要,不是Abstract!!!
所以这个函数的功能esearch(),efetch()都能实现,显得没太大用。
参考
https://www.jianshu.com/p/30bff68b1dda
https://blog.csdn.net/sinat_32872729/article/details/103189573
https://www.jianshu.com/p/378678a19703
python的Bio下的Entrez使用相关推荐
- Python 是否是下一个 PHP?为什么?
前几天和一个看好 Python 的 Rails 开发者聊天,他看好 Python 的原因就是 PHP 统治今天的网络应用开发.而 Python 很像下一个 PHP . 『下一个 PHP』如何定义?是指 ...
- python在windows下操作word的方法的代码
把写内容过程经常用的一些内容收藏起来,下边内容内容是关于python在windows下操作word的方法的内容,希望能对各位朋友有些好处. import win32com from win32com. ...
- Python中单个下划线“ _”变量的用途是什么?
这段代码中_ after for的含义是什么? if tbh.bag:n = 0for _ in tbh.bag.atom_set():n += 1 #1楼 下划线_在Python中被视为" ...
- python变量必须以字母和下划线_【转载】关于python中带下划线的变量和函数的意义...
Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...
- python open找不到文件的原因_浅谈python在提示符下使用open打开文件失败的原因及解决方法...
题目:在提示符下使用open打开一个文件 刚开始网上看了下打开的方式,结果一直实现不了,报错是没找到这个文件,而且和我输入的文件名不一样. 错误如下: >>>open('d:\456 ...
- Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略
Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略 目录 双下划线介绍 1.关于双下划线的函数或方法或属性 双下划线介绍 1.关于双下划线的函数或方法或属性 __name_ ...
- python对windows进行操作_【转】python 操作windows下的目录
python 操作windows下的目录 python操作目录.文件相关的函数,在os模块中,当然或许也有别的模块提供了更方便的函数 以下列出的所有函数均亲自测试过! 1.os.getcwd() ...
- python命令提示符窗口在哪里_详解python命令提示符窗口下如何运行python脚本
以arcgispro的python脚本为例在arcgispro自带的python窗口下运行python脚本 需求: 将arcgispro的.aprx项目包中gdb的数据源路径更换为sde数据源路径. ...
- Python中单个下划线“_”变量的目的是什么?
在Python中,下划线_被视为" 我不关心 "或" 丢失 "变量 python解释器将最后一个表达式值存储到名为的特殊变量中_. >>> 1 ...
- python databaselibrary_Robot Framework下DataBaseLibrary的使用
Robot Framework下DataBaseLibrary的使用 发表于:2012-03-27来源:新浪博客作者:lxg0618点击数: 在Robot Framework的主页上有2个DataBa ...
最新文章
- 亚马逊员工流动率150%,每8个月相当于“大换血”,网友:贝佐斯不知足
- 电脑科学性计算机怎么用,怎么使用科学计算器59 000×(1+r)-2
- std::ios::sync_with_stdio(false)的运用
- 微信小程序 网络请求之设置合法域名
- GY歌谣之读懂每行代码(飞智)
- C#图解教程读书笔记(第3章 类型、存储及变量)
- iOS开发证书和配置文件的使用
- socketserver 模块的构成
- 从键盘录入10个整数,统计有多少个奇数,Java基础轻松实现
- 【图像加密】基于Arnold置乱图像加密解密Matlab代码
- dedecms教程:龙书浩最新DedeCmsV5.7建站仿站VIP视频教程免费下载
- AIX 6:新特性概述
- 无线耳机哪个品牌好一点?真无线蓝牙耳机推荐品牌
- 你是不是程序员菜鸡,一句话就能证明!
- Windows下bat脚本(cmd命令学习)
- SpringCloudAlibaba nacos学习笔记
- BZOJ2844: albus就是要第一个出场(线性基)
- python数据建模步骤_AR(I)MA时间序列建模过程——步骤和python代码
- CLion调试redis6源码
- 一次简单的JAVA进程到线程资源使用率异常分析
热门文章
- 计算机如何共享文件夹给另一台电脑,如何共享文件夹到另一台电脑,两台电脑要怎么共享文件呢?...
- 我做过的本职之外的事情
- 多一个渠道,多一份收益!
- 淘宝自动下单软件//下单神器、、
- ALSA学习(2)——pcm设备逻辑
- 用户画像的定义及构建方法
- 【python爬虫】QQ空间爬虫 笔记
- java中 implement_java中implement
- vi删除选中内容_vi 删除指令的使用
- V-REP仿真简介与用户界面 | Introduction to V-REP simulation and user interface