Encode chemical elements numerically and decode numerical representations of elements.
from element_coder import encode, decode
decode(encode('Si', 'mod_pettifor'), 'mod_pettifor')
>'Si'
The element_coder.encode
and element_coder.decode
command line tools are automatically installed. They can
be used from the shell with the --help
flag to show help:
$ element_coder.encode H
102
$ element_coder.decode 102
H
also works for vector-valued encodings
$ element_coder.decode 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 --property cgcnn
H
The most recent release can be installed from PyPI with:
$ pip install element_coder
The most recent code and data can be installed directly from GitHub with:
$ pip install git+https://github.com/kjappelbaum/element-coder.git
To install in development mode, use the following:
$ git clone git+https://github.com/kjappelbaum/element-coder.git
$ cd element-coder
$ pip install -e .
For some applications (of ML in chemistry) elements must be numerically encoded. There are many libraries that do that. For most applications, even pymatgen can get the job done:
from pymatgen.core import Element
def encode_element(element: Element, property: str):
return getattr(element, property)
However, this code has some issues, wherefore there are many other libraries that attempt to solve this issue including mendeleev, elementy, EIMD. However,
Contributions, whether filing an issue, making a pull request, or forking, are appreciated. See CONTRIBUTING.rst for more information on getting involved.
The code in this package is licensed under the MIT License.
This package was created with @audreyfeldroy's cookiecutter package using @cthoyt's cookiecutter-snekpack template.