如何将lmd文件转换为csv?[流式细胞术数据]



lmd文件扩展名通常用于生成流式细胞术数据。但这不能直接用于R或Python中的处理。有没有办法以某种方式将其转换为csv或一些著名的格式?

这有点棘手。到目前为止,我还没有遇到任何这样的直接转换函数。也许,fcs是流式细胞术的一种更常见的形式。因此,我们首先需要将lmd转换为fcs,然后再转换为csv格式。

步骤1:lmd到fcs[使用R]

# install
source("http://bioconductor.org/biocLite.R")
biocLite("flowCore")
# convert
library(tools) # for file_path_sans_ext
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install(version = '3.10')
BiocManager::install("flowCore")
library(flowCore)
in.fname <- 'Filename.LMD'
folder <- '/home/User/Desktop/Data/'
x <- read.FCS(paste0(folder, in.fname))
summary(x)
out.fname <- paste0(file_path_sans_ext(in.fname), '.fcs')
write.FCS(x, paste0(folder, out.fname))

注意:分别使用所需的路径和文件名更改"用户"one_answers"文件名"fcs文件将保存在同一文件夹中。

来源:https://github.com/eyurtsev/FlowCytometryTools/issues/3

步骤2:fcs到csv

这可以简单地使用read来完成。FCS((函数读取FCS文件,然后使用write.delim((或write.csv((创建.txt或.csv文件。

来源:https://www.bioconductor.org/packages/release/bioc/vignettes/flowCore/inst/doc/HowTo-flowCore.pdf

仅使用python:

将FCS文件转换为CSV 的代码

import pandas as pd
import fcsparser
path = ('<filename>.fcs')
meta = fcsparser.parse(path,meta_data_only=True)
meta, data = fcsparser.parse(path, meta_data_only=False, reformat_meta=True)
print(data)
df = pd.DataFrame(data)
df.to_csv('<filename>.csv')

将FCS文件转换为CSV 的代码

import pandas as pd
import numpy as np
import fcswrite
path = ('<filename>.csv')
data = pd.read_csv(path).to_numpy()
chn_names = <list of channel names>
fcswrite.write_fcs(filename="<filename.fcs",chn_names=chn_names, data=data)

@Sachin没有走过完整的解决方案,所以我提出了一个更简单、完整的答案。

在R中,使用flowCore库

library(flowCore)
my_fcs <- read.FCS("test.lmd") 
mat <- exprs(my_fcs) 
write.csv(mat, file = "my_lmd.csv")

一些需要完成的附加信息:

  • read.FCS():这假设要转换的lmd在您的工作目录中。因此,请确保您已正确设置了工作目录
  • exprs():此函数读取lmd或fcs文件中的值(实际上是从flowCore创建的flowFrame对象中(作为矩阵
  • 注意lmd格式,因为它包含fcs 2.0文件和fcs 3.0文件。如果要加载fcs 3.0文件,则需要设置my_fcs <- read.FCS("test.lmd, dataset = 2")

@Sachin提到的一个flowCore库可在bioConductor上获得。

最新更新