A hands-on workshop for graduate students and research scientists in chemistry and chemical biology.
Context: Drug discovery for neglected tropical diseases (Malaria) and African natural products.
CAISMD 2026
The complete workshop materials (notebooks, datasets, slides) will be released the day before the workshop via this repository. Participants are encouraged to clone the repo and run the environment setup steps in advance so the session can start immediately with coding.
To be notified: watch this repository (GitHub → Watch → All activity).
Title: Mapping Molecular Landscapes: Open-Source Approaches to Chemical Space Exploration
The chemical space — the virtually infinite universe of possible molecules — underpins modern drug discovery, agrochemical design, and materials innovation, among others. Yet, navigating its vastness is a central challenge. This hands-on workshop introduces powerful computational visualization techniques to map this complex territory using open-source tools.
Participants will learn the essential workflow for transforming complex molecular datasets into intuitive visual representations. The core objective is to create and critically interpret 2D and 3D 'molecular landscape' maps to reveal underlying patterns in structure-activity relationships (SAR). Attendees will leave with a practical, reproducible workflow to accelerate data-driven molecular design, discovery and analysis in their own research projects.
GitHub: https://github.com/djoy4stem/caismd_2026_chemspace_xplr
| Folder / File | Contents |
|---|---|
README.md |
This file |
requirements.txt |
Python package dependencies |
src/ |
Data preparation script and shared utility functions used by the notebooks |
notebooks/ |
Student notebooks (fill-in-the-blank) for the main workshop and Extension J |
slides/ |
Workshop slide deck |
assets/ |
Figures and images referenced from the notebooks |
data/ |
Raw source files, notebook-ready CSVs generated by src/prepare_datasets.py, and dataset documentation |
Before opening the notebook, run the preparation script once to generate notebook-ready CSVs from the raw data files:
# From the workshop root, with the conda environment active:
python src/prepare_datasets.pyThis produces three files in data/:
| File | Contents | Used in |
|---|---|---|
malaria_box.csv |
400 MMV Malaria Box compounds | intermediate |
afrodb_subset.csv |
903 AfroDb natural products | Extension 4 |
malaria_box_afrodb_combined.csv |
Combined 1 303-compound dataset | Parts B–I, Ext 1–2 |
pubchem_aid2302_2k.csv is pre-processed and ready to use directly (Extension 3 + Extension J).
See data/README_data.md for full column documentation.
- Graduate students in chemistry, chemical biology, or pharmaceutical sciences
- Beginner-to-intermediate Python/Jupyter knowledge
- No prior machine learning or cheminformatics experience required
By the end of this workshop, students will be able to:
- Load a real molecular dataset and apply the standard preprocessing pipeline: parse SMILES, remove salts, and extract the largest organic moiety
- Represent molecules numerically — compute Lipinski physicochemical descriptors (MW, LogP, HBD, HBA, TPSA), apply the Rule of 5, and generate Morgan (ECFP4) fingerprints
- Measure molecular similarity using the Tanimoto coefficient and interpret block-structured similarity heatmaps
- Reduce high-dimensional chemical space to 2D and 3D using PCA and UMAP, and explain when each method is appropriate
- Interpret chemical-space maps by colouring them by biological activity, physicochemical properties, and Murcko scaffold diversity
- Contextualise results biologically — identify activity cliffs, discuss SAR implications, and compare the chemical space of African natural products vs. synthetic anti-malarials
⚠️ Do this before the workshop day. Setup takes 5–10 minutes on a good connection.
If you hit issues, bring your laptop to the room 15 minutes early.
Step 1: Install Miniforge (skip if you already have conda/mamba)
# Download from: https://github.com/conda-forge/miniforge/releases/latest
bash Miniforge3-$(uname)-$(uname -m).shStep 2: Create the workshop environment
conda create -n chemspace_xplr python=3.10 --yes
conda activate chemspace_xplrStep 3: Install RDKit and all dependencies
conda install -c conda-forge rdkit --yes
pip install -r requirements.txtStep 3b: Register the environment as a Jupyter kernel
⚠️ This step is required. Without it, Jupyter will not see thechemspace_xplrenvironment, even if the server is already running.
pip install ipykernel
python -m ipykernel install --user --name chemspace_xplr --display-name "Python (chemspace_xplr)"After this, restart (or refresh) your Jupyter server and select Python (chemspace_xplr) from the kernel picker.
Step 4: Verify the installation
pip check # should print: No broken requirements found.
python -c "import rdkit, umap, sklearn, pandas, mols2grid; print('✅ All dependencies loaded.')"Step 5: Launch Jupyter
jupyter lab
# Open: notebooks/caismd_2026_chemspace_xplr.ipynbpython -m venv chemspace_xplr
source chemspace_xplr/bin/activate # Windows: chemspace_xplr\Scripts\activate
pip install -r requirements.txt
python -m ipykernel install --user --name chemspace_xplr --display-name "Python (chemspace_xplr)"
pip check
jupyter labIf you already use VS Code, this is the simplest option — no browser, no separate Jupyter server.
Step 1: Install the Jupyter extension
Open VS Code → Extensions (Cmd+Shift+X) → search Jupyter → install the extension by Microsoft.
Also install the Python extension if you haven't already.
Step 2: Create and activate the conda environment (same as Option A Steps 1–3b above)
conda create -n chemspace_xplr python=3.10 --yes
conda activate chemspace_xplr
conda install -c conda-forge rdkit --yes
pip install -r requirements.txt
python -m ipykernel install --user --name chemspace_xplr --display-name "Python (chemspace_xplr)"Step 3: Open the notebook in VS Code
Open notebooks/caismd_2026_chemspace_xplr.ipynb in VS Code.
Click Select Kernel (top-right of the notebook) → Python Environments → choose Python (chemspace_xplr).
💡 VS Code discovers registered kernels the same way Jupyter Lab does — via
ipykernel install.
Ifchemspace_xplrdoes not appear in the list, run Step 2'sipykernel installcommand, then
click Refresh in the kernel picker.
For participants without a capable local machine, the notebook is Colab-compatible.
Add this cell at the top before running anything:
!pip install -r https://raw.githubusercontent.com/YOUR_ORG/caismd_2026_chemspace_xplr/main/requirements.txtOr install packages directly:
!pip install rdkit umap-learn scikit-learn pandas matplotlib seaborn tqdm mols2grid ipywidgets jupyterlab💡 Instructor tip: If a participant's local setup fails, they can follow along on Google Colab by installing packages directly in a new notebook cell.
| File | Description | Compounds | Used in | Licence |
|---|---|---|---|---|
MalariaBox400compoundsDec2014.xls |
MMV Malaria Box — validated anti-P. falciparum activity (EC50), SMILES, Lipinski descriptors | 400 | Parts B–I, Ext 1–2 | CC BY 3.0 |
AfroDB_3D.sdf |
AfroDb (Ntie-Kang et al. 2013) — African natural products, 3D conformers | 954 → 903 after dedup | Extension 4, Ext J | Academic use |
pubchem_aid2302_2k.csv |
PubChem AID 2302 — P. falciparum Dd2 whole-cell screen, binary Active/Inactive labels. Random sample of 2 000 compounds drawn from the full assay dataset. | 2 000 | Extension 3, Ext J (J2–J4, J6) | Public domain |
⚠️ AfroDb (2026): The original website (african-compounds.org) is offline. Data is preserved from the paper's Supporting Information (Dataset S1, DOI: 10.1371/journal.pone.0078085). For updated African NP data, use COCONUT or NPASS v3.
| Notebook | Role | TODOs |
|---|---|---|
caismd_2026_chemspace_xplr.ipynb |
Main workshop — Parts A–I + Extensions 1–4 | 9 + 4 extension |
functional_group_profiling.ipynb |
Extension J — MACCS keys, Ertl fragments, Butina clustering, MACCS vs ECFP4 | 6 |
- Fill-in-the-blank (
# TODO:) cells for all key algorithmic steps - Pre-written cells for all boilerplate, plotting, and helper functions
💬 Stop & Discussprompts at Parts B, E, G, H — instructor pauses here (~2–3 min each)⚡ EXTENSIONcells are always optional and clearly labelled- Timing is annotated in every section header (
⏱ ~N min)
MIT License — Free to use, adapt, and redistribute with attribution.
If you adapt this material, please acknowledge:
Workshop: "Mapping Molecular Landscapes: Open-Source Approaches to Chemical Space Exploration"
Yannick Djoumbou Feunang;2026; Computational Applications in Secondary Metabolite Discovery Workshop.
Key open-source tools used:
- RDKit — Cheminformatics toolkit
- UMAP — Dimensionality reduction
- scikit-learn — PCA and ML utilities
- MMV Malaria Box — Anti-malarial compound dataset