annotate rDiff/src/tools/read_utils/get_reads_for_gene.m @ 0:0f80a5141704

version 0.3 uploaded
author vipints
date Thu, 14 Feb 2013 23:38:36 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
1 function [reads1] = get_reads_for_gene(CFG,gene)
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
2
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
3
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
4 % Get the reads from the bam-file
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
5 if strcmp(gene.strand,'-')
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
6 [mask1, read_intron_list] = get_reads(CFG.curr_bamfile, [CFG.chr_prefix gene.chr],gene.start+1,gene.stop+1, '0');
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
7 else
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
8 [mask1, read_intron_list] = get_reads(CFG.curr_bamfile, [CFG.chr_prefix gene.chr],gene.start,gene.stop, '0');
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
9 end
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
10
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
11 % Bring the reads into a matrix form
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
12 if isempty(mask1)
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
13 reads1=zeros(0,gene.stop-gene.start+1);
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
14 return
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
15 else
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
16 reads1=sparse(mask1(1,:)',mask1(2,:)',ones(size(mask1,2),1),max(mask1(1,:)),gene.stop-gene.start+1);
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
17 end
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
18
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
19 % remove reads which are shorter than CFG.min_read_length
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
20 reads1=reads1(sum(reads1,2)>CFG.min_read_length,:);
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
21
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
22 if isempty(reads1)
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
23 return
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
24 end
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
25 %remove reads which could stem from other genes
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
26 [reads1,FLAG]=remove_reads_from_other_genes(reads1,gene);
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
27
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
28 %Subsample reads
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
29 if isempty(reads1)
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
30 return
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
31 end
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
32 if CFG.rDiff_subsample>0
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
33 if size(reads1,1)>CFG.rDiff_subsample
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
34 RP=randperm(size(reads1,1));
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
35 reads1=reads1(RP(1:CFG.rDiff_subsample),:);
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
36 end
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
37 end
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
38
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
39 %Clip reads
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
40 if isempty(reads1)
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
41 return
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
42 end
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
43 if CFG.bases_to_clip>0
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
44 CFG.bases_to_clip=3;
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
45 [reads1]=clip_reads(reads1,CFG.bases_to_clip);
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
46 end
0f80a5141704 version 0.3 uploaded
vipints
parents:
diff changeset
47