首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将lmd文件转换为csv?[流式细胞术数据]

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

Stack Overflow用户
提问于 2021-12-14 11:51:20
回答 3查看 332关注 0票数 1

lmd文件扩展名常用于产生流式细胞术数据。但是,无论是在R还是Python中,这都不能直接用于处理。是否有办法将其转换为csv或某种著名的格式?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-12-14 11:51:20

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

步骤1:使用R从lmd到fcs

代码语言:javascript
复制
# 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

票数 0
EN

Stack Overflow用户

发布于 2022-04-16 16:53:48

只使用python:

将FCS文件转换为CSV的代码

代码语言:javascript
复制
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的代码

代码语言:javascript
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2022-11-05 16:51:45

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

在R中,使用flowCore库

代码语言:javascript
复制
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格式,因为它包含FCS2.0文件和FCS3.0文件。如果要加载FCS3.0文件,则需要设置my_fcs <- read.FCS("test.lmd, dataset = 2")

A由@Sachin提到的flowCore库可在bioConductor上获得。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70348405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档