BioPerl

 view release on metacpan or  search on metacpan

Bio/Map/Clone.pm  view on Meta::CPAN

use strict;
use Bio::Map::Position;

use base qw(Bio::Root::Root Bio::Map::MappableI);

=head2 new

 Title   : new
 Usage   : my $clone = Bio::Map::Clone->new
                      (
		       -name    => $clone,
		       -markers => \@markers,
		       -contig  => $contig,
		       -type    => $type,
		       -bands   => $bands,
		       -gel     => $gel,
		       -group   => $group,
		       -remark  => $remark,
		       -fpnumber=> $fp_number,
		       -sequencetype  => $seq_type,
		       -sequencestatus=> $seq_status,
		       -fpcremark => $fpc_remark,
		       -matche    => \@ematch,
		       -matcha    => \@amatch,
		       -matchp    => \@pmatch,
		       -range     => Bio::Range->new(-start => $startrange,
						     -end   => $endrange)
		       );
 Function: Initialize a new Bio::Map::Clone object
           Most people will not use this directly but get Clones 
           through L<Bio::MapIO::fpc>
 Returns : L<Bio::Map::Clone> object
 Args    :   -name => marker name string,
	     -markers => array ref of markers,
	     -contig  => contig name string,
	     -type    => type string,
	     -bands   => band string,
	     -gel     => gel string,
	     -group   => group name string,
	     -remark  => remark string,
	     -fpnumber=> FP number string,
	     -sequencetype  => seq type string,
	     -sequencestatus=> seq status string,
	     -fpcremark => FPC remark,
	     -matche    => array ref,
	     -matcha    => array ref,
	     -matchp    => array ref,
	     -range     => L<Bio::Range> object,

=cut

sub new {
   my ($class,@args) = @_;
   my $self= $class->SUPER::new(@args);
   
   my ($name,$markers,$contig,$type,$bands,$gel,$group,
       $remark,$fpnumber,$seqtype,$seqstatus,$fpcremark,
       $matche,$matcha,$matchp,
       $range) = $self->_rearrange([qw(NAME  MARKERS CONTIG TYPE
				       BANDS GEL GROUP REMARK FPNUMBER
				       SEQUENCETYPE SEQUENCESTATUS
				       FPCREMARK MATCHE MATCHA MATCHP
				       RANGE)],@args);

   $self->name($name)                  if defined $name;
   $self->markers($markers)            if defined $markers;
   $self->contigid($contig)            if defined $contig;
   $self->type($type)                  if defined $type;
   $self->bands($bands)                if defined $bands;
   $self->gel($gel)                    if defined $gel;
   $self->group($group)                if defined $group;
   $self->remark($remark)              if defined $remark;
   $self->fp_number($fpnumber)         if defined $fpnumber;
   $self->sequence_type($seqtype)     if defined $seqtype;
   $self->sequence_status($seqstatus) if defined $seqstatus;
   $self->fpc_remark($fpcremark)       if defined $fpcremark;
   $self->range($range)                if defined $range;

   $self->set_match('approx', $matcha) if defined $matcha;
   $self->set_match('pseudo', $matchp) if defined $matchp;
   $self->set_match('exact',  $matche) if defined $matche; 

   return $self;
}

=head1 Access Methods

These methods let you get and set the member variables

=head2 name

 Title   : name
 Usage   : my $name = $cloneobj->name();
 Function: Get/set the name for this Clone
 Returns : scalar representing the current name of this clone
 Args    : none to get, OR string to set

=cut

sub name {
    my ($self) = shift;    
    return $self->{'_name'} = shift if @_;
    return $self->{'_name'};
}

=head2 type

 Title   : type
 Usage   : my $type = $cloneobj->type();
 Function: Get/set the type for this clone
 Returns : scalar representing the current type of this clone
 Args    : none to get, OR string to set

=cut

sub type {
    my ($self) = shift;
    return $self->{'_type'} = shift if @_;
    return $self->{'_type'};
}



( run in 1.127 second using v1.01-cache-2.11-cpan-39bf76dae61 )