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.3

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.3
File Size Uploaded
txoptimus-0.1.3.tar.gz 2.5 MB Details

Built distribution (wheel)

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

Total release size: 5.0 MB

Release files / txoptimus-0.1.3.tar.gz

Download URL txoptimus-0.1.3.tar.gz
Size 2.5 MB
Tags Source
SHA-256 checksum
How to use checksums
07f7921a47aac1f4815adccb6ed246a42e9e02e0037324c1683cf7b67d05b70c
BLAKE2b-256 checksum
How to use checksums
90a9e2dc224b8433320d4785efd3a9bb060c5b59714dd2d9c71a073e70310001
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.3-py3-none-any.whl

Download URL txoptimus-0.1.3-py3-none-any.whl
Size 2.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
b44408ba2ee21a61382a0832ab172e9dc14dcf7b27ed59594c46ee2a8e22b4cd
BLAKE2b-256 checksum
How to use checksums
62e555b696690dbbca287e78ae683ad63b3e584e81da0a1355eb0c59f5361fbd
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

0.1.7

2 release files

0.1.4

2 release files

This release

0.1.3 This release

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