diff rDiff/src/tools/read_utils/remove_reads_from_other_genes.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/tools/read_utils/remove_reads_from_other_genes.m	Thu Feb 14 23:38:36 2013 -0500
@@ -0,0 +1,24 @@
+function [READS_OUT,FLAG]=remove_reads_from_other_genes(READS,GENE,OFFSET)
+if nargin==2
+  OFFSET=0;
+end
+%This funtion removes the reads in READS which could ome from other
+%annotated genes. FLAG is 1 if this was sucsesfull and 0 otherwise
+READS_IN=READS;
+if isfield(GENE,'non_unique_regions')
+  EXONS=GENE.non_unique_regions;
+  IDX=zeros(1,size(READS,2));
+  
+  for i=1:size(EXONS,1)
+    START=max(EXONS(i,1),GENE.start-OFFSET)-GENE.start+1+OFFSET;
+    STOP=min(EXONS(i,2),GENE.stop+OFFSET)-GENE.start+1+OFFSET;
+    IDX(START:STOP)=1;
+  end  
+  READS=READS(not(sum(READS(:,IDX>0),2)==sum(READS,2)),:); 
+  FLAG=1;
+  READS_OUT=READS;
+else
+  READS_OUT=READS_IN;
+  FLAG=0;  
+end
+