在下面的案例研究中,我们使用Seurat包来处理scRNA-seq数据并执行t-SNE分析。所有可视化都可通过SingleR Web工具轻松获得- http://comphealth.ucsf.edu/SingleR。Web应用程序允许查看数据和交互式分析。
为测试C1平台而创建的数据集。使用C1:89 L1210细胞,小鼠淋巴细胞白血病细胞和105只小鼠CD8 + T细胞分析194个单细胞小鼠细胞系。省略了具有少于500个非零基因的5个细胞。
数据从GEO下载,并使用以下代码读取到R:
>counts.file = 'GSE74923_L1210_CD8_processed_data.txt'# 这是一个表达矩阵文本,行为基因名,列为样品名;
>annot.file = 'GSE74923_L1210_CD8_processed_data.txt_types.txt'
# 这是一个含有两列的文本,一列为样品名,一列为所有样品的总名。
>singler = CreateSinglerSeuratObject(counts.file, annot.file, 'GSE74923', variable.genes='de', regress.out='nUMI', technology='C1', species='Mouse',
citation='Kimmerling et al.', reduce.file.size
= F, normalize.gene.length = T)
>save(singler,file='GSE74923.RData'))
首先,我们看一下原始身份所着色的t-SNE图:
# singler$singler[[1]] is the annotations obtained by using ImmGen dataset as reference. # singler$singler[[2]] is based on the Mouse-RNAseq datasets.>load (file.path(path,'GSE74923.RData'))>out = SingleR.PlotTsne(singler$singler[[1]]$SingleR.single, singler$meta.data$xy, do.label = FALSE, do.letters = F, labels=singler$meta.data$orig.ident,label.size = 6, dot.size = 3)>out$p
然后我们可以使用SingleR参考Immgen通过聚合得分的热图来观察分类。这些分数在微调之前。我们可以通过主要细胞类型查看此热图:
>SingleR.DrawHeatmap(singler$singler[[1]]$SingleR.single.main, top.n = Inf, clusters = singler$meta.data$orig.ident)
或者通过所有细胞类型(呈现前30种细胞类型):
>SingleR.DrawHeatmap(singler$singler[[1]]$SingleR.single, top.n = 30, clusters = singler$meta.data$orig.ident)
我们可以看到L1210细胞被强烈分类为(大多数)2种类型的B细胞祖细胞。我们可以看到CD8细胞主要与效应CD8 + T细胞的特异性激活相关。有趣的是,SingleR表明,一个L1210细胞现在与完全分化的B细胞更相似,而不是祖细胞。
该热图的另一个有趣应用是能够聚类细胞,而不是通过它们的基因表达谱,而是通过它们与数据库中所有细胞类型的相似性:
>K = SingleR.Cluster(singler$singler[[1]]$SingleR.single,num.clusts = 2)>kable(table(K$cl,singler$meta.data$orig.ident),row.names = T)
CD8 | L1210 | |
---|---|---|
1 | 0 | 86 |
2 | 103 | 0 |
这里不是很有趣,但我们稍后会看到这种聚类功能可能很有用,特别是对于识别新的细胞类型。我们在手稿中使用它并找到一个中间的,未表征的巨噬细胞状态。
最后,我们在t-SNE图中给出了注释:
>out = SingleR.PlotTsne(singler$singler[[1]]$SingleR.single, singler$meta.data$xy,do.label=FALSE, do.letters = T,labels = singler$singler[[1]]$SingleR.single$labels, label.size = 4, dot.size = 3)>out$p
我们可以看到SingleR正确地注释了所有L1210作为B细胞的类型,几乎完全作为B细胞祖细胞。另一方面,所有CD8细胞都正确注释为CD8 + T细胞。重要的是要记住,SingleR可以从中选择253种类型,但它正确地选择了最相关的细胞类型。有趣的是,tSNE图错误地将细胞定位在错误的簇中,但分拣不受此影响。
与原始身份相比,查看表中的注释有很多次:
>kable(table(singler$singler[[1]]$SingleR.single$labels,singler$meta.data$orig.ident))
CD8 | L1210 | |
---|---|---|
乙细胞(B.T2) | 0 | 1 |
乙细胞(B.T3) | 0 | 1 |
乙细胞(preB.FrC) | 0 | 68 |
乙细胞(proB.CLP) | 0 | 1 |
乙细胞(proB.FrBC) | 0 | 15 |
Ť细胞(T.8EFF.OT1.48HR.LISOVA) | 101 | 0 |
Ť细胞(T.CD8.48H) | 1 | 0 |
TGD(Tgd.mat.vg3) | 1 | 0 |
上面给出的热图可能会产生误导,因为每列标准化为0到1之间的分数。因此,单个单元格可能与多个单元格类型的相关性较低,而且它们都不是准确的单元格类型,但在热图中它们一切都会变红。没有规范化,数据看起来像这样:
>SingleR.DrawHeatmap(singler$singler[[1]]$SingleR.single,top.n = 30, normalize = F,clusters = singler$meta.data$orig.ident)
我们可以看到有一组细胞在所有细胞类型中得分较低。是什么原因导致这些细胞的相关性较低?
>df = data.frame(Max.Score=apply(singler$singler[[1]]$SingleR.single$scores,1,max), >nGene=singler$seurat@meta.data$nGene,Orig.ident=singler$meta.data$orig.ident)>ggplot(df,aes(x=nGene,y=Max.Score,color=Orig.ident))+geom_point()
该细胞中非零基因数(nGene)与最高分拣器评分的关系图显示分拣评分依赖于nGene。然而,正如我们已经看到的那样,尽管nGene的数量较少,但分拣器能够正确地注释这些细胞。这与Seurat t-SNE图相反,后者错位了这些细胞,如下图所示,它根据Max.Score为细胞着色:
>SingleR.PlotFeature(singler$singler[[1]]$SingleR.single,singler$seurat,'MaxScore',dot.size=3)
在下一个案例研究中,我们将检查辛格勒使用独立于nGene的相关性“离群值”标准正确注释细胞的能力。
在这里,我们分析了使用10X平台分析的分类免疫细胞类型的独特人类数据集。我们从https://support.10xgenomics.com/single-cell-gene-expression/datasets电子杂志此数据,并使用辛格勒管道进行处理。为了减少计算时间并使分析更简单,我们使用以下代码从10个细胞群中随机选择1000个具有> 200个非零基因的细胞:
# path/10X/ contains a directory for each of the expriments, each with the three 10X files.>dirs = dir(paste0(path,'/10X'),full.names=T)>tenx = Combine.Multiple.10X.Datasets(dirs,random.sample=1000,min.genes=200)>singler = CreateSinglerSeuratObject(tenx$sc.data, tenx$orig.ident, 'Zheng', variable.genes='de',regress.out='nUMI', technology='10X', species='Human', citation='Zheng et al.', reduce.file.size = F, normalize.gene.length = F)>save(singler,file='10x (Zheng) - 10000cells.RData'))
首先,我们绘制原始身份:
注意:当存在多种细胞类型时,很难用颜色区分它们。形状也很难以小尺寸区分。因此,我们对每种细胞类型/使用颜色不同的字母但是,由于单元格较小,因此需要大幅放大。另一种方法是使用我们的SingleR Web工具或运行代码并使用ggplotly绘图,这两种方法都允许将鼠标悬停在单元格上并查看其标签。
>load (file.path(path,'SingleR.Zheng.200g.RData'))>out = SingleR.PlotTsne(singler$singler[[1]]$SingleR.single, singler$meta.data$xy,do.label = F, do.letters = T,labels = singler$meta.data$orig.ident, dot.size = 1.3,alpha=0.5,label.size = 6)>out$p
我们可以看到tSNE图允许区分大多数细胞类型,但CD4 + T细胞亚群一起模糊。
接下来我们来看看瑟拉集群:
>out = SingleR.PlotTsne(singler$singler[[1]]$SingleR.single, singler$meta.data$xy,do.label = T, do.letters = F,labels=singler$seurat@ident, dot.size = 1.3,label.size = 5,alpha=0.5)>out$p
我们可以看到聚类表现相对较好; 然而,调节性Ť细胞完全溶解在记忆Ť细胞簇中。
使用Blueprint + ENCODE(BE)作为参考的SingleR在微调之前产生了以下注释:
# Note the use of the second iterm in the the singler$singler list to use # the Blueprint+ENCODE reference. The first item is HPCA.# use singler$singler[[i]]$about for meta-data on the reference.>SingleR.DrawHeatmap(singler$singler[[2]]$SingleR.single,top.n=25, clusters = singler$meta.data$orig.ident)
我们可以看到,在微调之前,T细胞状态之间存在强烈的模糊,这是无法区分的。
但是,通过微调,我们获得以下注释:
>out = SingleR.PlotTsne(singler$singler[[2]]$SingleR.single, singler$meta.data$xy,do.label=FALSE,
do.letters
=T,
labels=singler$singler[[2]]$SingleR.single$labels,
dot.size = 1.3, font.size = 6)>out$p
通过观察颜色,我们可以看到CD4 + T细胞群可以大致分为4种状态,从底部的幼稚CD4 + T细胞(绿色)到中央记忆和中间的效应记忆CD4 + T细胞(紫色和橙色)和调节性T细胞在顶部(粉红色),按照原始身份。虽然它并不完美,但它为我们提供了更细粒度的细胞状态视图,而无需查看可能根本不存在于数据中的许多标记,其解释常常令人困惑; 例如:
>genes.use = c('CD3E','CD4','CD8A','CCR7','CXCR5','SELL','IL7R','GNLY','FOXP3')>df = data.frame(x=singler$meta.data$xy[,1], y=singler$meta.data$xy[,2], t(as.matrix(singler$seurat@data[genes.use,])))>df = melt(df,id.vars = c('x','y'))>ggplot(df,aes(x=x,y=y,color=value)) + geom_point(size=0.3)+scale_color_gradient(low="gray", high="blue") + facet_wrap(~variable,ncol=3) +theme_classic()+xlab('')+ylab('')+ theme(strip.background = element_blank())
为了比较微调之前和之后的结果,我们可以查看以下图表(行 - 原始身份,列 - SingleR标签):
>singler$singler[[2]]$SingleR.single$labels1 = gsub('Class-switched','CS',singler$singler[[2]]$SingleR.single$labels1)>singler$singler[[2]]$SingleR.single$labels = gsub('Class-switched','CS',singler$singler[[2]]$SingleR.single$labels)>hsc = c('CLP','CMP','GMP','MEP','MPP')>singler$singler[[2]]$SingleR.single$labels1[ singler$singler[[2]]$SingleR.single$labels1 %in% hsc] = 'HSC'>singler$singler[[2]]$SingleR.single$labels[ singler$singler[[2]]$SingleR.single$labels %in% hsc] = 'HSC'>order1 = c('CD4+ T-cells','CD4+ Tcm','CD4+ Tem','Tregs','CD8+ T-cells', 'CD8+ Tem','CD8+ Tcm','NK cells','naive B-cells', 'Memory B-cells','CS memory B-cells','Monocytes','HSC')>order2 = c('CD4+ Tn','CD4+ Tm','CD4+ Th','Tregs','CD8+ Tn','CD8+ Tcyto', 'NK cells','B-cells','Monocytes','HSC')>a =table(singler$meta.data$orig.ident,singler$singler[[2]]$SingleR.single$labels1)>a = a[order2,order1]>corrplot(a/rowSums(a),is.corr=F,tl.col='black',title = 'Before fine-tuning', mar=c(0,0,2,0))
b = table(singler$meta.data$orig.ident,singler$singler[[2]]$SingleR.single$labels)b = b[order2,order1]corrplot(b/rowSums(b),is.corr=F,tl.col='black',title = 'After fine-tuning', mar=c(0,0,2,0))
我们可以看到,在微调之前,许多CD8 + T细胞被注释为CD4 +(46.5%的CD8 + T细胞)。在最初的郑等人中也报道了细胞与CD4 + T细胞具有最高相关性的这种现象。手稿。微调后,这个数字减少到19.25%。此外,幼稚的CD8 + T细胞在微调之前没有注释,但在微调后已正确注释。
{#CorrectLabeling}总之,分拣器根据原始身份将84.3%的细胞注释为主要细胞类型,距离预期的分选纯度不远:
ident = as.character(singler$meta.data$orig.ident)ident[grepl('CD4',ident)]='CD4+ T-cells'ident[ident=='Tregs']='CD4+ T-cells'ident[grepl('CD8',ident)]='CD8+ T-cells'kable(table(singler$singler[[2]]$SingleR.single.main$labels,ident))
乙细胞 | CD4 + T细胞 | CD8 + T细胞 | HSC | 单核细胞 | NK细胞 | |
---|---|---|---|---|---|---|
乙细胞 | 999 | 2 | 0 | 25 | 8 | 0 |
CD4 + T细胞 | 0 | 2743 | 127 | 1 | 1 | 0 |
CD8 + T细胞 | 1 | 1245 | 1868年年 | 4 | 3 | 15 |
DC | 0 | 0 | 0 | 1 | 1 | 0 |
HSC | 0 | 6 | 0 | 850 | 1 | 2 |
单核细胞 | 0 | 2 | 0 | 119 | 981 | 1 |
NK细胞 | 0 | 2 | 五 | 0 | 五 | 982 |
sum(ident==singler$singler[[2]]$SingleR.single.main$labels)/10000
## [1] 0.8423
有趣的是,SingleR提出了更细粒度的B细胞群视图,将其分解为幼稚和记忆B细胞,这似乎与t-SNE图结构一致:
bcells = SingleR.Subset(singler,grepl('B-cells', singler$singler[[2]]$SingleR.single$labels))out = SingleR.PlotTsne(bcells$singler[[2]]$SingleR.single, bcells$meta.data$xy, dot.size = 3,alpha=0.5)out$p
并通过CD27表达(记忆乙细胞的标记):
df = data.frame(CD27=bcells$seurat@data['CD27',], Labels=bcells$singler[[2]]$SingleR.single$labels)ggplot(df,aes(x=Labels,y=CD27,fill=Labels))+geom_violin(scale='width') + theme(axis.text.x = element_text(angle = 45, hjust = 1))+xlab('')
Kang等人,Nature Biotechnology (2017)使用从scRNA-seq PBMC(来自郑等人)中学习的一组标记来注释单细胞:
out = SingleR.PlotTsne(singler$singler[[2]]$SingleR.single, singler$meta.data$xy,do.label=FALSE, do.letters =T,labels=singler$other[,'Kang'], dot.size = 1.3, font.size = 6)out$p
我们可以看到这种方法的可用性有限,因为它不能区分CD4 +和CD8 + T细胞。请注意,使用10X生成的数据用于此方法中创建参考矩阵,并且它专门针对血液中的免疫子集进行了训练。
李等人的基于批量参考的方法。人,Nature Genetics (2017)使用了基于参考的方法,但没有微调:
library(RCA)tpm_data = TPM(as.matrix(singler$seurat@data),human_lengths)data_obj = dataConstruct(tpm_data);data_obj = geneFilt(obj_in = data_obj);data_obj = cellNormalize(data_obj);data_obj = dataTransform(data_obj,"log10");rownames(data_obj$fpkm_transformed) = toupper(rownames(data_obj$fpkm_transformed))data_obj = featureConstruct(data_obj,method = "GlobalPanel");scores = data_obj$fpkm_for_clustRCA.annot = rownames(scores)[apply(scores,2,which.max)]n = table(RCA.annot)RCA.annot[RCA.annot %in% names(n)[n<5]] = 'Other (N<5)' names(RCA.annot) = colnames(tpm_data)singler$other = cbind(singler$other,RCA.annot)colnames(singler$other) = c('Kang','RCA')
out = SingleR.PlotTsne(singler$singler[[2]]$SingleR.single, singler$meta.data$xy,do.label=FALSE, do.letters =T,labels=singler$other[,'RCA'], dot.size = 1.3, font.size = 6)out$p
同样,我们可以看到参考不能在没有微调的情况下区分CD4 +和CD8 + T细胞。
辛格勒还允许检测罕见事件。例如,让我们深入研究一下排序的单核细胞:
monocytes = SingleR.Subset(singler,singler$meta.data$orig.ident=='Monocytes')out = SingleR.PlotTsne(monocytes$singler[[2]]$SingleR.single, monocytes$meta.data$xy,do.label=F, do.letters =T, dot.size = 2)out$p
我们可以看到t-SNE图已经表明有18个细胞不属于主要簇(这意味着分选纯度为~98%)。SingleR检测到这些细胞是浆细胞(8个细胞),T细胞(2个细胞),3个NK细胞和1个DC。的英文分拣正确的吗?
出于演示目的,我们仅绘制来自主群集的18个单元格和其他18个单元格:
cells.use = c(sample(which(monocytes$singler[[2]]$SingleR.single$labels=='Monocytes'),18), which(monocytes$singler[[2]]$SingleR.single$labels!='Monocytes'))SingleR.DrawHeatmap(monocytes$singler[[2]]$SingleR.single,top.n = 20,cells.use=cells.use)
我们可以看到分拣器在其调用中非常有说服力,给予那些细胞低单核细胞评分。使用稀有细胞类型的标记物(至少在单核细胞分选的细胞中)是有问题的,因为基于标记物的分析集中在簇而不是单个细胞上。
在这里,我们使用了200个非零基因(nGenes)的阈值。与案例研究1一样,nGenes与每个细胞的最大得分之间存在很强的相关性:
nGene=singler$seurat@meta.data$nGenedf = data.frame(Max.Score=apply(singler$singler[[1]]$SingleR.single$scores,1,max), nGene=nGene,Orig.ident=singler$meta.data$orig.ident)ggplot(df,aes(x=nGene,y=Max.Score,color=Orig.ident))+geom_point(size=0.2,alpha=0.5)+ guides(color = guide_legend(override.aes = list(size = 3)))
问题是具有低“最大得分”的细胞是否不太可靠。我们看到这在某种程度上是正确的 - 使用主要单元格类型的“正确”标记度量,我们可以看到,对于更多nGenes,注释往往更准确:
Correct.Ident = unlist(lapply(seq(from=200,to=3000,by=50),FUN=function(x) { A=nGene>=x sum(ident[A]==singler$singler[[2]]$SingleR.single.main$labels[A])/sum(A)}))df = data.frame(nGene=seq(from=200,to=3000,by=50),Correct.Ident)ggplot(df,aes(x=nGene,y=Correct.Ident))+geom_smooth(method = 'loess')
在案例研究3中,我们继续探索分拣正确注释细胞的能力,作为非零基因数量的函数。
我们能否确定注释置信度的显着性检验?
根据上图,可能的方法是使用分数阈值。但是,我们可以看到即使是低分也很可靠。这是因为辛格勒得分与nGenes相关联,但对于给定单细胞,注释对于参考数据中的细胞类型是相对的。因此,我们引入了显着性检验,检验顶部细胞类型的得分是否与大多数低得分细胞类型不同。我们使用卡方异常值检验得到最高分,其中零假设是它不是异常值。此测试不能为微调注释提供信心,但可以建议单个单元格是否没有足够的信息进行注释。我们可以用-log10(p值)看到叔SNE图:
SingleR.PlotFeature(singler$singler[[2]]$SingleR.single,singler$seurat, plot.feature = -log10(singler$singler[[2]]$SingleR.single.main$pval))
该图表明,对于一个HSC群集,信心大于另一个,但对NK细胞和乙细胞注释的信心:
df = data.frame(nGene=singler$seurat@meta.data$nGene, pval=-log10(singler$singler[[2]]$SingleR.single.main$pval), Identity=singler$meta.data$orig.ident)ggplot(df,aes(x=Identity,y=pval,color=Identity))+geom_boxplot()+ ylab('-log10(p-value)')+theme(axis.text.x = element_text(angle = 45, hjust = 1))
重要的是,我们可以看到此测试不依赖于nGenes:
ggplot(df,aes(x=nGene,y=pval,color=Identity))+geom_point(size=0.3)+ guides(color = guide_legend(override.aes = list(size = 3)))+ ylab('-log10(p-value)')
细胞中辍学的数量变化很大,并且可能对正确注释细胞的能力产生强烈影响。在这里,我们通过模拟具有已知身份的细胞中不同数量的非零基因(nGenes)来进一步探索这个问题。
根据案例研究2中提供的分类10X数据集(不包括CD4 +辅助T细胞,CD4 +记忆T细胞重新排列),我们随机选择10个细胞,其中至少1000个nGenes,由SingleR正确注释(调整)。
从每个细胞中的非零基因,我们选择千个基因为非零,其余基因切换为0; 。因此,所有细胞都有千非零个基因在微调之前状语从句:之后,我们通过分拣器计算了正确的推论。然后,我们迭代地移除50个基因,运行SingleR,并再次计算正确注释的数量。我们重复这个过程10次,随机选择不同的基因去除.Github 存储库中提供了此分析的代码。
我们将正确注释的百分比绘制为nGenes的函数(显示标准误差):
source('simulations_functions.R')files = dir('simulations/',full.names = T,pattern = 'RData')res = list()res$correct = matrix(NA,19,length(files))res$correct.nft = matrix(NA,19,length(files))for (i in 1:length(files)) { load(files[i]) res$correct[,i] = correct res$correct.nft[,i] = correct.nft }res$correct = 100*res$correct/90res$correct.nft = 100*res$correct.nft/90rownames(res$correct) = seq(1000,100,by=-50)rownames(res$correct.nft) = seq(1000,100,by=-50)correct = melt(rbind(res$correct,res$correct.nft))correct$FineTune=rep(c(rep('TRUE',nrow(res$correct)),rep('FALSE',nrow(res$correct))),ncol(res$correct))colnames(correct)[1]='nGenes'correct <- summarySE(correct, measurevar="value", groupvars=c("nGenes",'FineTune'))ggplot(correct, aes(x=nGenes, y=value,color=FineTune)) + geom_errorbar(aes(ymin=value-se, ymax=value+se), width=.1) + geom_line() + geom_point()+theme_classic()+ylab('% correct')
我们可以看到分拣的精度逐渐下降是nGenes的函数。这在微调注释(蓝线)中更为明显,它显示了微调以区分密切相关的细胞类型的重要性,即使有更多的基因可用。在500个基因中,我们观察到90%,并且随着基因的减少,下降更明显,支持我们选择在我们的小鼠肺损伤分析中使用> 500nGenes。
每个细胞类型的细胞系显示,正如预期的那样,基因越少,难以区分密切相关的细胞类型(该数据中的Ť细胞亚群):
B = c()for (k in 1:length(files)) { load(files[k]) ct=unique(names(unlist(lapply(tbl,FUN=function(x) x[,'B-cells'])))) ident = colnames(tbl[[1]]) b = matrix(0,length(ident),length(tbl)) for (j in 1:length(ident)) { a=matrix(0,length(ct),length(tbl)) rownames(a) = ct for (i in 1:length(tbl)) { x = tbl[[i]][,ident[j]] a[names(x),i] = x } b[j,] = switch(ident[j], 'B-cells' = colSums(a[grepl('B-cell',rownames(a)),]), 'CD4+ Tm' = colSums(a[rownames(a) %in% c('CD4+ Tcm','CD4+ Tem'),]), 'CD4+ Tn' = a[rownames(a)=='CD4+ T-cells',], 'CD8+ Tcyto' = colSums(a[rownames(a) %in% c('CD8+ Tcm','CD8+ Tem'),]), 'CD8+ Tn' = a[rownames(a)=='CD8+ T-cells',], 'HSC' = colSums(a[rownames(a) %in% c('CLP','MEP','GMP','MPP'),]), 'Monocytes' = a[rownames(a)=='Monocytes',], 'NK cells' = a[rownames(a)=='NK cells',], 'Tregs' = a[rownames(a)=='Tregs',] ) } rownames(b) = ident colnames(b) = seq(1000,100,by=-50) if (length(B)==0) { B = b } else { B = rbind(B,b) }}df = melt(B)colnames(df) = c('CellType','nGenes','value')df <- summarySE(df, measurevar="value", groupvars=c("nGenes",'CellType'))ggplot(df, aes(x=nGenes, y=value,color=CellType)) + geom_errorbar(aes(ymin=value-se, ymax=value+se), width=.1) + geom_line() + geom_point()+theme_classic()+ylab('# correct')+scale_color_manual(values=singler.colors)
该分选网络工具包含> 50可公开获得的scRNA-seq的数据集。所有数据都已使用上述工具进行了重新处理,并且Web工具允许用户立即访问以分析数据并对已发布的单细胞数据进行进一步调查。此外,我们邀请用户上传他们自己的scRNA-SEQ数据,这些数据将在我们的服务器上进行分析并发送回用户。然后可以在网站上上载并进一步分析处理后的分拣器对象(私下,只有具有该对象的用户才能查看它)。请访问http://comphealth.ucsf.edu/SingleR了解更多信息。
Kang,Hyun Min,Meena Subramaniam,Sasha Targ,Michelle Nguyen,Lenka Maliskova,Elizabeth McCarthy,Eunice Wan,et al。“使用天然遗传变异的多重液滴单细胞RNA测序。” Nature Biotechnology 36(1)。自然出版集团:89-94.doi:10.1038 / nbt.4042。
Kimmerling,Robert J.,Gregory Lee Szeto,Jennifer W. Li,Alex S. Genshaft,Samuel W. Kazer,Kristofor R. Payer,Jacob de Riba Borrajo,et al。2016年。“一种微流体平台,可实现多自谱系的单细胞RNA-seq。“ Nature Communications 7(1月).Nature Publishing Group:10220.doi:10.1038 / ncomms10220。
Li,Huipeng,Elise T Courtois,Debarka Sengupta,Yuliana Tan,Kok Hao Chen,Jolene Jie Lin Goh,Say Li Kong,et al。2017年。“单细胞转录组的参考组分分析阐明了人结肠直肠肿瘤中的“细胞异质性。” Nature Genetics 49(5):708-18.doi :10.1038 / ng.3818。的细胞异质性。
郑春红,郑良涛,赵宰光,郭华虎,张元元,郭新义,博义康,等。2017年。“通过单细胞测序揭示肝癌中浸润性T细胞的景观。” Cell 169(7):1342-1356.e16。doi:10.1016 / j.cell.2017.05.035。
联系客服