File size: 5,469 Bytes
25a2abd | 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 | # Data availability — ProtTale
Training data, dataset splits and the clusterings that define them. Together
with the code, these files reproduce ProtTale from scratch: Stage 1 alignment,
Stage 2 generation, the reliability head, and the held-out benchmark.
Figure and table source data are in the sibling `Supplementary_Data` folder.
```
Data_availability/
stage1_pairs/ Stage 1, functionally similar protein pairs
stage2_swissprot/ Stage 2, proteins paired with curated function text
clustering/ the clustering that defines every split
```
All `.json` files are **JSON Lines**: one JSON record per line, not a single
JSON array. Read them line by line.
---
## stage1_pairs/ — pairwise functional alignment
Protein pairs labelled by MIPS clustering, used to train the Q-Former and shift
the sequence pathway into the text-derived functional space.
| File | Records |
|---|---|
| `train_set.json` | 119,546 |
| `valid_set.json` | 388 |
| `test_set.json` | 534 |
Each record is a 5-element list:
| Position | Content |
|---|---|
| 0 | Amino acid sequence of protein A |
| 1 | Amino acid sequence of protein B |
| 2 | Curated Swiss-Prot `FUNCTION` description of protein A |
| 3 | Curated Swiss-Prot `FUNCTION` description of protein B |
| 4 | MIPS label as a string, `"1"` if both proteins fall in the same MIPS cluster (functionally similar), `"0"` otherwise |
Positives and negatives are balanced by construction in every split: 267 / 267
in the test set, 194 / 194 in the validation set, and equal counts in training.
Pairs were drawn independently within each split, so no pair crosses a split
boundary. The pairing is derived without curation; the two descriptions
attached to each pair are curated Swiss-Prot text.
The 534 test pairs are also the pairs used to validate the LLM-as-judge. That
analysis, with UniProt identifiers and judge labels attached, is
`Supplementary_Data_3_stage1_test_pairs.csv`.
---
## stage2_swissprot/ — sequence to function text
Swiss-Prot proteins paired with their curated `FUNCTION` descriptions. The source
was the full Swiss-Prot database, 574,627 entries, of which 473,996 carry a
curated `FUNCTION` description.
| File | Records | Role |
|---|---|---|
| `train_set.json` | 207,197 | Trains the generator |
| `valid_set.json` | 1,000 | Tunes the generator; its judge labels train the reliability head |
| `test_set.json` | 1,000 | Tunes the reliability head |
| `unseen_set.json` | 1,031 | Held-out benchmark, all final reporting |
Each record is a 6-element list:
| Position | Content |
|---|---|
| 0 | Amino acid sequence |
| 1 | Curated Swiss-Prot `FUNCTION` description, the generation target |
| 2 | LLM-as-judge label for ProtTale's own prediction, scored `1` = Yes, `0` = No, `0.5` = Maybe, `-1` = Vague. This is the reliability head's training target. Set to `-1` throughout `unseen_set.json`, where it is a placeholder rather than a label |
| 3 | Experimentally validated Molecular Function GO terms |
| 4 | Enzyme Commission numbers |
| 5 | Placeholder, not used |
In `valid_set.json` the judge labels split 328 Yes, 510 No, 90 Maybe and 72
Vague, which is the class balance the reliability head is fitted against.
Validation and test proteins are the CD-HIT representatives of their 40%
identity clusters, one per cluster.
Every protein in `unseen_set.json` is a post-2022 Swiss-Prot deposition and
comes from a different 40% identity cluster, one protein per cluster, none of
whose members appears in training, validation or testing. Because the protein
was chosen by deposition date and annotation rather than by length, it is not
always the cluster's CD-HIT representative (683 of the 1,031 are). Each carries
at least one experimentally validated MF GO term and at least one EC number, and
does not appear in the released training data of any baseline method compared
in the paper. The EC requirement means the benchmark consists entirely of
enzymes.
---
## clustering/ — how the splits were defined
| File | Content |
|---|---|
| `swissprot_cdhit_40.clstr` | CD-HIT output at 40% sequence identity over Swiss-Prot, 93,610 clusters covering 573,398 sequences |
**CD-HIT clusters define the splits.** Train, validation, test and unseen are
partitioned at the level of these clusters, so no protein in one split shares a
40% identity cluster with a protein in another, and each unseen protein comes
from a cluster none of whose members the model saw.
The split files themselves carry sequences rather than cluster assignments, so
this file is what makes that separation checkable: map the sequences of any two
splits back to their clusters and confirm the clusters do not intersect.
**MIPS clusters define the Stage 1 labels.** They were built by Louvain
community detection over a 5.5 billion edge similarity network spanning 5.2
million UniRef90 representatives, yielding about 1.2 million communities. A
Swiss-Prot protein inherits the MIPS cluster of its UniRef90 representative;
proteins longer than 1,200 residues, and those whose UniRef90 cluster has fewer
than 10 members, have no MIPS cluster and contribute no Stage 1 pairs. The
resulting same-cluster / different-cluster label is recorded per pair in
`stage1_pairs/`, position 4 of each record.
---
## Reproducing the paper's counts
The record counts above are the dataset sizes reported in the main text:
119,546 / 388 / 534 Stage 1 pairs and 207,197 / 1,000 / 1,000 / 1,031 Stage 2
proteins.
|