WIP: AlchemicalFE-Systems
Description
This branch contains the automatic generation functions for pairwise and multistate Alchemical Free Energy calculations approaches like: single, hybrid and dual topology.
We want to merge the code for this by @candidechamp and me.
Todos
Notable points that this PR has either accomplished or will accomplish.
-
[ ] Utils:
- [ ] add PertubedAtoms
- [ ] generate-topology
- [ ] generate-ptp
- [ ] generate-cnf
-
[ ] PyGromosPP-Functions:
- [ ] generate_dual_topology
- [ ] generate_single_topology
- [ ] generate_hybrid_topology
-
[ ] Gromos System:
- [ ] Alchemical System
Status
- [ ] Ready to go
Hi @SalomeRonja, just a headsup, this is what we discussed on the PyGromosDay. :)
Codecov Report
Merging #220 (173d118) into release3 (4ebc4ff) will decrease coverage by
0.16%. The diff coverage is0.00%.
@@ Coverage Diff @@
## release3 #220 +/- ##
============================================
- Coverage 53.59% 53.42% -0.17%
============================================
Files 93 94 +1
Lines 12794 12658 -136
============================================
- Hits 6857 6763 -94
+ Misses 5937 5895 -42
| Flag | Coverage Δ | |
|---|---|---|
| unittests | 53.42% <0.00%> (-0.17%) |
:arrow_down: |
Flags with carried forward coverage won't be shown. Click here to find out more.
| Impacted Files | Coverage Δ | |
|---|---|---|
| ...s/gromos/pyGromosPP/generate_FETopologyApproach.py | 0.00% <0.00%> (ø) |
|
| pygromos/simulations/modules/ti_modules.py | 94.87% <0.00%> (-5.13%) |
:arrow_down: |
| pygromos/files/topology/top.py | 63.63% <0.00%> (-0.97%) |
:arrow_down: |
| ...os/files/gromos_system/ff/serenityff/serenityff.py | 12.90% <0.00%> (-0.87%) |
:arrow_down: |
| pygromos/files/blocks/imd_blocks.py | 76.87% <0.00%> (-0.09%) |
:arrow_down: |
| pygromos/files/simulation_parameters/imd.py | 65.24% <0.00%> (+0.24%) |
:arrow_up: |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact),ø = not affected,? = missing dataPowered by Codecov. Last update 4ebc4ff...173d118. Read the comment docs.
This pull request introduces 2 alerts when merging 773c17b62b9413ed3e09f1535fad7ffe231eb6ee into 683c52eea0addcc0376c6790641a36d5e0176b3b - view on LGTM.com
new alerts:
- 1 for Unused import
- 1 for Syntax error
The previous commit contains code (still under development) to generate hybrid topologies. The code doing the work is found in hybrid_topology_maker.py and can be called from the notebook generate_hybrid_topologies.ipynb.
note: This code requires input files which were too big to place on github, but anyone interested in testing this can email me.
The plan is to combine the code building the topology up such that it can prepare hybrid and dual topologies.
As input, a user will provide a list of .cnf and .top files of each ligand to be merged/added (note: all parameters need to be the same in the single ligand topologies).
Then the idea is to have the following steps:
-
Maximum common substructure search to determine which part of the molecule is the core. note: this step needs to allow manual involvement after the step if a user is not ok with the MCS results.
-
Build a list of
PerturbedAtomswhich contain the information related to which atoms map onto which. note: for hybrid topologies, the "core" atoms are added to this list during the MCS step, and the -R group atoms are added during the building of the new topology as each new ligand atom is added. -
Build the new topology step by step based on the atom mappings and the single topologies
-
Build hybrid conformations based on single conformations and atom mappings
-
Build perturbation topology (.ptp) based on atom mappings and hybrid topology
This pull request introduces 16 alerts when merging 173d1183935e556977efbf89e7f91adea0e14c3f into 741acbf240d4ff0c3bbab2a4a6dc6b45f7b3fa34 - view on LGTM.com
new alerts:
- 8 for Unreachable code
- 6 for Unused import
- 1 for Unused local variable
- 1 for Syntax error