GenOO
view release on metacpan or search on metacpan
lib/GenOO/GenomicRegion.pm view on Meta::CPAN
=head1 SYNOPSIS
# This object represents a genomic region (location on the genome)
# It extends the L<GenOO::Region> object
# Instantiate
my $genomic_region = GenOO::GenomicRegion->new(
name => undef,
species => undef,
strand => undef, #required
chromosome => undef, #required
start => undef, #required
stop => undef, #required
copy_number => undef, #defaults to 1
sequence => undef,
);
=head1 DESCRIPTION
A genomic region object is an area on a reference genome. It has a
specific start and stop position and specific strand and chromosome.
The main difference from the the L<GenOO::Region> role is that it has the
"chromosome" attribute instead of the generic "rname". The copy number
attribute is useful when counting aligned reads so that the number of
reads in this specific location can be collapsed. It defaults to 1.
See L<GenOO::Region> and for more available methods
=head1 EXAMPLES
my $genomic_region = GenOO::GenomicRegion->new(
name => 'test_object_0',
species => 'human',
strand => '+',
chromosome => 'chr1',
start => 3,
stop => 10,
copy_number => 7,
sequence => 'AGCTAGCU'
);
# Get the genomic location information
$genomic_region->start; # 3
$genomic_region->stop; # 10
$genomic_region->strand; # 1
$genomic_region->chromosome; # chr1
$genomic_region->rname; # chr1 - this is always the same as chromosome
# Get the head (5p) position on the reference sequence
$genomic_region->head_position; # 3 - this method comes from L<GenOO::Region>
=cut
# Let the code begin...
package GenOO::GenomicRegion;
$GenOO::GenomicRegion::VERSION = '1.5.2';
#######################################################################
####################### Load External modules #####################
#######################################################################
use Modern::Perl;
use autodie;
use Moose;
use Moose::Util::TypeConstraints;
use namespace::autoclean;
subtype 'RegionStrand', as 'Int', where {($_ == 1) or ($_ == -1)};
coerce 'RegionStrand', from 'Str', via { _sanitize_strand($_) };
#######################################################################
####################### Interface attributes ######################
#######################################################################
has 'name' => (
isa => 'Str',
is => 'rw'
);
has 'species' => (
isa => 'Str',
is => 'rw'
);
has 'strand' => (
isa => 'RegionStrand',
is => 'rw',
required => 1,
coerce => 1
);
has 'chromosome' => (
isa => 'Str',
is => 'rw',
required => 1
);
has 'start' => (
isa => 'Int',
is => 'rw',
required => 1
);
has 'stop' => (
isa => 'Int',
is => 'rw',
required => 1
);
has 'copy_number' => (
isa => 'Int',
is => 'rw',
default => 1,
lazy => 1
);
has 'sequence' => (
isa => 'Str',
is => 'rw'
);
( run in 1.442 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )