Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chemtriage

Predict the density sensitivity of a reaction energy — how much the result depends on the input density — from cheap GFN2-xTB descriptors, before running the expensive DFT check.

For a target quantity Y, density sensitivity is S = |Y[n_DFA] − Y[n_HF]| in kcal/mol. chemtriage estimates S with a gradient-boosted model trained on 1,505 GMTKN55 reactions, and returns a graded tier rather than a yes/no flag.

predicted S (kcal/mol) tier actually sensitive (S > 2)
< 1 SAFE 1%
1–2 LIKELY SAFE 17%
2–5 BE CAUTIOUS 64%
≥ 5 BE VERY CAUTIOUS 95%

Percentages are out-of-fold, from 10×5-fold cross-validation on GMTKN55.

Install

conda env create -f environment.yml   # or: mamba env create -f environment.yml
conda activate dsxtb

Builds are pinned deliberately — some newer dftd4/multicharge conda-forge builds segfault inside GFN2 single points. Do not relax the pins.

Run

Web UI — start here

python webui.py          # then open http://127.0.0.1:8000
python webui.py 8080     # custom port

Build a reaction in the browser, from SMILES or an uploaded geometry, and get the predicted S, its tier, and a breakdown of which chemistry drove it. This is the easiest way to use chemtriage and needs no knowledge of the input syntax below.

Command line

Each species is one argument, PATH:charge:uhf:coeff, where coeff is its signed stoichiometric coefficient. Geometries are .xyz.

# F2 -> 2 F.     (F2 neutral closed shell; F neutral doublet)
python predict.py f2.xyz:0:0:-1 f.xyz:0:1:2

Output is the predicted S, its tier, and an exact TreeSHAP breakdown of which chemistry drove it (bond rearrangement / near-degeneracy / charge anisotropy / size).

For a periodic species, use an extxyz file with a Lattice= line and add a fifth field :Z, the number of formula units in the cell:

# molecular-crystal cohesion, per molecule
python predict.py crystal.xyz:0:0:-1:4 mol.xyz:0:0:1

The model is trained on molecules, so periodic inputs are an extrapolation — treat them as qualitative.

Output

Every run writes logs/run_<timestamp>/ containing the console log, the model feature vector, the per-species xTB descriptors and the raw tblite results, plus a one-line entry in logs/history.log.

More

docs/DETAILS.md — descriptor definitions, model provenance, periodic-mode caveats and the full tier calibration.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages