从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')


相关文章
|
数据挖掘 索引
RNA-seq数据分析一:(HISAT2+featureCounts)
RNA-seq数据分析一:(HISAT2+featureCounts)
|
存储 数据可视化 算法
空间单细胞|基于图像的空间数据分析(2)
空间单细胞|基于图像的空间数据分析(2)
1196 0
|
存储 数据可视化
单细胞分析: Scanpy 核心绘图 (3)
单细胞分析: Scanpy 核心绘图 (3)
1420 0
单细胞分析: Scanpy 核心绘图 (3)
|
存储 数据可视化 数据挖掘
单细胞分析: Scanpy 核心绘图 (1)
单细胞分析: Scanpy 核心绘图 (1)
1102 4
都8102年了,还用fastq-dump,快换fasterq-dump吧
之前写过一篇文章Fastq-dump: 一个神奇的软件, 详细介绍了fastq-dump的用法。 虽然fastq-dump参数很多,而且一直被吐槽参数说明写的太差,但是如果真的要用起来其实也就是一行代码 fastq-dump --gzip --split-3 --defline-qual '+' --defline-seq '@$ac-$si/$ri' SRRXXXXX| SRRXXXX.sra # 加上--gzip后需要时间进行文件压缩 当然除了参数问题,还有一个让人诟病的地方就是他只能单个线程,所以速度特别的慢。
5893 0
都8102年了,还用fastq-dump,快换fasterq-dump吧
|
存储 数据可视化 数据挖掘
单细胞分析: Scanpy 核心绘图 (2)
单细胞分析: Scanpy 核心绘图 (2)
单细胞分析: Scanpy 核心绘图 (2)
|
机器学习/深度学习 数据可视化 Python
Scanpy 分析 3k PBMCs:寻找 marker 基因
Scanpy 分析 3k PBMCs:寻找 marker 基因
Scanpy 分析 3k PBMCs:寻找 marker 基因
|
存储 编解码 数据可视化
Visium HD空间数据分析、可视化以及整合 (1)
【8月更文挑战第1天】Visium HD空间数据分析、可视化以及整合 (1)
1163 4
Visium HD空间数据分析、可视化以及整合 (1)
|
存储 数据可视化 搜索推荐
单细胞分析 | 基因组区域的可视化 (1)
单细胞分析 | 基因组区域的可视化 (1)
单细胞分析 | 基因组区域的可视化 (1)