簡単なmzMLファイルを生成する

こんな感じだろうか。

library(xcms)

tmp_mspecs <- list(matrix(1:10, ncol = 2),
matrix(2:11, ncol = 2),
matrix(3:12, ncol = 2))

tmp_colnams <-
c("seqNum", "acquisitionNum", "msLevel", "polarity",
"peaksCount", "totIonCurrent", "retentionTime", "basePeakMZ",
"basePeakIntensity", "collisionEnergy", "ionisationEnergy",
"lowMZ", "highMZ", "precursorScanNum", "precursorMZ",
"precursorCharge", "precursorIntensity", "mergedScan",
"mergedResultScanNum", "mergedResultStartScanNum",
"mergedResultEndScanNum", "injectionTime", "filterString",
"spectrumId", "centroided", "ionMobilityDriftTime",
"isolationWindowTargetMZ", "isolationWindowLowerOffset",
"isolationWindowUpperOffset", "scanWindowLowerLimit",
"scanWindowUpperLimit")

tmp_header_pre <- matrix(ncol = length(tmp_colnams),
nrow = length(tmp_mspecs))
tmp_header_pre[,1] <- seq(1, length(tmp_mspecs))
tmp_header <- as.data.frame(tmp_header_pre)
colnames(tmp_header) <- tmp_colnams
class(tmp_header$filterString) <- "character"
tmp_header$centroided <- FALSE
writeMSData(object = tmp_mspecs,
file = "tmp.mzML",
header = tmp_header)

mzMLファイルの仕様に関しては、http://psidev.info/mzML 参照。

ヘッダーに関する説明は https://rdrr.io/bioc/mzR/man/peaks.html にあった。