Workflow Overview¶
ligand-classification is organized around one repeatable flow:
- Generate processed feature tables from a raw SMILES CSV.
- Describe one or more datasets in YAML.
- Train configured models through nested cross-validation.
- Save pipelines, metrics, dataset summaries, and logs.
- Reuse trained artifacts for evaluation and batch prediction.
Repository layout¶
| Path | Purpose |
|---|---|
src/cli/ |
User-facing commands for feature generation, exploration, training, evaluation, and prediction. |
src/training/ |
Dataset preparation, pipeline assembly, model registry, search helpers, logging, and summaries. |
src/features/ |
RDKit descriptor helpers, Morgan fingerprints, kekulization, and DeepPK API glue. |
src/evaluation/metrics.py |
Shared metric calculations used by training and evaluation. |
configs/ |
Canonical training configs plus hyperparameter grids. |
docs/ |
MkDocs content for the GitHub Pages site. |
tests/ |
Regression coverage for dataset prep, CLIs, metrics, and training bookkeeping. |
Canonical example path¶
The refreshed docs use the psychlight_a example data already checked into the repo:
- Raw input:
data/example/raw/psychlight_a.csv - Generated outputs:
data/example/processed/psychlight_a/ - Starter config:
configs/train.yaml
That flow matches the current process_features output names:
psychlight_a_descriptors.csvpsychlight_a_mordred.csvpsychlight_a_morgan.csvpsychlight_a_dpk.csvwhen DeepPK is enabledpsychlight_a_deeppk_extra.csvwhen DeepPK returns unmatched rows
What the training pipeline records¶
Each training run can produce:
- A pipeline-steps overview CSV in the configured log root.
- Timestamped model files under
training.outputs.model_dir/<dataset>/<date>/<hash>/. - Per-model metrics YAML files under
training.outputs.metrics_dir/<dataset>/<date>/<hash>/. - A dataset summary YAML and CSV in the metrics directory.
- A dataset log text file under
training.outputs.log_dir/<dataset>/<date>/<hash>/. - The shared ledger
models/tracking/training_runs.csv, regardless oftraining.outputs.log_dir.
Backward-compatibility note¶
Some checked-in processed descriptor exports in this repo still use *_rdkit.csv. Those are legacy artifacts from an older filename convention. The current CLI writes *_descriptors.csv, and the starter configs now follow that current behavior.