The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

R::YapRI::Block.pm

A module to segment the R commands.

SYNOPSIS

  use R::YapRI::Base;

  ## WORKING WITH COMMAND BLOCKS:

  my $rbase = R::YapRI::Base->new();

  ## Create a file-block_1

  my $rblock1 = $rbase->create_block('BLOCK1');
  $rblock1->add_command('x <- c(10, 9, 8, 5)');
  $rblock1->add_command('z <- c(12, 8, 8, 4)');
  $rblock1->add_command('x + z')
  
  ## Get name or rbase

  my $blockname = $rblock1->get_blockname();
  my $rbase = $rblock1->get_rbase();  

  ## Create a file-block_2

  my $rblock2 = $rbase->create_block('BLOCK2');   
  $rblock2->add_command('bmp(filename="myfile.bmp", width=600, height=800)');
  $rblock2->add_command('dev.list()');
  $rblock2->add_command('plot(c(1, 5, 10), type = "l")');
  
  ## Run each block

  $rblock1->run_block();
  $rblock2->run_block();

  ## Get the results

  my $resultfile1 = $rblock1->get_resultfile();
  my $resultfile2 = $rblock2->get_resultfile();

  ## Combine block before run it

  my $newblock = $rbase->combine_blocks(['BLOCK1', 'BLOCK2'], 'NEWBLOCK');
  $newblock->run_block();

DESCRIPTION

A wrapper to use blocks with R::YapRI::Base.

Use blocks through rbase object.

AUTHOR

Aureliano Bombarely <ab782@cornell.edu>

CLASS METHODS

The following class methods are implemented:

(*) CONSTRUCTORS:

There are two ways to create a new block:

1) Through rbase object.

my $rblock = $rbase->new_block($blockname);

2) Through R::YapRI::Block class

my $rblock = R::YapRI::Block->new($rbase, $blockname);

Both methods will add the new block to the rbase object.

constructor new

  Usage: my $rblock = R::YapRI::Block->new($rbase, $blockname);

  Desc: Create a new R block object associated with a R::YapRI::Base object

  Ret: a R::YapRI::Block object

  Args: $rbase, a R::YapRI::Base object.
        $blockname, an scalar, a blockname
        $cmdfile, a filename with the command file (optional).
        
  Side_Effects: Die if no arguments are used.
                Die if $rbase argument is not a R::YapRI::Base object.
                Create a new command file if no commandfile is supplied.
                Add the block created to rbase object.

  Example: my $rblock = R::YapRI::Block->new($rbase, 'MyBlock');           

(*) ACCESSORS:

No set accessors have been created for rbase or blockname. They are controlled by R::YapRI::Base object.

get_rbase

  Usage: my $rbase = $rblock->get_rbase(); 

  Desc: Get rbase object from rblock

  Ret: $rbase, a R::YapRI::Base object

  Args: None

  Side_Effects: None

  Example: my $rbase = $rblock->get_rbase(); 

get_blockname

  Usage: my $blockname = $rblock->get_blockname(); 

  Desc: Get blockname from rblock object

  Ret: $blockname, name of the block, an alias for cmdfile.

  Args: None

  Side_Effects: None

  Example: my $blockname = $rblock->get_blockname(); 

get_command_file

  Usage: my $filename = $rblock->get_command_file(); 

  Desc: Get filename of the block from rbase object

  Ret: $filename, the command filename for the block associated to rbase.

  Args: None

  Side_Effects: None

  Example: my $filename = $rblock->get_command_file(); 

set_command_file

  Usage: $rblock->set_command_file($filename); 

  Desc: Set filename for a block

  Ret: None

  Args: $filename

  Side_Effects: Die if no argument is used.

  Example: $rblock->set_command_file($filename); 

delete_command_file

  Usage: $rblock->delete_command_file(); 

  Desc: Delete command filename for a block and set command file as empty

  Ret: None

  Args: None

  Side_Effects: None

  Example: $rblock->delete_command_file(); 

get_result_file

  Usage: my $filename = $rblock->get_result_file(); 

  Desc: Get result filename of the block

  Ret: $filename, the result filename for the block associated to rbase.

  Args: None

  Side_Effects: None

  Example: my $filename = $rblock->get_result_file(); 

set_result_file

  Usage: $rblock->set_result_file($filename); 

  Desc: Set result filename for a block

  Ret: None

  Args: $filename, the result filename for the block associated to rbase.

  Side_Effects: Die if no argument is used or if the result file doesnt exist

  Example: $rblock->set_result_file($filename); 

delete_result_file

  Usage: $rblock->delete_result_file(); 

  Desc: Delete result filename for a block and set command file as empty

  Ret: None

  Args: None

  Side_Effects: None

  Example: $rblock->delete_result_file(); 

(*) COMMAND METHODS:

add_command

  Usage: $rblock->add_command($r_command); 

  Desc: Add a R command line to a block

  Ret: None

  Args: $r_command, a string or a hash ref. with the R commands.
        If hashref. is used, it will translated to R using r_var from
        R::YapRI::Interpreter::Perl

  Side_Effects: Die if no argument is used.
                Die if argument is not an scalar or an hash reference.
                Translate a perl hashref. to R command if hashref is used.

  Example: $rblock->add_command('x <- c(10, 9, 8, 5)')
           $rblock->add_command({ '' => { x => [10, 9, 8, 5] } })

read_commands

  Usage: my @commands = $rblock->read_commands(); 

  Desc: Read all the R command lines from a block and return them in an 
        array.

  Ret: @commands, an array with the commands used in the block

  Args: None

  Side_Effects: None

  Example: None

run_block

  Usage: $rblock->run_block(); 

  Desc: Run R commands for a specific block.

  Ret: None

  Args: None

  Side_Effects: None

  Example: $rblock->run_block(); 

read_results

  Usage: my @results = $rblock->read_results(); 

  Desc: Read all the results lines from a block and return them as an 
        array.

  Ret: @results, an array with the produced by the block

  Args: None

  Side_Effects: None

  Example: my @results = $rblock->read_results();

(*) DESTRUCTORS:

Destructor will delete the files associated with this block (command and result) if the rbase switch keepfiles is disabled.

DESTROY

  Usage: $block->DESTROY(); 
 
  Desc: Destructor for block object. It also delete the command file and
        the result files associated with that block if keepfiles from
        rbase is disabled

  Ret: None

  Args: None

  Side_Effects: None

  Example: $block->DESTROY();

ACKNOWLEDGEMENTS

Lukas Mueller

Robert Buels

Naama Menda

Jonathan "Duke" Leto

COPYRIGHT AND LICENCE

Copyright 2011 Boyce Thompson Institute for Plant Research

Copyright 2011 Sol Genomics Network (solgenomics.net)

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.