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/ml-doping-workflow.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 surface -c input.tomlOr run the complete pipeline:
dopingflow run-all -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.csvwith Plotly
From the project root directory:
streamlit run gui/app.pyAfter launching, a local browser window will open automatically.
.
βββ CHANGELOG.md
βββ docs
β βββ build
β βββ make.bat
β βββ Makefile
β βββ source
β βββ api
β β βββ dopingflow.rst
β β βββ modules.rst
β βββ conf.py
β βββ examples
β β βββ enumerate_screening.rst
β β βββ explicit_batch.rst
β β βββ explicit_single.rst
β β βββ smoke_test.rst
β βββ index.rst
β βββ input_file.rst
β βββ installation_and_usage.rst
β βββ methods
β β βββ bandgap.rst
β β βββ database.rst
β β βββ filtering.rst
β β βββ formation_energy.rst
β β βββ generation.rst
β β βββ references.rst
β β βββ relaxation.rst
β β βββ scanning.rst
β βββ required_inputs.rst
β βββ _static
β β βββ .gitkeep
β β βββ logo.png
β βββ _templates
β βββ workflow_overview.rst
βββ dopingflow-user-guide.pdf
βββ examples
β βββ enumerate_screening
β β βββ input.toml
β β βββ README.md
β βββ explicit_batch
β β βββ input.toml
β β βββ README.md
β βββ explicit_single_composition
β β βββ input.toml
β β βββ README.md
β βββ smoke_test
β βββ input.toml
β βββ README.md
βββ .github
β βββ workflows
β βββ docs.yml
βββ .gitignore
βββ gui
β βββ app.py
β βββ gui_config.py
β βββ io_project.py
β βββ README.md
β βββ requirements-gui.txt
β βββ view_structure.py
βββ input.toml
βββ LICENSE
βββ logo.png
βββ pyproject.toml
βββ README.md
βββ results_database.csv
βββ src
β βββ dopingflow
β β βββ bandgap.py
β β βββ cli.py
β β βββ collect.py
β β βββ filtering.py
β β βββ formation.py
β β βββ generate.py
β β βββ __init__.py
β β βββ logging.py
β β βββ refs.py
β β βββ relax.py
β β βββ scan.py
β β βββ utils
β β βββ io.py
β β βββ parallel.py
β β βββ pymatgen_helpers.py
β βββ dopingflow.egg-info
β βββ dependency_links.txt
β βββ entry_points.txt
β βββ PKG-INFO
β βββ requires.txt
β βββ SOURCES.txt
β βββ top_level.txt
βββ 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
