Skip to content
Snippets Groups Projects
Commit 224917b5 authored by James Graham's avatar James Graham
Browse files

Update and clean documentation

Small amount of code cleaning
parent f94238a4
No related branches found
No related tags found
No related merge requests found
......@@ -11,8 +11,6 @@ Contents:
.. toctree::
:maxdepth: 2
members
Features
--------
PyCGTOOL provides a means to quickly and easily generate coarse-grained molecular dynamics models within the MARTINI framework from all-atom or united-atom simulation trajectories.
......@@ -29,6 +27,11 @@ PyCGTOOL requires:
Optional:
- MDTraj for pseudo-CG XTC output (http://mdtraj.org/1.7.2/) with own dependencies:
- Scipy (https://www.scipy.org/)
- Cython (http://cython.org/)
- Python testing framework (e.g. Nose2, py.test)
- Numba for increased performance (http://numba.pydata.org/)
- Sphinx to generate documentation yourself (http://www.sphinx-doc.org/en/stable/)
......@@ -42,8 +45,8 @@ PyCGTOOL requires four input files to generate a coarse-grained model:
-m PyCGTOOL mapping definition file
-b PyCGTOOL bond definition file
The program is called by:
::
The program is called by::
pycgtool.py -g <GRO file> -x <XTC file> -m <MAP file> -b <BND file>
Example mapping and bond definition files are present in the ``test/data`` directory. Their format is explained below.
......@@ -58,8 +61,8 @@ Mapping Definition
~~~~~~~~~~~~~~~~~~
An example of mapping definition file for the monosaccharide allose taken from ``test/data/sugar.map`` is shown below.
Molecule names (as present in the gro coordinate file) are used as section headers inside square brackets. Each of the following lines describes a single coarse-grained bead mapping. The items on a line are: the name of the bead, its MARTINI bead type, a list of all the atom names it should contain. All items on a line are whitespace separated. Multiple molecules may be specified in their own sections. It is not recommended to provide a mapping for water since MARTINI water combines four molecules into a single bead which is not yet supported by PyCGTOOL.
::
Molecule names (as present in the gro coordinate file) are used as section headers inside square brackets. Each of the following lines describes a single coarse-grained bead mapping. The items on a line are: the name of the bead, its MARTINI bead type, a list of all the atom names it should contain. All items on a line are whitespace separated. Multiple molecules may be specified in their own sections. It is not recommended to provide a mapping for water since MARTINI water combines four molecules into a single bead which is not yet supported by PyCGTOOL. ::
; comments begin with a semicolon
[ALLA]
C1 P3 C1 O1
......@@ -78,8 +81,8 @@ An example bond definition file for the monosaccharide allose taken from ``test/
As in the mapping definition file, molecule names are used as section headers inside square brackets. The following lines define bonds lengths, angles and dihedrals between coarse-grained beads. Each line is a list of bead names, using the names defined in the mapping file. Two bead names on a line defines a bond length, three defines an angle, and four defines a dihedral.
If no angles are defined for a molecule, PyCGTOOL will construct all angles from the list of bonds. This may also be enabled for dihedrals via the ``--interactive`` flag, but is not recommended as in most cases coarse-grained models do not require dihedrals. Additionally, any angles inside a triangle of bond lengths are excluded from the output as they often cause simulation stability issues when used in conjunction with LINCS.
::
If no angles are defined for a molecule, PyCGTOOL will construct all angles from the list of bonds. This may also be enabled for dihedrals via the ``--interactive`` flag, but is not recommended as in most cases coarse-grained models do not require dihedrals. Additionally, any angles inside a triangle of bond lengths are excluded from the output as they often cause simulation stability issues when used in conjunction with LINCS. ::
; comments begin with a semicolon
[ALLA]
C1 C2
......@@ -111,12 +114,12 @@ Modes
~~~~~
PyCGTOOL performs several other functions which may be useful in the testing and use of coarse-grained models.
Mapping-only mode performs a coarse-grain mapping on a single frame and may be used to generate initial coordinates for a coarse-grain simulation, whether the model being used was created by PyCGTOOL or not. In this respect it functions similarly to the MARTINI tool MARTINIZE. This mode may be invoked by:
::
Mapping-only mode performs a coarse-grain mapping on a single frame and may be used to generate initial coordinates for a coarse-grain simulation, whether the model being used was created by PyCGTOOL or not. In this respect it functions similarly to the MARTINI tool MARTINIZE. This mode may be invoked by::
pycgtool.py -g <GRO file> -m <MAP file>
Measure-only mode may be used to aid in the testing of a coarse-grained model by making measurements of bonds from a true corase-grained simulation trajectory. These bond measurements are those collected from the pseudo-coarse-grained trajectory used to generate the model, so are a directly comparable measure of model accuracy. This mode may be invoked by:
::
Measure-only mode may be used to aid in the testing of a coarse-grained model by making measurements of bonds from a true corase-grained simulation trajectory. These bond measurements are those collected from the pseudo-coarse-grained trajectory used to generate the model, so are a directly comparable measure of model accuracy. This mode may be invoked by::
pycgtool.py -g <GRO file> -x <XTC file> -b <BND file>
Options
......@@ -126,7 +129,9 @@ By passing the flag ``--interactive`` to PyCGTOOL several advanced options are a
================== ========================================== =======================
Option Description Values
================== ========================================== =======================
output_name Base name of output files **out**, any string
output Coordinate output format **gro**
output_xtc Should a pseudo-CG XTC be created **False**, True
map_only Run in mapping-only mode **False**, True
map_center Mapping method **geom**, mass
constr_threshold Convert stiff bonds to constraints over **100000**, any number
......
......@@ -95,24 +95,21 @@ if __name__ == "__main__":
args = parser.parse_args()
config = Options([("output_name", "out"),
("output", "gro"),
("map_only", False),
("output_xtc", args.outputxtc),
("map_only", bool(args.bnd)),
("map_center", "geom"),
("constr_threshold", 100000),
("dump_measurements", False),
("dump_measurements", bool(args.bnd) and not bool(args.map)),
("dump_n_values", 100000),
("output_forcefield", False),
("temperature", 310),
("angle_default_fc", True),
("generate_angles", True),
("generate_dihedrals", False),
("output_xtc", args.outputxtc)],
("generate_dihedrals", False)],
args)
if not args.bnd:
config.set("map_only", True)
if args.bnd and not args.map:
config.set("dump_measurements", True)
if not args.map and not args.bnd:
parser.error("One or both of -m and -b is required.")
......
......@@ -127,11 +127,13 @@ class Mapping:
if cgframe is None:
cgframe = Frame()
cgframe.name = frame.name
cgframe.number = frame.number
cgframe.box = frame.box
cgframe.natoms = 0
cgframe.residues = []
cgframe.number = frame.number
cgframe.box = frame.box
for aares in frame:
if aares.name not in self._mappings:
continue
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment