A teaching platform for computer-aided drug design (CADD) using open source packages and data.
Open source programming packages for cheminformatics and structural bioinformatics are powerful tools to build modular, reproducible, and reusable pipelines for computer-aided drug design (CADD). While documentation for such tools is available, only few freely accessible examples teach underlying concepts focused on CADD applications, addressing especially users new to the field.
TeachOpenCADD is a teaching platform developed by students for students, which provides teaching material for central CADD topics. Since we cover both the theoretical as well as practical aspect of these topics, the platform addresses students and researchers with a biological/chemical as well as a computational background.
Each topic is covered in an interactive Jupyter Notebook, using open source packages such as the Python packages rdkit
, pypdb
, biopandas
, nglview
, and mdanalysis
(find the full list here). Topics are continuously expanded and open for contributions from the community. Beyond their teaching purpose, the TeachOpenCADD material can serve as starting point for users’ project-directed modifications and extensions.
If you use TeachOpenCADD in a publication, please cite us! If you use TeachOpenCADD in class, please include a link back to our repository.
In any case, please star (and tell your students to star) those repositories you consider useful for your learning/teaching activities.
Figure adapted from Figure 1 in the TeachOpenCADD publication
(D. Sydow et al., J. Cheminformatics, 2019).
If you can't wait and just want to read through the materials, please go to the read-only version here.
If you'd like to execute the provided notebooks, we offer two possibilities:
- Online thanks to Binder. This takes around 10 minutes to get ready, but does not require any kind of setup on your end. Click here to get started: . Once it has loaded, you can navigate to
teachopencadd/talktorials/
to find the executable notebooks. - Locally using our
conda
package. More details in this section of the documentation.
If you prefer to work in the context of a graphical interface, talktorials T001-T008 are also available as KNIME workflows. Questions regarding this version should be addressed using the "Discussion section" available at this post. You might need to create a KNIME account.
The TeachOpenCADD platform is not a Python programming course from scratch but teaches how to solve tasks in cheminformatics and structural bioinformatics programmatically. If you wish to get started first with a Python programming introduction before diving into the TeachOpenCADD material, here are a few great resources to do so:
- AI in Medicine course by the Volkamer Lab and Ritter Lab at the Charité: Introduction to Python basics, Jupyter Notebook, and important data science packages such as Pandas, Matplotlib and Scikit-learn
- Python for Chemists course by the GDCh/CIC team: Crash-course introduction to Python for natural scientists
- MolSSI Education Resources by The Molecular Sciences Software Institute: Collection of tutorials on Python programming basics and data analysis but also more advanced material on software development and computational molecular science
- Core lessons by the Software Carpentry: Introduction to Python, Git, command line interfaces and more
The following resources are collections of interesting cheminformatics-related training material, blogs, and books.
- Curated list of resources from the RDKit UGM 2020
- A Highly Opinionated List of Open Source Cheminformatics Resources by Pat Walters
- Awesome Cheminformatics by Yi Hsiao
Please contact us if you have questions or suggestions!
- If you have questions regarding our Jupyter Notebooks, please open an issue on our GitHub repository.
- If you have ideas for new topics, please fill out our questionnaire: contribute.volkamerlab.org
- For all other requests, please send us an email: [email protected]
We are looking forward to hearing from you!
This work is licensed under the Attribution 4.0 International (CC BY 4.0). To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/.
If you make use of the TeachOpenCADD material in scientific publications, please cite our respective articles. It will help measure the impact of the TeachOpenCADD platform and future funding, thank you!
TeachOpenCADD Jupyter notebooks' main citation: Talktorials T001-T022 (paper)
@article{TeachOpenCADD2022,
author = {Sydow, Dominique and Rodríguez-Guerra, Jaime and Kimber, Talia B and Schaller, David and Taylor, Corey J and Chen, Yonghui and Leja, Mareike and Misra, Sakshi and Wichmann, Michele and Ariamajd, Armin and Volkamer, Andrea},
title = {TeachOpenCADD 2022: open source and FAIR Python pipelines to assist in structural bioinformatics and cheminformatics research},
journal = {Nucleic Acids Research},
year = {2022},
doi = {10.1093/nar/gkac267},
}
TeachOpenCADD Jupyter notebooks' original citation: Talktorials T001-T010 (paper)
@article{TeachOpenCADD2019,
author = {Sydow, Dominique and Morger, Andrea and Driller, Maximilian and Volkamer, Andrea},
title = {{TeachOpenCADD: a teaching platform for computer-aided drug design using open source packages and data}},
journal = {Journal of Cheminformatics},
year = {2019},
volume = {11},
number = {1},
pages = {29},
doi = {10.1186/s13321-019-0351-x},
}
TeachOpenCADD Jupyter notebooks on kinase similarities: Talktorials T023-T028 (paper)
@article{TeachOpenCADDKinaseEdition,
author = {Kimber, Talia B and Sydow, Dominique and Volkamer, Andrea},
title = {{Kinase similarity assessment pipeline for off-target prediction [v1.0]}},
journal = {Living Journal of Computational Molecular Science},
year = {2022},
doi = {10.1186/s13321-019-0351-x},
}
TeachOpenCADD KNIME workflows (paper)
@article{TeachOpenCADDKNIME2019,
author = {Sydow, Dominique and Wichmann, Michele and Rodríguez-Guerra, Jaime and Goldmann, Daria and Landrum, Gregory and Volkamer, Andrea},
title = {{TeachOpenCADD-KNIME: A Teaching Platform for Computer-Aided Drug Design Using KNIME Workflows}},
journal = {Journal of Chemical Information and Modeling},
year = {2019},
volume = {59},
number = {10},
pages = {4083-4086},
doi = {10.1021/acs.jcim.9b00662},
}
How to use the TeachOpenCADD material for teaching (chapter)
@inbook{doi:10.1021/bk-2021-1387.ch010,
author = {Sydow, Dominique and Rodríguez-Guerra, Jaime and Volkamer, Andrea},
title = {Teaching Computer-Aided Drug Design Using TeachOpenCADD},
booktitle = {Teaching Programming across the Chemistry Curriculum},
chapter = {10},
pages = {135-158},
doi = {10.1021/bk-2021-1387.ch010},
}
- Cheminformatics and structural bioinformatics:
rdkit
,openbabel
,mdanalysis
,biopython
,biopandas
,opencadd
,plip
,openff
,openff-toolkit
,openmmforcefields
,pdbfixer
,mdanalysis
,biotite
,smina
- Data science (PyData stack):
numpy
,pandas
,scikit-learn
,keras
,jupyter
,ipywidgets
- Data visualization:
matplotlib
,mpl_toolkits
,matplotlib_venn
,seaborn
,nglview
- Web services clients:
pypdb
,chembl_webresource_client
,requests
,bravado
,beautifulsoup4
- Utilities:
tqdm
,requests_cache
,redo
,google-colab
,condacolab
- Continuous integration:
pytest
,nbval
- Documentation:
sphinx
,nbsphinx
- Code style:
black-nb
If we are using your resource and forgot to add it here, please contact us so that we can rectify this, thank you!
Volkamer Lab's projects are supported by several public funding sources (for more info see our webpage).
TeachOpenCADD has been initiated by the members of Volkamer Lab, Charité - Universitätsmedizin Berlin, with special thanks to dominiquesydow, jaimergp and AndreaVolkamer. The platform has been filled with life by our students from the CADD courses taught in the bioinformatics program at Freie Universität Berlin.
Many thanks to everyone who has contributed to TeachOpenCADD by working on talktorials (check out the talktorial READMEs for author information - example) and/or by helping in any other way (see GitHub contributors).
You are welcome to contribute to the project either by requesting new topics, proposing ideas or getting involved in the development! Please, use this form to let us know!