Comments (3)
My current hacky workaround:
def to_interchange(ff, top):
inter = openff.interchange.Interchange.from_smirnoff(ff, top)
for col_k, col_v in inter.collections.items():
for pot_k, pot_v in col_v.potentials.items():
if " " not in pot_k.id:
handler = ff[pot_k.associated_handler]
param = handler[pot_k.id]
else:
smirks, lp, match = pot_k.id.split(" ")
handler = ff["VirtualSites"]
(param,) = handler.get_parameter(
{"smirks": smirks, "name": lp, "match": match}
)
if not hasattr(param, "_cosmetic_attribs"):
continue
for attr in param._cosmetic_attribs:
pot_v.parameters[attr] = getattr(param, f"_{attr}")
return inter
from openff-interchange.
Seems fair, I don't use cosmetic attributes so this never occurred to me.
I figure the last loop in that block of code should do the trick, and having it turned on by default makes sense
from openff-interchange.
@SimonBoothroyd Looking at this more closely now - does it make sense to have it on the Potential
or PotentialKey
object? Right now Potential.parameters
really only stores the stuff that describes the physics of the interaction, whereas i.e. stuff like parameterize_eval
shoved in for ForceBalance's accounting seem like things that better live on pointers to those objects. I'm not sure if such a physics vs. bookkeeping distinction holds for other use cases.
from openff-interchange.
Related Issues (20)
- Update GROMACS portion of ligand example
- Loading topologies from OpenMM sometimes scrambles atom order HOT 2
- Electrostatics key mismatch after combination HOT 3
- Positions of `MonovalentLonePair` virtual sites is incorrect (does not affect simulations) HOT 1
- Virtual site parameters can clash if looked up using only SMIRKS HOT 4
- `experimental/openmmforcefields/gaff.ipynb` and `ligand_in_water.ipynb` notebooks broken on OpenFF Docs HOT 1
- units for `Interchange.collection['Bonds'].get_system_parameters()` HOT 2
- Support GROMACS's `3fad` virtual sites
- `get_positions_with_virtual_sites` does not collate virtual sites with molecules HOT 1
- Some combinations of Interchanges do not commute HOT 2
- Improved LAMMPS support. HOT 1
- LAMMPS versions prior to 2023.08.02 are incompatible with Interchange, but may be installed with it HOT 2
- Interchange.to_gromacs() creates a topology with far too many atomtypes, which influences GROMACS performance HOT 4
- Syncing topology and `Interchange` attributes
- Easier indexing into collections
- Look into ordering of charge dictionary
- Combining a Sage interchange with one loaded from OpenMM fails because the electrostatics cutoff is not set by the OpenMM importer, but is checked by the `combine` method HOT 1
- GROMACS writer chokes without unique molecule names HOT 5
- `experimental/openmmforcefields/gaff.ipynb` is failing on openff-docs HOT 3
- Dihedrals lost in `Interchange.from_gromacs` HOT 1
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 openff-interchange.