NEUBIAS / training-resources

Resources for teaching/preparing to teach bioimage analysis
https://neubias.github.io/training-resources
Other
46 stars 21 forks source link

Review skeletonization module #332

Open tischi opened 2 years ago

tischi commented 2 years ago

@AnniekStok

Looks great! Few comments/suggestions.

Concept map

image

We are sometimes not very consistent, but if the module is not a workflow I would try to avoid "workflow-like" concepts.

Maybe rather:

graph TD
     BI("Binary image") --> S("Skeletonize")
     S --> SI("Skeleton image")
     SI --- B("Branch pixels")
     SI --- BP("Branch point pixels")

To make the point that one may have pixels of different nature in the skeleton image?

Figure

image
  1. I don't think one needs to select a label, does one?
  2. I am not sure whether this "skeleton analysis" step exists in other platforms. Could you check this (e.g. https://scikit-image.org/docs/stable/auto_examples/edges/plot_skeleton.html)? If this is something non-standard I would remove it from the figure.
  3. As an alternative, maybe only show the skeleton where the junction pixels are differently labelled than the branch pixels. Explain the color coding in the figure legend and make the nomenclature consistent with the concept map.
  4. Personally, if possible I find it nicer not to have too much text in the figure but rather put that in the figure legend. You could add a) b) c). But I am also not always consistent there.

Activity

Here is something wrong with the indentation (one space too much in front of Obtain):

image

Below you could use the - [ ] ... and - [X] ... syntax instead of spelling out "select" and "deselect".

image

Exercises

I would start with capital: Which ...

image

This is a case where the questions are the same for all implementations. I think this will be much better once we enable https://github.com/NEUBIAS/training-resources/issues/325, because then one can just write the questions once. I think already now, you could move the questions up into the exercise_preface: and only have the solutions in the exercises (even omitting the ## Solution syntax).

AnniekStok commented 2 years ago

Thanks a lot for your comments @tischi!

I updated it as follows.

Concept map: updated. I think the 'official' terms for the different pixels are slab pixels, junction pixels, and endpoint pixels (that's also what is tagged in the 'analyze skeleton' result (https://imagej.net/plugins/analyze-skeleton/?amp=1), so I am using those terms now.

Figure:

  1. I removed the 'label selection'
  2. I think it is important to keep skeleton analysis because often skeletonization is performed to obtain the number of different branches and their lengths, right? I found this python package that does similar things: https://skeleton-analysis.org/getting_started.html. I know strictly speaking the module is called skeletonization but I also included skeleton analysis, which in ImageJ is actually is performed by a separate plugin...
  3. I think showing both the unlabelled skeleton and the tagged skeleton might be good, because they are really two separate steps that one has to perform. I added the color description in the legend.
  4. I changed to a, b, c,

Activity: fixed indentation and used the tickbox notation. Thanks! Exercises: changed to capitals and put the questions in the exercise preface and removed the solution syntax.

AnniekStok commented 2 years ago

@tischi , sorry for bothering you... actually I am now having trouble pushing the changes.. Before I mess up badly, could you please advice me on this:

To https://github.com/NEUBIAS/training-resources.git ! [rejected] skeletonization -> skeletonization (non-fast-forward) error: failed to push some refs to 'https://xxxx@github.com/NEUBIAS/training-resources.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.

I did run the following prior to making changes: git checkout master git pull git checkout skeletonization git merge master

It says it is up to date with master but I guess it is not up to date with the remote skeletonization branch somehow, so I should somehow pull it? How do I make sure not to overwrite what I just updated?