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使用相关推荐

  1. Python 是否是下一个 PHP?为什么?

    前几天和一个看好 Python 的 Rails 开发者聊天,他看好 Python 的原因就是 PHP 统治今天的网络应用开发.而 Python 很像下一个 PHP . 『下一个 PHP』如何定义?是指 ...

  2. python在windows下操作word的方法的代码

    把写内容过程经常用的一些内容收藏起来,下边内容内容是关于python在windows下操作word的方法的内容,希望能对各位朋友有些好处. import win32com from win32com. ...

  3. Python中单个下划线“ _”变量的用途是什么?

    这段代码中_ after for的含义是什么? if tbh.bag:n = 0for _ in tbh.bag.atom_set():n += 1 #1楼 下划线_在Python中被视为" ...

  4. python变量必须以字母和下划线_【转载】关于python中带下划线的变量和函数的意义...

    Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...

  5. python open找不到文件的原因_浅谈python在提示符下使用open打开文件失败的原因及解决方法...

    题目:在提示符下使用open打开一个文件 刚开始网上看了下打开的方式,结果一直实现不了,报错是没找到这个文件,而且和我输入的文件名不一样. 错误如下: >>>open('d:\456 ...

  6. Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略

    Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略 目录 双下划线介绍 1.关于双下划线的函数或方法或属性 双下划线介绍 1.关于双下划线的函数或方法或属性 __name_ ...

  7. python对windows进行操作_【转】python 操作windows下的目录

    python 操作windows下的目录 python操作目录.文件相关的函数,在os模块中,当然或许也有别的模块提供了更方便的函数 以下列出的所有函数均亲自测试过! 1.os.getcwd()    ...

  8. python命令提示符窗口在哪里_详解python命令提示符窗口下如何运行python脚本

    以arcgispro的python脚本为例在arcgispro自带的python窗口下运行python脚本 需求: 将arcgispro的.aprx项目包中gdb的数据源路径更换为sde数据源路径. ...

  9. Python中单个下划线“_”变量的目的是什么?

    在Python中,下划线_被视为" 我不关心 "或" 丢失 "变量 python解释器将最后一个表达式值存储到名为的特殊变量中_. >>> 1 ...

  10. python databaselibrary_Robot Framework下DataBaseLibrary的使用

    Robot Framework下DataBaseLibrary的使用 发表于:2012-03-27来源:新浪博客作者:lxg0618点击数: 在Robot Framework的主页上有2个DataBa ...

最新文章

  1. 亚马逊员工流动率150%,每8个月相当于“大换血”,网友:贝佐斯不知足
  2. 电脑科学性计算机怎么用,怎么使用科学计算器59 000×(1+r)-2
  3. std::ios::sync_with_stdio(false)的运用
  4. 微信小程序 网络请求之设置合法域名
  5. GY歌谣之读懂每行代码(飞智)
  6. C#图解教程读书笔记(第3章 类型、存储及变量)
  7. iOS开发证书和配置文件的使用
  8. socketserver 模块的构成
  9. 从键盘录入10个整数,统计有多少个奇数,Java基础轻松实现
  10. 【图像加密】基于Arnold置乱图像加密解密Matlab代码
  11. dedecms教程:龙书浩最新DedeCmsV5.7建站仿站VIP视频教程免费下载
  12. AIX 6:新特性概述
  13. 无线耳机哪个品牌好一点?真无线蓝牙耳机推荐品牌
  14. 你是不是程序员菜鸡,一句话就能证明!
  15. Windows下bat脚本(cmd命令学习)
  16. SpringCloudAlibaba nacos学习笔记
  17. BZOJ2844: albus就是要第一个出场(线性基)
  18. python数据建模步骤_AR(I)MA时间序列建模过程——步骤和python代码
  19. CLion调试redis6源码
  20. 一次简单的JAVA进程到线程资源使用率异常分析

热门文章

  1. 计算机如何共享文件夹给另一台电脑,如何共享文件夹到另一台电脑,两台电脑要怎么共享文件呢?...
  2. 我做过的本职之外的事情
  3. 多一个渠道,多一份收益!
  4. 淘宝自动下单软件//下单神器、、
  5. ALSA学习(2)——pcm设备逻辑
  6. 用户画像的定义及构建方法
  7. 【python爬虫】QQ空间爬虫 笔记
  8. java中 implement_java中implement
  9. vi删除选中内容_vi 删除指令的使用
  10. V-REP仿真简介与用户界面 | Introduction to V-REP simulation and user interface