Perform sanity checks for MOFs.
Project description
mofchecker
What does it do?
mofchecker
performs quick sanity checks on crystal structures of metal-organic frameworks (MOFs).
Try the live web app at https://github.com/kjappelbaum/webmofchecker !
Sanity checks:
- Presence of at least one metal, carbon and hydrogen atom
- Overlapping atoms (distance between atoms above covalent radius of the smaller atom)
- Overvalent carbons (coordination number above 4), nitrogens (heuristics), or hydrogens (CN > 1)
- Missing hydrogen on common coordination geometries of C and N (heuristics)
- Atoms with excessive EQeq partial charge
Basic analysis:
- Presence of floating atoms or molecules
- Hash of the atomic structure graph (useful to identify duplicates)
The sanity checks can be used to weed out really unreasonable structures (nothing too fancy). The code is a rewrite of similar tools in structure_comp.
🚀 Installation
Development version:
pip install git+https://github.com/kjappelbaum/mofchecker.git
Latest stable release
pip install mofchecker
Note that you need to install zeopp if you want to use the porosity features.
conda install -c conda-forge zeopp-lsmo
A web app is currently being developed in another repository and deployed on MatCloud.
💪 Getting Started
Command line interface
mofchecker --help # list options
mofchecker structure1.cif structure2.cif # prints JSON output
mofchecker -d has_metal -d has_atomic_overlaps *.cif # compute only selected descriptors
In Python
from mofchecker import MOFChecker
mofchecker = MOFChecker.from_cif(<path_to_cif>)
# or: MOFChecker(structure=my_pymatgen_structure)
# Test for OMS
mofchecker.has_oms
# Test for clashing atoms
mofchecker.has_atomic_overlaps
# Run basic checks on a list of cif paths (sample_structures)
results = []
for structure in sample_structures:
mofchecker = MOFChecker.from_cif(structure)
results.append(mofchecker.get_mof_descriptors())
👐 Contributing
Contributions, whether filing an issue, making a pull request, or forking, are appreciated. See CONTRIBUTING.rst for more information on getting involved.
⚖️ License
The code in this package is licensed under the MIT License.
💰 Funding
The research was supported by the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement 666983, MaGic), by the NCCR-MARVEL, funded by the Swiss National Science Foundation, and by the Swiss National Science Foundation (SNSF) under Grant 200021_172759.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mofchecker-0.9.6.tar.gz
.
File metadata
- Download URL: mofchecker-0.9.6.tar.gz
- Upload date:
- Size: 8.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc97b9a4a9ce04220759a3918e9a4600c6f00d7e81fdf7e4219f44e782371325 |
|
MD5 | 669fe85a7c0f475f13babd160c9d444a |
|
BLAKE2b-256 | 70e182b266ff16469847be52653f57b19bb6e7b7b4d1188223bf669687166b33 |
File details
Details for the file mofchecker-0.9.6-py3-none-any.whl
.
File metadata
- Download URL: mofchecker-0.9.6-py3-none-any.whl
- Upload date:
- Size: 5.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b86eca0f29cc8649689c04d5798a60e1340e927b8f5ce7e8ab1f6e74178eae20 |
|
MD5 | 88f0345ad9c7ecdb51ab5b32b5533033 |
|
BLAKE2b-256 | 5a63c1f6ef02e3809048cfefba0b99f966f5f8f6b2b556d1d059c78f34884130 |