Пример #1
0
    def setUp(self):
        self.nt1 = Component(atoms=[
            Atom(x=0, y=0, z=1, name='C1'),
            Atom(x=0, y=0, z=0, name='C2'),
            Atom(x=1, y=0, z=1, name='N'),
        ], sequence='A', model=1, chain='A', number=1, polymeric=True)

        self.nt2 = Component(atoms=[
            Atom(x=5, y=5, z=5, name='C1'),
            Atom(x=5, y=5, z=5, name='C2'),
            Atom(x=5, y=5, z=5, name='N'),
        ], sequence='U', model=1, chain='A', number=2, polymeric=True)

        self.nt3 = Component(atoms=[
            Atom(x=-5, y=-5, z=-5, name='C1'),
            Atom(x=-5, y=-5, z=-5, name='C2'),
            Atom(x=-5, y=-5, z=-5, name='N'),
        ], sequence='C', model=1, chain='A', number=3, polymeric=True)

        self.nt4 = Component(atoms=[
            Atom(x=0, y=0, z=3, name='C1'),
            Atom(x=0, y=0, z=3, name='C2'),
            Atom(x=0, y=0, z=3, name='N'),
        ], sequence='U', model=1, chain='A', number=4, polymeric=True)

        self.nt5 = Component(atoms=[
            Atom(x=0, y=0, z=8, name='C1'),
            Atom(x=0, y=0, z=8, name='C2'),
            Atom(x=0, y=0, z=3, name='N'),
        ], sequence='G', model=1, chain='A', number=5, polymeric=True)

        structure = Structure([self.nt1, self.nt2, self.nt3, self.nt4,
                               self.nt5], pdb='0000', model='1')
        self.pairs = Pairs(structure)
Пример #2
0
class TransformTest(ut.TestCase):
    def setUp(self):
        atoms = [
            Atom(name='N9', x=3.0, y=3.0, z=3.0),
            Atom(name='C4', x=2.0, y=2.0, z=2.0),
            Atom(name='N3', x=1.0, y=1.0, z=1.0),
        ]
        self.residue = Component(atoms, type='rna', pdb='1GID', model=1,
                                 chain='A', sequence='C', number=50,
                                 symmetry='6_555')

    def test_can_transform_atoms(self):
        trans = np.array([[1.0, 0.0, 0.0, 0.0],
                          [0.0, -1.0, 0.0, 97.240],
                          [0.0, 0.0, -1.0, 0.0],
                          [0.0, 0.0, 0.0, 1.0]])
        residue = self.residue.transform(trans)
        val = list(list(residue.atoms())[-1].coordinates())
        ans = [1.0, 96.240, -1.0]
        self.assertEquals(ans, val)

    def test_preserves_unit_id(self):
        trans = np.array([[1.0, 0.0, 0.0, 0.0],
                          [0.0, -1.0, 0.0, 97.240],
                          [0.0, 0.0, -1.0, 0.0],
                          [0.0, 0.0, 0.0, 1.0]])
        residue = self.residue.transform(trans)
        val = residue.unit_id()
        ans = "1GID|1|A|C|50||||6_555"
        self.assertEquals(ans, val)
Пример #3
0
class AtomsWithin(ut.TestCase):
    def setUp(self):
        self.component1 = Component([
            Atom(name='N9', x=3.0, y=3.0, z=3.0),
            Atom(name='C4', x=2.0, y=2.0, z=2.0),
            Atom(name='N3', x=1.0, y=1.0, z=1.0),
            Atom(name='C3', x=0.0, y=0.0, z=0.0),
        ])
        self.component2 = Component([
            Atom(name='N1', x=0.0, y=-1.0, z=0.0),
            Atom(name='N3', x=-10.0, y=0.0, z=-1.0),
            Atom(name='C2', x=-2.0, y=0.0, z=-3.0)
        ])

    def test_knows_if_an_atom_is_within(self):
        val = self.component1.atoms_within(self.component2, cutoff=1.0)
        self.assertTrue(val)

    def test_works_with_negative_cutoff(self):
        val = self.component1.atoms_within(self.component2, cutoff=-1.0)
        self.assertTrue(val)

    def test_knows_if_no_atoms_within_cutoff(self):
        val = self.component1.atoms_within(self.component2, cutoff=0.5)
        self.assertFalse(val)

    def test_knows_if_no_atoms_within_negative_cutoff(self):
        val = self.component1.atoms_within(self.component2, cutoff=-0.5)
        self.assertFalse(val)

    def test_can_use_given_list_for_first_atoms(self):
        val = self.component1.atoms_within(self.component2, using=['C3', 'N3'],
                                           cutoff=1.0)
        self.assertTrue(val)

    def test_knows_if_with_given_list_nothing_is_within(self):
        val = self.component1.atoms_within(self.component2, using=['C4', 'N3'],
                                           cutoff=1.0)
        self.assertFalse(val)

    def test_can_use_to_list_to_detect_near(self):
        val = self.component1.atoms_within(self.component2, to=['N1', 'N3'],
                                           cutoff=1.0)
        self.assertTrue(val)

    def test_can_use_to_list_to_detect_not_near(self):
        val = self.component1.atoms_within(self.component2, to=['C2', 'N3'],
                                           cutoff=1.0)
        self.assertFalse(val)

    def test_can_use_both_to_detect_near(self):
        val = self.component1.atoms_within(self.component2, to=['N1', 'N3'],
                                           using=['C3', 'N3'], cutoff=1.0)
        self.assertTrue(val)

    def test_can_use_both_to_detect_not_near(self):
        val = self.component1.atoms_within(self.component2, to=['N1', 'N3'],
                                           using=['C4', 'N3'], cutoff=1.0)
        self.assertFalse(val)
Пример #4
0
 def setUp(self):
     self.atoms = [
         Atom(name='N9', x=3.0, y=3.0, z=3.0),
         Atom(name='C4', x=2.0, y=2.0, z=2.0),
         Atom(name='N3', x=1.0, y=1.0, z=1.0),
         Atom(name='C3', x=0.0, y=0.0, z=0.0),
     ]
     self.component = Component(self.atoms)
