单细胞转录组python和R语言的数据结构互相转换

探序基因肿瘤研究院  整理

1. 将单细胞转录组的python数据结构的矩阵输出成txt文件:

单细胞转录组的python数据结构用h5ad格式的保存

import scanpy as sc
import numpy as np
import sys

h5adfile = sys.argv[1]
workdir = sys.argv[2]

adata = sc.read_h5ad(h5adfile)
matrix = adata.X.todense()
gene_names = np.array(adata.var_names)
cell_name = np.array(adata.obs_names)

matfile = "%s/expression_matrix.csv" % (workdir)
genefile = "%s/gene.txt" % (workdir)
ctfile = "%s/cellname.txt" % (workdir)

np.savetxt(matfile, matrix, delimiter='\t',fmt='%6.2f')

with open(genefile, 'w') as file:
    for i in gene_names:
        file.write(i + '\n')

with open(ctfile, 'w') as file:
    for i in cell_types:
        file.write(i + '\n')

注意:fmt='%6.2f' 表示只保留小数点后两位

2. 将txt文件读取到R语言中变成矩阵形式

Mat <- read.table("expression_matrix.csv",sep="\t")   #注意矩阵的行和列的含义。一般python的是行为细胞,列为基因

gene <- readLines(con="/xxx/genename.txt")
cell <- readLines(con="/xxx/celltype.txt")

Mat <- apply(Mat,2,as.numeric)
Mat <- as(Mat,"dgCMatrix")   #转换成稀疏矩阵的形式
rownames(Mat) <- cell
colnames(Mat) <- gene
Mat <- t(Mat)

得到矩阵Mat后,按照seurat包的流程,创建seurat数据结构进行后续分析就可以了。

3. 将R中的基因表达矩阵输出成txt

write.table(GCMat,file="/xxx/xxx.GCMat.txt",row.names = TRUE,col.names = TRUE,sep = "\t",quote = FALSE)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值