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

NAME

Microarray::File::GAL - A Perl module for managing microarray GAL file objects

SYNOPSIS

        use Microarray::File::GAL;

        my $gal_file    = gal_file->new("/gal_file.gal");       # if no filehandle, assumes name is full path to file
        # or
        my $gal_file    = gal_file->new("gal_file.gal",$filehandle);    # pass name and FileHandle to original file
        
        my $spot_name   = $gal_file->get_spot_name($block,$col,$row);
        my $spot_id     = $gal_file->get_spot_id($block,$col,$row);

        # print the GAL back to file
        my $string = $gal_file->file_string;

DESCRIPTION

Microarray::File::GAL is an object-oriented Perl module for managing microarray GAL files. It doesn't create GAL files for you, but instead is used to check the contents of a GAL file, and display the microarray layout described by it.

Block padding

For whatever reason, many microarrays are printed with gaps (padding) between pin-blocks. This padding is generated by creating empty rows/columns in the printing software, and (at least on our system) these empty rows/columns are carried through to the GAL file. When the GAL module parses a GAL file, it skips any spot that has a blank 'Name' field, hence automatically removing any padding rows/columns.

It is also important to note that the method file_string() is not a simple regurgitation of a GAL file opened by the object - padding spots won't be output by this method either. This provides a very quick and easy way to remove padding from a GAL file;

        #!/usr/bin/perl -w
        use strict;
        use Microarray::File::GAL;
        my $oGal_File = gal_file->new('gal_file.gal');
        open GALFILE, ">gal_file_unpadded.gal";
        print GALFILE $oGal_File->file_string;
        close GALFILE;

If whole rows/columns of padding are found and removed, and the original GAL file has block coordinate information in the header, the GAL module will throw an error during output, warning that the number of rows/columns it has found differs from what is recorded in the header. Don't worry, this is acceptable behaviour.

METHODS

get_spot_name, get_spot_id

Returns the Name/ID of a spot feature. Spot coordinates defined by passing (in order) a block, column and row value.

set_spot_name, set_spot_id

Set the Name/ID of a spot feature.

file_format, file_version

The first two values at the top of your GAL file (typically 'ATF 1')

header_rows, data_cols

The next two values at the top of your GAL file - the number of rows in the header, and the number of columns of data

block_count, spot_count

Returns the number of blocks/spots on the array

block_x_origin, block_y_origin

The x,y coordinates of the start of a specified block passed to the method

block_feature_diameter

The diameter in microns of features (spots) in a specified block

feature_diameter

As above, but across the whole array. Returns spot diameter (in microns) if the same in all blocks, otherwise returns -1

block_x_features, block_y_features

The number of features (spots) in each column (x) or row (y) of a specified block, as described in the header block info (if present)

counted_rows, counted_cols

As above, but the actual counted values of a specified block, rather than those described in the header block info

row_count, column_count

As above, but across the whole array. Returns the number if all blocks are the same, otherwise returns -1

block_x_spacing, block_y_spacing

The spacing in microns between features (spots) in a specified block passed to the method

x_spacing, y_spacing

As above, but across the whole array. Returns the value (in microns) if all blocks are the same, otherwise returns -1

file_string

Output the object's GAL file data as a text string.

TESTING

This distribution does not include a GAL 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

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.