raw to mzml(弃用)
使用ProteoWizard的msconvert软件可将质谱数据(.raw、.wiff格式数据)转格式为mzML格式。
ProteoWizard官网:http://proteowizard.sourceforge.net/
MSConvert
Windows操作
msconvert提供了 Windows 平台和 Linux 平台。
在 Windows 上使用也比较简单:
- 入文件位置和输出文件位置;
- 选择输出格式和编码精度;
- 添加(add)所需要的功能 (Peak Picking)。
- 点击右下角的开始(Start)
Linux操作
msconvert在linux系统安装较为复杂,可直接调用docker image进行使用。
docker hub:https://hub.docker.com/r/chambm/pwiz-skyline-i-agree-to-the-vendor-licenses
也可使用https://hub.docker.com/r/lujiawei/msconvert,image相同仅修改tag名。
对于msconvert命令行查看帮助:
docker run -it --rm \
chambm/pwiz-skyline-i-agree-to-the-vendor-licenses \
wine msconvert --help
对于msconvert命令行使用:
docker run -it --rm \
-e WINEDEBUG=-all \
-v /your/data:/data \
chambm/pwiz-skyline-i-agree-to-the-vendor-licenses \
wine msconvert /data/file.raw
mzML to imzML(弃用)
imzMLConverter 允许将mzML质谱中间数据转化为imzML质谱成像数据,还允许将多个imzML文件组合成一个单一的imzML文件进行比较和数据处理。
imzMLConverter官网:https://www.cs.bham.ac.uk/~ibs/imzMLConverter/
raw to imzML
jimzMLConverter
jimzMLConverter软件可以直接将质谱数据转化为imzML格式。
jimzMLConverter:https://github.com/AlanRace/imzMLConverter
jimzMLConverter Dockerfile:https://github.com/AlanRace/imzmlconverter-docker
jimzMLConverter docker image:https://hub.docker.com/r/alanrace/imzmlconverter
docker run -it --rm
-v /path/to/mydata:/mydata \
alanrace/imzmlconverter:latest \
jimzMLConverter imzML /mydata/data.RAW
jimzMLConverter优势:
- 可直接对质谱数据(.raw、.wiff)处理。
- 能通过脚本直接调用。
jimzMLConverter问题:
- 脚本调用要循环调用,一次调用仅能对一个数据进行处理,多文件处理是会以第一个文件覆盖处理不能合并。
- 不能将多个imzML合并为一个imzML,但后续流程可实现此操作。
格式转化R脚本-RawToImzML.R
(弃用)
R语言调用alanrace/imzmlconverter镜像使用jimzMLConverter脚本:
#!/opt/conda/bin/Rscript
# 弃用,效率低
# 文件名RawToImzML.R
# 保存路径:/public/LM-database/script/SpatialMetaboAnalysis
# 调用:/public/LM-database/script/SpatialMetaboAnalysis/RawToImzML.R
# jimzMLConvert函数
RawToImzML <- function(filepath,
format = "raw",
intern= FALSE,
ignore.stdout = FALSE,
ignore.stderr = FALSE,
wait = TRUE){
# 获取路径下format格式文件信息
dirname <- list.files(path = filepath,
pattern = paste0(format,"$"),
full.names = F,
recursive = T)
# 循环调用docker image:alanrace/imzmlconverter
for ( i in 1:length(dirname)) {
system(paste0("docker run -i --rm ",
"-v ",filepath,":/mydata ",
"alanrace/imzmlconverter:latest ",
"jimzMLConverter imzML ",
"/mydata/",dirname[i]),
intern = intern,
ignore.stdout = ignore.stdout,
ignore.stderr = ignore.stderr,
wait =wait)
# 为保证循环正常运行,每一次循环暂停docker调用5s
Sys.sleep(5)
}
}
# 获取当前路径
filepath <- getwd()
# 对当前路径下format格式文件转化为imzML
RawToImzML(filepath = filepath)
格式转化sh脚本-RawToImzML.sh
alanrace/imzmlconverter镜像调用jimzMLConverter:
# 文件名RawToImzML.sh
# 保存路径:/public/LM-database/script/SpatialMetaboAnalysis
# docker调用:docker run -it --rm -v /path:/mydata -v /public/LM-database/script/SpatialMetaboAnalysis:/script alanrace/imzmlconverter:latest /script/RawToImzML.sh
# 寻找目录下.raw格式文件
name=$(find /mydata -type f -name "*.raw")
# 由于jimzMLConverter不能批量转换,所以循环对raw文件进行imzml格式转换
for i in $name
do
jimzMLConverter imzML $i
done
调用RawToImzML.R
(弃用)
shell中调用RawToImzML.R:
弃用,效率低
目录定位于处理目录
cd /to/path
Rscript /public/LM-database/script/SpatialMetaboAnalysis/RawToImzML.R
R中调用RawToImzML.R:
#!/opt/conda/bin/Rscript
# 弃用,效率低
# 文件名CallRawToImzML.R
# 保存路径:/public/LM-database/script/SpatialMetaboAnalysis
# 调用:/public/LM-database/script/SpatialMetaboAnalysis/CallRawToImzML.R
setwd("raw")
# 调用RawToImzML.R
system("/opt/conda/bin/Rscript /public/LM-database/script/SpatialMetaboAnalysis/RawToImzML.R",
ignore.stdout = F,
ignore.stderr = F,
wait = T)
setwd("../")
调用RawToImzML.sh
shell中调用RawToImzML.sh:
# 文件名CallRawToImzML.sh
# 保存路径:/public/LM-database/script/SpatialMetaboAnalysis
# 调用:/public/LM-database/script/SpatialMetaboAnalysis/CallRawToImzML.sh
# 工作目录移动到raw目录
cd raw
# 获取当前工作目录路径
path=$(pwd)
# 使用alanrace/imzmlconverter调用RawToImzML.sh脚本
docker run -i --rm \
-v $path:/mydata \
-v /public/LM-database/script/SpatialMetaboAnalysis:/script \
alanrace/imzmlconverter:latest \
/script/RawToImzML.sh