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;
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.