Beispiel #1
0
    def test_assembly(self):
        st = gemmi.read_structure(full_path('1pfe.cif.gz'),
                                  merge_chain_parts=False)
        model = st[0]
        self.assertEqual([ch.name for ch in model],
                         ['A', 'B', 'A', 'B', 'A', 'B'])
        a_mass = sum(ch.calculate_mass() for ch in model if ch.name == 'A')
        b_mass = sum(ch.calculate_mass() for ch in model if ch.name == 'B')
        model_mass = model.calculate_mass()
        self.assertAlmostEqual(model_mass, a_mass + b_mass)

        self.assertEqual(len(st.assemblies), 1)
        asem = st.assemblies[0]
        bio = gemmi.make_assembly(asem, model,
                                  gemmi.HowToNameCopiedChain.Short)
        self.assertEqual([ch.name for ch in bio], ['A', 'B', 'C', 'D'])
        self.assertAlmostEqual(bio.calculate_mass(), 2 * model_mass)
        self.assertAlmostEqual(bio[0].calculate_mass(), a_mass)
        self.assertAlmostEqual(bio[1].calculate_mass(), b_mass)
        self.assertAlmostEqual(bio[2].calculate_mass(), a_mass)
        self.assertAlmostEqual(bio[3].calculate_mass(), b_mass)

        bio = gemmi.make_assembly(asem, model,
                                  gemmi.HowToNameCopiedChain.AddNumber)
        self.assertEqual([ch.name for ch in bio], ['A1', 'B1', 'A2', 'B2'])
Beispiel #2
0
 def test_assembly_naming(self):
     st = gemmi.read_structure(full_path('4oz7.pdb'))
     model = st[0]
     a1 = st.assemblies[1]
     bio = gemmi.make_assembly(a1, model,
                               gemmi.HowToNameCopiedChain.AddNumber)
     self.assertEqual([ch.name for ch in bio], ['B1'])
     bio = gemmi.make_assembly(a1, model, gemmi.HowToNameCopiedChain.Dup)
     self.assertEqual([ch.name for ch in bio], ['B'])
     bio = gemmi.make_assembly(a1, model, gemmi.HowToNameCopiedChain.Short)
     self.assertEqual([ch.name for ch in bio], ['B'])