predicthia

Download

The four production models, the environment they were built under, and the script that runs them.

The model bundle

One archive carries all four models and everything needed to run them: percent human intestinal absorption, permeability across Caco-2 monolayers for small molecules and for cyclic peptides, and permeability across an artificial membrane.

FileBytesSHA256
predicthia-models-2026-10-02.tar.gz 34,174,196252d3a61eeae23a3db9f733d74ae475313839a15605e0fe0cebb66c394eebbac

Checksums are also served at /models/SHA256SUMS. Verify with shasum -a 256 -c SHA256SUMS.

What is inside

PathWhat it is
chia_predict.pythe predictor, a command line tool and importable
build_shim.pythe descriptor blocks, lifted from the build pipeline unchanged
models/hia.joblibthe absorption model
models/caco2sm.joblibthe Caco-2 small molecule model, 55 descriptors
models/pep_caco2.joblibthe Caco-2 cyclic peptide model, 50 descriptors
models/pep_passive.joblibthe artificial membrane model
models/<key>_stats.jsonevery published statistic, under frozen_consensus_set
models/manifest.jsonone machine readable entry per endpoint
environment.ymlthe conda environment, with both versions pinned
requirements.txtthe same pins for pip
examples.smiten absorption compounds with their measured values, for a smoke test
examples_peptides.smifive Caco-2 peptides, for the same check on the peptide model
examples_caco2sm.smiten small molecules with their measured values, one per decile of the Caco-2 range

How to run it

tar -xzf predicthia-models-2026-10-02.tar.gz
cd predicthia-models-2026-10-02
conda env create -f environment.yml
conda activate predicthia

python chia_predict.py --model hia --smiles "CC(=O)Nc1ccc(O)cc1"
python chia_predict.py --model pep_caco2 --smiles-file examples_peptides.smi
python chia_predict.py --model caco2sm --smiles-file examples_caco2sm.smi

Each input line returns one JSON object: the prediction, its units, the mean distance to its five nearest training compounds, whether that distance is inside the domain, and the threshold it was judged against. A molecule that cannot be parsed, or whose conformer will not embed, returns an error on its own line and does not stop the rest of the file.

Check it worked

python chia_predict.py --model hia --smiles-file examples.smi

Ten lines, each with a prediction and no error. Those ten are training compounds, so they show the pipeline is wired correctly rather than measuring accuracy.

Why the versions are pinned

Two pins travel with the models and both matter: RDKit 2025.09.5 for the descriptors and scikit-learn 1.9.1 for the model files. They are in the requirements.txt and the environment.yml inside the archive.

Descriptor values depend on the RDKit release, and a different release changes them with no error and no exception, which would move predictions without anything appearing to break. The predictor checks the release when it starts and refuses to run on another one. The absorption model also reads descriptors defined on an embedded conformer, and which conformer wins is decided by an energy comparison, so the same molecule can land a few tenths of a percent apart on a different processor architecture. That is well inside the model's own error, and it is why the pins are part of the method rather than a convenience.

The datasets

The four sets the models were fitted on, exactly as modeled, so the counts here match the model pages and the paper.

FileBytesSHA256
chia-datasets-03Oct2026.zip 218,215bae734bcbe0a37803afd58c0701204d37c855a21474add55df03aa02176f6f78
InsideRowsEndpointUnits
absorption_780.csv780 percent of an oral dose absorbed in manpercent absorbed, 0 to 100
caco2_small_molecules_3771.csv3,771 small molecule permeability, Caco-2 monolayerlog10 Papp, cm/s
peptides_caco2_1281.csv1,281 cyclic peptide permeability, Caco-2 monolayerlog10 Papp, cm/s
peptides_artificial_membrane_7298.csv7,298 cyclic peptide permeability, artificial membranelog10 Papp, cm/s

The zip carries a README naming the original sources, the COSMOS compilation for absorption, CycPeptMPDB for the peptides and the OpenADMET-ExpansionRx challenge for the small molecules, what was done to each set, and the citations. Checksums are also at /data/SHA256SUMS.

The small molecule Caco-2 set

The 3,771 small molecules behind the caco2sm model come from the OpenADMET-ExpansionRx challenge, full post-challenge release, contributed by Expansion Therapeutics and released by the OpenADMET consortium under CC-BY-4.0. The originator publishes it at openadmet.org/datasetsmodels. It is included in the archive above as modeled, with the permeability converted to log10 Papp, and the README records that conversion.

Two things to know before you model these

A permeability of exactly -10.00 is a below-detection placeholder, not a measurement. It appears for 21 peptides in the Caco-2 file and 269 in the artificial membrane file. Treating those as measured values will drag any fit toward a number nobody observed.

The two peptide files share 588 compounds, measured in different assays, and must not be pooled. Comparing the two files row by row says nothing, because most of those pairs come from different studies. Where a single study ran both, on 229 peptides, the assays correlate 0.62 with the artificial membrane value about half a log unit below the Caco-2 value. That is a systematic difference between two experiments, not noise that averaging removes.