RNA.replace(where, character)[source]

Replace values in this sequence with a different character.

State: Experimental as of 0.5.0.

  • where (1D array_like (bool) or iterable (slices or ints) or str) – Indicates positions in the sequence to replace with character. Can be a boolean vector, an iterable of indices/slices, or a string that is a key in positional_metadata pointing to a boolean vector.

  • character (str or bytes) – Character that will replace chosen items in this sequence.


Copy of this sequence, with chosen items replaced with chosen character. All metadata is retained.

Return type



Let’s create and display a Sequence:

>>> from skbio import Sequence
>>> sequence = Sequence('GGTACCAACG')
>>> str(sequence)

Let’s call replace on the Sequence using a boolean vector for where and assign it to a new variable:

>>> seq = sequence.replace([False, False, False, True, False, False,
...                         True, True, False, False], '-')

Let’s take a look at the new Sequence:

>>> str(seq)

Other types of input are accepted by the where parameter. Let’s pass in a list of indices and slices that is equivalent to the boolean vector we used previously:

>>> str(seq) == str(sequence.replace([3, slice(6, 8)], '-'))

where also accepts a boolean vector contained in Sequence.positional_metadata:

>>> sequence.positional_metadata = {'where':
...                                 [False, False, False, True, False,
...                                  False, True, True, False, False]}

Let’s pass in the key 'where' and compare to seq:

>>> str(seq) == str(sequence.replace('where', '-'))