-
Notifications
You must be signed in to change notification settings - Fork 64
Home
Here you will find (hopefully) useful information on using and developing CPPTRAJ.
- 10-18-2024 Version 6.29.4.Add per-atom energy decomposition with support for PME.
- 05-07-2024 Version 6.25.2.Add
byfac
keyword tochange mass
/change charge
commands to multiply mass/charge by a factor.
- 04-25-2024 Version 6.24.1. Add TICA, max/min distance calculation between groups of atoms, and non-coordinates data projection commands.
- 04-29-2024 Version 6.25.1. Add
by
keyword tochange mass
/change charge
commands to modify mass/charge by an offset.
- 02-02-2024 Version 6.23.1. Adds the
getbox
keyword to thebox
command to allow extracting unit cell, fractional cell, or symmetric shape matrix data. - 02-02-2024 Version 6.23.2. Adds the
--charge
command line flag for calculating charge and printing to stdout.
- 12-13-2023 Version 6.22.2. Add ability to change mapped atom names in
atommap
command to reference names.
- 11-02-2023 Version 6.21.0. Add ability to utilize and manipulate internal coordinates
- 11-17-2023 Version 6.22.0. Add MPI parallelism and rotatable grids to GIST.
- 11-28-2023 Version 6.22.1. Add 'mergeres' keyword to
change
command for merging consecutive residues.
- 09-22-2023 Version 6.20.5. Add ability to calculate extended similarity score for structures.
- 08-23-2023 Version 6.20.4. Add ability to change mass/charge of selected atoms to the
change
command.
- 07-11-2023 Version 6.19.6. Add ability to write axes, take user specified base pairs, and report all hydrogen bonds to
nastruct
. - 07-25-2023 Version 6.20.2. Add ability to calculate total energy using OpenMM from the
energy
command.
- 06-08-2023 Version 6.19.3. Add diffusion calculation from multiple time origins and toroidal-view preserving diffusion calculation.
- 05-10-2023 Version 6.19.0. Fix unwrapping and diffusion imaging for NPT trajectories.
- 05-11-2023 Version 6.19.1. Add ability to remove box fluctuations when unwrapping NPT trajectories (using
avgbox
andunwrap
).
- 03-09-2023 Version 6.18.0. Fixes for nastruct, ZDNA and parallel DNA.
- 12-05-2022 Version 6.16.3. Add ability to write any data set to a NetCDF file.
- 11-30-2022 Version 6.16.1. Add
for indata
for loop for looping over elements of a data set. - 11-16-2022 Version 6.16.0. Add NetCDF4/HDF5 trajectory support, and support for on-the-fly lossless or lossy compression of NetCDF4 trajectories.
- 08-10-2022 Version 6.14.0. Speed up and OpenMP-parallelize
diffusion
andunwrap
actions.
- 07-29-2022 Version 6.12.2. Add quaternion-based RMSD calculation to
2drms
andcluster
. - 07-20-2022 Version 6.12.0. Add
nobondstoh
keyword toenergy
action for reproducing energies with constraints on bonds to H. - 07-11-2022 Version 6.11.0. Add CUDA version of
radial
action. - 07-01-2022 Version 6.10.0. Add ability to extract rotation angles from rotation matrices and fix rotations around multiple axes.
- 06-17-2022 Version 6.8.1. Add ability to calculate RDF to a specified point.
- 06-07-2022 Version 6.7.0. Extend GIST to mixtures and non-water solvents.
- 03-30-2022: Version 6.4.5. Add ability to create residue hydrogen bond interaction matrix with
hbond
command.
- 03-16-2022: Version 6.4.3. Add the
keep
action. Opposite ofstrip
; can also be used to only keep bridging waters fromhbond
. - 03-02-2022: Version 6.4.0. Introduce the
prepareforleap
command for fast PDB-to-parameter file generation with LEaP.
- 02-28-2022: Version 6.3.0. Improve convergence of entropy values in GIST.
- 02-16-2022: Version 6.2.9. Add bridge time series and split analysis to hbond command.
- 02-04-2022: Version 6.2.5. Allow mask variables to be used in nested
for
loops. - 02-01-2022: Version 6.2.4. Add command to perform hydrogen mass repartitioning of topologies.
- 01-31-2022: Version 6.2.3. Improve speed of hierarchical agglomerative clustering by an order of magnitude.
- 01-31-2022: Version 6.2.2. Speed up the 6D entropy calculation in GIST.
- 01-18-2022: Version 6.2.0. Improve the speed of some post-cluster calculations; cluster summary, best representatives frame calculation, and cluster silhouette calculation..
- 12-17-2021: Version 6.1.0. Support the standard XYZ trajectory format.
- 10-05-2021: Version 6.0.1. Distance-based mask operator for residue centers.
- 09-17-2021: Version 6.0.0. Major cluster code rewrite. Can cluster on any combination of COORDS/1D sets and restart clustering from info files or custom cluster number vs time sets.
- 08-25-2021: Version 5.4.1. Add ability to RMS-fit grids onto coordinates.
- 05-12-2021: Version 5.3.3. Add the
multipucker
action for automatic calculation of multiple puckers.
- 04-04-2021: Version 5.2.0. Add particle mesh Ewald option to GIST to speed up the non-bonded energy calculation.
- 03-15-2021: Version 5.1.0. Enhance the performance of the
permutedihedrals
andrandomizeions
commands. - 03-04-2021: CPPTRAJ's configure can now automatically download and build external libraries if desired.
- 02-27-2021: Version 5.0.6. Add the ability to change the default random number generator; new command,
random
. - 02-11-2021: Version 5.0.5. Add
sscalc
keyword tonastruct
action to tellnastruct
to calculate parameters between consecutive bases in strands. - 02-01-2021: Version 5.0.4. Add new command
flatten
; can convert 1 or more matrices into 1D array(s) by summing or averaging elements.
- 01-15-2021: Version 5.0.0. Major changes to unit cell handling. Fix bugs in
gist
,lie
,pairdist
actions. Miscellaneous other fixes.
- 12-30-2020: Speed up
volmap
calculation by 2-3x; citation: https://www.sciencedirect.com/science/article/abs/pii/S1093326321000012. - 12-16-2020: Add
restrict
keyword todensity
action to restrict calculation to a specific shape around specified axis.
- 09-25-2020: Add
nselectedout
keyword tomask
action to print total number of selected atoms per frame. - 09-23-2020: Version 4.30.0. Handle non-contiguous molecules.
- 08-24-2020: Better control over printing of CONECT records to PDB files.
- 08-21-2020: Fixes and improvements for
spam
andvolmap
actions, improved handling of 3D grids. - 08-18-2020: Version 4.29.2. Add a new command,
graft
which can be used to graft all or part of one COORDS set onto another COORDS set. - 08-11-2020: Can filter out alternate atom locations in PDB for the
parm
andtrajin
commands.
- 06-14-2020: Version 4.26.7. New command
evalplateau
which can be used to determine if a property has reached a plateau (i.e. "stabilized"). Used as part of an explicit solvent simulation preparation protocol outlined in https://aip.scitation.org/doi/abs/10.1063/5.0013849.
- 04-22-2020: Miscellaneous improvements to
makestructure
,dssp
,change
, andbonds
; smalldssp
fix. - 04-21-2020: Add
shift
keyword todataset
command that can be used to apply offsets to data that match certain criteria. - 04-10-2020: The
datafilter
command can now modify data sets in-place.
- 03-11-2020: Add
noframespaces
keyword tonastruct
action to prevent printing empty lines between frames in output.
- 02-07-2020: Version 4.25.4 Add support for reading Desmond DTR trajectories.
- 01-31-2020: Enhancements to loops, including a new for loop,
datasetblocks
, that allows looping over subsets (blocks) of fixed size of a data set, or subsets of increasing size (cumulative). - 01-09-2020: Version 4.25.0 GPU-enabled GIST. See https://pubs.acs.org/doi/abs/10.1021/acs.jctc.9b00742.
- 10-18-2019: Version 4.20.1 Support for reading Gromacs TNG.
- 10-16-2019: Add option to write ADP factors calculated from
atomicfluct
to output PDB files.
- Calculate RMSD of dihedral angle values to those in a reference structure.
- Added ability to write CHARMM coordinate files.
- Amplitudes calculated by the
pucker
command are now reported in degrees. - The default PDB chain ID is now 'Z' instead of blank in order to better comply with the PDB standard.
-
Major rewrite of the DSSP (
secstruct
) action to better conform to the original DSSP paper.. Now by defaultE
xtended andB
ridge structure is reported instead of parallel/anti-parallel beta. Overall secondary structure detection and performance are greatly improved.
- Add 'solventmask' keyword to 'closest' command for specifying solvent.
-
Can pass user-specified data sets to PDB output for e.g. putting arbitrary data in the B-factor/occupancy columns. This can be useful for putting
atomicfluct
results into PDB files for visualization. -
New action:
time
. Allows users to add/modify/remove time information from trajectory frames.
- Support for calculating Lennard-Jones energy via PME to
energy
command. - Add the ability to cache
hbond series
data sets to disk instead of memory. - Add ability to grid by residue or by molecule to the
grid
command. - Add the ability to calculate radial distribution function
rdf
/radial
by residue or by molecule. - Add ability to calculate velocity/force vectors to
vector
command. - The
align
command accepts a mask that specifies which atoms to move:move <mask>
- The
makestructure ref
mode now can be used to apply all recognized dihedral types from the reference structure instead of just phi/psi via an optional comma-separated list of dihedral type keywords:'ref:<range>:<refname>[:<ref range>[:<dih types>]]'
- The
change
command has new keywords:
-
addbond <atom1> <atom2>
which can be used to add a bond to the specified topology; Useful in conjunction withcombinecrd
. -
chainid of <mask> to <value>
can be used to change the chain ID of residues in mask to specified value.
- The
<start>
argument fortrajin
andensemble
can now be negative. When it is, it means "Start<start>
frames before<stop>
". -
New command-line flags for specifying input/output trajectory arguments:
-ya
and-xa
. -
Major enhancements to
calcstate
, including more flexibility when defining states and more calculation and output options. splitcoords
command for splitting molecules into separate trajectory frames.- Add
for <variable> in <comma-separated-list
for loop type. - Add
catcrd
command for concatenating multiple COORDS data sets. - Multiple analyses can be distributed over multiple single processes in MPI via
parallelanalysis
. - Add calculation of Hausdorff distance from matrix data.
- Add ability to superimpose symmetry-related subunits of the simulation back onto one another via
xtalsymm
command.
Ability to group 1D data sets in various ways when writing standard data files.
3D data sets: More options when saving/reading 3D data sets.
3D data written in "standard" format can now be read back in by CPPTRAJ. One new keyword of particular note is sparse
: 3D data sets in "standard" format can be written as sparse with this keyword, i.e. voxels (bins) with no population can be skipped, which can dramatically reduce the file size for sparse grids.
Cluster analysis: add ability to save more than 1 representative structure per cluster
A new keyword, savenreps <#>
, is now available for cluster analysis which allows the top <#>
cluster representatives to be saved instead of just 1. See the PR for full details.
Add particle mesh Ewald energy calculation
Adds particle mesh Ewald electrostatics to the energy
command. Reciprocal part of the sum is handled by the helPME library.
Add command to analyze Amber constant pH simulation output
Cpptraj can now read in and analyze Amber constant pH simulation data. See the PR for full details.
Addition of some script-like syntax ('for', etc)
This adds for
loops and script-like variables.
-
Script variables. Script variables start with
$
and are distinct from data sets. They can be set via theset
command or are created viafor
loops (more on those below). E.g.
set prefix = OUTPUT_DIR/run1
trajin mytraj.nc
rmsd first :1-12 out $prefix/rmsd.dat
rmsd first nofit :3 out $prefix/rmsd.dat
Script variables can be used pretty much anywhere. There are also special modes for set
. You can set a variable to contain the total number of atoms, residues, or molecules in a mask, or you could set a variable to the current total number of input trajectory frames (i.e. from trajin
statements). Script variables can also be appended to. Say you have two trajectories, one of length 100 and one of length 50:
trajin traj1.nc
set split = trajinframes
set split += ,
trajin traj2.nc
set split += trajinframes
The script variable $split
would be set to 100,150
and could then be used e.g. for the splitframes
arguments of the cluster
command. The show
command can be used to show all current script variables and their values.
- 'for' loops. Can do regular numerical for loops, e.g.
for i=1;i<10;i++
distance d$i @$i @20
done
would add 10 distance
commands named d1 - d10 between atoms 1-10 and atom 20. Can also do for loops for mask expressions, e.g.
for atoms Natom inmask :2-129@N&!:PRO atoms Hatom inmask :2-129@H v=1;v++
vector v$v $Natom ired $Hatom
done
Would add vector commands for each N-H bond vector in residues 2-129 (skipping prolines).
- Select by chain ID.
::
::B@CA # Select all atoms named CA in chain B
- Select by molecule number.
^
^1,2:DC@P # Select all atoms named P in residues named DC in molecules 1 and 2
- Select by original (e.g. PDB) residue number.
:;
:;3-5,8-10 # Select residues originally numbered 3 through 5 and 8 through 10
- Select molecules by distance.
@5<^3.0 # Select all molecules within 3 Angstroms of atom number 5
The chain ID and original residue number selection are most useful for PDB topology or Amber topology with PDB info added.
Fixes and enhancements for SPAM
- Distances are now properly imaged in the energy calculation.
- The
purewater
calculation is now an order of magnitude faster.
Improvements to the 'check' Action
-
check
is now orders of magnitude faster due to pair list usage.
- Add support for reading energy terms from CHARMM output.
- New modes for
dataset
command:droppoints
andkeeppoints
:
drop|keep}points {range <range arg> | [start <#>] [stop <#>] [offset <#>]}
[name <output set>] <set arg1> ...
Drop specified points from or keep specified points in data set(s).
- New ways to modify dimension info for data sets with
dataset
:
dim {xdim|ydim|zdim|ndim <#>} [label <label>] [min <min>] [step <step>]
Change specified dimension in set(s).
- CUDA-enabled
closest
/watershell
commands. - Additional general speed improvements for
closest
/watershell
commands. -
comparetop
command for reporting differences between topologies. - Wavelet analysis via
wavelet
, with WAFEX (wavelet analysis feature extraction). - Handle very large systems (tested on ~11.6 M atoms).
- Support Gromacx XTC format.
-
nativecontacts
command can now track non-native contacts. -
autoimage
anchor
keyword can now focus on specified region of molecule for tightly packed systems. - SPAM (
spam
) command now finished, works with OpenMP/MPI. - OpenMP parallelized
volmap
command. - GIST (
gist
) command speed improved (OpenMP), handles water models with extra points.
- Can read custom nucleic acid bases in
nastruct
command. - Enable changing of matrix data set mode type for matrix read in from file.
- Properly detect symmetric matrix data for read-in matrix data.
- More consistent results with Intel compilers.
-
sybylatom
andsybylbond
options for Mol2trajout
, similar to antechamber-ac
and-bc
options. -
align
command for performing best-fit structure alignment. - New NetCDF cluster pairwise matrix format.
- Sieved frames now included in
cluster
results calculations. -
cluster
pairwise matrices can be treated like data sets; used for multiple cluster commands, written in different formats, etc. -
cluster
hierarchical agglomerative action speedup via OpenMP. - More options for choosing best representative structures in clustering.
- Force trajectories can now be processed.
- Fix torsion analysis in the
stat
command. -
combinecrd
command now works with box info. - Improvements for printing topology information (
atoms
,resinfo
,molinfo
, etc). Output can be redirected to files. - CHARMM shape matrix data now properly handled.
- Charmm COR (read only)
- Gromacs XVG (read only)
- Gromacs TOP (read only)
- CCP4 Grid Density (read/write)
- PDB files:
- Read and write more information (insertion codes, chain IDs, CRYST1, CONECT records, etc).
- Improved element determination.
- OpenDX files
-
bincenter
: On write grid mesh can be aligned on grid bin centers instead of corners. -
gridwrap
: Likebincenter
but also wrap grid density. -
gridext
: Likebincenter
but also print an extra layer of empty bins.
-
- NetCDF trajectory files: Can now read/write force information.
- Mol2 files:
sybyltype
: Can output SYBYL atom types in Mol2 files ifAMBERHOME
is set. - Add
keepext
keyword to the amber restart, ncrestart, mol2, and pdb file formats to keep the extension intact and prepend the set number to the extension instead (e.g.out.X.pdb
).
-
Across trajectory parallelization with cpptraj.MPI. Input trajectory/ensemble reads/writes are now parallelized in cpptraj.MPI.
- New command ensemblesize should be used with cpptraj.MPI to improve efficiency of ensemble set up in parallel.
- Data files can be converted via command line, e.g.
cpptraj -d input.dat -w output.agr
-
onlymembers <list>
keyword for trajout/outtraj; during ensemble run only write trajectory data for specified ensemble members. - Simple math can be performed with 2D/3D (matrix/grid) data sets (addition, subtraction, etc).
- Can be configured with both MPI and OpenMP at the same time.
- Non-data set file output from most Actions (e.g.
hbond avgout
) can be combined. - rotdif is now an Analysis.
- Will now compile under Windows.
-
dataset
- Data sets can be concatenated with
dataset cat <dataset> <dataset> ...
- Can create new data set with X values from one set and Y values from another:
dataset makexy <set1> <set2>
- Data sets can be concatenated with
- Can manipulate reference structures using crdaction, so e.g. reference coordinates can be stripped, translated, rotated, etc.
- Can be compiled without ARPACK (makes
diagmatrix
with larger matrices very slow). - Compressed (gzip/bzip2) input files can be read.
- dihedralscan has been renamed permutedihedrals to better reflect what the command does.
- esander: Calculate energies from sander (PME/GB) if compiled with sander API.
-
diffusion
- Now uses data set framework, can control of output format/precision etc.
- New syntax,
average
is the default (old syntax still supported):
diffusion
[{out <filename> | separateout <suffix>}] [time <time per frame>]
[<mask>] [<set name>] [individual] [diffout <filename>] [nocalc]
* Automatically calculate diffusion constants from linear regression.
* Fix orthothombic imaging bug.
* Support non-orthorhombic imaging; faster than having a preceding **unwrap**.
- New keyword
parmout <top file>
added to closest and strip commands for writing out topology files. -
nastruct
- Base pairing detection improved. Can detect non-WC base pairing, and base pairs in multi-stranded systems (e.g. G-quadruplex.
- Better handling of systems where base pairs break and reform.
-
allframes
: Recalculate base pairing each frame. -
groovecalc
: Can now specify3dna
to perform groove calculation of El Hassan and Calladine (as opposed tosimple
which is just based on phosphate/O4' distances). - New output column for
BP.<suffix>
file:BP
, set to 1 if base pair present and 0 otherwise. -
calcnohb
: If specified base pair parameters will be calculated even if no hydrogen bonds present between previously found base pair.
-
closest:
center
option added for using center of mass of solute (instead of all atoms). - symmrmsd: Speedup; fixed bug in Hungarian algorithm that caused slow convergence.
-
rms
- savematrices: Save rotation matrices to data set
<name>[RM]
-
nomod
keyword to prevent modification of coords even when calculating best-fit RMSD.
- savematrices: Save rotation matrices to data set
-
rotate
- Can rotate around axis created from two points defined by user:
axis0 <mask0> axis1 <mask1>
. - Can rotate from rotation matrices data set (from e.g.
rms savematrices
):usedata <set name> [inverse]
- Can rotate around axis created from two points defined by user:
- replicatecell: Can now replicate more than 1 image in any direction.
- vectormath: Can perform calculations on two vectors each of size N, or one vector of size 1 and another vector of size N.
- ti: Calculate average DV/DL from input data sets and perform Gaussian quadrature integration.
-
modes: Fix
fluct
anddispl
for when eigenvalues are not in units of cm^-1. Also add optioncalcall
to not skip zero/negative eigenvectors. -
curvefit: Add
gauss
keyword to fit Gaussian.
- Gromacs GRO (read only)
- Ability to read and process constant pH REMD logs.
- PDB files:
- CONECT records used to determine bonds; also add
noconect
option to PDBparm
read to prevent using CONECT records to determine bonds. - For PDB write, add
include_ep
keyword to enable write of extra points.
- CONECT records used to determine bonds; also add
- Fix segfault when using DataSet_Coords_TRJ with trajectories containing velocity information.
- Fix reading MDOUT from pememd TI run.
- Fix residue single char output (TYR mistakenly converted to R instead of Y).
- Data sets should now be properly appended to by
readdata
. - Can be configured to use FFTW3 (
configure -fftw3 --with-fftw3=
). - Data sets can now be selected using wildcard chars
*
and?
, so one could for example specifyC?[Life*]
to get C1[Lifetime], C2[Lifelink], etc.
-
nastruct:
- Add Zp calculation (3DNA style).
- Better determination of base pairing; can now recognize non-WC base pairs.
- Improved determination of base pair steps.
-
check: Add
around <mask>
functionality tocheck
command to restrict part of the system checked.
-
remlog: Ability to determine stats for different dimensions in
remlog
analysis. -
kde: Fix to Kullback-Liebler divergence analysis in
kde
that occasionally resulted in 'nan' being written. -
ired
- Fixes for the relaxation calculation (integration of Cm(t) and calculation of Cj(t)).
- Add full delta*S^2 matrix output option,
ds2matrix <file>
.
-
avg:
oversets
keyword; can now calculate average over multiple sets (as opposed to average of each individual set). -
cluster: Fixes to
dpeaks
clustering. Add option to choose points manually,choosepoints manual
via optionsdistancecut <distcut>
anddensitycut <densitycut>
. Probably more reliable thanchoosepoints auto
at the moment. -
calcstate: Assign states to frames based on data set criteria; resulting sets can be used in e.g.
lifetime
analysis. - multicurve: Non-linear curve fitting for multiple input data sets.
- wavelet: Wavelet analysis on Cartesian coordinates.
- Ability to perform math from command line, including limited ability to perform math on 1D data sets.
- curvefit: Non-linear curve fitting.
-
cluster:
- k-means clustering,
[kmeans clusters <n> [randompoint [kseed <seed>]] [maxit <iterations>]
- Can visualize pairwise distance matrix from cluster analysis in 2D (
drawgraph
) or 3D (drawgraph3d
).
- k-means clustering,
-
grid: Non-orthogonal grids; new keyword
boxref
). Usage:grid <filename> boxref <ref name/tag> <nx> <ny> <nz>