Mercurial > repos > fcaramia > methylation_analysis_bismark
view methylation_analysis/bismark_wrapper.pl @ 4:282edadee017 draft
Uploaded
author | fcaramia |
---|---|
date | Mon, 03 Dec 2012 18:26:25 -0500 |
parents | |
children |
line wrap: on
line source
use strict; use warnings; use File::Basename; use Cwd; use File::Path qw(make_path remove_tree); die qq( Bad numbr of inputs ) if(!@ARGV); my @bam_list_entries; my $player_options = "--bowtie2 -p 4 "; my $bam_output; my $summary; my $genome; my $singles = ""; my $mates1 = ""; my $mates2 = ""; my $directional=""; my $format=""; my $log_file=""; foreach my $input (@ARGV) { my @tmp = split "::", $input; if($tmp[0] eq "GENOME") { $genome=$tmp[1]; } elsif($tmp[0] eq "MATES") { $mates1 = $tmp[1]; $mates2 = $tmp[2]; } elsif($tmp[0] eq "SINGLES") { $singles = $tmp[1]; } elsif($tmp[0] eq "FORMAT") { $format = $tmp[1]; } elsif($tmp[0] eq "DIRECTIONAL") { $directional = $tmp[1]; } elsif($tmp[0] eq "SUMMARY") { $summary = $tmp[1]; } elsif($tmp[0] eq "OUTPUT") { $bam_output = $tmp[1]; } else { die("Unknown Input: $input\n"); } } my $working_dir = cwd()."/BISMARK_OUTPUT"; make_path($working_dir); #run bismark if ($singles eq "") { system ("bismark $player_options $directional $format $genome -o $working_dir -1 $mates1 -2 $mates2 > $summary 2>&1 "); } else { system ("bismark $player_options $directional $format $genome -o $working_dir $singles > $summary 2>&1"); } move_files($working_dir); sub move_files { my $name; my $suffix; my $path; my $local_dir = $_[0]; opendir(DIR, $local_dir); #print ("Openning: $local_dir\n"); my @FILES= readdir(DIR); closedir(DIR); foreach my $file (@FILES) { if ($file eq "." || $file eq "..") { #print ("./ or ../ skipped\n"); } elsif (-d "$local_dir/$file") { #print ("moving to: $local_dir/$file\n"); move_files("$local_dir/$file"); } elsif (-f "$local_dir/$file") { ($name,$path,$suffix) = fileparse($file,qr"\.[^.]*$"); if ($suffix eq ".sam") { #converto to BAM and Delete SAM system ("MergeSamFiles.sh MAX_RECORDS_IN_RAM=2000000 I=$local_dir/$file O=$bam_output VALIDATION_STRINGENCY=LENIENT SO=coordinate USE_THREADING=true CREATE_INDEX=true > /dev/null 2>&1"); system ("rm -rf $local_dir/$file"); } elsif($suffix eq ".txt") { system ("mv $local_dir/$file $summary"); } } else { die("Unrecognized file generated: $file\n"); } } }