Functional Domains
Two complementary domain definitions — sequence-based (Pfam) and structure-based (TED) — mapped onto splicing events without prejudging the outcome.
SPLISOFORMS scans every isoform's protein sequence against the full Pfam-A HMM library with HMMER (via pyhmmer) and records every significant domain hit with residue-level coordinates. Each hit is then annotated along two orthogonal axes:
- Functional class — what the domain does, based on a curated Pfam clan + accession mapping.
- Alteration type — where the splicing event has perturbed the domain (N-terminal, C-terminal, both, internal, or full loss / gain).
The Mapping Pipeline
The scanner uses the Pfam gathering thresholds (GA) by default. Each hit is stored with HMM-model coordinates (hmm_start /hmm_end /hmm_length) so a partial hit can be localised to a specific portion of the canonical domain architecture. The same isoform sequence is also matched against the canonical-isoform domain set; differences in domain presence and HMM coverage are what drive the alteration-type classification.
A second annotation layer — functional class — is derived in software from the Pfam clan and a curated accession whitelist. See backend/app/analysis/functional_classes.pyfor the full mapping. Both annotations are persisted (see pfam_domains.functional_class and pfam_domains.alteration_type) and exposed via the API; no extra HMMER scan is needed to re-classify when the curation evolves.
Functional Classes
The classes below carve up the Pfam universe into broad activity buckets that surface together in the UI and the API. The taxonomy is intentionally coarse and conservative — curated assignments only. Domains whose Pfam family has no clan assignment, or whose clan we haven't reviewed yet, land in Other / unclassified. That bucket is not "low importance" — it's unsorted, and many transcription co-factors, RNA-processing factors, and structural adaptors live there. Treat the class as a filter / facet, not a verdict.
| Class | Family | Example Pfam IDs |
|---|---|---|
| Kinase | catalytic | Pkinase (PF00069), Pkinase_Tyr (PF07714) |
| Phosphatase | catalytic | Y_phosphatase (PF00102), DSPc (PF00782), PP2C (PF00481) |
| Protease | catalytic | Trypsin (PF00089), Peptidase_C1 (PF00112), Caspase (PF00656) |
| Catalytic (other) | catalytic | DEAD helicase (PF00270), Rossmann-fold dehydrogenases, P-loop NTPases |
| Ubiquitin ligase / E2 | catalytic | RING (PF00097), HECT (PF00632), UQ_con / E2 (PF00179) |
| DNA-binding | binding | Homeobox (PF00046), HLH (PF00010), bZIP (PF00170), C2H2 zinc finger (PF00096) |
| RNA-binding | binding | RRM (PF00076), KH (PF00013), dsrm (PF00035) |
| Signaling adapter | adapter | SH2 (PF00017), SH3 (PF00018), PDZ (PF00595), PH (PF00169), WW (PF00397) |
| Oligomerization / scaffold | scaffold | Ankyrin (PF00023), WD40 (PF00400), TPR clan (CL0020) |
| Other / unclassified | other | Anything outside the curated list — explicitly NOT a low-priority bucket; many TFs and RNA-processing factors fall through here when their Pfam family lacks a clan assignment. |
Alteration Geometry
Each domain hit carries an alteration_type describing where the splicing event has changed the domain relative to the canonical isoform's hit on the same Pfam family. This matters because the same family can be activated, deactivated, or converted into a dominant-negative version depending on which piece of the model is removed.
Full-coverage HMM hit (>= 80% of the model length). The domain looks complete in this isoform.
The isoform's hit starts well past the beginning of the HMM model. The N-terminal portion of the canonical domain is missing. For many regulated catalytic domains this removes auto-inhibitory regions; for others (e.g. typical kinase N-lobe) it removes parts of the catalytic machinery — outcome depends on which residues are actually gone.
The hit ends well before the end of the HMM model. C-terminal regulatory tails, docking sites or substrate-recognition loops can be removed without disturbing the catalytic core — or the catalytic core itself can be the part that's gone.
An internal slice of the HMM model is retained while both ends are missing. Often the result of an exon-skipping event that lands inside the domain.
Both ends are inside the HMM model and HMM coverage is below 50% — consistent with a small fragment surviving inside an otherwise lost domain, or an internal in-frame deletion.
The domain is present in the canonical isoform but entirely absent from the novel one. Shown only on the canonical reference track; absent from the isoform track.
The domain matches in the novel isoform but not the canonical — usually a novel exon or a frameshift that exposes a different reading frame.
Thresholds
The HMM-coverage floor for "intact" is 80% of model length (or relative coverage >= 85% of the best canonical hit for the same family). N-terminal vs. C-terminal classification uses a 10% pad at either end of the HMM model — i.e. a hit starting past the first 10% of the HMM is called N-terminally truncated. These thresholds are TRUNCATION_THRESHOLD, RELATIVE_TRUNCATION_THRESHOLD, N_TERM_PAD and C_TERM_PAD in backend/app/analysis/.
TED — Structural Domains
While Pfam answers "which sequence motifs are present", TED (The Encyclopedia of Domains)answers the complementary, structure-based question: how does the folded protein partition into independent, compact domain units?
Uniform De Novo Domain Chopping
With our unified AlphaFold 3 architecture, both canonical and novel isoform structures are chopped de novo using Chainsaw. This ensures that every isoform is evaluated on a level playing field, producing consistent seq_start /seq_end boundaries based entirely on their 3D conformations.
Why two systems?
A splice event can leave a Pfam motif intact while collapsing the structural domain that hosts it (or vice-versa). Reading the two side by side separates "the sequence signature survives" from "the fold survives".