Skip to content
TeachOpenCADD: a teaching platform for computer-aided drug design (CADD) using open source packages and data
Jupyter Notebook
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
README_figures README: Remove logo Sep 24, 2019
contribute Add contribute folder with talktorial template Dec 11, 2019
introductory_notebooks Fix typo Apr 9, 2019
talktorials Merge pull request #6 from jaimergp/bye-pymol Oct 23, 2019
.gitignore Create .gitignore (Python template + add *.sqlite) Oct 8, 2019
LICENSE Remove filename extension Apr 11, 2019 Update Zenodo DOI to KNIME workflow version v1.0.2 Jan 24, 2020
apt.txt Add installation requirements Apr 25, 2019
environment.yml Update global environment file Oct 15, 2019


A teaching platform for computer-aided drug design (CADD) using open source packages and data

Volkamer Lab

In Silico Toxicology and Structural Bioinformatics
Institute of Physiology
Charité - Universitätsmedizin Berlin

TeachOpenCADD Jupyter Notebooks

DOI DOI Binder

TeachOpenCADD KNIME Workflows


Table of contents


(Back to Table of contents.)

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 such as the TDT initiative [1], addressing especially users new to the field.

TeachOpenCADD [2] 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.

For each topic, an interactive Jupyter Notebook [3] was developed, using open source packages such as the Python packages RDKit [4], PyPDB [5], and PyMol [6]. Additionally, we offer topics 1-8 in the form of KNIME workflows [7], which allow to perform the same tasks using a graphical user interface instead of coding.

With this platform, we aim to introduce interested users to the ease and benefit of using open source tools for cheminformatics and structural bioinformatics. Topics will be continuously expanded and are 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.

[1] S. Riniker et al., F1000Research, 2017, 6, 1136
[2] D. Sydow et al., J Chem, 2019, 11, 29
[3] T. Kluyver et al., IOS Press, 2016, 87-90.
[4] G. Landrum, RDKit
[5] W. Gilpin, Bioinform, 2016, 32, 156-60
[6] The PyMOL Molecular Graphics System, Version 1.8, Schrödinger, LLC
[7] A. Fillbrunn et al., J Biotechnol, 2017, 261, 149–156


(Back to Table of contents.)

TeachOpenCADD topics
Figure adapted from Figure 1 in the TeachOpenCADD publication, D. Sydow et al., J Chem, 2019, 11, 29.

TeachOpenCADD offers teaching material on common tasks in computer-aided drug design. Currently, the following topics are available:


  • Topic 1. Compound data acquisition: ChEMBL
  • Topic 2. Molecular filtering: ADME and lead-likeness criteria
  • Topic 3. Molecular filtering: Unwanted substructures
  • Topic 4. Ligand-based screening: Compound similarity
  • Topic 5. Compound clustering
  • Topic 6. Maximum common substructures
  • Topic 7. Ligand-based screening: Machine learning

Structural bioinformatics

  • Topic 8. Protein data acquisition: Protein Data Bank (PDB)
  • Topic 9. Ligand-based pharmacophores
  • Topic 10. Binding site similarity
  • Topic 11. Structure-based CADD using online APIs/servers
    • 11a. Querying KLIFS & PubChem for potential kinase inhibitors
    • 11b. Docking the candidates against the target
    • 11c. Visualizing the results and comparing against known data

The teaching material is offered in the following formats:

  • Coding-based Jupyter Notebooks (topics 1-11) here on GitHub, so called talktorials (talk + tutorial), i.e. tutorials that can also be used in presentations
  • GUI-based KNIME workflows (topics 1-8) on the KNIME Hub


(Back to Table of contents.)

You can use Binder to host the repository and all needed dependencies, or you can use our talktorials locally (download repository and install dependencies).

Use Binder (for talktorials T1-T8)

Use binder to host the repository and all needed dependencies by following this link:


The setup will take a few minutes.

