roxxxie0512 commited on
Commit
dea668c
·
verified ·
1 Parent(s): dca7af0

Rewrite README

Browse files
Files changed (3) hide show
  1. CupOFMoCA-PDC/README.md +161 -152
  2. CupOFMoCA-PROTAC/README.md +204 -79
  3. README.md +179 -27
CupOFMoCA-PDC/README.md CHANGED
@@ -1,129 +1,71 @@
1
- ---
2
- license: apache-2.0
3
- library_name: pytorch
4
- tags:
5
- - chemistry
6
- - drug-discovery
7
- - molecular-generation
8
- - peptide
9
- - discrete-flow
10
- - peptide-drug-conjugate
11
- ---
12
-
13
- # CupOFMoCA
14
-
15
- Code and PDC model artifacts for **CupOFMoCA: Coupled Objective-Guided Discrete Flows for
16
- Molecular Conjugate Assembly** (NeurIPS 2026).
17
-
18
- CupOFMoCA performs coupled, objective-guided discrete-flow generation while enforcing chemical
19
- assembly constraints. This release supports the paper's peptide-drug conjugate (PDC) experiments
20
- across SMILES, natural amino-acid (AA), and unnatural amino-acid (UAA) representations.
21
-
22
- ## Model overview
23
-
24
- CupOFMoCA is a research pipeline for generating peptide-drug conjugate candidates. It couples a
25
- pretrained discrete-flow generator with property guidance and conjugation-validity checks during
26
- sampling. This repository contains three generator checkpoints and the property scorers used by the
27
- released PDC pipeline:
28
-
29
- | Checkpoint | Representation | Role |
30
- |---|---|---|
31
- | `SMILESReDi_base.ckpt` | peptide SMILES | pretrained SMILES discrete-flow generator |
32
- | `PepReDi_base.pt` | canonical amino acids | pretrained AA discrete-flow generator |
33
- | `UAAReDi_base.pt` | extended amino-acid vocabulary | pretrained UAA discrete-flow generator |
34
-
35
- The checkpoints are loaded by the repository's custom PyTorch code; this is not a Transformers
36
- pipeline and does not provide a hosted-inference widget.
37
-
38
- ### Intended uses
39
-
40
- - Reproduce and inspect the paper's PDC generation experiments.
41
- - Generate computational PDC candidates for research and method development.
42
- - Extend or compare constrained, multi-objective molecular-generation methods.
43
-
44
- The release is not intended for clinical decisions, direct therapeutic use, or as a substitute for
45
- chemical synthesis, experimental validation, toxicology, or safety assessment.
46
-
47
- ### Training data
48
-
49
- - **AA-PepReDi:** peptides from PepNN and BioLip2, together with 6--49-residue sequences from
50
- PPIRef, using an 80:10:10 train/validation/test split.
51
- - **UAA-PepReDi:** 150,000 synthetic sequences constructed with `p2smi` across combinations of
52
- non-canonical and D-amino-acid composition, using an 80:10:10 split.
53
- - **SMILESReDi:** the released pretrained SMILESReDi weights are used without additional
54
- CupOFMoCA fine-tuning.
55
-
56
- Architecture, optimization, data construction, and scorer details are reported in Appendix E of
57
- the paper. Training datasets are not redistributed in this repository.
58
 
59
- ### Evaluation
 
 
60
 
61
- The paper evaluates generated PDCs for assembly validity and predicted functional properties across
62
- ERBB2, GNRHR, and NRP1, using SMILES, AA, and UAA representations. The reported results and
63
- experimental protocol are in the paper; the submitted evaluation routines are included under
64
- `smiles/evaluation/`.
65
 
66
- ### Limitations
 
 
67
 
68
- - Outputs and objective values are computational predictions, not experimentally validated
69
- compounds or guarantees of efficacy, synthesizability, toxicity, or safety.
70
- - The released configurations cover three receptor targets and fixed target-specific conjugation
71
- chemistries; performance outside this scope has not been established.
72
- - The release contains the paper's PDC stack only. Its PROTAC experiments require separate code and
73
- artifacts.
74
- - Results can vary with hardware, CUDA/PyTorch versions, and revisions of models downloaded at
75
- runtime.
76
 
77
- ## Repository layout
78
-
79
- ```text
80
- checkpoints/ generator weights
81
- configs/ paper settings and target sequences
82
- docs/ model-artifact details and checksums
83
- scripts/run_experiment.py unified experiment runner
84
- scripts/verify_release.py release integrity checker
85
- smiles/
86
- generation/ generation entry points
87
- evaluation/ metrics and analyzers
88
- models/ ReDi model and data code
89
- conjugation/ PDC assembly builders
90
- scoring/ property scorers
91
- smiles_tokenizer/ tokenizer code and vocabulary
92
- third_party/ peptide-to-SMILES conversion helper
93
- ```
94
 
95
- The release currently covers the PDC implementation. The PROTAC experiments described in the paper
96
- use a separate code and artifact stack that is not included here.
 
97
 
98
- ## 1. Environment
99
 
100
- A CUDA GPU is strongly recommended. The tested environment used Python 3.9, PyTorch 2.5.1, and
101
- CUDA 12.1.
102
 
103
  ```bash
104
  conda env create -f environment.yml
105
  conda activate cupofmoca
 
106
  ```
107
 
108
- Alternatively, install a PyTorch build appropriate for your CUDA driver and then install the pinned
109
- packages:
 
 
 
 
 
 
110
 
111
  ```bash
112
  pip install -r requirements.txt
113
  ```
114
 
115
- On first use, Transformers downloads `facebook/esm2_t33_650M_UR50D` and
116
- `aaronfeller/PeptideCLM-23M-all` from Hugging Face. Set `HF_HOME` to a persistent cache if needed.
117
 
118
- Verify the bundled artifacts and source paths before running an experiment:
 
 
 
 
119
 
120
- ```bash
121
- python scripts/verify_release.py
122
- ```
 
123
 
124
- ## 2. Run PDC generation
125
 
126
- Run commands from the repository root. Preview a configured command without loading models:
 
 
127
 
128
  ```bash
129
  python scripts/run_experiment.py \
@@ -134,7 +76,7 @@ python scripts/run_experiment.py \
134
  --dry-run
135
  ```
136
 
137
- Run the experiment:
138
 
139
  ```bash
140
  python scripts/run_experiment.py \
@@ -144,83 +86,150 @@ python scripts/run_experiment.py \
144
  --target NRP1
145
  ```
146
 
147
- Run a small smoke test:
148
 
149
  ```bash
150
  python scripts/run_experiment.py \
151
- --representation aa --variant baseline --method staged --target ERBB2 \
 
 
 
152
  --num-candidates 1
153
  ```
154
 
155
- Outputs are written under `outputs/` in separate run directories. Existing outputs are protected
156
- unless `--force` is supplied. Arguments after `--` are passed to the underlying generator:
 
 
 
 
 
 
 
 
 
 
 
 
157
 
158
  ```bash
159
  python scripts/run_experiment.py \
160
- --representation smiles --variant cupofmoca --method guided --target GNRHR \
 
 
 
161
  -- --top_k 100
162
  ```
163
 
164
- ### Configurations
165
 
166
- | Target | Protein | Conjugation builder | Default SMILES length |
167
- |---|---|---|---:|
168
- | ERBB2 | receptor tyrosine-protein kinase erbB-2 | `SSCpt` | 80 |
169
- | GNRHR | gonadotropin-releasing hormone receptor | `AoaDau` | 80 |
170
- | NRP1 | neuropilin-1 | `DSPASN38` | 100 |
 
 
 
 
171
 
172
- AA and UAA runs use length 10. Shared settings include 128 optimization steps, top-p 1.0,
173
- objective weights `[1, 1]`, and acceptance sampling with beta 50 for CupOFMoCA. The machine-readable
174
- configuration is in `configs/paper.json`; target sequences are in `configs/targets.fasta`.
175
 
176
- ### Direct entry points
 
177
 
178
- The full argument surfaces remain available under `smiles/generation/`:
 
 
 
 
179
 
180
- ```text
181
- guided.py cupofmoca_guided.py
182
- guided_aa.py cupofmoca_guided_aa.py
183
- guided_uaa.py cupofmoca_guided_uaa.py
184
- staged.py cupofmoca_staged.py
185
- staged_aa.py cupofmoca_staged_aa.py
186
- staged_uaa.py cupofmoca_staged_uaa.py
187
  ```
188
 
189
- Run one directly as a module, for example:
 
 
 
 
 
190
 
191
  ```bash
192
- python -m smiles.generation.cupofmoca_guided_uaa --help
 
193
  ```
194
 
195
- `smiles/evaluation/run_metrics.py` and `smiles/evaluation/run_metrics_uaa.py` contain the submitted evaluation routines.
196
- Use `python <file> --help` to inspect their arguments.
 
 
 
 
 
 
 
 
197
 
198
- ## 3. Included checkpoints
 
 
199
 
200
- The release includes the SMILES, AA, and UAA generator weights together with the binding,
201
- hemolysis, non-fouling, and solubility scorers needed by the PDC pipeline. Artifact roles, sizes, and
202
- SHA-256 values are listed in [docs/ARTIFACTS.md](docs/ARTIFACTS.md).
203
 
204
- The AA-input affinity predictor is not included because the PDC generation configuration uses the
205
- bundled SMILES-input scorer (`--affinity_type smiles`).
206
 
207
- Large `*.pt` and `*.ckpt` files are configured for Git LFS. The repository is approximately 1.9 GB
208
- before environment and model-cache downloads.
209
 
210
- The checkpoint formats are loaded through PyTorch. As with any pickle-backed PyTorch artifact,
211
- only load weights obtained from a source you trust.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212
 
213
- ## 4. Notes
214
 
215
- - The paper reports NVIDIA RTX A6000 48 GB GPUs. Lower-memory devices may require smaller batches.
216
- - Exact bitwise output can vary across CUDA, PyTorch, GPU, and downloaded model revisions.
217
- - Generated structures are computational hypotheses that require experimental validation. Property
218
- models are predictors, not clinical or safety guarantees.
219
- - The peptide-to-SMILES helper used by the experiments is vendored under `third_party/` with its
220
- upstream license notice.
 
 
 
 
 
 
 
 
 
221
 
222
- ## 5. Citation and license
223
 
224
- Citation metadata is provided in `CITATION.cff`. The repository code is released under Apache-2.0;
225
- see `LICENSE` and `NOTICE`. Third-party components and downloaded model artifacts retain their
226
- respective terms.
 
1
+ # CupOFMoCA for peptide-drug conjugates
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
+ This folder contains the PDC code, model weights, property scorers, target sequences, and
4
+ paper configurations for **CupOFMoCA: Coupled Objective-Guided Discrete Flows for
5
+ Molecular Conjugate Assembly**.
6
 
7
+ The PDC workflow generates a peptide carrier and assembles it with a fixed payload through
8
+ a target-specific conjugation builder. CupOFMoCA applies property guidance and chemical
9
+ assembly checks during sampling. The release supports peptide SMILES, natural amino-acid
10
+ tokens, and an extended unnatural amino-acid vocabulary.
11
 
12
+ The [main README](../README.md) provides the shared project overview and a quickstart for
13
+ both conjugate modalities. This guide covers the PDC representations, targets, commands,
14
+ artifacts, and evaluation code in greater detail.
15
 
16
+ ## Representations and checkpoints
 
 
 
 
 
 
 
17
 
18
+ | Representation | Checkpoint | Generated sequence |
19
+ |---|---|---|
20
+ | SMILES | `checkpoints/SMILESReDi_base.ckpt` | peptide expressed with SMILES tokens |
21
+ | AA | `checkpoints/PepReDi_base.pt` | 10-residue peptide from canonical amino acids |
22
+ | UAA | `checkpoints/UAAReDi_base.pt` | 10-residue peptide from the extended amino-acid vocabulary |
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
+ The release also includes the binding, hemolysis, non-fouling, and solubility scorers used
25
+ by the PDC generation programs. The AA experiments use the bundled SMILES-input affinity
26
+ scorer through the reported `--affinity_type smiles` setting.
27
 
28
+ ## Installation
29
 
30
+ Run the following commands from this folder.
 
31
 
32
  ```bash
33
  conda env create -f environment.yml
34
  conda activate cupofmoca
35
+ python scripts/verify_release.py
36
  ```
37
 
38
+ The tested environment uses Python 3.9, PyTorch 2.5.1, and CUDA 12.1. A CUDA GPU is
39
+ recommended for full experiments. The first scoring run downloads
40
+ `facebook/esm2_t33_650M_UR50D` and `aaronfeller/PeptideCLM-23M-all` from Hugging Face.
41
+ Set `HF_HOME` to a persistent cache location when shared or temporary compute nodes are in
42
+ use.
43
+
44
+ The pinned pip packages are also available in `requirements.txt` for environments that
45
+ already provide a compatible PyTorch and CUDA installation.
46
 
47
  ```bash
48
  pip install -r requirements.txt
49
  ```
