Data types
The main data type of the package is the abstract type MSj.MScontainer
.
Mass spectrometry scans are stored in the following structures, inspired from the mzXML format, which is a subtype of MSj.MScontainer
.
struct MSscan <: MScontainer
num::Int # num
rt::Float64 # retentionTime
tic::Float64 # totIonCurrent
mz::Vector{Float64} # m/z
int::Vector{Float64} # intensity
level::Int # msLevel
basePeakMz::Float64 # basePeakMz
basePeakIntensity::Float64 # basePeakIntensity
precursor::Float64 # precursorMz
polarity::String # polarity
activationMethod::String # activationMethod
collisionEnergy::Float64 # collisionEnergy
end
Another subtype, MSj.Chromatogram
, is used to store the retention time, the ionic current and the maximum value of the ion current.
struct Chromatogram <: MScontainer
rt::Vector{Float64} # araay of retention times
ic::Vector{Float64} # array of ion current
maxic::Float64 # maximum ion current (used in plotting normalization)
end
Combination of mass spectra requires another subtype of MSj.MScontainer
called MSj.MSscans
(notice the ending s).
struct MSscans <: MScontainer
num::Vector{Int} # num
rt::Vector{Float64} # retentionTime
tic::Float64 # totIonCurrent
mz::Vector{Float64} # m/z
int::Vector{Float64} # intensity
level::Vector{Int} # msLevel
basePeakMz::Float64 # basePeakMz
basePeakIntensity::Float64 # basePeakIntensity
precursor::Vector{Float64} # precursorMz
polarity::Vector{String} # polarity
activationMethod::Vector{String} # activationMethod
collisionEnergy::Vector{Float64} # collisionEnergy
s::Vector{Float64} # variance
end
The MSj.MSscans
structure is very similar to the MSj.MSscan
one, except that the fields num
, rt
, precursor
, polarity
, activationMethod
and collisionEnergy
are vectors. The idea is to keep track of the history of the operations that have led to this result. For example, if a MSscans
element is the result of the addition of two individual scans such as scans[1] + scans[2], then the num
field of resulting MSscans
is an array [1, 2]. The same applies to the retention time, precursor m/z, polarity, activation method and collision energy fields.