Skip to content

Commit dac871e

Browse files
author
SuiYue-2308
committed
Move min.exonDistance, min.primarySecondaryDist, min.primarySecondaryDistStartEnd1/2 from opt.discovery into a new opt.rcAssignment parameter with its own setRcAssignmentParameters().
1 parent fdf8db5 commit dac871e

4 files changed

Lines changed: 34 additions & 23 deletions

File tree

R/bambu-assignDist.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
#' @inheritParams bambu
33
#' @import data.table
44
#' @noRd
5-
assignReadClasstoTranscripts <- function(readClassList, annotations, isoreParameters,
5+
assignReadClasstoTranscripts <- function(readClassList, annotations, isoreParameters, rcAssignmentParameters,
66
verbose, sampleMetadata, demultiplexed,
77
returnDistTable = FALSE, trackReads = TRUE) {
88
if (is.character(readClassList)) readClassList <- readRDS(file = readClassList)
9-
metadata(readClassList)$readClassDist <- calculateDistTable(readClassList, annotations, isoreParameters, verbose, returnDistTable)
9+
metadata(readClassList)$readClassDist <- calculateDistTable(readClassList, annotations, isoreParameters, rcAssignmentParameters, verbose, returnDistTable)
1010
readClassList <- splitReadClassFiles(readClassList)
1111
readClassDt <- genEquiRCs(metadata(readClassList)$readClassDist, annotations, verbose)
1212
readClassDt$eqClass.match = match(readClassDt$eqClassById,metadata(readClassList)$eqClassById)

R/bambu-extendAnnotations.R

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#' @inheritParams bambu
44
#' @noRd
55
bambu.extendAnnotations <- function(readClassList, annotations, NDR,
6-
isoreParameters, stranded, bpParameters, fusionMode = FALSE, verbose = FALSE) {
6+
isoreParameters, rcAssignmentParameters, stranded, bpParameters, fusionMode = FALSE, verbose = FALSE) {
77
start.ptm_all <- proc.time()
88
combinedTxCandidates <- isore.combineTranscriptCandidates(readClassList,
99
stranded, ## stranded used for unspliced reduce
@@ -23,12 +23,12 @@ bambu.extendAnnotations <- function(readClassList, annotations, NDR,
2323
remove.subsetTx = isoreParameters[["remove.subsetTx"]],
2424
min.sampleNumber = isoreParameters[["min.sampleNumber"]],
2525
NDR = NDR,
26-
min.exonDistance = isoreParameters[["min.exonDistance"]],
26+
min.exonDistance = rcAssignmentParameters[["min.exonDistance"]],
2727
min.exonOverlap = isoreParameters[["min.exonOverlap"]],
28-
min.primarySecondaryDist =
29-
isoreParameters[['min.primarySecondaryDist']],
30-
min.primarySecondaryDistStartEnd =
31-
isoreParameters[['min.primarySecondaryDistStartEnd1']],
28+
min.primarySecondaryDist =
29+
rcAssignmentParameters[['min.primarySecondaryDist']],
30+
min.primarySecondaryDistStartEnd =
31+
rcAssignmentParameters[['min.primarySecondaryDistStartEnd1']],
3232
min.readFractionByEqClass =
3333
isoreParameters[['min.readFractionByEqClass']],
3434
fusionMode = fusionMode,

R/bambu.R

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
#' genome = fa.file, discovery = TRUE, quant = TRUE)
142142
#' @export
143143
bambu <- function(reads, annotations = NULL, genome = NULL, NDR = NULL,
144-
mode = NULL, opt.discovery = NULL, opt.em = NULL, rcOutDir = NULL, discovery = TRUE,
144+
mode = NULL, opt.discovery = NULL, opt.rcAssignment = NULL, opt.em = NULL, rcOutDir = NULL, discovery = TRUE,
145145
assignDist = TRUE, quant = TRUE, stranded = FALSE, ncore = 1, yieldSize = NULL,
146146
trackReads = FALSE, returnDistTable = FALSE, lowMemory = FALSE, sampleData = NULL,
147147
fusionMode = FALSE, verbose = FALSE, demultiplexed = FALSE, quantData = NULL,
@@ -183,7 +183,7 @@ bambu <- function(reads, annotations = NULL, genome = NULL, NDR = NULL,
183183
isoreParameters <- setIsoreParameters(isoreParameters = opt.discovery)
184184
#below line is to be compatible with earlier version of running bambu
185185
if(!is.null(isoreParameters$max.txNDR)) NDR = isoreParameters$max.txNDR
186-
186+
rcAssignmentParameters <- setRcAssignmentParameters(rcAssignmentParameters = opt.rcAssignment)
187187
emParameters <- setEmParameters(emParameters = opt.em)
188188
bpParameters <- setBiocParallelParameters(reads, ncore, verbose, demultiplexed)
189189
xgb.set.config(nthread = 1)
@@ -223,7 +223,7 @@ bambu <- function(reads, annotations = NULL, genome = NULL, NDR = NULL,
223223
if (discovery) {
224224
message("--- Start extending annotations ---")
225225
extendedAnnotations <- bambu.extendAnnotations(readClassList, annotations, NDR,
226-
isoreParameters, stranded, bpParameters, fusionMode, verbose)
226+
isoreParameters, rcAssignmentParameters, stranded, bpParameters, fusionMode, verbose)
227227
metadata(extendedAnnotations)$warnings = warnings
228228

229229
#### cluster based transcript discovery
@@ -242,9 +242,10 @@ bambu <- function(reads, annotations = NULL, genome = NULL, NDR = NULL,
242242
quantData <- bplapply(seq_along(readClassList), function(i){
243243
assignReadClasstoTranscripts(
244244
readClassList = readClassList[[i]],
245-
annotations = annotations,
246-
isoreParameters = isoreParameters,
247-
verbose = verbose,
245+
annotations = annotations,
246+
isoreParameters = isoreParameters,
247+
rcAssignmentParameters = rcAssignmentParameters,
248+
verbose = verbose,
248249
# for bulk data, there is one sampleData (keep sampleData[1]), for single-cell, there is one per sample
249250
sampleMetadata = if(length(sampleData) == 1) sampleData[1] else sampleData[i],
250251
demultiplexed = demultiplexed,

R/bambu_utilityFunctions.R

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,7 @@ setIsoreParameters <- function(isoreParameters){
2222
min.readCount = 2,
2323
min.readFractionByGene = 0.05,
2424
min.sampleNumber = 1,
25-
min.exonDistance = 35,
26-
min.exonOverlap = 10,
27-
min.primarySecondaryDist = 5,
28-
min.primarySecondaryDistStartEnd1 = 5, # for creating new annotations
29-
min.primarySecondaryDistStartEnd2 = 5, # for read assignment
25+
min.exonOverlap = 10,
3026
min.txScore.multiExon = 0,
3127
min.txScore.singleExon = 1,
3228
fitReadClassModel = TRUE,
@@ -41,6 +37,20 @@ setIsoreParameters <- function(isoreParameters){
4137
}
4238

4339

40+
#' setRcAssignmentParameters
41+
#' @noRd
42+
setRcAssignmentParameters <- function(rcAssignmentParameters){
43+
rcAssignmentParameters.default <- list(
44+
min.exonDistance = 35,
45+
min.primarySecondaryDist = 5,
46+
min.primarySecondaryDistStartEnd1 = 5, # for extending annotations
47+
min.primarySecondaryDistStartEnd2 = 5) # for read class assignment
48+
rcAssignmentParameters <-
49+
updateParameters(rcAssignmentParameters, rcAssignmentParameters.default)
50+
return(rcAssignmentParameters)
51+
}
52+
53+
4454
#' setEmParameters
4555
#' @noRd
4656
setEmParameters <- function(emParameters){
@@ -242,11 +252,11 @@ handleWarnings <- function(readClassList, verbose){
242252
}
243253

244254
#' Calculate the dist table used for Bambu Quantification
245-
calculateDistTable <- function(readClassList, annotations, isoreParameters, verbose, returnDistTable){
255+
calculateDistTable <- function(readClassList, annotations, isoreParameters, rcAssignmentParameters, verbose, returnDistTable){
246256
readClassDist <- isore.estimateDistanceToAnnotations(readClassList, annotations,
247-
min.exonDistance = isoreParameters[["min.exonDistance"]],
248-
min.primarySecondaryDist = isoreParameters[['min.primarySecondaryDist']],
249-
min.primarySecondaryDistStartEnd = isoreParameters[['min.primarySecondaryDistStartEnd2']],
257+
min.exonDistance = rcAssignmentParameters[["min.exonDistance"]],
258+
min.primarySecondaryDist = rcAssignmentParameters[['min.primarySecondaryDist']],
259+
min.primarySecondaryDistStartEnd = rcAssignmentParameters[['min.primarySecondaryDistStartEnd2']],
250260
verbose = verbose)
251261
metadata(readClassDist)$distTable <- modifyIncompatibleAssignment(metadata(readClassDist)$distTable)
252262
if(returnDistTable) metadata(readClassDist)$distTableOld <- metadata(readClassDist)$distTable

0 commit comments

Comments
 (0)