![]() |
OpenMS
|
The annotations of the PEFF entries that UniPEFF writes for a UniProtKB entry: its canonical entry and the entries of its reconstructed isoforms. More...
Classes | |
| struct | DisulfidePairItem |
| struct | EntryAnnotations |
| struct | IsoformEntry |
| One reconstructed isoform, ready for emission as its own PEFF entry. More... | |
| struct | IsoformScopedTracker |
| struct | ModResItem |
| struct | PreparedEntry |
| struct | ProcessedItem |
| struct | PtmEntry |
| struct | VariantComplexItem |
| struct | VariantSimpleItem |
Typedefs | |
| using | PtmMap = std::unordered_map< std::string, PtmEntry > |
| using | SkippedIsoformCounts = std::map< std::string, size_t > |
Enumerations | |
| enum class | ChainPosition { Anywhere , NTerminal , CTerminal } |
| Where the ptmlist places a residue of a modification in the polypeptide (one part of its "PP" line) More... | |
Functions | |
| std::vector< ChainPosition > | parseChainPositions (const std::string &pp) |
| bool | isResidueCode (char c) |
| PEFF VariantSimple newAA must be an amino-acid letter (or '*'). | |
| std::string | positionOrUnknown (int p) |
| 0 → "?", else decimal. | |
| PreparedEntry | prepareEntry (UniProtEntry &&e, const PtmMap &ptms, const std::string &prefix_override, bool option_b, bool record_processing, bool record_aa_mods, bool record_variants, bool record_isoforms, bool map_canonical_features, SkippedIsoformCounts &skipped_isoforms) |
Variables | |
| constexpr uint32_t | kNoId = std::numeric_limits<uint32_t>::max() |
| Sentinel for "no annotation identifier assigned": the tuple is emitted without an id: prefix. | |
The annotations of the PEFF entries that UniPEFF writes for a UniProtKB entry: its canonical entry and the entries of its reconstructed isoforms.
prepareEntry() classifies the features of an entry into annotations of the canonical entry or of the isoform they are annotated on; the tool writes the prepared entries.
| struct OpenMS::UniPEFFEntries::DisulfidePairItem |
| Class Members | ||
|---|---|---|
| uint32_t | annotation_id {kNoId} | id of the \DisulfideBond tuple itself (kNoId = not emitted) |
| size_t | idx_a {0} | Indices into EntryAnnotations::mods after merge — resolved to annotation_ids during emission. |
| size_t | idx_b {0} | |
| bool | valid {false} | true when both endpoints come from a <begin>/<end> location; cleared by invalidateOutOfRangeDisulfides() |
| struct OpenMS::UniPEFFEntries::EntryAnnotations |
| Class Members | ||
|---|---|---|
| vector< VariantComplexItem > | complex_variants | |
| vector< DisulfidePairItem > | disulfides |
indices reference halfcys before merge, mods after merge |
| vector< ModResItem > | halfcys | |
| vector< ModResItem > | mods | Final merged + sorted list (built by classifyAndMerge). |
| vector< ProcessedItem > | processed | |
| vector< ModResItem > | regular_mods | |
| vector< VariantSimpleItem > | simple_variants | |
| struct OpenMS::UniPEFFEntries::IsoformEntry |
One reconstructed isoform, ready for emission as its own PEFF entry.
| Class Members | ||
|---|---|---|
| string | accession | isoform accession, e.g. "P02768-2" |
| EntryAnnotations | annotations |
features UniProt annotates on this isoform (<location sequence="...">), plus, unless -omit_canonical_features is set, the canonical ones mapped onto it |
| string | name | isoform <name>, e.g. "2" or "VEGF121" |
| string | sequence |
canonical sequence with the referenced splice variants applied |
| struct OpenMS::UniPEFFEntries::ModResItem |
| Class Members | ||
|---|---|---|
| uint32_t | annotation_id {kNoId} | 0-based; all tuples in Option B, paired half-cystines in default mode |
| bool | is_halfcys {false} | for stable tie-break on merge |
| string | name | display name (UniProt PTM ID or fallback description) |
| int | position {0} | 0 = unknown ('?') |
| const PtmEntry * | ptm {nullptr} | nullptr = generic (no accession), description in name |
| struct OpenMS::UniPEFFEntries::PreparedEntry |
| Class Members | ||
|---|---|---|
| EntryAnnotations | annotations | |
| size_t | canonical_mapped {0} | canonical mapping: canonical annotations written to an isoform entry (counted once per isoform) |
| size_t | canonical_unmapped {0} |
canonical mapping: canonical annotations not written to an isoform entry because they lie in or cross one of its splice variants (or one changes the cleavage site or chain terminus they depend on), have an unknown position, or contradict an annotation UniProt makes on that isoform itself (counted once per isoform) |
| size_t | isoform_scoped_applied {0} | isoform-scoped features written to their isoform's entry |
| size_t | isoform_scoped_skipped {0} |
isoform-scoped features left out (isoform not written) that would otherwise have become annotations |
| vector< IsoformEntry > | isoforms | reconstructed alternative products (emitted after the entry) |
| string | prefix | sp/tr or user override |
| UniProtEntry | source | |
| struct OpenMS::UniPEFFEntries::ProcessedItem |
| Class Members | ||
|---|---|---|
| uint32_t | annotation_id {kNoId} | assigned in Option B only |
| int | begin {0} | |
| string | cv | PEFF CV accession, e.g. "PEFF:0001021". |
| int | end {0} | |
| string | type_name | human name, e.g. "signal peptide" |
| struct OpenMS::UniPEFFEntries::PtmEntry |
| Class Members | ||
|---|---|---|
| string | accession | UniProt internal accession, e.g. "PTM-0253". |
| vector< ChainPosition > | chain_positions {} |
ptmlist "PP" line (position of the modification in the polypeptide, see parseChainPositions()): one value per residue, in the order the ID names them, e.g. {NTerminal} for N-acetylalanine ("PP N-terminal.") or {Anywhere, CTerminal} for the cross-link S-(2-aminovinyl)-D-cysteine (Cys-Cys) of lantibiotics ("PP Anywhere-C-terminal."). Empty if the line is missing or not understood. |
| string | id | UniProt PTM name (the lookup key from feature/@description) |
| string | psi_mod | "MOD:xxxxx" or empty |
| string | unimod |
"N" (numeric Unimod id) or empty (NOT prefixed with "UNIMOD:") |
| struct OpenMS::UniPEFFEntries::VariantComplexItem |
| Class Members | ||
|---|---|---|
| uint32_t | annotation_id {kNoId} | assigned in Option B only |
| int | begin {0} | |
| int | end {0} | |
| string | new_seq | |
| struct OpenMS::UniPEFFEntries::VariantSimpleItem |
| Class Members | ||
|---|---|---|
| uint32_t | annotation_id {kNoId} | assigned in Option B only |
| char | new_aa {'?'} | |
| int | position {0} | |
| using SkippedIsoformCounts = std::map<std::string, size_t> |
Isoforms without a reconstructable sequence ("external": stored as its own UniProt entry; "not described": sequence unknown), counted per sequence type so the run reports them in one summary line instead of one line per isoform.
|
strong |
Where the ptmlist places a residue of a modification in the polypeptide (one part of its "PP" line)
| bool isResidueCode | ( | char | c | ) |
PEFF VariantSimple newAA must be an amino-acid letter (or '*').
| std::vector< ChainPosition > parseChainPositions | ( | const std::string & | pp | ) |
| std::string positionOrUnknown | ( | int | p | ) |
0 → "?", else decimal.
| PreparedEntry prepareEntry | ( | UniProtEntry && | e, |
| const PtmMap & | ptms, | ||
| const std::string & | prefix_override, | ||
| bool | option_b, | ||
| bool | record_processing, | ||
| bool | record_aa_mods, | ||
| bool | record_variants, | ||
| bool | record_isoforms, | ||
| bool | map_canonical_features, | ||
| SkippedIsoformCounts & | skipped_isoforms | ||
| ) |
Prepare one entry: reconstruct the emittable isoform sequences ("external" / "not
described" isoforms are counted in skipped_isoforms), classify each feature into the canonical entry or, if its <location sequence="..."> names an emitted isoform, into that isoform's entry. With map_canonical_features (the tool's default, unset by -omit_canonical_features), the canonical entry's annotations are also mapped onto each isoform through its splice variants: features in a deleted or replaced region, or regions overlapping one, are not mapped (processed regions may span one, but not a cleavage site at their ends: one whose flanking residues a splice variant changes; a region starting right after a removed initiator methionine then starts at the isoform's N-terminus), nor are modifications the ptmlist places at a chain terminus (PtmEntry::chain_positions) next to a splice variant, and a copy of a feature UniProt annotates on that isoform itself (for a glycosylation: any on that residue) is not added again. UniProt's own isoform annotation also wins over a mapped one it contradicts (same-type processed regions that overlap, disulfide bonds sharing a cysteine, a cross-link sharing a residue with a disulfide bond or cross-link if one of the two links two residues): the mapped one is not added and a warning is logged. Then, per entry, merge halfcys, drop disulfide pairs with out-of-range endpoints and stamp annotation IDs (global in Option B, selective disulfide labels otherwise).
References IsoformEntry::accession, UniProtEntry::accession, IsoformEntry::annotations, PreparedEntry::annotations, PreparedEntry::canonical_mapped, PreparedEntry::canonical_unmapped, UniProtEntry::dataset, UniProtFeature::description, UniProtEntry::features, first, PreparedEntry::isoform_scoped_applied, PreparedEntry::isoform_scoped_skipped, PreparedEntry::isoforms, UniProtEntry::isoforms, IsoformEntry::name, OPENMS_LOG_DEBUG, OPENMS_LOG_WARN, PreparedEntry::prefix, IsoformEntry::sequence, UniProtEntry::sequence, PreparedEntry::source, and UniProtFeature::type.
|
constexpr |
Sentinel for "no annotation identifier assigned": the tuple is emitted without an id: prefix.