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 |
|
ident_num |
匹配+ repmatches,相同残基的总数 |
|
ident_pct |
同一性百分比,使用UCSC公式计算 |
|
query_is_protein |
boolean,查询序列是否为蛋白质 |
|
评分 |
热休克评分,使用UCSC公式计算 |
最后,还提供了默认的SPP和HSPFragment属性。有关这些属性的更多详细信息,请参阅SPP和HSPFragment文档。
- class Bio.SearchIO.BlatIO.BlatPslParser(handle, pslx=False)
基类:
objectBLAT PSL格式的解析器。
- __init__(handle, pslx=False)
初始化课程。
- __iter__()
迭代BlatPslParser,产生查询结果。
- __firstlineno__ = 407
- __static_attributes__ = ('handle', 'line', 'pslx')
- class Bio.SearchIO.BlatIO.BlatPslIndexer(filename, pslx=False)
基类:
SearchIndexerBLAT PSL输出的索引器类。
- __init__(filename, pslx=False)
初始化课程。
- __iter__()
迭代文件手柄;产生关键字、开始偏差和长度。
- get_raw(offset)
从给定的偏移量返回QueryResult对象的原始字节字符串。
- __abstractmethods__ = frozenset({})
- __annotations__ = {}
- __firstlineno__ = 553
- __static_attributes__ = ()