Skip to content

A system for rapid identification and analysis of metal-organic frameworks

License

Notifications You must be signed in to change notification settings

aliraza-ece/mofid

 
 

Repository files navigation

MOFid

A system for rapid identification and analysis of metal-organic frameworks. Check out https://snurr-group.github.io/web-mofid/ to quickly and easily run these tools in your browser! No programming skills required.

Please cite DOI: 10.1021/acs.cgd.9b01050 if you use MOFid in your work.

Objective

Supplement the current MOF naming conventions with a canonical, machine-readable identifier to facilitate data mining and searches. Accomplish this goal by representing MOFs according to their nodes + linkers + topology

Requirements

  1. A Python environment is required. If you do not have a Python environment installed, we recommend downloading and installing Anaconda. MOFid is compatible with both Python 2/3.
  2. Make sure you have the following: a C++ compiler, cmake, and access to GNU commands (such as make). These are all typically available on Linux machines. If running on Windows, we recommend using Cygwin and including the cmake, make, wget, gcc-core, gcc-g++, and pkg-config packages in addition to the default options during the Cygwin installation process.
  3. Make sure you have the Java Runtime Environment installed and included in your system's path. If unsure, try running java in the command line to see if it successfully calls Java.

Installation

  1. Run make init in the base /mofid directory.
  2. Run python set_paths.py followed by pip install . in the base /mofid directory. If you encounter permissions errors (typically not with Anaconda), you may need to run pip install --user .

Usage

In a Python script, the user simply has to call the run_mofid.cif2mofid(cif_path,output_path='Output') function. The first argument is required and is the path to the MOF CIF. The second argument is optional and is the directory to store the MOFid decomposition information, which defaults to /Output if not specified. An example of how to call MOFid is shown below.

from mofid.run_mofid import cif2mofid
cif_path = '/path/to/my/mof.cif'
mofid = cif2mofid(cif_path)

The output of the mofid.cif2mofid function is a dictionary containing eight entries: the MOFid (mofid), MOFkey (mofkey), SMILES string (smiles, smiles_nodes, or smiles_linkers), topology (topology), catenation (cat), and basename of the CIF (cifname).

Credits

This work is supported by the U.S. Department of Energy, Office of Basic Energy Sciences, Division of Chemical Sciences, Geosciences and Biosciences through the Nanoporous Materials Genome Center under award DE-FG02-17ER16362.

The MOFid command line and web tools are built on top of other open-source software projects:

About

A system for rapid identification and analysis of metal-organic frameworks

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 63.5%
  • C 20.7%
  • Arc 7.4%
  • Fortran 4.3%
  • CMake 1.4%
  • Python 0.9%
  • Other 1.8%