Closed mossconfuse closed 1 year ago
Can you show the full code you're using and output of sessionInfo()
?
pacman::p_load(
'devtools',
'tidyverse',
'Seurat',
'SeuratObject',
'Signac',
'GenomicRanges',
'BiocManager',
'BiocInstaller',
'chromVAR',
'BSgenome.Ppatens.v3.3',
'JASPAR2022',
'TFBSTools',
'motifmatchr'
)
load("Saved RObjects/PreprocessedSeuratImage2.RData") #I generate my Seurat object on our campus server but import it here. I can produce coveragePlots and WNN UMAPS without hassle
pfm <- getMatrixSet(
x = JASPAR2022,
opts = list(collection = "CORE", tax_group = 'plants', all_versions = FALSE)
)
mySeurat <- AddMotifs(
object = mySeurat,
genome = BSgenome.Ppatens.v3.3,
pfm = pfm
)
DefaultAssay(mySeurat) <- "peaks"
mySeurat <- RegionStats(mySeurat, genome = BSgenome.Ppatens.v3.3)
da_peaks <- FindMarkers(
object = mySeurat,
ident.1 = c('1','3'),
only.pos = TRUE,
test.use = 'LR',
min.pct = 0.05,
latent.vars = 'nCount_peaks'
)
top.da.peak <- rownames(da_peaks[da_peaks$p_val < 0.005, ])
enriched.motifs <- FindMotifs(
object = mySeurat,
features = top.da.peak
#background = peaks.matched
)
And the sessionInfo():
> sessionInfo()
R version 4.2.2 (2022-10-31)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Ventura 13.2.1
Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats4 stats graphics grDevices utils datasets methods base
other attached packages:
[1] motifmatchr_1.20.0 TFBSTools_1.36.0 JASPAR2022_0.99.7 BiocFileCache_2.6.1
[5] dbplyr_2.3.2 BSgenome.Ppatens.v3.3_1.0.0 BSgenome_1.66.3 rtracklayer_1.58.0
[9] Biostrings_2.66.0 XVector_0.38.0 chromVAR_1.20.2 BiocInstaller_1.12.1
[13] BiocManager_1.30.20 GenomicRanges_1.50.2 GenomeInfoDb_1.34.9 IRanges_2.32.0
[17] S4Vectors_0.36.2 BiocGenerics_0.44.0 Signac_1.9.0 Seurat_4.9.9.9041
[21] SeuratObject_4.9.9.9083 sp_1.6-0 lubridate_1.9.2 forcats_1.0.0
[25] stringr_1.5.0 dplyr_1.1.1 purrr_1.0.1 readr_2.1.4
[29] tidyr_1.3.0 tibble_3.2.1 ggplot2_3.4.2 tidyverse_2.0.0
[33] devtools_2.4.5 usethis_2.1.6
loaded via a namespace (and not attached):
[1] pacman_0.5.1 utf8_1.2.3 R.utils_2.12.2 spatstat.explore_3.1-0
[5] reticulate_1.28 tidyselect_1.2.0 AnnotationDbi_1.60.2 poweRlaw_0.70.6
[9] RSQLite_2.3.1 htmlwidgets_1.6.2 grid_4.2.2 BiocParallel_1.32.6
[13] Rtsne_0.16 munsell_0.5.0 codetools_0.2-19 ica_1.0-3
[17] DT_0.27 future_1.32.0 miniUI_0.1.1.1 withr_2.5.0
[21] spatstat.random_3.1-4 colorspace_2.1-0 progressr_0.13.0 filelock_1.0.2
[25] Biobase_2.58.0 knitr_1.42 rstudioapi_0.14 ROCR_1.0-11
[29] tensor_1.5 listenv_0.9.0 labeling_0.4.2 MatrixGenerics_1.10.0
[33] GenomeInfoDbData_1.2.9 harmony_0.1.1 polyclip_1.10-4 farver_2.1.1
[37] bit64_4.0.5 parallelly_1.35.0 vctrs_0.6.1 generics_0.1.3
[41] xfun_0.38 timechange_0.2.0 R6_2.5.1 bitops_1.0-7
[45] spatstat.utils_3.0-2 cachem_1.0.7 DelayedArray_0.24.0 BiocIO_1.8.0
[49] promises_1.2.0.1 scales_1.2.1 gtable_0.3.3 globals_0.16.2
[53] processx_3.8.0 goftest_1.2-3 spam_2.9-1 seqLogo_1.64.0
[57] rlang_1.1.0 RcppRoll_0.3.0 splines_4.2.2 lazyeval_0.2.2
[61] spatstat.geom_3.1-0 yaml_2.3.7 reshape2_1.4.4 abind_1.4-5
[65] httpuv_1.6.9 tools_4.2.2 ellipsis_0.3.2 RColorBrewer_1.1-3
[69] sessioninfo_1.2.2 ggridges_0.5.4 Rcpp_1.0.10 plyr_1.8.8
[73] zlibbioc_1.44.0 RCurl_1.98-1.12 ps_1.7.4 prettyunits_1.1.1
[77] deldir_1.0-6 pbapply_1.7-0 cowplot_1.1.1 urlchecker_1.0.1
[81] zoo_1.8-12 SummarizedExperiment_1.28.0 ggrepel_0.9.3 cluster_2.1.4
[85] fs_1.6.1 magrittr_2.0.3 data.table_1.14.8 RSpectra_0.16-1
[89] scattermore_0.8 lmtest_0.9-40 RANN_2.6.1 fitdistrplus_1.1-8
[93] matrixStats_0.63.0 pkgload_1.3.2 hms_1.1.3 patchwork_1.1.2
[97] mime_0.12 evaluate_0.20 xtable_1.8-4 XML_3.99-0.14
[101] fastDummies_1.6.3 gridExtra_2.3 compiler_4.2.2 KernSmooth_2.23-20
[105] crayon_1.5.2 R.oo_1.25.0 htmltools_0.5.5 later_1.3.0
[109] tzdb_0.3.0 DBI_1.1.3 rappdirs_0.3.3 MASS_7.3-58.3
[113] Matrix_1.5-4 cli_3.6.1 R.methodsS3_1.8.2 parallel_4.2.2
[117] dotCall64_1.0-2 igraph_1.4.2 pkgconfig_2.0.3 TFMPvalue_0.0.9
[121] GenomicAlignments_1.34.1 plotly_4.10.1 spatstat.sparse_3.0-1 annotate_1.76.0
[125] DirichletMultinomial_1.40.0 callr_3.7.3 digest_0.6.31 pracma_2.4.2
[129] sctransform_0.3.5 RcppAnnoy_0.0.20 CNEr_1.34.0 spatstat.data_3.0-1
[133] rmarkdown_2.21 leiden_0.4.3 fastmatch_1.1-3 uwot_0.1.14
[137] curl_5.0.0 restfulr_0.0.15 gtools_3.9.4 shiny_1.7.4
[141] Rsamtools_2.14.0 rjson_0.2.21 lifecycle_1.0.3 nlme_3.1-162
[145] jsonlite_1.8.4 viridisLite_0.4.1 fansi_1.0.4 pillar_1.9.0
[149] lattice_0.21-8 GO.db_3.16.0 KEGGREST_1.38.0 fastmap_1.1.1
[153] httr_1.4.5 pkgbuild_1.4.0 survival_3.5-5 glue_1.6.2
[157] remotes_2.4.2 png_0.1-8 bit_4.0.5 stringi_1.7.12
[161] profvis_0.3.7 blob_1.2.4 RcppHNSW_0.4.1 caTools_1.18.2
[165] memoise_2.0.1 irlba_2.3.5.1 future.apply_1.10.0
I can also show the R script I used to generate the Seurat object on our server, but it's a lot:
saveName <- "PreprocessedSeurat"
requiredPackages <- c(
'BSgenome.Ppatens.v3.3',
'tidyverse',
'Seurat',
'SeuratDisk',
'SeuratData',
'Signac',
'SeuratObject',
'rtracklayer',
'hdf5r',
'ggplot2',
'AnnotationFilter',
'harmony',
'BiocGenerics',
'GenomeInfoDb',
'GenomicFeatures',
'GenomicRanges',
'IRanges',
'Rsamtools',
'S4Vectors',
'TFBSTools',
'ggbio',
'motifmatchr',
'AnnotationDbi',
'R.utils',
'qlcMatrix',
'devtools',
'data.table',
'presto'
)
setRepositories(ind=1:3)
for (packet in requiredPackages)
{
if (!require(packet, character.only = T)) install.packages(packet, repos="http://cran.us.r-project.org",lib="/mnt/gpfsA/home/devil/R_packages")
print(warnings())
}
rm(packet, requiredPackages)
#######################################################
# Load Annotation
#######################################################
tryCatch( gtf <- rtracklayer::import('/pathTo/reference/Ppatens_v3-3/genes/genes.gtf'),
error = function(e) { gtf <- rtracklayer::import(gunzip('/pathTo/reference/Ppatens_v3-3/genes/genes.gtf.gz', remove = F))}
)
gene.coords <- gtf
head(gene.coords,20)
gene.coords$gene_biotype <- "protein_coding"
gene.coords$gene_id <- str_replace_all(gene.coords$gene_id, "_", "-")
gene.coords$gene_name <- str_replace_all(gene.coords$gene_id, "_", "-")
gene.coords$tx_id <- gene.coords$transcript_id
gene.coords <- setNames(gene.coords, gene.coords$gene_id)
genome(gene.coords) <- "Assembly v3.3"
cds <- gene.coords[gene.coords$type == 'CDS']
cds$type <- "cds"
utr <- gene.coords[gene.coords$type %>% str_detect("utr")]
utr$type <- "utr"
annotation <- c(gene.coords[gene.coords$type == 'gene'], gene.coords[gene.coords$type == 'exon'], cds, utr)
rm(gtf,gene.coords, cds, utr)
#######################################################
# Create Seurat
#######################################################
experiment = c("Wt_T00","Wt_T06","Wt_T12","ste_T00","ste_T06","ste_T12")
inputdata <-Read10X_h5
mySeurat <- CreateSeuratObject
for(sample in experiment){
print(paste0("/myPath/runCellRanger-arc_Count_2022_12_26",sample,"/outs/filtered_feature_bc_matrix.h5"))
inputdata <- Read10X_h5(paste0("/myPath/runCellRanger-arc_Count_2022_12_26",sample,"/outs/filtered_feature_bc_matrix.h5"))
# extract RNA and ATAC data
rna_counts <- inputdata$`Gene Expression`
atac_counts <- inputdata$Peaks
# Create Seurat object (P. patens single nuclei)
sample_seurat <- CreateSeuratObject(counts = rna_counts, project = sample)
sample_seurat[["percent.mt"]] <- PercentageFeatureSet(sample_seurat, pattern = "^MT-")
# Add the ATAC-seq data
# we'll only use peaks in standard chromosomes
grange.counts <- StringToGRanges(rownames(atac_counts), sep = c(":", "-"))
grange.use <- seqnames(grange.counts) %in% standardChromosomes(grange.counts)
atac_counts <- atac_counts[as.vector(grange.use), ]
frag.file <- paste0("/myPath/runCellRanger-arc_Count_2022_12_26",sample,"/outs/atac_fragments.tsv.gz")
sample_seurat[["ATAC"]] <- CreateChromatinAssay(
counts = atac_counts,
sep = c(":", "-"),
fragments = frag.file,
min.cells = 10,
annotation = annotation
)
assign(paste0(sample,"_seurat"), sample_seurat)
rm(rna_counts, atac_counts, grange.counts, grange.use, frag.file, inputdata, sample_seurat)
}
mySeurat <- merge(Wt_T00_seurat, y = c(Wt_T06_seurat, Wt_T12_seurat, ste_T00_seurat, ste_T06_seurat, ste_T12_seurat), add.cell.ids = experiment, project = "mySeurat")
rm(list=ls(pattern = '_seurat$'))
#######################################################
# New Metadata
#######################################################
mySeurat$genotype <-mySeurat$orig.ident |> str_split("_", simplify = T) %>% .[,1]
mySeurat$genotype <- str_replace_all(mySeurat$genotype, "ste", "stemin\u394")
mySeurat$genotype <- str_replace_all(mySeurat$genotype, "Wt", "wild type")
mySeurat$time <- mySeurat$orig.ident |> str_split("_", simplify = T) %>% .[,2] %>% str_remove("T") %>% as.numeric()
#######################################################
# TSS Enrichment
#######################################################
DefaultAssay(mySeurat) <- "ATAC"
mySeurat <- NucleosomeSignal(mySeurat, n = ncol(mySeurat)*5000,verbose = TRUE)
mySeurat <- TSSEnrichment(mySeurat, fast = TRUE)
#######################################################
# Filtering data based on count:
# low count or high count cells are discarded
#######################################################
mySeurat <- subset(
x = mySeurat,
subset = nCount_ATAC > 5000 &
nCount_RNA < 20000 &
nCount_RNA > 1000 &
TSS.enrichment > 1
)
#######################################################
# Peak Calling
#######################################################
peaks <- CallPeaks(mySeurat, macs2.path = "/myPath/miniconda3/envs/single_cell/bin/macs2")
#discard peaks too close to edge of scaffold
peaks <- peaks[as.data.frame(ranges(peaks))$start >= 2,]
# quantify counts in each peak
macs2_counts <- FeatureMatrix(
fragments = Fragments(mySeurat),
features = peaks,
cells = colnames(mySeurat)
)
mySeurat[["peaks"]] <- CreateChromatinAssay(
counts = macs2_counts,
fragments = Fragments(mySeurat),
annotation = annotation
)
rm(peaks, macs2_counts)
#######################################################
# Normalise and reduce GEx data
#######################################################
DefaultAssay(mySeurat) <- "RNA"
mySeurat <- SCTransform(mySeurat, verbose = FALSE)
mySeurat <- RunPCA(mySeurat)
#remove batch effects
# Seems the issue is, I first have to run it as just 'harmony', because trying to save it by a different name first
mySeurat <- RunHarmony(mySeurat, group.by.vars = "orig.ident", assay.use="SCT")
mySeurat@reductions$sct_harmony <- mySeurat@reductions$harmony
mySeurat[['harmony']] <- NULL
mySeurat <- RunUMAP(
mySeurat, dims = 1:50,
min.dist = 0.01,
n.neighbors = 50,
reduction='sct_harmony',
reduction.name = 'sct_harmony_UMAP',
reduction.key = 'gexUMAP_')
#######################################################
# DNA accessibility data processing
#######################################################
DefaultAssay(mySeurat) <- "peaks"
mySeurat <- RunTFIDF(mySeurat)
mySeurat <- FindTopFeatures(mySeurat, min.cutoff = 'q0')
mySeurat <- RunSVD(mySeurat)
#remove batch effects
mySeurat <- RunHarmony(mySeurat,group.by.vars = "orig.ident",
assay.use = "peaks",
reduction = "lsi",
project.dim = FALSE,
reduction.save = "lsi_harmony"
)
#DepthCor(mySeurat, reduction = "lsi_harmony")
mySeurat <- RunUMAP(
mySeurat,
reduction = 'lsi_harmony',
dims = 1:50,
min.dist = 0.0001,
n.neighbors = 6,
reduction.name = "umap.atac",
reduction.key = "atacUMAP_")
#######################################################
# UMAP Visualisations
#######################################################
# build a joint neighbor graph using both assays
mySeurat <- FindMultiModalNeighbors(
object = mySeurat,
reduction.list = list("sct_harmony", "lsi_harmony"),
modality.weight.name = "RNA.weight",
dims.list = list(1:50, 1:50)
)
# build a joint UMAP visualization
mySeurat <- RunUMAP(
object = mySeurat,
n.neighbors = 20,
min.dist = 0.001,
nn.name = "weighted.nn",
reduction.name = "wnn.umap",
reduction.key = "wnnUMAP_"
)
mySeurat <- FindClusters(
mySeurat,
graph.name = "wsnn",
algorithm = 3,
resolution = 1,
verbose = FALSE
)
#######################################################
# Link Peaks
#######################################################
DefaultAssay(mySeurat) <- "peaks"
# first compute the GC content for each peak
mySeurat <- RegionStats(mySeurat, genome = BSgenome.Ppatens.v3.3)
# link peaks to genes
mySeurat <- LinkPeaks(
object = mySeurat,
peak.assay = "peaks",
expression.assay = "SCT",
verbose = TRUE
)
save.image(file = paste0(saveName,"Image.RData"))
I think the issue is you need to use the seurat5
branch of Signac if you want to use Seurat v5. They changed how meta features are accessed in v5, so some updates are needed for things to run properly. Can you try installing the seurat5
branch and see if you still have an issue?
devtools::install_github("stuart-lab/signac", ref = "seurat5")
Thank you. I was able to solve the problem by running
devtools::install_github("stuart-lab/signac", ref = "seurat5")
as you recommended. I also needed to run
ppsnV5 <- split(ppsn, f = ppsn@meta.data$orig.ident)
which yielded the seurat v5 object needed as input for FindMotif
. Your help was invaluable.
Just some more detail, I can run
DefaultAssay(ppsn) <- "ATAC"
ppsnV5 <- split(ppsn, f = ppsn@meta.data$orig.ident)
DefaultAssay(ppsnV5) <- "peaks"
ppsnV5 <- AddMotifs(object = ppsnV5, genome = BSgenome.Ppatens.v3.3, pfm = pfm)
or
DefaultAssay(ppsn) <- "peaks"
ppsnV5 <- split(ppsn, f = ppsn@meta.data$orig.ident)
DefaultAssay(ppsnV5) <- "ATAC"
ppsnV5 <- AddMotifs(object = ppsnV5, genome = BSgenome.Ppatens.v3.3, pfm = pfm)
but I cannot have the DefaultAssay be the same for the split
and the AddMotifs
functions, else I get the error:
Building motif matrix
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function 'matchMotifs' for signature '"PWMatrixList", "Assay5"'
packageVersion('Seurat') [1] '5.0.3'
but still error, plz
Error in MatchRegionStats(meta.feature = meta.feature[open.peaks, ], query.feature = meta.feature[significant_peaks, : meta.feature should be a data.frame Traceback:
R version 4.3.1 (2023-06-16) Platform: x86_64-conda-linux-gnu (64-bit) Running under: Ubuntu 22.04.3 LTS
Matrix products: default BLAS/LAPACK: /home/wxz/software/mambaforge/envs/signac/lib/libopenblasp-r0.3.24.so; LAPACK version 3.11.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=zh_CN.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=zh_CN.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=zh_CN.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=zh_CN.UTF-8 LC_IDENTIFICATION=C
time zone: Asia/Shanghai tzcode source: system (glibc)
attached base packages: [1] grid splines stats4 parallel stats graphics grDevices [8] utils datasets methods base
other attached packages:
[1] BSgenome.Hsapiens.UCSC.hg38_1.4.5 BSgenome_1.70.1
[3] rtracklayer_1.62.0 BiocIO_1.12.0
[5] Biostrings_2.70.1 XVector_0.42.0
[7] JASPAR2020_0.99.10 Signac_1.12.0
[9] future_1.33.0 SeuratObject_5.0.0
[11] Seurat_5.0.3 JASPAR2024_0.99.6
[13] BiocFileCache_2.10.1 dbplyr_2.4.0
[15] TFBSTools_1.40.0 dendextend_1.17.1
[17] ape_5.7-1 gridExtra_2.3
[19] mixtools_2.0.0 pheatmap_1.0.12
[21] HiClimR_2.2.1 dbscan_1.1-12
[23] ggplotify_0.1.2 scales_1.3.0
[25] diptest_0.77-0 qs_0.25.7
[27] patchwork_1.1.3 ggrepel_0.9.4
[29] cicero_1.20.0 Gviz_1.46.1
[31] monocle_2.30.0 DDRTree_0.1.5
[33] VGAM_1.1-9 Biobase_2.62.0
[35] GenomicRanges_1.54.1 GenomeInfoDb_1.38.1
[37] IRanges_2.36.0 S4Vectors_0.40.2
[39] BiocGenerics_0.48.1 BuenColors_0.5.6
[41] MASS_7.3-60 RColorBrewer_1.1-3
[43] lubridate_1.9.3 forcats_1.0.0
[45] stringr_1.5.0 dplyr_1.1.3
[47] purrr_1.0.2 readr_2.1.4
[49] tidyr_1.3.0 tibble_3.2.1
[51] tidyverse_2.0.0 ggplot2_3.4.4
[53] umap_0.2.10.0 irlba_2.3.5.1
[55] densityClust_0.3.2 Rtsne_0.16
[57] proxy_0.4-27 Matrix_1.6-5
[59] data.table_1.14.8
loaded via a namespace (and not attached):
[1] R.methodsS3_1.8.2 dichromat_2.0-0.1
[3] vroom_1.6.4 progress_1.2.2
[5] nnet_7.3-19 poweRlaw_0.80.0
[7] goftest_1.2-3 vctrs_0.6.5
[9] spatstat.random_3.2-1 RApiSerialize_0.1.2
[11] digest_0.6.33 png_0.1-8
[13] IRdisplay_1.1 deldir_1.0-9
[15] parallelly_1.36.0 combinat_0.0-8
[17] reshape2_1.4.4 httpuv_1.6.12
[19] withr_3.0.0 xfun_0.41
[21] ellipsis_0.3.2 survival_3.5-7
[23] memoise_2.0.1 qlcMatrix_0.9.7
[25] ggsci_3.0.0 docopt_0.7.1
[27] zoo_1.8-12 gtools_3.9.4
[29] pbapply_1.7-2 IRkernel_1.3.2
[31] R.oo_1.26.0 Formula_1.2-5
[33] prettyunits_1.2.0 KEGGREST_1.42.0
[35] promises_1.2.1 httr_1.4.7
[37] restfulr_0.0.15 globals_0.16.2
[39] fitdistrplus_1.1-11 stringfish_0.15.7
[41] rstudioapi_0.15.0 miniUI_0.1.1.1
[43] generics_0.1.3 base64enc_0.1-3
[45] sparsesvd_0.2-2 curl_5.1.0
[47] ncdf4_1.22 repr_1.1.6
[49] zlibbioc_1.48.0 polyclip_1.10-6
[51] GenomeInfoDbData_1.2.10 SparseArray_1.2.2
[53] xtable_1.8-4 pracma_2.4.4
[55] evaluate_0.23 S4Arrays_1.2.0
[57] hms_1.1.3 colorspace_2.1-0
[59] filelock_1.0.2 ROCR_1.0-11
[61] reticulate_1.34.0 spatstat.data_3.0-3
[63] magrittr_2.0.3 lmtest_0.9-40
[65] later_1.3.1 viridis_0.6.5
[67] lattice_0.22-5 spatstat.geom_3.2-7
[69] future.apply_1.11.0 scattermore_1.2
[71] XML_3.99-0.14 cowplot_1.1.1
[73] matrixStats_1.0.0 RcppAnnoy_0.0.21
[75] Hmisc_5.1-1 pillar_1.9.0
[77] nlme_3.1-163 caTools_1.18.2
[79] compiler_4.3.1 RSpectra_0.16-1
[81] stringi_1.7.12 tensor_1.5
[83] SummarizedExperiment_1.32.0 GenomicAlignments_1.38.0
[85] plyr_1.8.9 crayon_1.5.2
[87] abind_1.4-5 gridGraphics_0.5-1
[89] sp_2.1-1 bit_4.0.5
[91] fastmatch_1.1-4 codetools_0.2-19
[93] openssl_2.1.1 slam_0.1-50
[95] biovizBase_1.50.0 plotly_4.10.3
[97] mime_0.12 leidenbase_0.1.18
[99] Rcpp_1.0.11 interp_1.1-6
[101] knitr_1.45 blob_1.2.4
[103] utf8_1.2.4 seqLogo_1.68.0
[105] pbdZMQ_0.3-10 AnnotationFilter_1.26.0
[107] fs_1.6.3 listenv_0.9.0
[109] checkmate_2.3.0 statmod_1.5.0
[111] tzdb_0.4.0 pkgconfig_2.0.3
[113] tools_4.3.1 cachem_1.0.8
[115] RSQLite_2.3.2 viridisLite_0.4.2
[117] DBI_1.1.3 fastmap_1.1.1
[119] rmarkdown_2.25 ica_1.0-3
[121] Rsamtools_2.18.0 FNN_1.1.3.2
[123] dotCall64_1.1-0 VariantAnnotation_1.48.1
[125] RANN_2.6.1 rpart_4.1.21
[127] farver_2.1.1 yaml_2.3.7
[129] latticeExtra_0.6-30 MatrixGenerics_1.14.0
[131] foreign_0.8-85 cli_3.6.2
[133] motifmatchr_1.24.0 leiden_0.4.3
[135] lifecycle_1.0.4 uwot_0.1.16
[137] askpass_1.2.0 kernlab_0.9-32
[139] backports_1.4.1 BiocParallel_1.36.0
[141] annotate_1.80.0 timechange_0.2.0
[143] gtable_0.3.4 rjson_0.2.21
[145] ggridges_0.5.4 progressr_0.14.0
[147] limma_3.58.1 jsonlite_1.8.7
[149] bitops_1.0-7 bit64_4.0.5
[151] yulab.utils_0.1.4 spatstat.utils_3.0-4
[153] RcppParallel_5.1.6 CNEr_1.38.0
[155] segmented_2.0-2 R.utils_2.12.3
[157] lazyeval_0.2.2 shiny_1.7.5.1
[159] htmltools_0.5.6.1 GO.db_3.18.0
[161] sctransform_0.4.1 rappdirs_0.3.3
[163] ensembldb_2.26.0 glue_1.7.0
[165] TFMPvalue_0.0.9 spam_2.10-0
[167] RCurl_1.98-1.12 jpeg_0.1-10
[169] igraph_1.5.1 R6_2.5.1
[171] labeling_0.4.3 RcppRoll_0.3.0
[173] HSMMSingleCell_1.22.0 GenomicFeatures_1.54.1
[175] cluster_2.1.4 DirichletMultinomial_1.44.0
[177] DelayedArray_0.28.0 tidyselect_1.2.0
[179] ProtGenerics_1.34.0 htmlTable_2.4.2
[181] xml2_1.3.5 AnnotationDbi_1.64.1
[183] fastICA_1.2-4 munsell_0.5.0
[185] KernSmooth_2.23-22 htmlwidgets_1.6.2
[187] biomaRt_2.58.0 rlang_1.1.3
[189] spatstat.sparse_3.0-3 spatstat.explore_3.2-5
[191] remotes_2.4.2.1 uuid_1.1-1
[193] fansi_1.0.6
I have a merged Seurat object (6 samples) of multiome (GEx and ATAC) data:
I am following the vignette for chromVAR, with my own working BSgenome and a JASPAR2022 position frequency matrix for plants. Everything seems to work (Addmotifs, FindMarkers, AccessiblePeaks, RegionStats), but I get an error with FindMotifs:
When I run:
is seems meta.feature is a dgCMatrix instead of dataframe.
I tried to mess with FindMotifs by copying the function and changing the
meta.feature
tobut now get
But I don't know why:
I don't know how to proceed from here. I suspect brute-forcing
as.data.frame()
was not a solution.