NAME

Microarray - A Perl module for creating and manipulating microarray objects

SYNOPSIS

use Microarray;

my $oArray = microarray->new($barcode,$data_file);
$oArray->set_feature_data;

DESCRIPTION

Microarray is a suite of object oriented Perl Modules for the analysis of microarray experiment data. These include modules for handling common formats of microarray files, modules for the programmatic abstraction of a microarray experiment, and for the output of a variety of images describing microarray experiment data.

How it works

The Microarray object contains several levels of microarray associated data, organised in a (fairly) intuitive way. First, there's the data that you have obtained from a microarray scanner, in the form of a data file. This is imported into Microrray as a Data_File object. Support for different data file formats is built into the Data_File class, and creating new classes for your favourite scanner/software output is relatively simple. Data extracted from the microarray spots are then imported into individual array_spot objects. Next, replicate spots are collated into array_feature objects. Most of the quality control functions operating on parameters such as signal intensity and spot size, are built into this final process, so that an array_feature object only contains data from spots that have passed the QC assessments.

METHODS

Creating microarray objects

The microarray object is created by providing a barcode (or name) and a data file. It is assumed the data file contains minimal information about the feature identities (i.e. name or id). In the case of a CGH-microarray, that means the BAC clone name/synonym at each spot. For cDNA or oligo arrays, that would mean a gene name, cDNA accession, or oligo name. Most of the functions between initialising the objects and returning formatted data can be accessed, and default settings can be changed (see below).

Data File

The data file can be passed to Microarray either as a file name, filehandle object, or data_file object. If a filehandle is passed, the filename also needs to be set.

$oArray = microarray->new($barcode,'my_file');  	# will try to guess the file format

or

$oData_File = quantarray_file->new('my_file');  	# create the data file...
$oData_File = quantarray_file->new('my_file',$Fh);  # can pass a filename and filehandle to the data file
$oArray = microarray->new($barcode,$oData_File);  	# ...then load into microarray

Feature Identification

blank_feature

Defines how 'empty' spots are described in the data file. Default 'n/a'

prefix

Set to 'y' if the feature id is prefixed in some way (for instance, we use prefixes to distinguish different methods used to prepare the same sample for microarray spotting). Default 'n'

Changing Default Settings

There are many parameters that are used in the process of defining features, and for their quality control. Below is an overview of the methods used. As well as being able to set these parameters individually, you can also set a number in one call using the set_param() method

$array->set_param(min_diameter=>100,min_snr=>10);

Spot Quality Control

There are various (mostly self-explanatory) methods for setting spot quality control measurements, listed below

low_signal, high_signal

Defaults = 5000, 60000

min_diameter, max_diameter

Default = 80, 150

min_pixels

Default = 80

signal_quality

Varies depending on the data file format used; for the ScanArray format, this refers to the percentage of spot pixels that are more than 2 standard deviations above the background (default = 95); for BlueFuse this corresponds to the spot confidence value.

percen_sat

The method percen_sat() refers to the percentage of spot pixels that have a saturated signal. Default = 10. Not relevant to BlueFuse format.

Feature Analysis

normalisation

Set to either 'y' or 'n', to include ratio normalisation. Note: this is only base-level normalisation, not signal normalisation. For CGH-microarrays, this is a subtraction of the modal log2 ratio. Default = 'y'

Access to Spot Data

All of the microarray data can be independently accessed in one of two ways. First, data can be obtained directly from the data file object, and in fact you could use this module just to simplify the data input process for your own applications and not use any of the other functions of Microarray. Individual spot objects can be returned by referring to their spot index (which is usually also the order they appear in the data file) or all spot objects can be returned as a list. See Microarray::Spot and Microarray::Feature for more information.

my $spot = $oData_File->get_spots(1);
my $aAll_Spots = $oData_File->get_spots;

Data file methods

file_name

Depending how you used Data_File, will be the name or the full path you provided

get_header_info

For example in the ScanArray format, the data header contains information about the scan, such as laser power, PMT, etc

Access to Feature Data

Alternatively you can access the feature data, which collates replicate spot data. Either, individual feature objects can be returned, and array_feature methods applied to them, or all feature objects/ids can be returned as a list.

$oFeature = $oArray->get_feature('feature1');  # returns a single feature object
$aFeature_Objects = $oArray->get_feature_objects;  # returns a list of feature objects
$aFeature_Names = $oArray->get_feature_ids;  # returns a list of feature ids
$hFeatures = $oArray->get_all_features;  # returns a hash of features; key=feature_id, value=feature object

FUTURE DEVELOPMENT

This module is under continued development for our laboratory's microarray facility. If you would like to contribute to the development of Microarray, whether to add more advanced features of data analysis, or simply to add support for other microarray platforms/scanners, please contact the author.

SEE ALSO

Microarray::File, Microarray::Feature, Microarray::Spot

AUTHOR

Christopher Jones, Translational Research Laboratories, Institute for Women's Health, University College London.

http://www.instituteforwomenshealth.ucl.ac.uk/trl

c.jones@ucl.ac.uk

COPYRIGHT AND LICENSE

Copyright 2007 by Christopher Jones, University College London

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.