Name

SWISS::GNs.pm

Description

SWISS::GNs represents the \s-1GN\s0 lines within an SWISS-PROT + TrEMBL entry as specified in the user manual http://www.expasy.org/sprot/userman.html . The GNs object is a container object which holds a list of SWISS::GeneGroup objects.

Inherits from

SWISS::ListBase.pm

Attributes

  Each list element is a SWISS::GeneGroup object.

Delimiter used between genes. Defaults to " AND ". Delimiter used between gene names. Defaults to " OR ".

Methods

Standard methods

new
fromText
toText

Reading/Writing methods

text [($newText)]

Sets the text of the \s-1GN\s0 line to the parameter if it is present, and returns the (unwrapped) text of the line. Also sets 'and' and 'or' delimiters to the first occurrences of the words \*(L"\s-1OR\s0\*(R" and \*(L"\s-1AND\s0\*(R" in the line, conserving the case.

lowercase (deprecated, for old format only)

Sets the GNs::and and GNs::or delimiters to their lower case values.

uppercase (deprecated, for old format only)

Sets the GNs::and and GNs::or delimiters to their upper case values.

getFirst()

Returns first gene name in gene line

getTags($target)

Returns evidence tags associated with $target $target is a string

isPresent($target)

Returns 1 if $target is present in the \s-1GN\s0 line $target is a string

needsReCasing($target)

If $target is present in the \s-1GN\s0 line, but wrongly cased, method returns the matching name in its current case $target is a string Replaces the first \s-1GN\s0 object in the \s-1GN\s0 line whose text attribute is $target with a new \s-1GN\s0 object whose text attribute is set to $newName and whose evidenceTags attribute is is set using values set by splitting $evidenceTag on /, / (as name is not being changed, programs should keep old tag and add new tag). Does nothing if $target is not found.

delete($target)

Removes synonym/single-member gene group matching $target. Note that if a \*(L"Name\*(R" is deleted, the first \*(L"Synonym\*(R" will be promoted to \*(L"Name\*(R" Adds a new \s-1GN\s0 object (with text attribute set to new $newName, and evidenceTags attribute set to ($evidenceTag)), as a synonym to the first gene group in which $target is a gene name. Does nothing if $target is not found. Will not add a duplicate gene name. $location determines where in gene group new object is added: if $location == 1, 2, 3, ..., new object added in the 1st, 2nd, 3rd, ... position; if $location == 0, new object added before $target; if $location == -1, new object added after $target (default); if $location == -2, new object added at end of gene group. Note that if the new synonym is inserted in the first postion, it will become the \*(L"Name\*(R" and the previous \*(L"Name\*(R" will be downgraded to first \*(L"Synonym\*(R" Adds a new GeneGroup object, comprising 1 \s-1GN\s0 object (with text attribute set to new $newName, and evidenceTags attribute set to ($evidenceTag)). Will not add a duplicate gene name. $location and $target determine where in GNs line new group is added: if $location == 1, 2, 3, ..., new object added in the 1st, 2nd, 3rd, ... position; if $location == 0, new object added before $target; if $location == -1, new object added after $target (default); if $location == -2, new object added at end of GNs line. Does nothing if $target is not found, and $location == 0 or -1; otherwise $target does not need to be set. Replaces the first gene group containing $target with $newGeneGroup. Creating the $newGeneGroup correctly is the user's responsibility

getGeneGroup($target)

Returns the first gene group that contains $target

setToOr()

Retruns a new GNs object, but with all GNs objects in a single gene group. Needed when adding 'C' to 'A and B', when the relationship of 'C' to 'A' and 'B' is unknown: the universal use of ' or ' is the default delimeter for TrEMBL entries

TRANSITION

The format of the \s-1GN\s0 line will change in 2004 from:

GN (CYSA1 OR CYSA OR RV3117 OR MT3199 OR MTCY164.27) AND (CYSA2 OR GN RV0815C OR MT0837 OR MTV043.07C).

to:

GN Name=CysA1; Synonyms=CysA; OrderedLocusNames=Rv3117, MT3199; GN ORFNames=MtCY164.27; GN and GN Name=CysA2; OrderedLocusNames=Rv0815c, MT0837; ORFNames=MTV043.07c;

This module supports both formats. To convert an entry from the old to the new format, do:

$entry->GNs->is_old_format(0);