Highlights
- DeepChem adds support for new models including DMPNNs, and MEGNet
- We have ported NormalizingFlows to PyTorch
- Added support for multi-gpu training via pytorch lightning.
- Utilities to run hhsearch multisequence alignment search on a dataset
- We have ported several layers to pytorch
Porting Models to PyTorch
The following models/layers have been ported to pytorch: GRU, InterAtomicL2Distance, WeightedLinearCombo, CombineMeanStd, AtomicConvolution layer, NeighborList, CNN, LSTMStep
New Features
- Fake graph data generator to generate random graphs
- FASTQ Loader to load biological sequences of data
- Added top_k_accuracy_score metric for evaluating model performances
- Extracting molecular coordinates from QM9 dataset
- Support for Random hyperparameter tuning
Featurizers
- DMPNN Featurizer
- Sparse matrix one hot featurizer
- Position Frequency Matrix Featurizer implements a featurizer for position frequency matrices on a list of multisequence alignments to return a list of position frequency matrices.
New Layers
- MEGNet Layer
Deprecations
- dc.evaluate.utils.relative_difference is being deprecated. A deprecation warning to use `math.isclose`, `np.isclose`, `np.allclose` has been put in place.
Examples and Tutorials
- Using hydra config system with pytorch-lightning system
- New tutorial have been added to DeepQMC, SCVI and ScanPy, HierVAE, molGAN, hyper-parameter optimization, neural ODE, gaussian process, pytorch lightning, training a normalising flow on qm9 model, grover.
Documentation
- Documentation has been improved with wider examples, using deepchem with docker, model cheat sheets.
- Citations have been added to some of the tutorials to make them citable.
Improvements
- Speed up in atomic convolution model
- Utilities in deepchem disk dataset to convert it to a csv file.
- Added file storage of validation and train scores during hyperparameter optimization.
- Modified GraphData to support kwargs for storing additional attributes
- Made it possible to run DeepChem in offline mode by removing default download call from CGCNN
Refactors
- Mol2vec_fingerprints to directly use method from gensim library rather than mol2vec sub-package.
Bug Fixes
- Retrieving shape of disk dataset when task names are not specified
- Improvements in k-fold split when the number of data points is not exactly divisible by k
- Fix a bug in SmilesToSeq featurizer when the padding length is 0.
- A bug in which LogTransformer fails on data without an explicit task dimension has been fixed.
Maintenance
- Adding type hints.
- CI pipeline to consume less time
What's Changed
* Bump to dev version by rbharath in https://github.com/deepchem/deepchem/pull/2825
* add top_k_accuracy metric by tonydavis629 in https://github.com/deepchem/deepchem/pull/2818
* Update models.rst by neerajanand321 in https://github.com/deepchem/deepchem/pull/2828
* adding Docker tutorial by shaipranesh2 in https://github.com/deepchem/deepchem/pull/2814
* Added Graph Networks by arunppsg in https://github.com/deepchem/deepchem/pull/2843
* added molGAN tutorial by saithat in https://github.com/deepchem/deepchem/pull/2773
* adding hyperopt tutorials by shaipranesh2 in https://github.com/deepchem/deepchem/pull/2851
* Improvements to GraphData by arunppsg in https://github.com/deepchem/deepchem/pull/2860
* Update to Documentation for Using DeepChem in Jupyter Notebook by iherath in https://github.com/deepchem/deepchem/pull/2856
* Removing some obsolete code by arunppsg in https://github.com/deepchem/deepchem/pull/2855
* Removing package pins by arunppsg in https://github.com/deepchem/deepchem/pull/2783
* Fake graph data generator by arunppsg in https://github.com/deepchem/deepchem/pull/2865
* removing package pin by arunppsg in https://github.com/deepchem/deepchem/pull/2873
* adding jax dependencies by arunppsg in https://github.com/deepchem/deepchem/pull/2877
* Sparse matrix one hot featurizer by davidRFB in https://github.com/deepchem/deepchem/pull/2870
* added neural ode tutorial :books: by shivance in https://github.com/deepchem/deepchem/pull/2859
* Fixing Colab Links by rbharath in https://github.com/deepchem/deepchem/pull/2883
* Adding batch processing to GraphNet layer by arunppsg in https://github.com/deepchem/deepchem/pull/2874
* MEGNet layer implementation by arunppsg in https://github.com/deepchem/deepchem/pull/2837
* Fixing broken CI on windows - Jax and Vina by arunppsg in https://github.com/deepchem/deepchem/pull/2886
* Fresh gp tutorial by TheRealSalmon in https://github.com/deepchem/deepchem/pull/2864
* Fix to log transformer by rbharath in https://github.com/deepchem/deepchem/pull/2887
* Best score callback by TheRealSalmon in https://github.com/deepchem/deepchem/pull/2866
* fix for bug(issue 2106) by shaipranesh2 in https://github.com/deepchem/deepchem/pull/2857
* deepchem pytorch lightning tutorial by Chahalprincy in https://github.com/deepchem/deepchem/pull/2826
* sequence_utils for sequence homology search by tonydavis629 in https://github.com/deepchem/deepchem/pull/2890
* Speed up AtomicConv model, improvements to AtomicConv tutorial by juliusgeo in https://github.com/deepchem/deepchem/pull/2888
* Update Training_a_Normalizing_Flow_on_QM9.ipynb by JoseAntonioSiguenza in https://github.com/deepchem/deepchem/pull/2885
* Resolve the bug issue of loading the .sdf files by JoseAntonioSiguenza in https://github.com/deepchem/deepchem/pull/2795
* Position Frequency Matrix Featurizer by tonydavis629 in https://github.com/deepchem/deepchem/pull/2896
* Adding a tutorial for GROVER. by atreyamaj in https://github.com/deepchem/deepchem/pull/2901
* Update tutorials.rst by BalajiAI in https://github.com/deepchem/deepchem/pull/2902
* Adding FutureWarning to depreciate deepchem.utils.evaluate.relative_difference by arunppsg in https://github.com/deepchem/deepchem/pull/2909
* Module dl dependancies by Nozziel in https://github.com/deepchem/deepchem/pull/2908
* Extracting molecular coordinates for QM9 dataset from sdf files by arunppsg in https://github.com/deepchem/deepchem/pull/2903
* Add bibtex citation to first tutorial by paupaiz in https://github.com/deepchem/deepchem/pull/2912
* Update torchvision version requirement by Matthew-Hostetler in https://github.com/deepchem/deepchem/pull/2916
* add citation tutorial 4 by paupaiz in https://github.com/deepchem/deepchem/pull/2921
* add citation tutorial 5 by paupaiz in https://github.com/deepchem/deepchem/pull/2922
* Fixing CI errors by arunppsg in https://github.com/deepchem/deepchem/pull/2931
* Update scientists.rst by shivance in https://github.com/deepchem/deepchem/pull/2932
* resolved deprecation warning by ARY2260 in https://github.com/deepchem/deepchem/pull/2937
* atom features function and helper functions for DMPNN Featurizer by ARY2260 in https://github.com/deepchem/deepchem/pull/2929
* NormalizingFlow class and Affine transformation created using Pytorch by JoseAntonioSiguenza in https://github.com/deepchem/deepchem/pull/2918
* add bond_features and reaction mapping with suitable tests for DMPNN by ARY2260 in https://github.com/deepchem/deepchem/pull/2942
* Adding DeepQMC tutorial by shaipranesh2 in https://github.com/deepchem/deepchem/pull/2914
* Intro8 bibtex by paupaiz in https://github.com/deepchem/deepchem/pull/2925
* add bibtex tutorial 7 by paupaiz in https://github.com/deepchem/deepchem/pull/2924
* Update model cheatsheet by j-frie in https://github.com/deepchem/deepchem/pull/2947
* first steps in fixing docker build by Nozziel in https://github.com/deepchem/deepchem/pull/2949
* Added torch equivalent of InterAtomicL2Distances in torch_layers.py + YAPF changes by atreyamaj in https://github.com/deepchem/deepchem/pull/2934
* added HierVAE tutorial by saithat in https://github.com/deepchem/deepchem/pull/2904
* modify molecular featurizer base class and suitable tests by ARY2260 in https://github.com/deepchem/deepchem/pull/2960
* added _MapperDMPNN class and suitable tests by ARY2260 in https://github.com/deepchem/deepchem/pull/2962
* implement DCLightningModule by Chahalprincy in https://github.com/deepchem/deepchem/pull/2945
* Normalizing Flow Torch Model by JoseAntonioSiguenza in https://github.com/deepchem/deepchem/pull/2944
* Adding Metropolis Hasting sampler by shaipranesh2 in https://github.com/deepchem/deepchem/pull/2935
* Minor fix for utils.rst by shaipranesh2 in https://github.com/deepchem/deepchem/pull/2973
* add global feature generator and suitable unit tests by ARY2260 in https://github.com/deepchem/deepchem/pull/2971
* Updated Tutorial File with TorchModel example by allesrebel in https://github.com/deepchem/deepchem/pull/2977
* :octocat: Fixed potential bug in deepchem's CNN implementation by shivance in https://github.com/deepchem/deepchem/pull/2964
* fix bug in GraphData class and add suitable unit test by ARY2260 in https://github.com/deepchem/deepchem/pull/2979
* Gcn by Chahalprincy in https://github.com/deepchem/deepchem/pull/2958
* python v3.8 in readthedocs.yml by arunppsg in https://github.com/deepchem/deepchem/pull/2984
* Pinning sphinx version in docs/requirements.txt by arunppsg in https://github.com/deepchem/deepchem/pull/2985
* Fixing 2986 by shivance in https://github.com/deepchem/deepchem/pull/2988
* PEP-008 style corrections for electron sampler by shaipranesh2 in https://github.com/deepchem/deepchem/pull/2987
* add count-based morgan fingerprint featurizer and suitable unit tests by ARY2260 in https://github.com/deepchem/deepchem/pull/2980
* removed css theme by arunppsg in https://github.com/deepchem/deepchem/pull/2991
* modify RDKitDescriptors class for normalized features by ARY2260 in https://github.com/deepchem/deepchem/pull/2983
* Add Trident Chemwidgets tutorial to `examples/tutorials by TShimko126 in https://github.com/deepchem/deepchem/pull/2965
* add DMPNN featurizer class and suitable unit tests by ARY2260 in https://github.com/deepchem/deepchem/pull/2995
* add new global feature generators and units tests for DMPNN featurizer by ARY2260 in https://github.com/deepchem/deepchem/pull/3005
* bibtex tutorial 9 by paupaiz in https://github.com/deepchem/deepchem/pull/2926
* implement dc lightning dataset module by Chahalprincy in https://github.com/deepchem/deepchem/pull/2993
* update unit tests with DC Lightning dataset module by Chahalprincy in https://github.com/deepchem/deepchem/pull/2994
* Added pytorch-lightning in mac requirements by ojeda-e in https://github.com/deepchem/deepchem/pull/3008
* modify PositionwiseFeedForward class and add unit tests by ARY2260 in https://github.com/deepchem/deepchem/pull/3009
* add mapper class for dmpnn model and suitable unit tests by ARY2260 in https://github.com/deepchem/deepchem/pull/3001
* :octocat: Porting CNN, TF ➡️ PyTorch by shivance in https://github.com/deepchem/deepchem/pull/2963
* Adding KFAC by shaipranesh2 in https://github.com/deepchem/deepchem/pull/2972
* ScanPy tutorial by paupaiz in https://github.com/deepchem/deepchem/pull/3018
* Adding to_csv method to DiskDataset by arunppsg in https://github.com/deepchem/deepchem/pull/3007
* bibtex tutorial 10 by paupaiz in https://github.com/deepchem/deepchem/pull/2927
* Port of WeightedLinearCombo from Keras to Torch by subzjee in https://github.com/deepchem/deepchem/pull/3022
* add dmpnn encoder layer and suitable unit test by ARY2260 in https://github.com/deepchem/deepchem/pull/3023
* Port of CombineMeanStd from Keras to Torch by subzjee in https://github.com/deepchem/deepchem/pull/3021
* Port of AtomicConvolution to Torch by subzjee in https://github.com/deepchem/deepchem/pull/3026
* Port of NeighborList from Keras to Torch by subzjee in https://github.com/deepchem/deepchem/pull/3020
* add dmpnn class and suitable unit tests by ARY2260 in https://github.com/deepchem/deepchem/pull/3028
* Scvi tools tutorial by paupaiz in https://github.com/deepchem/deepchem/pull/3025
* Adding electron input streams for Ferminet by shaipranesh2 in https://github.com/deepchem/deepchem/pull/2997
* add torch model wrapper for DMPNN model class by ARY2260 in https://github.com/deepchem/deepchem/pull/3034
* Real NVP Transformation Layer for Normalizing Flows by JoseAntonioSiguenza in https://github.com/deepchem/deepchem/pull/2996
* Fixes to k-fold fingerprint splitting by chertianser in https://github.com/deepchem/deepchem/pull/3038
* GCNModel benchmark script for gpu by Chahalprincy in https://github.com/deepchem/deepchem/pull/3016
* Update pytorch-lightning version by Chahalprincy in https://github.com/deepchem/deepchem/pull/3042
* FASTQ loader by paupaiz in https://github.com/deepchem/deepchem/pull/3036
* pinning scipy to fix torch build in ci by arunppsg in https://github.com/deepchem/deepchem/pull/3051
* Using github actions v3 in workflows by arunppsg in https://github.com/deepchem/deepchem/pull/3053
* Removing mol2vec dependency by arunppsg in https://github.com/deepchem/deepchem/pull/3052
* Refactoring CI by arunppsg in https://github.com/deepchem/deepchem/pull/3055
* Fix issue 3057 (update _Mapper class for dmpnn) by ARY2260 in https://github.com/deepchem/deepchem/pull/3058
* Hydra by Chahalprincy in https://github.com/deepchem/deepchem/pull/3030
* Improving CI by arunppsg in https://github.com/deepchem/deepchem/pull/3056
* Assigning task names when they are not specified by arunppsg in https://github.com/deepchem/deepchem/pull/3047
* Update __init__.py by ARY2260 in https://github.com/deepchem/deepchem/pull/3063
* Correctly import lightning to avoid import errors by abhiskk in https://github.com/deepchem/deepchem/pull/3065
* Ported Tensorflow LSTMStep to PyTorch by vinay-hebb in https://github.com/deepchem/deepchem/pull/3072
* Add random hyperparameter search by Manas2030 in https://github.com/deepchem/deepchem/pull/2897
* added file output of validation and train scores by arunppsg in https://github.com/deepchem/deepchem/pull/3073
* Adding CI tests for python 3.10 by arunppsg in https://github.com/deepchem/deepchem/pull/2846
* Fix broken typehint in SparseMatrixOneHotFeaturizer.untransform by AcylSilane in https://github.com/deepchem/deepchem/pull/3080
* Substract padding from list length when slicing by xerus in https://github.com/deepchem/deepchem/pull/3079
* Ported Tensorflow GRU to PyTorch by vinay-hebb in https://github.com/deepchem/deepchem/pull/3076
* implementation of batching for DMPNN model by ARY2260 in https://github.com/deepchem/deepchem/pull/3040
* Minor Patch by arunppsg in https://github.com/deepchem/deepchem/pull/3101
* Minor patches by arunppsg in https://github.com/deepchem/deepchem/pull/3105
* adding batch size argument to lightning module by arunppsg in https://github.com/deepchem/deepchem/pull/3106
* updated mdtraj requirement by arunppsg in https://github.com/deepchem/deepchem/pull/3112
* Deepchem 2.7.0 by arunppsg in https://github.com/deepchem/deepchem/pull/3099
New Contributors
* shaipranesh2 made their first contribution in https://github.com/deepchem/deepchem/pull/2814
* saithat made their first contribution in https://github.com/deepchem/deepchem/pull/2773
* iherath made their first contribution in https://github.com/deepchem/deepchem/pull/2856
* shivance made their first contribution in https://github.com/deepchem/deepchem/pull/2859
* TheRealSalmon made their first contribution in https://github.com/deepchem/deepchem/pull/2864
* juliusgeo made their first contribution in https://github.com/deepchem/deepchem/pull/2888
* JoseAntonioSiguenza made their first contribution in https://github.com/deepchem/deepchem/pull/2885
* BalajiAI made their first contribution in https://github.com/deepchem/deepchem/pull/2902
* Nozziel made their first contribution in https://github.com/deepchem/deepchem/pull/2908
* paupaiz made their first contribution in https://github.com/deepchem/deepchem/pull/2912
* Matthew-Hostetler made their first contribution in https://github.com/deepchem/deepchem/pull/2916
* ARY2260 made their first contribution in https://github.com/deepchem/deepchem/pull/2937
* j-frie made their first contribution in https://github.com/deepchem/deepchem/pull/2947
* allesrebel made their first contribution in https://github.com/deepchem/deepchem/pull/2977
* TShimko126 made their first contribution in https://github.com/deepchem/deepchem/pull/2965
* ojeda-e made their first contribution in https://github.com/deepchem/deepchem/pull/3008
* subzjee made their first contribution in https://github.com/deepchem/deepchem/pull/3022
* chertianser made their first contribution in https://github.com/deepchem/deepchem/pull/3038
* abhiskk made their first contribution in https://github.com/deepchem/deepchem/pull/3065
* vinay-hebb made their first contribution in https://github.com/deepchem/deepchem/pull/3072
* Manas2030 made their first contribution in https://github.com/deepchem/deepchem/pull/2897
* AcylSilane made their first contribution in https://github.com/deepchem/deepchem/pull/3080
* xerus made their first contribution in https://github.com/deepchem/deepchem/pull/3079
**Full Changelog**: https://github.com/deepchem/deepchem/compare/2.6.1...2.7.0