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]}