-
Notifications
You must be signed in to change notification settings - Fork 20
Issues & FAQ
We are constantly trying to improve the program. If you find an issue with the program, please open an 'Issue' at this repository to let us know. We will do our best to fix it as fast as possible.
In order to get a quicker response, here are some things that will help us:
- Make sure that you have the latest version of SuperSegger, in case the problem has already been adressed. Download SuperSegger again, replace your version, and see if the problem is still there.
- Describe the problem and copy paste any error showing up in the console.
- Upload the image that you were using that caused the problem.
- Which segmentation parameters you were using? (upload them if you created your own).
If you manage to fix the problem yourself, you can also fork the repository and push your contribution.
Thank you for the help.
We will add here typical questions as we get them.
We based our naming scheme on the output of NIS Elements which we use on our commercial scope. To analyze data with other naming schemes, these files must be renamed. Stella Stylianidou created the builtin renaming script and it works beautifully under most circumstances. That being said, it isn't magic. If you are having problems, I would try renaming a subset of my files by hand to match the NIS Elements name scheme and see if this fixes the problem.
basename_t001_xy3_c1.tif
is the name for frame 1, xy position 3 and channel 1. NOTE that everything is in lowercase except for the basename. Windows, Mac and linux all handle case a little differently so if you don't follow the naming rules, you might get inconsistent behavior between platforms and you may discover bugs in the file name handling that we haven't caught.
Is the image resolution correct? SuperSegger is optimized to work with 60X and 100X magnification (a sample pixel size of roughly 60-100 nm). If your images are saved at a larger magnification, SuperSeger will attempt to spit the cells to many smaller pieces. You will need to resize your images for cells to have the typical size. Typical E. coli cells in 60X,100X have a width of about 5-8 pixels. If you go to trainingGui, open your raw images folder and click modify constants. You can see a yellow box noting how wide E. coli cells usually are. You can also click on one of the cells after you hit run and see their width and length.
Solution: There is a built-in method for rescaling your data. Set (before segmentation) the following field in the CONST structure:
CONST.superSeggerOpti.rescale = 1;
Alternatively, you can also use trackOptiResize to resize your images before you start segmentation. If for example you want to resize the images in the 'directory_name' by 0.5, type trackOptiResize('directory_name', 0.5).
Are your cells forming long filaments? SuperSegger is optimized to work with normally-shaped cells. There are a couple potential problems. The segmentation algorithm knows how long wild type cells are and it will increase the probability of marginal segments as the cells grow beyond the normal cellular length. Furthermore, if in the initial segmentation step, there are no putative edges dividing colony regions that are larger than a typical cell, it will automatically increase the sensitivity of the algorithm and subdivide these regions. Both of these mechanisms will work against you if your cells are filamenting, although they increase the accuracy of segmentation under normal growth conditions of WT cells.
Solution: You can attempt to re-train the algorithm for long cells, but I would try two other things first. To prevent the algorithm subdividing large regions, set the maximum region width to be much larger:
CONST.superSeggerOpti.MAX_WIDTH = 1e10;
Next, to prevent the algorithm using cell shape to choose which segments to use, set:
CONST.seg.OPTI_FLAG = false;
In general, I recommend removing non-micro colony regions from the cell mask before it gets subdivided into putative cells. More on this another time.
We do use the CellASIC device sometimes and so there is an automated way to remove the pillars. I haven't used this feature a lot so YMMV.
CONST.superSeggerOpti.remove_pillars.flag = true;
CONST.superSeggerOpti.remove_pillars.radius = 2;
CONST.superSeggerOpti.remove_pillars.cut = 0.05;
CONST.superSeggerOpti.remove_pillars.Area_Cut = 700;
CONST.superSeggerOpti.remove_pillars.debug = false;
What about mother machine images? We have analyzed these before, but this required some pretty specific preprocessing of the images to work well. Basically, you need to remove the mother machine structure before you start the segmentation. More on this another time.
We always use phase contrast to segment the cells and so all our CONST's and the code in general is all optimized for phase contrast analysis. In principle, you can also use cytoplasmic fluorescence or brightfield images as channel 1 for segmentation. The cell cytoplasm needs to be dark. If your images have bright cytoplasms, you can set:
CONST.superSeggerOpti.segmenting_fluorescence = true;
to invert the images before segmentation runs. In brightfield, I recommend either under or over focussing the cells in the brightfield channel. Depending on which you choose, the cells will either be bright or dark.
In general, I would strongly recommend phase contrast. If you are worried about the loss of light in the phase objective, you can always use an external phase ring on a flipper that can be removed from the light path when imaging fluorescence. (This is what we do.)
These descriptors are now automatically populated in the clist.
Yes.
I usually just throwout cells that don't segment correctly. For instance, for many analyses, we first gate on cells that go through a complete cell cycle and are segmented without error (i.e. stat0==2).
What's more, if SS is not tracking and segmenting the data correctly, you might want to first concentrate on taking better images. I would consider aligning the condenser, focusing and exposing the images correctly. If the frame rate is too low, there may not be sufficient overlap between cells in successive frames to allow the linking algorithm to work well, especially as microcolonies get large and the cells at the edge move fast due to the growth of the cells on the interior. With large fields of view, it is also essential to make sure that the slides are level, otherwise it will be impossible to focus all the cells simultaneously. (We do have tools for merging phase z-stacks.) If you are having problems growing the cells in a single layer on agarose pads, I recommend upping the agarose percentage. I have done experiments with 4% and even 8% low-melt agarose for certain applications.
However, you may wish to fix things by hand and we have provided these tools. All these options are available through the SuperSeggerViewerGui.
Try the "Outline figure" option from the Output options menu in the Gui. (Thank Sarah Mangiameli for here modifications of this function.)