Provided by: libswiss-perl_1.80-1_all bug

Name

       SWISS::DEs.pm

Description

       SWISS::DEs represents the DE lines of a UniProt Knowledgebase (Swiss-Prot + TrEMBL) entry
       as specified in the user manual http://www.expasy.org/sprot/userman.html.

       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'.

        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

Attributes

       "text"
           The (raw) text of the DE line (without the 'DE   ' line type prefixes)

       "list"
           Array reference to the SWISS::DE objects containing the different names for the entry.
           The first element of the list is the recommended name.  Note: use "elements" method
           (inherited from ListBase) to get (and loop through) the array of DE objetcs.

       "Includes"
       "Contains"
           Each of these is a SWISS::ListBase object whose list contains a SWISS::DEs object for
           each 'child' of the protein (i.e. peptide or functional domain). See the UniProtKB
           user manual for an explanation. 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' (evaluates to true) if the DE lines contain the
           'Fragment(s)' indication (in 'Flags:' line with the new DE line format), otherwise
           evaluates to false. Compare to the more robust Entry::isFragment which also checks the
           FT lines for a NON_CONS or NON_TER.

       "isPrecursor"
           Returns 1 if the flag 'Precursor' is present (undef if not). Note: only with new DE
           line format.

Methods

   Standard methods
       new
       fromText
       toText

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);