50
 
51
+ ## Target configurations
 
52
 
53
+ | Target | Protein | Conjugation builder | Default SMILES length |
54
+ |---|---|---|---|
55
+ | ERBB2 | receptor tyrosine-protein kinase erbB-2 | `SSCpt` | 80 |
56
+ | GNRHR | gonadotropin-releasing hormone receptor | `AoaDau` | 80 |
57
+ | NRP1 | neuropilin-1 | `DSPASN38` | 100 |
58
 
59
+ The target sequences are stored in `configs/targets.fasta`. The complete paper settings
60
+ are stored in `configs/paper.json`, including seeds 42, 123, and 456; 100 candidates per
61
+ seed; 128 optimization steps; equal objective weights; and the CupOFMoCA acceptance
62
+ parameter of 50.
63
 
64
+ ## Run generation
65
 
66
+ `scripts/run_experiment.py` provides one interface across representations, sampling
67
+ methods, variants, targets, and seeds. Preview a configured command before model loading
68
+ with `--dry-run`.
69
 
70
  ```bash
71
  python scripts/run_experiment.py \
 
76
  --dry-run
77
  ```
78
 
79
+ Remove `--dry-run` to launch the complete configured experiment.
80
 
81
  ```bash
82
  python scripts/run_experiment.py \
 
86
  --target NRP1
87
  ```
88
 
89
+ A compact smoke run can verify the environment and code path.
90
 
91
  ```bash
92
  python scripts/run_experiment.py \
93
+ --representation aa \
94
+ --variant baseline \
95
+ --method staged \
96
+ --target ERBB2 \
97
  --num-candidates 1
98
  ```
99
 
100
+ The principal options are summarized below.
101
+
102
+ | Option | Accepted values | Function |
103
+ |---|---|---|
104
+ | `--representation` | `smiles`, `aa`, `uaa` | selects the generator and tokenization |
105
+ | `--variant` | `baseline`, `cupofmoca` | selects the sampling implementation |
106
+ | `--method` | `guided`, `staged` | selects the guided or staged entry point |
107
+ | `--target` | `ERBB2`, `GNRHR`, `NRP1` | selects the sequence and conjugation builder |
108
+ | `--seeds` | one or more integers | sets the independent generation seeds |
109
+ | `--num-candidates` | positive integer | sets candidates generated per seed |
110
+ | `--gen-len` | positive integer | overrides the representation-specific length |
111
+ | `--force` | flag | replaces an existing output for the selected run |
112
+
113
+ Arguments placed after `--` pass directly to the underlying generation module.
114
 
115
  ```bash
116
  python scripts/run_experiment.py \
117
+ --representation smiles \
118
+ --variant cupofmoca \
119
+ --method guided \
120
+ --target GNRHR \
121
  -- --top_k 100
122
  ```
123
 
124
+ Each seed receives a separate output directory with the following organization.
125
 
126
+ ```text
127
+ outputs/
128
+ <target>/
129
+ <representation>/
130
+ <variant>_<method>/
131
+ seed_<seed>/
132
+ molecules.txt
133
+ logs/
134
+ ```
135
 
136
+ ## Direct generation modules
 
 
137
 
138
+ The wrapper dispatches to the modules under `smiles/generation/`. Their complete argument
139
+ surfaces remain available for method development and custom experiments.
140
 
141
+ | Representation | Baseline modules | CupOFMoCA modules |
142
+ |---|---|---|
143
+ | SMILES | `guided.py`, `staged.py` | `cupofmoca_guided.py`, `cupofmoca_staged.py` |
144
+ | AA | `guided_aa.py`, `staged_aa.py` | `cupofmoca_guided_aa.py`, `cupofmoca_staged_aa.py` |
145
+ | UAA | `guided_uaa.py`, `staged_uaa.py` | `cupofmoca_guided_uaa.py`, `cupofmoca_staged_uaa.py` |
146
 
147
+ Invoke a module with `--help` to inspect its parameters.
148
+
149
+ ```bash
150
+ python -m smiles.generation.cupofmoca_guided_uaa --help
 
 
 
151
  ```
152
 
153
+ ## Evaluation
154
+
155
+ The submitted evaluation routines are `smiles/evaluation/run_metrics.py` and
156
+ `smiles/evaluation/run_metrics_uaa.py`. They measure assembly validity and predicted
157
+ functional properties for the generated PDCs. Use each program's `--help` output to
158
+ select inputs and evaluation settings.
159
 
160
  ```bash
161
+ python smiles/evaluation/run_metrics.py --help
162
+ python smiles/evaluation/run_metrics_uaa.py --help
163
  ```
164
 
165
+ The paper reports PDC experiments across ERBB2, GNRHR, and NRP1 in the SMILES, AA, and
166
+ UAA representations. Appendix E describes the model architecture, optimization, data
167
+ construction, and scorers. The main paper and supplementary material define the reported
168
+ evaluation protocol and results.
169
+
170
+ ## Training sources
171
+
172
+ AA-PepReDi was trained with peptides from PepNN and BioLip2 together with sequences of 6
173
+ to 49 residues from PPIRef. The training, validation, and test proportions were 80, 10,
174
+ and 10 percent.
175
 
176
+ UAA-PepReDi was trained with 150,000 synthetic sequences generated with `p2smi` across
177
+ non-canonical and D-amino-acid compositions. The training, validation, and test
178
+ proportions were 80, 10, and 10 percent.
179
 
180
+ The SMILES workflow uses the released pretrained SMILESReDi weights. This repository
181
+ distributes the trained weights and the code required by the paper workflow. Appendix E
182
+ documents construction of the corresponding training collections.
183
 
184
+ ## Artifact verification
 
185
 
186
+ The integrity checker validates byte counts, SHA-256 hashes, and portability-sensitive
187
+ source paths.
188
 
189
+ ```bash
190
+ python scripts/verify_release.py
191
+ ```
192
+
193
+ `docs/artifacts.json` provides the machine-readable manifest, and
194
+ [`docs/ARTIFACTS.md`](docs/ARTIFACTS.md) lists each artifact's role, size, and checksum.
195
+ The full release occupies approximately 1.9 GB before environment packages and runtime
196
+ model downloads. Git LFS tracks the large `*.pt` and `*.ckpt` files.
197
+
198
+ PyTorch loads the bundled checkpoints through its serialized checkpoint interface. Use
199
+ weights from a trusted release location and verify their hashes before loading.
200
+
201
+ ## Research scope
202
+
203
+ The released configuration supports computational PDC generation for three receptor
204
+ targets and their specified conjugation chemistries. All generated structures and
205
+ property scores are computational predictions. Synthesis, biochemical and cellular
206
+ testing, toxicology, and safety assessment establish the experimental properties of any
207
+ candidate selected for further study.
208
+
209
+ Hardware, CUDA, PyTorch, and downloaded model revisions can introduce numerical variation.
210
+ The paper reports experiments on NVIDIA RTX A6000 GPUs with 48 GB of memory. Smaller
211
+ batches can support generation on devices with less memory.
212
 
