Download data/Data_availability/README.md from Mulah/ProtTale: direct link, hf CLI and curl.
- Browser
- Download file 5.47 kB
-
https://huggingface.co/Mulah/ProtTale/resolve/main/data/Data_availability/README.md
- Command line
-
hf download hf://Mulah/ProtTale/data/Data_availability/README.md
-
curl -L -o README.md https://huggingface.co/Mulah/ProtTale/resolve/main/data/Data_availability/README.md
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.