Skip to main content
`Ctrl`+`K`

# skbio.alignment.TabularMSA.append

TabularMSA.append(sequence, minter=None, index=None, reset_index=False)

  Append a sequence to the MSA without recomputing alignment.

  Parameters:
    sequence GrammaredSequence

      Sequence to be appended. Must match the dtype of the MSA and the number of positions in the MSA.

    minter callable or metadata key, optional

      Used to create an index label for the sequence being appended. If callable, it generates a label directly. Otherwise it’s treated as a key into the sequence metadata. Note that minter cannot be combined with index nor reset_index.

    index object, optional

      Index label to use for the appended sequence. Note that index cannot be combined with minter nor reset_index.

    reset_index bool, optional

      If `True`, this MSA’s index is reset to the `TabularMSA` constructor’s default after appending. Note that reset_index cannot be combined with minter nor index.

  Raises:
    ValueError

      If exactly one choice of minter, index, or reset_index is not provided.

    TypeError

      If the sequence object isn’t a `GrammaredSequence`.

    TypeError

      If the type of the sequence does not match the dtype of the MSA.

    ValueError

      If the length of the sequence does not match the number of positions in the MSA.

  See also

  `extend`
  `reassign_index`

  Notes

  The MSA is not automatically re-aligned when a sequence is appended. Therefore, this operation is not necessarily meaningful on its own.

  Examples

  Create an MSA with a single sequence labeled `'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='...')

  Append a new sequence to the MSA, providing its index label via index:

      >>> msa.append(DNA('AG-T'), index='seq2')
      >>> msa
      TabularMSA[DNA]
      ---------------------
      Stats:
          sequence count: 2
          position count: 4
      ---------------------
      ACGT
      AG-T
      >>> msa.index
      Index(['seq1', 'seq2'], dtype='...')

  Append another sequence, this time resetting the MSA’s index labels to the default with reset_index. Note that since the MSA’s index is reset, we do not need to provide an index label for the new sequence via index or minter:

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