Bio.Align.interfaces 模块

Bio.Align 支持模块(不供一般使用)。

除非您正在为 Bio.Align 编写新的解析器或写入器,否则您不应该使用此模块。它提供了基类来尝试简化操作。

class Bio.Align.interfaces.AlignmentIterator(source)

基类:AlignmentsAbstractBaseClass

用于构建对齐迭代器的基类。

您应该编写一个返回对齐生成器的解析方法。您可能还需要重新定义 __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 对象(继承自列表)返回。

只支持 [:] 形式的索引(即完整的切片)。文件流将返回到其零位置,文件头将被读取并存储在 Alignments 对象中。接下来,我们遍历对齐并将它们存储在 Alignments 对象中。然后迭代器将返回到它在文件中的原始位置,Alignments 对象将被返回。Alignments 对象包含与对齐迭代器 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 - 对齐对象

write_single_alignment(stream, alignments)

将单个对齐写入输出文件,并返回 1。

alignments - 返回对齐对象的列表或迭代器 stream - 输出文件流。

write_multiple_alignments(stream, alignments)

将对齐写入输出文件,并返回对齐的数量。

alignments - 返回对齐对象的列表或迭代器 stream - 输出文件流。

write_alignments(stream, alignments)

将对齐写入输出文件,并返回对齐的数量。

alignments - 返回对齐对象的列表或迭代器 stream - 输出文件流。

write_file(stream, alignments)

将对齐写入文件流,并返回对齐的数量。

alignments - 返回对齐对象的列表或迭代器 stream - 输出文件流。

write(alignments)

将对齐写入文件,并返回对齐的数量。

alignments - 返回 Alignment 对象的列表或迭代器

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