oximachinerunner
Installation
On macOS you need to run brew install libomp first to enable multithreading for the XGBoost library.
Ideally, you install everything in a clean environment, e.g., using conda
conda create -n test_oximachine_runner python=3.7 -y
Then activate with conda activate test_oximachine_runner.
Latest stable release
pip install oximachinerunner
Note that the installation requires significant (>500 MB) storage space since the ensembles use k-nearest neighbors models.
Development version
pip install git+https://github.com/kjappelbaum/oximachinerunner.git
Usage
Loading the model
from oximachinerunner import OximachineRunner
runner = OximachineRunner()
The OximachineRunner can be initialized with a modelname from runner.available_models.
By default, models will be automatically downloaded (upon first use) if there are not yet in the correct folder:
/Users/kevinmaikjablonka/opt/miniconda3/envs/test_oximachine_runner/lib/python3.7/site-packages/oximachinerunner/assets/all_202000830/classifier.joblib are not exist or md5 is wrong.
Download file from https://www.dropbox.com/s/lc2z4abaycjbbe1/classifier.joblib?dl=1
2.9% of 527.44M
To disable this behavior of, set OximachineRunner(automatic_download=False) and manually download your model, e.g. using a function from the utils module.
Predicting oxidation states
The run_oximachine function accepts pymatgen.Structure, ase.Atoms and str as well as os.PathLike.
The latter two are expected to be paths to a file that is then parsed with pymatgen.
runner.run_oximachine('oximachinerunner/assets/ACODAA.cif')
The function prints for how many sites it will run the model.
featurize.py: iterating over 6 metal sites
It returns an OrderedDict with the fields:
metal_indices: A list of indices of the metal sitesmetal_symbols: A list of symbols of the metal atomsprediction: A list of oxidation state predictionsmax_probabs: For each metal site the maximum confidence of all 4 models.base_predictions: For each metal site a list of the oxidation state predictions for each of the 4 models.
Development setup
git clone https://github.com/kjappelbaum/oximachinerunner
pip install -e .[dev]
Reference
Jablonka, Kevin Maik; Ongari, Daniele; Moosavi, Seyed Mohamad; Smit, Berend (2020): Using Collective Knowledge to Assign Oxidation States. ChemRxiv. Preprint. https://doi.org/10.26434/chemrxiv.11604129.v1
Metadata
Release files for oximachinerunner 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| oximachinerunner-1.4.0.tar.gz | 30.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| oximachinerunner-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.3 kB
Release files / oximachinerunner-1.4.0.tar.gz
| Download URL | oximachinerunner-1.4.0.tar.gz |
|---|---|
| Size | 30.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
854d5e0f2adcd87ae75448a05598cfd6392eb3719e72e0d7451e9ddaf6dd799b
|
|
BLAKE2b-256 checksum How to use checksums |
e2ec66600da6db37da6a85f0701bc50665994206cf6815c5f0987c0639069cd3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.6.0.post20201009 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.0
|
Release files / oximachinerunner-1.4.0-py3-none-any.whl
| Download URL | oximachinerunner-1.4.0-py3-none-any.whl |
|---|---|
| Size | 16.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
977054c1bef5e871c198d8a11ed9afb4a2aa33f254b8e2fecbbc69523a286961
|
|
BLAKE2b-256 checksum How to use checksums |
00a3546d194dffc8305c876699e5c39d66ebf44bc0448cab939b893bbe841d76
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.6.0.post20201009 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.0
|