SWISS::DEs(3pm)
π NAME π
SWISS::DEs.pm β that's the module, bestie, and this manual page is SWISS::DEs(3pm) from the User Contributed Perl Documentation. She's giving UniProt parsing realness. β¨
πΈ DESCRIPTION πΈ
okay so SWISS::DEs represents the DE lines of a UniProt Knowledgebase entry β that's Swiss-Prot + TrEMBL together β exactly as specified in the user manual at http://www.expasy.org/sprot/userman.html. no cap, that's the spec, we're just the girlies who implement it. π
The DEs object basically holds lists of DE objects, each of them representing a protein name element. The "elements", "hasFragment", "Includes" and "Contains" attributes/methods work as follows :
DE RecName: Full=CAD protein;
DE Short=CAD;
DE AltName: Full=Protein rudimentary;
DE Includes:
DE RecName: Full=Glutamine-dependent carbamoyl-phosphate synthase;
DE EC=6.3.5.5;
DE Includes:
DE RecName: Full=Aspartate carbamoyltransferase;
DE EC=2.1.3.2;
DE Flags: Fragment;
-= Entry::DEs =-
elements (for each DE object, see SWISS::DE.pm documentation) :
toText: "CAD protein", "CAD", "Protein rudimentary"
category: "RecName", "RecName", "AltName"
type: "Full", "Short" "Full"
hasFragment : "Fragment"
Includes : ListBase of DEs (child1, child2)
Contains : empty ListBase
-= child1 =-
elements (for each DE object) :
toText: "Glutamine-dependent carbamoyl-
phosphate synthase", "6.3.5.5"
category: "RecName", "RecName",
type: "Full", "EC"
hasFragment : undef
-= child2 =-
elements (for each DE object) :
toText: "Aspartate carbamoyltransferase", "2.1.3.2"
category: "RecName", "RecName",
type: "Full", "EC"
hasFragment : undef
Note: the old unstructured DE format can still be used, and will be parsed the same way into DE objects (but without setting their attributes'category'and'type'). she's lowkey forgiving like that. π«Ά
DE CAD protein (Protein rudimentary) [Includes: Glutamine-dependent
DE carbamoyl-phosphate synthase (EC 6.3.5.5); Aspartate
DE carbamoyltransferase (EC 2.1.3.2)] (Fragment).
π¦ INHERITS FROM π¦
SWISS::ListBase.pm β she got it from her mama, periodt. π
π ATTRIBUTES π
"text"β the (raw) text of the DE line, and yes it comes without the'DE 'line type prefixes. keep it clean bestie π"list"β an array reference to theSWISS::DEobjects holding the different names for the entry. The first element of the list is the recommended name. Note: use the"elements"method (inherited from ListBase) to get (and loop through) the array of DE objects, iykyk."Includes","Contains"β each of these is aSWISS::ListBaseobject whose list contains aSWISS::DEsobject for each'child'of the protein (i.e. peptide or functional domain). See the UniProtKB user manual for an explanation. And plot twist: it is possible to have both Includes and Contains in a single entry:
DE RecName: Full=Arginine biosynthesis bifunctional protein argJ;
DE Includes:
DE RecName: Full=Glutamate N-acetyltransferase;
DE EC=2.3.1.35;
DE AltName: Full=Ornithine acetyltransferase;
DE Short=OATase;
DE AltName: Full=Ornithine transacetylase;
DE Includes:
DE RecName: Full=Amino-acid acetyltransferase;
DE EC=2.3.1.1;
DE AltName: Full=N-acetylglutamate synthase;
DE Short=AGS;
DE RecName: Full=Arginine biosynthesis bifunctional protein argJ alpha chain;
DE Contains:
DE RecName: Full=Arginine biosynthesis bifunctional protein argJ beta chain;
"hasFragment"β contains'Fragment'or'Fragments'(which evaluates to true π―) if the DE lines contain the'Fragment(s)'indication (in the'Flags:'line with the new DE line format), otherwise it evaluates to false. Compare to the more robustEntry::isFragment, which also checks the FT lines for aNON_CONSorNON_TER. she's thorough, she's extra, we love her. β¨"isPrecursor"β returns1if the flag'Precursor'is present (undefif not). Note: only with the new DE line format, bestie, don't come for her about the old one.
π₯ METHODS π₯
π Standard methods
newfromTexttoText
π§ EVIDENCE TAGS π§
With the new DE line format, each DE element can have distinct evidence tags, which are stored in the DE object themself (see SWISS::DE.pm documentation). The evidence tags for the 'Flags' line are stored in the parent DEs object itself. π«Ά
With the old DE line format, since the DE line did not have a fixed syntax in TrEMBL, it is impossible to reliably assign evidence tags separately to the different elements of the DE lines. Therefore, the DE line can only be evidence tagged as a whole, and the following methods have their prototype defined in SWISS::BaseClass instead of the direct parent of SWISS::DEs, SWISS::ListBase :
addEvidenceTag
deleteEvidenceTags
getEvidenceTags
getEvidenceTagsString
hasEvidenceTag
setEvidenceTags
example :
$evidenceTag = $entry->Stars->EV->addEvidence('P', 'DEfix', '-', 'v1.3');
# add global DE evtag if old DE line format, 'Flags' evtag if new format
$entry -> DEs -> addEvidenceTag($evidenceTag);
and that's the whole page, bestie β this one came to you courtesy of perl v5.32.1, dated 2021-08-15, from the SWISS::DEs(3pm) manual. slay, go parse some proteins, mwah π π
π¦ where this page comes from
- debian bookworm: libswiss-perl 1.80-1 Β· GPL-2.0-or-later
- debian trixie: libswiss-perl 1.80-1 Β· GPL-2.0-or-later
- ubuntu jammy: libswiss-perl 1.80-1 Β· GPL-2.0-or-later
- ubuntu noble: libswiss-perl 1.80-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms