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 |
|
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,產生查詢結果。