Comments (7)
+1. I think the GeometryEngine
should be a bit more flexible and modular either way.
from perses.
Actually, thinking about this a bit more, couldn't we do the above right now anyway?
For instance, in this case:
old molecule --geometry--> dual-topology old --NCMC--> dual-topology new --ratio--> new molecule
We can just run the GeometryEngine
immediately to get the new coordinates and logp of the dimension-matching proposal, rather than after the NCMC elimination, right? We wouldn't calculate the dimension matching logp at the end here, right?
I still feel like it should be made more modular, but I'm not sure that we can't already do what you describe.
from perses.
I guess more to the point, my question would be why we would be calculating the dimension matching logp after the NCMC steps?
from perses.
In the quoted scheme, we would generate the new atom positions for the dual topology scheme first, then switch using NCMC with velocity Verlet. After that we need to compute the probability that the reverse protocol would generate the old atom positions being deleted from the post-NCMC geometry. Otherwise the probabilities of forward and reverse whole compound switching proposals will not be equal .
We therefore just need a way to do the geometry proposal with one set of coordinates and compute the Metropolis-Hastings part using two different sets of coordinates.
from perses.
I see what you're saying in terms of what the scheme is, though I seem to remember the "Annealed Importance Sampling Reversible Jump MCMC Algorithms" (let me catch my breath...) basically allowed the dimension jump to occur in the beginning, as you say, while allowing a straightforward method of computing the acceptance probability. I'll have to go back and read it again, though.
Nevertheless, this is a pretty minor change, so I'll do this.
from perses.
As discussed, I was slightly wrong in that the Metropolis-Hastings ratio computation is the only part that might need two configurations specified: the configuration used to propose old | new
(which may occur at the end of a switching trajectory), and the configuration used to propose new | old
(which may occur before the switching trajectory). In the current scheme, I believe these might just be the configurations before/after the geometry proposal.
from perses.
This part has already been separated.
from perses.
Related Issues (20)
- Integrate new atom mappers HOT 7
- Write initial initial and final structures in subdir
- AtomMapper fails when scaffolds have radicals HOT 1
- Creating legacy 0.10.x branch for longer term support -- main branch will become `gufe` refactor HOT 1
- Make sure we merge latest 0.10 branch before working on 0.11 refactor
- perses with mpi HOT 1
- Duplicate instances of `self._setup_complex_phase()` in relative_setup.py HOT 2
- Make `offline-freq` be the same as `checkpoint_interval` by default HOT 1
- Migrate from PDB to PDBx/mmcif HOT 1
- Protein mutation protocol for alchemiscale HOT 1
- Adapt MPi example with perses at least for protein mutation HOT 1
- Fix potential bug in counterion implementation: get_water_indices()
- Allow user to specify list of atom indices to override default behavior for selecting the REST region
- Support for use of custom force fields (e.g., one generated from openff-bespokefit) HOT 5
- Error with spectator ligands HOT 8
- Allow specification of mapping dictionary in the pipeline
- Update README? HOT 1
- Retrieving exact topology used for an endpoint in a relative transformation HOT 11
- Improved reporting and state detection when passing tautomers as `old_residue`
- IndexError with `_vacdg_history` if there is no vacuum trajectory HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from perses.