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])
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)
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.
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
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)
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[:, :, :])
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
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)
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