Bio.SeqIO.NibIO 模組
Bio.SeqIO 支援 UCSC nib 檔案格式。
Nib 代表核苷酸序列的 nibble (4 位元) 表示法。一個位元組中的兩個 nibble 各儲存一個核苷酸,以數值方式表示如下
0
- T
1
- C
2
- A
3
- G
4
- N (未知)
如果核苷酸是軟遮罩的,則 nibble 中的第一個位元會被設定,因此我們還有
8
- t
9
- c
a
- a
b
- g
c
- n (未知)
一個 nib 檔案只包含一個序列記錄。您應該透過 Bio.SeqIO 函數,以格式名稱 "nib" 使用此模組。
>>> from Bio import SeqIO
>>> record = SeqIO.read("Nib/test_even_bigendian.nib", "nib")
>>> print("%i %s..." % (len(record), record.seq[:20]))
50 nAGAAGagccgcNGgCActt...
有關檔案格式的詳細資訊,請參閱 UCSC 描述:https://genome.ucsc.edu/FAQ/FAQformat.html。
- class Bio.SeqIO.NibIO.NibIterator(source)
-
用於 nib 檔案的解析器。
- __init__(source)
迭代 nib 檔案並產生一個 SeqRecord。
source - 一個類似檔案的物件,或是 UCSC 定義的 nib 檔案格式的檔案路徑;檔案必須以二進制模式開啟。
請注意,一個 nib 檔案始終只包含一個序列記錄。產生的 SeqRecord 物件的序列應該與 Jim Kent 的 nibFrag 工具以 -masked 選項執行的序列相符。
此函數在內部透過 Bio.SeqIO 函數使用
>>> from Bio import SeqIO >>> record = SeqIO.read("Nib/test_even_bigendian.nib", "nib") >>> print("%s %i" % (record.seq, len(record))) nAGAAGagccgcNGgCActtGAnTAtCGTCgcCacCaGncGncTtGNtGG 50
您也可以直接呼叫它
>>> with open("Nib/test_even_bigendian.nib", "rb") as handle: ... for record in NibIterator(handle): ... print("%s %i" % (record.seq, len(record))) ... nAGAAGagccgcNGgCActtGAnTAtCGTCgcCacCaGncGncTtGNtGG 50
- parse(handle)
開始解析檔案,並返回一個 SeqRecord 生成器。
- iterate(handle, byteorder)
迭代 nib 檔案中的記錄。
- __abstractmethods__ = frozenset({})
- __parameters__ = ()