Esempio n. 1
0
 def __init__(
     self,
     chars,
     degens,
     gap=IUPAC_gap,
     missing=IUPAC_missing,
     moltype=None,
     constructor=None,
 ):
     """Returns new AlphabetGroup."""
     if constructor is None:
         if max(list(map(len, chars))) == 1:
             constructor = CharAlphabet
             chars = "".join(chars)
             degens = "".join(degens)
         else:
             constructor = Alphabet  # assume multi-char
     self.base = constructor(chars, moltype=moltype)
     self.degen = constructor(chars + degens, moltype=moltype)
     self.gapped = constructor(chars + gap, gap, moltype=moltype)
     self.degen_gapped = constructor(chars + gap + degens + missing,
                                     gap,
                                     moltype=moltype)
     self._items = [self.base, self.degen, self.gapped, self.degen_gapped]
     self._set_relationships()
     # set complements if MolType was specified
     if moltype is not None:
         comps = moltype.complements
         for i in self._items:
             i._complement_array = _make_complement_array(i, comps)
Esempio n. 2
0
 def test_make_complement_array(self):
     """_make_complement_array should identify complements correctly"""
     complement_array = _make_complement_array(RNA.alphabet, RNA.complements)
     test = "UCAG"
     test_array = [RNA.alphabet.index(i) for i in test]
     complements = complement_array.take(test_array)
     result = "".join([RNA.alphabet[i] for i in complements])
     self.assertEqual(result, "AGUC")