Bio.Align.接口模块

Bio.Align支持模块(不用于一般用途)。

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

class Bio.Align.interfaces.AlignmentIterator(source)

基类:AlignmentsAbstractBaseClass

用于构建对齐迭代器的Base Class。

您应该编写一个返回对齐生成器的解析方法。 您可能希望重新定义 __init__ 方法也是。

子类可以定义以下类属性:- mode - “t”或“b”分别代表文本或二进制文件-fdt - 文件格式的人类可读名称。

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

创建AlignmentIterator对象。

参数:- source -输入文件流,或输入文件的路径

此方法可以被任何子集重写。

注意当子类化时:-应该有一个非可选的参数,即源。- 您可以添加其他可选参数。

__next__()

返回下一个对齐方式。

__len__()

返回对齐数量。

缓存对齐数量。如果尚未计算,则迭代器倒带到开头,并通过迭代对齐来计算对齐数量。然后迭代器返回到文件中的原始位置。

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

将路线作为路线对象(从列表继承)返回。

只有以下形式的索引 [:] (i.e.,支持完整切片)。文件流返回到其零位置,文件头被读取并存储在Alignments对象中。接下来,我们迭代对齐并将它们存储在Alignments对象中。 然后迭代器返回到文件中的原始位置,并返回Alignments对象。Alignments对象包含与对齐迭代器本身完全相同的信息,但将对齐存储在列表中而不是作为迭代器,从而允许索引。

典型的用法是

>>> 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]}
__firstlineno__ = 24
__static_attributes__ = ('_index', '_len', '_stream', 'source')
class Bio.Align.interfaces.AlignmentWriter(target)

基类:ABC

对齐编写器的Base Class。这个类应该被细分。

它适用于具有(可选)标题、一个或多个路线和(可选)页脚的路线文件格式。

用户可以调用add_file()方法来编写包含对齐的完整文件。

或者,用户可以调用add_header(),然后多次调用form_alignance()和/或add_alignance(),最后调用add_footing()。

子类可以定义以下类属性:- mode - “t”或“b”分别代表文本或二进制文件-fdt - 文件格式的人类可读名称。

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

创建writer对象。

参数:- target -输出文件流,或输出文件的路径

此方法可以被任何子集重写。

在进行子类时请注意:-应该有一个非可选参数,即目标。- 您可以添加其他可选参数。

write_header(stream, alignments)

将文件头写入输出文件。

将文件页脚写入输出文件。

format_alignment(alignment)

将单个对齐格式设置为字符串。

对齐-对齐对象

write_single_alignment(stream, alignments)

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

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

write_multiple_alignments(stream, alignments)

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

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

write_alignments(stream, alignments)

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

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

write_file(stream, alignments)

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

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

write(alignments)

写一个文件与路线,并返回路线的数量。

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

__abstractmethods__ = frozenset({})
__annotations__ = {'fmt': typing.Optional[str]}
__firstlineno__ = 197
__static_attributes__ = ('_stream', '_target')