专栏名称: 生信菜鸟团
生信菜鸟团荣誉归来,让所有想分析生物信息学数据的小伙伴找到归属,你值得拥有!
目录
相关文章推荐
生信人  ·  神经内分泌:聚焦难治性肿瘤 ·  4 天前  
51好读  ›  专栏  ›  生信菜鸟团

单细胞转录组代码(1)了解数据、读取数据

生信菜鸟团  · 公众号  · 生物  · 2024-09-30 18:07

正文

学习笔记总结于『生信技能树』马拉松课程

本文学习单细胞转录组所需的数据形式和读取数据的代码

零、准备工作

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中的三个文件,合三为一,才是单细胞的表达矩阵,组成三份是为了节省空间

图1

单细胞表达矩阵的列名如图2

图2

单细胞表达矩阵的行名如图3,第一列是ensemble ID,第二列是gene symbol

图3

单细胞表达矩阵具体值如图4

不直接合并成一个表格,是因为单细胞表达矩阵有一个明显的特征:数字0特别多,0很多会导致文件变得很大。如果合并成常见的表达矩阵意味着要把所有0补上,文件就会比现在的matrix.mtx大很多

图4

3.单细胞需要计算资源

电脑10g内存对应1w个细胞(注意电脑内存和电脑存储的区别,电脑内存常见数字8g、16g、32g、64g等等,再大点就达到服务器规模了;存储则是例如256g、512g等)

图5

一、数据和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)
图6

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

图7

我们观察一下pbmc这个变量如图8

图8

如果在数据库中能找到临床信息文件,可以加个参数手动导入如图9右上角;但我们没有添加文件,图9左侧所示仍出现了一个表格,那我们点开看一下

图9

点开后如图10所示,这三列是自动生成的,第一列即上文代码 project = "pbmc3k" 所致,第二、三列是自动计算得到的结果

图10

以上是通过鼠标点击来查看,下面是用代码实现这个操作







请到「今天看啥」查看全文