Mercurial > repos > vipints > rdiff
diff rDiff/src/get_parametric_tests_caller.m @ 0:0f80a5141704
version 0.3 uploaded
author | vipints |
---|---|
date | Thu, 14 Feb 2013 23:38:36 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rDiff/src/get_parametric_tests_caller.m Thu Feb 14 23:38:36 2013 -0500 @@ -0,0 +1,82 @@ +function []=get_parametric_tests_caller(PAR) + + +CFG = PAR.CFG; +genes = PAR.genes; +OUT_STR=''; + +% add paths +addpath(CFG.paths); +%load local variables +data_dir=CFG.data_dir; +OUT_STR=[]; + +variance_function_parametric_1=PAR.variance_function_parametric_1; +variance_function_parametric_2=PAR.variance_function_parametric_2; + +Counts_rDiff_parametric=PAR.Counts_rDiff_parametric; +Gene_expression=PAR.Gene_expression; + +%clear variabe PAR +clear PAR; + +NUMBER_OF_TESTS_PER_GENE=(CFG.perform_parametric+CFG.perform_poisson); +if NUMBER_OF_TESTS_PER_GENE==0 + return +end +P_VALS=cell(size(genes,2),NUMBER_OF_TESTS_PER_GENE+12); + + +%iterate over genes +for i=1:size(genes,2) + %TEMP_COUNT contains the counts for the current gene + TEMP_COUNT=cell(1,3); + gene = genes(i); + + + OLD_OUT_STR=OUT_STR; + OUT_STR=['Current gene: ' gene.name ' ']; + %print progress + if CFG.use_rproc + fprintf([OUT_STR '\n']) + else + % Erase old progress + fprintf(repmat('\b',1,length(OLD_OUT_STR))); + fprintf([OUT_STR]) + end + + %set default return values + P_VALS{i,1}=gene.name; + + %check that the gene has exons defined + if isempty(gene.exons) + P_VALS{i,4}='Exons field empty in gene structure'; + continue; + end + + %check that the gene is longer than the Reads. Otherwise the + %definition of regions does not makes sense + if gene.stop-gene.start<CFG.sequenced_length+3 + P_VALS{i,4}='Gene to short'; + continue; + end + %perform + COUNTER=2; + if CFG.perform_parametric + [PV, INFO]= rDiff_parametric(CFG,gene,Counts_rDiff_parametric(i,:),Gene_expression(i,:),variance_function_parametric_1, variance_function_parametric_2); + P_VALS{i,COUNTER}={PV, INFO}; + COUNTER=COUNTER+1; + end + + if CFG.perform_poisson + [PV, INFO]= rDiff_poisson(CFG,gene,Counts_rDiff_parametric(i,:),Gene_expression(i,:)); + P_VALS{i,COUNTER}={PV, INFO}; + end + +end + +fprintf('\n') +%Save the p-values +OUT_FILENAME=[CFG.outfile_prefix '.mat']; +save(OUT_FILENAME,'P_VALS') +