pytraj.io.
load
(filename, top=None, frame_indices=None, mask=None, stride=None)¶try loading and returning appropriate values. See example below.
Parameters: | filename : str, Trajectory filename top : Topology filename or a Topology frame_indices : {None, array_like}, default None
stride : {None, int}, default None
mask : {str, None}, default None
|
---|---|
Returns: | pytraj.Trajectory |
See also
Notes
pytraj.iterload
)Examples
>>> import pytraj as pt
>>> # load netcdf file with given amber parm file
>>> traj = pt.load('traj.nc', '2koc.parm7')
>>> # load mol2 file
>>> traj = pt.load('traj.mol2') #
>>> # load pdb file
>>> traj = pt.load('traj.pdb')
>>> # load given frame numbers
>>> from pytraj.testing import get_fn
>>> fn, tn = get_fn('tz2_dry')
>>> traj = pt.load(fn, top=tn, frame_indices=[0, 3, 5, 12, 20])
>>> traj = pt.load(fn, top=tn, frame_indices=[0, 3, 5, 12, 20], mask='!@H=')
>>> # load with frame slice
>>> traj = pt.load(fn, tn, frame_indices=slice(0, 10, 2))
>>> # which is equal to:
>>> traj = pt.load(fn, tn, frame_indices=range(0, 10, 2))
>>> # load with stride
>>> traj = pt.load(fn, tn)
>>> traj.n_frames
101
>>> traj = pt.load(fn, tn, stride=5)
>>> traj.n_frames
21
>>> # load with stride for more than one filename
>>> traj = pt.load([fn, fn], tn, stride=5)
>>> traj.n_frames
42
>>> traj.n_atoms
223
>>> # load with stride for more than one filename, and with mask
>>> traj = pt.load([fn, fn], tn, stride=5, mask='@CA')
>>> traj.n_frames
42
>>> traj.n_atoms
12
pytraj.io.
iterload
(*args, **kwd)¶return TrajectoryIterator object
Parameters: | filename: {str, list-like of filenames, pattern}
top : {str, Topology}
frame_slice: tuple or list of tuple
stride : {None, int}, default None
|
---|---|
Returns: | pytraj.TrajectoryIterator |
Notes
Unlike pytraj.load, you can not arbitarily set frame_indices. If you want to do so, first load trajectories to TrajectoryIterator object, then do fancy slicing
>>> import pytraj as pt
>>> # register to load traj.nc from 0-th to 99-th frame
>>> traj = pt.iterload('traj.nc', 'prmtop', frame_slice=(0, 100)])
>>> # do fancy indexing to load specific frames to memory
>>> traj[[0, 8, 3, 50, 7]]
>>> # load to disk with given mask
>>> traj[[0, 8, 3, 50, 7], '!@H=']
Examples
>>> import pytraj as pt
>>> traj = pt.iterload('traj.nc', '2koc.parm7')
>>> # load from a list of filenames
>>> traj = pt.iterload(['traj0.nc', 'traj1.nc'], '2koc.parm7')
>>> # load all files with a given pattern (sorted)
>>> traj = pt.iterload('./traj*.nc', '2koc.parm7')
>>> # load from a list of files with given frame step
>>> # for each file, only register to load from frame 0 to 9 (skip 10), skip every 2 frames
>>> traj = pt.iterload(['traj0.nc', 'traj1.nc'], '2koc.parm7', frame_slice=[(0, 10, 2),]*2)
>>> # load from frame 0 to 9 for `traj0.nc`
>>> # load all frames from `traj1.nc`
>>> traj = pt.iterload(['traj0.nc', 'traj1.nc'], '2koc.parm7', frame_slice=[(0, 10), (0, -1)])
>>> # use stride, skip every 2 frames
>>> from pytraj.testing import get_remd_fn
>>> filenames, topology_filename = get_remd_fn('remd_ala2')
>>> [fn.split('/')[-1] for fn in filenames]
['rem.nc.000', 'rem.nc.001', 'rem.nc.002', 'rem.nc.003']
>>> traj = pt.iterload(filenames, topology_filename, stride=2)
pytraj.io.
load_remd
(filename, top=None, T='300.0')¶pytraj.io.
iterload_remd
(filename, top=None, T='300.0')¶Load temperature remd trajectory for single temperature. Example: Suppose you have replica trajectoris remd.x.00{1-4}. You want to load and extract only frames at 300 K, use this method
Parameters: | filename : str top : {str, Topology} T : {float, str}, default=300.0 |
---|---|
Returns: | pytraj.traj.TrajectoryCpptraj |
pytraj.io.
load_pdb_rcsb
(pdbid)¶load pdb file from rcsb website
Parameters: | pdbid : str |
---|
Examples
io.loadpdb_rcsb(“2KOC”) # popular RNA hairpin
pytraj.io.
load_cpptraj_file
(filename)¶Parameters: | fname : str, name of cpptraj input file
|
---|
pytraj.io.
load_sample_data
(data_name=None)¶Return TrajectoryIterator instance for Ala3 or tz2 data
Notes
pytraj.io.
load_ParmEd
(parmed_obj, as_traj=False, **kwd)¶return pytraj’s Topology or Trajectory objects
parmed_obj : ParmEd’s Structure object as_traj: bool, default False
if True, return pytraj.trajectory.Trajectory if False, return Topology
>>> import parmed as pmd
>>> import pytraj as pt
>>> p = pmd.download_PDB("1l2y")
>>> top = pt.load_ParmEd(p)
pytraj.io.
load_topology
(filename, option='')¶load Topology from a filename or from url or from ParmEd object. Adapted from cpptraj doc.
Parameters: | filename : str, Amber prmtop, pdb, mol2, psf, cif, gromacs topology, sdf, tinker formats option : cpptraj options.
|
---|
Notes
if cpptraj/pytraj does not support specific file format, you still can convert to PDB file. cpptraj will do the bond guess based on distance.
Examples
>>> import pytraj as pt
>>> # from a filename
>>> pt.load_topology("data/tz2.ortho.parm7")
<Topology: 5293 atoms, 1704 residues, 1692 mols, PBC with box type = ortho>
>>> # read with option
>>> pt.load_topology('1KX5.pdb', 'bondsearch 0.2')
pytraj.io.
write_parm
(filename=None, top=None, format='amberparm', overwrite=False)¶pytraj.io.
save
(filename, obj, *args, **kwd)¶an universal method
Parameters: | filename : output filename obj : Topology or Trajetory-like
*args, **kwd: additional options |
---|
See also
Examples
>>> import pytraj as pt
>>> traj = pt.datafiles.load_ala3()
>>> isinstance(traj, pt.TrajectoryIterator)
True
>>> top = traj.top
>>> isinstance(top, pt.Topology)
True
>>> # save Topology to a new Topology
>>> pt.save('output/prmtop', top, overwrite=True)
>>> isinstance(pt.load_topology('output/prmtop'), pt.Topology)
True
>>> # save TrajectoryIterator to disk
>>> pt.save('output/traj.nc', traj, overwrite=True)
>>> isinstance(pt.iterload('output/traj.nc', traj.top), pt.TrajectoryIterator)
True
pytraj.io.
write_traj
(filename='', traj=None, format='infer', top=None, frame_indices=None, overwrite=False, crdinfo=None, options='')¶write Trajectory-like or iterable object to trajectory file
Parameters: | filename : str traj : Trajectory-like or iterator that produces Frame or 3D ndarray with shape=(n_frames, n_atoms, 3) format : str, default ‘infer’
top : Topology, optional, default: None frame_indices: array-like or iterator that produces integer, default: None
overwrite: bool, default: False crdinfo : None or dict, default None
options : str, additional cpptraj keywords |
---|
Notes
Format | Extension |
---|---|
Amber Trajectory | .crd |
Amber NetCDF | .nc |
Amber Restart | .rst7 |
Amber NetCDF | .ncrst |
Charmm DCD | .dcd |
PDB | .pdb |
Mol2 | .mol2 |
Scripps | .binpos |
Gromacs | .trr |
SQM Input | .sqm |
‘options’ for writing to pdb format (cptraj manual):
dumpq: Write atom charge/GB radius in occupancy/B-factor columns (PQR format)."
parse: Write atom charge/PARSE radius in occupancy/B-factor columns (PQR format)."
vdw: Write atom charge/VDW radius in occupancy/B-factor columns (PQR format)."
pdbres: Use PDB V3 residue names."
pdbatom: Use PDB V3 atom names."
pdbv3: Use PDB V3 residue/atom names."
teradvance: Increment record (atom) # for TER records (default no)."
terbyres: Print TER cards based on residue sequence instead of molecules."
model: Write to single file separated by MODEL records."
multi: Write each frame to separate files."
chainid <c>: Write character 'c' in chain ID column."
sg <group>: Space group for CRYST1 record, only if box coordinates written."
include_ep: Include extra points."
conect: Write CONECT records using bond information.");
Examples
>>> import pytraj as pt
>>> traj = pt.datafiles.load_tz2_ortho()
>>> pt.write_traj("output/t.nc", traj, overwrite=True) # write to amber netcdf file
>>> # write to multi pdb files (t.pdb.1, t.pdb.2, ...)
>>> pt.write_traj("output/t.pdb", traj, overwrite=True, options='multi')
>>> # write all frames to single pdb file and each frame is seperated by "MODEL" word
>>> pt.write_traj("output/t.pdb", traj, overwrite=True, options='model')
>>> # write to DCD file
>>> pt.write_traj("output/test.dcd", traj, overwrite=True)
>>> # write to netcdf file from 3D numpy array, need to provide Topology
>>> xyz = traj.xyz
>>> top = traj.top
>>> pt.write_traj("output/test_xyz.nc", xyz, top=traj.top, overwrite=True)
>>> pt.write_traj("output/test_xyz.nc", xyz, top=traj.top, overwrite=True)
>>> # you can make a fake Topology to write xyz coordinates too
>>> n_atoms = xyz.shape[1]
>>> top2 = pt.tools.make_fake_topology(n_atoms)
>>> pt.write_traj("output/test_xyz_fake_top.nc", xyz, top=top2, overwrite=True)
‘options’ for writing to amber netcdf format (cptraj manual):
remdtraj: Write temperature to trajectory (makes REMD trajectory)."
velocity: Write velocities to trajectory."
force: Write forces to trajectory.");
‘options’ for writing to amber netcdf restart format(cptraj manual):
novelocity: Do not write velocities to restart file."
notime: Do not write time to restart file."
remdtraj: Write temperature to restart file."
time0: Time for first frame (default 1.0)."
dt: Time step for subsequent frames, t=(time0+frame)*dt; (default 1.0)");
keepext Keep filename extension; write '<name>.<num>.<ext>' instead (example: myfile.1.rst7)
‘options’ for writing to mol2 format (cptraj manual):
single : Write to a single file."
multi : Write each frame to a separate file."
sybyltype: Convert Amber atom types (if present) to SYBYL types.");
‘options’ for other formats:
please check http://ambermd.org/doc12/Amber15.pdf
pytraj.io.
read_pickle
(path)¶Load pickled pandas object (or any other pickled object) from the specified file path
Warning: Loading pickled data received from untrusted sources can be unsafe. See: http://docs.python.org/2.7/library/pickle.html
Parameters: | path : string
|
---|---|
Returns: | unpickled : type of object stored in file |
pytraj.io.
read_json
(path)¶Parameters: | path : string
|
---|---|
Returns: | dict : python dict |
pytraj.io.
to_pickle
(obj, path)¶Pickle (serialize) object to input file path
Parameters: | obj : any object path : string
|
---|
pytraj.io.
to_json
(obj, path)¶Parameters: | obj : any object path : string
|
---|