annotate conifer/conifer_wrapper.pl @ 0:ca5354286bee draft

Uploaded
author bzonnedda
date Tue, 18 Oct 2016 09:26:52 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
1 #!/usr/bin/env perl
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
2
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
3 # Execute CoNIFER plotcalls and
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
4 # returns a HTML page with links to PNG plots
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
5
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
6 use strict;
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
7 use warnings;
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
8 use Getopt::Long;
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
9 use File::Basename;
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
10 use File::Path qw(make_path remove_tree);
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
11
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
12 my $command;
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
13 my $dir=$ENV{'CONIFER_PATH'};
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
14
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
15 our ($multiple, $input, $regions, $sample, $window, $html_file, $html_folder, $verbose);
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
16
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
17 GetOptions('multiple'=>\$multiple, 'input=s'=>\$input, 'regions=s'=>\$regions,
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
18 'sample:s'=>\$sample, 'window:i'=>\$window, 'verbose'=>\$verbose,
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
19 'html_file=s'=>\$html_file, 'html_folder=s'=>\$html_folder);
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
20
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
21 make_path($html_folder);
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
22
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
23 # Build command
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
24 if ($multiple){
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
25 # Reformat file with regions as required by CoNIFER plotcalls
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
26 system("awk '{print \$5,\$1,\$2,\$3,\$4}' OFS=\"\t\" $regions > regions_sorted");
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
27
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
28 $command = "python ".$dir."/conifer.py plotcalls --input $input --calls regions_sorted --window $window --outputdir $html_folder 2>&1";
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
29 }else{
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
30 my $sample_command = ($sample eq "") ? "" : "--sample $sample";
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
31 my $plot_name = $regions;
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
32 $plot_name =~ s/[:-]/_/g;
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
33 $command = "python ".$dir."/conifer.py plot --input $input --region $regions $sample_command --output $html_folder/$plot_name.png 2>&1";
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
34 }
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
35
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
36 # Run CoNIFER
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
37 system($command);
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
38 $verbose and print $command,"\n";
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
39
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
40 # Write HTML file
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
41 open(HTML, ">$html_file");
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
42 print HTML "<html><head><title>CoNIFER: Copy Number Analysis for Targeted Resequencing</title></head><body><h3>CoNIFER Output Files:</h3><p><ul>\n";
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
43 opendir(DIR, $html_folder);
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
44
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
45 my @FILES= grep { /png$/ } readdir(DIR);
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
46 closedir(DIR);
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
47 foreach my $file (@FILES) {
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
48 print HTML "<li><a href=$file>$file</a><img src=\"$file\" height=\"50\" width=\"100\"></li>\n";
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
49 }
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
50 print HTML "</ul></p></body></html>\n";
ca5354286bee Uploaded
bzonnedda
parents:
diff changeset
51 close(HTML);