Main Content


Normalize microarray data


XNorm = manorm(X)
XNorm = manorm(MAStruct, FieldName)
[XNorm, ColVal] = manorm(...)
manorm(..., 'Method', MethodValue, ...)
manorm(..., 'Extra_Args', Extra_ArgsValue, ...)
manorm(..., 'LogData', LogDataValue, ...)
manorm(..., 'Percentile', PercentileValue, ...)
manorm(..., 'Global', GlobalValue, ...)
manorm(..., 'StructureOutput', StructureOutputValue, ...)
manorm(..., 'NewColumnName', NewColumnNameValue, ...)



Numeric array or DataMatrix object of microarray data.


Microarray structure.




XNorm = manorm(X) scales the values in each column of X, a numeric array or DataMatrix object of microarray data, by dividing by the mean column intensity. XNorm is a vector, matrix, or DataMatrix object of normalized microarray data.

XNorm = manorm(MAStruct, FieldName) scales the data in MAStruct, a microarray structure, for a field specified by FieldName, for each block or print-tip by dividing each block by the mean column intensity. The output is a matrix with each column corresponding to the normalized data for each block.

[XNorm, ColVal] = manorm(...) returns the values used to normalize the data.

manorm(..., 'PropertyName', PropertyValue, ...) calls manorm 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:

manorm(..., 'Method', MethodValue, ...) allows you to choose the method for scaling or centering the data. MethodValue can be 'Mean'(default), 'Median', 'STD' (standard deviation), 'MAD' (median absolute deviation), or a function handle. If you pass a function handle, then the function should ignore NaNs and must return a single value per column of the input data.

manorm(..., 'Extra_Args', Extra_ArgsValue, ...) allows you to pass extra arguments to the function MethodValue. Extra_ArgsValue must be a cell array.

manorm(..., 'LogData', LogDataValue, ...), when LogDataValue is true, works with log ratio data in which case the mean (or MethodValue) of each column is subtracted from the values in the columns, instead of dividing the column by the normalizing value.

manorm(..., 'Percentile', PercentileValue, ...) only uses the percentile (PercentileValue) of the data preventing large outliers from skewing the normalization. If PercentileValue is a vector containing two values, then the range from the PercentileValue(1) percentile to the PercentileValue(2) percentile is used. The default value is 100, that is to use all the data in the data set.

manorm(..., 'Global', GlobalValue, ...) when GlobalValue is true, normalizes the values in the data set by the global mean (or MethodValue) of the data, as opposed to normalizing each column or block of the data independently.

manorm(..., 'StructureOutput', StructureOutputValue, ...), when StructureOutputValue is true, the input data is a structure returns the input structure with an additional data field for the normalized data.

manorm(..., 'NewColumnName', NewColumnNameValue, ...), when using StructureOutput, allows you to specify the name of the column that is appended to the list of ColumnNames in the structure. The default behavior is to prefix 'Block Normalized' to FieldName.


maStruct = gprread('mouse_a1wt.gpr');
% Extract some data of interest.
Red = magetfield(maStruct,'F635 Median');
Green = magetfield(maStruct,'F532 Median');
% Create a log-log plot.
% Center the data.
normRed = manorm(Red);
normGreen = manorm(Green);
% Create a log-log plot of the centered data.
% Alternatively, you can work directly with the structure
normRedBs = manorm(maStruct,'F635 Median - B635');
normGreenBs = manorm(maStruct,'F532 Median - B532');
% Create a log-log plot of the centered data. This includes some
% zero values so turn off the warning.
w = warning('off','Bioinfo:maloglog:ZeroValues');
                'Normalized Background-Subtracted Median Values',...

Version History

Introduced before R2006a