High-throughput ML-driven doping workflow for materials screening.
dopingflow is a modular CLI pipeline for automated generation,
screening, relaxation, and evaluation of doped crystal structures using
machine-learning interatomic potentials and graph neural networks.
Designed for reproducible, scalable materials discovery workflows.
The full documentation is available in multiple formats:
-
π Online HTML (auto-deployed via GitHub Actions):
https://kazemzh.github.io/dopingflow/ -
π User Guide (PDF):
Download dopingflow User Guide
git clone https://github.com/KazemZh/dopingflow.git
cd ml-doping-workflowconda create -n dopingflow python=3.11
conda activate dopingflow
β οΈ Choose only one backend between M3GNet and UMA. They require incompatible versions ofnumpyandase. Do not install both in the same environment!
pip install -e ".[mace]"pip install -e ".[grace]"pip install -e ".[m3gnet]"pip install -e ".[uma]"Requires Hugging Face access (see setup below).
The UMA backend is provided through FAIR-Chem and requires access to the pretrained UMA models hosted on Hugging Face.
-
Request access to the UMA model repository
https://huggingface.co/facebook/UMA -
Log in to Hugging Face
After access is granted, authenticate in your UMA environment:
hf auth loginpip install -e ".[alignn]"pip install -e ".[gui]"pip install -e ".[mp]"pip install -e ".[dev]"export ALIGNN_MODEL_DIR=/path/to/alignn/modelexport MP_API_KEY=your_api_keyEach stage can be run individually:
dopingflow refs-build -c input.toml
dopingflow generate -c input.toml
dopingflow scan -c input.toml
dopingflow relax -c input.toml
dopingflow filter -c input.toml
dopingflow bandgap -c input.toml
dopingflow formation -c input.toml
dopingflow collect -c input.toml
dopingflow alloy-hull -c input.toml
dopingflow phase-diagram -c input.toml
dopingflow surface -c input.tomlOr run the complete pipeline:
dopingflow run-all -c input.tomlFor gradual composition-by-composition doping, use sequential-run. This reuses the lowest-energy relaxed structure from each composition as the base for the next composition:
dopingflow sequential-run -c input.tomlLogs are written to:
logs/dopingflow.log
Use --verbose for detailed output.
dopingflow provides an optional Streamlit-based graphical user interface for interactive workflow configuration, execution, and results analysis.
The GUI allows you to:
- Build and edit
input.toml - Run workflow stages interactively
- Visualize generated structures
- Explore
results_database.csvand per-system phase-diagram CSVs with Plotly
Relative-energy controls remain inside the existing [formation] section:
[formation]
relative_enabled = true
endpoint_x = "auto"From the project root directory:
streamlit run gui/app.pyAfter launching, a local browser window will open automatically.
.
βββ CHANGELOG.md
βββ docs
β βββ make.bat
β βββ Makefile
β βββ source
β βββ api
β β βββ dopingflow.rst
β β βββ modules.rst
β βββ conf.py
β βββ examples
β β βββ enumerate_screening.rst
β β βββ explicit_batch.rst
β β βββ explicit_single_oxides.rst
β β βββ explicit_single.rst
β β βββ smoke_test.rst
β β βββ sequential_workflow.rst
β βββ index.rst
β βββ input_file.rst
β βββ installation_and_usage.rst
β βββ methods
β β βββ bandgap.rst
β β βββ database.rst
β β βββ filtering.rst
β β βββ formation_energy.rst
β β βββ generation.rst
β β βββ phase_diagram.rst
β β βββ references.rst
β β βββ relaxation.rst
β β βββ sequential.rst
β β βββ scanning.rst
β β βββ surfaces.rst
β βββ required_inputs.rst
β βββ _static
β β βββ .gitkeep
β β βββ logo.png
β βββ _templates
β βββ workflow_overview.rst
βββ dopingflow-user-guide.pdf
βββ examples
β βββ enumerate_screening
β βββ explicit_batch
β βββ explicit_single_composition
β βββ explicit_single_composition_oxide_reference
β βββ smoke_test
β βββ surface_creation
βββ .github
β βββ workflows
β βββ docs.yml
βββ .gitignore
βββ gui
β βββ app.py
β βββ gui_config.py
β βββ io_project.py
β βββ README.md
β βββ view_structure.py
βββ input.toml
βββ LICENSE
βββ logo.png
βββ pyproject.toml
βββ README.md
βββ src
β βββ dopingflow
β βββ bandgap.py
β βββ cli.py
β βββ collect.py
β βββ filtering.py
β βββ formation.py
β βββ generate.py
β βββ hardware.py
β βββ __init__.py
β βββ logging.py
β βββ ml_backends.py
β βββ ml_relaxation.py
β βββ phase_diagram.py
β βββ refs.py
β βββ relax.py
β βββ scan.py
β βββ sequential.py
β βββ surface.py
β βββ utils
β βββ io.py
β βββ parallel.py
β βββ pymatgen_helpers.py
βββ tests
βββ test_cli_help.py
βββ test_cli.py
βββ test_generate_minimal.py
βββ test_imports.py
Proprietary and confidential.
Β© 2026 Kazem Zhour
RWTH Aachen University
Unauthorized use, modification, or distribution is prohibited.
Kazem Zhour
RWTH Aachen University