213
+ ## Repository structure
214
 
215
+ ```text
216
+ checkpoints/ SMILES, AA, and UAA generator weights
217
+ configs/ paper settings and target sequences
218
+ docs/ artifact documentation and checksums
219
+ scripts/run_experiment.py unified experiment runner
220
+ scripts/verify_release.py release integrity checker
221
+ smiles/
222
+ conjugation/ target-specific PDC assembly builders
223
+ evaluation/ metrics and analyzers
224
+ generation/ baseline and CupOFMoCA sampling programs
225
+ models/ ReDi model and data code
226
+ scoring/ property scorers and checkpoints
227
+ smiles_tokenizer/ tokenizer code and vocabulary
228
+ third_party/ peptide-to-SMILES conversion helper
229
+ ```
230
 
231
+ ## Citation and license
232
 
233
+ Citation metadata is available in [`CITATION.cff`](CITATION.cff). The CupOFMoCA code is
234
+ released under Apache-2.0 through `LICENSE` and `NOTICE`. The vendored peptide-to-SMILES
235
+ helper retains its upstream license under `third_party/SMILESToPeptide/`.
CupOFMoCA-PROTAC/README.md CHANGED
@@ -1,122 +1,247 @@
1
- # CupOFMoCA — PROTAC
2
 
3
- Code and PROTAC model artifacts for **CupOFMoCA: Coupled Objective-Guided Discrete Flows for
4
- Molecular Conjugate Assembly** (NeurIPS 2026).
 
5
 
6
- This release supports the paper's PROTAC experiments: linker generation between a fixed
7
- warhead and a fixed E3 ligand, under hard assembly-validity constraints and objective
8
- guidance. For the peptide-drug conjugate half, see [`CupOFMoCA-PDC/`](../CupOFMoCA-PDC).
9
 
10
- ## Model overview
 
 
 
11
 
12
- The generator is a DeFoG discrete flow-matching model over molecular graphs, fine-tuned on
13
- PROTAC-DB linkers. The warhead and E3-ligand subgraphs are held fixed throughout sampling;
14
- only the linker subgraph is edited.
15
 
16
- | Checkpoint | Role |
17
  |---|---|
18
- | `checkpoints/protac_linker_finetune/epoch=99-v1.ckpt` | DeFoG graph discrete-flow generator, fine-tuned for 100 epochs on 2,070 PROTAC-DB linker graphs |
19
- | `src/classifier/protac_linker_clf.pkl` | generic linker validity/quality classifier |
20
- | `src/classifier/protac_linker_clf_{ErlotinibVHL,BRD9VHL,CDK6CRBN}.pkl` | target-specific classifiers, auto-selected by `--protac_module` |
 
 
21
 
22
- The checkpoint is loaded by this repository's own PyTorch code. This is not a Transformers
23
- pipeline and provides no hosted-inference widget.
24
 
25
- ## Quickstart
 
 
 
 
 
 
 
 
 
 
 
26
 
27
  ```bash
28
- hf download ChatterjeeLab/CupOFMoCA --include "CupOFMoCA-PROTAC/*" --local-dir .
29
- cd CupOFMoCA-PROTAC
30
- conda env create -f environment.yml && conda activate defog
31
  pip install -e src/defog
32
  python scripts/verify_release.py
33
  ```
34
 
35
- Generate 100 EGFR-VHL PROTACs with the reported configuration (one of three seeds):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  ```bash
38
  cd scripts
39
  python generate.py \
40
  --checkpoint ../checkpoints/protac_linker_finetune/epoch=99-v1.ckpt \
41
- --protac_module ErlotinibVHL --fix_termini cooh --fast_scoring \
42
- --num_samples 100 --num_batches 1 --num_steps 1500 --warmup_steps 100 \
43
- --weights 4.0 2.0 4.0 --seed 42 \
44
- --output_file ./protac_linkers_egfrvhl.smi --output_dir ../generation_logs
 
 
 
 
 
 
 
45
  ```
46
 
47
- Swap `--protac_module` for `BRD9VHL` or `CDK6CRBN` for the other two systems. Every
48
- setting above is recorded in `configs/paper.json`.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
 
50
- `--weights` is positional over the three soft scorers: synthetic accessibility,
51
- PROTAC-DB chemotype closeness, connectivity. The validity classifier is applied as a hard
52
- mask and takes no weight.
 
53
 
54
- ### Intended uses
 
 
 
55
 
56
- - Reproduce and inspect the paper's PROTAC generation experiments.
57
- - Generate computational PROTAC linker candidates for research and method development.
58
- - Extend or compare constrained, multi-objective molecular-generation methods.
59
 
60
- The release is not intended for clinical decisions, direct therapeutic use, or as a
61
- substitute for chemical synthesis, experimental validation, toxicology, or safety
62
- assessment.
63
 
64
- ### Training data
 
 
 
65
 
66
- The generator is the released DeFoG GuacaMol checkpoint fine-tuned on 2,070 PROTAC-DB
67
- linker graphs (258 validation, 260 test). `data/linker.csv` is the derived linker table.
68
- Architecture, optimization and scorer details are in Appendix H of the paper. Training
69
- datasets are not redistributed beyond that derived table.
70
 
71
- ### Evaluation
 
 
72
 
73
- The paper evaluates generated PROTACs on EGFR-VHL, BRD9-VHL and CDK6-CRBN for standard
74
- and assembly validity, predicted degradation, diversity and training-set similarity. The
75
- runs behind those tables are in `results/`, documented in `results/README.md`. Predicted
76
- degradation requires DegradeMaster, which is fetched rather than redistributed — see below.
77
 
78
- ### Limitations
 
 
 
 
79
 
80
- - Outputs and objective values are computational predictions, not experimentally validated
81
- compounds or guarantees of efficacy, synthesizability, toxicity or safety.
82
- - The released configurations cover three target/E3 systems with fixed anchor chemistry;
83
- performance outside this scope has not been established.
84
- - Predicted degradation comes from a model trained on overlapping PROTAC databases, so it
85
- is an in-domain evaluation rather than an independent one.
86
- - `scripts/runs/ablation_egfr.py` sweeps five weight slots, but the current `generate.py`
87
- exposes three; the Morgan-fingerprint row of the weight ablation is documented by the
88
- archived outputs in `results/` rather than re-runnable as-is.
89
- - Results can vary with hardware and CUDA/PyTorch versions.
90
 
