Joachim Bargsten

NAME

Bio::Grid::Run::SGE::Util - Utility functions for Bio::Grid::Run::SGE

SYNOPSIS

    use Bio::Grid::Run::SGE::Util qw(
      my_glob
      delete_by_regex
      expand_path
      my_mkdir
      concat_files
      my_glob_non_fatal
      timer
      expand_path_rel
    );

DESCRIPTION

Provides utility functions for the Bio::Grid::Run::SGE module.

SUBROUTINES

$first_file = my_glob($pattern)
@all_files = my_glob($pattern)

See File::Glob::bsd_glob for an explanation of the $pattern. This function is for convenience only and takes care of some quirks of bsd_glob.

$first_file = my_glob_non_fatal($pattern)
@all_files = my_glob_non_fatal($pattern)

Same as my_glob, but does not die if glob result is empty.

$first_file = expand_path(\@files)
@files = expand_path(\@files)

Expands a path to its absoulte equivalent. Taks also care of paths beginning with '~'.

$first_file = expand_path_rel(\@files)
@files = expand_path_rel(\@files)

Expands the '~' at the beginning of a path to the home directory.

my_mkdir($path)

Creates $path and dies if something goes wrong. See also "mkpath" in File::Path.

delete_by_regex($dir, $file_regex, $simulate)

Opens $dir and deletes all files that match $file_regex. If simulate is true, then just print the files that would be deleted.

concat_files($config)

Concatenates all result files in one file $c-{result_dir}/$c->{job_name}.j${job_id}.result.concat and deletes the single result files. Result files are determined by following regex:

  qr/\Q$c->{job_name}\E #job name
    \.j$c->{job_id} #the job id
    \.[0-9]+ #the sge task id
    \.c[\-0-9]+(?:\.[\w\-.#]+)? #combination idx
    (?:\..*)? #suffix
    $/x;

If your toolwrapper makes use of it, you can also invoke it by hand. In the working dir of your job run:

    ~/script/<toolwrapper>.pl -p <job_id> <tmp>/<job_name>.config

TAKE CARE, IT DELETES THE RESULT FILES AND OVERWRITES THE LAST RESULT.CONCAT FILE

$timer = timer()

Time something. Usage:

  # get a timer
  my $timer = timer();

  # start
  my $start_time = $timer->();

  # stop
  my $stop_time = $timer->();
  my ($stop_time, $elapsed_time_as_string) = $timer->();

SEE ALSO

Bio::Grid::Run::SGE

AUTHOR

jw bargsten, <joachim.bargsten at wur.nl>