Skip to content

Commit 893bc68

Browse files
committed
remove exonGroupId and introduce startEndWindowSize to separate alternative TSS/TES from annotated sites
1 parent 6793865 commit 893bc68

File tree

1 file changed

+7
-21
lines changed

1 file changed

+7
-21
lines changed

R/bambu-processReads_utilityConstructReadClasses.R

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ createReadTable <- function(unlisted_junctions_start, unlisted_junctions_end,
209209
return(readTable)
210210
}
211211

212-
splitReadClassByStartEnd <- function(readTable, annotations){
212+
splitReadClassByStartEnd <- function(readTable, annotations, startEndWindowSize = 35 ){
213213
exons <- unlist(annotations)
214214
mcols(exons) <- cbind(mcols(exons),
215215
mcols(annotations)[rep(seq_along(annotations), elementNROWS(annotations)), ])
@@ -224,30 +224,16 @@ splitReadClassByStartEnd <- function(readTable, annotations){
224224
firstExon3prime = ifelse(strand != "-", end(exons), start(exons)),
225225
lastExon5prime = ifelse(strand != "-", start(exons), end(exons)), #assume * is +
226226
lastExon3prime = ifelse(strand != "-", end(exons), start(exons)))
227-
annoTable <- annoTable %>%
228-
group_by(firstExon3prime) %>%
229-
mutate(exonGroupId = cur_group_id()) %>%
230-
ungroup()
231227
readTable = bind_rows(readTable, annoTable)
232-
#add gene id id for mapped reads
233228
readTable <- readTable %>%
234-
#filter(strand != "*") %>%
235-
group_by(chr, strand, firstExon3prime) %>%
236-
mutate(exonGroupId = ifelse(is.na(exonGroupId), exonGroupId[!is.na(exonGroupId)][1], exonGroupId)) %>% # is it possible that two tx from annotation have same exon
237-
ungroup() %>%
238-
group_by(chr, strand, lastExon5prime) %>%
239-
mutate(exonGroupId = ifelse(is.na(exonGroupId), exonGroupId[!is.na(exonGroupId)][1], exonGroupId)) %>% # is it possible that two tx from annotation have same exon
240-
ungroup()
241-
#add first exon group for reads
242-
readTable <- readTable %>%
243-
group_by(exonGroupId, firstExon3prime) %>%
229+
group_by(firstExon3prime) %>%
244230
mutate(firstExonGroup = ifelse(strand != "-",
245-
findInterval(start,sort(start[is.na(readId)])),
246-
findInterval(end,sort(end[is.na(readId)]), left.open = T))) %>% ungroup() %>%
247-
group_by(exonGroupId, lastExon5prime) %>%
231+
findInterval(start,sort(start[is.na(readId)]) - startEndWindowSize),
232+
findInterval(-end,sort(-end[is.na(readId)]) - startEndWindowSize))) %>% ungroup() %>%
233+
group_by(lastExon5prime) %>%
248234
mutate(lastExonGroup = ifelse(strand != "-",
249-
findInterval(end,sort(end[is.na(readId)]), left.open = T),
250-
findInterval(start,sort(start[is.na(readId)])))) %>% ungroup() %>%
235+
findInterval(-end,sort(-end[is.na(readId)]) - startEndWindowSize),
236+
findInterval(start,sort(start[is.na(readId)]) - startEndWindowSize))) %>% ungroup() %>%
251237
filter(!is.na(readId))
252238
return(readTable)
253239
}

0 commit comments

Comments
 (0)