Open-source software
mofstructure
Python tools for analysing and manipulating metal-organic frameworks and other porous materials.
Projects & products
I build scientific software and work on models that connect materials, experiments and discovery. Here is a closer look at the products and projects behind that work.
Open-source software
Python tools for analysing and manipulating metal-organic frameworks and other porous materials.
Scientific web application
Explore ligand, metal salt and solvent combinations used in MOF synthesis, with linked FAIR-MOFs records.
Scientific data
Curated crystal structures, material descriptors and synthesis information for computational materials research.
Open-source scientific software
I built mofstructure to turn complex framework crystals into structured information that researchers can compare, analyse and use in data-driven studies.
One file or a large collection
Building units · topology · porosity
Structures · identifiers · JSON/CSV
The scientific software challenge
A crystal file contains atomic positions, but researchers still need to work out which ligands and metal clusters form the framework, how the network connects and which pores are accessible. Manual analysis is difficult to reproduce and does not scale well across thousands of materials.
mofstructure automates framework deconstruction and characterisation. It identifies building units, analyses pore geometry, detects open metal sites and fingerprints network topology. It can also generate chemical identifiers for extracted components, turning crystallographic structures into data ready for comparison, databases and machine learning.
A key challenge is periodicity. Molecules can cross unit-cell boundaries, metal coordination can be complex and equivalent structures may use different atom orderings or unit cells. The library reconstructs periodic fragments and compares periodic graphs against around 17,000 reference networks, including RCSR, EPINET and zeolite topologies.
Researchers can process a directory of structures in batches. mofstructure supports incremental processing so interrupted runs can resume without repeating completed analyses. Outputs include extracted structures, SMILES, InChI and InChIKey identifiers, CGD topology files and machine-readable JSON or CSV results.
The Python library builds on ASE, NetworkX, OpenBabel and Zeo++ through pyzeo. RDKit can be used as an alternative for chemical identifiers, with optional Plotly visualisation.
Materials data · Machine learning · Experimental validation
I conceived the project and led its computational and AI development to connect MOF crystal structures with experimental synthesis knowledge.
Curated crystal structure
Graph neural network · literature data
Model-guided experimental validation
The research challenge
MOF synthesis recipes are scattered across papers and reported with different levels of detail. Experimental conditions may be ambiguous or missing. The same framework can also be made by more than one route. This makes it difficult to connect a crystal structure to a reliable synthesis plan.
I designed a structure-centred workflow that combines curated crystal structures, extracted synthesis information and machine learning. A graph neural network predicts key precursors from a MOF structure. A retrosynthetic recommender uses reagent co-occurrence in the literature to suggest compatible synthesis components.
I conceived the research direction, designed the methodology and developed the structural data-processing and machine-learning workflows. I also developed tools for extracting synthesis information from papers, including mofsyncondition, fairmofsyncondition and a chemistry-specific named entity recognition model built with spaCy. The work builds on mofstructure for identifying metal nodes, organic linkers and structural descriptors.
The framework brings together more than 47,000 curated experimentally synthesised MOF structures with synthesis information extracted and standardised from the literature. Structural representations and experimental variables, including reagent concentrations, are used to train and evaluate synthesis-prediction workflows.
In the reported evaluation, adding reagent concentration information increased Top-5 prediction accuracy from about 65% to 77%. In collaboration with experimental researchers, the team used model-proposed conditions to synthesise three previously hypothetical MOFs.
Scientific web application · Synthesis knowledge
I conceived, designed and developed ChemInteraction to make published information about MOF reagents easier to search and explore.
The research challenge
Details about metal salts, organic ligands and solvents are spread across scientific publications. Different names and identifiers make those reports difficult to search consistently. Researchers need a practical way to explore which reagents have been used together and find the materials and papers behind those reports.
ChemInteraction lets a researcher start from a metal salt, ligand or solvent and explore reported reagent combinations. Chemical names, abbreviations and identifiers such as InChIKeys can be used to find compounds. Interactive networks show reagent relationships and their frequency in the curated dataset, with links to chemical properties, suppliers and source literature.
I integrated the platform with FAIR-MOFs so researchers can move from a reagent search to experimentally reported or geometry-optimised MOF records. They can filter structures by composition, building units, topology and measured or calculated properties, inspect related materials, download CIF structures and export search results as CSV.
PubChem integration provides chemical properties and identifiers. Supplier links help users find further information about reagent availability. The underlying FAIR-MOFs data connects crystal structures with curated synthesis information and literature references.
These views summarise what is reported in the dataset. Reagent co-occurrence is evidence of past use, not a guarantee that a combination will work for a new material or produce a particular yield.
Product engineering · Founder
I designed and developed StructSub to bring materials construction, simulation and analysis into one browser-based platform.
The engineering challenge
Researchers often move between specialist programs to build a structure, prepare a calculation and inspect the results. StructSub brings those steps into a connected workspace, so researchers can work from a scientific idea without having to assemble every step by hand.
I developed tools for constructing and editing molecules, peptides, crystals, MOFs, COFs, zeolites and polymers. Researchers can start from chemical names, peptide sequences or framework specifications, then modify structures and run supported analyses.
The platform brings together geometry optimisation, adsorption and diffusion workflows, ion-transport calculations, materials-property analysis and comparison with experimental measurements. Available methods depend on the selected material and calculation.
The browser interface uses JavaScript, HTML, CSS and Three.js for interactive 3D structures. Python and FastAPI provide the scientific APIs and workflow management. The platform integrates scientific libraries including ASE, RDKit and mofstructure.
PostgreSQL and SQLAlchemy support data management, while Clerk handles authentication. The application runs on a self-managed Ubuntu server on Hetzner Cloud.
Open-source software
A Python library for building metal-organic cages and exploring how functional-group arrangements create distinct isomers.
The model we’re developing
PXRD pattern
Learning from diffraction data
Predicted directly from PXRD
Project concept · Model in development
Model development · In progress
We are building a model to predict crystal structures directly from powder X-ray diffraction (PXRD) data.
Further work
Connected projects spanning synthesis prediction, reusable data and computational workflows.
Synthesis prediction
Connecting crystal structures with experimental synthesis recipes. This work combines literature text mining, curated structure–recipe mappings and graph neural networks.
Explore the softwareData infrastructure
MOF data curation, structure correction, geometry optimisation and porosity analysis, including integration into the NOMAD Porosity Normaliser.
Explore the dataOpen-source software
Python tools for structure manipulation, descriptors and high-throughput screening, alongside integrations with ASE, pymatgen and RDKit.
Browse the toolsEnergy storage
Investigating electronic structure, redox-active sites and framework–ion interactions to understand porous materials for battery applications.
Explore mofbatteryMaterials modelling
Studying how functional-group arrangements affect gas uptake, diffusion and selectivity, with topology-controlled comparisons.
Related publicationsWorkflow development
Connecting models, databases and synthesis knowledge, with work toward robotic synthesis and closed-loop materials discovery.
Discuss the workCollaboration
For scientific software, materials modelling or a project you would like to discuss.