生信笔记生信分析流程单细胞测序专题集合

单细胞-傻瓜式Seurat的rds文件转Scanpy的h5ad文

2020-07-28  本文已影响0人  松鼠菌奶黄包

在Seurat主导的单细胞世界里,Scanpy算是有点小众了。可是坑爹的是自己还必须用scanpy(谁让流程已经搭建好了,数据已经处理一半了;谁让师兄说这个数据量大R带不起来。。。。呵谁知道呢)。

总之,今天要引用合并别人已发文章的单细胞数据(.rds),所以亟需Seurat的RDS文件转Scanpy可读。。开始吧。


第一步 Rstudio上Seurat读取并转为loom文件


library(Seurat)

file <- readRDS('main.rds')

main.loom <- as.loom(x = file, filename = "/DATA01/home/usr/data/NS/0624/main.loom", verbose = FALSE)

write.csv(main@meta.data,'/DATA01/home/usr/data/NS/0624/mian.csv') #细胞一定要写成csv文件啊,后续就不用再标注细胞啦多方便啊

第二步 安装loompy模块

先用pip install 安装各种失败啊。。。。心好累


Could not install packages due to an EnvironmentError: HTTPSConnectionPool

这网是个什么鬼啊,无力吐槽。。然后各种pip install --user 以及 pip install -U loompy 后成功。

第三步 Scanpy 转换为h5ad文件


import scanpy as sc

import pandas as pd

import loompy

adata = sc.read_loom("/DATA01/home/usr/data/NS/0624/main.loom", sparse=True, cleanup=False, X_name='spliced', obs_names='CellID', var_names='Gene', dtype='float32')

obs= pd.read_csv('mian.csv',delimiter=',', index_col=0)

adata.obs = obs

adata.write('main.h5ad')

这样,文章数据里的细胞信息就能最大程度地保留啦~但是如果细胞数很多的话,比如我引用的这个13万个细胞(虽然我觉得还好。。。),scanpy.read_loom转换成Anndata慢的要死,建议写成脚本扔到后台进行。

ps.开着spyder或者IPython读取loom文件记得关掉。。否则容易引发OS错误,比如我这样。。。


OSError: Unable to open file (unable to lock file, errno = 11, error message = 'Resource temporarily unavailable')


以上就是所有啦,后续和自己的数据合并清洗整理更费事,所以拖延症犯了写点东西,继续搬砖。。。

不想干活.jpg
上一篇下一篇

猜你喜欢

热点阅读