Bio.Align.interfaces 模組

Bio.Align 支援模組(非一般用途)。

除非您正在為 Bio.Align 撰寫新的解析器或寫入器,否則您不應使用此模組。它提供基底類別來嘗試簡化事情。

class Bio.Align.interfaces.AlignmentIterator(source)

基底類別: AlignmentsAbstractBaseClass

用於建立 Alignment 迭代器的基底類別。

您應該撰寫一個會傳回 Alignment 產生器的 parse 方法。您可能也希望重新定義 __init__ 方法。

子類別可能會定義以下類別屬性:- mode - ‘t’ 或 ‘b’ 分別表示文字或二進位檔案 - fmt - 檔案格式的人類可讀名稱。

mode = 't'
fmt: str | None = None
__init__(source)

建立 AlignmentIterator 物件。

引數:- source - 輸入檔案串流或輸入檔案的路徑

此方法可以被任何子類別覆寫。

子類別化時的注意事項:- 應有一個非選用的引數,即 source。- 您可以新增其他可選的引數。

__next__()

傳回下一個比對。

__len__()

傳回比對的數量。

比對的數量會被快取。如果尚未計算,則會將迭代器倒回至開頭,並透過迭代比對來計算比對的數量。然後,迭代器會回到檔案中的原始位置。

__enter__()
__exit__(exc_type, exc_value, exc_traceback)
__getitem__(index)

以 Alignments 物件(繼承自 list)傳回比對。

僅支援 [:] 形式的索引(即完整切片)。檔案串流會回到其零位置,並且會讀取檔案標頭並儲存在 Alignments 物件中。接下來,我們會迭代比對並將其儲存在 Alignments 物件中。然後,迭代器會回到檔案中的原始位置,並且會傳回 Alignments 物件。Alignments 物件包含與 Alignment 迭代器 self 完全相同的資訊,但會將比對儲存在清單中而不是作為迭代器,允許索引。

典型的用法是

>>> from Bio import Align
>>> alignments = Align.parse("Blat/dna_rna.psl", "psl")
>>> alignments.metadata
{'psLayout version': '3'}

由於 alignments 是迭代器而不是清單,我們無法透過索引來擷取比對

>>> alignment = alignments[2]  
Traceback (most recent call last):
  ...
KeyError: 'only [:] (a full slice) can be used as the index'

因此,我們使用迭代器來建立類似清單的 Alignments 物件

>>> alignments = alignments[:]

雖然 alignments 是類似清單的物件,但它具有相同的 metadata 屬性,代表儲存在檔案標頭中的資訊

>>> alignments.metadata
{'psLayout version': '3'}

現在我們可以為個別的比對建立索引

>>> len(alignments)
4
>>> alignment = alignments[2]
>>> alignment.target.id, alignment.query.id
('chr3', 'NR_111921.1')
rewind()

倒回迭代器,使其從頭開始循環比對。

__abstractmethods__ = frozenset({'_read_next_alignment'})
__annotations__ = {'fmt': typing.Optional[str]}
class Bio.Align.interfaces.AlignmentWriter(target)

基底類別: ABC

比對寫入器的基底類別。應將此類別子類別化。

它適用於具有(可選)標頭、一或多個比對以及(可選)頁尾的比對檔案格式。

使用者可以呼叫 write_file() 方法來寫入包含比對的完整檔案。

或者,使用者可以呼叫 write_header(),然後多次呼叫 format_alignment() 和/或 write_alignments(),最後再呼叫 write_footer()。

子類別可能會定義以下類別屬性:- mode - ‘w’ 或 ‘wb’ 分別表示文字或二進位檔案 - fmt - 檔案格式的人類可讀名稱。

mode = 'w'
fmt: str | None = None
__init__(target)

建立寫入器物件。

引數:- target - 輸出檔案串流或輸出檔案的路徑

此方法可以被任何子類別覆寫。

子類別化時的注意事項:- 應有一個非選用的引數,即 target。- 您可以新增其他可選的引數。

write_header(stream, alignments)

將檔案標頭寫入輸出檔案。

將檔案頁尾寫入輸出檔案。

format_alignment(alignment)

將單一比對格式化為字串。

alignment - Alignment 物件

write_single_alignment(stream, alignments)

將單一比對寫入輸出檔案,並傳回 1。

alignments - 傳回 Alignment 物件的清單或迭代器 stream - 輸出檔案串流。

write_multiple_alignments(stream, alignments)

將比對寫入輸出檔案,並傳回比對的數量。

alignments - 傳回 Alignment 物件的清單或迭代器 stream - 輸出檔案串流。

write_alignments(stream, alignments)

將比對寫入輸出檔案,並傳回比對的數量。

alignments - 傳回 Alignment 物件的清單或迭代器 stream - 輸出檔案串流。

write_file(stream, alignments)

將比對寫入檔案串流,並傳回比對的數量。

alignments - 傳回 Alignment 物件的清單或迭代器 stream - 輸出檔案串流。

write(alignments)

寫入具有比對的檔案,並傳回比對的數量。

alignments - 傳回 Alignment 物件的清單或迭代器

__abstractmethods__ = frozenset({})
__annotations__ = {'fmt': typing.Optional[str]}