Closed chapincavender closed 2 years ago
@chapincavender thanks for writing this up and the example.
I have had a look at implementing this and while straightforward for QCSubmit this is complicated by QCFractal as it does not currently accept the constraint keywords which need to be passed to geometric.
For an optimization dataset, we can pass the constraints as keywords here which are combined with the general geometric optimisation settings, for torsiondrives however the keyword schema is strict and does not provide anywhere for us to pass the constraints this would need to be changed first before we are able to do this. The logic in the torsiondrive service may also need to be updated to ensure the constraints are correctly passed on to each spawned optimisation. cc @dotsdl @bennybp
Thanks @jthorton. So the conclusion is that we need to get MolSSI involved to implement and test this, and that might require a few weeks of time to coordinate that effort.
Thanks @jthorton for identifying a clear solution to this issue. I have committed to implementation. Aiming for resolution quickly.
Dihedral constraints are currently supported for Optimization Datasets but not for TorsionDrive Datasets. For flexible molecules with many coupled torsional degrees of freedom, it is useful to constrain non-driven dihedrals that are coupled to driven dihedrals during TorsionDrives. For example, in dipeptides, the backbone dihedrals phi and psi are coupled to each other and also to sidechain dihedrals.
Below is a mol2 file for tryptophan dipeptide from the OpenFF port of Amber ff14SB,
AllDipeptides/MainChain/TRP/TRP.mol2
fromAllDipeptides.tar.gz
.The goal is to create a 2-D TorsionDrive dataset driving phi and psi while constraining the sidechain dihedrals chi1 and chi2. The SMARTS strings and dihedral indices for these dihedrals are described below.
Edited to fix variable name in python code