MDRestraintsGenerator
Python code for generating (initially Gromacs) restraints for MD simulations (usually based on existing system dynamics).
The code currently only looks at BoreschRestraints, but we aim to extend functionality to include:
- Hardwall restraints
- Harmonic restraints
- Attach Pull Restraint style restraints
- Protein channel restraints
Input options
These are the current available input options for BoreschRestraints.py
--gro :: Input .gro structure file (technically can be any gromacs type structure file)
--xtc :: Input .xtc trajectory file
--l1 :: user defined ligand atom 1
--l2 :: user defined ligand atom 2
--l3 :: user defined ligand atom 3
--zeroformat :: assume ligand atom picks are zero formatted as generated by VMD (default: True, alternative 1-formatted)
Example
This examples assumes that:
1) npt_prod1_center.xtc is a centered+imaged .xtc file
2) npt_equil.gro is the .xtc trajectory's associated structure file
3) 4420 4421 4422 are zero formatted ligand atoms selected to apply the Boresch restraint on
The following input is used:
python BoreschRestraints.py --gro np_equil.gro --xtc npt_prod_center.xtc --l1 4420 --l2 4421 --l3 4422
The outputs are:
1) 5 .png files for each of the bond & angles involved in the Boresch restraints.
The .png images show the selected distributions and associated normality qq plot.
It is advised to always look at this to make sure that the selected Boresch restraints are from a unimodal distribution.
2) BoreschRestraint.top
This is an auto-generated [intermolecular_interactions] portions of a gromacs .top file for the given Boresch restraint.
You can just paste it at the bottom of an existing .top file.
3) ClosestRestraintFrame.gro
The structure of the closest frame to the average of each distributions for each chosen bond/angle.
Note that the actual values for the Boresch restraints are based on the values of this frame and not the average.
Dependencies
- MDAnalysis
- NumPy
- SciPy
- Matplotlib