annotate mosaics_wrapper.pl @ 0:b2567f7ff12f

Uploaded
author dongjun
date Wed, 21 Sep 2011 03:27:06 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
1 # Wrapper for MOSAiCS
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
2 # Written by Dongjun Chung, Sep. 15, 2011
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
3
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
4 #!/usr/bin/env perl;
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
5 use warnings;
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
6 use strict;
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
7 use File::Temp qw/tempfile/;
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
8 use File::Temp qw/tempdir/;
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
9 use File::Basename;
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
10
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
11 # parse command arguments
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
12
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
13 die "Usage: perl mosaics_wrapper.pl [chip_path] [control_path] [chip_file_format] [control_file_format] [peak_path] [peak_file_format] [analysis_type] [report_summary_path] [report_gof_path] [report_exploratory_path] [fdr_level] [frag_len] [bin_size] [capping] [signal_model] [d] [maxgap] [minsize] [thres] [n_core]" unless @ARGV == 20;
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
14
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
15 my ( $chip_path, $control_path, $chip_file_format, $control_file_format, $peak_path, $peak_file_format, $analysis_type, $report_summary_path, $report_gof_path, $report_exploratory_path, $fdr_level, $frag_len, $bin_size, $capping, $signal_model, $d, $maxgap, $minsize, $thres, $n_core ) = @ARGV;
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
16
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
17 # parse options: analysis type
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
18
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
19 if ( $analysis_type ne "IO" ) {
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
20 print "Only 'IO' is supported for analysis type!\n";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
21 exit 1;
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
22 }
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
23
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
24 # parse options: ChIP, control, peak
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
25
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
26 my ($chip_filename, $chip_dir) = fileparse($chip_path);
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
27 my ($control_filename, $control_dir) = fileparse($control_path);
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
28 my ($peak_filename, $peak_dir) = fileparse($peak_path);
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
29
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
30 # parse options: report summary
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
31
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
32 my $report_summary = "FALSE";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
33 my $summary_dir = "NULL";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
34 my $summary_filename = "NULL";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
35 if ( $report_summary_path ne "None" ) {
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
36 $report_summary = "TRUE";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
37 ($summary_filename, $summary_dir) = fileparse($report_summary_path);
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
38 }
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
39
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
40 # parse options: report GOF
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
41
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
42 my $report_gof = "FALSE";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
43 my $gof_dir = "NULL";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
44 my $gof_filename = "NULL";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
45 if ( $report_gof_path ne "None" ) {
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
46 $report_gof = "TRUE";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
47 ($gof_filename, $gof_dir) = fileparse($report_gof_path);
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
48 }
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
49
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
50 # parse options: report exploratory analysis
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
51
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
52 my $report_exploratory = "FALSE";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
53 my $exploratory_dir = "NULL";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
54 my $exploratory_filename = "NULL";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
55 if ( $report_exploratory_path ne "None" ) {
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
56 $report_exploratory = "TRUE";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
57 ($exploratory_filename, $exploratory_dir) = fileparse($report_exploratory_path);
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
58 }
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
59
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
60 # write a R scrip to run
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
61
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
62 my $tempdir_bin = tempdir();
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
63
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
64 my $cmd = qq|
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
65 suppressPackageStartupMessages(library(mosaics))
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
66 try( suppressPackageStartupMessages(library(rparallel)), silent=TRUE )
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
67
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
68 mosaicsRunAll(
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
69 chipDir="$chip_dir",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
70 chipFileName="$chip_filename",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
71 chipFileFormat="$chip_file_format",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
72 controlDir="$control_dir",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
73 controlFileName="$control_filename",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
74 controlFileFormat="$control_file_format",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
75 binfileDir="$tempdir_bin",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
76 peakDir="$peak_dir",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
77 peakFileName="$peak_filename",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
78 peakFileFormat="$peak_file_format",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
79 reportSummary=$report_summary,
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
80 summaryDir="$summary_dir",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
81 summaryFileName="$summary_filename",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
82 reportExploratory=$report_exploratory,
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
83 exploratoryDir="$exploratory_dir",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
84 exploratoryFileName="$exploratory_filename",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
85 reportGOF=$report_gof,
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
86 gofDir="$gof_dir",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
87 gofFileName="$gof_filename",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
88 FDR=$fdr_level,
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
89 fragLen=$frag_len,
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
90 binSize=$bin_size,
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
91 capping=$capping,
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
92 analysisType="$analysis_type",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
93 d=$d,
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
94 signalModel="$signal_model",
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
95 maxgap=$maxgap,
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
96 minsize=$minsize,
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
97 thres=$thres,
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
98 nCore=$n_core )
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
99
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
100 q()
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
101 |;
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
102
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
103 # run R
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
104
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
105 open( FT, "| R --slave --vanilla >& /dev/null" ) or die "Couldn't call R!\n";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
106 print FT $cmd, "\n";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
107 close FT or die "Couldn't finish R!\n";
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
108
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
109 exit;
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
110
b2567f7ff12f Uploaded
dongjun
parents:
diff changeset
111