查看原文
其他

跟着全网第一个单细胞视频课程和配套习题学是最佳策略

生信技能树 单细胞天地 2022-06-06

这里不是要宣传课程,我再三强调你其实可以不需要购买视频了,除非你对我的声音有特殊的爱好,或者其他我不知道的原因,我们已经有了完整版文字教程以及配套GitHub代码啦!

而且,文末的习题非常重要!

文字版教程

第一单元:文献背景及课程介绍

第二单元:常规转录组基础知识回顾

第三单元:单细胞3大R包的学习

第四单元:重复文章图表

第五单元:结合公共数据库

习题

其中 1-10题是针对scRNAseq包的单细胞表达矩阵测试大家对单细胞转录组的理解,已经部分统计可视化基础知识。主要参考数据集的教程:study_scRNAseq.html :http://bio-info-trainee.com/tmp/scRNA/study_scRNAseq.html

第 11-20题是使用3大R包从细胞的降维和分群到每个群细胞的功能注释,最后到公共数据库的注释,生存分析看不同细胞亚群的临床意义。

第一部分

Q1: 在rstudio里面下载安装scRNAseq包

注意切换镜像哦,留意一下你安装scRNAseq包的时候,附带安装了多少个其它依赖包!

Q2: 找到scRNAseq包数据的文献

注意文章其实是 301 cells (mixture of 11 different cell types) (Pollen et al., 2014).但是scRNAseq包里面只有130个细胞,就4类,分别是 pluripotent stem cells 分化而成的 neural progenitor cells (“NPC”) ,还有 “GW16” and “GW21” ,“GW21+3” 这种孕期细胞。

Q3: 加载scRNAseq包并且探索表型信息

主要是找到文库大小那一列,因为这130个细胞数据的测序深度不一样,可以很明显区分成为两组

Q4: 加载scRNAseq包并且探索表达矩阵

有多少个基因在所有的130个细胞均不表达?多少个基因在所有细胞都表达呢?所有的细胞平均表达多少个基因呢?过滤表达矩阵,主要是剔除那些在所有细胞均不表达的基因。

Q5: 对过滤后的表达矩阵取top1000的mad基因

同时对top1000的sd,cv,mean,和mad的基因做韦恩图

Q6: 对top1000的mad基因表达矩阵进行相关性热图,hclust可视化,pca可视化

注意这个时候的表达矩阵是1000个基因的130个细胞

Q7: 对pca的前5个主成分矩阵进行tSNE

这个时候是5个主成分的130个细胞的矩阵,所以tSNE运算很快!拿到tSNE的二维坐标并且可视化。

Q8: 对tSNE的二维坐标进行kmeans或者dbscan算法聚类

使用table函数比较kmeans或者dbscan算法聚类的区别,也可以跟细胞原始Biological_Condition比较。

Q9: 把测序深度分组当做批次效应使用SVA包的combat函数去除

自行搜索SVA包的combat函数用法,学会微信搜索

Q10: 把测序深度分组当做批次效应使用scran包的MNN算法进行去除

首先需要读https://mp.weixin.qq.com/s/i4_kzuAkNZYnB_DfwS-Ppg了解多个单细胞转录组样本数据整合的来龙去脉,然后参考https://mp.weixin.qq.com/s/j5qKzR7LHVNp1v1wRAImQg 使用使用scran包的MNN算法来去除多个单细胞转录组数据批次效应!

如果你能学会我的这个rmarkdown报表格式的写作就最好了,加油!

第二部分

单细胞R包如过江之卿,这里只考核大家5个R包,分别是: scater,monocle,Seurat,scran,M3Drop 需要熟练掌握它们的对象,:一些单细胞转录组R包的对象 而且分析流程也大同小异:

  • step1: 创建对象

  • step2: 质量控制

  • step3: 表达量的标准化和归一化

  • step4: 去除干扰因素(多个样本整合)

  • step5: 判断重要的基因

  • step6: 多种降维算法

  • step7: 可视化降维结果

  • step8: 多种聚类算法

  • step9: 聚类后找每个细胞亚群的标志基因

  • step10: 继续分类

Q11: 使用scater或者scran包对scRNAseq包内置的表达矩阵和临床信息创建对象

注意这两个R包都是SingleCellExperiment函数,这个 SingleCellExperiment 对象,被很多单细胞R包采用。

Q12: 使用monocle,Seurat,M3Drop同样的创建对象

注意,这3个R包创建对象的函数各不相同,其中Seurat还有V2,V3版本的差异。

Q13:对scRNAseq包内置的表达矩阵根据基因或者细胞进行过滤

提示,如果被R包(scater,monocle,Seurat,scran,M3Drop )包装后的过滤,需要考虑对象问题,不同R包的函数不一样,比如:

