-#!/usr/bin/perl
+#!/usr/bin/env perl
use Getopt::Long;
use Pod::Usage;
use File::Basename;
use File::Path 'rmtree';
+
+use FindBin;
+use lib $FindBin::RealBin;
+use rsem_perl_utils;
+
+use Env qw(@PATH);
+@PATH = ($FindBin::RealBin, "$FindBin::RealBin/sam", @PATH);
+
use strict;
my ($in_file, $out_file) = ();
pod2usage(-msg => "Input file's suffix is neither sam nor bam!", -exitval => 2, -verbose => 2) if (($suf ne "sam") && ($suf ne "bam"));
my $isSam = ($suf eq "sam");
-($fn, $dir, $suf) = fileparse($0);
-
my $temp_dir = "$out_file.temp";
if (-d $temp_dir) { print "Warning: $temp_dir exists, convert-sam-for-rsem will write temporary files into this folder and delete it after it finishes!\n"; }
else {
if (!$isSam) {
$sam_file = "$temp_dir/input.sam";
- $command = $dir."sam/samtools view -h -o $sam_file $in_file";
+ $command = "samtools view -h -o $sam_file $in_file";
&runCommand($command);
}
else {
# Phase II, parse the temporary SAM file to make paired-end alignments' two mates adjacent to each other
-$command = $dir."rsem-scan-for-paired-end-reads $tmp_sam $out_file";
+$command = "rsem-scan-for-paired-end-reads $tmp_sam $out_file";
&runCommand($command);
# delete temporary directory
# Phase III, validate if the resulting bam file is correct
-$command = $dir."rsem-sam-validator $out_file";
+$command = "rsem-sam-validator $out_file";
&runCommand($command);
-
-# command, {err_msg}
-sub runCommand {
- print $_[0]."\n";
- my $status = system($_[0]);
- if ($status != 0) {
- my $errmsg;
- if (scalar(@_) > 1) { $errmsg = $_[1]; }
- else { $errmsg = "\"$command\" failed! Plase check if you provide correct parameters/options for the pipeline!"; }
- print $errmsg."\n";
- exit(-1);
- }
- print "\n";
-}
-
__END__
=head1 NAME
=head1 SYNOPSIS
-=over
-
- convert-sam-for-rsem [options] <input.sam/input.bam> output_file_name
-
-=back
+convert-sam-for-rsem [options] <input.sam/input.bam> output_file_name
=head1 ARGUMENTS