timodonnell's picture
Identify as mirror; canonical lives in the open-athena/MarinFold bucket
5d68a24 verified
|
Raw
History Blame Contribute Delete
2.57 kB
---
license: cc-by-4.0
language:
- en
tags:
- tokenizer
- protein-structure
- protein-language-model
- contacts-v1
---
# contacts-v1 tokenizer
Tokenizer for the [`contacts-v1`](https://github.com/Open-Athena/MarinFold/tree/main/marinfold/marinfold/document_structures/contacts_v1) protein-document format produced by [MarinFold](https://github.com/Open-Athena/MarinFold), used by the [`contacts-v1-5x` subset of `timodonnell/protein-docs`](https://huggingface.co/datasets/timodonnell/protein-docs/tree/main/contacts-v1-5x).
> **This is a mirror** for ease of `AutoTokenizer.from_pretrained("timodonnell/contacts-v1-tokenizer")`. **Canonical location** is co-located with the data at [`open-athena/MarinFold:data/document_structures/contacts_v1/tokenizer/`](https://huggingface.co/buckets/open-athena/MarinFold/tree/main/data/document_structures/contacts_v1/tokenizer) (new MarinFold convention: tokenizer lives in the bucket next to its data).
`load_dataset("timodonnell/protein-docs", "contacts-v1-5x")` documents tokenize directly with this tokenizer — no extra mapping needed.
## Vocab
**2,845 tokens total** (2,843 domain tokens + `<pad>` + `<eos>`). The vocab is **the union of contacts-v1's own 5 native tokens and the entire `contacts-and-distances-v1` vocab** — so a `contacts-v1` model can be fine-tuned on `contacts-and-distances-v1` documents (and vice versa) without swapping tokenizers.
- **5 contacts-v1 native tokens** — `<contacts-v1>`, `<n-term>`, `<c-term>`, `<contact>`, `<think>`.
- **`contacts-and-distances-v1` vocab (reused by emission)** — position tokens `<p0>`…`<p2700>`, section markers `<begin_sequence>` / `<begin_statements>`, amino-acid tokens `<ALA>`…`<VAL>`, `<UNK>`, `<end>`, plus the rest of `contacts-and-distances-v1`'s tokens (modes, distance bins, atoms, pLDDT bins) which contacts-v1 documents do not emit but the tokenizer can encode.
## Usage
```python
from transformers import AutoTokenizer
tok = AutoTokenizer.from_pretrained("timodonnell/contacts-v1-tokenizer")
ids = tok.encode("<contacts-v1> <begin_sequence> <p20> <MET>", add_special_tokens=False)
print(ids)
print(tok.decode(ids))
```
## Provenance
Built by `marinfold` v0.1.0 at git rev `dd025aab` (`uv run contacts-v1 tokenizer --push …`), with the full vocab in [`marinfold/.../document_structures/contacts_v1/vocab.py`](https://github.com/Open-Athena/MarinFold/blob/main/marinfold/marinfold/document_structures/contacts_v1/vocab.py). Created as part of [MarinFold issue #53](https://github.com/Open-Athena/MarinFold/issues/53).