系统学习单细胞转录组测序scRNA-Seq(四+)

刘小泽写于19.3.26
这次主要内容是更新一下第四期的QC部分,另外简单看一下标准化(没有涉及流程),因此标题定了一个 四plus

慢慢翻开细枝末节

上一次说到了加载、创建、获取single-cell数据集质控(细胞、基因两个层次),继续进行~

上一次质控环节的一些补充说明[主要更新在于过滤更加全面]

根据文库大小过滤细胞时,我们是根据密度图进行选择,阈值也是按照5%设定的。今天突然想起来,其实还有另一种阈值选择方法,也许更有说服力

# Calculate QC metrics[上一次的代码]
> library(scater)
> sce2 <- calculateQCMetrics(sce2, feature_controls = list(ERCC = isSpike(sce2, "ERCC")))
# names(colData(sce2))
#####################################
# 画个直方图
# 理论上分选细胞是遵循“无限稀释”=》泊松分布的“钟形曲线”
# 如果表达量太高(最右侧),可能是一孔两个细胞(doublets);
# 如果表达量太低(最左侧),可能是细胞质量不好或没有细胞
#####################################
> hist(
    sce2$total_counts,
    breaks = 100
)
> abline(v=1.3e6, col="red")
# 这样是不是就更直观了呢?
> table(keep)
keep
FALSE  TRUE 
  180   684 
根据泊松分布定阈值

除了对总文库大小total_count进行过滤,还可以根据 细胞中检测到的基因数(the number of detected genes in all cells)进行过滤

> hist(
+     sce2$total_features_by_counts,
+     breaks = 100
+ )
> abline(v = 7000, col = "red")
> filter_by_expr_features <- (sce2$total_features_by_counts > 7000)
> table(filter_by_expr_features)
filter_by_expr_features
FALSE  TRUE 
  116   748 

# 另外根据ERCC结果可以去掉NA19098.r2这个重复,并且选择ERCC占比低于25的(这个阈值是自定义的)
> filter_by_ERCC <- 
    sce2$batch != "NA19098.r2" & sce2$pct_counts_ERCC < 25
> table(filter_by_ERCC)
filter_by_ERCC
FALSE  TRUE 
  103   761 

一般来讲,QC过滤的方法可以根据:表达的基因数量(total number of unique genes detected in each sample.);文库大小( total number of RNA molecules detected per sample);ERCC、线粒体基因与内源基因的比率(pct_counts_ERCC、pct_counts_MT)[这个比率高说明细胞有可能死亡或者表达受到抑制,即得不到什么表达量]

sce2$use <- (
    # sufficient features (genes)
    filter_by_expr_features &
        # sufficient molecules counted
        filter_by_total_counts &
        # sufficient endogenous RNA
        filter_by_ERCC 
        # remove cells with unusual number of reads in MT genes
        # filter_by_MT
)

上面👆是细胞过滤,下面👇是基因过滤

做完QC后,可以进行可视化,检查一下基因表达量(主要看前50),目的是看一下实验设计的spikein如何

plotQC(sce2, type = "highest-expression")
# 结果分布比较平稳表示细胞中全转录组的覆盖度比较好(粗略来看),前15个基因存在一些spike-in(已知浓度的外源RNA分子),因此如果下一步重复实验的话,可以将spikein的比重降低
QC可视化

过滤基因(还是根据至少2个细胞中存在表达量大于1的基因的标准)

filter_genes <- apply(
    counts(sce2[ , colData(sce2)$use]), 
    1, 
    function(x) length(x[x > 1]) >= 2
)
rowData(sce2)$use <- filter_genes
dim(reads[rowData(reads)$use, colData(reads)$use])
assay(reads, "logcounts_raw") <- log2(counts(reads) + 1)
reducedDim(reads) <- NULL
save(sce2, file = "sce2.RData")

标准化

为何需要标准化?

分析单细胞数据其中一个目的就是找到感兴趣的biological signal ,还是以下图为例:

我们可以根据基因表达量将细胞分组,但是这里比较关心的是找到不同细胞亚群的biomarker,然后使用不同的药物治疗。找biomarker的过程并不简单,其中会引入许多的人工技术性误差,以至于掩盖掉真正关心的生物学差异

对症下药

其中一个混杂因素就是"批次效应(batch effect)"。下图中将两组(NA19098和NA19101)进行PCA分析,每个点是一个细胞,细胞被投射到不同维度上,选择其中两个可以代表变化/方差最大的维度来表示数据特征。可以看到,细胞分别按照个体(individual)和批次(batch)进行分组。

按照个体划分是理所当然的,因为我们就是要看看不同个体之间的biological signal,但是按照批次分组就有点说不通了,只是因为细胞是不同批次测序的,而有的批次之间并没有太大的差别,这种情况就属于技术上分组,而不是生物意义上分组。因此,标准化的目的就是:移除不想要的技术差异(例如批次效应),同时保存感兴趣的生物学相关的差异

PCA
标准化方法有许多
  • 最直接:将表达矩阵的每一列除以标准化因子(normalization factor),这个因子可以是文库大小或者文库大小除以1,000,000(也就是counts per million,CPM);另外像RPKM、TPM都是这种形式的变体
  • 其他方法:每个count除以各自不同的归一化因子(scaling factor)。不同方法计算的scaling factor不同,例如
    • edgeR中的Weighted trimmed mean of M-values (TMM)
    • DESeq中是每个基因在所有细胞中的几何平均数(geometric mean)
    • scran中是zero inflation

欢迎关注我们的公众号~_~  
我们是两个农转生信的小硕,打造生信星球,想让它成为一个不拽术语、通俗易懂的生信知识平台。需要帮助或提出意见请后台留言或发送邮件到jieandze1314@gmail.com

Welcome to our bioinfoplanet!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352

推荐阅读更多精彩内容