Command line tools¶
Msys is packaged with a set of command line tools that wrap functionality present in the Python interface.
Basic Manipulation¶
dms-fix-mass¶
dms-frame¶
dms-reorder-atoms¶
dms-select¶
dms-sequence¶
-
msys.sequence.
Sequences
(system_or_chain, distinct=True)[source]¶ return list of sequences, one for each chain, for the given input. The sequence will be returned as a string, with characters corresponding to the 1-letter sequence codes. If a Chain is provided instead of a System, only one sequence will be returned.
If distinct is True, only distinct sequences will be returned.
dms-set¶
-
msys.update.
Update
(mol, atoms, key, val)[source]¶ update the system by setting properties corresponding to key to the value val. key can take the following forms: 1) foo – same as atom.foo 2) atom.foo – atom property foo 3) residue.foo – residue property foo 4) chain.foo – chain property foo 5) table.foo – property foo of all terms 6) box.foo – where foo is x, y, z, or d (sets all three)
Structure building¶
dms-grease¶
dms-grease input.dms lipid.dms output.dms [ options ]
Tile a lipid bilayer around a solute.
dms-grease builds a new chemical system consisting of the input system plus a lipid bilayer constructed by tiling lipid.dms in the x-y plane. If the input.dms is given as “-“, then a pure membrane will be built.
An error will be encountered if only one of input.dms and lipid.dms have forcefield information; this is because Msys refuses to write DMS files that have only partial information for the nonbonded atom types. If you don’t have forcefield information for one of the input files, use the –structure-only option to ignore the forcefield information in the one that does.
The global cell of the new system will be orthorhombic and have x and y dimensions given by the specified size of the membrane, and z dimension given by the input structure or the lipid membrane template, whichever is greater.
-
msys.grease.
Grease
(mol, tile, thickness=0.0, xsize=None, ysize=None, ctname='grease', verbose=True, square=False)[source]¶ Build and return a new system consisting of mol plus lipid bilayer. Tile is the lipid bilayer system to replicate.
If no solute is provided, the solute is treated as a point at the origin. thickness specifies the amount of solute added along the x and y axis. The dimensions of the bilayer can also be given explicitly with dimensions. If square is true, the box size will be expanded to the size of the longest dimension.
Lipids will be created in a new Ct. Their chain names will be left the same as in the original tile, but the resids will be renumbered to ensure uniqueness.
Return the greased system; no modifications are made to the input system.
dms-thermalize¶
dms-thermalize input.dms output.dms [ options ]
Assign Boltzmann-sampled velocities to the atoms. Atoms with zero mass will get zero velocity.
dms-posre¶
Add position restraints to a dms file, using the existing atom
positions for the reference positions of the restraints. If --replace
is specified on the command line, any existing restraints will be replaced
by the new set. Otherwise, atoms that are already restrained in the existing
file will be restrained using the newly provided force constraints:
# Add position restraints to backbone atoms with a force constant of 0.2
dms-posre input.dms out1.dms -s "backbone" -f 0.2
# Restrain CA atoms with a force constant of 0.3
dms-posre out1.dms out2.dms -s "name CA" -f 0.3
# Remove all position restraints:
dms-posre input.dms output.dms --replace
## or:
dms-posre input.dms output.dms -s none --replace
dms-tile¶
dms-replicate¶
dms-solvate¶
dms-neutralize¶
Validation¶
dms-find-knot¶
dms-find-knot system.dms [ options ]
/------- \ / \ / \----\ --------------- \ / \-------/
dms-find-knot searches for bonds which pass through a ring of atoms; e.g., a lipid tail passing through an aromatic ring in a protein. Such geometries can accidentally arise during system construction and usually indicate a badly constructed system which will behave badly during simulation.
If –untie is specified, the script will attempt to remove the knots by translating the offending bonds outside of the ring (iteratively to convergence).
The algorithm works as follows:
Produce a list of all cycles in the bond topology (i.e. rings)
- For each ring:
Use boxing and distance cutoffs to reduce the number of bonds to check against
Divide the ring into N triangles
Check for a triangle-line intersection between the triangle and each relevant bond