有手就会的单细胞转录组 | 第1期.数据导入

文摘   教育   2025-01-24 23:20   四川  

单细胞系列如约进行!前面几期我们分享了关于单细胞转录组相关研究思路系列,了解到单细胞大致常使用的系列类型。接下来我们将会一起从提供的数据开始一步步完成单细胞常用的分析内容,数据代码都已经准备好,有问题大家可以加入文末群聊讨论提问!



往期回顾:


组学系列:


(一) 单细胞转录组
1. 单细胞思路 | 第1期 必学习的最常规的单细胞思路!
2. 单细胞思路 | 第2期 单细胞中的资源库
3. 细胞思路 | 第3期 找到靶点分子后可以直接测序!
4单细胞思路 | 第4期 预测标志物,单细胞和疾病稳稳联系!

(二) 代谢组学
1. 代谢组思路 | 第1期. 代谢组学基本思路——描绘图谱&寻找新药治疗靶点
2. 代谢组思路 | 第2期. 代谢组学思路从基础到进阶——识别高危患者+预测预后
3. 代谢组思路 | 第3期. 代谢组学思路进阶——预测预后
4. 代谢组思路 | 第4期. 代谢组学联合转录组学,助力代谢重编程


(三) Bulk组学

1. 小白也能看懂的Bulk RNA-seq思路 | 第1期. 运用转录组测序绘制疾病图谱
2. 小白也能看懂的Bulk RNA-seq思路 | 第2期. 不知道研究哪个分子哪条通路?转录组测序来帮你!
3. 小白也能看懂的Bulk RNA-seq思路 | 第3期. 还是太全面了!转录组测序寻找预后相关细胞类型和靶基因+揭示下游分子通路



TS

01

 数据导入是什么

数据导入是将单细胞RNA测序(scRNA-seq)下机数据经过Cell Ranger 流程处理后,将结果文件加载到 R 环境中,以便进行后续的数据分析和可视化。Cell Ranger 是 10X Genomics 提供的标准分析流程,其输出文件通常包括:

  • matrix.mtx:基因表达矩阵(稀疏格式)。

  • features.tsv(或 genes.tsv):基因信息文件。

  • barcodes.tsv:细胞条形码文件。

数据导入的目标是将这些文件加载到 R 中,并转换为适合分析的格式(如 Seurat 对象)。


TS

02

为什么使用R进行数据导入

简洁高效

R 语言提供了丰富的生物信息学工具包(如 Seurat、SingleCellExperiment),可以快速完成数据导入和预处理。

通过几行代码即可完成数据加载、过滤和标准化。

广泛的应用和支持

R 是生物信息学和单细胞数据分析的主流工具之一,拥有庞大的用户社区和丰富的文档支持。R 支持自定义函数和脚本,用户可以根据需求灵活调整数据导入和分析流程。

可视化能力强

R 提供了强大的可视化工具(如 ggplot2、ComplexHeatmap),便于在数据导入后直接进行探索性分析。

与其他工具的兼容性

R 可以与其他编程语言(如 Python)和工具(如 Scanpy)无缝集成,方便多工具协作分析。


TS

03

 怎么数据导入

一、理论

①barcodes.tsv.gz、features.tsv.gz、matrix.mtx.gz三个文件的内容以及正常的格式:


1)我们打开barcodes.tsv.gz,一般只有一列,可以看到是由“16个字母-1”组成的一串字符,在测序的时候每个细胞和凝胶珠以及水相和油构成了单细胞乳液微滴(GEM),而每个凝胶珠上都有唯一的Barcode片段,由此来区分不同的细胞


2)我们打开features.tsv.gz,可以看到基因唯一的基因名。“ENSMUSG + 11位数字”是Ensembl 数据库分配的小鼠基因ID,而“Gm + 数字”是小鼠的基因名称。


3)我们打开matrix.mtx.gz可以看到每个基因的表达量的原始值。如果在R里面读入matrix可以看到是稀疏矩阵(一般是为了减少文件大小),转化为dense matrix或者直接打开可以看到cellranger的版本,以及对应一共有的基因数(55357行)、细胞数(8229列)和非零值(20154188)。而下方的数字例如第一个代表:第165行和第一列的值为2。导入是将单细胞RNA测序(scRNA-seq)下机数据经过 Cell Ranger 流程处理后,将结果文件加载到 R 环境中,以便进行后续的数据分析和可视化。Cell Ranger 是 10X Genomics 提供的标准分析流程,其输出文件通常包括:




②相关R包工作原理

1Read10X目的就是读入10X的cellranger后的三个文件,形成count矩阵。

Read10X(
  data.dir,
  gene.column = 2,
  cell.column = 1,
  unique.features = TRUE,
  strip.suffix = FALSE
)


data.dir就是上述三个文件的路径;

gene.column = 2”就是会对应feature文件的第二列作为基因名字;

cell.column = 1”会对应barcode文件的第一列为细胞名字;

unique.features = TRUE”是使基因名唯一,如果有重复的会自动添加后缀以区分

