单细胞基础视频课程结束了,不知道大家学的怎么样,看起来线下学徒和实习生都学的挺好的,还有详细的笔记分享,考虑到大部分人是没有机会线下接受指导,有必要出一份考题督促或者提醒大家赶紧学完基础课程!全网第一个单细胞课程(基础)满一千份销量就停止发售
其中 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等等,也可以使用复杂的公式。
提示,如果被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类!后记
因为全网第一个单细胞转录组视频课程,针对的仍然是低通量细胞的数据,如果确实感兴趣10x相关的高通量单细胞转录组,第二个课程,我会继续出考题。