File size: 3,029 Bytes
a804b80
 
 
 
 
 
 
 
 
 
 
fae589d
a804b80
fae589d
 
 
a804b80
fae589d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a804b80
 
fae589d
a804b80
fae589d
 
 
a804b80
fae589d
 
 
 
a804b80
fae589d
 
a804b80
fae589d
 
 
a804b80
fae589d
a804b80
 
fae589d
 
 
a804b80
 
fae589d
 
 
cc8951c
fae589d
 
 
 
 
a804b80
 
 
 
 
 
 
 
 
 
fae589d
 
 
 
 
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
---
license: mit
tags:
  - biology
  - protein-design
  - ligand-binding
  - antibody-design
---

# InstructPro2

**Natural Language and Biological Grounding Guided De Novo Protein Design**

[Paper](https://arxiv.org/abs/2610.19592) ·
[Code](https://github.com/chovak/InstructPro2) ·
[Dataset](https://huggingface.co/datasets/charlesnovak/InstructPro2Bench)

InstructPro2 designs proteins from natural-language function descriptions. A
text encoder reads the instruction, frozen ligand (ChemBERTa) and antigen
(ESM-2) encoders supply biological context through gated cross-attention
adapters, and a 3.2B-parameter decoder initialized from ProGen2-large-BFD90
generates the sequence.

## Checkpoints

| File | Parameters | Task |
| --- | --- | --- |
| `instructpro2_stage1.pt` | 2.87B | design from text; also the starting point for finetuning |
| `instructpro2_stage2_ligand.pt` | 3.22B | ligand-binding design, conditioned on SMILES |
| `instructpro2_stage2_antibody.pt` | 3.22B | HCDR1-3 design, conditioned on an antigen |
| `progen2/progen2-large-BFD90/` | 2.7B | base decoder weights |

`progen2/progen2-large-BFD90/` is required by all three models, including at
inference — the decoder is built from it before the checkpoint loads.

## Usage

Clone the [code](https://github.com/chovak/InstructPro2) and follow its
README to create the environment, then:

```bash
export WORK_ROOT=/path/to/workspace

huggingface-cli download charlesnovak/InstructPro2 --local-dir $WORK_ROOT/model
huggingface-cli download charlesnovak/InstructPro2Bench --repo-type dataset \
    --local-dir $WORK_ROOT/data

# design from a description
python3 scripts/prepare_inputs.py --task ligand \
    --input examples/ligand_designs.csv \
    --out $WORK_ROOT/my_designs/test_examples.jsonl

MODEL=ligand DATA_PATH=$WORK_ROOT/my_designs SUBSET=test_examples bash infer.sh
```

`infer.sh` selects the architecture mode, dataset reader and generation
flags that match each checkpoint, so prefer it over calling the underlying
fairseq entry point directly.

The whole repository is 24 GB. To take only one task's weights:

```bash
huggingface-cli download charlesnovak/InstructPro2 \
    --include "instructpro2_stage2_ligand.pt" "progen2/*" \
    --local-dir $WORK_ROOT/model
```

## Evaluation

Stage 1 designs are folded with ESMFold and scored against the ground-truth
cluster structures published with the dataset. `eval_stage1.sh` reproduces
that end to end.

The ligand and antibody results in the paper are computed from AlphaFold3
complexes — ligand designs folded with their SMILES, antibody designs with
the light chain and antigen. That code is available on request.

## Citation

```bibtex
@article{instructpro2,
  title   = {InstructPro2: Natural Language and Biological Grounding Guided De Novo Protein Design},
  author  = {Charles Novak and Zhenqiao Song and Chuan Li and Jianwen Xie and Lei Li},
  journal = {arXiv preprint arXiv:2610.19592},
  year    = {2026}
}
```

## License

MIT. The base ProGen2 weights are BSD-3-Clause.