Пример #5
0
 def setUp(self):
     atoms = [
         Atom(name='N9', x=3.0, y=3.0, z=3.0),
         Atom(name='C4', x=2.0, y=2.0, z=2.0),
         Atom(name='N3', x=1.0, y=1.0, z=1.0),
     ]
     self.residue = Component(atoms, type='rna', pdb='1GID', model=1,
                              chain='A', sequence='C', number=50,
                              symmetry='6_555')
 def standard_component(self, seq):
     atoms = []
     for name, coord in defs.RNAbasecoordinates[seq].items():
         x, y, z = coord
         atoms.append(Atom(x=x, y=y, z=z, name=name))
     component = Component(atoms, sequence=seq)
     component.infer_hydrogens()
     assert_array_almost_equal(component.centers['base'], [0, 0, 0])
     return component
Пример #7
0
 def setUp(self):
     self.component1 = Component([
         Atom(name='N9', x=3.0, y=3.0, z=3.0),
         Atom(name='C4', x=2.0, y=2.0, z=2.0),
         Atom(name='N3', x=1.0, y=1.0, z=1.0),
         Atom(name='C3', x=0.0, y=0.0, z=0.0),
     ])
     self.component2 = Component([
         Atom(name='N1', x=0.0, y=-1.0, z=0.0),
         Atom(name='N3', x=-10.0, y=0.0, z=-1.0),
         Atom(name='C2', x=-2.0, y=0.0, z=-3.0)
     ])
Пример #8
0
 def setUp(self):
     self.atoms = [
         Atom(type='C', name='a1', polymeric='A', component_number=3,
              x=0.0, y=0.0, z=0.0),
         Atom(type='C', name='a2', polymeric='B', component_number=2,
              x=0.0, y=0.0, z=0.0),
         Atom(type='N', name='b1', polymeric='C', component_number=1,
              x=0.0, y=0.0, z=0.0),
         Atom(type='N', name='c2', polymeric='C', component_number=0,
              x=0.0, y=0.0, z=0.0)
     ]
     self.component = Component(self.atoms, type='rna', pdb='1GID', model=1,
                                chain='A', sequence='C', number=50,
                                symmetry='6_555')
Пример #9
0
 def setUp(self):
     self.atoms = [
         Atom(type='C', name='a1', polymeric='A',
              x=0.0, y=0.0, z=0.0),
         Atom(type='C', name='a2', polymeric='B',
              x=0.0, y=0.0, z=0.0),
         Atom(type='N', name='b1', polymeric='C',
              x=0.0, y=0.0, z=0.0),
         Atom(type='N', name='c2', polymeric='C',
              x=0.0, y=0.0, z=0.0)
     ]
     self.component = Component(self.atoms, type='rna', pdb='1GID', model=1,
                                chain='A', sequence='C',
                                symmetry='6_555')
     self.sub = self.component.select(name=['a1', 'a2'])
Пример #10
0
    def __residues__(self, pdb):
        mapping = it.groupby(
            sorted(self.__atoms__(pdb), key=lambda a: a.component_unit_id()),
            lambda a: a.component_unit_id())

        for comp_id, atoms in mapping:
            atoms = list(atoms)
            first = atoms[0]
            type = self._chem.get(first.component_id, {})
            type = type.get('type', None)
            alt_id = first.alt_id
            if alt_id == '.':
                alt_id = None
            yield Component(atoms,
                            pdb=first.pdb,
                            model=first.model,
                            type=type,
                            alt_id=alt_id,
                            chain=first.chain,
                            symmetry=first.symmetry,
                            sequence=first.component_id,
                            number=first.component_number,
                            index=first.component_index,
                            insertion_code=first.insertion_code,
                            polymeric=first.polymeric)
Пример #11
0
    def __residues__(self, pdb):
        key = op.attrgetter(
            'pdb',
            'model',
            'chain',
            'component_id',
            'component_number',
            'insertion_code',
            'symmetry',
        )
        mapping = it.groupby(sorted(self.__atoms__(pdb), key=key), key)

        for comp_id, all_atoms in mapping:
            for atoms in self.__group_alt_atoms__(list(all_atoms)):
                first = atoms[0]
                type = self._chem.get(first.component_id, {})
                type = type.get('type', None)
                alt_id = first.alt_id
                if alt_id == '.':
                    alt_id = None

                yield Component(
                    atoms,
                    pdb=first.pdb,
                    model=first.model,
                    type=type,
                    alt_id=alt_id,
                    chain=first.chain,
                    symmetry=first.symmetry,
                    sequence=first.component_id,
                    number=first.component_number,
                    index=first.component_index,
                    insertion_code=first.insertion_code,
                    polymeric=first.polymeric,
                )
Пример #12
0
 def setUp(self):
     atoms = [
         Atom(name='N9', x=3.0, y=3.0, z=3.0),
         Atom(name='C4', x=2.0, y=2.0, z=2.0),
         Atom(name='N3', x=1.0, y=1.0, z=1.0),
     ]
     self.residue = Component(atoms, sequence='A')
Пример #13
0
class SubComponentTest(ut.TestCase):
    def setUp(self):
        self.atoms = [
            Atom(type='C', name='a1', polymeric='A',
                 x=0.0, y=0.0, z=0.0),
            Atom(type='C', name='a2', polymeric='B',
                 x=0.0, y=0.0, z=0.0),
            Atom(type='N', name='b1', polymeric='C',
                 x=0.0, y=0.0, z=0.0),
            Atom(type='N', name='c2', polymeric='C',
                 x=0.0, y=0.0, z=0.0)
        ]
        self.component = Component(self.atoms, type='rna', pdb='1GID', model=1,
                                   chain='A', sequence='C',
                                   symmetry='6_555')
        self.sub = self.component.select(name=['a1', 'a2'])

    def test_can_create_new_component_with_same_data(self):
        val = self.sub.symmetry
        ans = '6_555'
        self.assertEquals(ans, val)

    def test_can_create_new_component_with_corrent_atoms(self):
        val = list(self.sub.atoms())
        ans = self.atoms[0:2]
        self.assertEquals(ans, val)
