---
name: "SWISS::DE"
section: "3pm"
platform: "linux"
package: "libswiss-perl"
version: "1.80-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SWISS::DE"
---

# SWISS::DE(3pm)

## Name

SWISS::DE.pm

## Description

Each DE object represents one protein name. The container object for all names  of an entry is SWISS::DEs

## Inherits from

SWISS::BaseClass

## Attributes

- "text"

  The raw text of the protein name.  Note: as SwissKnife works with both new and old DE line formats, for backward  rcompatibility, with both formats everything is parsed and stored the same way as it  was with the old format. Therefore the raw text for a name of type 'EC' e.g.  6.3.5.5 will be "EC 6.3.5.5" (instead of "6.3.5.5"). Other strings only present  in old DE line text format ('precursor' flag and 'Allergen', 'antigen' strings)  are also added in the stored raw text. The safe method to get the DE text is `"toText"` (with both the new and old  DE line format), which for "EC=6.3.5.5" (new DE line format), will return  "6.3.5.5" (DE object of 'EC' type). For "(EC 6.3.5.5)" (old DE line format),  will return "EC 6.3.5.5"

- "category"

  The category of the protein name: 'RecName', 'AltName', 'SubName' (TrEMBL only)

  ```
   DE   RecName: Full=CAD protein;
   DE            Short=CAD;

   Here both names (DE objects), are of category 'RecName'
  ```

  Category can be set/modified using `"category(string)"`

  Note: with the old DE line format, this field is undef

- "type"

  The type of the protein name: 'Full', 'Short', 'EC' 'Allergen', 'CD\_antigen', 'Biotech','INN'

  ```
   DE   RecName: Full=CAD protein;
   DE            Short=CAD;

   Here the first name (DE object), is of type 'Full', the second one
   is of type 'Short'
  ```

  Type can be set/modified using `"type(string)"`

  Note: with the old DE line format, this field is undef

### Standard methods

- new

  - fromText

  - toText ($addParen)

  ```
   addParen : (meaningful only with old DE line format) if set to true,
   the name will be surrounded by parentheses, but not the evidence
   tags, e.g. : '(UMP SYNTHASE){E1}'.
  ```

## Evidence Tags

Each protein name (DE object) can have independent evidence tags.

```
 DE   SubName: Full=Histone H3{EI1};
 DE            EC=3.4.21.9{EC3};
 DE   AltName: Full=Enterokinase{EC5};
```

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');
 $entry->DEs->head->addEvidenceTag($evidenceTag);
```

The easiest way to read the evidence tags of a protein name is to use  c\<getEvidenceTagsString\> that will return the evidence tags as a string with  the enclosing {} brackets. If there are no evidence tags, will return an empty  string.

## POD ERRORS

Hey! **The above document had some coding errors, which are explained below:**

- Around line 165:

  \=back doesn't take any parameters, but you said =back  =head1 Methods