sce@raw.data
GetAssayData()
calculateQCMetrics(),其中的feature_controls参数可以指定过滤指标,然后有一系列的可视化函数。过滤用filter()或isOutlier()
用基础R函数进行初步过滤,还可以用detectGenes()函数加上subset()过滤
用基础R函数进行初步过滤

Q14: 对scRNAseq包内置的表达矩阵寻找重要的基因

如果是表达矩阵本身基因判断重要性,可以使用简单统计量,比如 MAD,SD,MEAN,CV等等,也可以使用复杂的公式。(PS: 关于这个寻找重要的基因,我还写过:比较5种scRNA鉴定HVGs方法  )

提示,如果被R包(scater,monocle,Seurat,scran,M3Drop )包装后的需要考虑对象问题,不同R包的函数不一样,比如:

FindVariableGenes()
FindVariableFeatures(),其中算法有变动
没有专门函数
differentialGeneTest()函数
monocle版本3和版本2的差异分析可以说是完全不同,版本3取代了2中的differentialGeneTest() and BEAM()。它利用fit_models()或graph_test()

Q15:对scRNAseq包内置的表达矩阵进行降维

这里只需要数量找我PCA和tSNE即可,基础包可以做,如果被R包(scater,monocle,Seurat,scran,M3Drop )包装后的需要考虑对象问题,不同R包的函数不一样,比如:

PCA:RunPCA(),参数pc.genes,结果存储在sce@dr
PCA:RunPCA(),参数features,结果存储在sce@reductionspca@gene.loadingstSNE:RunTSNE()∣PCA:RunPCA(),参数features,结果存储在sce@reductionspca@feature.loadings tSNE:RunTSNE()
PCA:runPCA(),结果在reducedDims中;tSNE:runTSNE()
reduceDimension函数,可以选择多种参数
reduce_dimension(),算法包括UMAP", "tSNE", "PCA" and "LSI"

这个时候需要仔细思考,R包作者的创作思路。

Q16: 降维后的细胞聚类

注意切换镜像哦,基础包可以做,比如对tSNE的二维坐标进行kmeans或者dbscan算法聚类,但是如果被R包(scater,monocle,Seurat,scran,M3Drop )包装后的需要考虑对象问题,不同R包的函数不一样,比如:

FindClusters()
FindNeighbors() + FindClusters()
没有包装聚类函数,可以辅助其它R包,或者R基础函数
clusterCells()
cluster_cells(),依赖一个Python模块louvain

Q17: 细胞分群后找marker基因

基础包可以做,主要是传统bulk转录组的差异分析思路,但是如果被R包(scater,monocle,Seurat,scran,M3Drop )包装后的需要考虑对象问题,不同R包的函数不一样,比如:

FindMarkers()或FindAllMarkers()
FindMarkers()或FindAllMarkers(),VlnPlot()、FeaturePlot()可视化
借助SC3包
newCellTypeHierarchy()、 classifyCells()
top_markers()

Q18: 2017年NC的乳腺癌

下载发表在 Nat Commun. 2017 May 的文献, 耗时一年才发表,算是乳腺癌领域非常早的单细胞转录组研究了,韩国人做的,题目是:Single-cell RNA-seq enables comprehensive tumour and immune cell profiling in primary breast cancer.  找到单细胞转录组表达矩阵 :GSE75688  下载表达矩阵和样本信息,从GSE75688_GEO_processed_Breast_Cancer_raw_TPM_matrix.txt.gz文件里面仅仅是提取非tumor的细胞,使用SingleCellExperiment函数构建 SingleCellExperiment 对象后走scater的PCA并且可视化,看看表型文件GSE75688_final_sample_information.txt.gz记录的细胞类型是否区分的很开。

Q19: 2016年4月science杂志的黑色素瘤

下载发表在Science. 2016 Apr,题目是: Dissecting the multicellular ecosystem of metastatic melanoma by single-cell RNA-seq. 文献,找到单细胞转录组表达矩阵  GSE72056, 研究者选择了 19个黑色素瘤病人,获得了4645个单细胞,进行转录组测序。文件是 GSE72056_melanoma_single_cell_revised_v2.txt.gz,载入R里面走scater流程即可。

Q20: 2017年12月CELL杂志的头颈癌

下载发表于2017年12月,在CELL杂志:Single-Cell Transcriptomic Analysis of Primary and Metastatic Tumor Ecosystems in Head and Neck Cancer 的文献,找到单细胞转录组表达矩阵,数据公布在 GSE103322 。研究者用Smart-seq2建库方法得到的单细胞转录组数据经过QC后,留下了来自18名患者的5,902个细胞,首先可以分成2215个恶性细胞和3363个非恶性细胞。文件是 GSE103322_HNSCC_all_data.txt.gz,有86.0 Mb,对进行3363个非恶性细胞表达矩阵分群,根据已知标记基因(自行搜索)的表达,注释并且找到B细胞,巨噬细胞,树突状细胞,肥大细胞,内皮细胞,成纤维细胞和肌细胞这8类!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存