Micro-Manager Java API

Mark Tsuchida

μManager 2.0 is very different from μManager 1.4

  • Acquisitions
  • Album
  • Autofocus
  • Data display
  • Data storage in RAMM and on disk
  • Metadata Harmonization
  • PositionLists
  • Quick Access Buttons
  • Snapping and live mode
  • User Profiles

Micro-Manager Java API

mm.

Micro-Manager Java API

mm.

live().

List<Image> snap(shouldDisplay)
displayImage(image)
setLiveModeOn(on)

Micro-Manager Java API

mm.

live().

album().

addImage(image)
getDatastore()

Micro-Manager Java API

mm.

live().

album().

acquisitions().

runAcquisition()
pauseAcquisition()
pauseAcquisition()
loadAquisition(String path)
attachRunnable(frame, position channel, slice, runnable)

Micro-Manager Java API

mm.

live().

album().

acquisitions().

data().

Image convertTaggedImage(tagged)
Image createImage(pixels,width,height,bytesperPixel,numComponents,coords,metadata)
Datastore createMultipageTIFFDatastore(dir,true,false)
Datastore createRAMDatastore()
ImageJConverter ij()

Micro-Manager Java API

mm.

live().

album().

acquisitions().

data().

displays().

DisplayWindow createDisplay(DataProvider)
DataViewer getActiveDataViewer()
manage(dataStore)
Datastore show(image)

Micro-Manager Java API

mm.

live().

album().

acquisitions().

data().

displays().

positions().

PositionList getPositionList()
markCurrentPosition()
setPositionList(positionList)

Micro-Manager Java API

mm.

live().

album().

acquisitions().

data().

displays().

positions().

profile().

MutablePropertyView getSettings(key)

Typical MM script work-flow

import org.micromanager.data.Coordinates;

dirName = "C:\\tmp\\test5";
targetStore = mm.data().createMultipageTIFFDatastore(dirName, false, false);

nrT = 5;
cb = Coordinates.builder();
for (t=0; t < nrT; t++) {
imgs = mm.live().snap(true);
cb.c(c).t(t).z(z).p(p);
img = imgs.get(0).copyAtCoords(cb.build());
targetStore.putImage(img);
}
targetStore.close();

mm.scripter().message("Done");