@@ -56,6 +56,7 @@ bambu.processReads <- function(reads, annotations, genomeSequence,
5656 processByChromosome = processByChromosome , trackReads = trackReads , fusionMode = fusionMode ,
5757 extractBarcodeUMI = extractBarcodeUMI , dedupUMI = dedupUMI , index = 1 )},
5858 BPPARAM = bpParameters )
59+ names(readClassList ) <- names(reads )
5960 } else {
6061 readGrgList <- bplapply(seq_along(reads ), function (i ) {
6162 bambu.readsByFile(bam.file = reads [i ],
@@ -162,22 +163,23 @@ bambu.processReadsByFile <- function(bam.file, genomeSequence, annotations,
162163
163164 mcols(readGrgList )$ id <- seq_along(readGrgList )
164165
165- if (extractBarcodeUMI ){
166- mcols(readGrgList )$ sampleID <- as.numeric(mcols(readGrgList )$ CB )
166+ if (extractBarcodeUMI ){
167+ mcols(readGrgList )$ columnID <- as.numeric(mcols(readGrgList )$ CB )
167168 } else {
168- mcols(readGrgList )$ sampleID <- index
169+ mcols(readGrgList )$ columnID <- index
169170 }
170171
172+ runName <- names(bam.file )[1 ]
171173 # construct read classes for each chromosome seperately
172174 if (processByChromosome ){
173175 se <- lowMemoryConstructReadClasses(readGrgList , genomeSequence ,
174- annotations , stranded , verbose ,bam.file )
176+ annotations , stranded , verbose , bam.file )
175177 } else {
176178 unlisted_junctions <- unlistIntrons(readGrgList , use.ids = TRUE )
177179 uniqueJunctions <- isore.constructJunctionTables(unlisted_junctions ,
178180 annotations ,genomeSequence , stranded = stranded , verbose = verbose )
179181 se <- isore.constructReadClasses(readGrgList ,
180- unlisted_junctions , uniqueJunctions , runName = " TODO " ,
182+ unlisted_junctions , uniqueJunctions , runName = runName ,
181183 annotations , stranded , verbose )
182184
183185 }
@@ -297,18 +299,18 @@ bambu.readsByFile <- function(bam.file, genomeSequence, annotations,
297299constructReadClasses <- function (readGrgList , genomeSequence , annotations ,
298300 stranded = FALSE , min.readCount = 2 ,
299301 fitReadClassModel = TRUE , min.exonOverlap = 10 , defaultModels = NULL , returnModel = FALSE ,
300- verbose = FALSE , processByChromosome = FALSE , trackReads = FALSE , fusionMode = FALSE ){
302+ verbose = FALSE , processByChromosome = FALSE , trackReads = FALSE , fusionMode = FALSE , runName = " sample " ){
301303
302304 if (processByChromosome ){
303305 # construct read classes for each chromosome seperately
304306 se <- lowMemoryConstructReadClasses(readGrgList , genomeSequence ,
305- annotations , stranded , verbose ," TODO " , fusionMode )
307+ annotations , stranded , verbose , runName , fusionMode )
306308 } else {
307309 unlisted_junctions <- unlistIntrons(readGrgList , use.ids = TRUE )
308310 uniqueJunctions <- isore.constructJunctionTables(unlisted_junctions ,
309311 annotations ,genomeSequence , stranded = stranded , verbose = verbose )
310312 se <- isore.constructReadClasses(readGrgList ,
311- unlisted_junctions , uniqueJunctions , runName = " TODO " ,
313+ unlisted_junctions , uniqueJunctions , runName = runName ,
312314 annotations , stranded , verbose )
313315
314316 }
@@ -336,21 +338,22 @@ constructReadClasses <- function(readGrgList, genomeSequence, annotations,
336338# ' Low memory mode for construct read classes (processByChromosome)
337339# ' @noRd
338340lowMemoryConstructReadClasses <- function (readGrgList , genomeSequence ,
339- annotations , stranded , verbose ,bam.file , fusionMode = FALSE ){
341+ annotations , stranded , verbose , bam.file , fusionMode = FALSE ){
340342 if (fusionMode ){
341343 readGrgList <- list (readGrgList )
342344 names(readGrgList ) <- c(" fusion" )
343345 } else {
344346 readGrgList <- split(readGrgList , getChrFromGrList(readGrgList ))
345347 }
348+ runName <- names(bam.file )[1 ]
346349 se <- lapply(names(readGrgList ),FUN = function (i ){
347350 if (length(readGrgList [[i ]]) == 0 ) return (NULL )
348351 # create error and strand corrected junction tables
349352 unlisted_junctions <- unlistIntrons(readGrgList [[i ]], use.ids = TRUE )
350353 uniqueJunctions <- isore.constructJunctionTables(unlisted_junctions ,
351354 annotations ,genomeSequence , stranded = stranded , verbose = verbose )
352355 se.temp <- isore.constructReadClasses(readGrgList [[i ]],
353- unlisted_junctions , uniqueJunctions , runName = " TODO " ,
356+ unlisted_junctions , uniqueJunctions , runName = runName ,
354357 annotations , stranded , verbose )
355358 return (se.temp )
356359 })
@@ -385,10 +388,12 @@ splitReadClassFiles = function(readClassFile){
385388 distTable <- metadata(metadata(readClassFile )$ readClassDist )$ distTable
386389 eqClasses <- distTable %> % group_by(eqClassById ) %> %
387390 distinct(eqClassById , readCount ,GENEID , totalWidth , firstExonWidth , .keep_all = TRUE )
388- eqClasses $ sampleIDs <- rowData(readClassFile )$ sampleIDs [match(eqClasses $ readClassId , rownames(readClassFile ))]
391+ eqClasses $ columnIds <- rowData(readClassFile )$ columnIds [match(eqClasses $ readClassId , rownames(readClassFile ))]
389392 eqClasses <- eqClasses %> % summarise(nobs = sum(readCount ),
390- sampleIDs = list (unlist(sampleIDs )))
391- counts.table <- tableFunction(eqClasses $ sampleIDs )
393+ columnIds = list (unlist(columnIds )))
394+ counts.table <- tableFunction(eqClasses $ columnIds )
395+ metadata(readClassFile )$ columnIds <- lapply(counts.table , function (x ) as.numeric(names(x )))
396+ metadata(readClassFile )$ columnCounts <- lapply(counts.table , function (x ) as.numeric(x ))
392397 counts <- sparseMatrix(
393398 i = rep(seq_along(counts.table ), lengths(counts.table )),
394399 j = as.numeric(names(unlist(counts.table ))),
@@ -397,14 +402,14 @@ splitReadClassFiles = function(readClassFile){
397402 # incompatible counts
398403 distTable <- metadata(metadata(readClassFile )$ readClassDist )$ distTable.incompatible
399404 if (nrow(distTable )== 0 ) {
400- counts.incompatible <- sparseMatrix(i = 1 , j = 1 , x = 0 ,
401- dims = c(1 , length(metadata(readClassFile )$ sampleData $ id )))
402- rownames(counts.incompatible ) <- " TODO "
405+ counts.incompatible <- sparseMatrix(i = integer( 0 ) , j = integer( 0 ) , x = numeric ( 0 ) ,
406+ dims = c(0 , length(metadata(readClassFile )$ sampleData $ id )))
407+ rownames(counts.incompatible ) <- character ( 0 )
403408 } else {
404- distTable $ sampleIDs <- rowData(readClassFile )$ sampleIDs [match(distTable $ readClassId , rownames(readClassFile ))]
409+ distTable $ columnIds <- rowData(readClassFile )$ columnIds [match(distTable $ readClassId , rownames(readClassFile ))]
405410 distTable <- distTable %> % group_by(GENEID.i ) %> % summarise(counts = sum(readCount ),
406- sampleIDs = list (unlist(sampleIDs )))
407- counts.table <- lapply(distTable $ sampleIDs , FUN = function (x ){table(x )})
411+ columnIds = list (unlist(columnIds )))
412+ counts.table <- lapply(distTable $ columnIds , FUN = function (x ){table(x )})
408413 counts.incompatible <- sparseMatrix(
409414 i = rep(seq_along(counts.table ), lengths(counts.table )),
410415 j = as.numeric(names(unlist(counts.table ))),
@@ -416,7 +421,6 @@ splitReadClassFiles = function(readClassFile){
416421 colnames(counts ) <- metadata(readClassFile )$ sampleData $ id
417422 metadata(readClassFile )$ eqClassById <- eqClasses $ eqClassById
418423 # rownames(counts) = eqClasses$eqClassById
419- metadata(readClassFile )$ countMatrix <- counts
420424 metadata(readClassFile )$ incompatibleCountMatrix <- counts.incompatible
421425 return (readClassFile )
422426}
@@ -426,7 +430,7 @@ splitReadClassFiles = function(readClassFile){
426430# ' @importFrom Matrix
427431# ' @noRd
428432splitReadClassFilesByRC <- function (readClassFile ){
429- counts.table <- tableFunction(rowData(readClassFile )$ sampleIDs )
433+ counts.table <- tableFunction(rowData(readClassFile )$ columnIds )
430434 counts <- sparseMatrix(
431435 i = rep(seq_along(counts.table ), lengths(counts.table )),
432436 j = as.numeric(names(unlist(counts.table ))),
0 commit comments