将R环境下的Seurat RDS格式数据转化成为到python环境下scanpy的anndata格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将R环境下的Seurat RDS格式数据转化成为到python环境下scanpy的anndata格式相关的知识,希望对你有一定的参考价值。

参考技术A

无论是单细胞、空间组还是ATAC的数据,有时由于下游分析的需求或可视化的需求,同时由于python的运算速度的优势,目前越来越多单细胞分析的工具开始在python环境下开发(scanpy/spGCN/scVelo……),但是大家大多都习惯了R的分析环境(Seurat/Harmony/Monocle3……),所以我们经常需要在不同的环境中运行同一个分析对象,这所以涉及到的数据类型的转变就非常关键了。

想直接想找工具将RDS转为python可读数据对象的包,目前还没有……(如果有大佬可以开发一下)。

目前所以从数据本身出发有三种方式,总结自目前网络上一些可行的方法:

1,提取矩阵(稀疏/稠密)和特征信息(metadata),手动构筑 anndata (单细胞分析时python中的一种数据结构,具体了解可以看一下: https://www.jianshu.com/p/9b057e105c42 ,写得挺好)就好。前提是对R的S4对象和python的anndata对象有基础的认识,就可以搞定,这是最本质也是最万能的方法,除了门槛高。

2,存储的时候就注意,不要保存成rds,或者已经这样保存了也无所谓,可以读入再重新存:
(1)存储成 h5ad格式 。Seurat数据写成h5需要借助包 SeuratDisk : https://github.com/mojaveazure/seurat-disk
从R环境下Seurat的对象保存成h5ad的格式:

然后用python的anndata包/scanpy包直接读入就好,因为h5ad本来就是单细胞在跑一python环境中分析最基础的格式,对标R中的seurat对象或sce对象

这个方法可以具体参考: https://www.jianshu.com/p/c438d545f696 他写得更加详细一点

(2)Seurat官方设置 loom格式 也是可行方式之一:
参见: https://www.jianshu.com/p/147da295fc34
将Seurat对象转为loom:

在python环境下读入loom,成为adata:

总而言之,经个人使用和实际操作来说, 第二个存储成为h5ad的方法时最好用的、也最友好 ,除了只能保存一个assay之外,就都没问题,但是如果许多保存多个assay成为anndata中的多个layer,这就的用手动的方法了。

Amazon Data Pipeline“将 S3 数据加载到 RDS MySQL”查询格式?

【中文标题】Amazon Data Pipeline“将 S3 数据加载到 RDS MySQL”查询格式?【英文标题】:Amazon Data Pipeline "Load S3 Data to RDS MySQL" query format? 【发布时间】:2016-04-11 21:10:06 【问题描述】:

我想知道将数据从 CSV 插入 MySQL 的 SQL 查询格式是什么。它给出的模板是,“INSERT INTO tablename (col1, col2, col3) VALUES (?,?,?);"

由于每个 CSV 文件中的值是动态的且不同,他们在寻找什么来替换问号?

这里是模板一般格式的链接。

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-template-copys3tords.html

最好的,

卡克曼

【问题讨论】:

【参考方案1】:

对于这个查询,

执行查询时不需要指定问号。

What does a question mark represent in SQL queries?

您只需要关心正确命名的列。

假设您有一张表:联系人(id、姓名、电话、地址)。

那么,查询应该是“INSERT INTO contact(id, name, phone, address) VALUES(?,?,?,?)”

【讨论】:

以上是关于将R环境下的Seurat RDS格式数据转化成为到python环境下scanpy的anndata格式的主要内容,如果未能解决你的问题,请参考以下文章

2019-10-22 R语言Seurat包下游分析-1

【单细胞测序数据分析-1】认识Seurat对象数据结构/数据格式及操作

服务器安装新版本R及Seurat方法

Amazon Data Pipeline“将 S3 数据加载到 RDS MySQL”查询格式?

阿里云RDS实例内不同数据库之间的数据迁移

如何将字符型数据转化成日期格式