CoRE MOF Tools is the Python interface accompanying the CoRE MOF database. It provides database lookup and structure download, CIF curation and validation, geometric and chemical descriptors, and pretrained property models.
The package combines pure-Python functions with optional external software. Run the installation check before starting:
coremof doctor
# or: python -m CoREMOF doctorPython 3.9–3.11 is supported. A clean conda environment is recommended because several scientific dependencies contain compiled extensions.
conda create -n coremof python=3.11
conda activate coremof
pip install CoREMOF-tools
coremof doctorTo reproduce the repository environment, use:
conda env create -f env.yaml
conda activate coremof_toolsSome features require additional software:
| Feature | Additional requirement |
|---|---|
| Zeo++ pore geometry | conda install -c conda-forge zeopp-lsmo |
| CSD structure download and MOSAEC | Licensed CSD software and CSD Python API |
| MOFChecker | pip install git+https://github.com/Au-4/mofchecker_2.0.git@main |
| MOFid v1/v2 | MOFid installation and Open Babel |
| Crystal topology | Julia/CrystalNets through juliacall; the first call may install Julia packages |
| Heat-capacity prediction | Full repository checkout containing the ~1.3 GB ensemble model directory |
from CoREMOF.structure import information
record = information("CR-ASR", "2020[Cu][sql]2[ASR]1")
print(record)Valid datasets are CR-ASR, CR-FSR, CR-Ion, and NCR. Invalid dataset or entry names now raise an error with valid choices or close matches.
from CoREMOF.calculation import Zeopp
diameters = Zeopp.PoreDiameter("my_mof.cif")
print(diameters["LCD"], diameters["PLD"], diameters["unit"])
surface_area = Zeopp.SurfaceArea(
"my_mof.cif",
chan_radius=1.86,
probe_radius=1.86,
num_samples=10_000,
)
print(surface_area["ASA"])Zeo++ calls use unique temporary files and are safe for paths containing spaces and for concurrent workflows. Set COREMOF_NETWORK_EXECUTABLE if the executable is not named network.
from CoREMOF.curate import preprocess
job = preprocess("my_mof.cif", output_folder="result_curation")
print(job.result_check)The curation classes write CIF/JSON/CSV outputs to the requested output directory. They do not return the processed CIF in memory.
from CoREMOF.prediction import pacman, stability
charge_result = pacman("my_mof.cif", output_folder="result_pacman")
stability_result = stability("my_mof.cif")stability() additionally calls Zeo++ and RAC descriptors. Check all requirements with coremof doctor before running it.
| Task | Module | Main entry point |
|---|---|---|
| Database lookup | CoREMOF.structure |
information() |
| SI/CSD structure download | CoREMOF.structure |
download_from_SI, download_from_CSD() |
| Zeo++ geometry | CoREMOF.calculation.Zeopp |
PoreDiameter(), SurfaceArea(), PoreVolume() |
| Basic descriptors | CoREMOF.calculation.mof_features |
SpaceGroup(), Mass(), Volume(), n_atom() |
| Topology, OMS, RACs | CoREMOF.calculation.mof_features |
topology(), get_oms_file(), RACs() |
| CIF curation | CoREMOF.curate |
preprocess, clean, clean_pacman |
| Structural validation | CoREMOF.curate |
mof_check, run_MOSAEC(), run_mofclassifier() |
| Property models | CoREMOF.prediction |
pacman(), cp(), stability() |
| MOF identifiers | CoREMOF.get_mofid |
run_v1(), run_v2() |
Full guides and API documentation are available on Read the Docs. Executable notebooks and CIF examples are in examples/.
If you use the database or toolkit, cite:
Zhao G., Brabson L., Chheda S., Huang J., Kim H., Liu K., et al. “CoRE MOF DB: a curated experimental metal–organic framework database with machine-learned properties for integrated material-process screening.” Matter 8 (2025), 102140. https://doi.org/10.1016/j.matt.2025.102140
Also cite the underlying method used in your workflow (for example Zeo++, PACMAN-charge, MOFClassifier, MOFChecker, MOSAEC, CrystalNets, or the relevant stability model). A method-by-method list is provided in the documentation.
- Report reproducible bugs through GitHub Issues.
- Include
coremof doctoroutput, Python version, operating system, a minimal code example, and—when shareable—the failing CIF. - Developed by Guobin Zhao at MTAP, Pusan National University.
