Bio::Map Contig
SummaryIncluded librariesPackage variablesSynopsisDescriptionGeneral documentationMethods
Toolbar
WebCvs
Summary
Bio::Map::Contig - A MapI implementation handling the contigs of a
Physical Map (such as FPC)
Package variables
No package variables defined.
Included modules
Bio::Range
Inherit
Bio::Map::SimpleMap
Synopsis
    # get the contig object of $contig from the Bio::Map::Physical
my $ctgobj = $physical->get_contigobj($contig);
# acquire all the markers that lie in this contig foreach my $marker ($ctgobj->each_markerid()) { print " +++$marker\n"; } # find the group of this contig print "Group: ",$ctgobj->group(),"\n"; # find the range of this contig print "RANGE: start:",$ctgobj->range()->start(),"\tend: ", $ctgobj->range()->end(),"\n"; # find the position of this contig in $group (chromosome) print "Position in Group $group"," = ",$ctgobj->position($group),"\n";
Description
This is an implementation of Bio::Map::MapI. It handles the
essential storage of name, species, type, and units as well as in
memory representation of the elements of a map.
Bio::Map::Contig has been tailored to work for FPC physical maps, but
could probably be used for others as well (with the appropriate MapIO
module).
Methods
BEGIN Code
newDescriptionCode
chr_remarkDescriptionCode
user_remarkDescriptionCode
trace_remarkDescriptionCode
rangeDescriptionCode
positionDescriptionCode
anchorDescriptionCode
groupDescriptionCode
subgroupDescriptionCode
each_cloneidDescriptionCode
each_markeridDescriptionCode
_each_element
No description
Code
set_clonesDescriptionCode
set_markersDescriptionCode
Methods description
newcode    nextTop
 Title   : new
