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;