本文学习单细胞转录组所需的数据形式和读取数据的代码
零、准备工作
1.V5转V4
本系列使用的代码都是基于v4版本的
Seurat
和
SeuratObject
,如果你是最新下载则会默认下载v5版本,这会和本系列大多数代码不匹配,以下是v5版本转v4的方法:
# 运行下面的卸载代码之前,一定要重启你的r语言或者rstudio,或者保证你的当前环境下没有加载 SeuratObject 和 Seurat
remove.packages("SeuratObject")
remove.packages("Seurat")
# 4 download from URL
packageurl "https://cran.r-project.org/src/contrib/Archive/SeuratObject/SeuratObject_4.1.4.tar.gz"
install.packages(packageurl, repos=NULL, type="source")
packageurl "https://cran.r-project.org/src/contrib/Archive/Seurat/Seurat_4.4.0.tar.gz"
install.packages(packageurl, repos=NULL, type="source")
2.所需文件预览
图1中的三个文件,合三为一,才是单细胞的表达矩阵,组成三份是为了节省空间
单细胞表达矩阵的列名如图2
单细胞表达矩阵的行名如图3,第一列是ensemble ID,第二列是gene symbol
单细胞表达矩阵具体值如图4
不直接合并成一个表格,是因为单细胞表达矩阵有一个明显的特征:数字0特别多,0很多会导致文件变得很大。如果合并成常见的表达矩阵意味着要把所有0补上,文件就会比现在的matrix.mtx大很多
3.单细胞需要计算资源
电脑10g内存对应1w个细胞(注意电脑内存和电脑存储的区别,电脑内存常见数字8g、16g、32g、64g等等,再大点就达到服务器规模了;存储则是例如256g、512g等)
一、数据和R包准备
代码主要来源于官方网站+小洁老师的改动与注释,示例数据是pbmc外周血细胞,3k是三千个细胞的意思
https://satijalab.org/seurat/v3.0/pbmc3k_tutorial.html
数据的下载地址:https://s3-us-west-2.amazonaws.com/10x.files/samples/cell/pbmc3k/pbmc3k_filtered_gene_bc_matrices.tar.gz
rm(list = ls())
library(dplyr)
library(Seurat)
library(patchwork)
二、读取数据
10X的输入数据是图1那三个固定文件,在工作目录下新建01_data/,把三个文件放进去
但也不是所有单细胞都是这三个文件,有各种各样的格式。若遇到其他格式可在生信技能树公众号内搜索,例如“如何读取XX格式的文件”,本公众号后续有机会也会分享实例
pbmc.data "01_data/")# Read10X()这个函数是一个完善的可读取那三个文件的函数
dim(pbmc.data)
class(pbmc.data)
dgCMatrix
是稀疏矩阵、是狭义的对象,它出自
Matrix
R包,
dgCMatrix
是R包的作者以某种方式组织好的数据
稀疏矩阵的好处是节省空间,它里面的0不是真正的0,而是变成一个点“ . ”
pbmc project = "pbmc3k", #如果是单样本,画图的时候"pbmc3k"会出现在行名的位置;但在这里是多样本,它没有任何意义
min.cells = 3, #基因阈值:对基因的要求是至少要在三个细胞里面有表达
min.features = 200)#细胞阈值:对细胞的要求是在一个细胞当中至少需要有200个基因表达
# 运行后,这句报错不用管
#[1] Warning: Feature names cannot have underscores ('_'), replacing with dashes ('-')
pbmc
# dim(pbmc)#这样查看也行
过滤后,基因数量13714,细胞个数2700
我们观察一下pbmc这个变量如图8
如果在数据库中能找到临床信息文件,可以加个参数手动导入如图9右上角;但我们没有添加文件,图9左侧所示仍出现了一个表格,那我们点开看一下
点开后如图10所示,这三列是自动生成的,第一列即上文代码
project = "pbmc3k"
所致,第二、三列是自动计算得到的结果
以上是通过鼠标点击来查看,下面是用代码实现这个操作