Seurat用来分析bulkRNA,这就是降维打击

Seurat作为知名的单细胞数据软件,真的是非常棒,让分析过程变得简洁高效,无需花费很多的学习成本便可以上手。虽然该软件是为单细胞数据设计而来,但也不妨碍用来分析bulkRNA数据。利用软件的框架优势,也可以让分析过程变得简单。比如,借助Seurat来做差异分析和PCA就挺简单的。

library(Seurat)

cnt <- read.table('sample_counts.txt', header=T, stringsAsFactors=F, sep='\t', row.names=1)
metadata <- data.frame(orig.ident=colnames(cnt), group=rep(c('ctrl', 'case'), each=3))
obj <- CreateSeuratObject(cnt, meta.data=metadata, min.cells=1)
obj
An object of class Seurat
30706 features across 6 samples within 1 assay
Active assay: RNA (30706 features, 0 variable features)
 1 layer present: counts

obj <- NormalizeData(obj, scale.factor=1000000)
dge <- FindMarkers(obj, slot='counts', test.use='DESeq2', logfc.threshold=0, min.pct=0, only.pos=F, min.cells.group=0, ident.1='case', ident.2='ctrl', group.by='group')
head(dge)
                           p_val avg_log2FC pct.1 pct.2     p_val_adj
ENSG00000103148.16 3.958866e-110 -2.0548100     1     1 1.215609e-105
ENSG00000145425.10 5.638460e-103  6.5640462     1     1  1.731346e-98
ENSG00000147604.14  1.008573e-93  7.0755405     1     1  3.096926e-89
ENSG00000174358.16  2.299650e-93 -5.6097944     1     1  7.061304e-89
ENSG00000204463.12  3.863674e-93 -0.8252748     1     1  1.186380e-88
ENSG00000136840.19  1.534368e-92 -2.1498954     1     1  4.711432e-88

差异分析过程几行代码就可以搞定了,然后就可以用差异列表进行后续的分析了。
通常bulkRNA分析会用PCA来看看样本间的关系,这个过程在Seurat里面也就是调用几个函数的事,顺带连可视化都一起出来:

obj <- ScaleData(obj, features=rownames(obj))
obj <- RunPCA(obj, features=rownames(obj), npcs=2, ndims.print=2)

DimPlot(obj, reduction="pca", pt.size=3, label.size=13, group.by='group') + theme_test()

通常可以选择变化较大的前N%基因来做PCA,上面使用了全部的基因。那么,如果需要选择,上面的过程就可以变成下面的几行代码:

obj <- FindVariableFeatures(obj, nfeatures=ceiling(length(rownames(obj)) * 0.2))
obj <- ScaleData(obj)
obj <- RunPCA(obj, npcs=2, ndims.print=2)

通过上面的示例,可以感受到借助Seurat来做这些事,过程好像变得简单了,这可能就是好软件的魅力。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容