Description Usage Arguments Details Value Author(s) See Also Examples
View source: R/simulateSpectrum.R
Simulate mass spectra or complete MS imaging experiments, including a possible baseline, spatial and spectral noise, mass drift, mass resolution, and multiplicative variation, etc.
A number of preset imaging designs are available for quick-and-dirty simulation of images.
These functions are designed for small proof-of-concept examples and testing, and may not scale well to simulating larger datasets.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  | simulateSpectrum(n = 1L, peaks = 50L,
    mz = rlnorm(peaks, 7, 0.3), intensity = rlnorm(peaks, 1, 0.9),
    from = 0.9 * min(mz), to = 1.1 * max(mz), by = 400,
    sdpeaks = sdpeakmult * log1p(intensity), sdpeakmult = 0.2,
    sdnoise = 0.1, sdmz = 10, resolution = 1000, fmax = 0.5,
    baseline = 0, decay = 10, units=c("ppm", "mz"),
    representation = c("profile", "centroid"), ...)
simulateImage(pixelData, featureData, preset,
    from = 0.9 * min(mz), to = 1.1 * max(mz), by = 400,
    sdrun = 1, sdpixel = 1, spcorr = 0.3, sptype = "SAR",
    representation = c("profile", "centroid"), units=c("ppm", "mz"),
    as = c("MSImagingExperiment", "SparseImagingExperiment"),
    BPPARAM = getCardinalBPPARAM(), ...)
addShape(pixelData, center, size, shape=c("circle", "square"), name=shape)
presetImageDef(preset = 1L, nruns = 1, npeaks = 30L,
    dim = c(20L, 20L), peakheight = 1, peakdiff = 1,
    sdsample = 0.2, jitter = TRUE, ...)
 | 
n | 
 The number of spectra to simulate.  | 
peaks, npeaks | 
 The number of peaks to simulate. Not used if   | 
mz | 
 The theoretical m/z values of the simulated peaks.  | 
intensity | 
 The mean intensities of the simulated peaks.  | 
from | 
 The minimum m/z value used for the mass range.  | 
to | 
 The maximum m/z value used for the mass range.  | 
by | 
 The step-size used for the observed m/z-values of the profile spectrum.  | 
sdpeaks | 
 The standard deviation(s) for the distributions of observed peak intensities on the log scale.  | 
sdpeakmult | 
 A multiplier used to calculate   | 
sdnoise | 
 The standard deviation of the random noise in the spectrum on the log scale.  | 
sdmz | 
 The standard deviation of the mass error in the observed m/z values of peaks, in units indicated by   | 
resolution | 
 The mass resolution as defined by   | 
fmax | 
 The proportion of the maximum peak height to use when defining the mass resolution.  | 
baseline | 
 The maximum intensity of the baseline. Note that   | 
decay | 
 A constant used to calculate the exponential decay of the baseline. Larger values mean the baseline decays more sharply at the lower mass range of the spectrum.  | 
units | 
 The units for   | 
representation | 
 Should a profile spectrum be returned or only the centroided peaks?  | 
BPPARAM | 
 An optional instance of   | 
pixelData | 
 A   | 
featureData | 
 A   | 
preset | 
 A number indicating a preset image definition to use.  | 
nruns | 
 The number of runs to simulate for each condition.  | 
sdrun | 
 A standard deviation giving the run-to-run variance.  | 
sdpixel | 
 A standard deviation giving the pixel-to-pixel variance.  | 
spcorr | 
 The spatial autocorrelation. Must be between 0 and 1, where   | 
sptype | 
 The type of spatial autocorrelation.  | 
as | 
 The class of object to be returned.  | 
... | 
 Additional arguments to pass to   | 
dim | 
 The dimensions of the preset image.  | 
peakheight | 
 Reference intensities used for peak heights by the preset.  | 
peakdiff | 
 A reference intensity difference used for the mean peak height difference between conditions, for presets that simulate multiple conditions.  | 
sdsample | 
 A standard deviation giving the amount of variation from the true peak heights for this simulated sample.  | 
