Bio.SearchIO.BlatIO模块

Bio.SearchIO解析器,用于BLAT输出格式。

该模块添加了对解析BLAT输出的支持。BLAT(BLAST-Like比对工具)是一个最初为注释人类基因组而构建的序列相似性搜索程序。

Bio.SearchIO.BlastIO使用独立的BLAT版本34、psLayout版本3进行了测试。它应该能够毫无问题地解析psLayout版本4。

有关BLAT的更多信息,请访问以下网站:

支持的格式

BlatIO支持PSL和PSLK输出格式(带或不带标头)的解析、索引和写入。要解析、索引或写入PSLK文件,请使用“pslx”关键字参数并将其设置为True。

>>> # blat-psl defaults to PSL files
>>> from Bio import SearchIO
>>> psl = 'Blat/psl_34_004.psl'
>>> qresult = SearchIO.read(psl, 'blat-psl')
>>> qresult
QueryResult(id='hg19_dna', 10 hits)
>>> # set the pslx flag to parse PSLX files
>>> pslx = 'Blat/pslx_34_004.pslx'
>>> qresult = SearchIO.read(pslx, 'blat-psl', pslx=True)
>>> qresult
QueryResult(id='hg19_dna', 10 hits)

对于解析和索引,您不需要指定文件是否具有标头。对于写作,如果您想写标题,可以将“header”关键字参数设置为True。这会将“psLayout版本3”标头写入您的输出文件。

>>> from Bio import SearchIO
>>> qresult = SearchIO.read(psl, "blat-psl")
>>> SearchIO.write(qresult, "example.psl", "blat-psl", header=True)
(1, 10, 19, 23)
>>> import os
>>> os.remove("example.psl")

请注意,写入的HSPFragments数量可能会超过HeSP对象的数量。这是因为在PSL文件中,可能有由不连续序列片段组成的单个匹配项。这就是HSPFragment对象发挥作用的地方。这些片段被分组为单个热休克蛋白,因为它们共享相同的统计数据(例如匹配数、BLAT评分等)。然而,它们不共享相同的序列属性,例如开始和结束坐标,使它们成为不同的对象。

除了解析PSL(X)文件外,BlatIO还计算搜索结果的身份百分比和分数。这是使用这里发布的计算公式完成的:http://genome.ucsc.edu/FAQ/FAQblat.html#blat4。它模仿了UCSC的网络BLAT服务所做的评分和同一性百分比计算。

由于BlatIO一次解析该文件,因此它期望同一查询的所有结果都位于连续的行中。如果一个查询的结果分布在不连续的行中,BlatIO将认为它们是单独的RoutyResponse对象。

在大多数情况下,PSL(X)格式使用与Python相同的坐标系(从零开始,半开)。这些坐标锚定在正链上。然而,如果查询在负链上对齐,BLAT将将qStarts坐标锚定在负链上。BlatIO意识到了这一点,并且每当看到负链查询匹配时,就会将qStarts坐标重新锚定到正链。相反,当您向PSL(X)文件写入时,BlatIO将再次将qStarts重新锚定到负链。

BlatIO提供以下属性列映射:

对象

属性

列名、值

QueryResult

ID

Q名称、查询序列ID

seq_len

Q大小,查询序列全长

击中

ID

T名称,命中序列ID

seq_len

T大小,命中序列全长

HSP

hit_end

T结束,最后一个命中片段的结束坐标

hit_gap_num

T缺口碱基,插入命中的碱基数量

hit_gapopen_num

T间隙计数、命中间隙插入数

hit_span_all

块大小、每个片段的大小

hit_start

T开始,第一个命中片段的开始坐标

hit_start_all

t开始,每个命中片段的开始坐标

match_num

匹配,非重复匹配的数量

mismatch_num

不匹配,不匹配的数量

match_rep_num

rep. match,属于重复一部分的匹配数

n_num

N,N个碱基的数量

query_end

Q结束,最后一个结束坐标

query_gap_num

查询片段Q缺口碱基,插入查询中的碱基数量

query_gapopen_num

Q间隙计数、查询间隙插入的数量

query_span_all

块大小、每个片段的大小

query_start

Q开始,第一个查询块的开始坐标

query_start_all

qStarts,每个查询片段的开始坐标

透镜 [1]

块计数,路线中的块数

HSPFragment

击中

点击序列(如果存在)

hit_strand

链,命中序列链

查询

查询序列(如果存在)

query_strand

链,查询序列链

除了上面的列映射,BlatIO还提供了以下对象属性:

对象

属性

HSP

gapopen_num

Q间隙计数+ T间隙计数,总数

缝隙开口数量

ident_num

匹配+ repmatches,相同残基的总数

ident_pct

同一性百分比,使用UCSC公式计算

query_is_protein

boolean,查询序列是否为蛋白质

评分

热休克评分,使用UCSC公式计算

最后,还提供了默认的SPP和HSPFragment属性。有关这些属性的更多详细信息,请参阅SPP和HSPFragment文档。

class Bio.SearchIO.BlatIO.BlatPslParser(handle, pslx=False)

基类:object

BLAT PSL格式的解析器。

__init__(handle, pslx=False)

初始化课程。

__iter__()

迭代BlatPslParser,产生查询结果。

__firstlineno__ = 407
__static_attributes__ = ('handle', 'line', 'pslx')
class Bio.SearchIO.BlatIO.BlatPslIndexer(filename, pslx=False)

基类:SearchIndexer

BLAT PSL输出的索引器类。

__init__(filename, pslx=False)

初始化课程。

__iter__()

迭代文件手柄;产生关键字、开始偏差和长度。

get_raw(offset)

从给定的偏移量返回QueryResult对象的原始字节字符串。

__abstractmethods__ = frozenset({})
__annotations__ = {}
__firstlineno__ = 553
__static_attributes__ = ()
class Bio.SearchIO.BlatIO.BlatPslWriter(handle, header=False, pslx=False)

基类:object

flat-psl格式的作家。

__init__(handle, header=False, pslx=False)

初始化课程。

write_file(qresults)

将查询结果写入文件。

__firstlineno__ = 626
__static_attributes__ = ('handle', 'header', 'pslx')