稀疏矩阵的读入、存储及与read10X的联动

2021-04-20  本文已影响0人  一只烟酒僧
######################################################## 
#-------------------------------------------------------
# Topic:稀疏矩阵
# Author:Wang Haiquan
# Date:Tue Apr 20 13:54:21 2021
# Mail:mg1835020@smail.nju.edu.cn
#-------------------------------------------------------
########################################################

library(Matrix)
library(Seurat)
#创建一个矩阵
i <- c(1,3:8); j <- c(2,9,6:10); x <- 7 * (1:7)
A <- sparseMatrix(i, j, x = x)
rownames(A)<-paste("gene",1:nrow(A),sep = "")
colnames(A)<-paste("sample",1:ncol(A),sep = "")
#保存为cellranger的输出格式:三个文件
genes.tsv<-data.frame(rownames(A))
barcodes.tsv<-data.frame(colnames(A))
write.table(genes.tsv,"genes.tsv",col.names = F,quote = F,row.names = F)
write.table(barcodes.tsv,"barcodes.tsv",col.names = F,quote = F,row.names = F)
writeMM(A,"matrix.mtx")
#使用read10X进行读取
b<-Read10X("./",gene.column = 1)
b
colnames(b)
rownames(b)

几点注意:
1、gene.tsv和barcodes.tsv一定不要有列名!不然会多算一行

#barcodes.tsv
sample1
sample2
sample3
sample4
sample5
sample6
sample7
sample8
sample9
sample10
#gene.tsv
gene1
gene2
gene3
gene4
gene5
gene6
gene7
gene8

2、matrix的格式如下:第一行为矩阵描述,第二行为三列统计信息,分别对应行总数、列总数和值

%%MatrixMarket matrix coordinate integer general
8 10 7
1 2 7
4 6 21
5 7 28
6 8 35
3 9 14
7 9 42
8 10 49

上一篇下一篇

猜你喜欢

热点阅读