Skip to main content

TxOptimus

Zero-shot drug repurposing via TxGNN on PrimeKG and OptimusKG.

TxOptimus is a unified Python package that wraps TxGNN (Huang et al., Nature Medicine, 2024) with two knowledge graph backends:

  • TxGNN Prime — the original baseline trained on Harvard PrimeKG
  • TxGNN Optimus — an enriched model trained on the Zitnik Lab's OptimusKG, a multimodal knowledge graph validated by LLM extraction (PaperQA3)

OptimusKG achieves a ~34% improvement in Macro AUROC over PrimeKG in zero-shot drug repurposing for oncology under the cell_proliferation split.

Installation

# Create a dedicated environment (recommended)
conda create -n txoptimus python=3.8
conda activate txoptimus

# Install DGL first (not available on PyPI, requires separate wheel)
# For CUDA 12.1:
pip install https://data.dgl.ai/wheels/torch-2.4/cu121/dgl-2.4.0%2Bcu121-cp38-cp38-manylinux1_x86_64.whl
# For CPU only:
# pip install https://data.dgl.ai/wheels/torch-2.4/cpu/dgl-2.4.0-cp38-cp38-manylinux1_x86_64.whl

# Install TxOptimus
pip install txoptimus

⚠ System Requirements:

  • RAM: ≥32 GB (OptimusKG loads a 21.8M-edge graph)
  • Storage: ≥8 GB free disk space
  • Python: 3.8+ (tested on 3.8.20)
  • GPU: Optional (CPU inference supported)

Quick Start

1. Download data files

txoptimus --setup              # downloads both PrimeKG and OptimusKG data
txoptimus --setup prime        # only PrimeKG
txoptimus --setup optimus      # only OptimusKG

2. Run zero-shot drug repurposing

# Using OptimusKG (recommended)
txoptimus --engine optimus --diseases "oral cavity cancer" "glioblastoma"

# Using PrimeKG baseline
txoptimus --engine prime --diseases "oral cavity cancer"

# Benchmark mode — runs both and generates a comparison report
txoptimus --engine benchmark --diseases "oral cavity cancer"

3. Fuzzy disease matching

TxOptimus uses PubMedBERT embeddings to fuzzy-match your disease terms against the knowledge graph vocabulary. If your input doesn't match exactly, the tool will show the top-10 closest matches and let you pick:

Disease term: "breast cancer"

Matched terms in OPTIMUS:
  [1] invasive breast carcinoma (similarity: 0.94)
  [2] breast carcinoma (similarity: 0.91)
  [3] triple-negative breast cancer (similarity: 0.89)

Select terms (e.g., '1 3' or 'all'): 1 3

4. Enable explainability

# Add --graphmask to enable GraphMask pathway attribution
txoptimus --engine optimus --diseases "oral cavity cancer" --graphmask

Note: GraphMask requires ≥30 GB RAM and takes 2-4 hours on CPU.

Full CLI Reference

Argument Type Default Description
--engine str optimus prime, optimus, or benchmark
--diseases str[] (required) Disease terms (fuzzy matched)
--graphmask flag False Enable GraphMask explainability
--output_dir str ./txoptimus_output Output directory
--prefix str txoptimus File prefix
--threads int 18 CPU threads
--top_k int 100 Drug candidates per disease
--setup str? — Download data (prime/optimus/both)
--data_dir str ~/.txoptimus Data directory override

Output Files

File Description
{prefix}_{engine}_results.json Full metrics (AUROC, AUPRC, per-relation, graph profile)
{prefix}_{engine}_candidates.csv Top-K drug candidates ranked by score
{prefix}_comparison_report.md Side-by-side comparison (benchmark mode only)

Citation

If you use TxOptimus in your research, please cite the original TxGNN paper:

@article{huang2024txgnn,
  title={Zero-shot prediction of therapeutic use with geometric deep learning and clinician centered design},
  author={Huang, Kexin and Chandak, Payal and Wang, Qianwen and Haber, Shreyas and Zitnik, Marinka},
  journal={Nature Medicine},
  year={2024}
}

License

MIT License — see LICENSE for details.

Author

arsalanriaz

Release files for txoptimus 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for txoptimus 0.1.7
File Size Uploaded
txoptimus-0.1.7.tar.gz 2.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for txoptimus 0.1.7
File Interpreter ABI Platform
txoptimus-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 5.1 MB

Release files / txoptimus-0.1.7.tar.gz

Download URL txoptimus-0.1.7.tar.gz
Size 2.5 MB
Tags Source
SHA-256 checksum
How to use checksums
9989d0f0a6b18d2204e868429a8e96f3fd2bb06a20f10f4217a5ea5a48a76f18
BLAKE2b-256 checksum
How to use checksums
324a595e57ac8de5dad557708a18fb5f897e7f7e7d417ed3c30281c9e7153944
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.20

Release files / txoptimus-0.1.7-py3-none-any.whl

Download URL txoptimus-0.1.7-py3-none-any.whl
Size 2.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
ff88dea1cf8e5eeb4078ccfb5a5d676a5becc4bffdb1a162113f1314a5b65344
BLAKE2b-256 checksum
How to use checksums
1dd7d7f47fbefc09049e421aa5efc44e33c4a9af34b028906d84696d491425a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.20

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page