def test_asa_xtra_stride(self): """test asa via stride""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) try: result = asa.asa_xtra(self.input_structure, 'stride') except ApplicationNotFoundError: return self.assertAlmostEqual(self.input_structure[(0,)][('B',)]\ [(('LEU', 35, ' '),)].xtra['STRIDE_ASA'], 17.20)
def test_uc(self): """compares asa within unit cell.""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) asa.asa_xtra(self.input_structure, symmetry_mode='uc', xtra_key='ASA_UC') asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) self.input_structure.propagateData(sum, 'A', 'ASA_UC', xtra=True) residues = einput(self.input_structure, 'R') x = residues[('2E12', 0, 'B', ('GLU', 77, ' '))].xtra.values() self.assertTrue(x[0] != x[1])
def test_chains(self): """compares contacts diff chains""" self.input_file = os.path.join('data', '1A1X.pdb') # one chain self.input_structure = PDBParser(open(self.input_file)) res = contact.contacts_xtra(self.input_structure) self.assertTrue(res == {}) self.input_file = os.path.join('data', '2E12.pdb') # one chain self.input_structure = PDBParser(open(self.input_file)) res = contact.contacts_xtra(self.input_structure) self.assertTrue(res) self.assertFloatEqual(\ res[('2E12', 0, 'B', ('THR', 17, ' '), ('OG1', ' '))]['CONTACTS']\ [('2E12', 0, 'A', ('ALA', 16, ' '), ('CB', ' '))][0], 5.7914192561064004)
def test_uc2(self): self.input_file = os.path.join('data', '1LJO.pdb') self.input_structure = PDBParser(open(self.input_file)) asa.asa_xtra(self.input_structure, symmetry_mode='uc', xtra_key='ASA_XTAL') asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) self.input_structure.propagateData(sum, 'A', 'ASA_XTAL', xtra=True) residues = einput(self.input_structure, 'R') r1 = residues[('1LJO', 0, 'A', ('ARG', 65, ' '))] r2 = residues[('1LJO', 0, 'A', ('ASN', 46, ' '))] self.assertFloatEqual(r1.xtra.values(), [128.94081270529105, 22.807700865674093]) self.assertFloatEqual(r2.xtra.values(), [115.35738419425566, 115.35738419425566])
def _test_bio(self): """compares asa within a bio unit.""" self.input_file = os.path.join('data', '1A1X.pdb') self.input_structure = PDBParser(open(self.input_file)) asa.asa_xtra(self.input_structure, symmetry_mode='bio', xtra_key='ASA_BIO') asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) self.input_structure.propagateData(sum, 'A', 'ASA_BIO', xtra=True) residues = einput(self.input_structure, 'R') r1 = residues[('1A1X', 0, 'A', ('GLU', 37, ' '))] r2 = residues[('1A1X', 0, 'A', ('TRP', 15, ' '))] self.assertFloatEqual(r1.xtra.values(), \ [20.583191467544726, 78.996394472066541]) self.assertFloatEqual(r2.xtra.values(), \ [136.41436710386989, 136.41436710386989])
def test_compare(self): """compares internal asa to stride.""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) try: asa.asa_xtra(self.input_structure, mode='stride') except ApplicationNotFoundError: return asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) residues = einput(self.input_structure, 'R') asa1 = [] asa2 = [] for residue in residues.selectChildren('H_HOH', 'ne', 'name').values(): asa1.append(residue.xtra['ASA']) asa2.append(residue.xtra['STRIDE_ASA']) self.assertAlmostEqual(correlation(asa1, asa2)[1], 0.)
def test_crystal(self): """compares asa within unit cell.""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) asa.asa_xtra(self.input_structure, symmetry_mode='uc', crystal_mode=2, xtra_key='ASA_XTAL') asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) self.input_structure.propagateData(sum, 'A', 'ASA_XTAL', xtra=True) residues = einput(self.input_structure, 'R') r1 = residues[('2E12', 0, 'A', ('ALA', 42, ' '))] r2 = residues[('2E12', 0, 'A', ('VAL', 8, ' '))] r3 = residues[('2E12', 0, 'A', ('LEU', 25, ' '))] self.assertFloatEqual(r1.xtra.values(), \ [32.041070749038823, 32.041070749038823]) self.assertFloatEqual(r3.xtra.values(), \ [0., 0.]) self.assertFloatEqual(r2.xtra.values(), \ [28.873559956056916, 0.0])
def test_asa_xtra(self): """test internal asa""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) self.assertRaises(ValueError, asa.asa_xtra, self.input_structure, mode='a') result = asa.asa_xtra(self.input_structure) a = einput(self.input_structure, 'A') for i in range(len(result)): self.assertEquals(result.values()[i]['ASA'], a[result.keys()[i]].xtra['ASA']) r = einput(self.input_structure, 'R') for water in r.selectChildren('H_HOH', 'eq', 'name').values(): self.assertFalse('ASA' in water.xtra) for residue in r.selectChildren('H_HOH', 'ne', 'name').values(): for a in residue: self.assertTrue('ASA' in a.xtra) result = asa.asa_xtra(self.input_structure, xtra_key='SASA') for residue in r.selectChildren('H_HOH', 'ne', 'name').values(): for a in residue: a.xtra['ASA'] == a.xtra['SASA']
def test_PDBParser(self): """tests the UI parsing function. """ fh = open('data/2E12.pdb') structure = PDBParser(fh, 'JUNK') assert type(structure) is Structure assert len(structure) == 1 assert (0,) in structure assert structure.header['space_group'] == 'P 21 21 21' assert structure.header['experiment_type'] == 'X-RAY DIFFRACTION' assert structure.header['r_free'] == '0.280' assert structure.header['dbref_acc'] == 'Q8P4R5' assert structure.header['cryst1'] == '49.942 51.699 82.120 90.00 90.00 90.00' assert structure.header['matthews'] == '2.29' model = structure[(0,)] assert len(model) == 2 assert structure.raw_header assert structure.raw_trailer assert structure.header assert structure.trailer == {} assert structure.getId() == ('JUNK', )
def test_symmetry(self): """compares contacts diff symmetry mates""" self.input_file = os.path.join('data', '2E12.pdb') # one chain self.input_structure = PDBParser(open(self.input_file)) res = contact.contacts_xtra(self.input_structure, \ symmetry_mode='uc', contact_mode='diff_sym') self.assertTrue(res) self.assertFloatEqual(\ res[('2E12', 0, 'B', ('GLU', 77, ' '), ('OE2', ' '))]['CONTACTS']\ [('2E12', 0, 'B', ('GLU', 57, ' '), ('OE2', ' '))][0], \ 5.2156557833123873)
def test_PDBParser(self): """tests the UI parsing function. """ fh = open("data/2E12.pdb") structure = PDBParser(fh, "JUNK") assert type(structure) is Structure assert len(structure) == 1 assert (0,) in structure assert structure.header["space_group"] == "P 21 21 21" assert structure.header["experiment_type"] == "X-RAY DIFFRACTION" assert structure.header["r_free"] == "0.280" assert structure.header["dbref_acc"] == "Q8P4R5" assert structure.header["cryst1"] == "49.942 51.699 82.120 90.00 90.00 90.00" assert structure.header["matthews"] == "2.29" model = structure[(0,)] assert len(model) == 2 assert structure.raw_header assert structure.raw_trailer assert structure.header assert structure.trailer == {} assert structure.getId() == ("JUNK",)
def test_1expand_crystal(self): """tests the expansion of a unit-cell to a crystal""" fh = open(fn, 'r') input_structure = PDBParser(fh) self.assertTrue(input_structure.values(), 4) # 4 models sh = expand_crystal(input_structure) self.assertTrue(len(sh) == 27) fd, fn2 = tempfile.mkstemp('.pdb') os.close(fd) fh = open(fn2, 'w') a1 = einput(input_structure, 'A') a2 = einput(sh.values()[3], 'A') k = a1.values()[99].getFull_id() name = sh.values()[3].name a1c = a1[k].coords a2c = a2[(name,) + k[1:]].coords self.assertTrue(len(a1), len(a2)) self.assertRaises(AssertionError, self.assertFloatEqual, a1c, a2c) PDBWriter(fh, sh) fh.close() os.unlink(fn) os.unlink(fn2)
class asaTest(TestCase): """Tests for surface calculations.""" def setUp(self): self.arr = np.random.random(3000).reshape((1000, 3)) self.point = np.random.random(3) self.center = np.array([0.5, 0.5, 0.5]) def test_0import(self): # sort by name """tests if can import _asa cython extension.""" global _asa from cogent.struct import _asa assert 'asa_loop' in dir(_asa) def test_1import(self): # sort by name """tests if can import asa.""" global asa from cogent.struct import asa def test_asa_loop(self): """tests if inner asa_loop (cython) performs correctly""" self.lcoords = np.array([[-4., 0, 0], [0, 0, 0], [4, 0, 0], [10, 0, 0]]) self.qcoords = np.array([[0., 0, 0], [4., 0, 0]]) self.lradii = np.array([2., 3.]) self.qradii = np.array([3., 2.]) #spoints, np.ndarray[DTYPE_t, ndim =1] box,\ # DTYPE_t probe, unsigned int bucket_size, MAXSYM =200000) self.spoints = np.array([[1., 0., 0.], [-1., 0., 0.], [0., 1., 0.], \ [0., -1., 0.], [0., 0., 1.], [0., 0., -1.]]) output = _asa.asa_loop(self.qcoords, self.lcoords, self.qradii, \ self.lradii, self.spoints, \ np.array([-100., -100., -100., 100., 100., 100.]), 1., 10) self.assertFloatEqual(output, np.array([ 75.39822369, 41.88790205])) def test_asa_xtra(self): """test internal asa""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) self.assertRaises(ValueError, asa.asa_xtra, self.input_structure, mode='a') result = asa.asa_xtra(self.input_structure) a = einput(self.input_structure, 'A') for i in range(len(result)): self.assertEquals(result.values()[i]['ASA'], a[result.keys()[i]].xtra['ASA']) r = einput(self.input_structure, 'R') for water in r.selectChildren('H_HOH', 'eq', 'name').values(): self.assertFalse('ASA' in water.xtra) for residue in r.selectChildren('H_HOH', 'ne', 'name').values(): for a in residue: self.assertTrue('ASA' in a.xtra) result = asa.asa_xtra(self.input_structure, xtra_key='SASA') for residue in r.selectChildren('H_HOH', 'ne', 'name').values(): for a in residue: a.xtra['ASA'] == a.xtra['SASA'] def test_asa_xtra_stride(self): """test asa via stride""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) try: result = asa.asa_xtra(self.input_structure, 'stride') except ApplicationNotFoundError: return self.assertAlmostEqual(self.input_structure[(0,)][('B',)]\ [(('LEU', 35, ' '),)].xtra['STRIDE_ASA'], 17.20) def test_compare(self): """compares internal asa to stride.""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) try: asa.asa_xtra(self.input_structure, mode='stride') except ApplicationNotFoundError: return asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) residues = einput(self.input_structure, 'R') asa1 = [] asa2 = [] for residue in residues.selectChildren('H_HOH', 'ne', 'name').values(): asa1.append(residue.xtra['ASA']) asa2.append(residue.xtra['STRIDE_ASA']) self.assertAlmostEqual(correlation(asa1, asa2)[1], 0.) def test_uc(self): """compares asa within unit cell.""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) asa.asa_xtra(self.input_structure, symmetry_mode='uc', xtra_key='ASA_UC') asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) self.input_structure.propagateData(sum, 'A', 'ASA_UC', xtra=True) residues = einput(self.input_structure, 'R') x = residues[('2E12', 0, 'B', ('GLU', 77, ' '))].xtra.values() self.assertTrue(x[0] != x[1]) def test_uc2(self): self.input_file = os.path.join('data', '1LJO.pdb') self.input_structure = PDBParser(open(self.input_file)) asa.asa_xtra(self.input_structure, symmetry_mode='uc', xtra_key='ASA_XTAL') asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) self.input_structure.propagateData(sum, 'A', 'ASA_XTAL', xtra=True) residues = einput(self.input_structure, 'R') r1 = residues[('1LJO', 0, 'A', ('ARG', 65, ' '))] r2 = residues[('1LJO', 0, 'A', ('ASN', 46, ' '))] self.assertFloatEqual(r1.xtra.values(), [128.94081270529105, 22.807700865674093]) self.assertFloatEqual(r2.xtra.values(), [115.35738419425566, 115.35738419425566]) def test_crystal(self): """compares asa within unit cell.""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) asa.asa_xtra(self.input_structure, symmetry_mode='uc', crystal_mode=2, xtra_key='ASA_XTAL') asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) self.input_structure.propagateData(sum, 'A', 'ASA_XTAL', xtra=True) residues = einput(self.input_structure, 'R') r1 = residues[('2E12', 0, 'A', ('ALA', 42, ' '))] r2 = residues[('2E12', 0, 'A', ('VAL', 8, ' '))] r3 = residues[('2E12', 0, 'A', ('LEU', 25, ' '))] self.assertFloatEqual(r1.xtra.values(), \ [32.041070749038823, 32.041070749038823]) self.assertFloatEqual(r3.xtra.values(), \ [0., 0.]) self.assertFloatEqual(r2.xtra.values(), \ [28.873559956056916, 0.0]) def test__prepare_entities(self): self.input_structure = PDBParser(dummy_water) self.assertRaises(ValueError, asa._prepare_entities, self.input_structure) def _test_bio(self): """compares asa within a bio unit.""" self.input_file = os.path.join('data', '1A1X.pdb') self.input_structure = PDBParser(open(self.input_file)) asa.asa_xtra(self.input_structure, symmetry_mode='bio', xtra_key='ASA_BIO') asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) self.input_structure.propagateData(sum, 'A', 'ASA_BIO', xtra=True) residues = einput(self.input_structure, 'R') r1 = residues[('1A1X', 0, 'A', ('GLU', 37, ' '))] r2 = residues[('1A1X', 0, 'A', ('TRP', 15, ' '))] self.assertFloatEqual(r1.xtra.values(), \ [20.583191467544726, 78.996394472066541]) self.assertFloatEqual(r2.xtra.values(), \ [136.41436710386989, 136.41436710386989])
def test__prepare_entities(self): self.input_structure = PDBParser(dummy_water) self.assertRaises(ValueError, asa._prepare_entities, self.input_structure)
def setUp(self): input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(input_file)) stride_app = Stride() res = stride_app(self.input_structure) self.lines = res['StdOut'].readlines()
class ManipulationTest(TestCase): """tests manipulationg entities""" def setUp(self): self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) def test_clean_ical(self): """tests the clean ical function which cleans structures.""" chainB = self.input_structure.table['C'][('2E12', 0, 'B')] leu25 = self.input_structure.table['R'][('2E12', 0, 'B', \ ('LEU', 25, ' '))] leu25icA = copy(leu25) self.assertTrue(leu25icA.parent is None) self.assertTrue(leu25icA is not leu25) self.assertTrue(leu25icA[(('N', ' '),)] is not leu25[(('N', ' '),)]) leu25icA.setIc('A') self.assertEquals(leu25icA.getId(), (('LEU', 25, 'A'),)) chainB.addChild(leu25icA) self.assertFalse(chainB[(('LEU', 25, 'A'),)] is \ chainB[(('LEU', 25, ' '),)]) self.assertEquals(clean_ical(self.input_structure), \ ([], [('2E12', 0, 'B', ('LEU', 25, 'A'))])) clean_ical(self.input_structure, pretend=False) self.assertTrue(chainB[(('LEU', 25, 'A'),)] is leu25icA) self.assertFalse((('LEU', 25, 'A'),) in chainB.keys()) self.assertFalse((('LEU', 25, 'A'),) in chainB) self.assertTrue((('LEU', 25, 'A'),) in chainB.keys(unmask=True)) self.input_structure.setUnmasked(force=True) self.assertEquals(clean_ical(self.input_structure), \ ([], [('2E12', 0, 'B', ('LEU', 25, 'A'))])) clean_ical(self.input_structure, pretend=False, mask=False) self.assertFalse((('LEU', 25, 'A'),) in chainB.keys()) self.assertFalse((('LEU', 25, 'A'),) in chainB) self.assertFalse((('LEU', 25, 'A'),) in chainB.keys(unmask=True)) def test_0expand_symmetry(self): """tests the expansion of a asu to a unit-cell.""" global fn mh = expand_symmetry(self.input_structure[(0,)]) fd, fn = tempfile.mkstemp('.pdb') os.close(fd) fh = open(fn, 'w') PDBWriter(fh, mh, self.input_structure.raw_header) fh.close() def test_1expand_crystal(self): """tests the expansion of a unit-cell to a crystal""" fh = open(fn, 'r') input_structure = PDBParser(fh) self.assertTrue(input_structure.values(), 4) # 4 models sh = expand_crystal(input_structure) self.assertTrue(len(sh) == 27) fd, fn2 = tempfile.mkstemp('.pdb') os.close(fd) fh = open(fn2, 'w') a1 = einput(input_structure, 'A') a2 = einput(sh.values()[3], 'A') k = a1.values()[99].getFull_id() name = sh.values()[3].name a1c = a1[k].coords a2c = a2[(name,) + k[1:]].coords self.assertTrue(len(a1), len(a2)) self.assertRaises(AssertionError, self.assertFloatEqual, a1c, a2c) PDBWriter(fh, sh) fh.close() os.unlink(fn) os.unlink(fn2)
def setUp(self): self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file))
class asaTest(TestCase): """Tests for surface calculations.""" def setUp(self): self.arr = np.random.random(3000).reshape((1000, 3)) self.point = np.random.random(3) self.center = np.array([0.5, 0.5, 0.5]) def test_0import(self): # sort by name """tests if can import _asa cython extension.""" global _asa from cogent.struct import _asa assert 'asa_loop' in dir(_asa) def test_1import(self): # sort by name """tests if can import asa.""" global asa from cogent.struct import asa def test_asa_loop(self): """tests if inner asa_loop (cython) performs correctly""" self.lcoords = np.array([[-4., 0, 0], [0, 0, 0], [4, 0, 0], [10, 0, 0]]) self.qcoords = np.array([[0., 0, 0], [4., 0, 0]]) self.lradii = np.array([2., 3.]) self.qradii = np.array([3., 2.]) #spoints, np.ndarray[DTYPE_t, ndim =1] box,\ # DTYPE_t probe, unsigned int bucket_size, MAXSYM =200000) self.spoints = np.array([[1., 0., 0.], [-1., 0., 0.], [0., 1., 0.], \ [0., -1., 0.], [0., 0., 1.], [0., 0., -1.]]) output = _asa.asa_loop(self.qcoords, self.lcoords, self.qradii, \ self.lradii, self.spoints, \ np.array([-100., -100., -100., 100., 100., 100.]), 1., 10) self.assertFloatEqual(output, np.array([75.39822369, 41.88790205])) def test_asa_xtra(self): """test internal asa""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) self.assertRaises(ValueError, asa.asa_xtra, self.input_structure, mode='a') result = asa.asa_xtra(self.input_structure) a = einput(self.input_structure, 'A') for i in range(len(result)): self.assertEquals(result.values()[i]['ASA'], a[result.keys()[i]].xtra['ASA']) r = einput(self.input_structure, 'R') for water in r.selectChildren('H_HOH', 'eq', 'name').values(): self.assertFalse('ASA' in water.xtra) for residue in r.selectChildren('H_HOH', 'ne', 'name').values(): for a in residue: self.assertTrue('ASA' in a.xtra) result = asa.asa_xtra(self.input_structure, xtra_key='SASA') for residue in r.selectChildren('H_HOH', 'ne', 'name').values(): for a in residue: a.xtra['ASA'] == a.xtra['SASA'] def test_asa_xtra_stride(self): """test asa via stride""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) try: result = asa.asa_xtra(self.input_structure, 'stride') except ApplicationNotFoundError: return self.assertAlmostEqual(self.input_structure[(0,)][('B',)]\ [(('LEU', 35, ' '),)].xtra['STRIDE_ASA'], 17.20) def test_compare(self): """compares internal asa to stride.""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) try: asa.asa_xtra(self.input_structure, mode='stride') except ApplicationNotFoundError: return asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) residues = einput(self.input_structure, 'R') asa1 = [] asa2 = [] for residue in residues.selectChildren('H_HOH', 'ne', 'name').values(): asa1.append(residue.xtra['ASA']) asa2.append(residue.xtra['STRIDE_ASA']) self.assertAlmostEqual(correlation(asa1, asa2)[1], 0.) def test_uc(self): """compares asa within unit cell.""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) asa.asa_xtra(self.input_structure, symmetry_mode='uc', xtra_key='ASA_UC') asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) self.input_structure.propagateData(sum, 'A', 'ASA_UC', xtra=True) residues = einput(self.input_structure, 'R') x = residues[('2E12', 0, 'B', ('GLU', 77, ' '))].xtra.values() self.assertTrue(x[0] != x[1]) def test_uc2(self): self.input_file = os.path.join('data', '1LJO.pdb') self.input_structure = PDBParser(open(self.input_file)) asa.asa_xtra(self.input_structure, symmetry_mode='uc', xtra_key='ASA_XTAL') asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) self.input_structure.propagateData(sum, 'A', 'ASA_XTAL', xtra=True) residues = einput(self.input_structure, 'R') r1 = residues[('1LJO', 0, 'A', ('ARG', 65, ' '))] r2 = residues[('1LJO', 0, 'A', ('ASN', 46, ' '))] self.assertFloatEqual(r1.xtra.values(), [128.94081270529105, 22.807700865674093]) self.assertFloatEqual(r2.xtra.values(), [115.35738419425566, 115.35738419425566]) def test_crystal(self): """compares asa within unit cell.""" self.input_file = os.path.join('data', '2E12.pdb') self.input_structure = PDBParser(open(self.input_file)) asa.asa_xtra(self.input_structure, symmetry_mode='uc', crystal_mode=2, xtra_key='ASA_XTAL') asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) self.input_structure.propagateData(sum, 'A', 'ASA_XTAL', xtra=True) residues = einput(self.input_structure, 'R') r1 = residues[('2E12', 0, 'A', ('ALA', 42, ' '))] r2 = residues[('2E12', 0, 'A', ('VAL', 8, ' '))] r3 = residues[('2E12', 0, 'A', ('LEU', 25, ' '))] self.assertFloatEqual(r1.xtra.values(), \ [32.041070749038823, 32.041070749038823]) self.assertFloatEqual(r3.xtra.values(), \ [0., 0.]) self.assertFloatEqual(r2.xtra.values(), \ [28.873559956056916, 0.0]) def test__prepare_entities(self): self.input_structure = PDBParser(dummy_water) self.assertRaises(ValueError, asa._prepare_entities, self.input_structure) def _test_bio(self): """compares asa within a bio unit.""" self.input_file = os.path.join('data', '1A1X.pdb') self.input_structure = PDBParser(open(self.input_file)) asa.asa_xtra(self.input_structure, symmetry_mode='bio', xtra_key='ASA_BIO') asa.asa_xtra(self.input_structure) self.input_structure.propagateData(sum, 'A', 'ASA', xtra=True) self.input_structure.propagateData(sum, 'A', 'ASA_BIO', xtra=True) residues = einput(self.input_structure, 'R') r1 = residues[('1A1X', 0, 'A', ('GLU', 37, ' '))] r2 = residues[('1A1X', 0, 'A', ('TRP', 15, ' '))] self.assertFloatEqual(r1.xtra.values(), \ [20.583191467544726, 78.996394472066541]) self.assertFloatEqual(r2.xtra.values(), \ [136.41436710386989, 136.41436710386989])
#!/usr/bin/env python # taken from http://pycogent.sourceforge.net/ from cogent.parse.pdb import PDBParser from cogent.format.pdb import PDBWriter import tempfile, os pdb_file = open('data/4TSV.pdb') new_structure = PDBParser(pdb_file) open_handle, file_name = tempfile.mkstemp() os.close(open_handle) new_pdb_file = open(file_name, 'wb') PDBWriter(new_pdb_file, new_structure) print structure.id print structure.getId() print structure.getFull_id() print structure.header.keys() print structure.header['id'] print structure.header['expdta'] structure.items() structure.values() structure.keys() first_model = structure.values()[0] first_model_id = first_model.getId() structure.getChildren() children_list = structure.getChildren([first_model_id]) some_model = structure.values()[0] some_chain = some_model.values()[0] for residue in some_chain.values(): residue.setName('UNK') print sorted(structure.table.keys()) print structure.table['C']