Пример #14
0
class AtomTest(ut.TestCase):
    def setUp(self):
        self.atoms = [
            Atom(name='N9', x=3.0, y=3.0, z=3.0),
            Atom(name='C4', x=2.0, y=2.0, z=2.0),
            Atom(name='N3', x=1.0, y=1.0, z=1.0),
            Atom(name='C3', x=0.0, y=0.0, z=0.0),
        ]
        self.component = Component(self.atoms)

    def test_it_can_get_atoms_by_name(self):
        val = list(self.component.atoms(name=['N3', 'C4']))
        ans = [self.atoms[1], self.atoms[2]]
        self.assertEquals(ans, val)

    def test_it_can_get_atoms_by_defined_names(self):
        self.component.centers.define('example', ['N9', 'C3'])
        val = list(self.component.atoms(name='example'))
        ans = [self.atoms[0], self.atoms[-1]]
        self.assertEquals(ans, val)
Пример #15
0
class BasicTest(ut.TestCase):
    def setUp(self):
        self.atoms = [
            Atom(type='C', name='a1', polymeric='A', component_number=3,
                 x=0.0, y=0.0, z=0.0),
            Atom(type='C', name='a2', polymeric='B', component_number=2,
                 x=0.0, y=0.0, z=0.0),
            Atom(type='N', name='b1', polymeric='C', component_number=1,
                 x=0.0, y=0.0, z=0.0),
            Atom(type='N', name='c2', polymeric='C', component_number=0,
                 x=0.0, y=0.0, z=0.0)
        ]
        self.component = Component(self.atoms, type='rna', pdb='1GID', model=1,
                                   chain='A', sequence='C', number=50,
                                   symmetry='6_555')

    def test_has_item_access(self):
        val = self.component.type
        ans = 'rna'
        self.assertEqual(val, ans)

    def test_length_is_number_atoms(self):
        val = len(self.component)
        ans = 4
        self.assertEqual(val, ans)

    def test_computes_unit_id(self):
        val = self.component.unit_id()
        ans = "1GID|1|A|C|50||||6_555"
        self.assertEquals(val, ans)

    def test_can_get_filtered_atoms(self):
        val = list(self.component.atoms(type='C'))
        ans = self.atoms[0:2]
        self.assertEquals(val, ans)

    def test_can_filter_using_a_list(self):
        val = list(self.component.atoms(polymeric=['A', 'C']))
        ans = [self.atoms[0], self.atoms[2], self.atoms[3]]
        self.assertEquals(val, ans)

    def test_can_filter_using_a_function(self):
        val = list(self.component.atoms(polymeric=lambda a: a == 'C'))
        ans = self.atoms[2:4]
        self.assertEquals(val, ans)

    def test_can_filter_by_several_attributes(self):
        val = list(self.component.atoms(type='C', polymeric='B'))
        ans = [self.atoms[1]]
        self.assertEquals(val, ans)

    def test_can_check_is_complete(self):
        val = self.component.is_complete(['a1', 'a2', 'b1'])
        self.assertTrue(val)

    def test_can_check_is_not_complete(self):
        val = self.component.is_complete(['a1', 'a2', 'g3'])
        self.assertFalse(val)

    def test_can_check_is_complete_using_custom_key(self):
        val = self.component.is_complete([1, 2], key='component_number')
        self.assertTrue(val)

    def test_can_check_is_not_complete_using_custom_key(self):
        val = self.component.is_complete([1, 2, 10], key='component_number')
        self.assertFalse(val)

    def test_knows_is_equal_to_itself(self):
        self.assertTrue(self.component == self.component)

    def test_knows_is_equal_to_equivelant_component(self):
        self.assertTrue(self.component == self.component.select())
Пример #16
0
 def test_gives_none_for_unknown_unit(self):
     val = self.loader.type(Component([], sequence='GTP'))
     ans = None
     self.assertEqual(ans, val)
Пример #17
0
from fr3d.data import Atom
from fr3d.data import Component

nt10_0 = Component([Atom(type='N', name='N1',x=19.679762,y=146.510834,z=106.455235),
                    Atom(type='C', name='C2',x=19.459715,y=146.692932,z=107.816836),
                    Atom(type='O', name='O2',x=19.354777,y=147.785831,z=108.333165),
                    Atom(type='N', name='N3',x=19.375964,y=145.491465,z=108.503069),
                    Atom(type='C', name='C4',x=19.482438,y=144.177244,z=108.006327),
                    Atom(type='O', name='O4',x=19.384232,y=143.219519,z=108.751357),
                    Atom(type='C', name='C6',x=19.800699,y=145.278872,z=105.856545),
                    Atom(type='C', name='C5',x=19.712414,y=144.129302,z=106.564466),
                    Atom(type='H', name='H5',x=19.808116,y=143.162711,z=106.089600),
                    Atom(type='H', name='H1',x=19.747568,y=147.360820,z=105.915883),
                    Atom(type='H', name='H3',x=19.215883,y=145.577268,z=109.499783),
                    Atom(type='H', name='H6',x=19.970458,y=145.295294,z=104.785373),
                    Atom(type='C', name='C1*',x=19.841000,y=147.761000,z=105.646000),
                    Atom(type='C', name='C2*',x=20.264000,y=147.625000,z=104.181000),
                    Atom(type='O', name='O2*',x=21.328000,y=148.530000,z=104.003000),
                    Atom(type='C', name='C3*',x=18.978000,y=148.021000,z=103.445000),
                    Atom(type='O', name='O3*',x=19.159000,y=148.571000,z=102.125000),
                    Atom(type='C', name='C4*',x=18.405000,y=149.086000,z=104.371000),
                    Atom(type='O', name='O4*',x=18.630000,y=148.501000,z=105.679000),
                    Atom(type='C', name='C5*',x=16.942000,y=149.450000,z=104.201000),
                    Atom(type='O', name='O5*',x=16.030000,y=148.355000,z=104.290000),
                    Atom(type='P', name='P',x=19.695000,y=146.523000,z=106.436000),
                    Atom(type='O', name='O1P',x=19.695000,y=146.523000,z=106.436000),
                    Atom(type='O', name='O2P',x=19.695000,y=146.523000,z=106.436000)],
                   type='rna', pdb='1S72', sequence='U', chain='0', number='10')
