Command line tools

Msys is packaged with a set of command line tools that wrap functionality present in the Python interface.

Conversion

mae2dms

dms2mae

Information

dms-version

dms-info

dms-dump

dms-diff

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.

msys.thermalize.apply(mol, T, seed=None)[source]

assign random velocities sampled from a Boltzmann distribution of temperature T.

msys.thermalize.remove_drift(mol)[source]

Remove center of mass motion. Returns the original center of mass velocity. Zero out the velocity of pseudoparticles.

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
msys.posre.apply(mol, atoms, fcx, fcy, fcz, replace=False)[source]

add position restraints to atoms

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:

  1. Produce a list of all cycles in the bond topology (i.e. rings)

  2. For each ring:
    1. Use boxing and distance cutoffs to reduce the number of bonds to check against

    2. Divide the ring into N triangles

    3. Check for a triangle-line intersection between the triangle and each relevant bond

dms-validate

dtr-validate