jitter | 
 Should random noise be added to the location and size of the shapes?  | 
center | 
 The center of the shape.  | 
size | 
 The size of the shape (from the center).  | 
shape | 
 What type of shape to add.  | 
name | 
 The name of the added column.  | 
The simulateSpectrum() and simulateImage() functions are used to simulate mass spectra and MS imaging experiments. They provide a great deal of control over the parameters of the simulation, including all sources of variation.
For simulateImage(), the user should provide the design of the simulated experiment via matching columns in pixelData and featureData, where each column corresponds to different morphological substructures or differing conditions. These design data frames are returned in the metadata() of the returned object for later reference.
A number of presets are defined by presetImageDef(), which returns only the pixelData and featureData necessary to define the experiment for simulateImage(). These can be referenced for help in understanding how to define experiments for simulateImage().
The preset images are:
1: a centered circle
2: a topleft circle and a bottomright square
3: two corner squares and a centered circle
4: a centered circle with conditions A and B in different runs
5: a topleft circle and a bottomright square with conditions A and B in different runs
6: two corner squares and a centered circle; the circle has conditions A and B in different runs
7: matched pairs of circles with conditions A and B within the same runs; includes reference peaks
8: matched pairs of circles inside squares with conditions A and B within the same runs; includes reference peaks
9: a small sphere inside a larger sphere (3D)
The addShape() function is provided for convenience when generating the pixelData for simulateImage(), as a simple way of adding morphological substructures using basic shapes such as squares and circles.
For simulateSpectrum, a list with elements:
mz: a numeric vector of the observed m/z values
intensity: a numeric vector or matrix of the intensities
For simulateImage, a MSImagingExperiment or a SparseImagingExperiment.
For addShape, a new PositionDataFrame with a logical column added for the corresponding shape.
For presetImageDef, a list with two elements: the pixelData and featureData to be used as input to simulateImage().
Kylie A. Bemis
simulateSpectrum,
simulateImage
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22  | setCardinalBPPARAM(SerialParam())
set.seed(1)
# generate a spectrum
s <- simulateSpectrum(1)
plot(intensity ~ mz, data=s, type="l")
# generate a noisy low-resolution spectrum with a baseline
s <- simulateSpectrum(1, baseline=2, sdnoise=0.3, resolution=100)
plot(intensity ~ mz, data=s, type="l")
# generate a high-resolution spectrum
s <- simulateSpectrum(1, peaks=100, resolution=10000)
plot(intensity ~ mz, data=s, type="l")
# generate an image
x <- simulateImage(preset=1, npeaks=10, dim=c(10,10))
m <- mz(metadata(x)$design$featureData)
image(x, mz=m[5])
plot(x, coord=c(x=3, y=3))
 | 
Loading required package: BiocGenerics
Loading required package: parallel
Attaching package: ‘BiocGenerics’
The following objects are masked from ‘package:parallel’:
    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB
The following objects are masked from ‘package:stats’:
    IQR, mad, sd, var, xtabs
The following objects are masked from ‘package:base’:
    anyDuplicated, append, as.data.frame, basename, cbind, colnames,
    dirname, do.call, duplicated, eval, evalq, Filter, Find, get, grep,
    grepl, intersect, is.unsorted, lapply, Map, mapply, match, mget,
    order, paste, pmax, pmax.int, pmin, pmin.int, Position, rank,
    rbind, Reduce, rownames, sapply, setdiff, sort, table, tapply,
    union, unique, unsplit, which.max, which.min
Loading required package: BiocParallel
Loading required package: EBImage
Loading required package: S4Vectors
Loading required package: stats4
Attaching package: ‘S4Vectors’
The following object is masked from ‘package:base’:
    expand.grid
Loading required package: ProtGenerics
Attaching package: ‘ProtGenerics’
The following object is masked from ‘package:stats’:
    smooth
Attaching package: ‘Cardinal’
The following object is masked from ‘package:stats’:
    filter
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.