Developer notes

Overall processing pipeline

Each sample is contained in its own directory. Before processing, the directory structure should look like this:
The key principle of StitchIt is that the raw data are left untouched but are loaded using the tileLoad function which is able to apply corrections and transformations on the fly. The sequence of operations that produces stitched images is as follows:
  • preProcessTiles calculates things such as the average tile for background image subtraction and other statistics. An average image is calculated for each section, optical section, channel, and odd/even row in the tile pattern (these latter can be optionally averaged together). Calculating the average on a per-section basis allows the process to be conducted incrementally during acquisition at the expense of a small increase in the size of the raw data directory.
  • collateAverageImages produces grand average images over all sections and saves these.
  • The tileLoad function can be used to load individual tiles or all tiles from a single optical plane.
  • stitchSection uses tileLoad to load an optical plane into RAM then it assembles that optical plane into a stitched section. This is saved to a directory called stitchedImages_100/chanN. (The "_100" indicates full-sized, 100%, images).

Adding new variables to the INI file

The INI file reader, readStitchItINI, reads both the user's INI file and the default INI file that comes with StitchIt. If you wish to add a new variable then all existing INI files out in the wild won't have this variable. To get around this problem, all you have to do is define your new variable in the default INI file stitchitConf_DEFAULT.ini and set it to a sensible value. e.g. If you new variable is used to enable/disable adding a smiley face on top of each stitched section, then obviously set this behavior to be disabled since most people won't want this. You can then add this variable to your own personal INI file and enable it.