美文网首页scRNA
scRNA---Day1(smartseq2)

scRNA---Day1(smartseq2)

作者: 茶馆先生的马褂 | 来源:发表于2020-04-27 21:06 被阅读0次
    Bulk思路理解SC
    1. 读取RNA-seq的 counts 定量结果,表达矩阵需要进行简单的过滤
      dat=a[apply(a,1, function(x) sum(x>1) > floor(ncol(a)/50)),]
      筛选表达量合格的行(基因), 列(细胞)数不变,筛选出符合条件的基因,即至少在2%的细胞中表达。
    2. 对 某基因在某样本中的表达量的统计计算
      log2(18*1000000/sum(dat[,3])+1)
      counts数为18(样本所在表达矩阵为第三列),
      dat=log2(edgeR::cpm(dat)+1)
      对所有表达数据进行log及归一化处理
    3. dist函数计算样本直接距离和cor函数计算样本直接相关性,是完全不同的概念。虽然我都没有调它们两个函数的默认的参数。
    • dist函数计算行与行(样本)之间的距离
    • cor函数计算列与列(样本)之间的相关性
    • scale函数默认对每一列(样本)内部归一化
    • 计算dist之前,最好是对每一个样本(列)进行scale一下
      eg: dist(t(scale(tmp))) 这里默认为euclidean
    1. 层次聚类
      hc=hclust(dist(t(dat))) 确实如教程所说,样本较多非常耗时
    2. scale函数 去中心化和标准化
    x=1:10;plot((x))
        scale(x);plot(scale(x))
    

    n[n>2]=2#矩阵n中归一化后,大于2的项,赋值使之等于2(相当于设置了一个上限)

    1. PCA
      dat.pca <- PCA(dat[,-ncol(dat)], graph = FALSE) 现在dat最后一列值为group_list,需要去掉最后一列赋值给dat.pca才能作图,其中ncol(dat)返回列值,dat[ ,-ncol(dat)]即把最后一列值删除。(就是删除分组信息)
    2. CV^2
    mean_per_gene <- apply(exprSet, 1, mean, na.rm = TRUE) #对表达矩阵每行求均值
    sd_per_gene <- apply(exprSet, 1, sd, na.rm = TRUE) #对表达矩阵每行求标准差
    mad_per_gene <-   apply(exprSet, 1, mad, na.rm = TRUE) #对表达矩阵每行求绝对中位差
    
    1. with函数(之前学习R语言时见到过,无奈有忘记了)
      https://blog.csdn.net/Megajojo/article/details/81626919
      with() attatch-dettach()

    相关文章

      网友评论

        本文标题:scRNA---Day1(smartseq2)

        本文链接:https://www.haomeiwen.com/subject/pkwbwhtx.html