91
- ## Repository layout
 
92
 
93
  ```text
94
- checkpoints/ generator weights
95
- configs/paper.json the settings used for the reported runs
96
- data/linker.csv PROTAC-DB derived linker table
97
- docs/ artifact manifest (ARTIFACTS.md, artifacts.json)
98
- md/ explicit-solvent molecular dynamics pipeline
99
- results/ generation outputs behind the reported tables
100
- scripts/ generate.py, batch_report.py, evaluate_linkers.py,
101
- fetch_third_party.py, verify_release.py, runs/
102
- src/protac/ per-target warhead + E3 builders
103
- src/classifier/ validity gate, analyzer, classifiers
104
- src/defog/ DeFoG discrete flow model (MIT, see src/defog/LICENSE)
105
  ```
106
 
107
- ## Third-party components
 
 
108
 
109
- DeFoG is redistributed here under MIT. Two optional components — DegradeMaster
110
- (degradation scoring) and EGFR-PROPK (EGFR-only PK columns) — are published upstream
111
- without a license and so are **not** redistributed. Fetch them at the pinned commits used
112
- for the paper:
 
 
 
 
113
 
114
  ```bash
115
- python scripts/fetch_third_party.py
 
 
 
 
 
 
116
  ```
117
 
118
- Linker generation does not require either. See `NOTICE` for the full statement.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
 
120
- ## Citation
121
 
122
- See `CITATION.cff`.
 
 
 
 
1
+ # CupOFMoCA for PROTACs
2
 
3
+ This folder contains the PROTAC linker-generation code, model weights, validity
4
+ classifiers, target builders, paper configurations, and reported outputs for
5
+ **CupOFMoCA: Coupled Objective-Guided Discrete Flows for Molecular Conjugate Assembly**.
6
 
7
+ The PROTAC workflow holds the warhead and E3-ligand subgraphs fixed and edits the linker
8
+ subgraph with a DeFoG discrete flow-matching model. CupOFMoCA applies a hard assembly gate
9
+ and three soft property objectives during sampling.
10
 
11
+ The [main README](../README.md) provides the shared project overview and a quickstart for
12
+ both conjugate modalities. This guide covers the PROTAC targets, objective functions,
13
+ commands, artifacts, evaluation programs, and molecular-dynamics workflow in greater
14
+ detail.
15
 
16
+ ## Model and objectives
 
 
17
 
18
+ | Artifact | Role |
19
  |---|---|
20
+ | `checkpoints/protac_linker_finetune/epoch=99-v1.ckpt` | DeFoG graph generator fine-tuned for 100 epochs on 2,070 PROTAC-DB linker graphs |
21
+ | `src/classifier/protac_linker_clf.pkl` | generic linker validity and quality classifier |
22
+ | `src/classifier/protac_linker_clf_ErlotinibVHL.pkl` | EGFR-VHL target-specific classifier |
23
+ | `src/classifier/protac_linker_clf_BRD9VHL.pkl` | BRD9-VHL target-specific classifier |
24
+ | `src/classifier/protac_linker_clf_CDK6CRBN.pkl` | CDK6-CRBN target-specific classifier |
25
 
26
+ The generator applies the validity classifier as a hard mask before exponential tilting.
27
+ Three soft scores define the weighted objective used for the reported runs.
28
 
29
+ | Position | Score | Paper weight |
30
+ |---|---|---|
31
+ | 1 | synthetic accessibility | 4.0 |
32
+ | 2 | PROTAC-DB chemotype closeness across logP, molecular weight, rotatable bonds, and ether count | 2.0 |
33
+ | 3 | linker connectivity | 4.0 |
34
+
35
+ The `--weights` option accepts these values in the table order. The hard validity gate
36
+ acts before weighted scoring and sits outside the three-value objective vector.
37
+
38
+ ## Installation
39
+
40
+ Run the following commands from this folder.
41
 
42
  ```bash
43
+ conda env create -f environment.yml
44
+ conda activate defog
 
45
  pip install -e src/defog
46
  python scripts/verify_release.py
47
  ```
48
 
49
+ The tested environment uses Python 3.9, PyTorch 2.4.0, and CUDA 12.1. A CUDA GPU is
50
+ recommended for full generation experiments.
51
+
52
+ ## Target systems
53
+
54
+ | Reported system | `--protac_module` | Warhead | E3 ligand |
55
+ |---|---|---|---|
56
+ | EGFR-VHL | `ErlotinibVHL` | gefitinib-piperazine from MS39 | VH032 |
57
+ | BRD9-VHL | `BRD9VHL` | BI-7273-piperazine | VH032 |
58
+ | CDK6-CRBN | `CDK6CRBN` | palbociclib-piperazine | pomalidomide |
59
+
60
+ Each module under `src/protac/` defines the fixed molecular fragments, reactive SMARTS,
61
+ and assembly builder for its system.
62
+
63
+ ## Run generation
64
+
65
+ The following command generates 100 EGFR-VHL candidates with seed 42 and the reported
66
+ configuration. Run it from the `scripts/` directory.
67
 
68
  ```bash
69
  cd scripts
70
  python generate.py \
71
  --checkpoint ../checkpoints/protac_linker_finetune/epoch=99-v1.ckpt \
72
+ --protac_module ErlotinibVHL \
73
+ --fix_termini cooh \
74
+ --fast_scoring \
75
+ --num_samples 100 \
76
+ --num_batches 1 \
77
+ --num_steps 1500 \
78
+ --warmup_steps 100 \
79
+ --weights 4.0 2.0 4.0 \
80
+ --seed 42 \
81
+ --output_file ./protac_linkers_egfrvhl.smi \
82
+ --output_dir ../generation_logs
83
  ```
84
 
