openforcefield / open-forcefield-tools

Tools for open forcefield development
MIT License
8 stars 6 forks source link

Add an ipython notebook example of generating libraries from fragments #22

Closed davidlmobley closed 7 years ago

davidlmobley commented 7 years ago

This adds an example I worked up for SMIRFF testing which generates a large library of molecules from substructure SMILES strings using SMIRKS for reactions.

It follows a trick Christopher Bayly explained to me, using dummy atoms to cap SMILES strings for fragments, then using SMIRKS pattern matching to create artificial "reactions" which remove these dummy atoms and link the connected fragments together. This allows easy and straightforward generation of combinatorial libraries containing specific substructures.

I expect this approach will likely be useful for generating molecules for QM reference calculations in the future. Specifically, if we find that we need more QM reference data on molecules containing a specific substructure SMIRKS (perhaps we've got JUST enough data to suggest a specific substructure needs a new parameter, but not enough data to pin this down well) we can easily use this type of approach to generate a large library of compounds containing that substructure in various environments for additional QM reference calculations.

This particular example notebook at present focuses only on the space of AlkEthOH plus phenyl.

davidlmobley commented 7 years ago

(Merging, since this only contains an IPython notebook and does not contain anything which is tested. And tests on this repo fail anyway while waiting for #20 ).