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