CLIPSeqTools
view release on metacpan or search on metacpan
lib/CLIPSeqTools/App/distribution_on_introns_exons.pm view on Meta::CPAN
=head1 DESCRIPTION
Measure the distribution of reads along exons and introns.
Will split the exons and introns of coding transcripts in bins and measure the
read density in each bin. Will keep only unique introns and exons foreach
location. The read copy number is not used in this analysis.
=head1 OPTIONS
Input options for library.
--driver <Str> driver for database connection (eg. mysql,
SQLite).
--database <Str> database name or path to database file for file
based databases (eg. SQLite).
--table <Str> database table.
--host <Str> hostname for database connection.
--user <Str> username for database connection.
--password <Str> password for database connection.
--records_class <Str> type of records stored in database.
--filter <Filter> filter library. May be used multiple times.
Syntax: column_name="pattern"
e.g. keep reads with deletions AND not repeat
masked AND longer than 31
--filter deletion="def"
--filter rmsk="undef" .
--filter query_length=">31".
Operators: >, >=, <, <=, =, !=, def, undef
Other input
--gtf <Str> GTF file with genes/transcripts.
Output
--o_prefix <Str> output path prefix. Script will create and add
extension to path. [Default: ./]
Other options.
--bins <Int> number of bins each element is split into.
[Default: 10]
--length_thres <Int> genic elements shorter than this are skipped.
[Default: 300]
--plot call plotting script to create plots.
-v --verbose print progress lines and extra information.
-h -? --usage --help print help message
=cut
package CLIPSeqTools::App::distribution_on_introns_exons;
$CLIPSeqTools::App::distribution_on_introns_exons::VERSION = '1.0.0';
# Make it an app command
use MooseX::App::Command;
extends 'CLIPSeqTools::App';
#######################################################################
####################### Load External modules #####################
#######################################################################
use Modern::Perl;
use autodie;
use namespace::autoclean;
#######################################################################
####################### Command line options ######################
#######################################################################
option 'bins' => (
is => 'rw',
isa => 'Int',
default => 5,
documentation => 'number of bins each element is split into.',
);
option 'length_thres' => (
is => 'rw',
isa => 'Int',
default => 300,
documentation => 'genic elements shorter than this are skipped.',
);
#######################################################################
########################## Consume Roles ##########################
#######################################################################
with
"CLIPSeqTools::Role::Option::Library" => {
-alias => { validate_args => '_validate_args_for_library' },
-excludes => 'validate_args',
},
"CLIPSeqTools::Role::Option::Genes" => {
-alias => { validate_args => '_validate_args_for_genes' },
-excludes => 'validate_args',
},
"CLIPSeqTools::Role::Option::Plot" => {
-alias => { validate_args => '_validate_args_for_plot' },
-excludes => 'validate_args',
},
"CLIPSeqTools::Role::Option::OutputPrefix" => {
-alias => { validate_args => '_validate_args_for_output_prefix' },
-excludes => 'validate_args',
};
#######################################################################
######################## Interface Methods ########################
#######################################################################
sub validate_args {
my ($self) = @_;
$self->_validate_args_for_library;
$self->_validate_args_for_genes;
$self->_validate_args_for_plot;
$self->_validate_args_for_output_prefix;
}
sub run {
my ($self) = @_;
warn "Starting analysis: distribution_on_introns_exons\n";
warn "Validating arguments\n" if $self->verbose;
( run in 1.647 second using v1.01-cache-2.11-cpan-39bf76dae61 )