raw to mzml(弃用)

使用ProteoWizard的msconvert软件可将质谱数据(.raw、.wiff格式数据)转格式为mzML格式。

ProteoWizard官网:http://proteowizard.sourceforge.net/

MSConvert

Windows操作

msconvert提供了 Windows 平台和 Linux 平台。

在 Windows 上使用也比较简单:

  1. 入文件位置和输出文件位置;
  2. 选择输出格式和编码精度;
  3. 添加(add)所需要的功能 (Peak Picking)。
  4. 点击右下角的开始(Start)

img


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/

Graphical user interface for imzMLConverteronverter. To add mzML files simply click the 'Add' button.


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优势:

  1. 可直接对质谱数据(.raw、.wiff)处理。
  2. 能通过脚本直接调用。

jimzMLConverter问题:

  1. 脚本调用要循环调用,一次调用仅能对一个数据进行处理,多文件处理是会以第一个文件覆盖处理不能合并。
  2. 不能将多个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:

#!/bin/bash
# 文件名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:

#!/bin/bash
# 文件名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