CNS图表复现06—根据CellMarker网站进行人工校验免疫细胞亚群
回顾
我们的CNS图表复现之旅已经开始,前面5讲是;
- CNS图表复现01—读入csv文件的表达矩阵构建Seurat对象
- CNS图表复现02—Seurat标准流程之聚类分群
- CNS图表复现03—单细胞区分免疫细胞和肿瘤细胞
- CNS图表复现04—单细胞聚类分群的resolution参数问题
- CNS图表复现05—免疫细胞亚群再分类
如果你也想加入交流群,自己去:你要的rmarkdown文献图表复现全套代码来了(单细胞)找到我们的拉群小助手哈。
前面我们得知文章把Macrophage和Monocyte合并起来,把B_cell区分成为两群。而我们的T_cells和NK_cell也需要被合并起来。
首先检查Mast-cells
而 common myeloid progenitor (CMP) 这群细胞呢,在文章并没有出现,不知道是不是会被命名为 Mast-cells,需要相应的生物学背景。
这个时候,根据CellMarker网站进行人工校验,如下所示:
# Human Kidney Mast cell
# http://biocc.hrbmu.edu.cn/CellMarker/search.jsp?quickSearchInfo=mast
genes_to_check = c('ENPP3', 'KIT', 'SLC18A2')
# All on Dotplot
p <- DotPlot(sce, features = genes_to_check,group.by = 'seurat_clusters') + coord_flip()
p
发现就是第7群高表达这些基因,而前面我们的singleR的自动注释步骤把第7群细胞命名为了 common myeloid progenitor (CMP) ,所以它就文章里面的Mast-cells,出图如下:
然后看看B_cell区分成为两群
文章把B_cell区分成为两群,所以我们也区分一下:
前面的singleR的自动注释步骤的B_cell涵盖了Seurat流程的第3,10,13,15,19,21群细胞。
同样的,根据CellMarker网站进行人工校验,如下所示:
genes_to_check = c('CD19', 'CD27','SDC1', 'CD38')
# All on Dotplot
p <- DotPlot(sce, features = genes_to_check,group.by = 'seurat_clusters') + coord_flip()
p
# CD138( SDC1), CD38 # Plasma cell
# CD19, CD27 # memory B cell
出图:
可以看到, 第3和21群高表达CD138( SDC1)基因,所以是Plasma cell,其它B细胞就归类为memory B cell吧,毕竟作者的文章就只有这两个B细胞亚群。
最后检查Macrophage和Monocyte
文章把Macrophage和Monocyte合并起来,但是数量是四千五百个细胞左右,但是我们的Macrophage和Monocyte加起来近5000了,所以里面理论上可以拆出来一些给DC细胞,所以我在CellMarker网站进行人工校验,基因如下:
# CLEC4C, IL3RA, NRP1 # Dendritic cell
# CD1C, CST3, FCER1A # Monocyte derived dendritic cell
genes_to_check = c('CLEC4C', 'IL3RA', 'NRP1','CD1C', 'CST3', 'FCER1A')
# All on Dotplot
p <- DotPlot(sce, features = genes_to_check,group.by = 'seurat_clusters') + coord_flip()
p
确实看到:
第9和13亚群,可以重新被划分为DC细胞,之前属于Monocyte和B细胞。
最后整理分群资料
可以看到,即使是singleR的自动注释后给每个亚群命名了,仍然是需要耗费时间和精力去细致看每个亚群。
# 9,13 Dendritic
# 3,12, Plasma cell
# 7, CMP --> Mast-cells
- 使用json 和jQuery制作级联dropdownlist
- 在64位Windows 7/2008操作系统上部署32位的Web应用程序错误
- 云计算浪潮
- 2.[Andriod]Andriod Studio结合Visual Studio Emulator for Android调试Android App
- Windows Server AppFabric Caching
- zepto 基础知识(2)
- DeepMind回顾2017年:除了战胜柯洁还有哪些大事
- [认证授权] 1.OAuth2授权
- 机器学习(四)——梯度下降算法解释以及求解
- 在Windows上运行单节点的Cassandra
- Mono技术规格
- 如何站在使用者的角度来设计SDK-微信公众号开发SDK(消息处理)设计之抛砖引玉
- 机器学习(三)——k-近邻算法基础
- 利用Windows性能计数器(PerformanceCounter)监控
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- c++STL容器之list容器
- c++STL容器之deque容器
- Web自动化必会「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」
- HTML5 meta viewport参数详解
- 二分查找应该都会,那么二分查找的变体呢?
- TypeScript 实战算法系列(三):实现链表与变相链表
- JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件
- TypeScript 实战算法系列(二):实现队列与双端队列
- VBA位操作
- VBA编写Ribbon Custom UI编辑器07——写入xml
- Linux下在文件夹所有文件中查找相关内容
- archlinux安装篇(一) 基本系统
- git使用要点
- 七夕 - 程序员表白代码
- Shell流程控制