单细胞基础课程练习题

单细胞基础视频课程结束了,不知道大家学的怎么样,看起来线下学徒和实习生都学的挺好的,还有详细的笔记分享,考虑到大部分人是没有机会线下接受指导,有必要出一份考题督促或者提醒大家赶紧学完基础课程!全网第一个单细胞课程(基础)满一千份销量就停止发售
其中 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相关的高通量单细胞转录组,第二个课程,我会继续出考题。

Comments are closed.