@@ -748,16 +748,18 @@ getPlottingDT <- function(fds, axis=c("row", "col"), type=currentType(fds),
748748 )
749749 dt [, deltaPsi : = obsPsi - predPsi ]
750750
751- # add aberrant information to it
752- aberrantVec <- aberrant(fds , ... , padjVals = dt [,.(padj )],
753- dPsi = dt [,.(deltaPsi )], n = dt [,.(n )],
754- rhoVals = dt [,.(rho )], aggregate = FALSE )
755- dt [,aberrant : = aberrantVec ]
756-
757751 # if requested return gene p values
758752 if (isTRUE(aggregate )){
759- dt <- dt [! is.na(featureID )]
753+ # get gene-level aberrant status
754+ aberrantGeneLevel <- aberrant(fds [, idxcol ], ... , aggregate = TRUE )
755+ aberrantGeneLevel <- melt(
756+ data.table(featureID = rownames(aberrantGeneLevel ),
757+ aberrantGeneLevel ),
758+ value.name = " aberrant" , id.vars = " featureID" ,
759+ variable.name = " sampleID" )
760+
760761 # split featureID into several rows if more than one
762+ dt <- dt [! is.na(featureID )]
761763 dt [, dt_idx : = seq_len(.N )]
762764 dt_tmp <- dt [, splitGenes(featureID ), by = " dt_idx" ]
763765 dt <- dt [dt_tmp $ dt_idx ,]
@@ -780,6 +782,10 @@ getPlottingDT <- function(fds, axis=c("row", "col"), type=currentType(fds),
780782 pvalsGene <- merge(pvalsGene [[1 ]], pvalsGene [[2 ]],
781783 by = c(" featureID" , " sampleID" ))
782784
785+ # merge with gene level aberrant status
786+ pvalsGene <- merge(pvalsGene , aberrantGeneLevel ,
787+ by = c(" featureID" , " sampleID" ))
788+
783789 # merge with gene pval matrix
784790 dt <- merge(dt , pvalsGene , by = c(" featureID" , " sampleID" ))
785791 dt [,`:=`(pval = gene_pval , padj = gene_padj ,
@@ -789,6 +795,12 @@ getPlottingDT <- function(fds, axis=c("row", "col"), type=currentType(fds),
789795 dt <- dt [order(sampleID , featureID , type , - aberrant ,
790796 padj , - abs(deltaPsi ))][
791797 ! duplicated(data.table(sampleID , featureID , type ))]
798+ } else {
799+ # add aberrant information to it
800+ aberrantVec <- aberrant(fds , ... , padjVals = dt [,.(padj )],
801+ dPsi = dt [,.(deltaPsi )], n = dt [,.(n )],
802+ rhoVals = dt [,.(rho )], aggregate = FALSE )
803+ dt [,aberrant : = aberrantVec ]
792804 }
793805
794806 # return object
0 commit comments