NAME

Bio::Map::CytoPosition - Marker class with cytogenetic band storing attributes

SYNOPSIS

  $m1 = Bio::Map::CytoPosition->new ( '-id' => 'A1',
				       '-value' => '2q1-3'
					     );
  $m2 = Bio::Map::CytoPosition->new ( '-id' => 'A2',
				       '-value' => '2q2'
					     );

  if ($m1->cytorange->overlaps($m2->cytorange)) {
      print "Makers overlap\n";
  }

DESCRIPTION

CytoPosition is marker (Bio::Map::MarkerI compliant) with a location in a cytogenetic map. See Bio::Map::MarkerI for more information.

Cytogenetic locations are names of bands visible in stained mitotic eucaryotic chromosomes. The naming follows strict rules which are consistant at least in higher vertebates, e.g. mammals. The chromosome name preceds the band names.

The shorter arm of the chromosome is called 'p' ('petit') and usually drawn pointing up. The lower arm is called 'q' ('queue'). The bands are named from the region separting these, a centromere (cen), towards the tips or telomeric regions (ter) counting from 1 upwards. Depending of the resolution used the bands are identified with one or more digit. The first digit determines the major band and subsequent digits sub bands: p1 band can be divided into subbands p11, p12 and 13 and p11 can furter be divided into subbands p11.1 and p11.2. The dot after second digit makes it easier to read the values. A region between ands is given from the centromere outwards towards the telomere (e.g. 2p2-5 or 3p21-35) or from a band in the p arm to a band in the q arm.

FEEDBACK

Mailing Lists

User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing lists Your participation is much appreciated.

bioperl-l@bioperl.org                         - General discussion
http://bio.perl.org/MailList.html             - About the mailing lists

Reporting Bugs

report bugs to the Bioperl bug tracking system to help us keep track the bugs and their resolution. Bug reports can be submitted via email or the web:

bioperl-bugs@bio.perl.org
http://bugzilla.bioperl.org/

AUTHOR - Heikki Lehvaslaiho

Email: heikki@ebi.ac.uk Address:

EMBL Outstation, European Bioinformatics Institute
Wellcome Trust Genome Campus, Hinxton
Cambs. CB10 1SD, United Kingdom

APPENDIX

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _

cytorange

Title   : cytorange
Usage   : $obj->cytorange();
Function:

           Converts cytogenetic location set by value method into
           an integer range. The chromosome number determines the
           "millions" in the values.  Human X and Y chromosome
           symbols are represented by values 100 and 101.

           The localization within chromosomes are converted into
           values between the range of 0 and 200,000:

           pter                    cen                       qter
           |------------------------|-------------------------|
           0                     100,000                   200,000

           The values between -100,000 through 0 for centromere to
           100,000 would have reflected the band numbering better but
           use of positive integers was choosen since the
           transformation is very easy. These values are not metric.

           Each band defines a range in a chromosome. A band string
           is converted into a range by padding it with lower and and
           higher end digits (for q arm: '0' and '9') to the length
           of five. The arm and chromosome values are added to these:
           e.g. 21000 & 21999 (band 21) + 100,000 (q arm) + 2,000,000
           (chromosome 2) => 2q21 : 2,121,000 .. 2,121,999. Note that
           this notation breaks down if there is a band or a subband
           using digit 9 in its name!  This is not the case in human
           karyotype.

           The full algorithm used for bands:

           if arm is 'q' then
              pad char for start is '0', for end '9'
              range is chromosome + 100,000 + padded range start or end
           elsif arm is 'p' then
              pad char for start is '9', for end '0'
              range is chromosome + 100,000 - padded range start or end

Example : Returns : Bio::Range object or undef
Args    : none

range2value

Title   : range2value
Usage   : $obj->range2value();
Function:

           Sets and returns the value string based on start and end
           values of the Bio::Range object passes as an argument.

Example :
Returns : string or false
Args    : Bio::Range object

value

Title   : value
Usage   : my $pos = $position->value;
Function: Get/Set the value for this postion
Returns : scalar, value
Args    : [optional] new value to set

numeric

Title   : numeric
Usage   : my $num = $position->numeric;
Function: Read-only method that is guarantied to return a numeric 
          representation for this position. 

          This instanse of the method can also be set, but you better
          know what you are doing.

Returns : Bio::RangeI object 
Args    : optional Bio::RangeI object 

See Bio::RangeI for more information.

chr

Title   : chr
Usage   : my $mychr = $position->chr();
Function: Get/Set method for the chromosome string of the location.
Returns : chromosome value
Args    : [optional] new chromosome value