Closed siberianisaev closed 2 years ago
Found solution for it:
library(tools)
library(here)
library(reticulate)
use_virtualenv(here::here(".venv"))
library(Seurat)
library(sceasy)
ad <- reticulate::import("anndata", convert = FALSE) # ADDED
data_folder <- here::here("tests/data")
anndata_file_name = "plateletOutput.h5ad"
test_that("AnnData to Seurat conversion", {
anndata_path <- paste(data_folder, "/", anndata_file_name, sep = "")
seurat_path <- paste(data_folder, "/", file_path_sans_ext(anndata_file_name), ".rds", sep = "")
sceasy::convertFormat(anndata_path, from = "anndata", to = "seurat", outFile = seurat_path)
seurat_object <- readRDS(seurat_path)
expect_false(is.null(seurat_object))
ad_object <- ad$read_h5ad(anndata_path, backed="r") # UPDATED
expect_false(is.null(ad_object))
})
This is interesting
I didn't know that the creators of ScanPy made an R package called anndata
: https://cran.r-project.org/web/packages/anndata/index.html
I think that's the source of the confusion here ---- I hadn't realized the ScanPy authors created this: https://github.com/dynverse/anndata
The python package must be loaded via reticulate:
anndata <- reticulate::import('anndata')
and library(anndata)
will not work for conversions in the sceasy workflow
It's possible we should add a clarifying remark in the README for new users trying to figure out this whole Python/R mess in single-cell genomics.
CC @nh3 @wikiselev @mckinsel
Hello, I found the case where Sceasy is NOT working (test h5ad file is not important, please use any one):
Output:
Similar code. The case where Sceasy is working:
Output
Difference:
Could you please take a look?