Bio::PopGen
Marker
Summary
Bio::PopGen::Marker - A genetic marker which one uses to generate genotypes
Package variables
No package variables defined.
Included modules
Inherit
Synopsis
my $name = $marker->name(); # marker name
my $description = $marker->description(); # description
my $type = $marker->type(); # coded type of the marker
my $unique_id = $marker->unique_id; # optional unique ID
my @alleles = $marker->get_Alleles(); # the known alleles
my %allele_freqs = $marker->get_Allele_Frequencies(); # keys are marker names
# vals are frequencies
# may change to handle multiple populations
Description
This object will not contain genotype information pertaining to an
individual, but rather population level statistics and descriptive
information about a marker.
Methods
Methods description
Title : new
Usage : my $obj = new Bio::PopGen::Marker();
Function: Builds a new Bio::PopGen::Marker object
Returns : an instance of Bio::PopGen::Marker
Args : -name => [string] marker name
-description => [string] marker description
-type => [string] marker type
-unique_id => [string/int] unique id
-allele_freq => [hash ref] allele frequencies |
Title : name
Usage : my $name = $marker->name();
Function: Get the name of the marker
Returns : string representing the name of the marker
Args : [optional] name |
Title : description
Usage : my $desc = $marker->description
Function: Get the marker description free text
Returns : string
Args : [optional] string |
Title : type
Usage : my $type = $marker->type;
Function: Get coded string for marker type
Returns : string
Args : [optional] string |
Title : unique_id
Usage : my $id = $marker->unique_id;
Function: Get the unique marker ID
Returns : unique ID string
Args : [optional ] string |
Title : get_Alleles
Usage : my @alleles = $marker->get_Alleles();
Function: Get the available marker alleles
Returns : Array of strings
Args : none |
Title : get_Allele_Frequencies
Usage : my %allele_freqs = $marker->get_Allele_Frequencies;
Function: Get the alleles and their frequency (set relative to
a given population - you may want to create different
markers with the same name for different populations
with this current implementation
Returns : Associative array where keys are the names of the alleles
Args : none |
Title : add_Allele_Frequency
Usage : $marker->add_Allele_Frequency($allele,$freq)
Function: Adds an allele frequency
Returns : None
Args : $allele - allele name
$freq - frequency value |
Title : reset_alleles
Usage : $marker->reset_alleles();
Function: Reset the alleles for a marker
Returns : None
Args : None |
Methods code
sub new
{ my($class,@args) = @_;
my $self = $class->SUPER::new(@args);
my ($name,$desc,$type,$uid,$af) = $self->_rearrange([qw(NAME
DESCRIPTION
TYPE
UNIQUE_ID
ALLELE_FREQ)],@args);
$self->{'_allele_freqs'} = {};
if( ! defined $uid ) {
$uid = $UniqueCounter++;
}
if( defined $name) {
$self->name($name);
} else {
$self->throw("Must have provided a name when initializing a Marker");
}
defined $desc && $self->description($desc);
defined $type && $self->type($type);
$self->unique_id($uid);
if( defined $af) {
if( ref($af) !~ /HASH/i ) {
$self->warn("Must provide valid Hash reference for allele_freq method");
} else {
foreach my $allele ( keys %$af ) {
$self->add_Allele_Frequency($allele, $af->{$allele});
}
}
}
return $self;} |
sub name
{ my $self = shift;
return $self->{'_name'} = shift if @_;
return $self->{'_name'};} |
sub description
{ my $self = shift;
return $self->{'_description'} = shift if @_;
return $self->{'_description'};} |
sub type
{ my $self = shift;
return $self->{'_type'} = shift if @_;
return $self->{'_type'};} |
sub unique_id
{ my $self = shift;
return $self->{'_uniqueid'} = shift if @_;
return $self->{'_uniqueid'};} |
sub get_Alleles
{ my $self = shift;
my (@numeric,@alpha);
for ( keys %{$self->{'_allele_freqs'}} ) {
if( /[^\d\.\-e]/ ) { push @alpha, $_ }
else { push @numeric, $_ }
}
@numeric = sort { $b <=> $a } @numeric;
@alpha = sort { $b cmp $a } @alpha;
return @numeric,@alpha;} |
sub get_Allele_Frequencies
{ return %{$_[0]->{'_allele_freqs'}};} |
sub add_Allele_Frequency
{ my ($self,$allele,$freq) = @_;
$self->{'_allele_freqs'}->{$allele} = $freq;} |
sub reset_alleles
{ my ($self) = @_;
$self->{'_allele_freqs'} = {};} |
General documentation
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
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:
http://bugzilla.bioperl.org/
| AUTHOR - Jason Stajich | Top |
Email jason-at-bioperl.org
Matthew Hahn, matthew.hahn-at-duke.edu
The rest of the documentation details each of the object methods.
Internal methods are usually preceded with a _