ESM2-GraphResidual-v2 / docs /USAGE_GUIDE.md
Marcochris's picture
Upload docs/USAGE_GUIDE.md
abd8a23 verified
|
Raw History Blame Contribute Delete
4.5 kB

Graph-Residual usage guide

This guide describes the complete local workflow for the public release. The repository contains code and configuration templates; raw datasets, licensed graph databases, logs, and checkpoint binaries are intentionally excluded.

1. Install the environment

Using Conda:

conda env create -f environment.yml
conda activate graph-residual

Or using an existing Python environment:

python -m pip install -r requirements.txt

The implementation was authored for Python 3.10 and uses PyTorch, NumPy, pandas, scikit-learn, matplotlib, and PyYAML.

2. Prepare data outside the repository

Set aside a project-assets directory containing:

  • 64-dimensional graph embeddings for disease, mutation, protein, ptm, and pathway nodes;
  • 640-dimensional fixed ESM2 embeddings and validity masks for mutation, protein, and ptm nodes;
  • a node mapping table with node_type, node_index, and node_id;
  • compressed relation tables under work/graph_core/edges/ named source__relation__target.tsv.gz.

Do not commit ClinVar, BioGRID, Reactome, raw sequences, or other licensed data. Record each asset’s source, version, license, and checksum in a private manifest.

3. Validate inputs

Run the input checks before training:

python scripts/inspect_inputs.py \
  --project_dir /path/to/project-assets \
  --out_dir /path/to/project-assets/work/input_audit

The audit checks embedding shapes, finite values, node-ID alignment, edge bounds, and benchmark coverage.

4. Run a sanity job

Use the small relation-preserving sweep before a full run:

python scripts/run_sanity.py \
  --project_dir /path/to/project-assets \
  --out_dir /path/to/project-assets/work/graph_residual_sanity

Review sanity_selection.json, relation coverage, cosine preservation, and residual-to-ESM norm ratio.

5. Train ESM-2 Graph-Residual

Copy configs/esm2.yaml and replace PROJECT_ROOT with the project-assets directory. The portable wrapper resolves that placeholder to the release root; for external assets, pass a config containing the absolute or relative asset directory explicitly.

python scripts/train.py --config configs/esm2.yaml

Important controls are graph_dim=64, hidden_dim=256, output_dim=640, learning_rate=0.001, batch_size=1024, epochs=20, and seed=42. The training code writes metrics and checkpoints to the configured output directory.

6. Use the AMPLIFY-120M implementation

AMPLIFY-120M is kept as an independent backbone family. Use configs/amplify.yaml for the verified contract: graph_dim=64, projection 64→640, normalized sequence/graph vectors, sigmoid gate, bounded positive alpha, and input-norm preservation. The copied official backbone source is under src/backbones/amplify/ and the unchanged P3 Graph-Residual source is src/models/amplify_graph_residual.py. Keep the official AMPLIFY checkpoint and all raw sequence/graph assets outside Git.

7. Export embeddings

Keep a reviewed checkpoint outside Git, then export embeddings:

python scripts/export_embeddings.py \
  --project-dir /path/to/project-assets \
  --checkpoint /path/to/checkpoint.pt \
  --out-dir /path/to/exported-embeddings

The exporter writes node mapping, fusion-mode metadata, float16 embeddings, and an integrity report.

8. Evaluate

Mutation–PTM ranking:

python scripts/evaluate.py mutation_ptm \
  --project_dir /path/to/project-assets \
  --out_dir /path/to/ranking-evaluation

ClinVar-style classification:

python scripts/evaluate.py clinvar \
  --project_dir /path/to/project-assets \
  --out_dir /path/to/clinvar-evaluation

The packaged evaluators reserve the test split for final reporting and select thresholds/models on validation data.

9. Reproduce reference figures locally

The release includes only the tabular source data. Picture outputs are intentionally not committed:

python scripts/reproduce_figures.py

Generated images appear under figures/reproduced/ locally. The archived selective PPI audit recorded NO_STABLE_GAIN against its controls; generated figures document that evaluation context and should not be read as a performance guarantee.

10. Reproducibility checklist

Before sharing a run, record the code commit, configuration file, asset manifest and checksums, Python/package versions, device, random seed, split definition, checkpoint checksum, and evaluation output directory. Keep all raw data and private artifacts outside the Git repository.