Bio.SearchIO.BlatIO 模組

用於 BLAT 輸出格式的 Bio.SearchIO 解析器。

此模組新增了對解析 BLAT 輸出的支援。BLAT(BLAST-Like Alignment Tool,類 BLAST 比對工具)是一種序列相似性搜尋程式,最初是為註解人類基因體而建構的。

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 version 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 的網頁 BLAT 服務所做的分數和百分比相似度計算。

由於 BlatIO 以單次傳遞方式解析檔案,因此它預期來自相同查詢的所有結果都位於連續的列中。如果來自一個查詢的結果分佈在非連續的列中,BlatIO 會將它們視為個別的 QueryResult 物件。

在大多數情況下,PSL(X) 格式使用與 Python 相同的座標系統(從零開始、半開放)。這些座標錨定在正鏈上。然而,如果查詢在負鏈上比對,BLAT 會改為將 qStarts 座標錨定在負鏈上。BlatIO 知道這一點,並且只要看到負鏈查詢比對,就會將 qStarts 座標重新錨定到正鏈上。相反地,當您寫出到 PSL(X) 檔案時,BlatIO 會將 qStarts 重新錨定回負鏈。

BlatIO 提供以下屬性-欄位對應

物件

屬性

欄位名稱,值

QueryResult

id

Q 名稱,查詢序列 ID

seq_len

Q 大小,查詢序列完整長度

Hit

id

T 名稱,比對序列 ID

seq_len

T 大小,比對序列完整長度

HSP

hit_end

T 結束,最後一個比對片段的結束座標

hit_gap_num

T 缺口鹼基,插入比對中的鹼基數

hit_gapopen_num

T 缺口計數,比對缺口插入的次數

hit_span_all

blockSizes,每個片段的大小

hit_start

T 開始,第一個比對片段的起始座標

hit_start_all

tStarts,每個比對片段的起始座標

match_num

match,非重複比對的數量

mismatch_num

mismatch,不匹配的數量

match_rep_num

重複比對,屬於重複的比對數量

n_num

N,N 鹼基的數量

query_end

Q 結束,最後一個的結束座標

query_gap_num

查詢片段 Q 缺口鹼基,插入查詢中的鹼基數

query_gapopen_num

Q 缺口計數,查詢缺口插入的次數

query_span_all

blockSizes,每個片段的大小

query_start

Q 開始,第一個查詢區塊的起始座標

query_start_all

qStarts,每個查詢片段的起始座標

len [1]

區塊計數,比對中的區塊數量

HSPFragment

hit

比對序列,如果存在

hit_strand

鏈,比對序列鏈

query

查詢序列,如果存在

query_strand

鏈,查詢序列鏈

除了上述欄位對應外,BlatIO 還提供以下物件屬性

物件

屬性

HSP

gapopen_num

Q 缺口計數 + T 缺口計數,總計

缺口開啟次數

ident_num

比對 + 重複比對,相同殘基的總數

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)

將查詢結果寫入檔案。