Skip to content

Commit

Permalink
Merge branch 'devel' into devel
Browse files Browse the repository at this point in the history
  • Loading branch information
mingl1997 authored Aug 28, 2024
2 parents 728406e + 2ae06c9 commit ff01a6a
Show file tree
Hide file tree
Showing 10 changed files with 291 additions and 215 deletions.
1 change: 1 addition & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ exec/png
^\.github$
^vignettes/articles/*
^images
.dockerignore
7 changes: 7 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.RData
.Rhistory
.git
.gitignore
manifest.json
rsconnect/
.Rproj.user
3 changes: 2 additions & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,8 @@ Imports:
stats,
zellkonverter,
tidyr
RoxygenNote: 7.3.1
zellkonverter
RoxygenNote: 7.3.2
Suggests:
testthat,
Rsubread,
Expand Down
1 change: 1 addition & 0 deletions R/doubletFinder_doubletDetection.R
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,7 @@
#' @seealso \code{\link{runCellQC}}, \code{\link{plotDoubletFinderResults}}
#' @examples
#' data(scExample, package = "singleCellTK")
#' options(future.globals.maxSize = 786432000)
#' sce <- subsetSCECols(sce, colData = "type != 'EmptyDroplet'")
#' sce <- runDoubletFinder(sce)
#' @export
Expand Down
143 changes: 96 additions & 47 deletions R/seuratFunctions.R
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,16 @@
return(componentNames)
}

#' .getSeuratObject
#' Retrieves the Seurat object stored in the input SCE, if exists
#' @param inSCE (sce) object containing the Seurat data, located
#' in inSCE\@\metadata$seurat$obj
#' @return the Seurat object if it exists
#' @noRd
.getSeuratObject <- function(inSCE) {
return(metadata(inSCE)$seurat$obj)
}

#' .addSeuratToMetaDataSCE
#' Adds the input seurat object to the metadata slot of the input sce object
#' (after removing the data matrices)
Expand All @@ -44,25 +54,38 @@
seurat.version <- .getSeuratObjectMajorVersion(seuratObject)

if(seurat.version >= 5.0){
inSCE@metadata$seurat$obj$RNA$"var.features" <-
Seurat::VariableFeatures(object = seuratObject)

# Determine if slot is called "meta.data" or "meta.features
if("meta.data" %in% methods::slotNames(inSCE@metadata$seurat$obj$RNA)) {
inSCE@metadata$seurat$obj$RNA$meta.features <- seuratObject@assays$RNA@meta.data
} else if ("meta.features" %in% methods::slotNames(inSCE@metadata$seurat$obj$RNA)) {
inSCE@metadata$seurat$obj$RNA$meta.features <- seuratObject@assays$RNA@meta.features
}
seuratObject@assays$RNA@layers$counts <- methods::new("dgCMatrix")
seuratObject@assays$RNA@layers$data <- methods::new("dgCMatrix")
seuratObject@assays$RNA@layers$scale.data <- methods::new("dgCMatrix")
inSCE@metadata$seurat$obj <- seuratObject

# add var features if exists
#if (!is.null(Seurat::VariableFeatures(seuratObject)) && length(Seurat::VariableFeatures(seuratObject)) > 0) {
# inSCE@metadata$seurat$obj@assays$RNA$"var.features" <-
# Seurat::VariableFeatures(object = seuratObject)
#}

inSCE@metadata$seurat$obj$meta.data <- seuratObject@meta.data
#inSCE@metadata$seurat$obj@assays$RNA@layers$counts <- methods::new("dgCMatrix")
#inSCE@metadata$seurat$obj@assays$RNA@layers$data <- methods::new("dgCMatrix")
#inSCE@metadata$seurat$obj@assays$RNA@layers$scale.data <- matrix()

# Determine if slot is called "meta.data" or "meta.features"
if("meta.data" %in% methods::slotNames(seuratObject@assays$RNA)) {
inSCE@metadata$seurat$obj@assays$RNA@meta.data <- seuratObject@assays$RNA@meta.data
} else if ("meta.features" %in% methods::slotNames(seuratObject@assays$RNA)) {
inSCE@metadata$seurat$obj@assays$RNA@meta.features <- seuratObject@assays$RNA@meta.features
}

inSCE@metadata$seurat$obj$commands <- seuratObject@commands
inSCE@metadata$seurat$obj@meta.data <- seuratObject@meta.data

inSCE@metadata$seurat$obj$reductions$pca <- seuratObject@reductions$pca
inSCE@metadata$seurat$obj$reductions$ica <- seuratObject@reductions$ica
inSCE@metadata$seurat$obj$reductions$tsne <- seuratObject@reductions$tsne
inSCE@metadata$seurat$obj$reductions$umap <- seuratObject@reductions$umap
inSCE@metadata$seurat$obj@commands <- seuratObject@commands

inSCE@metadata$seurat$obj@reductions$pca <- seuratObject@reductions$pca
inSCE@metadata$seurat$obj@reductions$ica <- seuratObject@reductions$ica
inSCE@metadata$seurat$obj@reductions$tsne <- seuratObject@reductions$tsne
inSCE@metadata$seurat$obj@reductions$umap <- seuratObject@reductions$umap

}
else{
seuratObject@assays$RNA@counts <- methods::new("dgCMatrix")
Expand Down Expand Up @@ -541,6 +564,7 @@ runSeuratICA <-
verbose = FALSE) {
params <- as.list(environment())
params$inSCE <- NULL

if (!isTRUE(scale)) {
# If not doing a scaling, put useAssay as scaled as RunPCA need it
seuratObject <-
Expand Down Expand Up @@ -618,7 +642,6 @@ runSeuratJackStraw <- function(inSCE,
externalReduction = NULL) {
seuratObject <- convertSCEToSeurat(inSCE, normAssay = useAssay)
seuratObject <- Seurat::ScaleData(seuratObject)

if (!is.null(externalReduction)) {
#convert (_) to (-) as required by Seurat

Expand Down Expand Up @@ -1065,13 +1088,16 @@ runSeuratUMAP <- function(inSCE,
seurat.version <- .getSeuratObjectMajorVersion(seuratObject)

if(seurat.version >= 5.0){
if (length(seuratObject@assays$RNA@misc$var.features) > 0) {
return(seuratObject@assays$RNA@misc$var.features[seq(numberOfFeatures)])
if (length(SeuratObject::Features(seuratObject)) > 0) {
return(SeuratObject::Features(seuratObject)[seq(numberOfFeatures)])
}
#if (length(seuratObject@assays$RNA@misc$var.features) > 0) {
# return(seuratObject@assays$RNA@misc$var.features[seq(numberOfFeatures)])
#}
}
else{
if (length(seuratObject@assays$RNA@var.features) > 0) {
return(seuratObject@assays$RNA@var.features[seq(numberOfFeatures)])
if (length(seuratObject@assays$RNA@meta.data$var.features) > 0) {
return(seuratObject@assays$RNA@meta.data$var.features[seq(numberOfFeatures)])
}
}
}
Expand Down Expand Up @@ -1551,46 +1577,57 @@ convertSCEToSeurat <-

if(seurat.version >= 5.0){
if (!is.null(inSCE@metadata$seurat$obj)) {
if (length(inSCE@metadata$seurat$obj$RNA$"var.features") > 0) {
seuratObject@assays$RNA@misc$"var.features" <-
inSCE@metadata$seurat$obj$RNA$"var.features"
# what is it looking for here? sequence? idk

if ((nrow(inSCE@metadata$seurat$obj@assays$RNA) > 0 && ncol(inSCE@metadata$seurat$obj@assays$RNA) > 0) && !is.null(inSCE@metadata$seurat$obj@assays$RNA@meta.data$var.features)) {
seuratObject@assays$RNA@meta.data$var.features <-
inSCE@metadata$seurat$obj@assays$RNA@meta.data$var.features
}
if (!is.null(inSCE@metadata$seurat$obj$reductions$pca)) {

# if no, then set a new matrix to empty
# if (is.null(inSCE@metadata$seurat$obj@assays$RNA@meta.data$var.features)) {
# seuratObject@assays$RNA@meta.data$var.features <-
# data.frame(matrix(NA, nrow = nrow(inSCE@metadata$seurat$obj@assays$RNA), ncol = ncol(inSCE@metadata$seurat$obj@assays$RNA)))
# }

if (!is.null(inSCE@metadata$seurat$obj@reductions) && !is.null(inSCE@metadata$seurat$obj@reductions$pca)) {
seuratObject@reductions$pca <-
inSCE@metadata$seurat$obj$reductions$pca
inSCE@metadata$seurat$obj@reductions$pca
}
if (!is.null(inSCE@metadata$seurat$obj$RNA$meta.features)) {
if ((nrow(inSCE@metadata$seurat$obj@assays$RNA) > 0 && ncol(inSCE@metadata$seurat$obj@assays$RNA) > 0) && !is.null(inSCE@metadata$seurat$obj@assays$RNA@meta.data)) {
seuratObject@assays$RNA@meta.data <-
inSCE@metadata$seurat$obj$RNA$meta.features
inSCE@metadata$seurat$obj@assays$RNA@meta.data
#seuratObject <-
# SeuratObject::AddMetaData(seuratObject, inSCE@metadata$seurat$obj@assays$RNA@meta.data)
}
if (!is.null(inSCE@metadata$seurat$obj$reductions$ica)) {
if (!is.null(inSCE@metadata$seurat$obj@reductions$ica)) {
seuratObject@reductions$ica <-
inSCE@metadata$seurat$obj$reductions$ica
inSCE@metadata$seurat$obj@reductions$ica
}
if (!is.null(inSCE@metadata$seurat$obj$reductions$tsne)) {
if (!is.null(inSCE@metadata$seurat$obj@reductions$tsne)) {
seuratObject@reductions$tsne <-
inSCE@metadata$seurat$obj$reductions$tsne
inSCE@metadata$seurat$obj@reductions$tsne
}
if (!is.null(inSCE@metadata$seurat$obj$reductions$umap)) {
if (!is.null(inSCE@metadata$seurat$obj@reductions$umap)) {
seuratObject@reductions$umap <-
inSCE@metadata$seurat$obj$reductions$umap
inSCE@metadata$seurat$obj@reductions$umap
}
if (!is.null(inSCE@metadata$seurat$obj$meta.data)) {
if (!is.null(inSCE@metadata$seurat$obj@meta.data)) {
#seuratObject@meta.data <-
#inSCE@metadata$seurat$obj$meta.data[match(colnames(seuratObject), rownames(inSCE@metadata$seurat$obj$meta.data)),]
seuratObject <-
SeuratObject::AddMetaData(seuratObject, inSCE@metadata$seurat$obj$meta.data[match(colnames(seuratObject), rownames(inSCE@metadata$seurat$obj$meta.data)),])
SeuratObject::AddMetaData(seuratObject, inSCE@metadata$seurat$obj@meta.data[match(colnames(seuratObject), rownames(inSCE@metadata$seurat$obj@meta.data)),])
}
if (!is.null(inSCE@metadata$seurat$obj$commands)) {
seuratObject@commands <- inSCE@metadata$seurat$obj$commands
if (!is.null(inSCE@metadata$seurat$obj@commands)) {
seuratObject@commands <- inSCE@metadata$seurat$obj@commands
}
}
}
else{
if (!is.null(inSCE@metadata$seurat$obj)) {
if (length(inSCE@metadata$seurat$obj@assays$RNA@var.features) > 0) {
seuratObject@assays$RNA@var.features <-
inSCE@metadata$seurat$obj@assays$RNA@var.features
if (length(inSCE@metadata$seurat$obj@assays$RNA@meta.data$var.features) > 0) {
seuratObject@assays$RNA@meta.data$var.features <-
inSCE@metadata$seurat$obj@assays$RNA@meta.data$var.features
}
if (!is.null(inSCE@metadata$seurat$obj@reductions$pca)) {
seuratObject@reductions$pca <-
Expand All @@ -1613,7 +1650,9 @@ convertSCEToSeurat <-
inSCE@metadata$seurat$obj@reductions$umap
}
if (!is.null(inSCE@metadata$seurat$obj@meta.data)) {
seuratObject@meta.data <- inSCE@metadata$seurat$obj@meta.data[match(colnames(seuratObject), rownames(inSCE@metadata$seurat$obj@meta.data)),]
#seuratObject@meta.data <- inSCE@metadata$seurat$obj@meta.data[match(colnames(seuratObject), rownames(inSCE@metadata$seurat$obj@meta.data)),]
seuratObject <-
SeuratObject::AddMetaData(seuratObject, inSCE@metadata$seurat$obj$meta.data[match(colnames(seuratObject), rownames(inSCE@metadata$seurat$obj$meta.data)),])
}
if (!is.null(inSCE@metadata$seurat$obj@commands)) {
seuratObject@commands <- inSCE@metadata$seurat$obj@commands
Expand All @@ -1624,6 +1663,7 @@ convertSCEToSeurat <-
if (!is.null(colData(inSCE)) && copyColData) {
seuratObject@meta.data <-
cbind(seuratObject@meta.data, colData(inSCE))
#seuratObject <- SeuratObject::AddMetaData(seuratObject, colData(inSCE))
}

# Set additional reducedDims from inSCE object if required
Expand Down Expand Up @@ -1776,27 +1816,36 @@ runSeuratSCTransform <- function(inSCE,
#inSCE@metadata$seurat$heatmap_pca <- NULL
}
if (PCA) {
inSCE@metadata$seurat$obj$reductions$pca <- NULL
inSCE@metadata$seurat$obj@reductions$pca <- NULL
}
if (ICA) {
inSCE@metadata$seurat$obj$reductions$ica <- NULL
inSCE@metadata$seurat$obj@reductions$ica <- NULL
}
if (tSNE) {
inSCE@metadata$seurat$obj$reductions$tsne <- NULL
inSCE@metadata$seurat$obj@reductions$tsne <- NULL
}
if (UMAP) {
inSCE@metadata$seurat$obj$reductions$umap <- NULL
inSCE@metadata$seurat$obj@reductions$umap <- NULL
}
if (clusters) {
inSCE@metadata$seurat$obj$meta.data$seurat_clusters <- NULL
}
}
if(methods::is(inSCE@metadata$seurat$obj, "Seurat")) {
if (varFeatures) {
methods::slot(inSCE@metadata$seurat$obj, "assays")[["RNA"]]@var.features <-
logical()
methods::slot(inSCE@metadata$seurat$obj, "assays")[["RNA"]]@meta.features <-
seurat.version <- .getSeuratObjectMajorVersion(inSCE@metadata$seurat$obj)
if (seurat.version >= 5.0) {
#methods::slot(inSCE@metadata$seurat$obj, "assays")[["RNA"]]@meta.data$var.features <-
# logical()
methods::slot(inSCE@metadata$seurat$obj, "assays")[["RNA"]]@meta.data <-
data.frame(row.names = make.unique(gsub("_", "-", rownames(inSCE))))
}
else {
methods::slot(inSCE@metadata$seurat$obj, "assays")[["RNA"]]@var.features <-
logical()
methods::slot(inSCE@metadata$seurat$obj, "assays")[["RNA"]]@meta.features <-
data.frame(row.names = make.unique(gsub("_", "-", rownames(inSCE))))
}
inSCE@metadata$seurat$heatmap_pca <- NULL
}
if (PCA) {
Expand Down
Loading

0 comments on commit ff01a6a

Please sign in to comment.