Closed sstolzenberg closed 8 years ago
@sstolzen007: I'm hoping to implement this feature in the next few days! It should be relatively straightforward. Please see the proposed API in https://github.com/choderalab/alchemy/issues/17 and comment there on what you think would be most useful.
Dear All,
In "AbsoluteAlchemicalFactory(object).init(...), I found the following ToDo: "* Can we specify multiple groups of alchemically-modified atoms that have different alchemical parameters associated with them, like
lambda_sterics_[groupname]
?"It would be very nice to have this feature in the near future to address important questions regarding multiple ligand-binding sites, mutations, etc. I am sure you are very busy developing other parts of the code right now, but how would you envision the implementation of such feature? (I am also asking in hopes of contributing myself after having understood your code a little better).
I could imagine this to be implemented by generalizing the concept of "ligand_atoms" to two separate arrays of atom index sets ("array_of_deleted_index_sets" and "array_of_inserted_index_sets") and optional corresponding arrays of lambda dependencies (each defined as a list of string, e.g., ["lambda_sterics = lambda*_2", "lambdaelectrostatics = (lambda>0.3)(lambda-0.3)/0.7"]), so that users can (i) have a simple lambda-protocol for multiple alchemical transformations (with .addExclusion(...) automatically set between all atom indices in the i-th set of "array_of_deleted_index_sets" and all atoms in the i-th set of "array_of_inserted_index_sets") (ii) if the number of force groups <= 32, be able to manually define different lambda dependencies for each index set.
Please let me know about your thoughts, Thank you, Best, Sebastian