Mercurial > repos > vipints > rdiff
comparison rDiff/src/tools/read_utils/splicingsequence.m @ 0:0f80a5141704
version 0.3 uploaded
author | vipints |
---|---|
date | Thu, 14 Feb 2013 23:38:36 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:0f80a5141704 |
---|---|
1 function [SPLICINGEVENTS, SEQUENCE, EXONSEQUENCE, IDENTIFICATIONLENGTH] = splicingsequence(GENE) | |
2 % This function generates all sequence of all splicesites | |
3 % SPLICINGEVENTS, a SEQUENCE marking which elements in | |
4 % SPLICINGEVENTS are introns and exons and a sequence for each | |
5 % transcript which indicates which Exons are in cluded in this transcript | |
6 % SEQUENCE contains indices of SPLICINGEVENTS, containing 1, if the position right to the idx in the transcript | |
7 % are exonic, 0 otherwise | |
8 | |
9 EXONS = GENE.exons; | |
10 START = GENE.start; | |
11 STOP = GENE.stop; | |
12 | |
13 NB_OF_TRANSCR = size(EXONS,2); | |
14 | |
15 SPLICINGEVENTS = []; | |
16 for i = 1:NB_OF_TRANSCR | |
17 SPLICINGEVENTS = [SPLICINGEVENTS, EXONS{i}(:,1)', EXONS{i}(:,2)' ]; | |
18 end | |
19 SPLICINGEVENTS = SPLICINGEVENTS - START + 1; | |
20 SPLICINGEVENTS = unique(SPLICINGEVENTS); | |
21 | |
22 EXONSEQUENCE = zeros(NB_OF_TRANSCR, length(SPLICINGEVENTS) - 1); | |
23 | |
24 for i = 1:NB_OF_TRANSCR | |
25 %%% for every exon in transcript i | |
26 for j = 1:size(EXONS{i}, 1) | |
27 POS_START = find(SPLICINGEVENTS == EXONS{i}(j,1) - START + 1, 1, 'first'); | |
28 POS_STOP = find(SPLICINGEVENTS < EXONS{i}(j,2) - START + 1, 1, 'last'); | |
29 %%% set splicing events active in transcript i to 1 | |
30 EXONSEQUENCE(i, POS_START:POS_STOP) = 1; | |
31 end | |
32 end | |
33 | |
34 %%% merge active splicing events of all transcripts | |
35 SEQUENCE = max(EXONSEQUENCE, [], 1); | |
36 IDENTIFICATIONLENGTH = []; | |
37 |