Closed dpshelio closed 6 months ago
This is a rough draft of aims for day 2 (for discussion). I've split it into two main chunks: designing a light microscopy experiment + processing light microscopy data. We can decide how to split these into individual episodes + exact learning objectives once the content is more certain.
Explain how different techniques are required to answer different research questions
Explain the main steps of designing a light microscopy experiment:
Explain factors to consider when choosing a microscopy technique:
Explain some examples of common measurements e.g. number of cells, size of cells…
Describe a few examples of common microscopy methods e.g. widefield, confocal
Explain how choosing a microscopy method + acquisition settings involves various trade-offs on:
Explain factors to consider when choosing spatial resolution:
Maybe explain assessing image histogram at acquisition? E.g. avoiding saturated pixels/clipping, making sure you are using the full intensity range…
Explain that the required measurements depend on the data and research question.
Explain the main steps in a simple cell counting workflow:
Explain common quality control steps e.g. assessing an image's histogram, checking clipping/dynamic range.
Explain signal to noise ratio
Explain what a segmentation, mask and label image are
Create a label layer in napari and use some of its manual segmentation tools (e.g. paintbrush/fill bucket)
Explain how filters work, with gaussian blur as the main example
Threshold an image manually using its histogram
Threshold an image automatically with Otsu's method
Use connected components labelling on a thresholded image.
Use simple morphological operations to clean up a segmentation e.g. opening / closing / remove small objects / fill holes
Calculate the number of cells and simple measurements like cell size
Next action:
HI @K-Meech - to me this looks like a good set of objectives, with maybe the caveate that it might take longer than a day, especially in the initial runs of this. Re the following comment
Maybe explain assessing image histogram at acquisition? E.g. avoiding saturated pixels/clipping, making sure you are using the full intensity range…
I think this is right, and maybe we explain that there are different types and time that quality control can be done: you can prospectively spot potential errors like this at the point of acquisiton and then make adjustments and re-acquire, but then there is a more retrospective step that may only mean you are excluding data because it is unreliable.
I'll forward this on to people and see what they think.
No objections - it is assumed that the content is ok with everyone. Kimberley to proceed to split into episodes.
@thompson318 - if you have time, you could also look at this issue. This rough list of topics: https://github.com/HealthBioscienceIDEAS/microscopy-novice/issues/9#issuecomment-1804003774 needs to be split into proper episode titles + learning objectives, similar to here: https://github.com/HealthBioscienceIDEAS/microscopy-novice/issues/8#issuecomment-1792729467 . For objectives, we're following the guidelines in carpentries collaborative lesson development docs - specifically the episodes 5+10
@thompson318 It would be really helpful to look into the steps for the cell counting workflow, using one of Napari's sample images (File > Open Sample > napari builtins > Cells (3D + 2Ch). Paul suggested using the napari plugins napari-segment-blobs-and-things-with-membranes
and napari-simpleitk-image-processing
for this workflow (https://github.com/HealthBioscienceIDEAS/microscopy-novice/issues/24), but I haven't had a chance to try out the plugins, or see what options work well for counting the cells in the Napari sample image.
This is 2nd draft of aims for day 2. I've split it into four episodes: the first going through some of the design decisions made when planning a microscopy experiment. The remaining three episode will go through how to make these measurements with example data. This is my first go at revising @K-Meech first go above, I'll work to edit this comment into something precise.
ST - An episode on designing an experiment, this could be very general. I would do it with an example, i.e. "We need to count the number of cells in 2 images, control and effect". I think a lot of this goes beyond the scope of a course on working with imaging data. I guess it's creating context?
Explain how different techniques are required to answer different research questions
Explain the main steps of designing a light microscopy experiment:
Explain factors to consider when choosing a microscopy technique:
Explain some examples of common measurements e.g. number of cells, size of cells…
Describe a few examples of common microscopy methods e.g. widefield, confocal
Explain how choosing a microscopy method + acquisition settings involves various trade-offs on:
Explain factors to consider when choosing spatial resolution:
Maybe explain assessing image histogram at acquisition? E.g. avoiding saturated pixels/clipping, making sure you are using the full intensity range…
Explain that the required measurements depend on the data and research question.
Explain the main steps in a simple cell counting workflow:
Explain common quality control steps e.g. assessing an image's histogram, checking clipping/dynamic range.
Explain signal to noise ratio
Explain what a segmentation, mask and label image are
Create a label layer in napari and use some of its manual segmentation tools (e.g. paintbrush/fill bucket)
Explain how filters work, with gaussian blur as the main example
Threshold an image manually using its histogram
Threshold an image automatically with Otsu's method
Use connected components labelling on a thresholded image.
Use simple morphological operations to clean up a segmentation e.g. opening / closing / remove small objects / fill holes
Calculate the number of cells and simple measurements like cell size
Thanks @thompson318 ! I finished the episode draft I was working on, so I'll also take a look at these episode titles / objectives today.
If I understand correctly, Episode 1 will be about explaining what the general workflow will be and the some general concepts (SNR, segmentation, label images), and then Episode 2 will be actually performing these steps?
@thompson318 regarding your comment
I think a lot of this goes beyond the scope of a course on working with imaging data. I guess it's creating context?
Yes, I think that it is fair and only so much could be put in a 2-3 day course, so we can't really dive in to the details, but some of the domain experts were keen that at least provided some key concepts that they should know/think about and get more information on before proceeding into their experiments.
Thanks @thompson318 for the suggested episode splits! I've looked through these today and tried to shorten some of the objectives (so they fit nicely in the 'Objectives' box at the top of each episode) + add more details about the Napari commands/plugins to be used.
I like splitting the 'designing a light microscopy experiment' section in two - but here I've suggested a slightly different split where we focus on an overview + microscopy methods in the first episode, then acquisition settings in the second. For the 'Processing light microscopy data' section, again I like the split into episode 1 of quality control/manual tools, then episode 2 more automated methods. Here, I've suggested splitting it into 3 episodes, as it's a lot of content! Perhaps progressing from manual segmentation (episode 1), to making a mask of all nuclei together (episode 2), then making a segmentation where each nucleus is a separate label (episode 3). What do you think @thompson318 @davecash75 ?
Suggestions for episode splits / objectives are below. The extra comments in () are loose descriptions of what could be covered in the lesson for context:
(Idea is to work through designing a light microscopy experiment that aims to count cells (as ST suggested, a nice example would be counting cells under two different conditions - control and effect). In this episode describe five steps (as defined above), linking it to this example each time. Go into more detail on the microscopy techniques, saving the acquisition settings for next episode)
Explain the main steps of designing a light microscopy experiment
Describe a few examples of common microscopy methods e.g. widefield, confocal
Explain factors to consider when choosing a microscopy technique
Explain some examples of acquisition settings, and factors to consider when choosing them
Explain the difference between resolution and pixel size
Describe some quality control steps e.g. monitoring the image histogram
(Explain the overall goal of counting the number of cells in Napari's Cells (3D + 2Ch) sample image. Pointing out that while this is only one small sample image, a similar workflow could be setup to process many cell images under different conditions etc.. Explain that the first step is always QC - e.g. checking histogram, clipping, dynamic range, signal to noise ratio. Then show an example of manually labelling nuclei with Napari's label layers - explaining some of the features from https://napari.org/stable/howtos/layers/labels.html . Goal is to end demonstrating that manual labelling is a slow process + we need automation to scale to more cells and images.)
Explain some common quality control steps e.g. assessing an image's histogram, checking clipping/dynamic range
Explain what signal to noise ratio is
Explain what a segmentation, mask and label image are
Create a label layer in Napari and use some of its manual segmentation tools (e.g. paintbrush/fill bucket)
(Goal here is to make a decent mask of all nuclei in a more automated way. Start with thresholding informed by the image's histogram (so manually chosen values), showing that this produces a very noisy mask. Demonstrate that blurring the image first improves the thresholding. Explain what filters are, with gaussian as the main example. Finally, show how otsu can be used to pick a threshold automatically)
Threshold an image manually using its histogram, and display the result in Napari
Use gaussian blur and otsu thresholding from Napari plugins: napari-segment-blobs-and-things-with-membranes
and napari-simple-itk-image-processing
Explain how filters work - e.g. what is a kernel? What does the 'sigma' of a gaussian blur change?
Explain the difference between Napari's .add_labels()
and .add_image()
(Goal here is to make a decent segmentation where all nuclei are separate labels (rather than just a mask of all). Demonstrate simple segmentation cleanup e.g. fill holes, maybe opening/closing. Then show splitting the mask into individual nuclei with connected components. Finally explore the results by making a table of simple measurements and browsing it in Napari - this could use Tools > Measurement tables > regionprops (scikit-image, nsr), and show some of the features from the readme: https://www.napari-hub.org/plugins/napari-skimage-regionprops e.g. highlighting nuclei corresponding to certain rows, or double clicking on a column to see an image coloured by that feature)
Use simple morphological operations to clean up a segmentation e.g. fill holes / remove small objects (from Napari plugins: napari-segment-blobs-and-things-with-membranes
and napari-simple-itk-image-processing
)
Use connected components labeling on a thresholded image
Calculate the number of cells and simple measurements like cell size (using 'regionprops' in Napari)
When back on 8th Jan, Kimberley to create issues for individual episodes for Day 2 based on these objectives. After that, this ticket can be closed.
I'll close this as all day 2 episodes are now merged.
Definition of done
dependencies