Alina Zhidkovskaya and Evgeny Blokhin
Tilde Materials Informatics and Materials Platform for Data Science LLC
dft-organizer is a command-line tool to manage data from density functional theory calculations using CRYSTAL and FLEUR engines.
It automates:
- Archiving calculation directories with 7z compression
- Parsing output files to generate detailed error reports and CSV summaries
- Cleaning up original calculation directories after archiving
It also supports unpacking 7z archives and restoring archived calculation directories recursively, with optional AiiDA UUID tracking.
Requires Python ≥ 3.11
Dependencies:
- click ≥ 8.1
- pandas
- 7z (command-line tool)
Install via pip:
pip install .
dft-pack --path <directory_path> [--report|--no-report] [--aiida|--no-aiida]
--pathPath to the calculation directory--reportGenerate error report and summary (default)--no-reportSkip report generation--aiidaExtract UUID from AiiDA directory structure--no-aiidaDo not extract UUID
Creates:
<directory_name>.7zreport_crystal_<timestamp>.txtand/orreport_fleur_<timestamp>.txtsummary_<timestamp>.csv
dft-unpack --path <archive_or_directory_path> [--report|--no-report] [--aiida|--no-aiida]
--pathPath to a .7z archive or directory with archives--reportGenerate summary and error reports after extraction (default)--no-reportSkip report generation--aiidaExtract UUID from AiiDA directory structure--no-aiidaDo not extract UUID
Creates under parent directory:
summary_<timestamp>.csvreport_crystal_<timestamp>.txtreport_fleur_<timestamp>.txt
dft-report --path <directory_path> [--aiida|--no-aiida]
--pathRoot directory containing calculations--aiidaExtract UUID from AiiDA directory structure--no-aiidaDo not extract UUID
Creates under parent directory:
summary_<timestamp>.csvreport_crystal_<timestamp>.txtreport_fleur_<timestamp>.txt
from pathlib import Path
from dft_organizer.archiver import archive_and_remove
archive_and_remove(
Path("./my_calc_dir"),
engine="crystal",
make_report=True,
aiida=True
)
from pathlib import Path
from dft_organizer.re_archiver import restore_archives_iterative
restore_archives_iterative(
Path("./archive_dir.7z"),
engine="crystal",
generate_reports=True,
aiida=True
)
Generate report for a specific calculation UUID:
dft-pack report \
--path aiida_playground_data \
--uuid 0ea8a6be-7199-4c3e-9263-fae76e8d081e \
--engine crystal
Output files:
summary_uuid_<uuid>_<timestamp>.csverrors_uuid_<uuid>_<timestamp>.txt
bandgapBand gap valuecpu_timeCPU timetotal_energyTotal energys_pop,p_pop,d_popMulliken populationstotal_popTotal populationoutput_pathFull path to OUTPUT fileuuidCalculation UUID (AiiDA mode only)