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

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

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

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

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

修改FCS文件

FCS文件类型,流式细胞术数据文件标准。流式细胞术数据文件标准于1984年发布,以促进流式细胞术数据分析软件与在不同类型的流式细胞术仪器上获取的数据的互操作性。

该标准在1990年修订为FCS 2.0,在1997年修订为FCS 3.0,在2010年修订为FCS 3.1。

2020年9月3日Spidlen J等人在Cytometry A杂志上提出了FCS 3.2,该修订版满足了一些新需求和建议,并结合了十年来整个细胞仪领域的进步。

FCS 3.2规范完整版可以下载http://flowcyt.sf.net/fcs/fcs32.pdf

为什么要修改它呢?

因为有可能是你的同一个实验项目的多个FCS文件,它们的抗体顺序并不一致。

读取fcs文件的函数来自于  flowCore 包

我们读取fcs文件,可以读取一个文件夹下面的全部fcs文件,或者单个fcs文件独立读取。

代码如下:

p1='files'
fs1=list.files(p1,'*fcs' )
fs1
# 可以读取一个文件夹下面的全部fcs文件
samp <- read.flowSet(files = fs1,path = p1)

# 或者单个fcs文件独立读取
cytof_list <- lapply(fs1, function(x){
  read.flowSet(files = x ,path = p1) 
}) 
cytof_list
lapply(cytof_list,colnames)
lapply(cytof_list,function(x) dim(x[[1]]@exprs))
# 具体看每一个fcs文件      
tmp=cytof_list[[1]][[1]]
dim(tmp@exprs) 
tmp@parameters@data
       

首先需要明白读取fcs文件的函数来自于  flowCore 包:

read.flowSet {flowCore} ## 批量读取文件夹下面的全部fcs文件
read.FCS {flowCore} ## 单个fcs读取

简单的思考,既然是有read.FCS可以猜出应该是有 write.FCS {flowCore}

修改flowFrame-class

使用read.FCS {flowCore} 读取fcs文件后是一个 flowFrame-class,需要修改它就得先理解它:

This class represents the data contained in a FCS file or similar data structure. There are three parts of the data:
a numeric matrix of the raw measurement values with rows=events and columns=parameters
annotation for the parameters (e.g., the measurement channels, stains, dynamic range)
additional annotation provided through keywords in the FCS file

构建它的代码是:

new("flowFrame",
exprs = ...., Object of class matrix
parameters = ...., Object of class AnnotatedDataFrame
description = ...., Object of class list
)

最终代码如下:

ids=table(unlist(lapply(cytof_list,colnames)))
id=names(ids[ids==8])
id
dir.create('new')
fs=list.files('old',pattern = '*fcs')
fs
lapply(fs, function(x){
  tmp=read.FCS(file.path('old',x))
  tmp@exprs=tmp@exprs[,id]
  tmp@parameters@data=tmp@parameters@data[match(id,tmp@parameters@data$name ),]
  write.FCS(tmp,file.path('new',x))
})
p1='new'
fs1=list.files(p1,'*fcs' )
fs1
samp <- read.flowSet(files = fs1,path = p1)

(0)

相关推荐

  • hadoop伪分布模式的配置和一些常用命令

    大数据的发展历史 3V:volume.velocity.variety(结构化和非结构化数据).value(价值密度低) 大数据带来的技术挑战 存储容量不断增加 获取有价值的信息的难度:搜索.广告.推 ...

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

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

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

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

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

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

  • 不修改镜像文件,直接绕开限制,无视TPM...

    不修改镜像文件,直接绕开限制, 无视TPM与安全启动的ISO引导方法安装windows 11: 1.下载win11 ISO镜像, 2.解压ISO镜像, 3.打开注册表编辑器(regedit), 4.定 ...

  • cytofWorkflow之读入FCS文件(一)

    前面我们公布了<cytof数据资源介绍(文末有交流群)>,现在就开始正式手把手教学.首先是cytofWorkflow的解析,这个cytofWorkflow基本上涵盖了以FCS文件格式存放的 ...

  • 修改colab文件的名字

    表白:黑白圣堂血天使,天剑鬼刀阿修罗.  讲解对象:/修改colab文件的名字 作者:融水公子 rsgz Colab教程 Colab教程 http://www.rsgz.top/post/410.ht ...

  • mac的hosts文件位置在哪?苹果电脑修改hosts文件方法介绍

    hosts文件是我们上网的重要文件,修改hosts可以帮助我们加快域名解析,屏蔽网站等等.但是有不少苹果电脑用户朋友们不知道hosts文件在macOS操作系统的哪里.今天小编就来告诉大家使用多种方法找 ...

  • linux下修改只读文件如/etc/ld.so.conf

    方法一:用gedit修改 假如待修改文件为 /etc/ld.so.conf 在终端中输入命令:sudo gedit /etc/ld.so.conf 即可用管理员身份打开文件,修改并保存. 方法二:使用 ...

  • PCTIM无法修改个人文件夹解决方法

    腾讯的各种流氓行为(不主动清理无意义的垃圾缓存)导致我C盘满了,Tencent Files文件夹占用储存高达13GB.我尝试更换个人文件夹,但我使用的截止文章发布时最新版PCTIM - 3.3.8 ( ...