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

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

文字版教程

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

  • (一)听说课程配笔记,学习无压力
  • (二)单细胞转录组学习笔记-2
  • (三)单细胞转录组上游分析之shell回顾
  • (四)获取Github代码包以及准备工作

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

  • (五)常说的表达矩阵,那得到之后呢?
  • (六)由表达矩阵看内部异质性
  • (七)重复平均表达量和变异系数相关性散点图
  • (八)聚类算法之PCA与tSNE
  • (九)统计细胞检测的基因数量
  • (十)乳腺癌领域之PAM50分类
  • (十一)生物学背景知识之细胞周期推断
  • (十二)RPKM概念及计算方法
  • (十三)差异分析及KEGG注释简介

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

  • (十四)学习scRNAseq这个R包
  • (十五)利用scRNAseq包学习scater
  • (十六)用Scater包分析文章数据
  • (十七)用Seurat包分析文章数据(二)
  • (十八)scRNA包学习Monocle2
  • (十九)使用monocle2分析文章数据

    第四单元:重复文章图表

  • (二十)使用作者代码重复结果

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

  • (二十一)基因在任意癌症表达量相关性
  • (二十二)评估任意基因集在癌症的表现
  • (二十三)多个基因集相关性热图

    习题

    其中 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类!

Comments are closed.