Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kjappelbaum/mofchecker
Basic sanity checks for MOFs.
https://github.com/kjappelbaum/mofchecker
mofs oms sanity-checks
Last synced: about 1 month ago
JSON representation
Basic sanity checks for MOFs.
- Host: GitHub
- URL: https://github.com/kjappelbaum/mofchecker
- Owner: kjappelbaum
- License: mit
- Created: 2020-07-03T14:28:56.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-06-17T05:16:41.000Z (over 1 year ago)
- Last Synced: 2024-09-08T01:48:40.405Z (4 months ago)
- Topics: mofs, oms, sanity-checks
- Language: Python
- Homepage: https://mofchecker.readthedocs.io/en/latest/background.html
- Size: 8.82 MB
- Stars: 21
- Watchers: 3
- Forks: 4
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.rst
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
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](https://pubs.acs.org/doi/10.1021/jz3008485)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](https://github.com/kjappelbaum/structure_comp).## π Installation
Development version:
```bash
pip install git+https://github.com/kjappelbaum/mofchecker.git
```Latest stable release
```bash
pip install mofchecker
```Note that you need to install [zeopp](https://anaconda.org/conda-forge/zeopp-lsmo) if you want to use the porosity features.
```bash
conda install -c conda-forge zeopp-lsmo
```
A web app is currently being developed [in another repository](https://github.com/kjappelbaum/webmofchecker) and deployed on [MatCloud](http://mofchecker.matcloud.xyz/).
## πͺ Getting Started
### Command line interface
```bash
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
```python
from mofchecker import MOFChecker
mofchecker = MOFChecker.from_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](https://github.com/kjappelbaum/mofchecker/blob/master/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](https://cordis.europa.eu/project/id/666983)), by the [NCCR-MARVEL](https://www.nccr-marvel.ch/), funded by the Swiss National Science Foundation, and by the Swiss National Science Foundation (SNSF) under Grant 200021_172759.