Download staplebridge/chemistry/state.py from ChatterjeeLab/StapleBridge: direct link, hf CLI and curl.
- Browser
- Download file 1.54 kB
-
https://huggingface.co/ChatterjeeLab/StapleBridge/resolve/main/staplebridge/chemistry/state.py
- Command line
-
hf download hf://ChatterjeeLab/StapleBridge/staplebridge/chemistry/state.py
-
curl -L -o state.py https://huggingface.co/ChatterjeeLab/StapleBridge/resolve/main/staplebridge/chemistry/state.py
1.54 kB
| from __future__ import annotations | |
| from dataclasses import dataclass, field | |
| from typing import Any | |
| class StapleState: | |
| sequence_tokens: list[str] | |
| anchor_pair: tuple[int, int] | None = None | |
| block_id: str | None = None | |
| topology: str = "linear" | |
| metadata: dict[str, Any] = field(default_factory=dict) | |
| def from_sequence(cls, seq: str, **kwargs: Any) -> "StapleState": | |
| return cls(sequence_tokens=list(seq), **kwargs) | |
| def to_sequence(self) -> str: | |
| return "".join(self.sequence_tokens) | |
| def copy(self) -> "StapleState": | |
| return StapleState( | |
| sequence_tokens=self.sequence_tokens.copy(), | |
| anchor_pair=None if self.anchor_pair is None else tuple(self.anchor_pair), | |
| block_id=self.block_id, | |
| topology=self.topology, | |
| metadata=dict(self.metadata), | |
| ) | |
| def __hash__(self) -> int: | |
| return hash((tuple(self.sequence_tokens), self.anchor_pair, self.block_id, self.topology)) | |
| def __eq__(self, other: object) -> bool: | |
| if not isinstance(other, StapleState): | |
| return False | |
| return ( | |
| self.sequence_tokens == other.sequence_tokens | |
| and self.anchor_pair == other.anchor_pair | |
| and self.block_id == other.block_id | |
| and self.topology == other.topology | |
| ) | |
| def __str__(self) -> str: | |
| return f"StapleState(seq={self.to_sequence()}, anchor={self.anchor_pair}, block={self.block_id}, topo={self.topology})" | |