Bio.SearchIO.BlatIO 模块

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

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

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

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

支持的格式

BlatIO 支持对 PSL 和 PSLX 输出格式进行解析、索引和写入,无论是否包含标题。要解析、索引或写入 PSLX 文件,请使用 '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")

请注意,写入的 HSPFragment 数量可能超过 HSP 对象的数量。这是因为在 PSL 文件中,可以将单个匹配项组成非连续的序列片段。这就是 HSPFragment 对象发挥作用的地方。这些片段被归组到单个 HSP 中,因为它们共享相同的统计信息(例如匹配数量、BLAT 评分等)。但是,它们不共享相同的序列属性,例如起点和终点坐标,这使得它们成为不同的对象。

除了解析 PSL(X) 文件外,BlatIO 还会计算搜索结果的百分比标识和评分。这是使用此处发布的计算公式完成的:http://genome.ucsc.edu/FAQ/FAQblat.html#blat4。它模仿了 UCSC 的 Web BLAT 服务所做的评分和百分比标识计算。

由于 BlatIO 以单次传递的方式解析文件,因此它期望来自同一查询的所有结果都在连续的行中。如果来自一个查询的结果分布在非连续的行中,那么 BlatIO 将认为它们是单独的 QueryResult 对象。

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

BlatIO 提供以下属性-列映射

对象

属性

列名,值

QueryResult

id

Q name,查询序列 ID

seq_len

Q size,查询序列完整长度

Hit

id

T name,命中序列 ID

seq_len

T size,命中序列完整长度

HSP

hit_end

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

hit_gap_num

T gap bases,插入到命中序列的碱基数量

hit_gapopen_num

T gap count,命中序列中插入的间隙数量

hit_span_all

blockSizes,每个片段的大小

hit_start

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

hit_start_all

tStarts,每个命中片段的起始坐标

match_num

match,非重复匹配的数量

mismatch_num

mismatch,错配的数量

match_rep_num

rep. match,属于重复序列的匹配数量

n_num

N’s,N 碱基的数量

query_end

Q end,最后一个查询片段的结束坐标

query_gap_num

query fragment Q gap bases,插入到查询序列的碱基数量

query_gapopen_num

Q gap count,查询序列中插入的间隙数量

query_span_all

blockSizes,每个片段的大小

query_start

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

query_start_all

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

len [1]

block count,比对中的块数量

HSPFragment

hit

hit sequence,如果存在

hit_strand

strand,命中序列链

query

query sequence,如果存在

query_strand

strand,查询序列链

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

对象

属性

HSP

gapopen_num

Q gap count + T gap count,间隙打开的总数

间隙打开的数量

ident_num

matches + repmatches,相同残基的总数

ident_pct

百分比标识,使用 UCSC 的公式计算

query_is_protein

布尔值,查询序列是否为蛋白质

score

HSP 评分,使用 UCSC 的公式计算

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

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

基类:object

用于 BLAT PSL 格式的解析器。

__init__(handle, pslx=False)

初始化类。

__iter__()

遍历 BlatPslParser,生成查询结果。

class Bio.SearchIO.BlatIO.BlatPslIndexer(filename, pslx=False)

基类:SearchIndexer

用于 BLAT PSL 输出的索引器类。

__init__(filename, pslx=False)

初始化类。

__iter__()

遍历文件句柄;生成键、起始偏移量和长度。

get_raw(offset)

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

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

基类:object

用于 blat-psl 格式的写入器。

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

初始化类。

write_file(qresults)

将查询结果写入文件。