85
+ Use `BRD9VHL` or `CDK6CRBN` as the module name for the other reported target systems.
86
+ Seeds 42, 123, and 456 reproduce the paper's three generation batches. The complete
87
+ configuration in `configs/paper.json` records 100 candidates per seed, 1,500 sampling
88
+ steps, 100 warmup steps, guidance strength 5.0, top-k 50, weighted position sampling,
89
+ and the objective weights shown above.
90
+
91
+ The generator writes assembled PROTAC SMILES to the selected `--output_file` and detailed
92
+ sampling records under `--output_dir`. Run the help command for the full set of graph,
93
+ guidance, scoring, and output controls.
94
+
95
+ ```bash
96
+ python generate.py --help
97
+ ```
98
+
99
+ ## Evaluate generated candidates
100
+
101
+ `evaluate_linkers.py` assembles each candidate with the selected anchors and computes
102
+ structural validity, linker properties, assembled-PROTAC properties, and available
103
+ degradation scores.
104
+
105
+ ```bash
106
+ python evaluate_linkers.py protac_linkers_egfrvhl.smi \
107
+ --protac-module ErlotinibVHL \
108
+ --out protac_linkers_egfrvhl_scored.csv
109
+ ```
110
+
111
+ `batch_report.py` compares one or more generation-summary files and can save a figure.
112
+
113
+ ```bash
114
+ python batch_report.py ../generation_logs/*_summary.csv \
115
+ --protac-module ErlotinibVHL \
116
+ --out batch_report.png
117
+ ```
118
 
119
+ The paper evaluates assembly validity, predicted degradation, molecular diversity,
120
+ training-set similarity, and physicochemical properties for EGFR-VHL, BRD9-VHL, and
121
+ CDK6-CRBN. [`results/README.md`](results/README.md) maps the archived outputs to the paper
122
+ tables and records the aggregation conventions.
123
 
124
+ The archived weight-ablation outputs preserve an earlier five-slot representation of the
125
+ objective. The active terms correspond to synthetic accessibility, chemotype closeness,
126
+ and connectivity with weights 4, 2, and 4. The current generator accepts those three live
127
+ weights directly.
128
 
129
+ ## Optional evaluation components
 
 
130
 
131
+ DegradeMaster supplies predicted degradation scores, and EGFR-PROPK supplies the EGFR
132
+ pharmacokinetic columns. The fetch program retrieves both components at the commits used
133
+ for the paper.
134
 
135
+ ```bash
136
+ cd ..
137
+ python scripts/fetch_third_party.py
138
+ ```
139
 
140
+ Generation uses the bundled checkpoint, builders, and classifiers. The optional
141
+ components extend evaluation after generation. Their upstream licensing and pinned
142
+ revisions are recorded in `NOTICE` and `scripts/fetch_third_party.py`.
 
143
 
144
+ DegradeMaster uses data derived from overlapping PROTAC databases, which makes its
145
+ reported degradation analysis an in-domain model evaluation. Interpret these scores as
146
+ computational prioritization measurements within that setting.
147
 
148
+ ## Training data
 
 
 
149
 
150
+ The generator starts from the released DeFoG GuacaMol checkpoint and was fine-tuned on
151
+ 2,070 PROTAC-DB linker graphs. The validation and test partitions contain 258 and 260
152
+ graphs, respectively. `data/linker.csv` provides the derived linker table used by this
153
+ release. Appendix H describes the architecture, optimization procedure, data processing,
154
+ and scorers.
155
 
156
+ ## Reported outputs
 
 
 
 
 
 
 
 
 
157
 
158
+ The `results/` directory contains the generation outputs and scored summaries used in the
159
+ paper's PROTAC tables.
160
 
161
  ```text
162
+ results/
163
+ ablation_all/ EGFR-VHL constraint, guidance, and fine-tuning studies
164
+ ablation_targets/ BRD9-VHL and CDK6-CRBN target studies
165
+ README.md table mapping and aggregation details
 
 
 
 
 
 
 
166
  ```
167
 
168
+ The reported runs use seeds 42, 123, and 456 with 100 candidates per seed. The archived
169
+ files contain the per-seed results, pooled summaries, and scored per-molecule tables
170
+ described in `results/README.md`.
171
 
172
+ ## Molecular dynamics
173
+
174
+ The `md/` folder contains the explicit-solvent workflow used to analyze generated PROTAC
175
+ conformations in water and chloroform. The analyses cover radius of gyration, three-
176
+ dimensional polar surface area, intramolecular hydrogen bonds, ternary span, and
177
+ conformational-state populations.
178
+
179
+ Create the dedicated environment and inspect the MD guide before launching trajectories.
180
 
181
  ```bash
182
+ conda env create -f md/environment_md.yml
183
+ conda activate protacmd
184
+ cd md
185
+ python protac_md.py --solvent chloroform --replicas 3 --prod-ns 50 --gpu 0
186
+ python analyze_conformations.py \
187
+ --dir egfrvhl_rank4/chloroform \
188
+ --name egfrvhl_rank4
189
  ```
190
 
191
+ [`md/README.md`](md/README.md) documents the complete workflow, and
192
+ [`md/reference_protocol.md`](md/reference_protocol.md) records the simulation protocol.
193
+
194
+ ## Artifact verification
195
+
196
+ The integrity checker validates byte counts, SHA-256 hashes, and portability-sensitive
197
+ source paths.
198
+
199
+ ```bash
200
+ python scripts/verify_release.py
201
+ ```
202
+
203
+ `docs/artifacts.json` provides the machine-readable manifest, and
204
+ [`docs/ARTIFACTS.md`](docs/ARTIFACTS.md) lists each artifact's role, size, and checksum.
205
+ The checker also reports the availability of the optional evaluation components.
206
+
207
+ PyTorch loads the bundled generator checkpoint through its serialized checkpoint
208
+ interface. Use weights from a trusted release location and verify their hashes before
209
+ loading.
210
+
211
+ ## Research scope
212
+
213
+ The released paper configurations cover three target and E3-ligase systems with fixed
214
+ anchor chemistry. All generated structures and objective values are computational
215
+ predictions. Synthesis, biochemical and cellular testing, toxicology, and safety
216
+ assessment establish the experimental properties of candidates selected for further
217
+ study.
218
+
219
+ Hardware, CUDA, and PyTorch revisions can introduce numerical variation across repeated
220
+ runs.
221
+
222
+ ## Repository structure
223
+
224
+ ```text
225
+ checkpoints/ fine-tuned DeFoG generator weights
226
+ configs/paper.json settings used for the reported runs
227
+ data/linker.csv PROTAC-DB-derived linker table
228
+ docs/ artifact documentation and checksums
229
+ md/ explicit-solvent molecular-dynamics workflow
230
+ results/ generation outputs used in the paper tables
231
+ scripts/
232
+ generate.py guided linker generation
233
+ evaluate_linkers.py candidate assembly and scoring
234
+ batch_report.py multi-run summaries and plots
235
+ fetch_third_party.py pinned optional evaluation components
236
+ verify_release.py release integrity checker
237
+ src/classifier/ validity gate, analyzers, and classifiers
238
+ src/defog/ DeFoG discrete flow model
239
+ src/protac/ target-specific warhead and E3 builders
240
+ ```
241
 
