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')
def __init__(self, chars, degens, gap=IUPAC_gap, missing=IUPAC_missing, MolType=None, constructor=None): """Returns new AlphabetGroup.""" if constructor is None: if max(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.DegenGapped = constructor(chars + gap + degens + missing, gap, MolType=MolType) self._items = [self.Base, self.Degen, self.Gapped, self.DegenGapped] 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)
def __init__(self, chars, degens, gap=IUPAC_gap, missing=IUPAC_missing, \ MolType=None, constructor=None): """Returns new AlphabetGroup.""" if constructor is None: if max(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.DegenGapped = constructor(chars+gap+degens+missing, gap, \ MolType=MolType) self._items = [self.Base, self.Degen, self.Gapped, self.DegenGapped] 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)