def test_hbonds_from_pdb(self): traj = pt.load(fn('1L2Y.pdb')) hb = pt.search_hbonds(traj) state = pt.load_cpptraj_state(''' parm {pdb} trajin {pdb} hbond series '''.format(pdb=fn('1L2Y.pdb'))) state.run() for data_p, data_cpp in zip(hb.data, state.data[1:]): assert len( data_p) == traj.n_frames == 38, 'size of dataset must be 38' aa_eq(data_p, data_cpp.values) # make sure distances are smaller than cutoff distance_cutoff = 2.5 angle_cutoff = 135. hb = pt.search_hbonds(traj) distances = pt.distance(traj, hb.get_amber_mask()[0]) angles = pt.angles(traj, hb.get_amber_mask()[1]) dist_indices = np.where(distances > distance_cutoff) angle_indices = np.where(angles < angle_cutoff) saved_donor_acceptors = [ 'ASP9_OD2-ARG16_NH1-HH12', 'ASP9_OD2-ARG16_NH2-HH22', 'ASP9_OD2-ARG16_NE-HE', 'ASP9_OD2-ARG16_NH2-HH21', 'ASP9_OD2-ARG16_NH1-HH11' ] donor_acceptors = pt.search_hbonds(traj, ':9,16').donor_acceptor assert saved_donor_acceptors == donor_acceptors, 'saved_donor_acceptors' aa_eq(hb.total_solute_hbonds(), hb.data['total_solute_hbonds'])
def test_indexing_nonrefernce_DSL(self): # segmentation fault # new DSL d0_dummy = pt.search_hbonds(traj)[:][:][:][:][0] pt.search_hbonds(traj)[0] # filter dslist = da.calc_phi(traj) dslist[0]
def test_indexing_nonrefernce_DSL(self): from pytraj import dihedral_ as da # segmentation fault # new DSL d0_dummy = pt.search_hbonds(traj)[:][:][:][:][0] d0 = pt.search_hbonds(traj)[0] # filter dslist = da.calc_phi(traj) x = dslist[0]
def test_1(self): dslist0 = pt.calc_phi(traj) dslist1 = pt.calc_psi(traj) dslist2 = pt.search_hbonds(traj) self.assertRaises(KeyError, lambda: stack((dslist0, dslist1))) self.assertRaises(TypeError, lambda: stack((dslist0, dslist2))) stack((dslist0 for _ in range(3)))
def test_1(self): dslist0 = pt.calc_phi(traj) dslist1 = pt.calc_psi(traj) dslist2 = pt.search_hbonds(traj) with pytest.raises(KeyError): stack((dslist0, dslist1)) with pytest.raises(TypeError): stack((dslist0, dslist2)) stack((dslist0 for _ in range(3)))
def test_mpi_hbond(): rank = MPI.COMM_WORLD.rank traj = pt.iterload(fn('tz2.nc'), fn('tz2.parm7')) hbond_data_serial = pt.search_hbonds(traj, dtype='dict') hbond_data_pmap_mpi = pt.pmap_mpi(pt.search_hbonds, traj) if rank == 0: assert sorted(hbond_data_serial.keys()) == sorted( hbond_data_pmap_mpi.keys()) for key in hbond_data_serial.keys(): aa_eq(hbond_data_serial[key], hbond_data_pmap_mpi[key])
def test_pmap_hbond(self): traj = pt.iterload(fn('tz2.nc'), fn('tz2.parm7')) hbond_data_serial = pt.search_hbonds(traj, dtype='dict') hbond_data_pmap = pt.pmap(pt.search_hbonds, traj, n_cores=3) assert sorted(hbond_data_serial.keys()) == sorted( hbond_data_pmap.keys()) for key, value in hbond_data_serial.items(): aa_eq(hbond_data_serial[key], hbond_data_pmap[key]) assert value.dtype == np.int32 with pytest.raises(ValueError): # cpptraj style # not support yet. pt.pmap(['radgyr', 'hbond'], traj, n_cores=3)
def test_hbonds_from_pdb(self): traj = pt.load('data/1L2Y.pdb') hb = pt.search_hbonds(traj) state = pt.load_cpptraj_state(''' parm data/1L2Y.pdb trajin data/1L2Y.pdb hbond series ''') state.run() for data_p, data_cpp in zip(hb.data, state.data[1:]): assert len( data_p) == traj.n_frames == 38, 'size of dataset must be 38' aa_eq(data_p, data_cpp) # make sure distances are smaller than cutoff distance_cutoff = 2.5 angle_cutoff = 135. hb = pt.search_hbonds(traj) distances = pt.distance(traj, hb.get_amber_mask()[0]) angles = pt.angles(traj, hb.get_amber_mask()[1]) dist_indices = np.where(distances > distance_cutoff) angle_indices = np.where(angles < angle_cutoff) print('FILL ME', dist_indices, angle_indices) saved_donor_acceptors = ['ASP9_OD2-ARG16_NH1-HH12', 'ASP9_OD2-ARG16_NH2-HH22', 'ASP9_OD2-ARG16_NE-HE', 'ASP9_OD2-ARG16_NH2-HH21', 'ASP9_OD2-ARG16_NH1-HH11'] donor_acceptors = pt.search_hbonds(traj, ':9,16').donor_acceptor assert saved_donor_acceptors == donor_acceptors, 'saved_donor_acceptors' aa_eq(hb.total_solute_hbonds(), hb.data['total_solute_hbonds'])
def test_hbond_general(self): traj = pt.iterload("./data/DPDP.nc", "./data/DPDP.parm7") dslist = pt.search_hbonds(traj, dtype='dataset') for key in dslist.keys(): if 'UU' not in key: assert len(dslist[key].values) == traj.n_frames mydict = dslist.to_dict() mydict_np = dslist.to_dict() assert len(mydict.keys()) == dslist.size assert len(mydict_np.keys()) == dslist.size for key in mydict.keys(): mydict[key] = np.asarray(mydict[key]) aa_eq(mydict[key], mydict_np[key]) # raise if dtype='hbond' and series=False self.assertRaises(ValueError, lambda: pt.hbond(traj, series=False, dtype='hbond'))
def test_hbonds_with_image(self): traj = pt.iterload("data/tz2.ortho.nc", "data/tz2.ortho.parm7") hbonds_0 = pt.search_hbonds(traj(autoimage=True)) hbonds_1 = pt.search_hbonds(traj, image=True) aa_eq(hbonds_0.values, hbonds_1.values)
import pytraj as pt pdb = pt.load_pdb_rcsb("1l2y") print(pdb) h = pt.search_hbonds(pdb) print(h) print(h.donor_acceptor) print('total solute hbonds: ', h.data['total_solute_hbonds'])
def test_1(self): pt.search_hbonds(traj) pt.search_hbonds(traj, 'series') pt.search_hbonds(traj, 'series, nointramol')