cytof数据处理难点之合并两个不同panel的数据集

前面我们已经完成了cytof数据处理的主要步骤,读入文件,质量控制,降维聚类分群,生物学注释和细胞亚群比例差异分析。目录如下:

其实跟纯粹的单细胞转录组就非常类似了,不过单细胞转录组数据分析的细节以及背景我就不赘述了,看我在《单细胞天地》的单细胞基础10讲:

以及各式各样的个性化汇总教程,差不多就明白了。

基本流程走完了,仅仅是万里长征第一步而已。我们可以开始尝试分析一些文献的公共数据集啦,不过在处理那些数据的过程中,我们还需要传授给大家几个小技巧。

合并两个不同panel的cytof数据集

有一些情况下,你的同一个实验项目的多个FCS文件,它们的抗体顺序并不一致。如下:

  sce1 <- prepData(fs, panel, md, features = panel$fcs_colname)
  sce2 <- prepData(fs, panel, md, features = panel$fcs_colname)
  rowData(sce1)[,1]
  rowData(sce2)[,1]

可以看到,两个数据集的panel其实是一样的:

>   rowData(sce1)[,1]
[1] "PerCP-Cy5-5-A"     "APC-H7-A"          "BV510-A"           "PE-Cy7-A"         
[5] "BV421-A"           "Alexa Fluor 647-A" "PE-A"              "FITC-A"           
>   rowData(sce2)[,1]
[1] "PerCP-Cy5-5-A"     "APC-H7-A"          "BV510-A"           "PE-Cy7-A"         
[5] "PE-A"              "Alexa Fluor 647-A" "FITC-A"            "BV421-A" 

都是8个抗体,但是呢,顺序不一样。

这个时候需要对 SingleCellExperiment 对象了如指掌:http://www.bioconductor.org/packages/release/bioc/vignettes/scater/inst/doc/overview.html

different quantifications (e.g., counts, CPMs, log-expression) can be stored simultaneously in the assays slot, 
and row and column metadata can be attached using rowData and colData, respectively.
metadata(1): experiment_info
assays(2): counts exprs

首先把SingleCellExperiment对象拆分

SingleCellExperiment对象比较复杂,需要自行阅读,http://www.bioconductor.org/packages/release/bioc/vignettes/scater/inst/doc/overview.html

拆分的代码如下:

  ct1=assay(sce1,1)
  ct1[1:4,1:4]
  ex1=assay(sce1,2)
  ex1[1:4,1:4]
  r1=as.data.frame(rowData(sce1))
  c1=as.data.frame(colData(sce1))
  
  ct2=assay(sce2)
  ct2[1:4,1:4]
  ex2=assay(sce2,2)
  ex2[1:4,1:4]
  r2=as.data.frame(rowData(sce2))
  c2=as.data.frame(colData(sce2))

然后把两个抗体对齐:

  r1;r2
  n=match(r1$channel_name,r2$channel_name)
  r1;r2[n,]
  
  # 首先合并抗体信号矩阵
  ct=cbind(ct1,ct2[n,])
  ex=cbind(ex1,ex2[n,])
  # 然后合并细胞的样本来源及其分组信息
  phe=rbind(c1,c2)
  head(phe)
  # 最后确定抗体的标记信息
  r1 # 因为r2已经被修改回来成为了r1
  # 参考   http://www.bioconductor.org/packages/release/bioc/vignettes/scater/inst/doc/overview.html 
  

有了两个矩阵,assays(2): counts exprs ,以及抗体信息,样品信息,就可以重新组建SingleCellExperiment对象,它比较复杂,需要自行阅读,http://www.bioconductor.org/packages/release/bioc/vignettes/scater/inst/doc/overview.html

最后重新组建SingleCellExperiment对象

代码超级简单

 sce <- SingleCellExperiment(
    assays = list(counts = ct,exprs=ex), 
    colData = phe,
    rowData = r1
  )
  sce 

得到的全新的SingleCellExperiment对象就包含了两个不同panel顺序的cytof数据集啦。

如果不仅仅是panel顺序不一样

panel本身也不一样,就比较麻烦了,不同的panel可能研究的生物学问题不一样,或许有批次效应等其它未知的混杂因素。

需要具体问题具体分析啦。

(0)

相关推荐

  • release

    音标(Phonetic symbol):[ri'li:s]词性及解释 Part of speech and definationn. 释放, 发泄, 豁免, 发行, 释放证书vt. 释放, 解除, 放 ...

  • 代谢组连载-MetaboDiff包-上

    写在前面 代谢组目前在人体上的发展比较快也比较早,很多数据库当然都比较完善,总是在发展,环境代谢组机会还是蛮多的. 这次介绍的MetaboDiff包拥有一套对代谢组懂数据预处理到结果分析和可视化完整解 ...

  • MPB:中科院城环所苏建强、朱永官等-功能基因高通量定量方法

    为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...

  • cytof数据处理难点之细胞数量平衡

    前面我们已经完成了cytof数据处理的主要步骤,读入文件,质量控制,降维聚类分群,生物学注释和细胞亚群比例差异分析.目录如下: 1.cytof数据资源介绍(文末有交流群) 2.cytofWorkflo ...

  • cytof数据处理难点之细胞亚群继续分群

    前面我们已经完成了cytof数据处理的主要步骤,读入文件,质量控制,降维聚类分群,生物学注释和细胞亚群比例差异分析.目录如下: 1.cytof数据资源介绍(文末有交流群) 2.cytofWorkflo ...

  • cytof数据处理难点之修改FCS文件

    前面我们已经完成了cytof数据处理的主要步骤,读入文件,质量控制,降维聚类分群,生物学注释和细胞亚群比例差异分析.目录如下: 1.cytof数据资源介绍(文末有交流群) 2.cytofWorkflo ...

  • 龚状元合并两个名方,搞定各种头痛,无论偏正,皆有奇效

    头痛分全头痛.偏头痛.巅顶痛.前额痛.后头痛等,各有各的方子,偏头痛有陈士铎的散偏汤,巅顶痛有张仲景的吴茱萸汤-- 如果要找一个方子可以把所有的头痛一并搞定,那就要用明代"医林状元" ...

  • excel怎样合并两个单元格中的文字

    原创 | 浏览:18500 | 更新:2019-11-28 19:48 | 标签:EXCEL 1 2 3 4 5 分步阅读 excel怎样合并两个单元格中的文字?选择需要合并的两个单元格文字后面的单元 ...

  • 痉挛性斜颈治疗难点有哪两种

    痉挛性斜颈的治疗,难点无非就是那两种,一种就是前期疾病的判断上,不要发生误诊误治的情况,另一种就是治疗方法的选择上,选择好的治疗方法,才能取得事半功倍的效果. 首先说一下疾病的判断上,痉挛性斜颈是一种 ...

  • (1条消息) 无痛合并两个有序链表

    (1条消息) 无痛合并两个有序链表

  • 别再粘粘粘,合并两个Excel表格很简单!

    有两个表格:本年计划表 和 本年实际表,要求把这两个表格合并到一起,生成实际计划对比表. 多数人是先分多次插入空列,然后一列一列的粘贴,最后逐列设置公式.其实有更简单的方法. 操作步骤: 1.在本年实 ...

  • 每日一题 剑指offer(合并两个排序列表)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...