I just realized that the modules identifysecondaryobjects and identifytertiaryobjects do not always preserve the object labels, i.e., if a primary object (e.g., a nucleus) has a label of 10, then the corresponding secondary and tertiary objects (say, cytoplasm) are not guaranteed to also have a label of 10. The worst part is that most of the time, the labels are the same, so it took me a while to discover this issue.
Our downstream processing expects the nucleus and cytoplasm from a cell to have the same label. Fixing this will be rather obnoxious; the reassignobjectnumbers module can’t do it, and I don’t want to mess with the relatejobects module.
I can’t think of a situation in which a person would not want corresponding primary, secondary, and tertiary objects to have the same label. Why not enable this? Just disable “discard secondary objects touching…”, and whatever else is necessary to ensure that every primary object has exactly one secondary object.