Perform quick sanity checks on your MOF:
- Find open metal sites (OMS) in metal-organic frameworks (MOFs).
- Find atomic overlaps.
- Find overvalent (CN>4) carbons, nitrogens, or hydrogen.
- Check if there is metal, carbon or hydrogen.
- Check if there is floating atoms or molecules.
- Check if there is missing hydrogen on common coordination geometries of C and N.
- Check if there is unusually high EqEq charge on some atom (using openbabel).
- Computes structure graph hashes (to potentially identify duplicates)
The idea is to have nothing to fancy but a fast tool that we can run to eliminate the really unreasonable structures. The code is basically a rewrite of the checking tools that we implemented in structure_comp.
Development version:
pip install git+https://github.com/kjappelbaum/mofchecker.git
Latest stable release
pip install mofchecker
A web app is currently being developed in another repository and deployed on MatCloud.
from mofchecker import MOFChecker
mofchecker = MOFChecker.from_cif(<path_to_cif>)
# Test for OMS
mofchecker.has_oms
# Test for clashing atoms
mofchecker.has_overlapping_atoms
# 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())
For example, you can use
mofchecker <cif> --has-oms
You can get an overview over all options with
mofchecker --help