Chemprop

Latest version: v1.7.1

Safety actively analyzes 619038 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

2.0.0rc.1

This is a release candidate for Chemprop v2.0.0, to be released in April 2024.

The primary objectives of v2.0.0 are making Chemprop more usable from within Python scripts, more modular, easier to maintain and develop, more compute/memory efficient, and usable with PyTorch Lightning. Some features will not be migrated from v1 to v2 (e.g. web, sklearn). Some v1 features will be added in later versions of v2 (v2.1+) (e.g. uncertainty, interpret, atom- and bond-targets); see milestones [here](https://github.com/chemprop/chemprop/milestones). The new version also has substantially faster featurization speeds and much higher unit test coverage, enables training on multiple GPUs, and works on Windows (in addition to Linux and Mac). Finally, the incorporation of a batch normalization layer is expected to result in smoother training and improved predictions. The label as a “release candidate” reflects its availability to be downloaded via PyPI and that only minor changes are expected for the Python API before the final release. We expect most remaining changes before the release of v2.0.0 in April to be focused on additional improvements to the command line interface (CLI), which does not yet have feature parity with v1. We encourage all Chemprop users to try using v2.0.0-rc.1 to see how it can improve their workflows.

The v2 documentation can be found [here](https://chemprop.readthedocs.io/en/v2-dev/index.html).

There are tutorial notebooks for v2 in the [examples/](https://github.com/chemprop/chemprop/tree/v2/dev/examples) directory.

A helpful transition guide from v1 to v2 can be found [here](https://docs.google.com/spreadsheets/u/3/d/e/2PACX-1vRshySIknVBBsTs5P18jL4WeqisxDAnDE5VRnzxqYEhYrMe4GLS17w5KeKPw9sged6TmmPZ4eEZSTIy/pubhtml). This includes a side-by-side comparison of CLI argument options, a list of which arguments will be implemented in later versions of v2, and a list of changes to default hyperparameters.

You can subscribe to our development status and notes for this version: https://github.com/chemprop/chemprop/issues/517.

Ongoing work for this version is available on the `v2/dev` [branch](https://github.com/chemprop/chemprop/tree/v2/dev).

Please let us know of any bugs you find by opening an issue.

1.7.1

This is the final release of chemprop v1. All future development will be done on [chemprop v2](https://github.com/chemprop/chemprop/issues/517). The development team is still happy to answer questions about v1, but no new feature requests or PRs for v1 will be accepted. Users who identify bugs in v1 are still encouraged to open issues to report them - they will be tagged as [`v1-wontfix`](https://github.com/chemprop/chemprop/labels/v1-wontfix) to signify that we won't be publishing fixes for them in official chemprop releases, but the bugs can still be open to community discussion.

We encourage all users to try migrating their workflows over to chemprop v2 (available now as a release candidate, stable version planned to be released within the next week) and let us know of any issues you encounter. All v1 releases will remain available on PyPI, and the v1 source code will remain available in this GitHub organization.

What's Changed
* fix the `uncal_vars` for atom/bond property prediction by shihchengli in https://github.com/chemprop/chemprop/pull/712
* [v1]: Add Docker Image Building Action and Official Images to DockerHub by JacksonBurns in https://github.com/chemprop/chemprop/pull/718
* remove macos and windows from v1 ci by JacksonBurns in https://github.com/chemprop/chemprop/pull/720
* update docker build `if` to use correct upstream branch name by JacksonBurns in https://github.com/chemprop/chemprop/pull/723
* fix the task names by shihchengli in https://github.com/chemprop/chemprop/pull/725
* Fixed typo in README.md by willspag in https://github.com/chemprop/chemprop/pull/745

New Contributors
* willspag made their first contribution in https://github.com/chemprop/chemprop/pull/745

**Full Changelog**: https://github.com/chemprop/chemprop/compare/v1.7.0...v1.7.1

1.7.0

What's Changed
* new split per molecular weight by soulios in https://github.com/chemprop/chemprop/pull/456
* Specify license for Chemprop logos by mliu49 in https://github.com/chemprop/chemprop/pull/461
* Add `todo.md` by davidegraff in https://github.com/chemprop/chemprop/pull/492
* Update authors list in license file and alphabetically sort by cjmcgill in https://github.com/chemprop/chemprop/pull/532
* update authors in LICENSE and setup files for v1 by kevingreenman in https://github.com/chemprop/chemprop/pull/533
* Fix Transpose bug in Inequality Regression by cjmcgill in https://github.com/chemprop/chemprop/pull/308
* Add Dirichlet Evidential Uncertainty Quantification by cjmcgill in https://github.com/chemprop/chemprop/pull/423
* New metrics by soulios in https://github.com/chemprop/chemprop/pull/542
* Updating README with ADMET-AI details by swansonk14 in https://github.com/chemprop/chemprop/pull/554
* Improve error message when gilbrat is needed. by KnathanM in https://github.com/chemprop/chemprop/pull/569
* limit chempropv1 python version to 3.7, 3.8 only by JacksonBurns in https://github.com/chemprop/chemprop/pull/618
* Add a `CITATIONS.bib` by JacksonBurns in https://github.com/chemprop/chemprop/pull/627
* Limit Maximum Allowed `flask` Version in v1 by JacksonBurns in https://github.com/chemprop/chemprop/pull/628
* move num_unc_tasks definition to ensure always defined by kevingreenman in https://github.com/chemprop/chemprop/pull/632
* Switching np.mean to np.nanmean to handle NaN metrics by swansonk14 in https://github.com/chemprop/chemprop/pull/453
* Fix the dtype for targets of different sizes by shihchengli in https://github.com/chemprop/chemprop/pull/638
* Add setters for atom and bond constraints by shihchengli in https://github.com/chemprop/chemprop/pull/637
* switch v1 readthedocs build from conda to mamba by kevingreenman in https://github.com/chemprop/chemprop/pull/660
* Fix v1 docs theme by kevingreenman in https://github.com/chemprop/chemprop/pull/669
* Conformal Calibration by danielxu9393 in https://github.com/chemprop/chemprop/pull/304
* add note on feature releases and instructions for ssl+ddp by JacksonBurns in https://github.com/chemprop/chemprop/pull/685
* remove unnecessary argument for reshape function by shihchengli in https://github.com/chemprop/chemprop/pull/671
* Fix atom/bond property prediction with atom-mapped SMILES and target classification by shihchengli in https://github.com/chemprop/chemprop/pull/673
* Pass num_workers to MoleculeDataLoader during interpretation by kevingreenman in https://github.com/chemprop/chemprop/pull/691
* conformal quantile prediction bug fix by shihchengli in https://github.com/chemprop/chemprop/pull/693

New Contributors
* soulios made their first contribution in https://github.com/chemprop/chemprop/pull/456
* danielxu9393 made their first contribution in https://github.com/chemprop/chemprop/pull/304

**Full Changelog**: https://github.com/chemprop/chemprop/compare/v1.6.1...v1.7.0

1.6.1

Bug fix
PR 383 unexpectedly broke the atom mapping for reaction mode. The issue is described in Issue 426 and fixed by PR 427.

What's Changed
* Fix versioning issues - metadata and dependencies by kevingreenman in https://github.com/chemprop/chemprop/pull/420
* add job to tests action for PyPI package by JacksonBurns in https://github.com/chemprop/chemprop/pull/422
* added chemprop manuscript to readme by hesther in https://github.com/chemprop/chemprop/pull/425
* Keep Support for Python 3.7 and 3.8 when fixing `gilbrat` Issue by JacksonBurns in https://github.com/chemprop/chemprop/pull/431
* Fix reaction atom mapping by shihchengli in https://github.com/chemprop/chemprop/pull/427


**Full Changelog**: https://github.com/chemprop/chemprop/compare/v1.6.0...v1.6.1

1.6.0

Major New Features
* Atomic/bond targets prediction by shihchengli in https://github.com/chemprop/chemprop/pull/280

What's Changed
* Replace multiclass mcc with 1-mcc for loss by cjmcgill in https://github.com/chemprop/chemprop/pull/332
* Add chemprop logo by shihchengli in https://github.com/chemprop/chemprop/pull/339
* Add CodeQL workflow for GitHub code scanning by lgtm-com in https://github.com/chemprop/chemprop/pull/344
* Add to the description of evidential regularization by cjmcgill in https://github.com/chemprop/chemprop/pull/353
* Remove deprecated numpy float types by cjmcgill in https://github.com/chemprop/chemprop/pull/357
* Correct a bug in ENCE uncertainty evaluation by cjmcgill in https://github.com/chemprop/chemprop/pull/360
* Hyperopt Parallel Race Conditions and Manual Trial Load by cjmcgill in https://github.com/chemprop/chemprop/pull/307
* Simplified install with PyPI `rdkit` and git install in `setup.py` by JacksonBurns in https://github.com/chemprop/chemprop/pull/364
* Allow providing both loaded features and a features generator by shihchengli in https://github.com/chemprop/chemprop/pull/318
* For any multiclass task, `make_predictions` fails if option --individual_ensemble_predictions is on. by piotr-semenov in https://github.com/chemprop/chemprop/pull/354
* Save loaded molecular features into .npy files by shihchengli in https://github.com/chemprop/chemprop/pull/337
* Ignore invalid atom-mapped SMILES by shihchengli in https://github.com/chemprop/chemprop/pull/367
* Molecule fingerprinting with invalid SMILES in list by shihchengli in https://github.com/chemprop/chemprop/pull/351
* change calibration_features_path from str to List[str] by ceroth in https://github.com/chemprop/chemprop/pull/358
* Change logo style by shihchengli in https://github.com/chemprop/chemprop/pull/369
* Clamp evidential 'v' parameter by kevingreenman in https://github.com/chemprop/chemprop/pull/371
* fix colab demo by kevingreenman in https://github.com/chemprop/chemprop/pull/368
* Avoid OverflowError when setting field size to sys.maxsize by shihchengli in https://github.com/chemprop/chemprop/pull/373
* Set atom and bond constraints when loading model by shihchengli in https://github.com/chemprop/chemprop/pull/374
* Readme updates by kevingreenman in https://github.com/chemprop/chemprop/pull/385
* Remove atom map numbers for scaffold splits by shihchengli in https://github.com/chemprop/chemprop/pull/383
* update bug report template - ask for full stack trace by kevingreenman in https://github.com/chemprop/chemprop/pull/401
* Fix t-SNE script by kevingreenman in https://github.com/chemprop/chemprop/pull/403
* Fixing skipped lines in csv writing when using a windows computer by cjmcgill in https://github.com/chemprop/chemprop/pull/406

**Full Changelog**: https://github.com/chemprop/chemprop/compare/v1.5.2...v1.6.0

1.5.2

Features

Flexible hyperparameter search space
The parameters to be included in hyperparameter optimization can now be selected using the argument `--search_parameter_kewords {list-of-keywords}`. The parameters supported are: activation, aggregation, aggregation_norm, batch_size, depth, dropout, ffn_hidden_size, ffn_num_layers, final_lr, hidden_size, init_lr, max_lr, warmup_epochs. Some special kewords are also included for groups of keywords or different search behavior: basic, learning_rate, all, linked_hidden_size.
PR 299

Missing targets in uncertainty calibration datasets
Added capabilities to the uncertainty calibration and evaluation methods to allow them to handle missing target values in multitask jobs. This capability was already included in the normal training of models, now implemented in uncertainty calibration and evaluation.
PR 295
Issue 292

Multitask evaluation for tasks of different magnitudes
When evaluation metrics tend to scale with the magnitude of a task (e.g., rmse), averaging metrics between tasks has been replaced with a geometric mean function. This makes the average metric in multitask regression jobs be less dominated by large magnitude targets. This was previously an issue for hyperparameter optimization and the evaluation of optimal epoch during model training, though the calculation of loss for gradient descent is on scaled targets and was already not scale dependent.
PR 290

Empty test set allowed
An empty test split can now be used during training. This was previously possible only using the `cv-no-test` split method, but now it is available more widely when specifying split sizes, for example with `--split_sizes 0.8 0.2 0`.
PR 284, 260 related
Issue 279

Updates to conda environment and docker file
Conda environment building will now prefer to use the pytorch channel over the conda-forge channel. The Dockerfile has been updated to use micromamba, allowing for faster environment solves than conda and removing a potential licensing issue.
PR 276

Bug Fixes

Fix MCC loss for multiclass jobs
Corrected a calculation problem in the loss function that was returning infinite loss inappropriately. Also adopted the convention of returning loss of zero when infinite loss is returned, as often happens in very unbalanced datasets. Added appropriate unit testing.
PR 309
Issue 306

Correct code error in ence uncertainty evaluation
Corrects an error in the ence uncertainty evaluation method that made that method unusable. Bug was introduced during PR 305.
PR 302
Issue 301

Fixed link to MoleculeNet website
Corrected the link to the MoleculeNet benchmark dataset website in the readme, following MoleculeNet migrating to a new site location.
PR 296

Multitarget uncertainty calibration mve weighting method
Previously, this method only worked for single task jobs, now has been extended to work for multitask models as well.
PR 291

Remove unused verion.py file
Version tracking in Chemprop no longer uses the __version__.py file and it was removed.
PR 283

Multiclass argument typo in readme
Corrected a typo where the number of classes used in multiclass regression should have been indicated as `--multiclass_num_classes`.
PR 281

Repair individual ensemble predictions
Refactoring of prediction file during the addition of uncertainty functions disabled the option to return the individual predictions of each member of an ensemble of models. Option is now available again.
PR 274

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.