top bar

Well Plate Plugin

Revision as of 12:09, 9 February 2011 by Kdb (Talk | contribs)

Description

Designed to handle standard SBS well plates from 24, 96, 384 and 1536 wells.

The plugin will calculate the correct coordinates for each well position. You can then iterate through each well starting at the first well. Well A1's center must be at coordinates {1,1}, which is located at the top left.

The plugin will move the stage down or up each column, until the last row, before moving to the next column and reversing direction. The zig-zag path chosen for moving the stage is the fastest path on an Zeiss AxioObserver Z1.

You can change the starting well, or the ending well to only work on a subregion. However, well A1 still must be at coordinates {0,0}.

Setup

big.jar must be installed and imported into the bsh script.

addClassPath("big.jar");
import edu.umassmed.big.SBSPlate;

Class Functions

SBSPlate()
Initializes the plugin and uses 96 as the size of the well plate.
SBSPlate(int size)
Initializes the plugin for use with well plate of a set size. Acceptable sizes are 24, 96, 384, and 1536.
void setFirstWell(int x, int y)
Changes the starting position from {1,1} to {x,y}. Index is 1 based.
void setLastWell(int x, int y)
Changes the ending position from {1,1} to {x,y}. Index is 1 based.
int[] getWellPosition (int x, int y)
Returns the absolute position of a well compared to from well A1 in microns. Index is 1 based.
String getWellLabel(int well)
Returns the SBS name of the well as a String formatted as letter and number. For example, A01. If you are only using a subregion, then you only need to pass the well number of that subregion, with well 1 being the start of the subregion. The function will calculate the correct SBS label of that subregion based on where that subregion is on the well plate.
int getNumberOfWells()
Returns the number of wells in the entire plate, or the number of wells in a subregion.
int[] getNextPosition()
Returns the {x,y} coordinates of the next well. If at the last well, it will return the first well's coordinates.

Example Micro-Manager BSH Script

addClassPath("big.jar");
import edu.umassmed.big.SBSPlate;

gui.closeAllAcquisitions();
gui.clearMessageWindow();

xystage = mmc.getXYStageDevice();

int[] position = {0,0}
mmc.setXYPosition(xystage,position[0],position[1]);
mmc.waitForDevice(xystage);

SBSPlate plate = new SBSPlate(96);
numberOfWells = plate.getNumberOfWells();

for (m = 1; m <= numberOfWells; m++) {
  // code to take an image could be here


  // move the stage to the next well
  position = plate.getNextPosition();
  mmc.setXYPosition(xystage,position[0],position[1]);
  mmc.waitForDevice(xystage);
}
// return stage to starting position
mmc.setXYPosition(xystage,0,0);
mmc.waitForDevice(xystage);


--Karl Bellve, Biomedical Imaging Group, University of Massachusetts 20:02, 9 February 2011 (UTC)

© Micro-Manager : Vale Lab, UCSF 2006-2011 | All Rights Reserved | Contact