Exemple #1
0
    def test_0(self):
        IDX0 = 99
        IDX1 = 98
        traj = mdio.load("./data/md1_prod.Tc5b.x", "./data/Tc5b.top")
        # write pdb files for TMalign program so we can compare our result to TMalign
        # ./TMalign -A test_gdt_0.pdb -B test_gdt_1.pdb
        mdio.writetraj(filename="test_gdt_0.pdb",
                       traj=traj[IDX0],
                       top=traj.top,
                       overwrite=True)
        mdio.writetraj(filename="test_gdt_1.pdb",
                       traj=traj[IDX1],
                       top=traj.top,
                       overwrite=True)

        # do our calculation
        # score = 'gdtscore', 'tmscore' or 'maxsub'
        score = 'tmscore'
        print '%s = %s ' % (
            score,
            calc_score(traj[IDX0], traj[IDX1], "@CA", traj.top, score=score) /
            1000.)
        print calc_score(traj[IDX1], traj[IDX0], "@CA", traj.top,
                         score=score) / 1000.

        # calculate RMSD
        print "rmsd = ", traj[IDX0].rmsd(traj[IDX1])
Exemple #2
0
    def test_load_and_save_0(self):
        print "test_load_and_save"
        # need to load to FrameArray to save
        traj = mdio.load(filename="./data/md1_prod.Tc5b.x",
                         top="./data/Tc5b.top")[:]
        trajiter = mdio.iterload(filename="./data/md1_prod.Tc5b.x",
                                 top="./data/Tc5b.top",
                                 chunk=100)
        print trajiter
        print traj.size

        indices = range(20, 30, 5) + [103, 78, 90, 82]
        print type(indices)
        print indices
        mdio.writetraj(filename="./output/test_io_saved_.x",
                       traj=traj[:],
                       top="./data/Tc5b.top",
                       indices=indices,
                       overwrite=True)

        # check frames
        traj2 = mdio.load(filename="./output/test_io_saved_.x",
                          top="./data/Tc5b.top")
        print "test_load_and_save_0"
        print traj2.size
        print traj2.is_empty()
        print len(indices)
        assert traj2.size == len(indices)
Exemple #3
0
def main():
    # set frame index
    IDX0 = 99
    IDX1 = 98

    # load traj
    traj = mdio.load("./data/md1_prod.Tc5b.x", "./data/Tc5b.top")

    # write pdb files for TMalign program so we can compare our results to TMalign
    # ./TMalign -A test_gdt_0.pdb -B test_gdt_1.pdb
    # turn off those if you don't like
    mdio.writetraj(filename="test_gdt_0.pdb",
                   traj=traj[IDX0],
                   top=traj.top,
                   overwrite=True)
    mdio.writetraj(filename="test_gdt_1.pdb",
                   traj=traj[IDX1],
                   top=traj.top,
                   overwrite=True)

    # do our calculation
    # option:
    #     score = 'gdtscore', 'tmscore' or 'maxsub'
    #     "@CA" : follow AMBER mask, change it if needed
    score = 'tmscore'
    print '%s = %s ' % (
        score, calc_score(traj[IDX0], traj[IDX1], "@CA", traj.top,
                          score=score) / 1000.)
    print calc_score(traj[IDX1], traj[IDX0], "@CA", traj.top,
                     score=score) / 1000.
Exemple #4
0
    def test_save_traj_from_file(self):
        Trajout().help()
        traj = mdio.load("./data/md1_prod.Tc5b.x", "./data/Tc5b.top")[:5]
        print traj.size
        mdio.writetraj(filename="test_0.binpos",
                       traj=traj,
                       top="./data/Tc5b.top",
                       fmt="BINPOS",
                       overwrite=True)

        savedtraj = mdio.load("./test_0.binpos", traj.top)
        print "test_0.binpos size = ", savedtraj.size
        print traj.size
        assert savedtraj.size == traj.size
Exemple #5
0
    def test_load_and_save_0(self):
        traj = mdio.load(filename="./data/md1_prod.Tc5b.x",
                         top="./data/Tc5b.top")[:110]
        indices = range(20, 30, 5) + [103, 78, 90, 82]
        print indices

        #for i in indices:
        #    print traj[i]

        mdio.writetraj(filename="./output/test_io_saved_.x",
                       traj=traj,
                       top="./data/Tc5b.top",
                       indices=indices,
                       overwrite=True)

        # check frames
        traj2 = mdio.load(filename="./output/test_io_saved_.x",
                          top="./data/Tc5b.top")
        # TODO : check error
        assert traj2.size == len(indices)
Exemple #6
0
    def test_2(self):
        """test write FrameArray"""
        farray = FrameArray("data/md1_prod.Tc5b.x",
                            "./data/Tc5b.top",
                            indices=range(10))
        writetraj("test_write_output.x", farray, farray.top, overwrite=True)
        writetraj("test_pdb_1.dummyext",
                  farray[0],
                  farray.top,
                  overwrite=True,
                  fmt='pdb')

        # test 'save'
        print farray
        farray.save("test_write_output_save_method.x", overwrite=True)

        # reproduce result?
        f0 = mdio.load("test_write_output.x", "./data/Tc5b.top")
        f1 = mdio.load("test_write_output_save_method.x", "./data/Tc5b.top")
        from numpy.testing import assert_almost_equal as assert_ae
        assert_ae(f0[:, :, :], f1[:, :, :])
