美文网首页生信笔记生信分析流程单细胞测序专题集合
单细胞-傻瓜式Seurat的rds文件转Scanpy的h5ad文

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

作者: 松鼠菌奶黄包 | 来源:发表于2020-07-28 17:01 被阅读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

    相关文章

      网友评论

        本文标题:单细胞-傻瓜式Seurat的rds文件转Scanpy的h5ad文

        本文链接:https://www.haomeiwen.com/subject/htxqrktx.html