Main Content


Remove gene profiles with small profile ranges


Mask = generangefilter(Data)
[Mask, FData] = generangefilter(Data)
[Mask, FData, FNames] = generangefilter(Data, Names)
generangefilter(..., 'Percentile', PercentileValue, ...)
generangefilter(..., 'AbsValue', AbsValueValue, ...)
generangefilter(..., 'LogPercentile', LogPercentileValue, ...)
generangefilter(..., 'LogValue', LogValueValue, ...)



DataMatrix object or numeric matrix where each row corresponds to the experimental results for one gene. Each column is the results for all genes from one experiment.


Cell array of character vectors or string vector where each element corresponds to the name of a gene for each row of experimental data. Names has same number of rows as Data with each row containing the name or ID of the gene in the data set.


Property to specify a percentile below which gene expression profiles are removed. Enter a value from 0 to 100.


Property to specify an absolute value below which gene expression profiles are removed.


Property to specify the logarithm of a percentile.


Property to specify the logarithm of an absolute value.


Mask = generangefilter(Data) calculates the range for each gene expression profile in Data, a DataMatrix object or matrix of the experimental data, and then identifies the expression profiles with ranges less than the 10th percentile.

Mask is a logical vector with one element for each row in Data. The elements of Mask corresponding to rows with a range greater than the threshold have a value of 1, and those with a range less than the threshold are 0.

[Mask, FData] = generangefilter(Data) returns FData, a filtered data matrix. You can also create FData using FData = Data(Mask,:).

[Mask, FData, FNames] = generangefilter(Data, Names) returns FNames, a filtered names array, where Names is a cell array of character vectors or string vector of the names of the genes corresponding to each row in Data. You can also create FNames using FNames = Names(Mask).


If Data is a DataMatrix object with specified row names, you do not need to provide the second input Names to return the third output FNames.

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

generangefilter(..., 'Percentile', PercentileValue, ...) removes from the experimental data (Data) gene expression profiles with ranges less than a specified percentile (PercentileValue).

generangefilter(..., 'AbsValue', AbsValueValue, ...) removes from Data gene expression profiles with ranges less than AbsValueValue.

generangefilter(..., 'LogPercentile', LogPercentileValue, ...) filters genes with profile ranges in the lowest percent of the log range (LogPercentileValue).

generangefilter(..., 'LogValue', LogValueValue, ...) filters genes with profile log ranges lower than LogValueValue.


  1. Load the MAT-file, provided with the Bioinformatics Toolbox™ software, that contains yeast data. This MAT-file includes three variables: yeastvalues, a matrix of gene expression data, genes, a cell array of GenBank® accession numbers for labeling the rows in yeastvalues, and times, a vector of time values for labeling the columns in yeastvalues

    load yeastdata
  2. Remove gene profiles with small profile ranges.

    [mask, fyeastvalues, fgenes] = generangefilter(yeastvalues,genes);


[1] Kohane I.S., Kho A.T., Butte A.J. (2003), Microarrays for an Integrative Genomics, Cambridge, MA:MIT Press.

Version History

Introduced before R2006a