diff rDiff/src/tests/get_mean_variance_seg.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/tests/get_mean_variance_seg.m	Thu Feb 14 23:38:36 2013 -0500
@@ -0,0 +1,41 @@
+function [COMB_MEAN,COMB_VARIANCE]=get_mean_variance_seg(gene_expression_1,gene_expression_2,region_counts_1,region_counts_2,variance_function_parametric_1, variance_function_parametric_2)
+
+
+COMB_READS_PER_EXON=[region_counts_1;region_counts_2];
+GENE_EXPRESSION=[gene_expression_1';gene_expression_2'];
+IX_SAMPLE1=1:length(gene_expression_1);
+IX_SAMPLE2=(1+length(gene_expression_1)):(length(gene_expression_1)+length(gene_expression_2));
+  
+COMB_VARIANCE=[];
+COMB_MEAN=[];
+for i=1:size(region_counts_1,2)
+    INTEN1=region_counts_1(:,i);
+    INTEN2=region_counts_2(:,i);
+    INTENSITY=[INTEN1;INTEN2];
+    
+    SR_VECT=GENE_EXPRESSION;
+    
+    %Are there any counts at all in the region?
+    if sum(INTENSITY)>0
+        %Compute the means under the null hypothesis
+        Q=(INTENSITY./SR_VECT)/sum(SR_VECT>0);
+        
+        if sum(isnan(SR_VECT))
+            MEAN1=0;
+            MEAN2=0;
+        else
+            MEAN1=mean(sum(Q)*SR_VECT(IX_SAMPLE1));
+            MEAN2=mean(sum(Q)*SR_VECT(IX_SAMPLE2));
+        end
+        
+        COMB_MEAN=[COMB_MEAN,[MEAN1;MEAN2]];
+    else
+        COMB_MEAN=[COMB_MEAN,[0;0]];
+    end
+    
+end
+
+VARIANCE1= predict_variance(COMB_MEAN(1,:)',variance_function_parametric_1)';
+VARIANCE2= predict_variance(COMB_MEAN(2,:)',variance_function_parametric_2)';
+
+COMB_VARIANCE=[VARIANCE1;VARIANCE2];
\ No newline at end of file