FUCrIMODo is a scientific framework for recovering atomic structures from machine-learning descriptors. It is built around a novel multi-stage Genetic Algorithm (GA). The method and program are introduced in this publication. FUCrIMODo comes with an inversion algorithm for the global SOAP descriptor out of the box, and more descriptors are on the way or can be added by you!
Table of Contents
- Requirements
- Install
- Tutorials
- Documentation
- Roadmap
- Contact
- Authors and acknowledgment
- License
- Citation
Requirements
- Python 3.12 or later
- Numpy (Handle arrays and calculations.)
- Pandas (Handle data.)
- DEAP (GA framework.)
- ASE-GA (Atomic structure GA Framework.)
- Atomic Simulation Environment (ASE)(Atomic structure framework.)
- PyXtal (Atomic structure sampling.)
- MatID (Perform Atomic symmetry operations.)
- DScribe (Descriptor calculator.)
- Click (CLI backend.)
- Matplotlib (2D Plotting.)
Install
To install the latest release:
pip install fucrimodo
Or to install the development version:
pip install git+git@github.com:OHANAN1/fucrimodo.git
For more detailed instructions, including setup with uv and conda, please refer to the documentation.
Tutorials
Use fucrimodo CLI
To use fucrimodo as a cli you need to set up a fucrimodo_lab. The
fucrimodo_lab is a human-readable database that allows you to manage
configurations, data, analysis and more. To set it up, go to a desired
directory (ideally outside the library's git structure) and run:
fucrimodo lab init
This creates a directory called fucrimodo_lab and sets up the required directory structure. Example raw data is provided so you can perform test runs. Please set it up and refer to the README.md file inside the lab for more info.
Use fucrimodo as a library
To learn how to configure the CLI tool or use fucrimodo as a library, you can work through this Jupyter notebook tutorial. Also refer to the documentation for more details.
Documentation
The documentation is hosted at read the docs. It includes additional tutorials and documents the API of fucrimodo.
To build it yourself, first install the dependencies:
pip install ".[docs]"
Now an HTML version of the docs can be generated:
cd docs/
make html
The docs will be generated at _build/html/ and can then be opened with the browser of your choice. E.g.:
qutebrowser _build/html/index.html
Roadmap
- Implement and test additional descriptors types
- Implement new Stage types
-
ParallelGAStage(Run multiple GA stages parallel.) -
SwarmSearchStage(Use a swarm search for the ideal descriptor.) -
GradientDescentStage(Follow the descriptor gradients.)
-
- Improve current default run configuration for bigger structures
- Add a proper way to update
fucrimodo_labdefaults without overwriting existing defaults.
Contact
- GitHub issues: https://github.com/OHANAN1/fucrimodo/issues
- Email: louis.boehm@gmx.de
Authors and acknowledgment
- Main Author: Louis Böhm
- Co-Author: Martin Kuban
License
The program is licensed with the Apache 2.0 license.
Citation
If you use this program in a scientific publication please add the following citation: (This is the preprint)
@article{FUCrIMODo_Boehm_2026,
author = {Boehm, Louis and Kuban, Martin and Draxl, Claudia},
eprint = {2608.23381v1},
eprintclass = {cond-mat.mtrl-sci},
eprinttype = {arxiv},
title = {FUCrIMODo: structure recovery from atomistic descriptors via multi-stage genetic algorithms},
month = {8},
year = {2026},
url = {http://arxiv.org/abs/2608.23381v1},
}
Little Reward
As a reward that you read the complete README.md file you can now look at this cute ASCII-Art. :D
(\{\ . ,@@@@
{ { \ ,~, ^ . ~ __ _ ),\\(\ _,::;
{ \|`) <*> + o------o .)\)\\_(((\),:::::;
{ { /(\ /~ /| /| `\`._,)))))::::::`,
{/{/; ,\/ o------o | `.__/(((:::::::'
[[ ' | | | | \ (`:::::::.
\` \ | o----+-o @**\ `:::::;
(/ \\ |/mlp |/ / \ `::'
ejm `) `\ o------o '*~*~*~`
| //
\ \\
`.\\
\((
` ` hjw
(I will be a human, too!~Ponyo)
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fucrimodo-1.0.0.tar.gz.
File metadata
- Download URL: fucrimodo-1.0.0.tar.gz
- Upload date:
- Size: 92.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5646cee0c9ac4b21cf6866cc0cee3468f21ffef76e1fa2d358c5af36a00b018f
|
|
| MD5 |
8c4265ac4ceec215a32503829ce9b5d2
|
|
| BLAKE2b-256 |
74bf3936b2bc20f9dc5b88a56b4d4428e8cf426726ef84c6f76ecd680f64b0b4
|
File details
Details for the file fucrimodo-1.0.0-py3-none-any.whl.
File metadata
- Download URL: fucrimodo-1.0.0-py3-none-any.whl
- Upload date:
- Size: 120.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31f279e1f8a669432ff43f95e978675457b4950d73707d349aae17f8f6da83f2
|
|
| MD5 |
a2f2a078f22201836c47cc6d229aff5d
|
|
| BLAKE2b-256 |
95e52f365ae4b6ac599f0ad526fdb792ae1a4012f230cf46ebcec66adc03f157
|