You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
* add data files to installable package ([a9fdae8](https://github.com/jag1g13/pycgtool/commit/a9fdae85d5f9d2bff9dcfd4fe0fbc8a683dbe773))
24
+
* backup forcefield directories instead of overwrite ([19b4054](https://github.com/jag1g13/pycgtool/commit/19b40540b0254c47d7a70eef12c2200bb96a4b9d))
25
+
* backup frame and forcefield output files ([626cc3a](https://github.com/jag1g13/pycgtool/commit/626cc3a839a21699ac4c28eab55f385c6a199327))
26
+
* create output directory if it doesn't exist ([c4694e8](https://github.com/jag1g13/pycgtool/commit/c4694e811201c7538819757bc52ea21ecd9f196f))
27
+
***tests:** add missing mapping test file ([db0be76](https://github.com/jag1g13/pycgtool/commit/db0be763bab6f629706597da1cb43d4ce3ff0914))
28
+
* use correct reference coordinate for virtual bead calc ([a0a61f2](https://github.com/jag1g13/pycgtool/commit/a0a61f2dd2ae38d63b6de5a516f324865e93fe04))
* avoid bond calc and traj output when no atoms ([ba0e5ab](https://github.com/jag1g13/pycgtool/commit/ba0e5ab1339f1f2821a0edb08a5b7f661c9ac29f)), closes [#51](https://github.com/jag1g13/pycgtool/issues/51)
36
+
* catch zero volume PDB box and warn ([61a5b80](https://github.com/jag1g13/pycgtool/commit/61a5b809e0cd4dffaf3e2e2bbe2ab74fcc0488aa))
Please see http://pycgtool.readthedocs.io/en/master/ for full documentation.
6
-
7
-
A Python program for automated generation of coarse-grained molecular dynamics models from atomistic simulation trajectories.
8
-
9
-
The aim of this project is to provide a tool to aid in parametrising coarse-grained (CG) molecular mechanics models. PyCGTOOL generates coarse-grained models from atomistic simulation trajectories using a user-provided mapping. Equilibrium values and force constants of bonded terms are calculated by Boltzmann Inversion of bond distributions collected from the input trajectory.
Alternatively map-only mode (behaving similarly to MARTINIZE) may be used to generate initial coordinates to use with existing CG topologies such as the MARTINI lipid models. For instance, a pre-equilibrated atomistic membrane may be used to create starting coordinates for a MARTINI membrane simulation.
10
+
Generate coarse-grained molecular dynamics models from atomistic trajectories.
12
11
13
-
PyCGTOOL makes it easy to test multiple variations in mapping and bond topology by making simple changes to the config files.
12
+
PyCGTOOL is a tool to aid in parametrising coarse-grained (CG) molecular mechanics models of small molecules, for example for simulations using the popular MARTINI model.
13
+
It generates coarse-grained model parameters from atomistic simulation trajectories using a user-provided mapping.
14
+
Equilibrium values and force constants of bonded terms are calculated by Boltzmann Inversion of bond distributions collected from the input trajectory.
14
15
15
-
This version has several advantages over the original C++ implementation CGTOOL:
16
-
* PyCGTOOL is able to run anywhere the necessary library dependencies are available (all available from pip)
17
-
* Does not require that residues are present in contiguous sorted blocks
18
-
* May map multiple residues with a single pass
19
-
* Support for polymers such as DNA or proteins making use of GROMACS' pdb2gmx
20
-
* Much more automated testing ensures that regressions will be identified quickly
16
+
Alternatively map-only mode (behaving similarly to MARTINIZE) may be used to generate initial coordinates to use with existing CG topologies such as the MARTINI lipid models.
17
+
For instance, a pre-equilibrated atomistic membrane may be used to create starting coordinates for a CG membrane simulation.
21
18
22
-
If you experience problems or wish to see a new feature added please [file an issue](https://github.com/jag1g13/pycgtool/issues).
19
+
PyCGTOOL makes it quick and easy to test multiple variations in mapping and bond topology by making simple changes to the config files.
23
20
24
-
If you find PyCGTOOL useful, please cite our JCIM paper https://doi.org/10.1021/acs.jcim.7b00096.
21
+
If you find PyCGTOOL useful, please cite our JCIM paper (https://doi.org/10.1021/acs.jcim.7b00096) and the code itself (https://doi.org/10.5281/zenodo.598143).
25
22
26
23
```bibtex
27
24
@article{Graham2017,
@@ -39,28 +36,82 @@ If you find PyCGTOOL useful, please cite our JCIM paper https://doi.org/10.1021/
39
36
}
40
37
```
41
38
42
-
## Usage
43
-
Input to PyCGTOOL is GROMACS GRO and XTC files, along with two custom files: MAP and BND. These files provide the atomistic-to-CG mapping and bonded topology respectively. Example files are present in the [test/data](https://github.com/jag1g13/pycgtool/tree/master/test/data) directory. The format of these files is described in the [full documentation](http://pycgtool.readthedocs.io/en/master/).
39
+
## Install
40
+
41
+
PyCGTOOL requires Python 3.6 or higher and may be installed using either `pip` or `conda`:
Alternatively, you may download a pre-packaged version for your operating system from the [releases page](https://github.com/jag1g13/pycgtool/releases) on GitHub.
51
+
These pre-packaged versions include all dependencies and should be suitable in cases where you cannot install packages using one of the above methods.
52
+
**Warning**: This installation method is not extensively tested - installing via `pip` or `conda` should be prefered in most cases.
47
53
48
-
To run PyCGTOOL in map-only mode:
49
-
`pycgtool.py -g <GRO file> -m <MAP file>`
54
+
### MDTraj on macOS
50
55
51
-
To see the help text:
52
-
`pycgtool.py -h`
56
+
On some versions macOS, with some versions of the Clang compiler, MDTraj may fail to load GROMACS XTC simulation trajectories.
57
+
If you encounter this issue, please make sure you have the latest version of MDTraj installed.
58
+
59
+
For more information see [MDTraj/#1572](https://github.com/mdtraj/mdtraj/issues/1572).
60
+
61
+
## Usage
62
+
63
+
Input to PyCGTOOL is an atomistic simulation trajectory in the form of a topology (e.g. PDB, GRO, etc.) and a trajectory file (e.g. XTC, DCD, etc.), along with two custom files which describe the CG model to be generated: mapping (`.map`) and bonding (`.bnd`).
64
+
These files provide the atomistic-to-CG mapping and bonded topology respectively and use a format similar to GROMACS `.itp` files.
65
+
Topology and trajectory files are processed using [MDTraj](https://www.mdtraj.org) so most common formats are accepted.
66
+
67
+
Example mapping and bond files are present in the [test/data](https://github.com/jag1g13/pycgtool/tree/master/test/data) directory.
68
+
The format of these files is described fully in the [documentation page on file formats](https://pycgtool.readthedocs.io/en/dev/file-formats.html).
53
69
54
70
For more information, see [the tutorial](https://pycgtool.readthedocs.io/en/master/tutorial.html).
55
-
It is important to perform validation of any new parameter set; a brief example is present at the end of the tutorial.
71
+
It is important to perform validation of any new parameter set - a brief example is present at the end of the tutorial.
72
+
73
+
For a full list of options, see the [documentation](https://pycgtool.readthedocs.io/en/master/index.html) or use:
74
+
```
75
+
pycgtool -h
76
+
```
77
+
78
+
### Generate a Model
79
+
80
+
To generate a CG model from an atomistic simulation:
James Graham ([@jag1g13](https://github.com/jag1g13))
100
+
101
+
## Contributing
102
+
103
+
If you experience problems using PyCGTOOL or wish to see a new feature added please [open an issue](https://github.com/jag1g13/pycgtool/issues/new).
104
+
105
+
To help develop PyCGTOOL, you can create a fork of this repository, clone your fork and install PyCGTOOL in development mode using [Poetry](https://python-poetry.org/):
106
+
```
107
+
poetry install
108
+
```
109
+
110
+
This will result in an editable mode install (similar to `pip install -e .`) along with all the necessary runtime and development dependencies.
111
+
Testing and linting is handled by [Tox](https://tox.readthedocs.io/en/latest/) - use `tox` to run the full test suite and linter as they are configured in the Continuous Integration pipeline.
0 commit comments