Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

msnorm

Normalize set of signals with peaks

Syntax

Yout = msnorm(X, Intensities)
[Yout, NormParameters] = msnorm(...)
msnorm(X, NewY, NormParameters)
msnorm(..., 'Quantile', QuantileValue, ...)
msnorm(..., 'Limits', LimitsValue, ...)
msnorm(..., 'Consensus', ConsensusValue, ...)
msnorm(..., 'Method', MethodValue, ...)
msnorm(..., 'Max', MaxValue, ...)

Arguments

X Vector of separation-unit values for a set of signals with peaks. The number of elements in the vector equals the number of rows in the matrix Intensities. The separation unit can quantify wavelength, frequency, distance, time, or m/z depending on the instrument that generates the signal data.
Intensities Matrix of intensity values for a set of peaks that share the same separation-unit range. Each row corresponds to a separation-unit value, and each column corresponds to either a set of signals with peaks or a retention time. The number of rows equals the number of elements in vector X.

Description

Tip

Use the following syntaxes with data from any separation technique that produces signal data, such as spectroscopy, NMR, electrophoresis, chromatography, or mass spectrometry.

Yout = msnorm(X, Intensities) normalizes a group of signals with peaks by standardizing the area under the curve (AUC) to the group median.

[Yout, NormParameters] = msnorm(...) returns a structure containing the parameters to normalize another group of signals.

msnorm(X, NewY, NormParameters) uses the parameter information from a previous normalization specified by NormParameters to normalize a new set of signals specified by NewY using the same parameters to select the separation-unit positions and output scale from the previous normalization. NormParameters is a structure created by msnorm. If a consensus proportion, ConsensusValue, was given in the previous normalization, no new separation-unit positions are selected, and normalization is performed using the same separation-unit positions.

msnorm(..., 'PropertyName', PropertyValue, ...) calls msnorm with optional properties that use property name/property value pairs. You can specify one or more properties in any order. Each PropertyName must be enclosed in single quotation marks and is case insensitive. These property name/property value pairs are as follows:

msnorm(..., 'Quantile', QuantileValue, ...) specifies a 1-by-2 vector with the quantile limits for reducing the set of separation-unit values in X. For example, when QuantileValue is [0.9 1], only the largest 10% of intensities in each signal are used to compute the AUC. When QuantileValue is a scalar, the scalar value represents the lower quantile limit and the upper quantile limit is set to 1. The default value is [0 1] (use the whole area under the curve, AUC).

msnorm(..., 'Limits', LimitsValue, ...) specifies a 1-by-2 vector with a separation-unit range for picking normalization points. This parameter is useful to eliminate low-mass noise from the AUC calculation, for example the matrix noise that appears in the low-mass region of SELDI mass spectrometers. Default is [0, max(X)].

msnorm(..., 'Consensus', ConsensusValue, ...) sets a consensus rule. To be included in the AUC, a separation-unit position must have an intensity within the quantile limits of at least part (specified by ConsensusValue) of the signals in Intensities. The same separation-unit positions are used to normalize all the signals. Enter a scalar from 0 to 1.

Tip

Use the 'Consensus' property to eliminate low-intensity peaks and noise from the normalization.

msnorm(..., 'Method', MethodValue, ...) selects a method for normalizing the AUC of every signal. Enter either 'Median' (default) or 'Mean'.

msnorm(..., 'Max', MaxValue, ...), after individually normalizing each signal, scales each signal to an overall maximum intensity specified by MaxValue. MaxValue is a scalar. If omitted, no postscaling is performed. If QuantileValue is [1 1], then a single point (peak height of the tallest peak) is normalized to MaxValue.

Examples

collapse all

This example shows how to normalize the area under the curve of every mass spectrum from the mass spec data.

Load a MAT-file, included with the Bioinformatics Toolbox™ software, that contains sample mass spec data, including MZ_lo_res, a vector of m/z values, and Y_lo_res, a matrix of intensity values.

load sample_lo_res

Create a subset (four signals) of the data.

MZ = MZ_lo_res;
Y = Y_lo_res(:,[1 2 5 6]);

Plot the four spectra.

plot(MZ, Y)
axis([-1000 20000 -20 105])
xlabel('Mass-charge Ratio')
ylabel('Relative Ion Intensities')
title('Original Spectra')

Normalize the area under the curve (AUC) of every spectrum to the median, eliminating low-mass (m/z < 1,000) noise, and post-rescaling such that the maximum intensity is 100. Plot the four spectra.

Y1 = msnorm(MZ,Y,'Limits',[1000 inf],'Max',100);
plot(MZ, Y1)
axis([-1000 20000 -20 105])
xlabel('Mass-charge Ratio')
ylabel('Relative Ion Intensities')
title('AUC Normalized Spectra')

This example shows how to normalize the ion intensity of every spectrum from the mass spec data.

Load a MAT-file, included with the Bioinformatics Toolbox™ software, that contains sample mass spec data, including MZ_lo_res, a vector of m/z values, and Y_lo_res, a matrix of intensity values.

load sample_lo_res

Create a subset (four signals) of the data.

MZ = MZ_lo_res;
Y = Y_lo_res(:,[1 2 5 6]);

Normalize the ion intensity of every spectrum to the maximum intensity of the single highest peak from any of the spectra in the range above 1000 m/z. Plot the four spectra.

Y2 = msnorm(MZ,Y,'QUANTILE', [1 1],'LIMITS',[1000 inf]);
plot(MZ, Y2)
axis([-1000 20000 -20 105])
xlabel('Mass-charge Ratio')
ylabel('Relative Ion Intensities')
title('Maximum-Intensity Normalized Spectra')

This example shows how to perform quantile normalization for mass spec data.

Load a MAT-file, included with the Bioinformatics Toolbox™ software, that contains sample mass spec data, including MZ_lo_res, a vector of m/z values, and Y_lo_res, a matrix of intensity values.

load sample_lo_res

Create a subset (four signals) of the data.

MZ = MZ_lo_res;
Y = Y_lo_res(:,[1 2 5 6]);

Normalize using the data in the m/z regions where the intensities are within the fourth quartile in at least 90% of the spectrograms. Note that you can use the normalization parameters in the second output to normalize another set of data in the same m/z regions. Plot the four spectra.

[Y3,S] = msnorm(MZ,Y,'Quantile',[0.75 1],'Consensus',0.9);
area(MZ,S.Xh.*1000,'LineStyle','None','FaceColor',[.8 .8 .8])
hold on
plot(MZ, Y3)
hold off
axis([-1000 20000 -20 105])
xlabel('Mass-charge Ratio')
ylabel('Relative Ion Intensities')
title('Fourth-quartile Normalized Spectra')

Use the normalization parameters in the second output of the previous step to normalize a different subset of data (four signals) using the data in the same m/z regions as the previous data set. Plot the four spectra.

Y4 = msnorm(MZ,Y_lo_res(:,[3 4 7 8]),S);

area(MZ,S.Xh.*1000,'LineStyle','None','FaceColor',[.8 .8 .8])
hold on
plot(MZ, Y4)
hold off
axis([-1000 20000 -20 105])
xlabel('Mass-charge Ratio')
ylabel('Relative Ion Intensities')
title('Fourth-quartile Normalized Spectra')

Introduced before R2006a

Was this topic helpful?