Mercurial > repos > mahtabm > ensembl
diff variant_effect_predictor/Bio/Map/CytoMap.pm @ 0:1f6dce3d34e0
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 02:01:53 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/variant_effect_predictor/Bio/Map/CytoMap.pm Thu Apr 11 02:01:53 2013 -0400 @@ -0,0 +1,230 @@ +# $Id: CytoMap.pm,v 1.2 2002/10/22 07:45:15 lapp Exp $ +# +# BioPerl module for Bio::Map::CytoMap +# +# Cared for by Heikki Lehvaslaiho <heikki@ebi.ac.uk> +# +# Copyright Heikki Lehvaslaiho +# +# You may distribute this module under the same terms as perl itself + +# POD documentation - main docs before the code + +=head1 NAME + +Bio::Map::CytoMap - A Bio::MapI compliant map implementation handling cytogenic bands + +=head1 SYNOPSIS + + use Bio::Map::CytoMap; + my $map = new Bio::Map::CytoMap(-name => 'human1', + -species => $human); + foreach my $marker ( @markers ) { # get a list of markers somewhere + $map->add_element($marker); + } + +=head1 DESCRIPTION + +This is the simple implementation of cytogenetic maps based on +L<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. + +For CytoMaps type is hard coded to be 'cytogeneticmap' and +units are set to '' but can be set to something else. + +=head1 FEEDBACK + +=head2 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 list. Your participation is much appreciated. + + bioperl-l@bioperl.org - General discussion + http://bioperl.org/MailList.shtml - About the mailing lists + +=head2 Reporting Bugs + +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 +email or the web: + + bioperl-bugs@bioperl.org + http://bugzilla.bioperl.org/ + +=head1 AUTHOR - Heikki Lehvaslaiho + +Email heikki@ebi.ac.uk + +=head1 CONTRIBUTORS + +Jason Stajich jason@bioperl.org +Lincoln Stein lstein@cshl.org + +=head1 APPENDIX + +The rest of the documentation details each of the object methods. +Internal methods are usually preceded with a _ + +=cut + + +# Let the code begin... + + +package Bio::Map::CytoMap; +use vars qw(@ISA $MAPCOUNT); +use strict; + +# Object preamble - inherits from Bio::Root::Root + +use Bio::Root::Root; +use Bio::Map::SimpleMap; + +@ISA = qw(Bio::Root::Root Bio::Map::SimpleMap); +BEGIN { $MAPCOUNT = 1; } + +=head2 Modified methods + +All methods present in L<Bio::Map::SimpleMap> are implemted by this +class. Most of the methods are inherited from SimpleMap. The following +methods have been modified to refelect the needs of cytogenetic maps. + +=head2 new + + Title : new + Usage : my $obj = new Bio::Map::CytoMap(); + Function: Builds a new Bio::Map::CytoMap object + Returns : Bio::Map::CytoMap + Args : -name => name of map (string) + -species => species for this map (Bio::Species) [optional] + -elements=> elements to initialize with + (arrayref of Bio::Map::MappableI objects) [optional] + + -uid => Unique Id +=cut + +sub new { + my($class,@args) = @_; + + my $self = $class->SUPER::new(@args); + + $self->{'_elements'} = []; + $self->{'_name'} = ''; + $self->{'_species'} = ''; + $self->{'_units'} = ''; + $self->{'_type'} = 'cyto'; + $self->{'_uid'} = $MAPCOUNT++; + my ($name, $type,$species, $units, + $elements,$uid) = $self->_rearrange([qw(NAME TYPE + SPECIES UNITS + ELEMENTS UID)], @args); + defined $name && $self->name($name); + defined $species && $self->species($species); + defined $units && $self->units($units); + defined $type && $self->type($type); + defined $uid && $self->unique_id($uid); + + if( $elements && ref($elements) =~ /array/ ) { + foreach my $item ( @$elements ) { + $self->add_element($item); + } + } + return $self; +} + +=head2 type + + Title : type + Usage : my $type = $map->type + Function: Get hard-coded Map type + Returns : String coding map type + Args : + +=cut + +sub type { + my ($self) = @_; + return $self->{'_type'}; +} + + +=head2 length + + Title : length + Usage : my $length = $map->length(); + Function: Retrieves the length of the map, + Returns : undef since length is not calculatable for + cytogenetic maps + Args : none + +=cut + +sub length{ + my ($self,@args) = @_; + return undef; +} + +=head2 Methods inherited from L<Bio::Map::SimpleMap> + +=cut + +=head2 species + + Title : species + Usage : my $species = $map->species; + Function: Get/Set Species for a map + Returns : Bio::Species object or string + Args : (optional) Bio::Species or string + +=cut + +=head2 units + + Title : units + Usage : $map->units('cM'); + Function: Get/Set units for a map + Returns : units for a map + Args : units for a map (string) + +=cut + +=head2 name + + Title : name + Usage : my $name = $map->name + Function: Get/Set Map name + Returns : Map name + Args : (optional) string + +=cut + +=head2 unique_id + + Title : unique_id + Usage : my $id = $map->unique_id; + Function: Get/Set the unique ID for this map + Returns : a unique identifier + Args : [optional] new identifier to set + +=cut + +=head2 each_element + + Title : each_element + Usage : my @elements = $map->each_element; + Function: Retrieves all the elements in a map + unordered + Returns : Array of Bio::Map::MappableI objects + Args : none + + +=cut + +=head2 New methods + +=cut + + +1;