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
Brainstorming things to do before we can start using this code more reliably.
Tagging @jchodera@gregoryross, feel free to add points by editing (assuming you can) or replying.
Clean up the repository
docstrings
unused files
directory structure
setup.py
conda package
using the usual devtools setup
Add tests
Basic integration tests
unit tests
Set up some simple test systems
Investigate source of numerical instability in the tests
continuous integration (Travis)
Validate / fix NCMC implementation
Turn on sterics before turning on electrostatics not changing sterics
Add an optional argument to MonteCarloTitration constructor called maintainChargeNeutrality to select whether water molecules should be replaced with ions to maintain charge neutrality.
Monovalent cation/anion parameters would be optionally set with cationName='Na+' and anionName='Cl-' which specifies name of atom in prmtop.topology from which to take (charge, sigma, epsilon) parameters from when waters are converted into monovalent ions to maintain charge neutrality. This would obviously only be used in explicit solvent.
Build a list of water molecules.
A class method nsteps_per_trial (optionally set during the MonteCarloTitration constructor) will control whether we are using instantaneous switching (0 steps) or NCMC (>= 1 steps).
Each MC update attempt, the original positions and velocities will be cached, and we will use the integrator described in this paper---where the Hamiltonian switching updates happen in between the middle of the timestep---to integrate dynamics. The NCMC criteria will be used to accept/reject the move, as in the recent Roux paper.
For now, I will assign a new momentum at the beginning of each NCMC switching iteration, but we can implement more clever approaches to avoid momentum reversal (e.g. those from Roux) later once we have benchmarking data.
If maintainChargeNeutrality=True and there are waters in the system, we will convert waters to/from monovalent ions to maintain charge neutrality during the switching process. We will only convert either waters or monovalent ions that have been converted from waters by the constant-pH facility---we will not modify any existing ions, since we can't easily convert those back into waters. We will keep the hydrogen masses constant, but turn off the electrostatics on the hydrogens as waters are converted into ions. Initially, we will just select waters or ions at random, but later, we may be able to select waters/ions based on electrostatics to increase acceptance probabilities.
Update calibration code with the ncmc changes.
Update SAMS code
Merge MBAR code into the same API as SAMS (low priority)
Validate that calibrations with SAMS works well enough
Investigate convergence of ref. free energies.
Implict vs explict solvent calibrations
Effect of counterions in explicit calibration energies
Variance estimation
Compare results with MBAR (they should match)
We need to implement some functions before we can use calibration:
Set up a calibration tool that can run as part of the workflow (calibrate method)
set up easy calibration at given pH for amino acids, based on pKa/pKb
set up ligand system (solvation?) and calibrate automatically as well using Epik populations
System setup
Add hydrogens (modeller)
Make sure that the max number of protons are defined in system
Maintain charge neutrality by inserting/deleting counter ions (replacing water)
Remove dependency on pre-existing ions
add user specified ions instead
Coordinate efforts with constant-counterion work if possible ( @gregoryross )
Small molecule input files cpin/prmtop/ffxml
Currently working on an ffxml format that takes input from epik, relies on openmoltools
Needs work on openmoltools for implicit solvent support (GBSolvent params) (@jchodera ?)
documentation
Lower priority/ extra features:
pKa biasing
Selection of residue pairs for simultaneous (de)protonation
Getting rid of cpin files
Protein constant-pH ffxml?
The text was updated successfully, but these errors were encountered:
Brainstorming things to do before we can start using this code more reliably.
Tagging @jchodera @gregoryross, feel free to add points by editing (assuming you can) or replying.
Clean up the repository
setup.py
conda package
Add tests
continuous integration (Travis)
Validate / fix NCMC implementation
Turn on sterics before turning on electrostaticsnot changing stericsCopy/pasta 🇮🇹 from [WIP] NCMC for explicit solvent constant-pH #15
MonteCarloTitration
constructor calledmaintainChargeNeutrality
to select whether water molecules should be replaced with ions to maintain charge neutrality.cationName='Na+'
andanionName='Cl-'
which specifies name of atom inprmtop.topology
from which to take(charge, sigma, epsilon)
parameters from when waters are converted into monovalent ions to maintain charge neutrality. This would obviously only be used in explicit solvent.nsteps_per_trial
(optionally set during theMonteCarloTitration
constructor) will control whether we are using instantaneous switching (0 steps) or NCMC (>= 1 steps).maintainChargeNeutrality=True
and there are waters in the system, we will convert waters to/from monovalent ions to maintain charge neutrality during the switching process. We will only convert either waters or monovalent ions that have been converted from waters by the constant-pH facility---we will not modify any existing ions, since we can't easily convert those back into waters. We will keep the hydrogen masses constant, but turn off the electrostatics on the hydrogens as waters are converted into ions. Initially, we will just select waters or ions at random, but later, we may be able to select waters/ions based on electrostatics to increase acceptance probabilities.Update calibration code with the ncmc changes.
Validate that calibrations with SAMS works well enough
calibrate
method)System setup
Maintain charge neutrality by inserting/deleting counter ions (replacing water)
Coordinate efforts with constant-counterion work if possible ( @gregoryross )
Small molecule input files cpin/prmtop/ffxml
documentation
Lower priority/ extra features:
The text was updated successfully, but these errors were encountered: