Practical Cheminformatics With Open Source Software
A set of Jupyter notebooks for learning Cheminformatics. The links below will open the tutorials on Google Colab. This way you can run the notebooks without having to install software on your computer. Of course, you can also clone the repo and run these notebooks on your own computer.
Fundamentals
- A Whirlwind Introduction to the RDKit for Cheminformatics
- A Brief Introduction to Pandas for Cheminformatics
- SMILES Tutorial
- SMARTS Tutorial
- Recursive SMARTS Tutorial
- Reaction Enumeration, the basics
- Reaction Enumeration, advanced
- Enumerating Stereoisomers and Tautomers
Using datamol and molfeat to Streamline Cheminformatics Workflows
Clustering
ChEMBL and BindingDB
- ChEMBL Ring System Analysis
- Working With Drug Data from the ChEMBL Database
- Analyzing Patent Data from BindingDB
- Searching ChEMBL for Interesting SAR
- Using Data from BindingDB to Build a Machine Learning Model
Misc Cheminformatics Analysis
SAR Analysis
- Identifying Scaffolds
- R-group Analysis
- Positional Analogue Scanning
- Free-Wilson Analysis
- Matched Molecular Pairs
- Matched Molecular Series
Machine Learning Models
- Build and Test a QSAR Model in 8 Lines of Python
- Building a Classification Model
- Comparing Classification Models
- Building a Regression Model
- Comparing Regression Models
- Performing Cross-Valiation
Biotite
Active Learning
Neural Network Potentials
Generative Models
Bayesian Optimization
Tricks and Tips
Additional topics will be added. Please reach out with any requests.
A Bit of History
These notebooks began as part of a two-day workshop I did at the University of Bonn in 2019. Since then, they have evolved, and additional notebooks have been added. Many of the notebooks started as posts on my blog, Practical Cheminformatics. I originally had everything running on Binder, but I found some capacity limits with larger groups and moved everything to Google Colab. I plan to continue adding to and revising these as long as people are interested.
Suggestions and Corrections Welcome
This is a work in progress. It's more than possible that these tutorials contain mistakes and/or typos. If you find something that should be corrected, please submit an issue or a PR. In addition, I'm always looking to improve the text. Please let me know if aspects could be explained more clearly. I'd also like to hear more about topics you'd like to see covered. If you find these tutorials useful, please consider starring this repo.
Acknowledgements
These tutorials wouldn't be possible without the work of Greg Landrum, Brian Kelley, and the RDKit team, as well as Cédric Bouysset and his work on mols2grid. Thanks to Noel O'Boyle, Rafael Lameiro, and Jennifer HY Lin for helping to keep the notebooks up to date as the underlying software libraries evolve.