The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Microarray::Image::QC_Plots - A Perl module for creating microarray QC/QA plots

SYNOPSIS

        use Microarray::Image::QC_Plots;
        use Microarray::File::Data;

        my $oData_File = data_file->new($data_file);
        my $oMA_Plot = ma_plot->new($oData_File);
        my $ma_plot_png = $oMA_Plot->make_plot; 

        open (PLOT,'>ma_plot.png');
        print PLOT $ma_plot_png;
        close PLOT;

DESCRIPTION

Microarray::Image::QC_Plots is an object-oriented Perl module for creating microarray QC/QA data plots from a scan data file, using the GD module and image library. A number of different plot types are supported, including MA/RI, intensity scatter, intensity heatmap and log2 heatmap.

Mac Os X users beware - for some unknown reason, Apple's Preview application does not render the scatter or MA plots properly.

QC/QA PLOT TYPES

There are several plots for viewing basic microarray data for QC/QA purposes. Most of the parameters for these plots are the same, and only the class name used to create the plot object differs from one plot to another.

Standard Data Plots

ma_plot

See the SYNOPSIS for all there is to know about how to create an MA plot. To create any of the other plot types, just append 'ma_plot' in the above example with one of the class names listed below.

ri_plot

An RI plot is basically identical to an MA plot - at least in appearance.

intensity_scatter

This is a plot of channel 1 signal vs channel 2 signal.

Heatmaps

intensity_heatmap

An image of the slide, using a black->white rainbow colour gradient to indicate the signal intensity across the array. Uses channel 1 as the signal by default, but the channel can be changed by setting the plot_channel parameter in the call to make_plot().

        my $oInt_Heatmap = intensity_heatmap->new($oData_File);
        my $int_heatmap_png = $oInt_Heatmap->make_plot(plot_channel=>2);
log2_heatmap

An image of the slide using a red->yellow->green colour gradient to indicate the Log2 of the signal ratio across the array.

One difference between heatmaps and other plots is in their implementation of the plot scale. This is calculated dynamically in order to generate the best looking image of the array, and requires the dimensions of the array in terms of the number of spots in the x and y axes. If you are using a data file format that returns those values in its header information (such as a Scanarray file, using the Quantarray module) then the scale will be calculated automatically. If BlueFuse files are sorted such that the last data row has the highest block/spot row/column number, then again the scale can be calculated automatically. However, for GenePix files, you will have to pass these values to the make_plot() method (adding extra spots for block padding where appropriate);

        my $oLog2_Heatmap = log2_heatmap->new($oData_File);
        my $log_heatmap_png = $oLog2_Heatmap->make_plot(x_spots=>108, y_spots=>336);  

SEE ALSO

Microarray, Microarray::Image, Microarray::File, Microarray::File::Data_File

AUTHOR

James Morris, Gynaecological Cancer Research Laboratories, UCL EGA Institute for Women's Health, University College London.

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

james.morris@ucl.ac.uk

COPYRIGHT AND LICENSE

Copyright 2008 by James Morris, University College London

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