Skip to content

annahehn/mofchecker

 
 

Repository files navigation

mofchecker

Python package codecov Documentation Status PyPI - Python Version

What does it do?

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.

Installation

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.

Usage

In Python

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())

CLI

For example, you can use

mofchecker <cif> --has-oms

You can get an overview over all options with

mofchecker --help

About

Basic sanity checks for MOFs.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%