https://github.com/CuppenResearch/IAP
Tip revision: 831bf1add49b80e2c15f176cd152fb586d0dd295 authored by rernst on 01 March 2016, 07:54:59 UTC
Merge branch 'release_v2.0.0'
Merge branch 'release_v2.0.0'
Tip revision: 831bf1a
illumina_prestats.pm
#!/usr/bin/perl -w
###################################
### illumina_prestats.pm
### - Run fastqc for each fastq
###
### Author: S.W.Boymans & H.H.D.Kerstens
###################################
package illumina_prestats;
use strict;
use POSIX qw(tmpnam);
use lib "$FindBin::Bin"; #locates pipeline directory
use illumina_sge;
sub runPreStats {
###
# Run fastqc
###
my $configuration = shift;
my %opt = %{$configuration};
my $jobIds = {};
my $mainJobID = "$opt{OUTPUT_DIR}/jobs/PreStatsMainJob_".get_job_id().".sh";
open (QSUB,">$mainJobID") or die "ERROR: Couldn't create $mainJobID\n";
print QSUB "\#!/bin/sh\n\n. $opt{CLUSTER_PATH}/settings.sh\n\n";
print "Creating FASTQC report for the following fastq.gz files:\n";
foreach my $input (keys %{$opt{FASTQ}}){
my $coreName = undef;
$coreName = (split("/", $input))[-1];
$coreName =~ s/\.fastq.gz//;
my ($sampleName) = split("_", $coreName);
print "\t$input\n"; #print fastq filename
if(! -e "$opt{OUTPUT_DIR}/$sampleName/logs/PreStats_$sampleName.done"){
my $preStatsJobId = "PreStat_$coreName\_".get_job_id();
push(@{$jobIds->{$sampleName}}, $preStatsJobId);
open PS,">$opt{OUTPUT_DIR}/$sampleName/jobs/$preStatsJobId.sh";
print PS "\#!/bin/sh\n\n";
print PS "cd $opt{OUTPUT_DIR}/$sampleName\n\n";
print PS "echo \"Start PreStats\t\" `date` \"\t$coreName\t\" `uname -n` >> $opt{OUTPUT_DIR}/$sampleName/logs/$sampleName.log\n";
print PS "$opt{FASTQC_PATH}/fastqc $input -o QCStats --noextract -t $opt{PRESTATS_THREADS}\n";
print PS "touch logs/PreStats_$sampleName.done\n";
print PS "echo \"End PreStats\t\" `date` \"\t$coreName\t\" `uname -n` >> $opt{OUTPUT_DIR}/$sampleName/logs/$sampleName.log\n";
close PS;
my $qsub = &qsubTemplate(\%opt,"PRESTATS");
print QSUB $qsub," -o ",$opt{OUTPUT_DIR},"/",$sampleName,"/logs/PreStat_",$coreName,".out -e ",$opt{OUTPUT_DIR},"/",$sampleName,"/logs/PreStats_",$coreName,".err -N ",$preStatsJobId," ",$opt{OUTPUT_DIR},"/",$sampleName,"/jobs/",$preStatsJobId,".sh\n";
} else {
print "\t WARNING: FASTQC report for $input already exists, skipping.\n";
}
}
close QSUB;
system("sh $mainJobID");
}
############
sub get_job_id {
my $id = tmpnam();
$id=~s/\/tmp\/file//;
return $id;
}
############
1;