Mercurial > repos > konradpaszkiewicz > velvetoptimiser
diff VelvetOptimiser-2.1.7_modified/VelvetOpt/gwrap.pm @ 0:50ae1360fbbe default tip
Migrated tool version 1.0.0 from old tool shed archive to new tool shed repository
author | konradpaszkiewicz |
---|---|
date | Tue, 07 Jun 2011 18:07:56 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VelvetOptimiser-2.1.7_modified/VelvetOpt/gwrap.pm Tue Jun 07 18:07:56 2011 -0400 @@ -0,0 +1,171 @@ +# VelvetOpt::gwrap.pm +# +# Copyright 2008 Simon Gladman <simon.gladman@csiro.au> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. +# +package VelvetOpt::gwrap; + +=head1 NAME + +VelvetOpt::gwrap.pm - Velvet graphing and assembly program wrapper module. + +=head1 AUTHOR + +Simon Gladman, CSIRO, 2007, 2008. + +=head1 LICENSE + +Copyright 2008 Simon Gladman <simon.gladman@csiro.au> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301, USA. + +=head1 SYNOPSIS + + use VelvetOpt::gwrap; + use VelvetOpt::Assembly; + my $object = VelvetOpt::Assembly->new( + timestamph => "23 November 2008 15:00:00", + ass_id => "1", + versiong => "0.7.19", + pstringg => "test", + ass_dir => "/home/gla048/Desktop/newVelvetOptimiser/test" + ); + my $worked = VelvetOpt::gwrap::objectVelvetg($object); + if($worked){ + print $object->toString(); + } + else { + die "Error in velvetg..\n" . $object->toString(); + } + +=head1 DESCRIPTION + +A wrapper module to run velvetg on VelvetAssembly objects or on velvetg +parameter strings. Also contains private methods to check velvetg +parameter strings, run velvetg and return results. + +=head2 Uses + +=over 8 + +=item strict + +=item warnings + +=item Carp + +=item VelvetOpt::Assembly + +=item POSIX qw(strftime) + +=back + +=head2 Private Fields + +=over 8 + +=item interested + +STDERR printing debug message toggle. 1 for on, 0 for off. + +=back + +=head2 Methods + +=over 8 + +=item _runVelvetg + +Private method which runs velvetg with the supplied velvetg parameter string and returns velvetg output messages as a string. + +=item _checkVGString + +Private method which checks for a correctly formatted velvetg parameter string. Returns 1 or 0. + +=item objectVelvetg + +Accepts a VelvetAssembly object, looks for the velvetg parameter string it contains, checks it, sends it to _runVelvetg, collects the results and stores them in the VelvetAssembly object. + +=item stringVelvetg + +Accepts a velvetg parameter string, checks it, sends it to _runVelvetg and then collects and returns the velvetg output messages. + +=back + +=cut + +use warnings; +use strict; +use Carp; +use VelvetOpt::Assembly; +use POSIX qw(strftime); + +my $interested = 0; + +sub _runVelvetg { + my $cmdline = shift; + my $output = ""; + print STDERR "About to run velvetg!\n" if $interested; + $output = `velvetg $cmdline`; + $output .= "\nTimestamp: " . strftime("%b %e %Y %H:%M:%S", localtime) . "\n"; + return $output; +} + +sub _checkVGString { + return 1; +} + +sub objectVelvetg { + my $va = shift; + my $cmdline = $va->{pstringg}; + if(_checkVGString($cmdline)){ + $va->{velvetgout} = _runVelvetg($cmdline); + my @t = split /\n/, $va->{velvetgout}; + $t[$#t] =~ s/Timestamp:\s+//; + $va->{timestampg} = $t[$#t]; + return 1; + } + else { + $va->{velvetgout} = "Formatting errors in velvetg parameter string."; + return 0; + } +} + +sub stringVelvetg { + my $cmdline = shift; + if(_checkVGString($cmdline)){ + return _runVelvetg($cmdline); + } + else { + return "Formatting errors in velvetg parameter string."; + } +} + +1;