Test whether fixing the cell-composition confound rescues the recovery test. GSE35007 measured WBC/RBC/MCV per sample, so adjust DE directly for them (per-gene OLS: expression ~ disease + WBC + RBC + MCV + age + sex) — a measured-covariate deconvolution, compared vs unadjusted. Finding (negative, informative): adjustment HURT hydroxyurea (rank 20 -> 35, fails top-10%) — it was recovering partly via composition genes — and did NOT fix negative-control specificity (still 2/5). Only gain: top hits become more mechanistically coherent (resveratrol, aspirin enter). Conclusion: cleaning the disease signature does not rescue connectivity; the binding constraint is matching-side (needs a reference-signature library for proper specificity calibration), which is a multi-disease investment. v1.1 signature NOT replaced. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Reverso MVP — Sickle Cell Repurposing Pipeline
A minimum viable drug repurposing pipeline for sickle cell disease: build a disease signature from public transcriptomic data, build drug profiles for ~300 small molecules, and rank them by CMap-style connectivity scoring. Validated by a recovery test — do the two known sickle cell drugs (hydroxyurea, L-glutamine) rank near the top?
See PLAN.md for the full specification, locked decisions, and week-by-week build plan.
Quickstart
# Requires Python >=3.11,<3.13 (see note below)
pip install -e . # or: pip install -e ".[dev]" for test/lint tooling
pytest # run unit tests
Python version note: use Python 3.11–3.13 (
python3.13 -m venv .venv). Python 3.14 is not yet supported by all pipeline dependencies (pydeseq2,cmapPy).
Project layout
data/ raw (downloaded, never edited) / processed / results — gitignored
notebooks/ 01..05, run end-to-end in order
src/ identifiers, disease, drugs, scoring, provenance
tests/ scoring unit tests
docs/ recovery_test_report.md, data_sources.md, known_limitations.md
The deliverable
When complete, the artifact to share is three files:
docs/recovery_test_report.md— the 2-page write-updata/results/ranked_candidates_v1.csv— the ranked drug list- The signature + drug profile files with provenance
Pipeline
| Notebook | Stage | Output |
|---|---|---|
01_setup_identifiers.ipynb |
Pin disease/gene IDs | data/processed/identifiers.json |
02_disease_signature.ipynb |
GEO + differential expression | sickle_cell_signature_v1.json |
03_drug_profiles.ipynb |
ChEMBL + LINCS | drug_profiles_v1.parquet |
04_connectivity_scoring.ipynb |
CMap scoring | ranked_candidates_v1.csv |
05_recovery_test.ipynb |
Validation | docs/recovery_test_report.md |
Every persisted artifact carries a confidence tier (A/B/C) and provenance. See PLAN.md §3.
Description
Languages
Python
93%
Jupyter Notebook
7%