Esempio n. 1
0
    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'])
Esempio n. 2
0
    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]
Esempio n. 3
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]
Esempio n. 4
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)))
Esempio n. 5
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)))
Esempio n. 6
0
    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)))
Esempio n. 7
0
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])
Esempio n. 8
0
    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)
Esempio n. 9
0
    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'])
Esempio n. 10
0
    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'))
Esempio n. 11
0
    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'])
Esempio n. 13
0
    def test_1(self):

        pt.search_hbonds(traj)
        pt.search_hbonds(traj, 'series')
        pt.search_hbonds(traj, 'series, nointramol')