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://bioperl.org/wiki/Mailing_lists - About the mailing lists
Support¶
Please direct usage questions or support issues to the mailing list:
bioperl-l@bioperl.org
rather than to the module maintainer directly. Many experienced and reponsive
experts will be able look at the problem and quickly address it. Please
include a thorough description of the problem with code and data examples if
at all possible.
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 the web:
https://github.com/bioperl/bioperl-live/issues
AUTHOR - Heikki Lehvaslaiho¶
Email: heikki-at-bioperl-dot-org
CONTRIBUTORS¶
Sendu Bala bix@sendu.me.uk
APPENDIX¶
The rest of the documentation details each of the object methods. Internal
methods are usually preceded with a _
cytorange¶
Title : cytorange
Usage : my $range = $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 chosen 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
Returns : Bio::Range object or undef
Args : none
range2value¶
Title : range2value
Usage : my $value = $obj->range2value($range);
Function: Sets and returns the value string based on start and end values of
the Bio::Range object passes as an argument.
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 : none to get, OR scalar to set
numeric¶
Title : numeric
Usage : my $num = $position->numeric;
Function: Read-only method that is guarantied to return a numeric
representation of the start of this position.
Returns : int (the start of the range)
Args : optional Bio::RangeI object
chr¶
Title : chr
Usage : my $mychr = $position->chr();
Function: Get/Set method for the chromosome string of the location.
Returns : chromosome value
Args : none to get, OR scalar to set