This repository contains a Streamlit app that retrieve curated mappings from SIFTS database or generate automated mappings using PDBe-SIFTS, in DBREF format.
DBREF records the mapping of each chain of a PDB entry to its UniProtKB sequence. Note that this format has been frozen since 2012 though it is still widely used. This app generates DBREF lines from curated SIFTS mappings, or automated mappings using the open-source PDBe-SIFTS package.
Enter one or more PDB IDs and choose:
- SIFTS mappings curated by PDB and UniProt
- Automated mapping generated by sequence search and alignment, using the open-source PDBe-SIFTS package
Example output:
DBREF 3A1Y A 1 58 UNP O57705 RL12_PYRHO 1 58
DBREF 3A1Y G 1 284 UNP O74109 RL10_PYRHO 1 284
cd dbref_sifts
pip install -r requirements.txt
streamlit run dbref.pyReads the precomputed residue-level mapping from the PDBe API
(/pdbe/api/mappings/uniprot/{pdb_id}), curated by PDB and UniProt.
See the preprint for detail:
Bellaiche A, et al. PDBe-SIFTS: an open-source tool for Structure Integration with Function, Taxonomy, and Sequences, featuring improved alignment, scoring scheme, and accelerated search. bioRxiv 2026.04.30.721839. https://doi.org/10.64898/2026.04.30.721839
- Proteome scan. Every UniProtKB sequence for the entity's source organism is streamed and searched for the chain sequence as an exact substring.
- Local alignment. The best candidate is aligned against the chain with a
Smith-Waterman local alignment (BLOSUM62, gap open −11, extend −1), standing in for
the
lalign36step in the real pipeline. Aligned blocks of at least four residues become segments. - Acceptance threshold. The alignment must reach the identity threshold (90% by default, matching PDBe-SIFTS) and cover at least half the chain.
Because step 1 matches exact sequences, a construct carrying point mutations or a fusion tag, or an entity with no recorded source organism, will not resolve. Those are reported as unmatched under Mapping details.
DBREF follows the wwPDB PDB format v3.3, but this is a legacy format that predates modern UniProt accessions. It is therefore widen to keep one record per segment. Note that the output could be misread by a strict column-based parser.
| Option | Default | Effect |
|---|---|---|
| Source | Curated | Curated SIFTS mapping, or automated from sequence. |
| Minimum identity | 90% | Acceptance threshold for automated mappings. Disabled under Curated. |
| SwissProt only | On | Restrict to reviewed entries, significantly faster than search the full UniProtKB. |
| Merge segments | Off | Join stretches that run consecutively in both structure and sequence. |
| Record layout | Fixed columns | wwPDB layout, or tab-delimited. |
- PDBe API — SIFTS mappings, entity sequences, residue numbering.
- UniProt REST API — sequences, review status, entry names.
- Conny Yu – GitHub Profile
using Claude Opus 5