Mercurial > repos > edward-kirton > roche454_toolsuite
diff runMapping_cDNA_wrapper.pl @ 2:2d86d5b112e8
Uploaded
author | edward-kirton |
---|---|
date | Thu, 14 Jul 2011 22:14:07 -0400 |
parents | |
children | bf1f8bc4abe6 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/runMapping_cDNA_wrapper.pl Thu Jul 14 22:14:07 2011 -0400 @@ -0,0 +1,97 @@ +#!/usr/bin/env/perl + +use warnings; +use strict; +use File::Copy; + +# EXPECT 24 FILE HANDLES, SOME OF WHICH MAY BE 'None' +die("Missing arguments; expected at least 24, got ".scalar(@ARGV)."\n") unless @ARGV >= 24; +my $outdir=shift @ARGV; +my $alignment_info=shift @ARGV; +my $all_contigs_fasta=shift @ARGV; +my $all_contigs_qual=shift @ARGV; +my $all_diffs=shift @ARGV; +my $all_struct_vars=shift @ARGV; +my $hc_diff=shift @ARGV; +my $hc_struct_vars=shift @ARGV; +my $mapping_qc=shift @ARGV; +my $newbler_metrics=shift @ARGV; +my $pair_align=shift @ARGV; +my $read_status=shift @ARGV; +my $ref_status=shift @ARGV; +my $tag_pair_align=shift @ARGV; +my $trim_status=shift @ARGV; +my $trimmed_reads_fasta=shift @ARGV; +my $trimmed_reads_qual=shift @ARGV; +my $contigs_ace=shift @ARGV; +my $gene_status=shift @ARGV; +my $isotigs_ace=shift @ARGV; +my $isotigs_fasta=shift @ARGV; +my $isotigs_qual=shift @ARGV; +my $isotigs_agp=shift @ARGV; +my $isotigs_layout=shift @ARGV; + +# REMOVE PARAMETERS FOR OPTIONAL FILES WHICH WERE NOT PROVIDED + +my @cmd=removeUnusedOptions(@ARGV); + +# RUN COMMAND +# NOTE: FIRST ARG EXPECTED TO BE EXECUTABLE +my $stderr; +eval { $stderr=`@cmd 2>&1`; }; +if ( $@ ) { + print STDERR "Newbler ERROR: $stderr\n"; + `cat $outdir/assembly/454NewblerProgress.txt 1>&2`; + die($@); +} + +get_outfile("$outdir/454AlignmentInfo.tsv", $alignment_info); +get_outfile("$outdir/454AllContigs.fna", $all_contigs_fasta); +get_outfile("$outdir/454AllContigs.qual", $all_contigs_qual); +get_outfile("$outdir/454AllDiffs.txt", $all_diffs); +get_outfile("$outdir/454AllStructVars.txt", $all_struct_vars); +get_outfile("$outdir/454HCDiff.txt", $hc_diff); +get_outfile("$outdir/454HCStructVars.txt", $hc_struct_vars); +get_outfile("$outdir/454MappingQC.xls", $mapping_qc); +get_outfile("$outdir/454NewblerMetrics.txt", $newbler_metrics); +get_outfile("$outdir/454PairAlign.txt", $pair_align); +get_outfile("$outdir/454ReadStatus.txt", $read_status); +get_outfile("$outdir/454RefStatus.txt", $ref_status); +get_outfile("$outdir/454TagPairAlign.txt", $tag_pair_align); +get_outfile("$outdir/454TrimStatus.txt", $trim_status); +get_outfile("$outdir/454TrimmedReads.fna", $trimmed_reads_fasta); +get_outfile("$outdir/454TrimmedReads.qual", $trimmed_reads_qual); +get_outfile("$outdir/454Contigs.ace", $contigs_ace); +get_outfile("$outdir/454GeneStatus.txt", $gene_status); +get_outfile("$outdir/454Isotigs.ace", $isotigs_ace); +get_outfile("$outdir/454Isotigs.fna", $isotigs_fasta); +get_outfile("$outdir/454Isotigs.qual", $isotigs_qual); +get_outfile("$outdir/454Isotigs.txt", $isotigs_agp); +get_outfile("$outdir/454IsotigsLayout.txt", $isotigs_layout); +exit; + +# EVERY 'None' ARG AND IT'S PRECEEDING OPTION TAG ARE DISCARDED +sub removeUnusedOptions { + my @cmd=(); + my $prev; + foreach (@_) { + unless ($_ eq 'None') { + push @cmd, $prev if defined($prev); + $prev=$_; + } else { + $prev=undef; + } + } + push @cmd, $prev if defined($prev); + return @cmd; +} + +sub get_outfile { + my ($src, $dest)=@_; + # make sure dest defined and src exist; skip if dest is 'None' + if ( $dest and $dest ne 'None' and $src and -f $src ) { + move($src,$dest); + } +} + +__END__