Bio.Blast包
子模块
模块内容
用于解析和存储AMPS HTML输出以及调用NCBI RST Web服务器的代码。
该模块提供代码来解析和存储AMPS ML输出,遵循相关的AMPS ML DTE文件中的定义:https://www.ncbi.nlm.nih.gov/dtd/NCBI_BlastOutput.dtd
该模块还提供调用NCBI提供的AMPS Web服务器的代码。https://blast.ncbi.nlm.nih.gov/
变量:
电子邮件 设置Blast电子邮件参数(默认为无)。
工具 设置Blast工具参数(默认为
biopython).
- exception Bio.Blast.NotXMLError(message)
基类:
ValueError未能将文件解析为HTML。
- __init__(message)
初始化课程。
- __str__()
返回异常的字符串摘要。
- __firstlineno__ = 57
- __static_attributes__ = ('msg',)
- exception Bio.Blast.CorruptedXMLError(message)
基类:
ValueError损坏的HTML。
- __init__(message)
初始化课程。
- __str__()
返回异常的字符串摘要。
- __firstlineno__ = 72
- __static_attributes__ = ('msg',)
- class Bio.Blast.HSP(sequences, coordinates=None)
基类:
Alignment存储一个查询序列与目标序列的比对。
SPP(高分片段对)存储一个查询序列片段与一个目标(命中)序列片段的比对。的
Bio.Blast.HSP类继承自Bio.Align.Alignment课除了有
target和query的属性Bio.Align.Alignment、aBio.Blast.HSP对象具有以下属性:得分: 热休克蛋白评分;
- 注释:可能包含以下键的字典:
“bit score”:SPP(float)的分数(以位为单位);
“评估”: 热休克蛋白的e值(浮动);
“identification”:SPP中的身份数(integer);
'阳性':热休克蛋白阳性数(整);
“差距”: 热休克蛋白中的间隙数(整);
“中线”: 格式化中间行。
A
Bio.Blast.HSP对象的行为与 Bio.Align.Alignment 对象,并可以像这样使用。但是,在打印Bio.Blast.HSP对象时,将RST e值和位分数包括在输出中(除了对齐本身之外)。请参阅文档
Bio.Blast.Record有关BLAST记录中的信息如何存储在Biopython中的更详细说明。- __repr__()
返回路线的表示,包括其形状。
该表示不能与eval()一起使用来重新创建对象,而这通常可以使用简单的Python对象。 例如:
<0x10403d850处的对齐对象(2行x 14列)>
十六进制字符串是对象的内存地址,可用于区分不同的对齐对象。 有关更多信息,请参阅帮助(id)。
>>> import numpy as np >>> from Bio.Align import Alignment >>> alignment = Alignment(("ACCGT", "ACGT"), ... coordinates = np.array([[0, 2, 3, 5], ... [0, 2, 2, 4], ... ])) >>> print(alignment) target 0 ACCGT 5 0 ||-|| 5 query 0 AC-GT 4 >>> alignment <Alignment object (2 rows x 5 columns) at 0x...>
- __str__()
返回对齐方式的人类可读字符串表示形式。
对于序列比对,每条线最多有80列。前10列显示(可能被截断)序列名称,它可能是SeqRecord的id属性,或者是成对比对的“目标”或“查询”。接下来的10列显示序列坐标,与Python中一样使用从零开始的计数。其余60列显示了序列,使用虚线表示间隙。在对齐结束时,结束坐标显示在序列的右侧,再次以零基坐标显示。
成对比对在两个序列之间有一条额外的线,显示序列是否匹配('|')或不匹配('。'),或者是否存在间隙('-')。此线显示的坐标是列索引,这在提取子对齐时很有用。
例如,
>>> from Bio.Align import PairwiseAligner >>> aligner = PairwiseAligner()
>>> seqA = "TTAACCCCATTTG" >>> seqB = "AAGCCCCTTT" >>> seqC = "AAAGGGGCTT"
>>> alignments = aligner.align(seqA, seqB) >>> len(alignments) 1 >>> alignment = alignments[0] >>> print(alignment) target 0 TTAA-CCCCATTTG 13 0 --||-||||-|||- 14 query 0 --AAGCCCC-TTT- 10
请注意,seqC是seqB的反向补数。将其与反向链对齐会产生相同的对齐,但查询坐标会切换:
>>> alignments = aligner.align(seqA, seqC, strand="-") >>> len(alignments) 1 >>> alignment = alignments[0] >>> print(alignment) target 0 TTAA-CCCCATTTG 13 0 --||-||||-|||- 14 query 10 --AAGCCCC-TTT- 0
- __annotations__ = {}
- __firstlineno__ = 87
- __static_attributes__ = ()
- class Bio.Blast.Hit(alignments=())
基类:
Alignments存储针对一个目标的单个查询的单个BLAST命中。
的
Bio.Blast.Hit类继承自Bio.Align.Alignments类,它是Python列表的一个子集。的Bio.Blast.Hit类存储Bio.Blast.HSP对象,继承自Bio.Align.Alignment.一Bio.Blast.Hit因此,对象实际上是一个Bio.Align.Alignment对象大多数命中仅由1个或几个对齐对象组成。每个
Bio.Blast.Hit对象具有target包含以下信息的属性:target.id: 主题的seqId;
目标。描述:主题定义线;
target.name: 主题加入;
len(Target.seq): 主题的序列长度。
请参阅文档
Bio.Blast.Record有关中包含的路线中存储的信息的更详细解释Bio.Blast.Hitobject.- __getitem__(key)
回归自我 [index] .
- __repr__()
返回repr(self)。
- __str__()
返回Hit对象的人类可读摘要。
- __abstractmethods__ = frozenset({})
- __annotations__ = {}
- __firstlineno__ = 205
- __static_attributes__ = ()
- class Bio.Blast.Record
基类:
list存储单个查询的BST结果。
A
Bio.Blast.Record对象是一个Bio.Blast.Hit对象,每个对象对应于BST输出中查询的一次命中。- 的
Bio.Blast.Record对象可能具有以下属性: - 询问: 一
SeqRecord可能包含部分或全部的对象 - 以下信息:
query.id: 查询的SeqId;
select. select:查询的定义行;
len(question.seq): 查询序列的长度。
- 询问: 一
- 统计数据: 包含AMPS运行摘要统计数据的字典。可能
- 包含以下键:
“db-num”: AMPS数据库中的序列数(integer);
“db-len”: AMPS dbd的长度(integer);
“hsp-len”: 有效热休克蛋白长度(整);
“eff-space”:有效搜索空间(float);
“kappa”: Karlin-Altschul参数K(浮动);
“尤利达”: Karlin-Altschul参数Lambda(float);
“熵”: Karlin-Altschul参数H(浮点)。
消息:一些(错误?)信息.
每个
Bio.Blast.Hit对象具有target包含以下信息的属性:target.id: 主题的seqId;
目标。描述:主题定义线;
target.name: 主题加入;
len(Target.seq): 主题的序列长度。
的
Bio.Blast.Hit类继承自Bio.Align.Alignments类,它继承自Python列表。在此列表中,Bio.Blast.Hit对象存储Bio.Blast.HSP对象,继承自Bio.Align.Alignment课 一Bio.Blast.Hit因此,对象实际上是对齐对象的列表。每个热休克蛋白位于
Bio.Blast.Hit对象具有属性target和query属性,像往常一样Bio.Align.Alignment对象存储成对对齐,指向SeqRecord分别表示目标和查询的对象。 对于翻译的BST搜索,features目标或查询的属性可能包含SeqFeature存储氨基酸序列区域的CDS型。 的qualifiers这样的特征的一个属性是具有单个键“coded_by”的字典;对应的值指定编码氨基酸序列的核苷酸序列区域,在具有基于1的坐标的GenBank风格字符串中。每个
Bio.Blast.HSP对象具有以下附加属性:得分: 热休克蛋白评分;
- 注释:可能包含以下键的字典:
“bit score”:SPP(float)的分数(以位为单位);
“评估”: 热休克蛋白的e值(浮动);
“identification”:SPP中的身份数(integer);
'阳性':热休克蛋白阳性数(整);
“差距”: 热休克蛋白中的间隙数(整);
“中线”: 格式化中间行。
>>> from Bio import Blast >>> record = Blast.read("Blast/xml_2212L_blastx_001.xml") >>> record.query SeqRecord(seq=Seq(None, length=556), id='gi|1347369|gb|G25137.1|G25137', name='<unknown name>', description='human STS EST48004, sequence tagged site', dbxrefs=[]) >>> record.stat {'db-num': 2934173, 'db-len': 1011751523, 'hsp-len': 0, 'eff-space': 0, 'kappa': 0.041, 'lambda': 0.267, 'entropy': 0.14} >>> len(record) 78 >>> hit = record[0] >>> type(hit) <class 'Bio.Blast.Hit'> >>> from Bio.Align import Alignments >>> isinstance(hit, Alignments) True >>> hit.target SeqRecord(seq=Seq(None, length=319), id='gi|12654095|gb|AAH00859.1|', name='AAH00859', description='Unknown (protein for IMAGE:3459481) [Homo sapiens]', dbxrefs=[])
大多数命中仅由1个或几个对齐对象组成:
>>> len(hit) 1 >>> alignment = hit[0] >>> type(alignment) <class 'Bio.Blast.HSP'> >>> alignment.score 630.0 >>> alignment.annotations {'bit score': 247.284, 'evalue': 1.69599e-64, 'identity': 122, 'positive': 123, 'gaps': 0, 'midline': 'DLQLLIKAVNLFPAGTNSRWEVIANYMNIHSSSGVKRTAKDVIGKAKSLQKLDPHQKDDINKKAFDKFKKEHGVVPQADNATPSERF GPYTDFTP TTE QKL EQAL TYPVNT ERW IA AVPGR K+'}
目标和查询信息存储在对齐的相应属性中:
>>> alignment.target SeqRecord(seq=Seq({155: 'DLQLLIKAVNLFPAGTNSRWEVIANYMNIHSSSGVKRTAKDVIGKAKSLQKLDP...TKK'}, length=319), id='gi|12654095|gb|AAH00859.1|', name='AAH00859', description='Unknown (protein for IMAGE:3459481) [Homo sapiens]', dbxrefs=[]) >>> alignment.query SeqRecord(seq=Seq('DLQLLIKAVNLFPAGTNSRWEVIANYMNIHSSSGVKRTAKDVIGKAKSLQKLDP...XKE'), id='gi|1347369|gb|G25137.1|G25137', name='<unknown name>', description='human STS EST48004, sequence tagged site', dbxrefs=[])
这是一次BLASTX运行,因此查询序列被翻译:
>>> len(alignment.target.features) 0 >>> len(alignment.query.features) 1 >>> feature = alignment.query.features[0] >>> feature SeqFeature(SimpleLocation(ExactPosition(0), ExactPosition(133)), type='CDS', qualifiers=...) >>> feature.qualifiers {'coded_by': 'gi|1347369|gb|G25137.1|G25137:1..399'}
即,核苷酸0:399(以零基坐标)编码比对中查询的氨基酸。
对于与反向链的比对,限定符中的位置如下所示:
>>> record[72][0].query.features[0].qualifiers {'coded_by': 'complement(gi|1347369|gb|G25137.1|G25137:345..530)'}
- __init__()
初始化Record对象。
- __repr__()
返回repr(self)。
- __str__()
返回url(self)。
- __getitem__(key)
回归自我 [index] .
- keys()
返回每次点击的target.id列表。
- __contains__(key)
返回布尔(输入自我)。
- index(key)
返回target.id等于关键字的命中指数。
- __firstlineno__ = 322
- __static_attributes__ = ('query',)
- 的
- class Bio.Blast.Records(source)
基类:
UserList存储单次RST运行的RST结果。
A
Bio.Blast.Records对象是迭代器。迭代返回返回Bio.Blast.Record对象,每个对象对应于一个BLAST查询。a的常见属性
Bio.Blast.Records对象- 来源: 从其中
Bio.Blast.Records对象 构建了
- 来源: 从其中
程序: 使用的特定BLAST程序(例如,“blastn”)。
版本: BST程序的版本(例如,' BLACK 2.2.27 +')。
参考文献:对AMPS出版物的文献参考。
- DB: 运行查询所针对的BST数据库
(e.g., ' nr ')。
- 询问: 一
SeqRecord可能包含部分或全部的对象 - 以下信息:
query.id: 查询的SeqId;
select. select:查询的定义行;
- query.seq: 查询序列。查询序列。
查询序列。
- 询问: 一
- 参数: 包含用于BST运行的参数的字典。
- 您可能会在本词典中找到以下关键:
- “矩阵”: BST运行中使用的评分矩阵
(e.g.,“);
- “期望”: 预期机会数量的阈值
匹配(float);
- “包括”: 包含的电子价值阈值
psiblast(浮动)中的多遍模型;
'sc-match': 匹配核苷酸的得分(整数);
- “sc-mmatched”:错配的核苷酸评分
(integer);
“缺口开放”: 缺口开盘成本(整);
“gap-extend”: 缺口扩展成本(整);
- “过滤器”: AMPS中应用的过滤选项
run(字符串);
“模式”: PHI-AMPS模式(字符串);
' entrez-query ':对Deliverz查询的请求限制(字符串)。
- mbstat: 包含Mega AMPS搜索统计数据的词典。 因为这
信息存储在靠近该文档的结尾处,只有在完全读取该文件(通过迭代记录直到
StopIteration已发出。此字典可以包含与存储在stat属性aRecordobject.
>>> from Bio import Blast >>> path = "Blast/xml_2218_blastp_002.xml"
在脚本中,您可以使用
with块,就像>>> with Blast.parse(path) as records: ... print(records.source) ... Blast/xml_2218_blastp_002.xml
以确保文件在块结束时关闭。在这里,我们简单地做
>>> records = Blast.parse("Blast/xml_2218_blastp_002.xml")
这样我们就可以立即看到每个命令的输出。
>>> type(records) <class 'Bio.Blast.Records'> >>> records.source 'Blast/xml_2218_blastp_002.xml' >>> records.program 'blastp' >>> records.version 'BLASTP 2.2.18+' >>> records.reference 'Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schäffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997), "Gapped BLAST and PSI-BLAST: a new generation of protein database search programs", Nucleic Acids Res. 25:3389-3402.' >>> records.db 'gpipe/9606/Previous/protein' >>> records.param {'matrix': 'BLOSUM62', 'expect': 0.01, 'gap-open': 11, 'gap-extend': 1, 'filter': 'm L; R -d repeat/repeat_9606;'}
迭代记录返回Bio.Blast.Record对象:
>>> record = next(records) >>> type(record) <class 'Bio.Blast.Record'> >>> record.query.id 'gi|585505|sp|Q08386|MOPB_RHOCA' >>> record = next(records) >>> type(record) <class 'Bio.Blast.Record'> >>> record.query.id 'gi|129628|sp|P07175.1|PARA_AGRTU' >>> record = next(records) Traceback (most recent call last): ... StopIteration
您还可以将记录用作列表,例如通过索引提取记录或通过调用
len或print记录在案。然后,解析器将自动重写记录并存储它们:>>> records = Blast.parse("Blast/wnts.xml") >>> record = records[3] # this causes all records to be read in and stored >>> record.query.id 'Query_4' >>> len(records) 5
读取记录后,您仍然可以重写它们:
>>> for i, record in enumerate(records): ... print(i, record.query.id) ... 0 Query_1 1 Query_2 2 Query_3 3 Query_4 4 Query_5
- __init__(source)
初始化Records对象。
- __enter__()
- __exit__(exc_type, exc_value, exc_traceback)
- __iter__()
- __next__()
- __getitem__(index)
- property data
重写userList的数据属性。
- __repr__()
返回repr(self)。
- __str__()
返回url(self)。
- __abstractmethods__ = frozenset({})
- __firstlineno__ = 570
- __static_attributes__ = ('_index', '_loaded', '_parser', '_records', '_stream', 'source')
- Bio.Blast.parse(source)
解析包含AMPS输出的ML文件并返回Bio.Blast.Records对象。
这返回一个迭代器对象;迭代它将逐个返回Bio.Blast.Record对象。
源可以是文件流或包含BST输出的ML文件的路径。如果是文件流,源必须处于二进制模式。这使得解析器能够检测到来自ML文件的编码,并使用它将ML中的任何文本转换为正确的Unicode字符串。Bio.Blast中的qblast函数以二进制模式返回文件流。对于文件,请在打开文件时使用模式“rb”,如中
>>> from Bio import Blast >>> stream = open("Blast/wnts.xml", "rb") # opened in binary mode >>> records = Blast.parse(stream) >>> for record in records: ... print(record.query.id, record.query.description) ... Query_1 gi|195230749:301-1383 Homo sapiens wingless-type MMTV integration site family member 2 (WNT2), transcript variant 1, mRNA Query_2 gi|325053704:108-1166 Homo sapiens wingless-type MMTV integration site family, member 3A (WNT3A), mRNA Query_3 gi|156630997:105-1160 Homo sapiens wingless-type MMTV integration site family, member 4 (WNT4), mRNA Query_4 gi|371502086:108-1205 Homo sapiens wingless-type MMTV integration site family, member 5A (WNT5A), transcript variant 2, mRNA Query_5 gi|53729353:216-1313 Homo sapiens wingless-type MMTV integration site family, member 6 (WNT6), mRNA >>> stream.close()
- Bio.Blast.read(source)
解析包含单个查询的BST输出的ML文件并返回它。
在内部,该函数使用Bio.Blast.parse来获取通过RST记录的迭代器。 然后,该函数从迭代器中读取一条记录,确保没有更多记录,并将找到的记录作为Bio.Blast.Record对象返回。如果找不到记录或找到多个记录,则引发异常。
源可以是文件流或包含BST输出的ML文件的路径。如果是文件流,源必须处于二进制模式。这使得解析器能够检测到来自ML文件的编码,并使用它将ML中的任何文本转换为正确的Unicode字符串。Bio.Blast中的qblast函数以二进制模式返回文件流。对于文件,请在打开文件时使用模式“rb”,如中
>>> from Bio import Blast >>> stream = open("Blast/xml_21500_blastn_001.xml", "rb") # opened in binary mode >>> record = Blast.read(stream) >>> record.query.id 'Query_78041' >>> record.query.description 'G26684.1 human STS STS_D11570, sequence tagged site' >>> len(record) 11 >>> stream.close()
如果您想要读取包含多个查询的BST输出的文件,请使用Bio.Blast.parse函数。
- Bio.Blast.write(records, destination, fmt='XML')
将BLAST记录写入XML文件,并返回记录数。
- 论点:
记录 - 一
Bio.Blast.Recordsobject.- 目的地-要写入的文件或类似文件的对象,或文件名为
string. File对象必须已在二进制模式下打开以进行写入,并且必须在此函数返回后由调用者关闭(或刷新)以确保所有记录都被写入。
- fmt - 描述要写入的文件格式的字符串
(不区分大小写)。目前,只接受“XML”和“XML2”。
返回写入的记录数(作为一个整数)。
- Bio.Blast.qblast(program, database, sequence, url_base=NCBI_BLAST_URL, auto_format=None, composition_based_statistics=None, db_genetic_code=None, endpoints=None, entrez_query='(none)', expect=10.0, filter=None, gapcosts=None, genetic_code=None, hitlist_size=50, i_thresh=None, layout=None, lcase_mask=None, matrix_name=None, nucl_penalty=None, nucl_reward=None, other_advanced=None, perc_ident=None, phi_pattern=None, query_file=None, query_believe_defline=None, query_from=None, query_to=None, searchsp_eff=None, service=None, threshold=None, ungapped_alignment=None, word_size=None, short_query=None, alignments=500, alignment_view=None, descriptions=500, entrez_links_new_window=None, expect_low=None, expect_high=None, format_entrez_query=None, format_object=None, format_type='XML', ncbi_gi=None, results_file=None, show_overview=None, megablast=None, template_type=None, template_length=None, username='blast', password=None)
使用NCBI的QRST服务器进行RST搜索。
支持Put和Get旧qblast API的所有参数。
请注意,NCBI使用新的Common URL API在互联网上进行BST搜索(https://blast.ncbi.nlm.nih.gov/doc/blast-help/urlapi.html)。因此,该函数使用的一些参数不再(或不再)受到NCBI的官方支持。尽管它们仍在发挥作用,但未来可能会改变。
一些有用的参数:
程序 blastp、blastx、tblastp或tblastx(小写)
数据库 要搜索哪个数据库(例如“nr”)。
序列 要搜索的序列。
ncbi_gi True/指定是否给出“gi”标识符。
描述 要显示的描述数量。 Def 500。
比对 要显示的路线数量。 Def 500。
想到 期望值截止值。 Def 10.0。
矩阵名称 指定另类。矩阵(PAM30、PAM70、BLOSUM80、BLOSUM45)。
滤波器 “无”会关闭过滤。 默认无过滤
- 格式_类型 “HTML”(默认)、“HTML”、“文本”、“ML2”、“JSON2”、
或“表格”。
entrez_查询 Inbox查询以限制Blast搜索-仅适用于搜索核苷BLASTDB时
命中列表大小 要返回的命中数。默认值50
Megablast 真/指定是否使用MEga BST算法(仅blaSYS)
- 短查询 TRUE/确定是否调整
简短的查询序列。请注意,这将覆盖手动设置的参数,例如字大小和e值。当序列长度> 30个残基时关闭。默认:无。
服务 plain、psi、phi、rpsblast、megablast(大写)
该函数不检查参数的有效性,而是将值按原样传递给服务器。 更多帮助,请访问:https://blast.ncbi.nlm.nih.gov/doc/blast-help/urlapi.html
此函数返回的http.client.HTTPSResponse对象具有附加属性rid和rtoe,以及此RST搜索的请求ID和请求执行时间。