Spaces:
Sleeping
Sleeping
File size: 5,865 Bytes
991d5ce | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | # Reproducing FLARE paper experiments
Each top-level folder under `run_scripts/` is one paper setting. **Params YAML
files live alongside the scripts** in that folder.
## Naming convention
| Prefix | Role |
|--------|------|
| `0_*` | Training or preprocessing |
| `1_*` | Test / retrieval evaluation (+ `eval.py` metrics when a result pickle exists) |
Some settings split evaluation by candidate list (`cand_by_mass` vs
`cand_by_form`). Those use separate `1_run_test_*.sh` scripts that share the
same trained checkpoint but point at different params / candidate JSON files.
**Default eval path:** released checkpoint in `pretrained_models/` (override
with `FLARE_CHECKPOINT`).
**Full reproduction:** run `0_run_train.sh` in that folder, then the
appropriate `1_run_test_*.sh`.
---
## Directory layout
```
run_scripts/
βββ msgym_main/ # FLARE (main paper model)
β βββ params.yaml # candidates by mass
β βββ params_cand_by_form.yaml # candidates by formula
β βββ 0_run_train.sh # train FLARE
β βββ 1_run_test_cand_by_mass.sh # eval, mass candidates
β βββ 1_run_test_cand_by_form.sh # eval, formula candidates
βββ msgym_global/ # global mean-pool baseline
β βββ params_global.yaml
β βββ 0_run_train.sh # train global contrastive model
β βββ 1_run_test_cand_by_mass.sh # eval, mass candidates
β βββ 1_run_test_cand_by_form.sh # eval, formula candidates
βββ msgym_cand_by_mass_msbuddy_pred_form/ # FLARE + msbuddy formulas (eval only)
βββ params_predicted_formula.yaml
βββ 0_preprocess_msgym/ # msbuddy annotation + subformulae
β βββ run.sh
β βββ run_msbuddy.py
βββ 1_run_test.sh # eval with released FLARE checkpoint
```
---
## Experiment map
| Folder | Model | Train? | Params | Eval scripts |
|--------|-------|--------|--------|--------------|
| [`msgym_main/`](msgym_main/) | FLARE (`filipContrastive`) | `0_run_train.sh` | `params.yaml`, `params_cand_by_form.yaml` | `1_run_test_cand_by_mass.sh`, `1_run_test_cand_by_form.sh` |
| [`msgym_global/`](msgym_global/) | Global contrastive (`contrastive`) | `0_run_train.sh` | `params_global.yaml` | `1_run_test_cand_by_mass.sh`, `1_run_test_cand_by_form.sh` |
| [`msgym_cand_by_mass_msbuddy_pred_form/`](msgym_cand_by_mass_msbuddy_pred_form/) | FLARE + msbuddy formulas | preprocess only (`0_preprocess_msgym/run.sh`) | `params_predicted_formula.yaml` | `1_run_test.sh` |
---
## Quick start
### Main FLARE results (MassSpecGym)
Uses MIST-style subformulae under `data/subformulae_default/`.
```bash
# Optional: train from scratch
bash run_scripts/msgym_main/0_run_train.sh
# Eval with released checkpoint (default)
bash run_scripts/msgym_main/1_run_test_cand_by_mass.sh
bash run_scripts/msgym_main/1_run_test_cand_by_form.sh
```
### Global pooling baseline
```bash
bash run_scripts/msgym_global/0_run_train.sh # optional
bash run_scripts/msgym_global/1_run_test_cand_by_mass.sh
bash run_scripts/msgym_global/1_run_test_cand_by_form.sh
```
Prefer `pretrained_models/flare_global.ckpt` when available; scripts fall back
to `flare.ckpt` with a warning.
### msbuddy predicted formulas (eval-only)
No training script β reuses the main FLARE checkpoint. Preprocess writes
gitignored artifacts under this folder's `0_preprocess_msgym/data/`.
```bash
bash run_scripts/msgym_cand_by_mass_msbuddy_pred_form/0_preprocess_msgym/run.sh
bash run_scripts/msgym_cand_by_mass_msbuddy_pred_form/1_run_test.sh
```
---
## Params files
Each experiment folder ships its own YAML. Paths inside are **relative to the
repository root** unless absolute. Override any file with `FLARE_PARAMS`:
```bash
export FLARE_PARAMS="$PWD/run_scripts/msgym_main/params.yaml"
```
| File | Used for |
|------|----------|
| `msgym_main/params.yaml` | FLARE training + mass-candidate eval |
| `msgym_main/params_cand_by_form.yaml` | Formula-candidate eval (same architecture) |
| `msgym_global/params_global.yaml` | Global contrastive train + eval |
| `msgym_cand_by_mass_msbuddy_pred_form/params_predicted_formula.yaml` | msbuddy subformulae + mass-candidate eval |
---
## Shared environment variables
| Variable | Purpose |
|----------|---------|
| `FLARE_REPO_ROOT` | Repository root (auto-detected by scripts) |
| `FLARE_PARAMS` | Override params YAML (default: co-located params in each folder) |
| `FLARE_CHECKPOINT` | Checkpoint for eval |
| `MASSSPECGYM_TSV` | MassSpecGym spectra TSV |
| `CANDIDATES_JSON` | Retrieval candidate list JSON |
| `SUBFORMULA_DIR` | Per-spectrum subformula JSON directory |
| `EXP_DIR` | Output directory under `experiments/` |
| `LIMIT` | (preprocess) limit spectra for a smoke test |
| `SKIP_ASSIGN` | (preprocess) annotate only; skip subformula assignment |
---
## Data layout (expected under repo `data/`)
Place MassSpecGym files yourself:
```
data/MassSpecGym.tsv
data/MassSpecGym_retrieval_candidates_mass.json
data/MassSpecGym_retrieval_candidates_formula.json
data/subformulae_default/ # one JSON per spectrum id (MIST-style)
```
Generate MIST-style subformulae with:
```bash
cd flare/subformula_assign
SPEC_FILES=$PWD/../../data/MassSpecGym.tsv \
OUTPUT_DIR=$PWD/../../data/subformulae_default \
bash run.sh
```
msbuddy outputs for the predicted-formula experiment land under
`run_scripts/msgym_cand_by_mass_msbuddy_pred_form/0_preprocess_msgym/data/`
(gitignored). Regenerate with `0_preprocess_msgym/run.sh` or host/download
those artifacts separately.
---
## Metrics
After `test.py`, eval scripts call `flare/eval.py <result_*.pkl> --ci --mces`
when a result pickle is present. Artifacts land in `experiments/<name>/`.
|