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

NAME

Microarray::File::Data::Quantarray - A Perl module for managing Perkin Elmer 'Scanarray' microarray files

SYNOPSIS

        use Microarray::File::Data::Quantarray;

        my $data_file = quantarray_file->new("/file.csv");
        my $ch1_image = quantarray_image->new("/image1.tif");

DESCRIPTION

Microarray::File::Data::Quantarray is an object-oriented Perl module for managing microarray files created by Perkin Elmer's 'Scanarray' software. It inherits from Microarray::File, and maps data fields in a Scanarray data file to those used by Microarray::File::Data, as well as extracting header information from image files. The data file and image file headers that are created by Scanarray are richly annotated with a lot of useful information about your scans, allowing automated file handling that is impossible with other formats.

METHODS

quantarray_file methods

In case you didn't guess - where a method exists for "channel1" in the following methods, there is an equivalent method for "channel2".

General methods - typically retrieving information from the header

pixel_size

Measured in micrometers.

channel1_name

i.e. Cyanine 3, or Cyanine 5. This comes from Scanarray's fluorochrome list, and represents whatever fluor you chose in the scan set up.

channel1_image_file

The full path of the image file when saved by Scanarray.

gal_file

The full path of the GAL file, when/if imported by Scanarray during data extraction.

user_comment

No idea where this comes from. But its there in the data file.

array_columns, array_rows

Number of columns and rows of blocks on the array

spot_columns, spot_rows

Number of columns and rows of spots in each block

And other methods that don't need any explanation;

analysis_software
num_channels
slide_barcode
channel1_pmt, channel1_laser

Spot methods

Pass the data row index to these methods to return information for a particular spot. The first row of data is index 0.

block_row, block_col, spot_row, spot_col, spot_index

There is no 'block number' field in Scanarray files, so all coordinates are at row/column level.

feature_id, synonym_id

The 'Name' and 'ID' columns respectively.

x_pos, y_pos

Spot centre location in pixels, from the top-left of the image.

footprint

You'd better look this one up... but its something like how far away the spot centre is, compared to where it was expected to be.

flag_id

The flag associated with the spot.

ch1_median_f, ch1_mean_f, ch1_sd_f

Median, mean and SD values for the fluorescence measurements of spot pixels.

ch1_median_b, ch1_mean_b, ch1_sd_b

Median, mean and SD values for the fluorescence measurements of background pixels.

ch1_b1sd, channel1_quality, channel1_sat

The percent of spot pixels 1 SD above background, percent of spot pixels 2 SD above background, and percent of spot pixels that are saturated.

channel1_snr

Scanarray calculates signal to noise ratio as the median signal/background SD.

quantarray_image methods

image_barcode

Returns the barcode, if there is only one, or if there is one at each end of the array and they are identical. Otherwise, if there are two barcodes that are different it will die with an error.

image_lbarcode

Returns the lower barcode

image_ubarcode

Returns the upper barcode

protocol_name, protocol_id, protocol_description

These methods return details of the Scanarray protocol used to scan and extract array data

image_resolution

Pixel size in microns

fluor_name, fluor_id, fluor_colour_name, fluor_description, fluor_excitation, fluor_emission

These methods return details of the fluorochrome specified in the scan protocol and visualised in this image. Not necessarily the fluorochrome used in the experiment!

laser_id, filter_id

The Scanarray IDs of the filter and laser used in the scan

pmt_gain, laser_power

Percentage values specified in the scan protocol

user_comment

User comment can contain the slide barcode

Setting a new barcode

You can change the value of a barcode in the header information. You can't overwrite the original file, but you can write these header changes to a new image file. This is achieved using the Image::ExifTool module.

        my $success = $image->set_new_barcode('new barcode','/new_file.tif');

The returned values are; 1=write success, 2=write success no changes, 0=write error. If you need to change any other values, you can do by manipulating the embedded Image::ExifTool object.

        my $exiftool = $image->get_exiftool_object;

TESTING

This distribution does not include a data file for testing purposes, since the one used for the test is very large. If you would like to run the full test you can download the file at http://www.instituteforwomenshealth.ucl.ac.uk/trl/pipeline/download.html.

SEE ALSO

Microarray, Microarray::File, Microarray::File::Data, Image::ExifTool

AUTHOR

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

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

c.jones@ucl.ac.uk

COPYRIGHT AND LICENSE

Copyright 2008 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.