From 35161521ac3c3ffa212538a9d8dcb11da2ec8b21 Mon Sep 17 00:00:00 2001 From: Lucille Delisle Date: Mon, 14 Oct 2024 15:12:42 +0200 Subject: [PATCH] fix cases when regions are absent from motif.matrix --- R/motifs.R | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/R/motifs.R b/R/motifs.R index eff6919..73c3788 100644 --- a/R/motifs.R +++ b/R/motifs.R @@ -192,11 +192,14 @@ RunChromVAR.ChromatinAssay <- function( warning("Count matrix contains non-integer values. ChromVAR should only be run on integer counts.") } - idx.keep <- rowSums(x = peak.matrix) > 0 - peak.matrix <- peak.matrix[idx.keep, , drop = FALSE] - motif.matrix <- motif.matrix[idx.keep, , drop = FALSE] + regions.keep <- intersect( + rownames(peak.matrix)[rowSums(x = peak.matrix) > 0], + rownames(motif.matrix) + ) + peak.matrix <- peak.matrix[regions.keep, , drop = FALSE] + motif.matrix <- motif.matrix[regions.keep, , drop = FALSE] peak.ranges <- granges(x = object) - peak.ranges <- peak.ranges[idx.keep] + peak.ranges <- peak.ranges[match(regions.keep, rownames(object))] chromvar.obj <- SummarizedExperiment::SummarizedExperiment( assays = list(counts = peak.matrix), rowRanges = peak.ranges