Download Latest Version v2.2.0 Atom and bond property prediction + Foundation Models source code.tar.gz (136.5 MB)
Email in envelope

Get an email when there's a new version of Chemprop

Home / v2.2.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-05-29 6.7 kB
v2.2.0 Atom and bond property prediction + Foundation Models source code.tar.gz 2025-05-29 136.5 MB
v2.2.0 Atom and bond property prediction + Foundation Models source code.zip 2025-05-29 136.7 MB
Totals: 3 Items   273.3 MB 2

With this release, we finish our reimplementation of chemprop v1 to be modern and maintainable. The last major feature from chemprop v1 that we plan to port to v2 is support for atom and bond property prediction. This was accomplished in [#1136]. Documentation for using this feature from the CLI is available here while examples for using it from a python script are available here and here. As a reminder for CLI users coming from v1, we have a helpful transition guide here. Also note that we do not support converting v1 models for atom and bond targets to v2 models as the model architecture has been simplified in v2. Now if there are multiple atom targets (or similarly multiple bond targets) a single feed forward network (FFN) with multiple outputs is used to make predictions for all those targets. A separate FFN is used for each of molecule, atom, and bond targets, as well as for each of atom prediction constraints and bond prediction constraints if those are used (see the example notebooks).

A notable new feature is the ability to use pretrained message passing layers with new predictor heads, added in [#1226], with the CLI flag --from-foundation. This makes it possible to train large foundation style chemprop models on many basic chemistry tasks and then use the message passing layer weights to initialize a new model for training on other smaller datasets. An example of such a model CheMeleon is shown here.

CLI changes

  • The hyperparameter search space has been updated to include 6 message passing steps as an option in [#1230]. This option was included in chemprop v1 and was accidentally excluded during our reimplementation in v2.
  • The "scaled exponential linear unit" (SELU) activation function is removed from the hyperparameter search space in [#1146] because it is normally used in self normalizing models, which chemprop does not support. In the same PR, all other torch activation modules are made available as an option via the CLI. In python scripts, customized activation functions may also now be used.
  • Stereochemical information (R/S and cis/trans) is included in the default featurization. If a model is trained on molecules that do not include this stereochemical info, some of the model weights will not be updated. This could cause erroneous predictions at inference time if molecules are used with stereochemical info. To remedy this, we have added a --ignore-stereo flag and corresponding function argument chemprop.utils.utils.make_mol(smi, ignore_stereo = True) that tells chemprop to ignore any stereochemical info in the input molecule. See [#1196] and [#1216].

Bug fixes

  • Previously a dataset could not be missing values if the values were bounded. This is fixed in [#1203]. Thank you to @lewismervin1 for the bug report and fix.
  • Also fixed the output shape of dropout uncertainty predictions in [#1205] thanks to a bug report by @lewismervin1.
  • If matthew correlation coefficient (MCC) is used as a metric, a higher value is better, but the checkpointing callback was told that lower is better. This is fixed by [#1218].
  • The paths of extra atom/bond features/descriptors would not save properly in a config file. This is fixed in [#1189] and [#1190].
  • Scalers from a pretrained GPU-trained model would not load correctly on a CPU-only machine. This is fixed in [#1231]. Thank you to @jonwzheng for the bug report.

Finally, not exactly related to this version of chemprop, but we have also added lists of external dependency versions that are known to work with previous versions of chemprop in [#1225]. This is useful if you want to use a specific version of chemprop but are unsure if it is compatible with the most up to date versions of external dependencies. For example, torch v2.6 is incompatible with earlier versions of chemprop because torch.load now uses weights_only=True by default.

What's Changed

Full Changelog: https://github.com/chemprop/chemprop/compare/v2.1.2...v2.2.0

Source: README.md, updated 2025-05-29