Skip to content

About

Flash cards to learn basic medicinal chemistry terminology for non-chemists

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Med Chem Trainer

An adaptive, browser-based trainer that teaches the visual and naming vocabulary of medicinal chemistry — rings, functional groups, amino acids, nomenclature, molecular properties, reactivity, and structural liabilities — to someone coming from biology or biophysics rather than synthetic chemistry.

It is a single self-contained HTML file (no server, no build step to use it): open dist/medchem_flashcards.html in any browser. Every structure is drawn live from SMILES, progress is stored locally, and the question mix adapts to what you still need.

Features

  • Adaptive scheduling. A Leitner spaced-repetition scheme, weighted by per-skill mastery, serves whatever you're weakest at while still reviewing what you've learned.
  • Skill dashboard. Eight skills, each with a level (0–5) and progress bar; a "Customize" panel lets you switch skills off.
  • Lesson cards. Short, illustrated intro cards appear once before a topic's first question (and are re-readable by clicking a skill in the dashboard).
  • Question types include: ring name ↔ structure and ring anatomy; functional-group name ↔ structure and "spot the group" on real drugs; the 20 amino acids; nomenclature rules (heteroatom prefixes, ring-size suffixes, ortho/meta/para); property comparisons (logP, TPSA, H-bond donors/acceptors); reactivity, acid/base, and bioisosteres; hybridization and H-bond role; and structural alerts / liabilities (reactive metabolites, Michael acceptors, PAINS, etc.).

All chemistry content is validated with RDKit (SMILES parsing, formula, substructure matches) and with the SmilesDrawer renderer before it ships.

Layout

build.py                 # inlines library + data -> dist/medchem_flashcards.html
src/
  app_src.html           # the engine (HTML/CSS/JS template with __LIB__/__ENTITIES__ markers)
  sd.min.js              # vendored SmilesDrawer (structure rendering)
  entities.js            # rings, functional groups, amino acids
  propmols.js            # molecules for the property-comparison questions
  stereomols.js          # legacy molecule set (kept for build compatibility)
  highlightq.js          # "spot the group" questions (RDKit-highlighted SVGs)
  hbqhyb.js              # hybridization + H-bond-role questions (RDKit-highlighted SVGs)
  alertq.js              # structural-alert / liability questions (RDKit-highlighted SVGs)
scripts/                 # data generators (provenance; see note below)
  genalerts.py genhyb.py genprops.py genreal.py genaa.py
  drugs.csv              # curated real-drug library (from MoleculeNet BBBP)
dist/
  medchem_flashcards.html  # the built, ready-to-use single file

Build

The committed dist/medchem_flashcards.html is ready to use as-is. To rebuild it from the sources in src/:

python3 build.py

This inlines sd.min.js and the *.js data files into app_src.html and writes the single-file output to dist/.

Regenerating the data (optional)

The src/*.js data files are committed artifacts. They were produced by the scripts in scripts/ using RDKit (pip install rdkit), which render the highlighted-atom SVGs and emit the question data. The scripts read/write flat filenames, so run them from a working directory that contains their inputs (e.g. drugs.csv) and copy the resulting *.js files into src/. They are included here for provenance, not as a turnkey pipeline.

Credits

  • Structure rendering: SmilesDrawer.
  • Chemistry validation: RDKit.
  • drugs.csv derives from the MoleculeNet BBBP dataset.

About

Flash cards to learn basic medicinal chemistry terminology for non-chemists

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages