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_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_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_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']