前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >标准是需要因地制宜的

标准是需要因地制宜的

作者头像
生信技能树jimmy
发布2021-01-12 14:43:04
8410
发布2021-01-12 14:43:04
举报
文章被收录于专栏:单细胞天地

CNS图表复现09—上皮细胞可以区分为恶性与否,我分享过有一些上皮细胞亚群是跨越病人的聚类情况,所以先暂时认为他们是非恶性细胞。而在 CNS图表复现17—inferCNV结果解读及利用之进阶 ,我演示了通过inferCNV结果来判断上皮细胞的恶性与否。但是有粉丝表明在follow我教程的时候,明明是在图表上面可以看到拷贝数扩展或者缺失,但是代码里面却总是并不判断它们是恶性细胞。

根据inferCNV结果进行打分

主要是读取一个文件 infercnv.observations.txt , 然后根据里面的的数值进行归类,阈值是 0.3,0.7,1.3,1.5,2 分别代表拷贝数缺失或者扩展的程度界限。其中位于 0.7-1.5之间就是拷贝数正常。全部的代码如下:

代码语言:javascript
复制
cnv_table <- read.table("inferCNV_output/infercnv.observations.txt", header=T)
# Score cells based on their CNV scores 
# Replicate the table 
cnv_score_table <- as.matrix(cnv_table)
cnv_score_mat <- as.matrix(cnv_table)
# Scoring
cnv_score_table[cnv_score_mat > 0 & cnv_score_mat < 0.3] <- "A" #complete loss. 2pts
cnv_score_table[cnv_score_mat >= 0.3 & cnv_score_mat < 0.7] <- "B" #loss of one copy. 1pts
cnv_score_table[cnv_score_mat >= 0.7 & cnv_score_mat < 1.3] <- "C" #Neutral. 0pts
cnv_score_table[cnv_score_mat >= 1.3 & cnv_score_mat <= 1.5] <- "D" #addition of one copy. 1pts
cnv_score_table[cnv_score_mat > 1.5 & cnv_score_mat <= 2] <- "E" #addition of two copies. 2pts
cnv_score_table[cnv_score_mat > 2] <- "F" #addition of more than two copies. 2pts

# Check
table(cnv_score_table[,1])
# Replace with score 
cnv_score_table_pts <- cnv_table
rm(cnv_score_mat)
# 
cnv_score_table_pts[cnv_score_table == "A"] <- 2
cnv_score_table_pts[cnv_score_table == "B"] <- 1
cnv_score_table_pts[cnv_score_table == "C"] <- 0
cnv_score_table_pts[cnv_score_table == "D"] <- 1
cnv_score_table_pts[cnv_score_table == "E"] <- 2
cnv_score_table_pts[cnv_score_table == "F"] <- 2

可以看到,这个 阈值是 0.3,0.7,1.3,1.5,2 实际上是我们示例数据集里面的,是一个基于Smart-seq2的单细胞转录组数据哦。

Smart-seq2和10X的代码差异

其实仔细读文档, 就可以看到:cutoff=1 works well for Smart-seq2, and cutoff=0.1 works well for 10x Genomics

代码语言:javascript
复制
# cutoff=1 works well for Smart-seq2, and cutoff=0.1 works well for 10x Genomics
infercnv_obj2 = infercnv::run(infercnv_obj,
                              cutoff=0.1, 
                              out_dir= "infercnv_output",  # dir is auto-created for storing outputs
                              cluster_by_groups=F,   # cluster
                              hclust_method="ward.D2", plot_steps=F)


infercnv_obj1 = infercnv::run(infercnv_obj,
                              cutoff= 1 , # 
                              out_dir= "Smart-seq2",  # dir is auto-created for storing outputs
                              cluster_by_groups=F,   # cluster
                              hclust_method="ward.D2", plot_steps=F)

这两个代码,跑出来的图表是有差异的哦!如下所示:

如果我们的数据就来源于 10X技术,那么使用 cutoff=1 works well for Smart-seq2 就确实是不适合的,但是呢,在计算cnv_score的时候,很明显阈值 0.3,0.7,1.3,1.5,2 需要因地制宜了。

那么阈值修改为多少合适呢

这个问题非常有意思,具体的话,我需要摸索后才能获得,如果大家有比较好的解决方案也欢迎交流,发邮件给我或者留言均可,我的邮箱地址是 jmzeng1314@163.com

往期回顾

2020也不差-单细胞天地编辑团队全体成员有话说

应用空间统计学分析空间表达数据

中国测序数据另外一个中心CNGBdb




如果你对单细胞转录组研究感兴趣,但又不知道如何入门,也许你可以关注一下下面的课程

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 单细胞天地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 根据inferCNV结果进行打分
  • Smart-seq2和10X的代码差异
  • 那么阈值修改为多少合适呢
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档