mofstructure documentation¶
Introduction¶
mofstructure takes a crystal structure and answers the questions that usually follow: what it is built from, how porous it is, and what net it forms. It works on metal-organic frameworks, covalent organic frameworks and zeolites, reading CIF or any other format ASE handles.
Key Features of mofstructure¶
The mofstructure module includes a variety of features that simplify common operations and enhance the workflow for users working with MOFs and similar materials. Some of the key functionalities include:
Identify the net of a framework:
The module names the underlying net from an archive of RCSR symbols, IZA zeolite framework-type codes and EPINET nets, and computes a canonical key that identifies the net whether or not any archive names it. The key is unchanged by supercell, atom order or choice of origin, so it can be stored as a database handle.
Computation of Geometric Properties of MOFs:
mofstructure integrates seamlessly with the zeo++ software in the background to enable quick and accurate computation of all porosity-related properties. Users can easily obtain essential metrics such as Pore Limiting Diameter (PLD), Largest Cavity Diameter (LCD), Accessible Surface Area (ASA), and other geometric characteristics critical to the analysis of MOFs.
Automated Removal of Unbound Guest Molecules:
The module offers an automated process for identifying and removing unbound guest molecules from the framework. This feature is particularly useful when preparing structures for simulations or other computational analyses where the presence of unbound molecules could skew results.
Deconstruction of Metal-Organic Frameworks into Building Units:
mofstructure allows users to deconstruct MOFs into their constituent building units, including organic ligands, metal clusters, organic secondary building units (SBUs), and metal SBUs. For each building unit, the module computes important cheminformatic identifiers such as SMILES strings, InChI, and InChIKey. Additionally, it identifies the type of metal SBU and determines the coordination number of the central metal atom, which is crucial for understanding the structural properties of the framework.
Determination of open metal sites (OMS) in MOFs:
The module can identify and characterize open metal sites within MOF structures. This is particularly important for applications such as catalysis, where the presence of OMS can significantly influence the material’s performance.
Wrapping Systems Around Unit Cells to Remove the Effect of Periodic Boundary Conditions (PBC):
When visualizing CIF files or converting CIF files to XYZ format, systems may appear uncoordinated due to the effects of periodic boundary conditions. mofstructure provides a solution by wrapping systems around their unit cells, ensuring a more accurate and visually coherent representation of the structure.
Separation of Building Units into Regions:
This feature is essential for users who need to substitute specific ligands or building units within a framework. By separating building units into distinct regions, mofstructure enables targeted modifications, allowing for precise customization of the framework’s properties.
Contents:
- Installation
- Quick Start Guide
- Running on the Command Line
- Using mofstructure as a Library
- How to Guide
- Quick Start Guide
- Reading Structures
- Removing Guest Molecules
- Deconstruction: Building Units
- Topology Analysis
- Porosity Analysis
- Open Metal Sites (OMS)
- Run on the Command Line
- Processing Multiple CIF Files
- Use as a Library
- API Reference
- MOF Structure
- MOF Deconstructions
cheminformatics_backend()transition_metals()is_metal()is_alkali()inter_atomic_distance_check()inter_atomic_distance_check2()inter_atomic_distance_iterative()covalent_radius()ase_2_xyz()obmol_2_rdkit()compute_inchis()compute_smi()saturate_open_valences()name_lookup_keys()lookup_iupac_name()ase_2_pybel()max_index()compute_openbabel_cheminformatic()compute_cheminformatic()compute_cheminformatic_from_rdkit()get_neighbour_bond_matrix()compute_ase_neighbour()compute_ase_neighbour_with_offsets()matrix2dict()dfsutil_graph_method()longest_list()remove_unbound_guest_and_return_unique()remove_unbound_guest()connected_components_recursive()dfs_iterative()connected_components_iterative()connected_components()check_planarity()metal_in_porphyrin()metal_in_porphyrin2()move2front()find_carboxylates()find_nitroxylates()find_carbonyl_sulphate()find_sulfides()find_phosphite()find_COS()find_phosphate()get_bond_shift()secondary_building_units()rings_and_atom_ring_lookup()is_atom_in_ring()ligands_and_metal_clusters()is_rodlike()all_ferrocene_metals()is_ferrocene()is_paddlewheel()is_paddlewheel_with_water()is_uio66()is_irmof()is_mof32()rod_manipulation()find_unique_building_units()metal_coordination_number()metal_coordination_enviroment()mof_regions()wrap_systems_in_unit_cell()angle_tolerance_to_rad()find_key_or_value()
- Computing Porosity
- Computing stacking in 2D systems and inter-layer height
- Topological Analysis
remove_broken_bonds_from_breaking_pairs()component_atom_images()component_self_translations()kept_bond_graph()base_edges_with_shifts()component_has_transition_metal_not_in_porphyrin()regions_with_metal()cgd_from_region_targets()dedup_periodic_edges()periodic_graph_cgd()coordination_contacts()ligand_cluster_incidences()ligand_cluster_graph()splice_two_connected_nodes()ZEOLITE_T_ELEMENTSzeolite_t_edges()cgd_zeolite()cgd_ligand_cluster()sbu_drawing_graph()ligand_cluster_fingerprint()cgd_all_nodes()cgd_single_nodes()net_geometry()drawing_periodic_edges()TopologyExtractorbuild_argparser()main()
- Topology Identification
- Periodic Net Analysis
- Updates Version 0.1.9.1
- Updates Version 0.1.9.0
- Updates Version 0.1.8.9
- Updates Version 0.1.8.7
- Updates Version 0.1.8.6
- Updates Version 0.1.8.3
- Updates Version 0.1.8.2
- Updates Version 0.1.8.1
- Updates Version 0.1.8
- Updates Version 0.1.7
- Updates Version 0.1.6
- Updates Version 0.1.5
- Updates Version 0.1.4
Support¶
The module does more than this guide covers. If you are stuck, or need a quantity that is not yet available, please open an issue on GitHub or email bafgreat@gmail.com.
Roadmap¶
Substitute building units in a MOF to enable framework functionalisation
Topological analysis of metal-organic cages and other discrete assemblies