Mercurial > repos > edward-kirton > velvet_toolsuite
diff velvet/velvetg_jgi_wrapper.pl @ 0:4afe13ac23b6 default tip
Migrated tool version 1.0.0 from old tool shed archive to new tool shed repository
author | edward-kirton |
---|---|
date | Tue, 07 Jun 2011 17:52:16 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/velvet/velvetg_jgi_wrapper.pl Tue Jun 07 17:52:16 2011 -0400 @@ -0,0 +1,66 @@ +#!/usr/bin/env perl + +# Conventience wrapper for velvetg; copies outfiles to galaxy-specified destinations. +# Please email bugs/feature requests to Edward Kirton (ESKirton@LBL.gov) +# +# History: +# - 2010/03/04 : file created +# - 2001/02/05 : added new options, outfiles; renamed to velvetg_jgi to avoid collision with the other velvetg tool + +use strict; +use warnings; +use File::Copy; + +# shift wrapper args +my $velveth_path=shift @ARGV or die; +my $velvetg_path=shift @ARGV or die; +my $velvetg_outfile=shift @ARGV or die; +my $contigs_outfile=shift @ARGV or die; +my $stats_outfile=shift @ARGV or die; +my $lastgraph_outfile=shift @ARGV or die; +my $unused_reads_outfile=shift @ARGV or die; +my $amos_outfile=shift @ARGV or die; + +# setup velvetg folder +die("Velveth folder does not exist: $velveth_path\n") unless -d $velveth_path; +-d $velvetg_path or mkdir($velvetg_path) or die("Unable to create output folder, $velvetg_path: $!\n"); +die("velveth Sequences file does not exist: $velveth_path/Sequences") unless -f "$velveth_path/Sequences"; +symlink("$velveth_path/Sequences", "$velvetg_path/Sequences"); +die("velveth Roadmaps file does not exist: $velveth_path/Roadmaps") unless -f "$velveth_path/Roadmaps"; +symlink("$velveth_path/Roadmaps", "$velvetg_path/Roadmaps"); +die("velveth Log file does not exist: $velveth_path/Log") unless -f "$velveth_path/Log"; +copy("$velveth_path/Log", "$velvetg_path/Log"); + +# run command (remaining args, starting with exe path) +open (VELVETG, "@ARGV|") or die("Unable to run velvetg\n"); +open (OUT, ">$velvetg_outfile") or die("Unable to open outfile, $velvetg_outfile: $!\n"); +while (<VELVETG>) { + print OUT $_; + print if /^Final graph/; +} +close VELVETG; +close OUT; + +# process output +unlink($contigs_outfile); +move("$velvetg_path/contigs.fa", $contigs_outfile); +unlink($stats_outfile); +move("$velvetg_path/stats.txt", $stats_outfile); + +unlink($lastgraph_outfile); +if ( -f "$velvetg_path/LastGraph") { + move("$velvetg_path/LastGraph", $lastgraph_outfile); +} elsif ( -f "$velvetg_path/Graph2") { + move("$velvetg_path/Graph2", $lastgraph_outfile); +} else { + open(OUT, ">$lastgraph_outfile") or die($!); + print OUT "ERROR: $velvetg_path/LastGraph not found!\n"; + close OUT; +} +unlink($unused_reads_outfile); +move("$velvetg_path/UnusedReads.fa", $unused_reads_outfile); +if ( $amos_outfile ne 'None' ) { + unlink($amos_outfile); + move("$velvetg_path/velvet_asm.afg", $amos_outfile); +} +exit;