Plate Builder Documentation |
Description Plate builder is designed to create custom plate layouts for the gene id tracking system (GITS). It is designed to be generic, allowing creation of different plate types with relatively straightforward(?) addition of code. The interface comprises a list and a plate layout. Currently implemented is the ability to select items from the list into individual wells of the plate or to apply an item against a template. Plate layouts can be output as postscript for printing. DesignThe specific application of plate_builder is defined by the variable $stage - currently a command line argument. According to the value in $stage various parts of the interface are switched on and off. Two subroutines - make_list() and plate_grid() - perform the bulk of the work in building the interface. Other generic subroutines are called depending on the options set for the value of $stage. Specific code to to pull out the list of entities for selection needs to written for each $stage in fill_list(). Plate creation needs to be placed in build_xxx_plate. Currently only build_pcr_plate() is implemented, there are slight variations for 'pool' and 'pcr' stages. The main sections of code are outlined below: Setting up the Interface
make_list For pool screening generate a list of available templates and display in a dropdown ($TEMPLATE_SELECT).
fill_list
builds a grid representing a 96 well plate. If cherry picking to individual wells ($RADIO) a Tk::Radiobutton is created, otherwise a Tk::Label. There is space in each well to display two pieces of text - when creating PCR plates these are the oligo name and dna superpool name. These are stored as:
Defining Plate Contents setup_pool() and transfer() control populating the plate layout for pool screening and pcr respectively. DNA name and STS/oligo name are transferred into 'item1' and 'item2' respectively for each well. The values are taken from list columns according to $DISPLAY_COL_1 and $DISPLAY_COL_2. All data from the list entry is copied into an array and added to %on_plate before the list row is deleted. It can thus be recreated if the plate/well is cleared.
setup_pool copies the required info from a list item into a well position. Uses oligo name and superpool name as item1 and item2 respectively. If the list item is a water control then don't copy to %on_plate and don't delete entry from list. transfer() is called in one of three ways 1) selecting a list item and a well then pressing transfer button, 2) selecting a list item and double clicking a well radio button, 3) selecting a well and double clicking a list item. The currently selected well is stored in $bits->{well}.
clear_plate
clear_well Creates a plate in the database. Also prints barcode labels and gives the option of printng a plate layout (postscript). Currently implemented is build_pcr_plate - this creates plates for pool and pcr stages in much the same way. Uses data placed in each well and looks up additional data from hashes populated in fill_list.
build_pcr_plate
print_layout
|