Bio. Deliverz包
子模块
- 生物学分析器模块
NoneElement
IntegerElement
StringElement
ListElement
DictionaryElement
OrderedListElement
ErrorElement
NotXMLError
CorruptedXMLError
ValidationError
DataHandlerMeta
DataHandler
DataHandler.global_dtd_dir
DataHandler.global_xsd_dir
DataHandler.local_dtd_dir
DataHandler.local_xsd_dir
DataHandler.__init__()
DataHandler.read()
DataHandler.parse()
DataHandler.xmlDeclHandler()
DataHandler.handleMissingDocumentDefinition()
DataHandler.startNamespaceDeclHandler()
DataHandler.endNamespaceDeclHandler()
DataHandler.schemaHandler()
DataHandler.startElementHandler()
DataHandler.startRawElementHandler()
DataHandler.startSkipElementHandler()
DataHandler.endStringElementHandler()
DataHandler.endRawElementHandler()
DataHandler.endSkipElementHandler()
DataHandler.endErrorElementHandler()
DataHandler.endElementHandler()
DataHandler.endIntegerElementHandler()
DataHandler.characterDataHandlerRaw()
DataHandler.characterDataHandlerEscape()
DataHandler.skipCharacterDataHandler()
DataHandler.parse_xsd()
DataHandler.__firstlineno__
DataHandler.__static_attributes__
DataHandler.elementDecl()
DataHandler.open_dtd_file()
DataHandler.open_xsd_file()
DataHandler.save_dtd_file()
DataHandler.save_xsd_file()
DataHandler.externalEntityRefHandler()
模块内容
提供通过万维网访问NCBI的代码。
Deliverz主要网页可访问:http://www.ncbi.nlm.nih.gov/Entrez/
Deliverz编程实用程序网页可访问:http://www.ncbi.nlm.nih.gov/books/NBK25501/
此模块提供了许多功能,如 efetch
(这将作为句柄对象返回数据)。这是Python中使用的标准接口,用于从文件读取数据,或者在本例中是从远程网络连接读取数据,并提供了以下方法: .read()
或者提供逐行的内容迭代。另见“什么是手柄?http://biopython.org/DIST/docs/tutorial/Tutorial.html http://biopython.org/DIST/docs/tutorial/Tutorial.pdf这些函数返回的句柄可以是文本模式,也可以是二进制模式,具体取决于请求的数据和NCBI BLOG z返回的结果。通常,XML数据将处于二进制模式,而其他数据将处于文本模式,这是下游解析器解析数据所要求的。
与磁盘上文件的句柄不同, open(filename)
函数,它有 .name
属性提供文件名、来自的手柄 Bio.Entrez
都有一个 .url
属性提供用于连接到NCBI Deliverz API的URL。
的 epost
, efetch
,而且 esummary
工具采用“id”参数,该参数对应于一个或多个数据库UID(或在序列数据库(例如“nuccore”或“蛋白质”)的情况下,accessiation.Version标识符)。传递给这些函数的“id”关键字的Python值可以是作为字符串或integer的单个ID,也可以是作为字符串/integer的迭代对象的多个ID。您还可以传递包含多个由逗号分隔的ID的单个字符串。的 elink
工具还接受多个ID,但该参数的处理方式与其他三个ID不同。有关更多信息,请参阅该函数的文档字符串。
所有向NCBI Deliverz API发送请求的功能都将自动遵守NCBI速率限制(在没有API密钥的情况下每秒3个请求,或在有API密钥的情况下每秒10个请求),并在遇到暂时故障时自动重新尝试(即连接失败或HTT5XX代码)。默认情况下,Biopython在放弃之前最多尝试三次,并在尝试之间休眠15秒。您可以通过设置来调整这些参数 Bio.Entrez.max_tries
和 Bio.Entrez.sleep_between_tries
.
Deliverz模块还提供了一个将手柄作为输入的ML解析器。
变量:
电子邮件 设置Deliverz电子邮件参数(默认未设置)。
工具 设置Deliverz工具参数(默认为
biopython
).api_key 来自NCBI的个人API密钥。如果未设置,每秒仅允许3次查询。每秒10次查询,否则使用有效的API密钥。
max_tries 配置失败的请求将在错误时自动重新尝试多少次(默认为3)。
sleep_between_tries 因错误而重新尝试请求之前的延迟(以秒为单位)。
功能:
电子提取 从一个或多个主要ID的列表或从用户环境中检索请求格式的记录
电子公告 发布包含主要ID列表的文件,供将来在用户环境中使用,以用于后续搜索策略
esearch 初始化和检索主要ID(用于EFetch、ELink和Esummary)和术语翻译,并可以选择保留结果以供将来在用户环境中使用。
屹领 检查一个或多个主要ID列表中是否存在外部或相关文章链接。 检索指向Deliverz数据库或相关文章的链接的主要ID和相关性分数;为特定ID和数据库创建指向主要LinkOut提供者的超链接,或列出多个ID的LinkOut URL和属性。
einfo 提供每个数据库的字段索引词条计数、上次更新和可用链接。
概要 从主要ID列表或用户环境中检索文档摘要。
egquiry 为使用全局查询的单次搜索提供以HTML形式的Deliverz数据库计数。
埃斯佩尔 检索拼写建议。
ecitmatch 检索与一组输入引用字符串对应的PubMed ID(PMID)。
读 分析上述任何函数返回的ML结果。或者,也可以从以二进制模式打开的文件中读取HTML数据。典型用法是:
>>> from Bio import Entrez >>> Entrez.email = "Your.Name.Here@example.org" >>> handle = Entrez.einfo() # or esearch, efetch, ... >>> record = Entrez.read(handle) >>> handle.close()其中记录现在是Python字典或列表。
解析 分析上述函数返回的ML结果,这些函数可以返回多个记录-例如efetch、esummary和elink。典型用法是:
>>> handle = Entrez.esummary(db="pubmed", id="19304878,14630660", retmode="xml") >>> records = Entrez.parse(handle) >>> for record in records: ... # each record is a Python dictionary or list. ... print(record['Title']) Biopython: freely available Python tools for computational molecular biology and bioinformatics. PDB file parser and structure class implemented in Python. >>> handle.close()此函数仅在ML文件包含多个记录时才适用,并且对于大文件特别有用。
_打开 内部使用的功能。
- Bio.Entrez.epost(db, **keywds)
发布标识符文件以备将来使用。
发布包含UI列表的文件,供将来在用户环境中使用,以便与后续搜索策略一起使用。
有关参数的解释,请参阅在线文档:http://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.EPost
- 返回:
处理结果。
- 抛出:
urllib.error.URLError -- 如果出现网络错误。
- Bio.Entrez.efetch(db, **keywords)
获取Inbox结果,该结果作为处理返回。
EFetch从一个或多个UI的列表或集合或用户环境中检索所请求格式的记录。
有关参数的解释,请参阅在线文档:http://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.EFetch
简短的例子:
>>> from Bio import Entrez >>> Entrez.email = "Your.Name.Here@example.org" >>> handle = Entrez.efetch(db="nucleotide", id="AY851612", rettype="gb", retmode="text") >>> print(handle.readline().strip()) LOCUS AY851612 892 bp DNA linear PLN 10-APR-2007 >>> handle.close()
如果NCBI建议的标识符超过200个,则将自动使用HTTSET而不是HTTGET。
Warning: NCBI于2012年2月更改了默认的重新模式,因此许多以前返回文本输出的数据库现在提供了ML。
- 返回:
处理结果。
- 抛出:
urllib.error.URLError -- 如果出现网络错误。
- Bio.Entrez.esearch(db, term, **keywds)
运行Deliverz搜索并返回结果的处理。
ESSEARCH搜索和检索主要ID(用于EFetch、ELink和Esummary)和术语翻译,并可以选择保留结果以供将来在用户环境中使用。
有关参数的解释,请参阅在线文档:http://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.ESearch
简短的例子:
>>> from Bio import Entrez >>> Entrez.email = "Your.Name.Here@example.org" >>> handle = Entrez.esearch( ... db="nucleotide", retmax=10, idtype="acc", ... term="opuntia[ORGN] accD 2007[Publication Date]" ... ) ... >>> record = Entrez.read(handle) >>> handle.close() >>> int(record["Count"]) >= 2 True >>> "EF590893.1" in record["IdList"] True >>> "EF590892.1" in record["IdList"] True
- 返回:
结果的处理,始终采用ML格式。
- 抛出:
urllib.error.URLError -- 如果出现网络错误。
- Bio.Entrez.elink(**keywds)
检查链接的外部文章并返回手柄。
ELink检查一个或多个主要ID列表中是否存在外部或相关文章链接;检索指向Deliverz数据库或相关文章的链接的ID和相关性分数;为特定ID和数据库创建指向主要LinkOut提供者的超链接,或列出LinkOut URL和多个ID的属性。
有关参数的解释,请参阅在线文档:http://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.ELink
请注意,当给定多个值时,ELink对待“id”参数的方式与其他工具不同。您通常应该将多个UID作为字符串或integer列表传递。这将在结果中提供从源数据库UID到目标数据库UID的“一对一”映射。如果多个源UID作为单个逗号分隔字符串传递,则所有目标UID将在结果中混合在一起。
此示例在PubMed数据库中查找与Biopython应用笔记条目相关的文章:
>>> from Bio import Entrez >>> Entrez.email = "Your.Name.Here@example.org" >>> pmid = "19304878" >>> handle = Entrez.elink(dbfrom="pubmed", id=pmid, linkname="pubmed_pubmed") >>> record = Entrez.read(handle) >>> handle.close() >>> print(record[0]["LinkSetDb"][0]["LinkName"]) pubmed_pubmed >>> linked = [link["Id"] for link in record[0]["LinkSetDb"][0]["Link"]] >>> "14630660" in linked True
这在《Biopython》中有更详细的解释。
- 返回:
结果句柄,默认为XML格式。
- 抛出:
urllib.error.URLError -- 如果出现网络错误。
- Bio.Entrez.einfo(**keywds)
返回Deliverz数据库的摘要作为结果处理。
EInfo提供了字段名称、索引项计数、最后更新和每个ESPIZZ数据库的可用链接。
有关参数的解释,请参阅在线文档:http://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.EInfo
简短的例子:
>>> from Bio import Entrez >>> Entrez.email = "Your.Name.Here@example.org" >>> record = Entrez.read(Entrez.einfo()) >>> 'pubmed' in record['DbList'] True
- 返回:
结果句柄,默认为XML格式。
- 抛出:
urllib.error.URLError -- 如果出现网络错误。
- Bio.Entrez.esummary(**keywds)
将文档摘要视为结果处理。
Esummary从主要ID列表或用户环境中检索文档摘要。
有关参数的解释,请参阅在线文档:http://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.ESummary
此示例在结构数据库中发现了有关条目19923的更多信息:
>>> from Bio import Entrez >>> Entrez.email = "Your.Name.Here@example.org" >>> handle = Entrez.esummary(db="structure", id="19923") >>> record = Entrez.read(handle) >>> handle.close() >>> print(record[0]["Id"]) 19923 >>> print(record[0]["PdbDescr"]) CRYSTAL STRUCTURE OF E. COLI ACONITASE B
- 返回:
结果句柄,默认为XML格式。
- 抛出:
urllib.error.URLError -- 如果出现网络错误。
- Bio.Entrez.egquery(**keywds)
为全球搜索提供Deliverz数据库计数(已废除)。
EGQuery为使用Global Query进行的单次搜索提供了以HTML形式的Deliverz数据库计数。然而,NCBI不再维护此功能,并建议在每个感兴趣的数据库上使用esbitt。
有关参数的解释,请参阅在线文档:http://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.EGQuery
这个基于Biopython收件箱中较长版本的快速示例,只是检查PubMedCentral中是否有超过60个“Biopython”匹配项:
>>> from Bio import Entrez >>> Entrez.email = "Your.Name.Here@example.org" >>> handle = Entrez.egquery(term="biopython") >>> record = Entrez.read(handle) >>> handle.close() >>> for row in record["eGQueryResult"]: ... if "pmc" in row["DbName"]: ... print(int(row["Count"]) > 60) True
- 返回:
结果句柄,默认为XML格式。
- 抛出:
urllib.error.URLError -- 如果出现网络错误。
- Bio.Entrez.espell(**keywds)
将拼写建议视为结果处理。
ESpell检索拼写建议(如果可用)。
有关参数的解释,请参阅在线文档:http://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.ESpell
简短的例子:
>>> from Bio import Entrez >>> Entrez.email = "Your.Name.Here@example.org" >>> record = Entrez.read(Entrez.espell(term="biopythooon")) >>> print(record["Query"]) biopythooon >>> print(record["CorrectedQuery"]) biopython
- 返回:
结果句柄,默认为XML格式。
- 抛出:
urllib.error.URLError -- 如果出现网络错误。
- Bio.Entrez.ecitmatch(**keywds)
为输入引用字符串指定PMID,作为处理返回。
ECitMatch检索与一组输入引用字符串对应的PubMed ID(PMID)。
有关参数的解释,请参阅在线文档:http://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.ECitMatch
简短的例子:
>>> from Bio import Entrez >>> Entrez.email = "Your.Name.Here@example.org" >>> citation_1 = {"journal_title": "proc natl acad sci u s a", ... "year": "1991", "volume": "88", "first_page": "3248", ... "author_name": "mann bj", "key": "citation_1"} >>> handle = Entrez.ecitmatch(db="pubmed", bdata=[citation_1]) >>> print(handle.read().strip().split("|")) ['proc natl acad sci u s a', '1991', '88', '3248', 'mann bj', 'citation_1', '2014248'] >>> handle.close()
- 返回:
结果句柄,默认为纯文本。
- 抛出:
urllib.error.URLError -- 如果出现网络错误。
- Bio.Entrez.read(source, validate=True, escape=False, ignore_errors=False)
将NCBI Deliverz Utilities中的ML文件解析为Python对象。
该函数解析由NCBI的Deliverz Utilities创建的一个ML文件,返回Python列表和字典的多层数据结构。只要其DART可用,该函数都可以解析NCBI的Deliverz Utilities返回的大多数ML文件。Biopython包括最常用的Deliverz Utilities的DDD。
的论点
source
必须是以二进制模式打开的文件或类似文件的对象,或者是文件名。解析器检测来自ML文件的编码,并使用它将ML中的所有文本转换为正确的Unicode字符串。Bio. Deliverz中访问NCBI Deliverz的函数将自动以二进制模式返回HTML数据。对于文件,打开文件时使用模式“rb”,如中>>> from Bio import Entrez >>> path = "Entrez/esearch1.xml" >>> stream = open(path, "rb") # opened in binary mode >>> record = Entrez.read(stream) >>> print(record['QueryTranslation']) biopython[All Fields] >>> stream.close()
或者,您可以直接使用文件名,如中
>>> record = Entrez.read(path) >>> print(record['QueryTranslation']) biopython[All Fields]
这更安全,因为文件流将在读取记录后或发生错误后自动关闭。
如果validate为True(默认值),解析器将根据DART验证该文档,如果该文档包含未在DART中表示的标签,则会引发错误。如果validate为False,解析器将简单地跳过此类标签。
如果escape为True,则所有不是有效HTML的字符都将替换为HTML转义字符,以保证返回的字符串是有效的HTML片段。例如,小于号(<)被替换为。如果escape为False(默认值),则字符串按原样返回。
如果ignore_errors为False(默认值),则ML文件中的任何错误消息都将引发RuntimeMessage。如果ignore_errors为True,则错误消息将存储为WRElement项,而不会引发异常。
尽管数据结构似乎由通用Python列表、字典、字符串等组成,但其中每一个实际上都是从基类型派生的类。这允许我们将每个元素的属性(如果有的话)存储在字典my_Element. attractors中,并将标签名称存储在my_element.tag_0中。
- Bio.Entrez.parse(source, validate=True, escape=False, ignore_errors=False)
将NCBI Deliverz Utilities中的ML文件解析为Python对象。
该函数解析由NCBI的Deliverz Utilities创建的一个ML文件,返回Python列表和字典的多层数据结构。此函数适用于XML文件,这些文件(在Python中)可以表示为单个记录的列表。“read”读取整个文件并返回一个Python列表,而“parse”是一个生成器函数,它逐个返回记录。因此,此函数对于解析大文件特别有用。
只要其DART可用,该函数都可以解析NCBI的Deliverz Utilities返回的大多数ML文件。Biopython包括最常用的Deliverz Utilities的DDD。
的论点
source
必须是以二进制模式打开的文件或类似文件的对象,或者是文件名。解析器检测来自ML文件的编码,并使用它将ML中的所有文本转换为正确的Unicode字符串。Bio. Deliverz中访问NCBI Deliverz的函数将自动以二进制模式返回HTML数据。对于文件,打开文件时使用模式“rb”,如中>>> from Bio import Entrez >>> path = "Entrez/pubmed1.xml" >>> stream = open(path, "rb") # opened in binary mode >>> records = Entrez.parse(stream) >>> for record in records: ... print(record['MedlineCitation']['Article']['Journal']['Title']) ... Social justice (San Francisco, Calif.) Biochimica et biophysica acta >>> stream.close()
或者,您可以直接使用文件名,如中
>>> records = Entrez.parse(path) >>> for record in records: ... print(record['MedlineCitation']['Article']['Journal']['Title']) ... Social justice (San Francisco, Calif.) Biochimica et biophysica acta
这更安全,因为文件流将在读取所有记录后或发生错误后自动关闭。
如果validate为True(默认值),解析器将根据DART验证该文档,如果该文档包含未在DART中表示的标签,则会引发错误。如果validate为False,解析器将简单地跳过此类标签。
如果escape为True,则所有不是有效HTML的字符都将替换为HTML转义字符,以保证返回的字符串是有效的HTML片段。例如,小于号(<)被替换为。如果escape为False(默认值),则字符串按原样返回。
如果ignore_errors为False(默认值),则ML文件中的任何错误消息都将引发RuntimeMessage。如果ignore_errors为True,则错误消息将存储为WRElement项,而不会引发异常。
尽管数据结构似乎由通用Python列表、字典、字符串等组成,但其中每一个实际上都是从基类型派生的类。这允许我们将每个元素的属性(如果有的话)存储在字典my_Element. attractors中,并将标签名称存储在my_element.tag_0中。