skbio.alignment.TabularMSA

class skbio.alignment.TabularMSA(sequences, metadata=None, positional_metadata=None, minter=None, index=None)[源代码]

以表格(行/列)形式存储多序列对齐方式。

参数:
  • sequences (iterable of GrammaredSequence, TabularMSA) -- MSA中的对齐序列。序列的类型和长度必须相同。例如, sequences 可能是 DNARNAProtein 序列。如果 sequences 是一个 TabularMSA 它的 metadatapositional_metadataindex 除非被参数重写,否则将使用 metadatapositional_metadataminter /分别为索引

  • metadata (dict, optional) -- 适用于整个MSA的任意元数据。一份浅显的 dict 将被制作。

  • positional_metadata (pd.DataFrame consumable, optional) -- 适用于MSA中每个位置的任意元数据。必须能够直接传递给 pd.DataFrame 建造师。每个元数据列的长度必须与MSA中的位置数相同。将生成位置元数据的浅拷贝。

  • minter (callable or metadata key, optional) -- 如果提供,则为中的每个序列定义索引标签 sequences . 可以是接受单个参数(每个序列)的可调用函数,也可以是每个序列的键 metadata 属性。请注意 minter 不能与 index .

  • index (pd.Index consumable, optional) -- 包含标签的索引 sequences . 长度必须与 sequences . 必须能够直接传递给 pd.Index 建造师。请注意 index 不能与 minter 以及 index 必须是散列的。

抛出:
  • ValueError -- 如果 minterindex 都提供了。

  • ValueError -- 如果 index 长度不同于 sequences .

  • TypeError -- 如果 sequences 包含的对象不是 GrammaredSequence .

  • TypeError -- 如果 sequences 不包含完全相同类型的 GrammaredSequence 物体。

  • ValueError -- 如果 sequences 不包含 GrammaredSequence 长度相同的对象。

备注

如果既不 minter 也不 index 将使用默认索引标签: pd.RangeIndex(start=0, stop=len(sequences), step=1) .

示例

创建一个 TabularMSA 有三个DNA序列和四个位置的物体:

>>> from skbio import DNA, TabularMSA
>>> seqs = [
...     DNA('ACGT'),
...     DNA('AG-T'),
...     DNA('-C-T')
... ]
>>> msa = TabularMSA(seqs)
>>> msa
TabularMSA[DNA]
---------------------
Stats:
    sequence count: 3
    position count: 4
---------------------
ACGT
AG-T
-C-T

自从 minterindex 未提供,MSA具有默认索引标签:

>>> msa.index
RangeIndex(start=0, stop=3, step=1)

使用元数据、位置元数据和非默认索引标签创建MSA:

>>> msa = TabularMSA(seqs, index=['seq1', 'seq2', 'seq3'],
...                  metadata={'id': 'msa-id'},
...                  positional_metadata={'prob': [3, 4, 2, 2]})
>>> msa
TabularMSA[DNA]
--------------------------
Metadata:
    'id': 'msa-id'
Positional metadata:
    'prob': <dtype: int64>
Stats:
    sequence count: 3
    position count: 4
--------------------------
ACGT
AG-T
-C-T
>>> msa.index
Index(['seq1', 'seq2', 'seq3'], dtype='object')

属性

default_write_format 

dtype 

存储序列的数据类型。

iloc 

在任意一个轴上按索引位置切片MSA。

index 

沿序列轴包含标签的索引。

loc 

在第一个轴上按索引标签切片,在第二个轴上按位置切片。

metadata 

dict 包含应用于整个对象的元数据。

positional_metadata 

pd.DataFrame 包含沿轴的元数据。

shape 

序列(行)和位置(列)的数量。

内嵌函数

__bool__ \()

指示MSA是否为空的布尔值。

__contains__ \(标签)

确定索引标签是否在此MSA中。

__copy__ \()

这个MSA的一份报告。

__deepcopy__ \(备忘录)

返回此MSA的深度副本。

__eq__ (其他)

确定这个MSA是否等于另一个MSA。

__ge__(value, /)

返回self>=值。

__getitem__ \(可编入索引的)

在任一轴上切片MSA。

__getstate__ \()

泡菜的帮手。

__gt__(value, /)

返回self>值。

__iter__ \()

在MSA中迭代序列。

__le__(value, /)

返回self<=value。

__len__ \()

MSA中的序列数。

__lt__(value, /)

返回self<value。

__ne__ (其他)

确定此MSA是否不等于另一个MSA。

__reversed__ \()

以相反的顺序在MSA中的序列上迭代。

__str__ \()

此MSA的字符串摘要。

方法

append(sequence[, minter, index, reset_index])

在不重新计算对齐的情况下将序列追加到MSA。

consensus \()

计算此MSA的多数一致性序列。

conservation([metric, degenerate_mode, gap_mode])

应用度量计算所有路线位置的守恒

extend(sequences[, minter, index, reset_index])

在不重新计算对齐的情况下用序列扩展此MSA。

from_dict \(词典)

创建一个 TabularMSA 从A dict .

gap_frequencies([axis, relative])

计算轴上间隙字符的频率。

has_metadata \()

确定对象是否具有元数据。

has_positional_metadata \()

确定对象是否具有位置元数据。

iter_positions([reverse, ignore_metadata])

迭代MSA中的位置(列)。

join(other[, how])

按顺序(水平)将此MSA与另一个MSA连接。

read(file[, format])

创建新的 TabularMSA 实例。

reassign_index([mapping, minter])

将索引标签重新分配给此MSA中的序列。

sort([level, ascending])

按索引标签就地排序序列。

to_dict \()

创建一个 dict 由此 TabularMSA .

write(file[, format])

写一个实例 TabularMSA 一个文件。