242
+ ## Citation and license
243
 
244
+ Citation metadata is available in [`CITATION.cff`](CITATION.cff). The CupOFMoCA code is
245
+ released under Apache-2.0 through `LICENSE` and `NOTICE`. The bundled DeFoG code retains
246
+ its MIT license under `src/defog/LICENSE`. Optional upstream components retain their own
247
+ terms.
README.md CHANGED
@@ -13,49 +13,201 @@ tags:
13
 
14
  # CupOFMoCA
15
 
16
- Code and model artifacts for **CupOFMoCA: Coupled Objective-Guided Discrete Flows for
17
- Molecular Conjugate Assembly** (NeurIPS 2026).
18
 
19
  ![CupOFMoCA overview](assets/CupOFMoCA.gif)
20
 
21
- CupOFMoCA performs coupled, objective-guided discrete-flow generation while enforcing
22
- cross-component chemical assembly constraints during sampling. The paper covers two
23
- conjugate modalities, and this repository holds one self-contained release for each.
 
 
24
 
25
- | Folder | Modality | Paper sections |
26
  |---|---|---|
27
- | [`CupOFMoCA-PDC/`](CupOFMoCA-PDC) | Peptide-drug conjugates, across SMILES, AA and UAA representations | Section 4, Appendices A, C, E, F, G |
28
- | [`CupOFMoCA-PROTAC/`](CupOFMoCA-PROTAC) | PROTAC linker generation between fixed warhead and E3 anchors | Section 5, Appendices B, H, I, J |
29
 
30
- Each folder is independent: its own `README.md`, `checkpoints/`, `configs/paper.json`
31
- with the settings used for the reported runs, `environment.yml`, and a
32
- `docs/artifacts.json` manifest verified by `scripts/verify_release.py`.
 
33
 
34
- The checkpoints are loaded by this repository's own PyTorch code. This is not a
35
- Transformers pipeline and provides no hosted-inference widget.
36
 
37
- ## Getting started
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
 
39
  ```bash
40
- hf download ChatterjeeLab/CupOFMoCA --include "CupOFMoCA-PROTAC/*" --local-dir .
41
  cd CupOFMoCA-PROTAC
 
 
 
42
  python scripts/verify_release.py
43
  ```
44
 
45
- Swap the prefix for `CupOFMoCA-PDC/*` to fetch the peptide-drug conjugate release
46
- instead. Each folder's `README.md` carries its own setup and generation commands.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
 
48
- ## Intended uses
49
 
50
- - Reproduce and inspect the paper's PDC and PROTAC generation experiments.
51
- - Generate computational conjugate candidates for research and method development.
52
- - Extend or compare constrained, multi-objective molecular-generation methods.
53
 
54
- This release is not intended for clinical decisions, direct therapeutic use, or as a
55
- substitute for chemical synthesis, experimental validation, toxicology, or safety
56
- assessment. Outputs and objective values are computational predictions, not validated
57
- compounds or guarantees of efficacy, synthesizability, toxicity or safety.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
- ## Citation
60
 
61
- See `CITATION.cff` in either release folder.
 
 
 
13
 
14
  # CupOFMoCA
15
 
16
+ Code, model weights, configurations, and reported outputs for **CupOFMoCA: Coupled
17
+ Objective-Guided Discrete Flows for Molecular Conjugate Assembly** (NeurIPS 2026).
18
 
19
  ![CupOFMoCA overview](assets/CupOFMoCA.gif)
20
 
21
+ Molecular conjugates derive their function from interactions among multiple chemical
22
+ components. CupOFMoCA uses discrete flows to generate coupled components, enforce
23
+ assembly-validity constraints throughout sampling, and guide local transitions with
24
+ property objectives. This release supports the two conjugate modalities studied in the
25
+ paper.
26
 
27
+ | Folder | Generated component | Representations or systems |
28
  |---|---|---|
29
+ | [`CupOFMoCA-PDC/`](CupOFMoCA-PDC) | peptide carrier assembled with a fixed payload and linker chemistry | SMILES, natural amino acids, and unnatural amino acids for ERBB2, GNRHR, and NRP1 |
30
+ | [`CupOFMoCA-PROTAC/`](CupOFMoCA-PROTAC) | linker connecting fixed target-binding and E3-ligase anchors | EGFR-VHL, BRD9-VHL, and CDK6-CRBN |
31
 
32
+ Each modality folder provides its own environment, paper configuration, model artifacts,
33
+ generation programs, integrity checker, and detailed README. The sections below contain
34
+ the shared setup, representative commands, and the information needed to choose and run
35
+ either modality.
36
 
37
+ ## Download
 
38
 