strip.suffix = FALSE” 是否移除barcodes中的“-1”后缀。

当整理好对应文件为上述三个文件的gz压缩格式时,只用给对应的data.dir就可。


2CreateSeuratObject目的就是最终在R中形成Seruat对象

CreateSeuratObject(
  counts,
  assay = "RNA",
  names.field = 1,
  names.delim = "_",
  meta.data = NULL,
  project = "CreateSeuratObject",
  min.cells = 0,
  min.features = 0
)


counts:矩阵就是Read10X得到的数据;

assay:指定初始的 assay 名称,默认为 "RNA"

meta.data:这个指额外的细胞元数据,通常是一个数据框,注意元数据的行名需要与 counts 矩阵的列名(细胞名称)匹配。

min.cells:仅保留在至少在多少个细胞中表达的基因。

例如min.cells = 3会过滤掉在少于3个细胞中表达的基因。

min.features:仅保留检测到至少多少个基因的细胞。

例如min.features = 200会过滤掉检测到少于200个基因的细胞。


③其他读入方式

如果上述文件格式不标准可以对应去修改,对于txt/csv/tsv 文件、HDF5文件的读入未来我们将会继续分享。


二、实践

数据来源:

我们接下来要使用的所有单细胞转录组分析均用以下自行构建的示例数据:

链接: https://pan.baidu.com/s/1q3dQXmmFmaOeTLLJ_Gjm6Q 提取码: 8yhh


可以看到一共有17个样本(4case13control),已经整理好对应样本的filtered_feature_bc_matrix。里面均整理好了三个文件。



R包环境

library(Seurat)
library(tidyverse)

②文件位置

# 设置基础路径
base_path <- " ../outputs"
# 获取所有子文件夹
folders <- list.dirs(base_path, full.names = FALSE, recursive = FALSE)

③读入数据

# 创建一个列表来存储所有的Seurat对象seurat_list <- list()
# 循环读取每个文件夹
for(folder in folders) {
  # 构建完整的路径
  full_path <- file.path(base_path, folder, "filtered_feature_bc_matrix")
  # 使用文件夹名称作为样本名
  sample_name <- folder
  # 读取数据并创建Seurat对象
  tryCatch({
    data <- Read10X(data.dir = full_path)
    seurat_obj <- CreateSeuratObject(counts = data, project = sample_name, min.cells = 3, min.features = 200)
    # 将对象存储在列表中    
    seurat_list[[sample_name]] <- seurat_obj
    # 打印进度信息
    cat(sprintf("Successfully processed %s\n", folder))
  }, error = function(e) {
    cat(sprintf("Error processing %s: %s\n", folder, e$message))
  })
}


最终我们可以看到17个样本已经成功读入R中了!


Summary


总结一下:
单细胞转录组就是将单细胞RNA测序(scRNA-seq)下机数据经过Cell Ranger 流程处理后,将结果文件加载到 R 环境中,以便进行后续的数据分析和可视化。

我们使用R的原因包括其简洁高效、有广泛的应用和支持、可视化能力强并可与其他程序兼容。
我们介绍了在实操过程中的Read10X和CreatSeuratObject两个函数,并用示例数据进行了演示
后期我们将继续带着大家一起从浅入深地接触、理解、掌握单细胞转录学

这就是本期的全部内容啦,你学会了吗?后续我们将继续开始为大家分享单细胞转录组学相关内容。大家对于推送内容有任何问题或建议可以在公众号菜单栏“更多--读者的话”栏目中提出。希望我们能一起成长,共同进步,让医学科研有迹可循!
/ / /
欢迎大家加入R语言与组学互助交流群!


写在最后



“观科研”(点击进一步了解我们吧)是由一群北京协和医学院(清华大学医学部)的博士开创的公众号,初心是让医学科研有迹可循,帮助一线的医学科研人员更快地成长,希望大家支持与关注!

如果大家对分享医学科研知识感兴趣,特别欢迎加入我们,期待与您的相遇相识相知,也非常欢迎大家自主投稿,如果您有需要分享的内容或对我们有任何建议,可通过后台留言、公众号菜单栏“更多—读者的话”栏目进一步了解)或发送邮件至mascu_forever@163.com与我们交流并留下个人联系方式,我们会及时与您联系。

如果您觉得我们长期的干货推送对您的科研工作有所帮助,可以在合适的机会致谢(包括但不限于SCI论文、毕业论文等),格式如下:
 The authors thank the support of Skill Learning from Kaixin Doctor and MASCU (Medical Association with Science, Creativity, and Unity), Inc, Shenzhen, China (mascu_forever@163.com).

【大家的支持,是我们持续更新的动力!


Pay attention!
微信公众号的推送规则发生改变(不再按照时间顺序来显示),如果没有将“观科研”设置为星标,你就可能错失里面的精彩推送。


点击“在看”,可参与讨论哦!


图文:直
审核:定观
编辑:直
责编:静观

观科研
让医学科研有迹可循
 最新文章