Exemple #7
0
    def test_load_and_save_1(self):
        traj = mdio.load(filename="./data/md1_prod.Tc5b.x",
                         top="./data/Tc5b.top")
        trajiter = mdio.iterload(filename="./data/md1_prod.Tc5b.x",
                                 top="./data/Tc5b.top",
                                 chunk=100)
        print trajiter

        indices = range(20, 30, 5) + [103, 78, 90, 82]
        mdio.writetraj(filename="./output/test_io_saved.pdb",
                       traj=traj,
                       top="./data/Tc5b.top",
                       fmt='pdbfile',
                       indices=indices,
                       overwrite=True)

        # check frames
        traj = mdio.load(filename="./output/test_io_saved.pdb",
                         top="./data/Tc5b.top")
        assert traj.size == len(indices)
        assert traj.top.n_atoms == 304
Exemple #8
0
    def test_action(self):
        distaction = allactions.Action_Distance()
        boxaction = allactions.Action_Box()
        boxaction.help()
        toplist = TopologyList()
        framelist = FrameList()
        dsetlist = DataSetList()
        dflist = DataFileList()

        # add stuff
        toplist.add_parm("./data/Tc5b.top")
        framelist.add_reference(ArgList("./data/Tc5b.nat.crd"), toplist)
        distaction.read_input(ArgList(":2@CA :10@CA"), toplist, framelist,
                              dsetlist, dflist, 0)
        boxaction.read_input(ArgList("x 1000. y 1000. alpha 500."), toplist,
                             framelist, dsetlist, dflist, 0)
        distaction.process(toplist[0])

        idx = 0
        farray = FrameArray("./data/Tc5b.nat.crd", "./data/Tc5b.top")
        distaction.do_action(0, farray[idx])
        frame0 = farray[idx]
        # update Frame instance with new Box info
        boxaction.do_action(idx, frame0)
        print frame0.get_box()
        mdio.writetraj(filename="test_withbox.r",
                       traj=frame0,
                       top=farray.top,
                       fmt='AMBERRESTART',
                       overwrite=True)
        frame0.set_nobox()
        print frame0.get_box()
        mdio.writetraj(filename="test.r",
                       traj=frame0,
                       top=farray.top,
                       fmt='AMBERRESTART',
                       overwrite=True)
Exemple #9
0
    def test_strip_atoms(self):
        traj = mdio.load("./data/md1_prod.Tc5b.x", "./data/Tc5b.top")
        frame0 = traj[0]
        frame1 = traj[1]
        frame2 = traj[2]
        frame3 = traj[3]
        frame1 = frame0.strip_atoms("!@CA", traj.top, copy=True)
        frame2 = Frame(frame0)
        print frame2.n_atoms
        print frame1.n_atoms
        print frame1
        assert frame1.n_atoms == 20
        assert frame0.n_atoms == 304
        frame0.strip_atoms("!@CA", traj.top, copy=False)
        assert frame0.n_atoms == 20

        _, mat, v1, v2 = frame2.rmsd(frame3, get_mvv=True)
        print mat, v1, v2
        print frame2[:10]
        print mdio.writetraj("./test_0_before.pdb", traj=frame2, top=traj.top, overwrite=True)
        frame2.trans_rot_trans(v1, mat, v2)
        print frame2[:10]
        print mdio.writetraj("./test_0_afeter.pdb", traj=frame2, top=traj.top, overwrite=True)
        print Trajout().help()
from pycpptraj import io as mdio
from pycpptraj import Trajout
Trajout().help()

traj = mdio.load("./data/md1_prod.Tc5b.x", "./data/Tc5b.top")

# etract first 10 frames and write to CHARMM format
subtraj = traj[:10]
mdio.writetraj(filename="./output/subtraj_0_CHARMM.dcd", traj=subtraj, 
               top=traj.top,
               fmt="CHARMMDCD",
               overwrite=True)

# make sure we can load the traj,
# use AMBER top is fine
charmm_traj = mdio.load("./output/subtraj_0_CHARMM.dcd", "./data/Tc5b.top")

# calculate rmsd between old and saved traj for 1st frame
print charmm_traj[0].rmsd(subtraj[0])
assert charmm_traj[0].rmsd(subtraj[0]) < 1E-6

# another way
subtraj.save("./output/subtraj_1_CHARMM.dcd", overwrite=True)
charmm_traj_1 = mdio.load("./output/subtraj_1_CHARMM.dcd", "./data/Tc5b.top")
print charmm_traj_1[0].rmsd(subtraj[0])
assert charmm_traj_1[0].rmsd(subtraj[0]) < 1E-6