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

how to convert lmd file to csv? [Flow Cytometry data]

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))

注意:分别使用您想要的路径和文件名更改用户名和文件名 您的 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)