comparison rDiff/src/process_command_line_args.m @ 0:0f80a5141704

version 0.3 uploaded
author vipints
date Thu, 14 Feb 2013 23:38:36 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:0f80a5141704
1 function [CFG]=process_command_line_args(CFG,ARGS)
2 % [CFG]=process_command_line_args(CFG,ARGS)
3
4 %This function adds the command line arguments to the CFG config variable
5
6 %Parse the ARGS
7
8 %Check wether octave or matlab is used
9 if size(ver('Octave'),1)
10 INTERPR = 1;
11 else
12 INTERPR = 0;
13 end
14
15 %turn of warning
16 if INTERPR
17 warning('off', 'Octave:precedence-change');
18 warning('off', 'Octave:function-name-clash');
19 warning('off', '');
20 warning('off', 'Octave:num-to-str');
21 warning('off', 'Octave:function-name-clash');
22 warning('off', 'Octave:divide-by-zero');
23 warning('off', 'Octave:future-time-stamp');
24 warning('off', 'solve_qp:constraints');
25 warning('off', 'Octave:assign-as-truth-value');
26 warning('off', 'Octave:matlab-incompatible');
27 else
28 warning('off', 'MATLAB:typeaheadBufferOverflow');
29 end
30
31 %Seperate the Variable Field
32 if INTERPR
33 ARGS = strsplit(ARGS,';');
34 else
35 ARGS=regexp(ARGS,';','split');
36 end
37
38 %Assign the local variables
39
40 %iterate over Fields
41 for i=1:length(ARGS)
42 if isempty(ARGS{i})
43 continue
44 end
45 if INTERPR
46 VALS = strsplit(ARGS{i},':');
47 else
48 VALS=regexp(ARGS{i},':','split');
49 end
50
51
52 if length(VALS)>2
53 error([" more than one field for variable: " VALS{1} ":" VALS{:} "\n Maybe there are colons in the input argument?"])
54 end
55
56 if strcmp(VALS{1},"RDIFF_RES_DIR"),RDIFF_RES_DIR=VALS{2};continue,end
57 if strcmp(VALS{1},"RDIFF_INPUT_DIR"),RDIFF_INPUT_DIR=VALS{2};continue,end
58 if strcmp(VALS{1},"BAM_INPUT1"),BAM_INPUT1=VALS{2};continue,end
59 if strcmp(VALS{1},"BAM_INPUT2"),BAM_INPUT2=VALS{2};continue,end
60 if strcmp(VALS{1},"GFF_INPUT"),GFF_INPUT=VALS{2};continue,end
61 if strcmp(VALS{1},"READ_LENGTH"),READ_LENGTH=str2num(VALS{2});continue,end
62 if strcmp(VALS{1},"MIN_READ_LENGTH"),MIN_READ_LENGTH=str2num(VALS{2});continue,end
63 if strcmp(VALS{1},"EST_GENE_EXPR"),EST_GENE_EXPR=str2num(VALS{2});continue,end
64 if strcmp(VALS{1},"ONLY_GENE_EXPR"),ONLY_GENE_EXPR=str2num(VALS{2});continue,end
65 if strcmp(VALS{1},"VAR_PATH1"),VAR_PATH1=VALS{2};continue,end
66 if strcmp(VALS{1},"VAR_PATH2"),VAR_PATH2=VALS{2};continue,end
67 if strcmp(VALS{1},"SAVE_VAR1"),SAVE_VAR1=VALS{2};continue,end
68 if strcmp(VALS{1},"SAVE_VAR2"),SAVE_VAR2=VALS{2};continue,end
69 if strcmp(VALS{1},"PRED_VAR1"),PRED_VAR1=VALS{2};continue,end
70 if strcmp(VALS{1},"PRED_VAR2"),PRED_VAR2=VALS{2};continue,end
71 if strcmp(VALS{1},"ONLY_GENE_START"),ONLY_GENE_START=str2num(VALS{2});continue,end
72 if strcmp(VALS{1},"SUBSAMPLE"),SUBSAMPLE=str2num(VALS{2});continue,end
73 if strcmp(VALS{1},"CLIP"),CLIP=str2num(VALS{2});continue,end
74 if strcmp(VALS{1},"BOOTSTRAP"),BOOTSTRAP=str2num(VALS{2});continue,end
75 if strcmp(VALS{1},"TEST_METH_NAME"),TEST_METH_NAME=VALS{2};continue,end
76 if strcmp(VALS{1},"MERGE_SAMPLE"),MERGE_SAMPLE=str2num(VALS{2});continue,end
77 end
78
79 %Process Bamfiles
80 if INTERPR
81 BAMS1 = strsplit(BAM_INPUT1,',');
82 BAMS2 = strsplit(BAM_INPUT2,',');
83 else
84 BAMS1=regexp(BAM_INPUT1,',','split');
85 BAMS2=regexp(BAM_INPUT2,',','split');
86 end
87
88 CFG.BAM_FILES={BAMS1{:},BAMS2{:}};
89
90 %Name of the experiment. Use the FILENAMES if the entries are empty.
91 CFG.NAMES=CFG.BAM_FILES;
92 for i=1:length(CFG.NAMES)
93 CFG.NAMES{i}=strrep(CFG.NAMES{i},"/","_");
94 end
95
96 % Give the directory where the input-files are
97 CFG.data_dir = [RDIFF_INPUT_DIR '/'];
98
99 % Indicate to which sample the bam-files belong
100 CFG.SAMPLES=[repmat(1,1,size(BAMS1,2)),repmat(2,1,size(BAMS2,2))];
101
102 %Process directories
103
104
105
106 % Location of the gene structure
107 CFG.genes_path=GFF_INPUT;
108
109 % Output directory
110
111 CFG.out_base = [RDIFF_RES_DIR '/'];
112
113 % Output directory for temporary files
114 CFG.out_base_temp = [CFG.out_base '/temp/'];
115 mkdir(CFG.out_base_temp);
116
117
118 %Check which method to perform
119 if strcmp(TEST_METH_NAME,'poisson')
120 CFG.perform_poisson=1;
121 end
122 if strcmp(TEST_METH_NAME,'param')
123 CFG.perform_parametric=1;
124 end
125 if strcmp(TEST_METH_NAME,'nonparam')
126 CFG.perform_nonparametric=1;
127 end
128 if strcmp(TEST_METH_NAME,'mmd')
129 CFG.perform_mmd=1;
130 end
131
132
133 %Process arguments for gene expression estimation
134 CFG.estimate_gene_expression=EST_GENE_EXPR;
135 CFG.only_gene_expression=ONLY_GENE_EXPR;
136
137
138 %Set options for the variance function
139 CFG.merge_sample1=MERGE_SAMPLE;
140 CFG.merge_sample2=MERGE_SAMPLE;
141
142 %If samples contains leass than one sample, merge replicates
143 if length(BAMS1)<2
144 CFG.merge_sample1=1;
145 end
146 if length(BAMS2)<2
147 CFG.merge_sample2=1;
148 end
149
150 %Use predefined parameters
151 CFG.predefined_variance_function1=[];
152 if not(isempty(PRED_VAR1))
153 if INTERPR
154 VALS = strsplit(PRED_VAR1,',');
155 else
156 VALS=regexp(PRED_VAR1,',','split');
157 end
158 for i=1:length(VALS)
159 CFG.predefined_variance_function1(end+1)=str2num(VALS{i});
160 end
161 end
162 CFG.predefined_variance_function2=[];
163 if not(isempty(PRED_VAR2))
164 if INTERPR
165 VALS = strsplit(PRED_VAR2,',');
166 else
167 VALS=regexp(PRED_VAR2,',','split');
168 end
169 for i=1:length(VALS)
170 CFG.predefined_variance_function2(end+1)=str2num(VALS{i});
171 end
172 end
173
174
175 if not(isempty(SAVE_VAR1))
176 CFG.save_variance_function_1=SAVE_VAR1;
177 else
178 CFG.save_variance_function_1='variance_function_1.mat';
179 end
180 if not(isempty(SAVE_VAR2))
181 CFG.save_variance_function_2=SAVE_VAR2;
182 else
183 CFG.save_variance_function_2='variance_function_2.mat';
184 end
185
186 if not(isempty(VAR_PATH1))
187 CFG.variance_function_1=VAR_PATH1;
188 end
189 if not(isempty(VAR_PATH2))
190 CFG.variance_function_2=VAR_PATH2;
191 end
192
193 %Option not implemented yet
194 CFG.compute_variance_function_1=1;
195 CFG.compute_variance_function_2=1;
196
197 %use only gene starts and stops for rDiff.nonparametric variance
198 %function esitmation
199 CFG.only_gene_start=ONLY_GENE_START;
200
201 %Process read arguments
202 CFG.sequenced_length=READ_LENGTH;
203 CFG.min_read_length=min(CFG.sequenced_length,MIN_READ_LENGTH);
204
205 CFG.rDiff_subsample=SUBSAMPLE;
206 CFG.rDiff_nonparametric_subsample_variance_estimation=CFG.rDiff_subsample;
207
208 CFG.bases_to_clip=CLIP;
209
210 %Process arguments for rDiff.nonparametric
211 CFG.bootstraps=BOOTSTRAP;
212
213 return