Exemple #1
0
    def test_get_formula_mol_wt_charge(self):
        base_A = core.Base(id='A', structure=dAMP_inchi)
        base_C = core.Base(id='C', structure=dCMP_inchi)

        bp_form = core.BpForm([base_A])
        self.assertEqual(bp_form.get_formula(), base_A.get_formula())
        self.assertEqual(bp_form.get_mol_wt(), base_A.get_mol_wt())
        self.assertEqual(bp_form.get_charge(), base_A.get_charge())

        bp_form = core.BpForm([base_C])
        self.assertEqual(bp_form.get_formula(), base_C.get_formula())
        self.assertEqual(bp_form.get_mol_wt(), base_C.get_mol_wt())
        self.assertEqual(bp_form.get_charge(), base_C.get_charge())

        bp_form = core.BpForm([base_A, base_C])
        self.assertEqual(bp_form.get_formula(), base_A.get_formula() + base_C.get_formula())
        self.assertEqual(bp_form.get_mol_wt(), base_A.get_mol_wt() + base_C.get_mol_wt())
        self.assertEqual(bp_form.get_charge(), base_A.get_charge() + base_C.get_charge())

        bp_form = core.BpForm([base_A, base_C], bond_formula=EmpiricalFormula('H') * -1, bond_charge=1)
        self.assertEqual(bp_form.get_formula(), base_A.get_formula() + base_C.get_formula() - EmpiricalFormula('H'))
        self.assertEqual(bp_form.get_mol_wt(), base_A.get_mol_wt() + base_C.get_mol_wt() -
                         EmpiricalFormula('H').get_molecular_weight())
        self.assertEqual(bp_form.get_charge(), base_A.get_charge() + base_C.get_charge() + 1)

        bp_form = core.BpForm([base_A, base_A, base_C, base_C, base_C], bond_formula=EmpiricalFormula('H') * -1, bond_charge=1)
        self.assertEqual(bp_form.get_formula(), base_A.get_formula() * 2 + base_C.get_formula() * 3 - EmpiricalFormula('H') * 4)
        self.assertEqual(bp_form.get_mol_wt(), base_A.get_mol_wt() * 2 + base_C.get_mol_wt()
                         * 3 - EmpiricalFormula('H').get_molecular_weight() * 4)
        self.assertEqual(bp_form.get_charge(), base_A.get_charge() * 2 + base_C.get_charge() * 3 + 1 * 4)
Exemple #2
0
 def test_delitem(self):
     base_1 = core.Base(id='A')
     base_2 = core.Base(id='B')
     base_3 = core.Base(id='C')
     bp_form = core.BpForm([base_1, base_2, base_3])
     del(bp_form[1])
     self.assertTrue(bp_form.is_equal(core.BpForm([base_1, base_3])))
Exemple #3
0
    def test_str(self):
        base_A = core.Base(id='A', structure=dAMP_inchi)
        base_C = core.Base(id='C', structure=dCMP_inchi)
        base_G = core.Base(id='G', structure=dGMP_inchi)

        bp_form = core.BpForm([base_A, base_C, base_G, base_A])
        self.assertEqual(str(bp_form), '{}{}{}{}'.format(str(base_A), str(base_C), str(base_G), str(base_A)))

        bp_form = core.BpForm([base_A, base_C, base_G, base_A], alphabet=core.Alphabet({
            'A': base_A,
            'C': base_C,
        }))
        self.assertEqual(str(bp_form), '{}{}{}{}'.format('A', 'C', str(base_G), 'A'))
        self.assertEqual(str(bp_form), '{}{}{}{}'.format('A', 'C', '[id: "{}" | structure: {}]'.format('G', dGMP_inchi), 'A'))
Exemple #4
0
 def test_is_equal(self):
     bp_form_1 = core.BpForm(base_seq=core.BaseSequence([core.Base(id='A'), core.Base(id='B')]))
     bp_form_2 = core.BpForm(base_seq=core.BaseSequence([core.Base(id='A'), core.Base(id='B')]))
     bp_form_3 = None
     bp_form_4 = core.BpForm(base_seq=core.BaseSequence([core.Base(id='A'), core.Base(id='B')]), alphabet=dna.dna_alphabet)
     bp_form_5 = core.BpForm(base_seq=core.BaseSequence([core.Base(id='A'), core.Base(id='B')]), bond_charge=-1)
     bp_form_6 = core.BpForm(base_seq=core.BaseSequence(
         [core.Base(id='A'), core.Base(id='B')]), bond_formula=EmpiricalFormula('H'))
     self.assertTrue(bp_form_1.is_equal(bp_form_1))
     self.assertTrue(bp_form_1.is_equal(bp_form_2))
     self.assertFalse(bp_form_1.is_equal(bp_form_3))
     self.assertFalse(bp_form_1.is_equal(bp_form_4))
     self.assertFalse(bp_form_1.is_equal(bp_form_5))
     self.assertFalse(bp_form_1.is_equal(bp_form_6))