Usage : my $clone = Bio::Map::Contig->new
(
-name => $name,
-chr_remark => $cremark,
-user_remark => $uremark,
-trace_remark => $tremark,
-group => $group,
-subgroup=> $subgroup,
-anchor => $anchor,
-markers => \%markers,
-clones => \%clones,
-position => $pos
-range => Bio::Range->new(-start =>$s,-end=>$e),
);
Function: Initialize a new Bio::Map::Contig object Most people will not use this directly but get Markers through Bio::MapIO::fpc
Returns : Bio::Map::Contig object
Args : ( -name => name string,
-chr_remark => chr remark string,
-user_remark => userremark string,
-trace_remark => tremark string,
-group => group string,
-subgroup=> subgroup string,
-anchor => boolean if this is anchored or not,
-markers => hashref of contained markers,
-clones => hashref of contained clones,
-position => position
-range => Bio::Range
chr_remarkcodeprevnextTop
 Title   : chr_remark
Usage : my $chrremark = $contigobj->chr_remark();
Function: Get/set the group remark for this contig
Returns : scalar representing the current group_remark of this contig
Args : none to get, OR string to set
user_remarkcodeprevnextTop
 Title   : user_remark
Usage : my $userremark = $contigobj->user_remark();
Function: Get/set the user remark for this contig
Returns : scalar representing the current user_remark of this contig
Args : none to get, OR string to set
trace_remarkcodeprevnextTop
 Title   : trace_remark
Usage : my $traceremark = $contigobj->trace_remark();
Function: Get/set the trace remark for this contig
Returns : scalar representing the current trace_remark of this contig
Args : none to get, OR string to set
rangecodeprevnextTop
 Title   : range
Usage : my $range = $contigobj->range();
Function: Get/set the range for this Contig
Returns : Bio::Range representing the current range of this contig,
start and end of the contig can be thus found using:
my $start = $contigobj->range()->start();
my $end = $contigobj->range()->end();
Args : none to get, OR Bio::Range to set
positioncodeprevnextTop
 Title   : position
Usage : $ctgpos = $contigobj->position();
Function: Get/set the position of the contig in the group
Returns : scalar representing the position of the contig in the group
Args : none to get, OR string to set
anchorcodeprevnextTop
 Title   : anchor
Usage : $ctganchor = $contig->anchor();
Function: Get/set the anchor value for this Contig (True | False)
Returns : scalar representing the anchor (1 | 0) for this contig
Args : none to get, OR string to set
groupcodeprevnextTop
 Title   : group
Usage : $groupno = $contigobj->group();
Function: Get/set the group number for this contig.
This is a generic term, used for Linkage-Groups as well as for
Chromosomes.
Returns : scalar representing the group number of this contig
Args : none
subgroupcodeprevnextTop
 Title   : subgroup
Usage : $subgroup = $contig->subgroup();
Function: Get/set the subgroup for this contig. This is a generic term:
subgroup here could represent subgroup of a Chromosome or of a
Linkage Group. The user must take care of which subgroup he/she is
querying for.
Returns : A scalar representing the subgroup of this contig
Args : none
each_cloneidcodeprevnextTop
 Title   : each_cloneid
Usage : my @clones = $map->each_cloneid();
Function: retrieves all the clone ids in a map unordered
Returns : list of strings (ids)
Args : none
*** This only supplies the ids set with the set_clones method *** *** It has nothing to do with actual Bio::Map::MappableI objects ***
each_markeridcodeprevnextTop
 Title   : each_markerid
Usage : my @markers = $map->each_markerid();
Function: retrieves all the marker ids in a map unordered
Returns : list of strings (ids)
Args : none
*** This only supplies the ids set with the set_markers method *** *** It has nothing to do with actual Bio::Map::MarkerI objects ***
set_clonescodeprevnextTop
 Title   : set_clones
Usage : $marker->set_clones(\%clones)
Function: Set the clones hashref
Returns : None
Args : Hashref of clone ids
*** This only sets a hash of ids *** *** It has nothing to do with actual Bio::Map::MappableI objects ***
set_markerscodeprevnextTop
 Title   : markers
Usage : $obj->set_markers($newval)
Function: Set list of Markers (hashref)
Returns : None
Args : Hashref of marker ids
*** This only sets a hash of ids *** *** It has nothing to do with actual Bio::Map::MarkerI objects ***
Methods code
BEGINTop
BEGIN {
 $MAPCOUNT = 1;
}
newdescriptionprevnextTop
sub new {
   my ($class,@args) = @_;
   my $self = $class->SUPER::new(@args);

   my ($name,$cremark,$uremark,$tremark,
       $group,$subgroup, $anchor,$markers, $clones,
       $position,$range) = $self->_rearrange([qw(NAME CHR_REMARK USER_REMARK
						 TRACE_REMARK GROUP SUBGROUP
						 ANCHOR MARKERS CLONES
						 POSITION RANGE)],@args);

   $self->name($name)                  if defined $name;
   $self->chr_remark($cremark)         if defined $cremark;
   $self->user_remark($uremark)        if defined $uremark;
   $self->trace_remark($tremark)       if defined $tremark;
   $self->group($group)                if defined $group;
   $self->subgroup($group)             if defined $subgroup;
   $self->anchor($anchor)              if defined $anchor;

   $self->set_markers($markers)        if defined $markers;
   $self->set_clones($clones)          if defined $clones;
   $self->range($range)                if defined $range;
   $self->position($position)          if defined $position;

   return $self;
}
chr_remarkdescriptionprevnextTop
sub chr_remark {
    my ($self) = shift;
    $self->{'_cremark'} = shift if @_;
    return defined $self->{'_cremark'} ? $self->{'_cremark'} : '';
}
user_remarkdescriptionprevnextTop
sub user_remark {
    my ($self) = shift;
    $self->{'_uremark'} = shift if @_;
    return defined $self->{'_uremark'} ? $self->{'_uremark'} : '';
}
trace_remarkdescriptionprevnextTop
sub trace_remark {
    my ($self) = shift;
    $self->{'_tremark'} = shift if @_;
    return defined $self->{'_tremark'} ? $self->{'_tremark'} : '';
}
rangedescriptionprevnextTop
sub range {
    my ($self) = shift;
    return $self->{'_range'} = shift if @_;
    return $self->{'_range'};
}
positiondescriptionprevnextTop
sub position {
    my ($self) = shift;
    $self->{'_position'} = shift if @_;
    return $self->{'_position'} || 0;
}
anchordescriptionprevnextTop
sub anchor {
    my ($self) = shift;
    return $self->{'_anchor'} = shift if @_;
    return $self->{'_anchor'};
}
groupdescriptionprevnextTop
sub group {
    my ($self) = shift;
    $self->{'_group'} = shift if @_;
    return $self->{'_group'} || 0;
}
subgroupdescriptionprevnextTop
sub subgroup {
    my ($self) = @_;
    return $self->{'_subgroup'} = shift if @_;
    return $self->{'_subgroup'} || 0;
}
each_cloneiddescriptionprevnextTop
sub each_cloneid {
    my ($self) = @_;
    return $self->_each_element('clones');
}
each_markeriddescriptionprevnextTop
sub each_markerid {
    my ($self) = @_;
    return $self->_each_element('markers');
}
_each_elementdescriptionprevnextTop
sub _each_element {
    my ($self, $type) = @_;
    $type = 'clones' if (!defined($type));
    $type = lc("_$type");
    return keys %{$self->{$type} || {}};
}
set_clonesdescriptionprevnextTop
sub set_clones {
   my ($self,$clones) = @_;
   if( defined $clones && ref($clones) =~ /HASH/ ) {
       $self->{'_clones'} = $clones;
   }
}
set_markersdescriptionprevnextTop
sub set_markers {
    my ($self,$markers) = @_;
    if( defined $markers && ref($markers) =~ /HASH/ ) {
	$self->{'_markers'} = $markers;
    }
}

1;
}
General documentation
FEEDBACKTop
Mailing ListsTop
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 list. Your participation is much appreciated.
  bioperl-l@bioperl.org                  - General discussion
http://bioperl.org/wiki/Mailing_lists - About the mailing lists
Support Top
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 BugsTop
Report bugs to the Bioperl bug tracking system to help us keep track
of the bugs and their resolution. Bug reports can be submitted via the
web:
  https://redmine.open-bio.org/projects/bioperl/
AUTHOR - Gaurav GuptaTop
Email gaurav@genome.arizona.edu
CONTRIBUTORSTop
Sendu Bala bix@sendu.me.uk
PROJECT LEADERSTop
Jamie Hatfield jamie@genome.arizona.edu
Dr. Cari Soderlund cari@genome.arizona.edu
PROJECT DESCRIPTIONTop
The project was done in Arizona Genomics Computational Laboratory (AGCoL)
at University of Arizona.
This work was funded by USDA-IFAFS grant #11180 titled "Web Resources for
the Computation and Display of Physical Mapping Data".
For more information on this project, please refer:
http://www.genome.arizona.edu
APPENDIXTop
The rest of the documentation details each of the object methods.
Internal methods are usually preceded with a _
Modifier methodsTop
All methods present in Bio::Map::SimpleMap are implemented by this class.
Most of the methods are inherited from SimpleMap. The following methods
have been modified to reflect the needs of physical maps.