Standalone charge assignment from Espaloma framework. https://doi.org/10.1039/D2SC02739A
We recomend installing espaloma_charge
via conda-forge:
$ mamba create -n espaloma -c conda-forge espaloma_charge
If you plan on using openff-toolkit
, then install that as well when creating your espaloma_charge
environment for optimal dependency solving:
$ mamba create -n espaloma -c conda-forge espaloma_charge openff-toolkit
We also have espaloma_charge
on pypi, but the dgl
dependency must be installed first.
# First create a conda env with mamba, conda, or micromamba
$ mamba create -n espaloma -c conda-forge dgl==1.1.2 pip python
$ mamba activate espaloma
$ pip install espaloma_charge
Option0: Assign charges to rdkit molecule.
>>> from rdkit import Chem; from espaloma_charge import charge
>>> molecule = Chem.MolFromSmiles("N#N")
>>> charge(molecule)
array([0., 0.], dtype=float32)
Assign charges to your favorite molecule in
Option1: Use with openff-toolkit
(installation required)
>>> from openff.toolkit.topology import Molecule
>>> from espaloma_charge.openff_wrapper import EspalomaChargeToolkitWrapper
>>> toolkit_registry = EspalomaChargeToolkitWrapper()
>>> molecule = Molecule.from_smiles("N#N")
>>> molecule.assign_partial_charges('espaloma-am1bcc', toolkit_registry=toolkit_registry)
>>> molecule.partial_charges
<Quantity([0. 0.], 'elementary_charge')>
Option2: Use as Command Line Interface to write antechamber
-compatible charges.
$ espaloma_charge -i in.mol2 -o in.crg
$ antechamber -fi mol2 -fo mol2 -i in.mol2 -o out.mol2 -c rc -cf in.crg
If you are using this little tool in your pipeline, please consider citing:
@Article{D2SC02739A,
author ="Wang, Yuanqing and Fass, Josh and Kaminow, Benjamin and Herr, John E. and Rufa, Dominic and Zhang, Ivy and Pulido, Iván and Henry, Mike and Bruce Macdonald, Hannah E. and Takaba, Kenichiro and Chodera, John D.",
title ="End-to-end differentiable construction of molecular mechanics force fields",
journal ="Chem. Sci.",
year ="2022",
volume ="13",
issue ="41",
pages ="12016-12033",
publisher ="The Royal Society of Chemistry",
doi ="10.1039/D2SC02739A",
url ="http://dx.doi.org/10.1039/D2SC02739A"}
@misc{https://doi.org/10.48550/arxiv.2302.06758,
doi = {10.48550/ARXIV.2302.06758},
url = {https://arxiv.org/abs/2302.06758},
author = {Wang, Yuanqing and Pulido, Iván and Takaba, Kenichiro and Kaminow, Benjamin and Scheen, Jenke and Wang, Lily and Chodera, John D.},
keywords = {Machine Learning (cs.LG), Chemical Physics (physics.chem-ph), FOS: Computer and information sciences, FOS: Computer and information sciences, FOS: Physical sciences, FOS: Physical sciences},
title = {EspalomaCharge: Machine learning-enabled ultra-fast partial charge assignment},
publisher = {arXiv},
year = {2023},
copyright = {Creative Commons Attribution 4.0 International}
}