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

DETAILS

This constructor call will create a SlideMap object using the default parameter settings:

$sm = SlideMap->new( machine => "IAS", x_pin => 2, y_pin => 6, xspacing => 24, yspacing => 25);

The constructor will do all initialization, but will 'NOT' create a map in memory. That can be done as follows:

$sm->fill_map;

After the map has been created in memory, a reference to the map object is obtained by calling getMap. The map object is an array consisting of references to annonymous arrays holding array_row, array_col, plate_alias (or number), well number.

$map_ref = $sm->getMap;

Individual spots can be mapped back to their originating microtitre plate by supplying the row and column index of the spot to convert_spot:

($plate_num, $well, $plate_row, $plate_col) = $sm->convert_spot($array_row, $array_col);

Well is an integer representing the well position on a plate. Starting from well 1 (A1), this number increases across a row and then to the next row, so A12 in a 96-well plate is well 12 and B1 is well 13, etc. Plate_row is an 1-based integer that represents the row.

Likewise, the row and column indeces for a spot can be obtained from the plate_num and well used as source for the spot. NOTE: plate_num here refers to the position of the plate in the series of plates used for the printing, i.e. it is an plate ordinal.

($array_row, $array_col, $meta_row, $meta_col, $sub_row, $sub_col) = $sm->convert_well($plate_num, $well);

The meta_row and meta_col indeces refer to the row/col indeces of the pin that printed the spot in question. The sub_row and sub_col indeces refer to the indeces of the spot within a block. The array_row and array_col indeces are obvious.

SlideMap includes a convenience method to return the meta_row/col, and sub_row/col indeces for a pair of array_row, array_col indeces:

($_meta_row,$_meta_col,$_sub_row,$_sub_col) = $sm->get_meta($array_row, $array_col);

The following are get/set methods that can be used to customize a SlideMap object to accomodate array printers not supported at the time of release of SlideMap.pm.

All of the following 'set*' methods require re-initialization of the SlideMap object:

$sm->initialize;

getMachine: returns the current machine setting:

$arrayer = $sm->getMachine;

setMachine: sets the machine type used for printing. Currently SlideMap supports 4 types of arrayers: 'IAS', 'MD', 'MD3', and 'Stanford'. To set the machine type:

$sm->setMachine("arrayer"); $sm->initailize;

setPrintHead: defines the numbers of pens in the print head, 'X' (plate_row) and 'Y' (plate_col):

$sm->setPrintHead(2, 6);

getPrintHead: returns the numbers of pens in the print head:

($x_pin, $y_pin) = $sm->getPrintHead;

setBlockDimensions: set maximumn row and column indeces in blocks on the array, row first then column:

$sm->setBlockDimensions(25, 24);

getBlockDimensions: returns block dimensions:

($x_spacing, $y_spacing) = $sm->getBlockDimensions;

setNoComplement: switches printing pattern in the 'X' dimension; this is in effect complementing (1 - x) in the 'X' dimension only. Valid values are 0 => complemented, and 1 => 'NOT' complemented:

$sm->setNoComplement([ 0 | 1 ]);

getNoComplement: returns the current value of the noComplement parameter:

$noComplement = $sm->getNoComplement;

setRepeatMode: number of repeated blocks in 'X' dimension. Valid values are 1 - 4:

$sm->setRepeatMode([ 1 | 2 | 3 | 4 ]);

getRepeatMode: returns the current value of the repeat parameter:

$repeat = $sm->getRepeatMode;

setFormat: microtitre plate format: valid values are 1 => 96-well, and 2=> 384-well:

$sm->setFormat([ 1 | 2 ]);

getFormat: returns the current value of the format parameter:

$plate_format = $sm->getFormat;

setPrintDirection: defines the order of printing used by the printer. Valid values are 0 => top->bottom, and 1 => left->right:

$sm->setPrintDirection([ 0 | 1 ]);

getPrintDirection: returns the current value of the print_dir parameter:

$direction = $sm->getPrintDirection;

setPlateOrder: define a list of plate labels (aliases) for the complete set of plates used for printing. The list should include all repeats of the plate:

$sm->setPlateOrder("[A,B,C,D,E,F,G ... | 1,2,3,4,5, ... ]");

getPlateOrder: returns a reference to an array containing the entire list of plate labels:

$plate_order_ref = $sm->getPlateOrder;

DIAGNOTICS

diagnostics: returns the full set of current values for the SlideMap parameters:

$sm->diagnostics;

print_spots/print_wells: prints an entire set of row/col/plate/well values based on the current SlideMap parameters. if the optional parameter is set to 1 (true) then well numbers are printed as well numbers; if set to 0 or not set, then the well number is returned as row_col, i.e. A1, B12, etc. These methods are useful for diagnosing errors in the print pattern.

$sm->print_spots([ 1 | 0 ]); $sm->print_wells([ 1 | 0 ]);

The algorithms used to convert spots to wells and vise-versa are dynamically generated based on the type of arrayer (machine) supplied as a parameter to the constructor (or to setMachine). To view the algorithm currently being used, use either of the following methods:

$sm->showConvertWell; $sm->showConvertSpot;

Joseph A. White; jwhite@tigr.org Version 1.2 Feb. 7, 2002