Bioinformatics/Troubleshooting
001. [R] LoadH5Seurat: Error in sparseMatrix(i = x[["indices"]][] + 1, p = x[["indptr"]][], x = x[["data"]][], :'dims' must contain all (i,j) pairs
life_is_egg
2024. 9. 19. 17:47
반응형
single cell 분석 시 파이썬과 R에서 사용하는 object 형태가 다르다. seurat을 anndata로 변환하거나 또는 그 반대로 변환할 때 여러 에러가 종종 발생한다. 여러 패키지 중에 SeuratDisk를 자주 사용하는 편인데 다른 패키지를 추천하는 경우도 있긴 하다. 하지만 패키지를 변경하기 귀찮고... 에러가 뜰 때마다 에러메세지 검색하면서 해결하기 귀찮아서 정리하는 글이다.
🖥️ 코드
### Convert from h5ad to Seurat ----
library(Seurat)
library(glue)
library(SeuratDisk)
dirdata <- "~/data/"
Convert(glue("{dirdata}adata.h5ad"), dest = "h5seurat", assay = "RNA", overwrite = TRUE)
seurat <- LoadH5Seurat(glue("{dirdata}adata.h5seurat"), assays = "RNA", meta.data = FALSE)
🤯 에러메세지
Validating h5Seurat file
Initializing RNA with data
Error in sparseMatrix(i = x[["indices"]][] + 1, p = x[["indptr"]][], x = x[["data"]][], :
'dims' must contain all (i,j) pairs
⭐ 해결방법
1. 파이썬에서 scipy 패키지를 이용해 matrix 형태를 바꿔주고 h5ad 로 저장한다.
adata.X = scipy.sparse.csr_matrix(adata.X)
2. 다시 R에서 h5ad를 seurat으로 변환하는 코드 돌리면 성공!
🚩참고
반응형