skbio.alignment.TabularMSA.extend

TabularMSA.extend(sequences, minter=None, index=None, reset_index=False)[源代码]

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

状态:从0.4.1开始试验。

参数:
  • sequences (iterable of GrammaredSequence) -- 要附加的序列。必须匹配MSA的数据类型和MSA中的位置数。

  • minter (callable or metadata key, optional) -- 用于为要附加的序列创建索引标签。如果可调用,则直接生成标签。否则,它将被视为序列元数据的键。请注意 minter 不能与 index 也不 reset_index .

  • index (pd.Index consumable, optional) -- 用于附加序列的索引标签。长度必须与 sequences . 必须能够直接传递给 pd.Index 建造师。请注意 index 不能与 minter 也不 reset_index .

  • reset_index (bool, optional) -- 如果 True ,此MSA的索引将重置为 TabularMSA 扩展后构造函数的默认值。请注意 reset_index 不能与 minter 也不 index .

抛出:
  • ValueError -- 如果只有一个选择 minterindexreset_index 未提供。

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

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

  • TypeError -- 如果 sequences 包含与MSA的数据类型不匹配的类型。

  • ValueError -- 如果序列的长度与MSA中的位置数不匹配。

备注

附加序列时,MSA不会自动重新对齐。因此,这项行动本身并不一定有意义。

示例

创建带有标记的单个序列的MSA 'seq1'

>>> from skbio import DNA, TabularMSA
>>> msa = TabularMSA([DNA('ACGT')], index=['seq1'])
>>> msa
TabularMSA[DNA]
---------------------
Stats:
    sequence count: 1
    position count: 4
---------------------
ACGT
>>> msa.index
Index(['seq1'], dtype='object')

用序列扩展MSA,通过 index

>>> msa.extend([DNA('AG-T'), DNA('-G-T')], index=['seq2', 'seq3'])
>>> msa
TabularMSA[DNA]
---------------------
Stats:
    sequence count: 3
    position count: 4
---------------------
ACGT
AG-T
-G-T
>>> msa.index
Index(['seq1', 'seq2', 'seq3'], dtype='object')

扩展更多序列,这次使用 reset_index . 注意,由于MSA的索引被重置,我们不需要通过为新序列提供索引标签 indexminter

>>> msa.extend([DNA('ACGA'), DNA('AC-T'), DNA('----')],
...            reset_index=True)
>>> msa
TabularMSA[DNA]
---------------------
Stats:
    sequence count: 6
    position count: 4
---------------------
ACGT
AG-T
...
AC-T
----
>>> msa.index
RangeIndex(start=0, stop=6, step=1)