39
+ Install the [Hugging Face CLI](https://huggingface.co/docs/huggingface_hub/guides/cli)
40
+ and download the complete release with the following commands.
41
+
42
+ ```bash
43
+ hf download ChatterjeeLab/CupOFMoCA --local-dir CupOFMoCA
44
+ cd CupOFMoCA
45
+ ```
46
+
47
+ A modality-specific download reduces local storage use.
48
+
49
+ ```bash
50
+ hf download ChatterjeeLab/CupOFMoCA \
51
+ --include "CupOFMoCA-PDC/*" \
52
+ --local-dir CupOFMoCA
53
+ ```
54
+
55
+ Replace `CupOFMoCA-PDC/*` with `CupOFMoCA-PROTAC/*` for the PROTAC release.
56
+
57
+ ## Choose a workflow
58
+
59
+ Use the PDC workflow to generate peptide carriers in one of three molecular
60
+ representations and assemble them with the target-specific payload chemistry. Use the
61
+ PROTAC workflow to generate a molecular-graph linker between a fixed warhead and a fixed
62
+ E3 ligand.
63
+
64
+ | Capability | PDC | PROTAC |
65
+ |---|---|---|
66
+ | Base generator | SMILESReDi, PepReDi, or UAAReDi | DeFoG fine-tuned on PROTAC-DB linkers |
67
+ | Generated object | peptide carrier | linker subgraph |
68
+ | Fixed context | payload and conjugation chemistry | warhead and E3-ligand subgraphs |
69
+ | Released systems | ERBB2, GNRHR, NRP1 | EGFR-VHL, BRD9-VHL, CDK6-CRBN |
70
+ | Paper settings | `CupOFMoCA-PDC/configs/paper.json` | `CupOFMoCA-PROTAC/configs/paper.json` |
71
+ | Detailed guide | [`CupOFMoCA-PDC/README.md`](CupOFMoCA-PDC/README.md) | [`CupOFMoCA-PROTAC/README.md`](CupOFMoCA-PROTAC/README.md) |
72
+
73
+ Both workflows use custom PyTorch generation code and local checkpoints. A CUDA GPU is
74
+ recommended for generation. The released environments use Python 3.9 and CUDA 12.1.
75
+
76
+ ## PDC quickstart
77
+
78
+ From the release root, create the PDC environment and verify the bundled artifacts.
79
+
80
+ ```bash
81
+ cd CupOFMoCA-PDC
82
+ conda env create -f environment.yml
83
+ conda activate cupofmoca
84
+ python scripts/verify_release.py
85
+ ```
86
+
87
+ Preview the configured NRP1 UAA experiment, then run it from the PDC folder.
88
+
89
+ ```bash
90
+ python scripts/run_experiment.py \
91
+ --representation uaa \
92
+ --variant cupofmoca \
93
+ --method guided \
94
+ --target NRP1 \
95
+ --dry-run
96
+
97
+ python scripts/run_experiment.py \
98
+ --representation uaa \
99
+ --variant cupofmoca \
100
+ --method guided \
101
+ --target NRP1
102
+ ```
103
+
104
+ The runner supports `smiles`, `aa`, and `uaa` representations; `guided` and `staged`
105
+ sampling methods; and `ERBB2`, `GNRHR`, and `NRP1` targets. It writes each seed to a
106
+ separate directory under `outputs/`. The PDC guide documents the complete command
107
+ surface, checkpoints, target chemistries, and evaluation programs.
108
+
109
+ ## PROTAC quickstart
110
+
111
+ From the release root, create the PROTAC environment, install the bundled DeFoG package,
112
+ and verify the release.
113
 
114
  ```bash
 
115
  cd CupOFMoCA-PROTAC
116
+ conda env create -f environment.yml
117
+ conda activate defog
118
+ pip install -e src/defog
119
  python scripts/verify_release.py
120
  ```
121
 
122
+ Generate 100 EGFR-VHL candidates with one reported seed.
123
+
124
+ ```bash
125
+ cd scripts
126
+ python generate.py \
127
+ --checkpoint ../checkpoints/protac_linker_finetune/epoch=99-v1.ckpt \
128
+ --protac_module ErlotinibVHL \
129
+ --fix_termini cooh \
130
+ --fast_scoring \
131
+ --num_samples 100 \
132
+ --num_batches 1 \
133
+ --num_steps 1500 \
134
+ --warmup_steps 100 \
135
+ --weights 4.0 2.0 4.0 \
136
+ --seed 42 \
137
+ --output_file ./protac_linkers_egfrvhl.smi \
138
+ --output_dir ../generation_logs
139
+ ```
140
+
141
+ Set `--protac_module` to `BRD9VHL` or `CDK6CRBN` for the other reported systems.
142
+ The PROTAC guide explains the three objective weights, target builders, evaluation
143
+ programs, archived paper outputs, and molecular-dynamics workflow.
144
+
145
+ ## Paper configurations
146
+
147
+ The machine-readable configuration files record the settings used for the reported
148
+ experiments. Both modalities use seeds 42, 123, and 456 with 100 candidates per seed.
149
+
150
+ The PDC configuration uses 128 optimization steps, equal objective weights, and a
151
+ target-specific conjugation builder. SMILES sequence lengths are 80 for ERBB2 and GNRHR
152
+ and 100 for NRP1. AA and UAA experiments use length 10.
153
+
154
+ The PROTAC configuration uses 1,500 sampling steps, 100 warmup steps, a hard validity
155
+ gate, and soft-objective weights of 4.0 for synthetic accessibility, 2.0 for PROTAC-DB
156
+ chemotype closeness, and 4.0 for connectivity.
157
 
158
+ ## Artifacts and reproducibility
159
 
160
+ Run the integrity checker inside a modality folder before generation.
 
 
161
 
162
+ ```bash
163
+ python scripts/verify_release.py
164
+ ```
165
+
166
+ Each checker validates file sizes, SHA-256 hashes, and portability-sensitive source
167
+ paths against `docs/artifacts.json`. Human-readable artifact inventories appear in
168
+ `docs/ARTIFACTS.md`. The PDC inventory covers the three generators and the property
169
+ scorers. The PROTAC inventory covers the fine-tuned DeFoG checkpoint and the generic and
170
+ target-specific validity classifiers.
171
+
172
+ The paper settings remain in `configs/paper.json`, and detailed PROTAC outputs behind the
173
+ reported tables remain under `CupOFMoCA-PROTAC/results/`. Hardware, CUDA, PyTorch, and
174
+ runtime model revisions can introduce numerical variation across repeated runs.
175
+
176
+ ## Data and evaluation scope
177
+
178
+ The PDC release supports the paper experiments across ERBB2, GNRHR, and NRP1 with the
179
+ released target sequences and conjugation chemistries. The PROTAC release supports the
180
+ paper experiments across EGFR-VHL, BRD9-VHL, and CDK6-CRBN with fixed anchor chemistry.
181
+ The detailed modality guides describe the training sources and evaluation measurements.
182
+
183
+ All generated candidates and objective values are computational predictions. Use
184
+ chemical synthesis, experimental validation, toxicology, and safety assessment to
185
+ establish the properties of candidates selected for further study. DegradeMaster results
186
+ use an in-domain predictor trained with overlapping PROTAC databases and should be
187
+ interpreted within that evaluation setting.
188
+
189
+ ## Repository structure
190
+
191
+ ```text
192
+ CupOFMoCA/
193
+ assets/ overview media
194
+ CupOFMoCA-PDC/ PDC generation and evaluation release
195
+ checkpoints/ SMILES, AA, and UAA generator weights
196
+ configs/ paper settings and target sequences
197
+ scripts/ experiment runner and integrity checker
198
+ smiles/ generation, assembly, scoring, and evaluation code
199
+ CupOFMoCA-PROTAC/ PROTAC linker generation and evaluation release
200
+ checkpoints/ fine-tuned DeFoG weights
201
+ configs/ paper settings
202
+ data/ derived linker table
203
+ md/ explicit-solvent molecular-dynamics workflow
204
+ results/ outputs and summaries used in paper tables
205
+ scripts/ generation, evaluation, and verification programs
206
+ src/ DeFoG, target builders, and classifiers
207
+ ```
208
 
209
+ ## Citation and license
210
 
211
+ Citation metadata is available in [`CITATION.cff`](CITATION.cff). The CupOFMoCA code is
212
+ released under Apache-2.0. Third-party code and downloaded model artifacts retain their
213
+ respective terms, which are recorded in the modality-specific `NOTICE` files.