Exemple #5
0
 def test_contains(self):
     base_1 = core.Base(id='A')
     base_2 = core.Base(id='B')
     base_3 = core.Base(id='C')
     bp_form = core.BpForm([base_1, base_2])
     self.assertIn(base_1, bp_form)
     self.assertIn(base_2, bp_form)
     self.assertNotIn(base_3, bp_form)
Exemple #6
0
 def test_getitem(self):
     base_1 = core.Base(id='A')
     base_2 = core.Base(id='B')
     base_3 = core.Base(id='C')
     bp_form = core.BpForm([base_1, base_2, base_3])
     self.assertEqual(bp_form[0], base_1)
     self.assertEqual(bp_form[1], base_2)
     self.assertEqual(bp_form[0:1], [base_1])
Exemple #7
0
 def test_get_base_counts(self):
     base_1 = core.Base(id='A')
     base_2 = core.Base(id='B')
     base_3 = core.Base(id='C')
     bp_form = core.BpForm([base_1, base_2, base_1, base_1, base_1, base_2, base_2, base_3])
     self.assertEqual(bp_form.get_base_counts(), {
         base_1: 4,
         base_2: 3,
         base_3: 1,
     })
Exemple #8
0
    def test_set_alphabet(self):
        bp_form = core.BpForm()

        bp_form.alphabet = dna.dna_alphabet
        self.assertEqual(len(bp_form.alphabet), 4)

        with self.assertRaises(ValueError):
            bp_form.alphabet = None
        with self.assertRaises(ValueError):
            bp_form.alphabet = 'A'
Exemple #9
0
 def test_reversed(self):
     base_1 = core.Base(id='A')
     base_2 = core.Base(id='B')
     base_3 = core.Base(id='C')
     bp_form = core.BpForm([base_1, base_2, base_3])
     for i_base, base in enumerate(reversed(bp_form)):
         if i_base == 2:
             self.assertEqual(base, base_1)
         if i_base == 1:
             self.assertEqual(base, base_2)
         if i_base == 0:
             self.assertEqual(base, base_3)
Exemple #10
0
    def test_setitem(self):
        base_1 = core.Base(id='A')
        base_2 = core.Base(id='B')
        base_3 = core.Base(id='C')
        bp_form = core.BpForm([base_1, base_2, base_3])

        self.assertEqual(bp_form[0], base_1)

        bp_form[0] = base_2
        self.assertEqual(bp_form[0], base_2)

        bp_form[0:1] = [base_3]
        self.assertEqual(bp_form[0], base_3)
Exemple #11
0
    def test_set_base_seq(self):
        bp_form = core.BpForm()

        bp_form.base_seq = core.BaseSequence()
        self.assertEqual(len(bp_form.base_seq), 0)

        bp_form.base_seq = [core.Base(), core.Base()]
        self.assertIsInstance(bp_form.base_seq, core.BaseSequence)
        self.assertEqual(len(bp_form.base_seq), 2)

        with self.assertRaises(ValueError):
            bp_form.base_seq = None
        with self.assertRaises(ValueError):
            bp_form.base_seq = 'A'
Exemple #12
0
    def test_set_bond_formula(self):
        bp_form = core.BpForm()

        bp_form.bond_formula = EmpiricalFormula('CHO')
        self.assertEqual(bp_form.bond_formula, EmpiricalFormula('CHO'))

        bp_form.bond_formula = 'CHO'
        self.assertEqual(bp_form.bond_formula, EmpiricalFormula('CHO'))

        with self.assertRaises(ValueError):
            bp_form.bond_formula = '123'
        with self.assertRaises(TypeError):
            bp_form.bond_formula = 123
        with self.assertRaises(TypeError):
            bp_form.bond_formula = None
Exemple #13
0
    def test_set_bond_charge(self):
        bp_form = core.BpForm()

        bp_form.bond_charge = 1
        self.assertEqual(bp_form.bond_charge, 1)

        bp_form.bond_charge = 1.
        self.assertEqual(bp_form.bond_charge, 1)

        bp_form.bond_charge = -1
        self.assertEqual(bp_form.bond_charge, -1)

        with self.assertRaises(ValueError):
            bp_form.bond_charge = 1.5

        with self.assertRaises(ValueError):
            bp_form.bond_charge = None
Exemple #14
0
 def test_protonate(self):
     base_1 = core.Base(id='A')
     base_2 = core.Base(id='B')
     bp_form = core.BpForm([base_1, base_2])
     bp_form.protonate(7.)
Exemple #15
0
    def test_len(self):
        bp_form = core.BpForm()
        self.assertEqual(len(bp_form), 0)

        bp_form = core.BpForm(base_seq=[core.Base(), core.Base()])
        self.assertEqual(len(bp_form), 2)
Exemple #16
0
 def test_init(self):
     bp_form = core.BpForm()
     self.assertEqual(bp_form.base_seq, core.BaseSequence())
     self.assertEqual(bp_form.alphabet, {})
     self.assertEqual(bp_form.bond_formula, EmpiricalFormula())
     self.assertEqual(bp_form.bond_charge, 0)