PatWalters / practical_cheminformatics_tutorials

Practical Cheminformatics Tutorials
MIT License
809 stars 145 forks source link

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 just clone the repo and run these notebooks on your own computer.

Fundamentals

  1. A Whirlwind Introduction to the RDKit for Cheminformatics
  2. A Brief Introduction to Pandas for Cheminformatics
  3. SMILES Tutorial
  4. SMARTS Tutorial
  5. Recursive SMARTS Tutorial
  6. Reaction Enumeration, the basics
  7. Reaction Enumeration, advanced
  8. Enumerating Stereoisomers and Tautomers

Using datamol and molfeat to Streamline Cheminformatics Workflows

  1. Data Manipulation, Descriptors and Clustering

Clustering

  1. K-Means Clustering
  2. Taylor-Butina Clustering
  3. Self-Organizing Maps

Misc Cheminformatics Analysis

  1. ChEMBL Ring System Analysis
  2. Working With Drug Data from the ChEMBL Database
  3. Analyzing Patent Data from BindingDB

SAR Analysis

  1. Identifying Scaffolds
  2. R-group Analysis
  3. Positional Analogue Scanning
  4. Free-Wilson Analysis
  5. Matched Molecular Pairs
  6. Matched Molecular Series

Machine Learning Models

  1. Build and Test a QSAR Model in 8 Lines of Python
  2. Building a Classification Model
  3. Comparing Classification Models
  4. Building a Regression Model
  5. Comparing Regression Models

Active Learning

  1. Active Classification
  2. Active Regression
  3. Active Shape Search

Neural Network Potentials

  1. Tautomer Energies with Auto3D

Additional topics will be added

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. As you can see above, I'm still working on a few notebooks. 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.