Install locally (for all talktorials)


  1. Get your local copy of the TeachOpenCADD repository (including the talktorials) by

    a. ... either downloading it as zip archive and unzipping it:

    Download repository

    b. ... or cloning it to your computer using the package git:

    git clone
  2. Use the Anaconda software for a clean package version management.

    Install Anaconda2 or Anaconda3. In theory, it should not matter which Anaconda version you install. However, we only tested it for Anaconda2, so we cannot guarantee the same behaviour for Anaconda3.

  3. Use the package management system conda to create an environment (called teachopencadd) for the talktorials.

    We provide an environment file (yml file) containing all required packages.

    conda env create -f environment.yml

    Note: You can also create this environment manually. Check "Alternatively create conda environment manually" for this.

  4. Activate the conda environment.

    conda activate teachopencadd

    Now you can work within the conda environment.

  5. Link the conda environment to the Jupyter notebook.

    python -m ipykernel install --user --name teachopencadd
    # FYI, uninstall this link again with this command:
    #jupyter kernelspec uninstall teachopencadd
  6. Start the Jupyter notebook.

    jupyter notebook
  7. Change the Jupyter kernel to the conda environment via the menu:

    Kernel > Change kernel > teachopencadd

    Change Jupyter kernel

  8. Now you can get started with your first talktorial. Enjoy!

Alternatively create conda environment manually

Note: This is the alternative to creating the conda environment using the yml file as described in step 3 above.

# Create and activate an environment called `teachopencadd`
conda create -n teachopencadd python=3.6
conda activate teachopencadd

# Install packages via conda
conda install jupyter  # Installs also ipykernel
conda install -c conda-forge rdkit  # Installs also numpy and pandas
conda install -c samoturk pymol  # Linux: Installs also freeglut and glew
conda install -c conda-forge pmw  # Necessary for PyMol terminal window to pop up
conda install -c conda-forge scikit-learn  # Installs also scipy
conda install -c conda-forge seaborn  # Installs also matplotlib
conda install -c conda-forge chembl_webresource_client
conda install -c conda-forge biopandas
conda install -c conda-forge pypdb


Generally, the installation works the same under Linux and Windows without problems.

The only difference, we encountered, is the installation of PyMol:

  • Download PyMol from
  • Put it where Anaconda2 is installed (e.g. C:\Anaconda2)
  • Open a command prompt as administrator (Windows > accessories > command prompt, "right-click" > open as administrator)
  • Go to the Anaconda directory by typing the correct path on the prompt:
cd C:/Anaconda2
set path=%path%;C:\Anaconda2
pip install pymol‑2.3.0a0‑cp36‑cp36m‑win_amd64.whl
pip install pymol_launcher‑2.1‑cp36‑cp36m‑win_amd64.whl
# or whatever pymol_XXXX.whl you have downloaded


The installation works the same as under Linux, however we could not install pymol from the open source samoturk conda channel. You can use the schrodinger channel. Unfortunately a Schrödinger license is needed to run PyMOL (the license is free for educational use).

For the installation done manually, replace the command:

conda install -c samoturk pymol  # Installs also freeglut and glew

with the following

conda install -c schrodinger pymol  # Installs also freeglut and glew


(Back to Table of contents.)

Please contact us if you have questions or suggestions!

We are looking forward to hearing from you!


(Back to Table of contents.)

This work is licensed under the Attribution 4.0 International (CC BY 4.0). To view a copy of this license, visit


(Back to Table of contents.)

The authors of the TeachOpenCADD platform received public funding from the following funders:

  • Bundesministerium für Bildung und Forschung (Grant Number 031A262C)
  • Deutsche Forschungsgemeinschaft (Grant number VO 2353/1-1)
  • HaVo-Stiftung, Ludwigshafen, Germany
  • Stiftung Charité (Einstein BIH Visiting Fellow project)
  • "SUPPORT für die Lehre" program (Förderung innovativer Lehrvorhaben) of the Freie Universität Berlin
  • Open Access Publication Fund of Charité – Universitätsmedizin Berlin

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!

    author = {Sydow, Dominique and Morger, Andrea and Driller, Maximilian and Volkamer, Andrea},
    doi = {10.1186/s13321-019-0351-x},
    journal = {J. Cheminform.},
    number = {1},
    pages = {29},
    title = {{TeachOpenCADD: a teaching platform for computer-aided drug design using open source packages and data}},
    url = {},
    volume = {11},
    year = {2019}

    author = {Sydow, Dominique and Wichmann, Michele and Rodr{\'{i}}guez-Guerra, Jaime and Goldmann, Daria and Landrum, Gregory and Volkamer, Andrea},
    doi = {10.1021/ACS.JCIM.9B00662},
    journal = {J. Chem. Inf. Model.},
    publisher = {American Chemical Society},
    title = {{TeachOpenCADD-KNIME: A Teaching Platform for Computer-Aided Drug Design Using KNIME Workflows}},
    url = {},
    year = {2019}
You can’t perform that action at this time.