Exemplo n.º 1
0
 def test_init_minimal(self):
     """MolType should init OK with just monomers"""
     a = MolType("Abc")
     self.assertIn("A", a.alphabet)
     self.assertNotIn("a", a.alphabet)  # case-sensitive
     self.assertIn("b", a.alphabet)
     self.assertNotIn("B", a.alphabet)
     self.assertNotIn("x", a.alphabet)
Exemplo n.º 2
0
 def test_init_minimal(self):
     """MolType should init OK with just monomers"""
     a = MolType("Abc")
     self.assertContains(a.alphabet, "A")
     self.assertNotContains(a.alphabet, "a")  # case-sensitive
     self.assertContains(a.alphabet, "b")
     self.assertNotContains(a.alphabet, "B")
     self.assertNotContains(a.alphabet, "x")
Exemplo n.º 3
0
 def test_count_gaps(self):
     """MolType count_gaps should return correct gap count"""
     c = RnaMolType.count_gaps
     self.assertEqual(c(""), 0)
     self.assertEqual(c("ACUGUCAGUACGHFSDKJCUICDNINS"), 0)
     self.assertEqual(c("GUACGUIACAKJDC-SDFHJDSFK"), 1)
     self.assertEqual(c("-DSHFUHDSF"), 1)
     self.assertEqual(c("UACHASJAIDS-"), 1)
     self.assertEqual(c("---CGAUgCAU---ACGHc---ACGUCAGU---"), 12)
     a = MolType({"A": 1}, gaps=dict.fromkeys("!@#$%"))
     c = a.count_gaps
     self.assertEqual(c(""), 0)
     self.assertEqual(c("!!!"), 3)
     self.assertEqual(c("!@#$!@#$!@#$"), 12)
     self.assertEqual(c("cguua!cgcuagua@cguasguadc#"), 3)
Exemplo n.º 4
0
 def test_gap_indices(self):
     """MolType gap_indices should return correct gap positions"""
     g = RnaMolType.gap_indices
     self.assertEqual(g(""), [])
     self.assertEqual(g("ACUGUCAGUACGHFSDKJCUICDNINS"), [])
     self.assertEqual(g("GUACGUIACAKJDC-SDFHJDSFK"), [14])
     self.assertEqual(g("-DSHFUHDSF"), [0])
     self.assertEqual(g("UACHASJAIDS-"), [11])
     self.assertEqual(
         g("---CGAUgCAU---ACGHc---ACGUCAGU---"),
         [0, 1, 2, 11, 12, 13, 19, 20, 21, 30, 31, 32],
     )
     a = MolType({"A": 1}, gaps=dict.fromkeys("!@#$%"))
     g = a.gap_indices
     self.assertEqual(g(""), [])
     self.assertEqual(g("!!!"), [0, 1, 2])
     self.assertEqual(g("!@#$!@#$!@#$"), list(range(12)))
     self.assertEqual(g("cguua!cgcuagua@cguasguadc#"), [5, 14, 25])
Exemplo n.º 5
0
 def test_init_everything(self):
     """MolType should init OK with all parameters set"""
     k = dict.fromkeys
     a = MolType(
         k("Abc"),
         ambiguities={"d": "bc"},
         gaps=k("~"),
         complements={"b": "c", "c": "b"},
         pairs={},
         add_lower=False,
     )
     for i in "Abcd~":
         self.assertIn(i, a)
     self.assertEqual(a.complement("b"), "c")
     self.assertEqual(a.complement("AbcAA"), "AcbAA")
     self.assertEqual(a.first_degenerate("AbcdA"), 3)
     self.assertEqual(a.first_gap("a~c"), 1)
     self.assertEqual(a.first_invalid("Abcx"), 3)
Exemplo n.º 6
0
 def test_iter(self):
     """MolType iter should iterate over monomer order"""
     self.assertEqual(list(RnaMolType),
                      ["U", "C", "A", "G", "u", "c", "a", "g"])
     a = MolType("ZXCV")
     self.assertEqual(list(a), ["Z", "X", "C", "V"])
Exemplo n.º 7
0
__email__ = "*****@*****.**"
__status__ = "Production"

# ind some of the standard alphabets to reduce typing
RnaBases = RNA.alphabets.base
DnaBases = DNA.alphabets.base
AminoAcids = PROTEIN.alphabets.base

# the following classes are to preserve compatibility for older test code
# that assumes mixed-case is OK.
RnaMolType = MolType(
    seq_constructor=sequence.RnaSequence,
    motifset=IUPAC_RNA_chars,
    ambiguities=IUPAC_RNA_ambiguities,
    label="rna_with_lowercase",
    mw_calculator=RnaMW,
    complements=IUPAC_RNA_ambiguities_complements,
    pairs=RnaStandardPairs,
    add_lower=True,
    preserve_existing_moltypes=True,
    make_alphabet_group=True,
)
DnaMolType = MolType(
    seq_constructor=sequence.DnaSequence,
    motifset=IUPAC_DNA_chars,
    ambiguities=IUPAC_DNA_ambiguities,
    label="dna_with_lowercase",
    mw_calculator=DnaMW,
    complements=IUPAC_DNA_ambiguities_complements,
    pairs=DnaStandardPairs,
    add_lower=True,
    preserve_existing_moltypes=True,