从Scanpy的Anndata对象提取信息(适用于单细胞转录组且涉及h5文件读写)

简介: 从Scanpy的Anndata对象提取信息(适用于单细胞转录组且涉及h5文件读写)

为什么要转格式

目前使用最为广泛的2个单细胞分析的软件包是基于R语言的Seurat和基于Python的Scanpy。Seurat的分析对象是一个S4 method的Seurat对象,S4 method可以简单理解为可以存储很多种格式的对象类型,不用过于深究,里面存了原始矩阵,各种处理过后的矩阵以及降维信息,样本信息等等,可以通过操作符@和$进行访问,如果还不熟悉其结构可以通过Rstudio使用Tab键查看其有关属性,也可以使用str函数快速查看其拓扑结构。而Scanpy的存储对象则为一个Anndata,其结构也类似Seurat对象,但其属性命名规则则与Seurat几乎完全不同,例如其meta.data信息存在obs里,矩阵存在属性X里。

之所以要转格式,是因为目前绝大多数单细胞分析工具都是基于这两种对象进行开发的,有些工具是R语言的,有些是Python语言的,所以常常需要转格式之后才能使用相关分析工具。

import os
import sys
import scanpy as sc
import anndata as ad
import numpy as np
import pandas as pd
import h5py
def extra_adata_info(infile):
    ob1=sc.read(infile)##读入h5ad文件
    mat=pd.DataFrame(data=ob1.X,index=ob1.obs_names,columns=ob1.var_names)  #加载系数矩阵 ,index指行内容,colums指列内容
    mat.to_csv('mat.csv')# mat.to_hdf("mat.h5","mat")
    meta=pd.DataFrame(data=ob1.obs)
    meta.to_csv('metadata.tsv',sep="\t")

这里解释一下data=ob1.X.todense returns a matrix. and toarray returns an ndarray;If you want a matrix, use todense; otherwise, use toarray.即将矩阵显示出来

微信截图_20230606162057.png然后在另一个脚本文件里加载这个脚本,脚本用import需要先进入加载脚本所在路径,并且import的时候不用加.py后缀,然后再调用里面的函数extra_adata_info,需注意运行函数前需把目录转回输出目录:

import os
out_put = os.getcwd()
os.chdir('/extra_adata_info Path/')
import extra_adata_info 
os.chdir(out_put)
extra_adata_info('h5ad Path')


相关文章
|
2月前
单细胞分析|映射和注释查询数据集
单细胞分析|映射和注释查询数据集
30 3
|
9月前
|
搜索推荐 Linux Python
VET:一个基于R语言的VCF数据提取工具,支持按基因ID、物理位置、样品名称提取指定变异信息
VET:一个基于R语言的VCF数据提取工具,支持按基因ID、物理位置、样品名称提取指定变异信息
|
自然语言处理 算法 机器人
PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练
PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练
PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练
|
7月前
|
机器学习/深度学习 数据采集 搜索推荐
特征构造:从原始数据中创造出高效信息
特征构造:从原始数据中创造出高效信息
35 0
|
8月前
|
机器学习/深度学习 传感器 算法
使用应用于环境振动数据的 SSI-COV 算法自动识别线状结构的模态参数附matlab代码
使用应用于环境振动数据的 SSI-COV 算法自动识别线状结构的模态参数附matlab代码
|
8月前
|
机器学习/深度学习 自然语言处理 文字识别
探索图像数据中的隐藏信息:语义实体识别和关系抽取的奇妙之旅
探索图像数据中的隐藏信息:语义实体识别和关系抽取的奇妙之旅
|
9月前
|
Linux 测试技术 数据处理
R语言丨根据VCF文件设计引物,自动识别两样本差异SNP位点,调用samtools获取上下游参考序列,快速得到引物序列
R语言丨根据VCF文件设计引物,自动识别两样本差异SNP位点,调用samtools获取上下游参考序列,快速得到引物序列
|
9月前
|
机器学习/深度学习 自然语言处理
【论文速递】ACL 2022 - 查询和抽取:将事件抽取细化为面向类型的二元解码
事件抽取通常被建模为一个多分类问题,其中事件类型和论元角色被视为原子符号。这些方法通常仅限于一组预定义的类型。
86 1
|
9月前
|
JSON 算法 数据格式
优化cv2.findContours()函数提取的目标边界点,使语义分割进行远监督辅助标注
可以看到cv2.findContours()函数可以将目标的所有边界点都进行导出来,但是他的点存在一个问题,太过密集,如果我们想将语义分割的结果重新导出成labelme格式的json文件进行修正时,这就会存在点太密集没有办法进行修改,这里展示一个示例:没有对导出的结果进行修正,在labelme中的效果图。
87 0
|
10月前
|
人工智能 自然语言处理 Python
ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型
ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型
ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型