CLIPSeqTools

 view release on metacpan or  search on metacpan

lib/CLIPSeqTools/PlotApp/scatterplot.pm  view on Meta::CPAN

=head1 NAME

CLIPSeqTools::PlotApp::scatterplot - Create scatterplot for two tables.

=head1 SYNOPSIS

clipseqtools-plot scatterplot [options/parameters]

=head1 DESCRIPTION

Create scatterplot for the given column for two tables.

=head1 OPTIONS

  Input.
    --table1 <Str>         first input table file.
    --table2 <Str>         second input table file.

    --key_col <Str>        name for the column/columns to use as a key. It
                           must be unique for each table row. Use option
                           multiple times to specify multiple columns.
    --val_col <Str>        name of column with values to be plotted.
                           The logarithm of the values is used.

  Output
    --name1 <Str>          name to be used in plot for first table
    --name2 <Str>          name to be used in plot for second table
    --o_prefix <Str>       output path prefix. Script will create and add
                           extension to path. Default: ./

    -v --verbose           print progress lines and extra information.
    -h -? --usage --help   print help message

=cut

package CLIPSeqTools::PlotApp::scatterplot;
$CLIPSeqTools::PlotApp::scatterplot::VERSION = '1.0.0';

# Make it an app command
use MooseX::App::Command;
extends 'CLIPSeqTools::PlotApp';


#######################################################################
#######################   Load External modules   #####################
#######################################################################
use Modern::Perl;
use autodie;
use namespace::autoclean;
use Statistics::R;


#######################################################################
#######################   Command line options   ######################
#######################################################################
option 'table1' => (
	is            => 'rw',
	isa           => 'Str',
	required      => 1,
	documentation => 'first input table file.'
);

option 'table2' => (
	is            => 'rw',
	isa           => 'Str',
	required      => 1,
	documentation => 'second input table file.'
);

option 'key_col' => (
	is            => 'rw',
	isa           => 'ArrayRef[Str]',
	required      => 1,
	documentation => 'name for the column/columns to use as a key. It must '.
						'be unique for each table row. Use option multiple '.
						'times to specify multiple columns.',
);

option 'val_col' => (
	is            => 'rw',
	isa           => 'Str',
	required      => 1,
	documentation => 'name of column with values to be normalized.',
);

option 'name1' => (
	is            => 'rw',
	isa           => 'Str',
	default       => 'table1',
	documentation => 'name to be used in plot for first table.'
);

option 'name2' => (
	is            => 'rw',
	isa           => 'Str',
	default       => 'table2',
	documentation => 'name to be used in plot for second table.'
);


#######################################################################
##########################   Consume Roles   ##########################
#######################################################################
with
	"CLIPSeqTools::Role::Option::OutputPrefix" => {
		-alias    => { validate_args => '_validate_args_for_output_prefix' },
		-excludes => 'validate_args',
	};



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