nt11_0 = Component([Atom(type='N', name='N9',x=24.987289,y=147.803631,z=104.303074),
                    Atom(type='C', name='C4',x=26.110439,y=147.121416,z=104.714354),
                    Atom(type='N', name='N3',x=27.347788,y=147.594850,z=104.920430),
Пример #18
0
nt10_0 = Component([
    Atom(type='N', name='N1', x=19.679762, y=146.510834, z=106.455235),
    Atom(type='C', name='C2', x=19.459715, y=146.692932, z=107.816836),
    Atom(type='O', name='O2', x=19.354777, y=147.785831, z=108.333165),
    Atom(type='N', name='N3', x=19.375964, y=145.491465, z=108.503069),
    Atom(type='C', name='C4', x=19.482438, y=144.177244, z=108.006327),
    Atom(type='O', name='O4', x=19.384232, y=143.219519, z=108.751357),
    Atom(type='C', name='C6', x=19.800699, y=145.278872, z=105.856545),
    Atom(type='C', name='C5', x=19.712414, y=144.129302, z=106.564466),
    Atom(type='H', name='H5', x=19.808116, y=143.162711, z=106.089600),
    Atom(type='H', name='H1', x=19.747568, y=147.360820, z=105.915883),
    Atom(type='H', name='H3', x=19.215883, y=145.577268, z=109.499783),
    Atom(type='H', name='H6', x=19.970458, y=145.295294, z=104.785373),
    Atom(type='C', name='C1*', x=19.841000, y=147.761000, z=105.646000),
    Atom(type='C', name='C2*', x=20.264000, y=147.625000, z=104.181000),
    Atom(type='O', name='O2*', x=21.328000, y=148.530000, z=104.003000),
    Atom(type='C', name='C3*', x=18.978000, y=148.021000, z=103.445000),
    Atom(type='O', name='O3*', x=19.159000, y=148.571000, z=102.125000),
    Atom(type='C', name='C4*', x=18.405000, y=149.086000, z=104.371000),
    Atom(type='O', name='O4*', x=18.630000, y=148.501000, z=105.679000),
    Atom(type='C', name='C5*', x=16.942000, y=149.450000, z=104.201000),
    Atom(type='O', name='O5*', x=16.030000, y=148.355000, z=104.290000),
    Atom(type='P', name='P', x=19.695000, y=146.523000, z=106.436000),
    Atom(type='O', name='O1P', x=19.695000, y=146.523000, z=106.436000),
    Atom(type='O', name='O2P', x=19.695000, y=146.523000, z=106.436000)
],
                   type='rna',
                   pdb='1S72',
                   sequence='U',
                   chain='0',
                   number='10')
Пример #19
0
    def setUp(self):
        some_atoms = [
            Atom(insertion_code='?', component_id='G', name='P',
                 symmetry='1_555', component_number='118', chain='B', y=54.015,
                 x=47.242, model='1', z=51.393, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='OP1',
                 symmetry='1_555', component_number='118', chain='B', y=53.619,
                 x=45.943, model='1', z=50.812, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='OP2',
                 symmetry='1_555', component_number='118', chain='B', y=55.016,
                 x=48.096, model='1', z=50.668, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="O5'",
                 symmetry='1_555', component_number='118', chain='B', y=54.52,
                 x=47.009, model='1', z=52.887, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="C5'",
                 symmetry='1_555', component_number='118', chain='B', y=53.848,
                 x=46.12, model='1', z=53.764, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="C4'",
                 symmetry='1_555', component_number='118', chain='B', y=54.529,
                 x=46.123, model='1', z=55.11, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="O4'",
                 symmetry='1_555', component_number='118', chain='B', y=54.338,
                 x=47.426, model='1', z=55.73, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="C3'",
                 symmetry='1_555', component_number='118', chain='B', y=56.037,
                 x=45.94, model='1', z=55.051, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="O3'",
                 symmetry='1_555', component_number='118', chain='B', y=56.374,
                 x=44.553, model='1', z=54.993, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="C2'",
                 symmetry='1_555', component_number='118', chain='B', y=56.495,
                 x=46.647, model='1', z=56.326, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="O2'",
                 symmetry='1_555', component_number='118', chain='B', y=56.349,
                 x=45.878, model='1', z=57.494, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="C1'",
                 symmetry='1_555', component_number='118', chain='B', y=55.528,
                 x=47.827, model='1', z=56.387, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='N9',
                 symmetry='1_555', component_number='118', chain='B', y=56.026,
                 x=49.033, model='1', z=55.738, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='C8',
                 symmetry='1_555', component_number='118', chain='B', y=55.785,
                 x=49.442, model='1', z=54.455, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='N7',
                 symmetry='1_555', component_number='118', chain='B', y=56.371,
                 x=50.566, model='1', z=54.161, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='C5',
                 symmetry='1_555', component_number='118', chain='B', y=57.031,
                 x=50.913, model='1', z=55.323, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='C6',
                 symmetry='1_555', component_number='118', chain='B', y=57.827,
                 x=52.019, model='1', z=55.608, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='O6',
                 symmetry='1_555', component_number='118', chain='B', y=58.131,
                 x=52.969, model='1', z=54.873, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='N1',
                 symmetry='1_555', component_number='118', chain='B', y=58.301,
                 x=51.975, model='1', z=56.907, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='C2',
                 symmetry='1_555', component_number='118', chain='B', y=58.033,
                 x=50.991, model='1', z=57.814, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='N2',
                 symmetry='1_555', component_number='118', chain='B', y=58.557,
                 x=51.138, model='1', z=59.032, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='N3',
                 symmetry='1_555', component_number='118', chain='B', y=57.299,
                 x=49.949, model='1', z=57.556, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='C4',
                 symmetry='1_555', component_number='118', chain='B', y=56.828,
                 x=49.974, model='1', z=56.301, pdb='1GID')
        ]

        self.res = Component(some_atoms, type='rna', pdb='1GID', model=1,
                             chain='A', sequence='G', number=50,
                             symmetry='6_555')
Пример #20
0
 def test_can_determine_is_water(self):
     component = Component([], sequence='hoh')
     self.assertEquals('water', units.component_type(component))
Пример #21
0
class InferHydrogenTest(ut.TestCase):
    def setUp(self):
        some_atoms = [
            Atom(insertion_code='?', component_id='G', name='P',
                 symmetry='1_555', component_number='118', chain='B', y=54.015,
                 x=47.242, model='1', z=51.393, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='OP1',
                 symmetry='1_555', component_number='118', chain='B', y=53.619,
                 x=45.943, model='1', z=50.812, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='OP2',
                 symmetry='1_555', component_number='118', chain='B', y=55.016,
                 x=48.096, model='1', z=50.668, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="O5'",
                 symmetry='1_555', component_number='118', chain='B', y=54.52,
                 x=47.009, model='1', z=52.887, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="C5'",
                 symmetry='1_555', component_number='118', chain='B', y=53.848,
                 x=46.12, model='1', z=53.764, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="C4'",
                 symmetry='1_555', component_number='118', chain='B', y=54.529,
                 x=46.123, model='1', z=55.11, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="O4'",
                 symmetry='1_555', component_number='118', chain='B', y=54.338,
                 x=47.426, model='1', z=55.73, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="C3'",
                 symmetry='1_555', component_number='118', chain='B', y=56.037,
                 x=45.94, model='1', z=55.051, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="O3'",
                 symmetry='1_555', component_number='118', chain='B', y=56.374,
                 x=44.553, model='1', z=54.993, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="C2'",
                 symmetry='1_555', component_number='118', chain='B', y=56.495,
                 x=46.647, model='1', z=56.326, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="O2'",
                 symmetry='1_555', component_number='118', chain='B', y=56.349,
                 x=45.878, model='1', z=57.494, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name="C1'",
                 symmetry='1_555', component_number='118', chain='B', y=55.528,
                 x=47.827, model='1', z=56.387, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='N9',
                 symmetry='1_555', component_number='118', chain='B', y=56.026,
                 x=49.033, model='1', z=55.738, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='C8',
                 symmetry='1_555', component_number='118', chain='B', y=55.785,
                 x=49.442, model='1', z=54.455, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='N7',
                 symmetry='1_555', component_number='118', chain='B', y=56.371,
                 x=50.566, model='1', z=54.161, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='C5',
                 symmetry='1_555', component_number='118', chain='B', y=57.031,
                 x=50.913, model='1', z=55.323, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='C6',
                 symmetry='1_555', component_number='118', chain='B', y=57.827,
                 x=52.019, model='1', z=55.608, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='O6',
                 symmetry='1_555', component_number='118', chain='B', y=58.131,
                 x=52.969, model='1', z=54.873, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='N1',
                 symmetry='1_555', component_number='118', chain='B', y=58.301,
                 x=51.975, model='1', z=56.907, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='C2',
                 symmetry='1_555', component_number='118', chain='B', y=58.033,
                 x=50.991, model='1', z=57.814, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='N2',
                 symmetry='1_555', component_number='118', chain='B', y=58.557,
                 x=51.138, model='1', z=59.032, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='N3',
                 symmetry='1_555', component_number='118', chain='B', y=57.299,
                 x=49.949, model='1', z=57.556, pdb='1GID'),
            Atom(insertion_code='?', component_id='G', name='C4',
                 symmetry='1_555', component_number='118', chain='B', y=56.828,
                 x=49.974, model='1', z=56.301, pdb='1GID')
        ]

        self.res = Component(some_atoms, type='rna', pdb='1GID', model=1,
                             chain='A', sequence='G', number=50,
                             symmetry='6_555')

    def test_has_no_hydrogens_initially(self):
        atoms = list(self.res.atoms(name=['H1', 'H8', 'H9', '1H2', '2H2']))
        self.assertEqual(len(atoms), 0)

    def test_hydrogen_infers_on_residue(self):
        self.res.infer_hydrogens()
        atoms = list(self.res.atoms(name=['H1', 'H8', 'H9', '1H2', '2H2']))
        self.assertEqual(len(atoms), 5)

    def test_infers_correct_location(self):
        raise SkipTest()
Пример #22
0
 def test_gives_none_otherwise(self):
     component = Component([], sequence='gtp')
     self.assertEquals(None, units.component_type(component))
Пример #23
0
 def test_knows_if_unit_is_water(self):
     val = self.loader.type(Component([], sequence='HOH'))
     ans = 'water'
     self.assertEqual(ans, val)
nt77_9 = Component([
    Atom(type='N', name='N9', x=43.063866, y=60.593299, z=122.948693),
    Atom(type='C', name='C4', x=42.888197, y=59.952482, z=121.742655),
    Atom(type='N', name='N3', x=41.743000, y=59.665137, z=121.107361),
    Atom(type='N', name='N1', x=43.174443, y=58.683103, z=119.409845),
    Atom(type='C', name='C6', x=44.294465, y=58.989433, z=120.078177),
    Atom(type='N', name='N6', x=45.492460, y=58.648576, z=119.551113),
    Atom(type='C', name='C8', x=44.415702, y=60.651476, z=123.176564),
    Atom(type='C', name='C5', x=44.188911, y=59.660647, z=121.315765),
    Atom(type='C', name='C2', x=41.988409, y=59.033005, z=119.954772),
    Atom(type='N', name='N7', x=45.139547, y=60.098841, z=122.214056),
    Atom(type='H', name='H2', x=41.115198, y=58.758914, z=119.368203),
    Atom(type='H', name='H8', x=44.822196, y=61.111613, z=124.067401),
    Atom(type='H', name='H9', x=42.326540, y=60.946934, z=123.540317),
    Atom(type='1', name='1H6', x=45.517242, y=58.171343, z=118.666736),
    Atom(type='2', name='2H6', x=46.340025, y=58.872608, z=120.042414),
    Atom(type='C', name='C1*', x=41.945000, y=61.063000, z=123.795000),
    Atom(type='C', name='C2*', x=41.342000, y=59.980000, z=124.691000),
    Atom(type='O', name='O2*', x=40.486000, y=59.109000, z=123.980000),
    Atom(type='C', name='C3*', x=40.625000, y=60.844000, z=125.716000),
    Atom(type='O', name='O3*', x=39.435000, y=61.360000, z=125.157000),
    Atom(type='C', name='C4*', x=41.611000, y=61.984000, z=125.929000),
    Atom(type='O', name='O4*', x=42.402000, y=62.056000, z=124.698000),
    Atom(type='C', name='C5*', x=42.487000, y=61.728000, z=127.126000),
    Atom(type='O', name='O5*', x=43.480000, y=62.734000, z=127.249000),
    Atom(type='P', name='P', x=45.014000, y=62.337000, z=127.402000),
    Atom(type='O', name='O1P', x=45.546000, y=62.055000, z=126.041000),
    Atom(type='O', name='O2P', x=45.658000, y=63.379000, z=128.241000)
],
                   type='rna',
                   pdb='1S72',
                   sequence='A',
                   chain='9',
                   number='77')
Пример #25
0
 def test_can_determine_is_rna(self):
     component = Component([], sequence='A')
     self.assertEquals('rna', units.component_type(component))
# -*- coding: utf-8 -*-
"""
Created on Wed Nov 20 12:42:45 2013

@author: zirbel
"""
from fr3d.data import Atom
from fr3d.data import Component
from fr3d.data import Structure


# nucleotides from 1S72 corresponding to sarcin-ricin motifs

nt77_9 = Component([Atom(type='N', name='N9',x=43.063866,y=60.593299,z=122.948693),Atom(type='C', name='C4',x=42.888197,y=59.952482,z=121.742655),Atom(type='N', name='N3',x=41.743000,y=59.665137,z=121.107361),Atom(type='N', name='N1',x=43.174443,y=58.683103,z=119.409845),Atom(type='C', name='C6',x=44.294465,y=58.989433,z=120.078177),Atom(type='N', name='N6',x=45.492460,y=58.648576,z=119.551113),Atom(type='C', name='C8',x=44.415702,y=60.651476,z=123.176564),Atom(type='C', name='C5',x=44.188911,y=59.660647,z=121.315765),Atom(type='C', name='C2',x=41.988409,y=59.033005,z=119.954772),Atom(type='N', name='N7',x=45.139547,y=60.098841,z=122.214056),Atom(type='H', name='H2',x=41.115198,y=58.758914,z=119.368203),Atom(type='H', name='H8',x=44.822196,y=61.111613,z=124.067401),Atom(type='H', name='H9',x=42.326540,y=60.946934,z=123.540317),Atom(type='1', name='1H6',x=45.517242,y=58.171343,z=118.666736),Atom(type='2', name='2H6',x=46.340025,y=58.872608,z=120.042414),Atom(type='C', name='C1*',x=41.945000,y=61.063000,z=123.795000),Atom(type='C', name='C2*',x=41.342000,y=59.980000,z=124.691000),Atom(type='O', name='O2*',x=40.486000,y=59.109000,z=123.980000),Atom(type='C', name='C3*',x=40.625000,y=60.844000,z=125.716000),Atom(type='O', name='O3*',x=39.435000,y=61.360000,z=125.157000),Atom(type='C', name='C4*',x=41.611000,y=61.984000,z=125.929000),Atom(type='O', name='O4*',x=42.402000,y=62.056000,z=124.698000),Atom(type='C', name='C5*',x=42.487000,y=61.728000,z=127.126000),Atom(type='O', name='O5*',x=43.480000,y=62.734000,z=127.249000),Atom(type='P', name='P',x=45.014000,y=62.337000,z=127.402000),Atom(type='O', name='O1P',x=45.546000,y=62.055000,z=126.041000),Atom(type='O', name='O2P',x=45.658000,y=63.379000,z=128.241000)],type='rna', pdb='1S72', sequence='A', chain='9', number='77',
                   polymeric=True)
nt78_9 = Component([Atom(type='N', name='N9',x=37.026639,y=62.585170,z=119.953868),Atom(type='C', name='C4',x=37.748501,y=61.918966,z=119.000294),Atom(type='N', name='N3',x=39.108341,y=61.874399,z=118.926277),Atom(type='N', name='N1',x=38.661507,y=60.535032,z=117.023968),Atom(type='C', name='C6',x=37.228669,y=60.545058,z=117.049403),Atom(type='O', name='O6',x=36.603818,y=59.943544,z=116.198377),Atom(type='C', name='C8',x=35.696231,y=62.377912,z=119.669330),Atom(type='C', name='C5',x=36.786713,y=61.333723,z=118.175046),Atom(type='C', name='C2',x=39.510364,y=61.158777,z=117.904881),Atom(type='N', name='N7',x=35.509556,y=61.624711,z=118.599051),Atom(type='N', name='N2',x=40.846662,y=61.007708,z=117.679505),Atom(type='H', name='H1',x=39.042235,y=59.996741,z=116.255061),Atom(type='H', name='H8',x=34.910315,y=62.802023,z=120.278928),Atom(type='H', name='H9',x=37.419429,y=63.121341,z=120.713726),Atom(type='1', name='1H2',x=41.477116,y=61.459612,z=118.317608),Atom(type='2', name='2H2',x=41.211055,y=60.471826,z=116.914156),Atom(type='C', name='C1*',x=37.601000,y=63.341000,z=121.059000),Atom(type='C', name='C2*',x=36.849000,y=64.553000,z=121.595000),Atom(type='O', name='O2*',x=36.888000,y=65.654000,z=120.708000),Atom(type='C', name='C3*',x=37.600000,y=64.751000,z=122.907000),Atom(type='O', name='O3*',x=38.918000,y=65.271000,z=122.675000),Atom(type='C', name='C4*',x=37.772000,y=63.309000,z=123.388000),Atom(type='O', name='O4*',x=37.775000,y=62.495000,z=122.177000),Atom(type='C', name='C5*',x=36.719000,y=62.808000,z=124.362000),Atom(type='O', name='O5*',x=36.974000,y=61.430000,z=124.724000),Atom(type='P', name='P',x=38.030000,y=61.059000,z=125.865000),Atom(type='O', name='O1P',x=37.913000,y=62.028000,z=126.993000),Atom(type='O', name='O2P',x=37.951000,y=59.593000,z=126.136000)],type='rna', pdb='1S72', sequence='G', chain='9', number='78',
                   polymeric=True)
nt79_9 = Component([Atom(type='N', name='N1',x=43.327481,y=64.365450,z=122.603540),Atom(type='C', name='C2',x=44.471989,y=63.873809,z=121.983920),Atom(type='O', name='O2',x=45.592434,y=64.066304,z=122.407694),Atom(type='N', name='N3',x=44.181752,y=63.147394,z=120.839569),Atom(type='C', name='C4',x=42.927629,y=62.864946,z=120.262798),Atom(type='O', name='O4',x=42.844960,y=62.204601,z=119.243455),Atom(type='C', name='C6',x=42.051956,y=64.155303,z=122.134860),Atom(type='C', name='C5',x=41.812800,y=63.439191,z=121.012164),Atom(type='H', name='H5',x=40.808173,y=63.276420,z=120.647219),Atom(type='H', name='H1',x=43.492358,y=64.901476,z=123.442269),Atom(type='H', name='H3',x=44.987706,y=62.769927,z=120.355438),Atom(type='H', name='H6',x=41.258629,y=64.601175,z=122.725052),Atom(type='C', name='C1*',x=43.535000,y=65.092000,z=123.893000),Atom(type='C', name='C2*',x=44.324000,y=66.397000,z=123.754000),Atom(type='O', name='O2*',x=45.165000,y=66.565000,z=124.876000),Atom(type='C', name='C3*',x=43.200000,y=67.420000,z=123.675000),Atom(type='O', name='O3*',x=43.584000,y=68.721000,z=124.097000),Atom(type='C', name='C4*',x=42.151000,y=66.846000,z=124.607000),Atom(type='O', name='O4*',x=42.269000,y=65.412000,z=124.445000),Atom(type='C', name='C5*',x=40.753000,y=67.272000,z=124.258000),Atom(type='O', name='O5*',x=40.553000,y=67.155000,z=122.836000),Atom(type='P', name='P',x=39.128000,y=66.803000,z=122.229000),Atom(type='O', name='O1P',x=38.110000,y=67.665000,z=122.894000),Atom(type='O', name='O2P',x=39.253000,y=66.826000,z=120.752000)],type='rna', pdb='1S72', sequence='U', chain='9', number='79',
                   polymeric=True)
nt80_9 = Component([Atom(type='N', name='N9',x=46.358129,y=66.556809,z=119.184554),Atom(type='C', name='C4',x=46.392578,y=66.012738,z=117.920104),Atom(type='N', name='N3',x=47.454038,y=65.804784,z=117.127830),Atom(type='N', name='N1',x=45.838733,y=64.913585,z=115.549370),Atom(type='C', name='C6',x=44.806050,y=65.138684,z=116.372688),Atom(type='N', name='N6',x=43.557660,y=64.805679,z=115.972938),Atom(type='C', name='C8',x=45.044684,y=66.561095,z=119.581564),Atom(type='C', name='C5',x=45.053980,y=65.718340,z=117.635946),Atom(type='C', name='C2',x=47.077338,y=65.253949,z=115.968970),Atom(type='N', name='N7',x=44.215809,y=66.062335,z=118.676036),Atom(type='H', name='H2',x=47.874870,y=65.048187,z=115.259540),Atom(type='H', name='H8',x=44.744960,y=66.942297,z=120.548726),Atom(type='H', name='H9',x=47.157417,y=66.885226,z=119.706097),Atom(type='1', name='1H6',x=43.430686,y=64.395241,z=115.064143),Atom(type='2', name='2H6',x=42.774514,y=64.969343,z=116.581074),Atom(type='C', name='C1*',x=47.534000,y=67.074000,z=119.901000),Atom(type='C', name='C2*',x=48.011000,y=68.426000,z=119.363000),Atom(type='O', name='O2*',x=49.415000,y=68.503000,z=119.493000),Atom(type='C', name='C3*',x=47.292000,y=69.388000,z=120.297000),Atom(type='O', name='O3*',x=47.921000,y=70.659000,z=120.354000),Atom(type='C', name='C4*',x=47.388000,y=68.656000,z=121.623000),Atom(type='O', name='O4*',x=47.179000,y=67.267000,z=121.262000),Atom(type='C', name='C5*',x=46.409000,y=69.080000,z=122.691000),Atom(type='O', name='O5*',x=45.083000,y=69.207000,z=122.141000),Atom(type='P', name='P',x=43.901000,y=69.849000,z=123.002000),Atom(type='O', name='O1P',x=44.423000,y=71.037000,z=123.732000),Atom(type='O', name='O2P',x=42.711000,y=69.991000,z=122.129000)],type='rna', pdb='1S72', sequence='A', chain='9', number='80',
                   polymeric=True)
nt102_9 = Component([Atom(type='N', name='N9',x=39.738753,y=63.900917,z=114.833070),Atom(type='C', name='C4',x=39.697975,y=64.439757,z=116.090927),Atom(type='N', name='N3',x=40.783725,y=64.784250,z=116.838657),Atom(type='N', name='N1',x=39.126476,y=65.421170,z=118.407160),Atom(type='C', name='C6',x=37.946967,y=65.078646,z=117.668779),Atom(type='O', name='O6',x=36.850659,y=65.264933,z=118.158586),Atom(type='C', name='C8',x=38.435559,y=63.702857,z=114.437646),Atom(type='C', name='C5',x=38.337664,y=64.537790,z=116.388459),Atom(type='C', name='C2',x=40.430043,y=65.275248,z=118.000903),Atom(type='N', name='N7',x=37.557213,y=64.076226,z=115.352391),Atom(type='N', name='N2',x=41.393964,y=65.673207,z=118.879422),Atom(type='H', name='H1',x=38.925440,y=65.808920,z=119.321033),Atom(type='H', name='H8',x=38.190657,y=63.283071,z=113.471755),Atom(type='H', name='H9',x=40.579710,y=63.696255,z=114.313403),Atom(type='1', name='1H2',x=42.351228,y=65.571121,z=118.592907),Atom(type='2', name='2H2',x=41.181686,y=66.055780,z=119.781800),Atom(type='C', name='C1*',x=40.922000,y=63.600000,z=114.034000),Atom(type='C', name='C2*',x=41.595000,y=62.305000,z=114.491000),Atom(type='O', name='O2*',x=42.975000,y=62.372000,z=114.194000),Atom(type='C', name='C3*',x=40.870000,y=61.292000,z=113.620000),Atom(type='O', name='O3*',x=41.546000,y=60.058000,z=113.480000),Atom(type='C', name='C4*',x=40.813000,y=62.026000,z=112.297000),Atom(type='O', name='O4*',x=40.523000,y=63.396000,z=112.687000),Atom(type='C', name='C5*',x=39.771000,y=61.530000,z=111.333000),Atom(type='O', name='O5*',x=38.493000,y=61.461000,z=111.979000),Atom(type='P', name='P',x=37.196000,y=61.032000,z=111.162000),Atom(type='O', name='O1P',x=37.553000,y=59.865000,z=110.309000),Atom(type='O', name='O2P',x=36.061000,y=60.930000,z=112.127000)],type='rna', pdb='1S72', sequence='G', chain='9', number='102',
                    polymeric=True)
nt103_9 = Component([Atom(type='N', name='N9',x=46.654607,y=62.038113,z=116.995565),Atom(type='C', name='C4',x=47.798673,y=62.571539,z=117.545658),Atom(type='N', name='N3',x=49.008829,y=62.712068,z=116.985824),Atom(type='N', name='N1',x=49.650317,y=63.686864,z=119.114965),Atom(type='C', name='C6',x=48.426126,y=63.527721,z=119.635528),Atom(type='N', name='N6',x=48.190421,y=63.930934,z=120.904794),Atom(type='C', name='C8',x=45.677435,y=62.113276,z=117.955908),Atom(type='C', name='C5',x=47.417081,y=62.942204,z=118.840361),Atom(type='C', name='C2',x=49.863676,y=63.277000,z=117.845106),Atom(type='N', name='N7',x=46.091834,y=62.654280,z=119.092290),Atom(type='H', name='H2',x=50.874740,y=63.431323,z=117.476839),Atom(type='H', name='H8',x=44.672665,y=61.756188,z=117.772936),Atom(type='H', name='H9',x=46.568637,y=61.666559,z=116.061069),Atom(type='1', name='1H6',x=48.940712,y=64.342585,z=121.432142),Atom(type='2', name='2H6',x=47.276523,y=63.817177,z=121.307016),Atom(type='C', name='C1*',x=46.604000,y=61.506000,z=115.636000),Atom(type='C', name='C2*',x=47.420000,y=60.210000,z=115.497000),Atom(type='O', name='O2*',x=48.021000,y=60.238000,z=114.211000),Atom(type='C', name='C3*',x=46.308000,y=59.172000,z=115.525000),Atom(type='O', name='O3*',x=46.707000,y=57.965000,z=114.912000),Atom(type='C', name='C4*',x=45.352000,y=59.888000,z=114.628000),Atom(type='O', name='O4*',x=45.267000,y=61.155000,z=115.306000),Atom(type='C', name='C5*',x=44.085000,y=59.219000,z=114.220000),Atom(type='O', name='O5*',x=43.093000,y=59.231000,z=115.230000),Atom(type='P', name='P',x=41.611000,y=59.029000,z=114.713000),Atom(type='O', name='O1P',x=41.562000,y=57.698000,z=114.076000),Atom(type='O', name='O2P',x=40.652000,y=59.381000,z=115.767000)],type='rna', pdb='1S72', sequence='A', chain='9', number='103',
                    polymeric=True)
nt104_9 = Component([Atom(type='N', name='N9',x=50.257976,y=59.967220,z=118.786849),Atom(type='C', name='C4',x=50.509303,y=60.469523,z=120.044052),Atom(type='N', name='N3',x=51.660755,y=60.944887,z=120.539861),Atom(type='N', name='N1',x=50.389380,y=61.315763,z=122.574814),Atom(type='C', name='C6',x=49.260072,y=60.832643,z=122.039824),Atom(type='N', name='N6',x=48.135828,y=60.796917,z=122.790803),Atom(type='C', name='C8',x=48.933932,y=59.608286,z=118.757803),Atom(type='C', name='C5',x=49.278867,y=60.374429,z=120.704542),Atom(type='C', name='C2',x=51.500842,y=61.342176,z=121.806694),Atom(type='N', name='N7',x=48.298045,y=59.836156,z=119.897759),Atom(type='H', name='H2',x=52.385707,y=61.744209,z=122.293593),Atom(type='H', name='H8',x=48.480387,y=59.181852,z=117.872927),Atom(type='H', name='H9',x=50.931904,y=59.885702,z=118.039920),Atom(type='1', name='1H6',x=48.171427,y=61.134496,z=123.736986),Atom(type='2', name='2H6',x=47.282210,y=60.436918,z=122.401354),Atom(type='C', name='C1*',x=51.266000,y=59.852000,z=117.725000),Atom(type='C', name='C2*',x=52.159000,y=58.633000,z=117.946000),Atom(type='O', name='O2*',x=53.441000,y=58.888000,z=117.421000),Atom(type='C', name='C3*',x=51.391000,y=57.581000,z=117.166000),Atom(type='O', name='O3*',x=52.135000,y=56.421000,z=116.850000),Atom(type='C', name='C4*',x=50.949000,y=58.354000,z=115.941000),Atom(type='O', name='O4*',x=50.591000,y=59.652000,z=116.488000),Atom(type='C', name='C5*',x=49.757000,y=57.754000,z=115.256000),Atom(type='O', name='O5*',x=48.756000,y=57.442000,z=116.230000),Atom(type='P', name='P',x=47.364000,y=56.816000,z=115.803000),Atom(type='O', name='O1P',x=47.618000,y=55.644000,z=114.924000),Atom(type='O', name='O2P',x=46.549000,y=56.657000,z=117.037000)],type='rna', pdb='1S72', sequence='A', chain='9', number='104',
                    polymeric=True)

nt77_9.infer_hydrogens()
nt78_9.infer_hydrogens()
nt79_9.infer_hydrogens()
Пример #27
0
 def test_knows_if_unit_is_aa(self):
     val = self.loader.type(Component([], sequence='GLU'))
     ans = 'aa'
     self.assertEqual(ans, val)