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