|
1 | 1 | # Change Log |
2 | 2 |
|
3 | | -From v2.0.0 to v2.0.1 |
| 3 | +From v2.0.1 to v2.1.0.a2 |
4 | 4 |
|
5 | 5 | ## Fixes |
6 | 6 |
|
7 | | -- Requirement python version in pyproject.toml updated to 3.10, as older version of python don't support the type hinting used in the code. |
8 | | -- Corrected type hinting for `QSPRModel.handleInvalidsInPredictions`, which resulted in an error when importing the package in google colab. |
9 | | -- The `predictMols` method returned random predictions in v2.0.0 due to unpatched shuffling code. This has now been fixed. |
| 7 | +- fixed error with serialization of the `DataFrameDescriptorSet` (#63) |
| 8 | +- Papyrus descriptors are not fetched by default anymore from the `Papyrus` adapter, which caused fetching of unnecessary data. |
| 9 | +- A [potential bug in new version of pandas](https://github.com/pandas-dev/pandas/issues/55009) broke scaffold generation so a workaround was implemented. |
10 | 10 |
|
11 | 11 | ## Changes |
| 12 | +- `QSPRModel.evaluate` moved to a separate class `EvaluationMethod` in `qsprpred.models.interfaces`, with subclasses for cross-validation and making predictions on a test set in `qsprpred.models.evaluation_methods` (`CrossValidation` and `EvaluateTestSetPerformance` respectively). |
| 13 | +- `QSPRModel` attribute `scoreFunc` is removed. |
| 14 | +- 'qspr/models' is no longer added to the output path of `QSPRModel.save`, allowing for complete control over the output path. |
| 15 | +- `SKlearnMetrics.supportsTask` now uses a dictionary like dict[ModelTasks, list[str]] to map tasks to supported metric names. (#53) |
| 16 | +- `GBMTRandomSplit` and `ScaffoldSplit` now use the `GBMTDataSplit` to create balanced splits. `RandomSplit` still functions the same way as a completely random test split. |
| 17 | +- `PCMSplit` replaces `StratifiedPerTarget` and is compatible with `RandomSplit`, `ScaffoldSplit` and `ClusterSplit`. |
| 18 | +- `DuplicatesFilter` refactored to`RepeatsFilter`, as it also captures scenarios where triplicates/quadruplicates are found in the dataset. These scenarios are now also covered by the respective UnitTest. |
| 19 | +- The versioning scheme of development snapshots has changed from `devX` to `alphaX`/`betaX`, where `X` is an integer that increments with each release. |
| 20 | +- The following model class have been renamed and moved: |
| 21 | + - `models.models.QSPRsklearn` > `models.sklearn.SklearnModel` |
| 22 | + - `deep.models.QSPRDNN` > `extra.gpu.models.dnn.DNNModel` |
| 23 | + - `extra.models.pcm.ModelPCM` > `extra.models.pcm.PCMModel` |
| 24 | + - `extra.models.pcm.QSPRsklearnPCM` > `extra.models.pcm.SklearnPCMModel` |
| 25 | +- The command line interface modules now use input and output file paths instead |
| 26 | + of automatically placing all files in a subfolder `qspr`, allowing for more |
| 27 | + control over the output and input paths. |
12 | 28 |
|
13 | 29 | ## New Features |
14 | | -- raise error if search space for optuna optimization is missing search space type annotation or if type not in list |
| 30 | +- `GBMTDataSplit` - parent class to create globally balanced splits with the [gbmt-split](https://github.com/sohviluukkonen/gbmt-splits) package. |
| 31 | +- `ClusterSplit` - splits data based clustering of molecular fingerprints (uses `GBMTDataSplit`). |
| 32 | +- Raise error if search space for optuna optimization is missing search space type annotation or if type not in list. |
| 33 | +- When installing package with pip, the commit hash and date of the installation is saved into `qsprpred._version` |
| 34 | +- `HyperParameterOptimization` classes now accept a `evaluation_method` argument, which is an instance of `EvaluationMethod` (see above). This allows for hyperparameter optimization to be performed on a test set, or on a cross-validation set. (#11) |
| 35 | +- `HyperParameterOptimization` now accepts `score_aggregation` argument, which is a function that takes a list of scores and returns a single score. This allows for the use of different aggregation functions, such as `np.mean` or `np.median` to combine scores from different folds. (#45) |
| 36 | +- A new tutorial `adding_new_components.ipynb` has been added to the `tutorials` folder, which demonstrates how to add new model to QSPRpred. |
| 37 | +- A new function `Metrics.checkMetricCompatibility` has been added, which checks if a metric is compatible with a given task and a given prediction methods (i.e. `predict` or `predictProba`) |
| 38 | +- In `EvaluationMethod` (see above), an attribute `use_proba` has been added, which determines whether the `predict` or `predictProba` method is used to make predictions (#56). |
| 39 | +- Add new descriptorset `SmilesDesc` to use the smiles strings as a descriptor. |
| 40 | +- New module `early_stopping` with classes `EarlyStopping` and `EarlyStoppingMode` has been added. This module allows for more control over early stopping in models that support it. |
| 41 | +- Add new descriptorset `SmilesDesc` to use the smiles strings as a descriptor. |
| 42 | +- Refactoring of the test suite under `qsprpred.data` and improvement of temporary file handling (!114). |
| 43 | +- `PyBoostModel` - QSPRpred wrapper for py-boost models. Requires optional `pyboost` dependencies. |
| 44 | +- `ChempropModel` - QSPRpred wrapper for Chemprop models. Requires optional `deep` dependencies. |
| 45 | +- The `data_CLI` argument `--log_transform` (`-lt`) has been changed to `--transform_data` (`-t`), which now accepts a number of transformations to apply to the target data. Available transformations are `log`, `log10`, `log2`, `sqrt`, `cbrt`, `exp`, `exp2`, `exp10`, `square`, `cube`, `reciprocal`. |
| 46 | +- New `data_CLI`, `model_CLI` and `predict_CLI` argument `--skip_backup` (`-sb`) to skip the backup of the output files. WARNING: This will overwrite existing files. |
| 47 | + |
| 48 | +## Removed Features |
| 49 | +- `StratifiedPerTarget` is replaced by `PCMSplit`. |
0 commit comments