0
|
1 function []=get_parametric_tests_caller(PAR)
|
|
2
|
|
3
|
|
4 CFG = PAR.CFG;
|
|
5 genes = PAR.genes;
|
|
6 OUT_STR='';
|
|
7
|
|
8 % add paths
|
|
9 addpath(CFG.paths);
|
|
10 %load local variables
|
|
11 data_dir=CFG.data_dir;
|
|
12 OUT_STR=[];
|
|
13
|
|
14 variance_function_parametric_1=PAR.variance_function_parametric_1;
|
|
15 variance_function_parametric_2=PAR.variance_function_parametric_2;
|
|
16
|
|
17 Counts_rDiff_parametric=PAR.Counts_rDiff_parametric;
|
|
18 Gene_expression=PAR.Gene_expression;
|
|
19
|
|
20 %clear variabe PAR
|
|
21 clear PAR;
|
|
22
|
|
23 NUMBER_OF_TESTS_PER_GENE=(CFG.perform_parametric+CFG.perform_poisson);
|
|
24 if NUMBER_OF_TESTS_PER_GENE==0
|
|
25 return
|
|
26 end
|
|
27 P_VALS=cell(size(genes,2),NUMBER_OF_TESTS_PER_GENE+12);
|
|
28
|
|
29
|
|
30 %iterate over genes
|
|
31 for i=1:size(genes,2)
|
|
32 %TEMP_COUNT contains the counts for the current gene
|
|
33 TEMP_COUNT=cell(1,3);
|
|
34 gene = genes(i);
|
|
35
|
|
36
|
|
37 OLD_OUT_STR=OUT_STR;
|
|
38 OUT_STR=['Current gene: ' gene.name ' '];
|
|
39 %print progress
|
|
40 if CFG.use_rproc
|
|
41 fprintf([OUT_STR '\n'])
|
|
42 else
|
|
43 % Erase old progress
|
|
44 fprintf(repmat('\b',1,length(OLD_OUT_STR)));
|
|
45 fprintf([OUT_STR])
|
|
46 end
|
|
47
|
|
48 %set default return values
|
|
49 P_VALS{i,1}=gene.name;
|
|
50
|
|
51 %check that the gene has exons defined
|
|
52 if isempty(gene.exons)
|
|
53 P_VALS{i,4}='Exons field empty in gene structure';
|
|
54 continue;
|
|
55 end
|
|
56
|
|
57 %check that the gene is longer than the Reads. Otherwise the
|
|
58 %definition of regions does not makes sense
|
|
59 if gene.stop-gene.start<CFG.sequenced_length+3
|
|
60 P_VALS{i,4}='Gene to short';
|
|
61 continue;
|
|
62 end
|
|
63 %perform
|
|
64 COUNTER=2;
|
|
65 if CFG.perform_parametric
|
|
66 [PV, INFO]= rDiff_parametric(CFG,gene,Counts_rDiff_parametric(i,:),Gene_expression(i,:),variance_function_parametric_1, variance_function_parametric_2);
|
|
67 P_VALS{i,COUNTER}={PV, INFO};
|
|
68 COUNTER=COUNTER+1;
|
|
69 end
|
|
70
|
|
71 if CFG.perform_poisson
|
|
72 [PV, INFO]= rDiff_poisson(CFG,gene,Counts_rDiff_parametric(i,:),Gene_expression(i,:));
|
|
73 P_VALS{i,COUNTER}={PV, INFO};
|
|
74 end
|
|
75
|
|
76 end
|
|
77
|
|
78 fprintf('\n')
|
|
79 %Save the p-values
|
|
80 OUT_FILENAME=[CFG.outfile_prefix '.mat'];
|
|
81 save(OUT_FILENAME,'P_VALS')
|
|
82
|