diff --git a/docs/deep/djl.md b/docs/deep/djl.md index 083b815..b1d59c2 100644 --- a/docs/deep/djl.md +++ b/docs/deep/djl.md @@ -46,7 +46,7 @@ Instead, you should use the {menuselection}`Manage DJL Engines` to explicitly re To use an NVIDIA GPU with either TensorFlow or Pytorch, you will need to have a *compatible* version of CUDA installed *before* downloading the engine. -See {ref}`gpu-support` for more details. +See [the GPU support page](gpu-support) for more details. ::: If downloading the engine is successful, the indicator beside the engine should switch to green. diff --git a/docs/deep/images/instanseg_fl_results.jpg b/docs/deep/images/instanseg_fl_results.jpg index 043e986..e1a1f8a 100644 Binary files a/docs/deep/images/instanseg_fl_results.jpg and b/docs/deep/images/instanseg_fl_results.jpg differ diff --git a/docs/deep/images/instanseg_running.jpg b/docs/deep/images/instanseg_running.jpg deleted file mode 100644 index 049ecba..0000000 Binary files a/docs/deep/images/instanseg_running.jpg and /dev/null differ diff --git a/docs/deep/instanseg.md b/docs/deep/instanseg.md index d817407..ed797a1 100644 --- a/docs/deep/instanseg.md +++ b/docs/deep/instanseg.md @@ -105,12 +105,6 @@ When you click `Run`, InstanSeg will check for PyTorch. If this is not on your machine it will download it for you (this could be > 100 MB, so may take a while). Once this is done, the model will run and you will see the results in the viewer. -:::{figure} images/instanseg_running.jpg -:class: shadow-image large-image - -Running InstanSeg -::: - ### 5. Viewing Results The results will be displayed in the viewer. diff --git a/docs/reference/building.md b/docs/reference/building.md index ca7cc9a..b3ae280 100644 --- a/docs/reference/building.md +++ b/docs/reference/building.md @@ -72,7 +72,7 @@ If it *didn't* go so well, check out [](#Troubleshooting). If you already have Java installed, you might be able to skip Step 2. Most Java versions >= 17 should work to launch Gradle, which will then automatically download the version it needs. -However, since QuPath currently requires OpenJDK {{java_version}}, we recommend just installing that and saving Gradle the extra effort. +However, since QuPath currently requires OpenJDK {{java_version}}, it's probably best to just install that and saving Gradle the extra effort. Note that some problems have been reported using a version of OpenJDK based on OpenJ9, such as may be provided by some package managers. Switching to an OpenJDK distribution based on HotSpot may help -- see [here](https://github.com/qupath/qupath/issues/484) for details. diff --git a/docs/reference/images/omero-overview.png b/docs/reference/images/omero-overview.png new file mode 100644 index 0000000..bcbab8a Binary files /dev/null and b/docs/reference/images/omero-overview.png differ diff --git a/docs/reference/images/toolbar.png b/docs/reference/images/toolbar.png new file mode 100644 index 0000000..7a27cb1 Binary files /dev/null and b/docs/reference/images/toolbar.png differ diff --git a/docs/reference/index.md b/docs/reference/index.md index ae4e558..f421415 100644 --- a/docs/reference/index.md +++ b/docs/reference/index.md @@ -4,13 +4,10 @@ :maxdepth: 2 faqs - shortcuts commands config building styling projects_structure - - ``` diff --git a/docs/reference/projects_structure.md b/docs/reference/projects_structure.md index 9603921..675556e 100644 --- a/docs/reference/projects_structure.md +++ b/docs/reference/projects_structure.md @@ -65,6 +65,6 @@ When the project is opened, these can be accessed directly via the {menuselectio The *classifiers* directory contains files related to classification within QuPath. -- A **classes.json** file, which contains the default classifications available under the *Annotations* tab (used when training classifiers) +- A **classes.json** file, which contains the default classifications available under the {guilabel}`Annotations` tab (used when training classifiers) - An optional **pixel_classifiers** subdirectory containing pixel classifiers relevant to the project - An optional **object_classifiers** subdirectory containing object classifiers relevant to the project diff --git a/docs/reference/release_notes.md b/docs/reference/release_notes.md deleted file mode 100644 index 95fcca1..0000000 --- a/docs/reference/release_notes.md +++ /dev/null @@ -1,173 +0,0 @@ -# Release Notes v0.6.0 - -Welcome to the expanded release notes for QuPath v0.6.0. - -The aim of this document is to provide a more detailed (and readable...) overview of the highlights in this version than the original github [CHANGELOG](https://github.com/qupath/qupath/blob/main/CHANGELOG.md). - -1. [Major features](#major-features) - Spotlight changes -2. [Enhancements](#enhancements) - Improvements to existing features -3. [Experimental features](#experimental-features) - New features included for testing and feedback. They may change or be removed in future versions. -4. [Bugs fixed](#bugs-fixed) - Previous problems that have been resolved -5. [Scripting and API changes](#scripting-and-api-changes) - Changes related to the API and anything script related. Useful notes for script writers and extension developers! -6. [Dependency updates](#dependency-updates) - External libraries and package updates - -## ๐Ÿš€ Major features - -### New InstanSeg Segmentation - -In this new version we have added support for the exciting new segmentation extension [InstanSeg](https://github.com/qupath/qupath-extension-instanseg). -This extension provides speedy and accurate segmentation of cells for both brightfield and fluorescent images. -Learn more about InstanSeg and how to use it in QuPath [here](../deep/instanseg.md). - -:::{figure} https://global.discourse-cdn.com/business4/uploads/imagej/optimized/3X/0/0/0047d91a99114d47e9a22e68c04eacd9e1cd24a5_2_690x392.jpeg -:class: shadow-image full-image - -InstanSeg segmentation of haematoxylin and dab nuclei -::: - -:::{figure} https://global.discourse-cdn.com/business4/uploads/imagej/optimized/3X/a/9/a970374cfd08ec4708364ca5b42807ceaaa24133_2_690x392.jpeg -:class: shadow-image full-image - -InstanSeg segmentation of nuclei in a fluorescent image -::: - -***TODO*** Update images once InstanSeg page is complete (since images have been compressed) - -### OME-Zarr images are now supported - -Its now possible to open and work with OME-Zarr images in QuPath. -This is a new format that is designed to be more efficient and scalable than the traditional OME-TIFF format. -Learn more about OME-Zarr in general check out [this paper](https://link.springer.com/article/10.1007/s00418-023-02209-1) and how to use it in QuPath [here](../reference/ome_zarr.md). - -## โœจ Enhancements - -### New keyboard shortcuts - -* **Tired of using the mouse to close sub-windows?** Now you can press {kbd}`Esc` or {kbd}`Ctrl + W` to close them (well, most of them... let us know if an important window isn't responding to this and you think it should). -* **Got lots of things to select?** Quickly activate the selection tool by pressing 'S' when the main viewer is selected. - -### Viewing Annotation Names - -Previously when displaying annotation names the label would be displayed in the center of the annotation. -This could be problematic when the annotation was small or overlapped with another. -Now the label is displayed consistently at the top of the annotation. -This makes it easier to see which label relates to which annotation as seen below. - -:::{figure} https://github.com/user-attachments/assets/f180d900-f6de-4230-a7b7-fe054b70108e -:class: shadow-image full-image - -Annotation names displayed at the top of the annotation -::: - -### Project Browser Improvements - -* **Thumbnails can now be hidden**: This is useful when you have a large number of images in a project and don't want to wait for the thumbnails to load or for double blinded studies where comparisons between thumbnails could be problematic. In addition to this, the size of the thumbnail can be adjusted to suit your needs by simply right clicking on the thumbnail and selecting an option in "thumbnail size". -* **Alerts when images go missing**: Previously if an image was moved or deleted from the project folder, QuPath would not alert the user that the image was missing until the image was opened. Now, if an image is missing from the project folder, a warning will be displayed next to the name in the project browser so no more surprises when opening. -* **Sorted our sorting**: The sorting of images in projects has been sharpened up. Images will remain sorted when re-opening the project or after adding new metadata values. - -### Selection mode refresh - -Allongside a shiny new icon design, tool buttons will now change when the selection mode is selected to make it easier to see which mode is currently active. -If the current tool options that work with selection mode are not enough it's now possible to use the line tool too with any object that the line intercepts being selected. -Lastly, the selection mode can now be quickly accessed by using the 'S' key when the main viewer is selected. - -### Histograms now use Logarithmic scaling - -When viewing histograms in QuPath, the scaling can now be using log$_{10}$ rather than natural log. -Measurement tables for annotations and detections are both now able to utilize this feature. - -***TODO***: Add images of log scaling once general doc update is complete - -### Classy TMAs - -TMA cores now by default are assigned a specific class when created, keeping them further distinguished from other annotations types. -The default color for this class is now lighter to make it easier to see for both brightfield and fluorescent images. -If a core is missing from the grid then it will be displayed the same color as the other cores but with more transparency. - -***TODO***: Add image of TMA once TMA page is complete - -### Classification color warnings - -Changing the color of your annotations can get tricky when your needing more colors than are in the color palette. -Now when you select a color very similar to one already used, QuPath will warn you and suggest a new color to use. - -***TODO***: Add image of color warning and check full functionality - -### Package project warnings removed - -When using self contained projects with all your images in beside the project file, QuPath would previously prompt users to update the image paths if the project was moved. -This is no longer the case so enjoy taking your projects to new locations! - -### RGB fluorescence images - -Previously an RGB fluorescence image would be stuck with the default "red", "green" and "blue" channels. -Now you can change these to any name you like. - -### Symbolic Links Support - -Symlinks (short for symbolic links) are special types of files in an operating system that act as references or pointers to other files or directories. -They are often used to create shortcuts or aliases to another file or folder without duplicating the actual data. -QuPath now better supports symlinks for images, giving users more flexibility with image organization. - -### Bio-Formats default preferences - -Due to some troubles with opening remote OME-Zarr images, bioformats default is set to "local files only" within preferences. - -## ๐Ÿ”ฅ Experimental features - -### Stain normalization and background subtraction - -The foundations for stain normalization and background subtraction have been started. -Currently they are only accessible via the scripting and not yet available to interface only users (but watch this space!). - -```{image} https://github.com/user-attachments/assets/84b18c6c-260e-47d7-acf2-9ee97d9c3c76 -:width: 48% -``` - -```{image} https://github.com/user-attachments/assets/ecd1d6a7-9b49-4a93-b635-2298d43abf09 -:width: 48% -``` - -:::{Figure} https://github.com/user-attachments/assets/12d7060b-35bc-40ca-89a3-f837c5417dbf -:class: mid-image - -Top Left: Original image, Top Right: Image after background subtraction, Bottom: Image after stain normalization and background subtraction. -::: - -## ๐Ÿ› Bugs fixed - -### Script saving on close - -Users will be prompted to save unsaved changes to scripts when closing QuPath, even when the scripting editor is minimized so your precious code is safe. - -### OME.tiff exporting 8 bit -When using the Tile exporter to export an OME.tiff image, the image previously went through a RGB check that resulted in the images wrongly being converted to 8-bit. -It now exports in the correct bit depth of the original image. - -## ๐Ÿ‘ฉโ€๐Ÿ’ป Scripting and API changes - -### Faster running scripts for projects - -When images are not needed in a script (for example exporting measurements) it will run faster. -This is due to the image pixels are no longer fetched regardless if they are used or not. - -## ๐Ÿ“š Dependency updates - -* Bio-Formats 7.3.1 -* Commonmark 0.23.0 -* DeepJavaLibrary 0.30.0 -* Groovy 4.0.22 -* Gson 2.11.0 -* Guava 33.3.1-jre -* JavaFX 23 -* Java Topology Suite 1.20.0 -* JFreeSVG 5.0.6 -* JNA 5.14.0 -* JUnit 5.11.0 -* Logback 1.5.8 -* Picocli 4.7.6 -* OpenCV 4.9.0 -* OpenJDK 21 -* RichTextFX 0.11.3 -* slf4j 2.0.16 -* snakeyaml 2.3 diff --git a/docs/reference/release_notes_template.md b/docs/reference/release_notes_template.md deleted file mode 100644 index 23619da..0000000 --- a/docs/reference/release_notes_template.md +++ /dev/null @@ -1,48 +0,0 @@ -# Release Notes Template ***TODO*** - -Welcome to the expanded release notes for QuPath ***TODO***. -This version was released on ***TODO***. -The aim of this document is to provide a more detailed overview of the changes in this version than the original github [release notes](https://github.com/qupath/qupath/blob/main/CHANGELOG.md) ***TODO***. - -1. [Major features](#major-features) - Spotlight changes -2. [Enhancements](#enhancements) - Additions to make existing features better -3. [Experimental features](#experimental-features) - New features included for testing and feedback. They may change or be removed in future versions. -4. [Bugs fixed](#bugs-fixed) - Previous problems that have been resolved -5. [Scripting and API changes](#scripting-and-api-changes) - Changes related to the API and anything script related. Useful notes for script writers and extension developers! -6. [Dependency updates](#dependency-updates) - External libraries and package updates - -## ๐Ÿš€ Major features - -### First major feature - -:::{figure} https://global.discourse-cdn.com/business4/uploads/imagej/optimized/3X/0/0/0047d91a99114d47e9a22e68c04eacd9e1cd24a5_2_690x392.jpeg -:class: shadow-image full-image - -Example image -::: - -```{image} https://github.com/user-attachments/assets/84b18c6c-260e-47d7-acf2-9ee97d9c3c76 -:width: 48% -``` - -```{image} https://github.com/user-attachments/assets/ecd1d6a7-9b49-4a93-b635-2298d43abf09 -:width: 48% -``` -Another example image format for in-line images. - -## โœจ Enhancements - -### New keyboard shortcuts - -* **Catchy reason why people want to use the shortcut** Solution to the problem. -* **Another problem** Another solution. - -## ๐Ÿ”ฅ Experimental features - -## ๐Ÿ› Bugs fixed - -## ๐Ÿ‘ฉโ€๐Ÿ’ป Scripting and API changes - -## ๐Ÿ“š Dependency updates - -* \ No newline at end of file diff --git a/docs/starting/annotating.md b/docs/starting/annotating.md index 78e7c5a..9615265 100644 --- a/docs/starting/annotating.md +++ b/docs/starting/annotating.md @@ -119,6 +119,12 @@ You can set these quickly for a selected annotation by pressing the {kbd}`Enter` The name can be shown or hidden in the viewer using {menuselection}`View --> Show names`, or the shortcut {kbd}`N`. +:::{figure} images/annotating_names.jpg +:class: shadow-image mid-image + +Annotations with names displayed +::: + ## {{ tool_selection_mode }} Selection mode One toolbar button that lives *beside* the annotation tools is not actually used to draw new annotations -- but it is closely related. diff --git a/docs/starting/essential_tips.md b/docs/starting/essential_tips.md index 6518e26..b41d6fa 100644 --- a/docs/starting/essential_tips.md +++ b/docs/starting/essential_tips.md @@ -33,7 +33,7 @@ The *Command List* also now includes a brief help text description for most comm If you find yourself wanting to run the same command repeatedly, uncheck the {guilabel}`Auto close` box to keep the command list open. ::: -:::{figure} images/tips_command.jpg +:::{figure} images/tips_command.png :class: shadow-image full-image QuPath's 'Command list' diff --git a/docs/starting/first_steps.md b/docs/starting/first_steps.md index 177f954..4c0d797 100644 --- a/docs/starting/first_steps.md +++ b/docs/starting/first_steps.md @@ -4,29 +4,15 @@ The following tutorial will guide you through your first steps with QuPath, and introduce you to the main features, buttons and concepts you need to get started. You will see how to: -- [First steps](#first-steps) - - [Starting out](#starting-out) - - [Running QuPath](#running-qupath) - - [Opening an image](#opening-an-image) - - [Setting the image type](#setting-the-image-type) - - [Seeing the image properties](#seeing-the-image-properties) - - [Setting the pixel size](#setting-the-pixel-size) - - [Looking around](#looking-around) - - [Zooming in \& out](#zooming-in--out) - - [Panning](#panning) - - [Introducing objects](#introducing-objects) - - [Drawing annotations](#drawing-annotations) - - [Identifying selections](#identifying-selections) - - [Changing colors \& properties](#changing-colors--properties) - - [Viewing measurements](#viewing-measurements) - - [Removing annotations](#removing-annotations) - - [Detecting cells](#detecting-cells) - - [Showing \& hiding](#showing--hiding) - - [Creating measurement tables](#creating-measurement-tables) - - [Finishing up](#finishing-up) - - [Saving data](#saving-data) - - [Reopening data](#reopening-data) - - [Recap \& outlook](#recap--outlook) +- Appreciate the welcome window +- Open an image +- View image properties +- Navigate around images +- Manually annotate regions +- Detect cells +- View measurements +- Export results +- Save & reload your data ## Starting out @@ -355,7 +341,7 @@ Note that this table remains connected to the image, and allows you to select in Each measurement can also be viewed in a histogram by clicking on {guilabel}`Show Histogram` with various viewing options available. For further data analysis, the table can be saved as a CSV file or copied to the clipboard for pasting into another application, e.g. Excel. -:::{figure} images/steps_table.jpg +:::{figure} images/steps_table.png :class: shadow-image full-image A 'detection' measurement table containing details of all the detected cells @@ -389,6 +375,7 @@ In such cases, the `.qpdata` file alone doesn't contain enough information - tha ## Recap & outlook -If you got this far, great! You've seen many of the main features of QuPath, and had your first encounter with the fundamental idea of working with objects. +If you got this far, great! +You've seen many of the main features of QuPath, and had your first encounter with the fundamental idea of working with objects. -Even if not everything is clear yet, hopefully it gives enough motivation to read on through the documentation and see how powerful these ideas can become when put together. +Even if not everything is clear yet, hopefully it gives enough motivation to read on through the documentation and see how powerful these ideas can become when put together. \ No newline at end of file diff --git a/docs/starting/help.md b/docs/starting/help.md index 5910924..d1d02cb 100644 --- a/docs/starting/help.md +++ b/docs/starting/help.md @@ -15,16 +15,30 @@ If your needs for instruction are modest, it's always worthwhile to try hovering There are two other commands that can help - which both also have toolbar buttons. +### {{ tool_pin_point }} QuPath tour + +When uncertain about the QuPath interface or a feature, the **QuPath tour** under {menuselection}`Help โ†’ QuPath Tour` may help. It guides you though the interface by highlighting each element and offering a brief explanation of its function. + +:::{figure} images/steps_tour.jpg +:class: shadow-image full-image + +QuPath Tour +::: + ### {{ tool_help }} Context help -Starting with v0.5.0, QuPath has a new command {menuselection}`Help --> Show interactive help`. +The context help is a great way to find out more about a tool or a parameter within QuPath or tell alert the user to . It can be found under {menuselection}`Help --> Show interactive help`. -This aims to include tips and explain things that may have gone wrong. -It also shows help text associated with any command or button under the cursor. +This provides additional information when you hover over items in QuPath such as tools or parameters. It also warns you about potential issues that could disrupt your image analysis workflowโ€”making it a valuable tool to keep open as you work. If you find yourself stuck or confused, it's worthwhile clicking {{ icon_help }} first to see if it can help. And if the interactive help has something it really thinks you should know, a small badge will be displayed on the toolbar button. +:::{figure} images/steps_context_help.png +:class: shadow-image mini-image + +Context Help +::: ### {{ tool_log }} Log diff --git a/docs/starting/images/annotating_names.jpg b/docs/starting/images/annotating_names.jpg new file mode 100644 index 0000000..928d6c3 Binary files /dev/null and b/docs/starting/images/annotating_names.jpg differ diff --git a/docs/starting/images/counting_convex.jpg b/docs/starting/images/counting_convex.jpg index 38edce1..21e3c6d 100644 Binary files a/docs/starting/images/counting_convex.jpg and b/docs/starting/images/counting_convex.jpg differ diff --git a/docs/starting/images/counting_grid.jpg b/docs/starting/images/counting_grid.jpg index 12b674e..e3ced5e 100644 Binary files a/docs/starting/images/counting_grid.jpg and b/docs/starting/images/counting_grid.jpg differ diff --git a/docs/starting/images/counting_image.jpg b/docs/starting/images/counting_image.jpg index ae4353d..f0c9484 100644 Binary files a/docs/starting/images/counting_image.jpg and b/docs/starting/images/counting_image.jpg differ diff --git a/docs/starting/images/counting_manual_continued.jpg b/docs/starting/images/counting_manual_continued.jpg index 1c13a24..f8f02c9 100644 Binary files a/docs/starting/images/counting_manual_continued.jpg and b/docs/starting/images/counting_manual_continued.jpg differ diff --git a/docs/starting/images/counting_manual_start.jpg b/docs/starting/images/counting_manual_start.jpg index 5fdda0e..ed25101 100644 Binary files a/docs/starting/images/counting_manual_start.jpg and b/docs/starting/images/counting_manual_start.jpg differ diff --git a/docs/starting/images/counting_region.jpg b/docs/starting/images/counting_region.jpg index e042803..f64a5ca 100644 Binary files a/docs/starting/images/counting_region.jpg and b/docs/starting/images/counting_region.jpg differ diff --git a/docs/starting/images/steps_annotation_panel.jpg b/docs/starting/images/steps_annotation_panel.jpg index bfa5338..03ba5a3 100644 Binary files a/docs/starting/images/steps_annotation_panel.jpg and b/docs/starting/images/steps_annotation_panel.jpg differ diff --git a/docs/starting/images/steps_annotations.jpg b/docs/starting/images/steps_annotations.jpg index 31ef6da..742ab8c 100644 Binary files a/docs/starting/images/steps_annotations.jpg and b/docs/starting/images/steps_annotations.jpg differ diff --git a/docs/starting/images/steps_cells_detected.jpg b/docs/starting/images/steps_cells_detected.jpg index 0f66f41..0385984 100644 Binary files a/docs/starting/images/steps_cells_detected.jpg and b/docs/starting/images/steps_cells_detected.jpg differ diff --git a/docs/starting/images/steps_cells_display.jpg b/docs/starting/images/steps_cells_display.jpg index 0395f97..8194f58 100644 Binary files a/docs/starting/images/steps_cells_display.jpg and b/docs/starting/images/steps_cells_display.jpg differ diff --git a/docs/starting/images/steps_context_help.png b/docs/starting/images/steps_context_help.png new file mode 100644 index 0000000..648c5a4 Binary files /dev/null and b/docs/starting/images/steps_context_help.png differ diff --git a/docs/starting/images/steps_image.jpg b/docs/starting/images/steps_image.jpg index a43bedb..050f9bc 100644 Binary files a/docs/starting/images/steps_image.jpg and b/docs/starting/images/steps_image.jpg differ diff --git a/docs/starting/images/steps_image_pixels.png b/docs/starting/images/steps_image_pixels.png index 2b004a9..47596e8 100644 Binary files a/docs/starting/images/steps_image_pixels.png and b/docs/starting/images/steps_image_pixels.png differ diff --git a/docs/starting/images/steps_image_tab.jpg b/docs/starting/images/steps_image_tab.jpg index 83991e4..c914077 100644 Binary files a/docs/starting/images/steps_image_tab.jpg and b/docs/starting/images/steps_image_tab.jpg differ diff --git a/docs/starting/images/steps_overview.jpg b/docs/starting/images/steps_overview.jpg index ef36993..153bf7a 100644 Binary files a/docs/starting/images/steps_overview.jpg and b/docs/starting/images/steps_overview.jpg differ diff --git a/docs/starting/images/steps_table.jpg b/docs/starting/images/steps_table.jpg deleted file mode 100644 index 3e42244..0000000 Binary files a/docs/starting/images/steps_table.jpg and /dev/null differ diff --git a/docs/starting/images/steps_table.png b/docs/starting/images/steps_table.png new file mode 100644 index 0000000..062264a Binary files /dev/null and b/docs/starting/images/steps_table.png differ diff --git a/docs/starting/images/steps_tour.jpg b/docs/starting/images/steps_tour.jpg new file mode 100644 index 0000000..60886a7 Binary files /dev/null and b/docs/starting/images/steps_tour.jpg differ diff --git a/docs/starting/images/steps_welcome.jpg b/docs/starting/images/steps_welcome.jpg index a78e3c3..020a338 100644 Binary files a/docs/starting/images/steps_welcome.jpg and b/docs/starting/images/steps_welcome.jpg differ diff --git a/docs/starting/images/tips_command.jpg b/docs/starting/images/tips_command.jpg deleted file mode 100644 index ccb76fd..0000000 Binary files a/docs/starting/images/tips_command.jpg and /dev/null differ diff --git a/docs/starting/images/tips_command.png b/docs/starting/images/tips_command.png new file mode 100644 index 0000000..950cca8 Binary files /dev/null and b/docs/starting/images/tips_command.png differ diff --git a/docs/tutorials/cell_classification.md b/docs/tutorials/cell_classification.md index cd97854..9d2e235 100644 --- a/docs/tutorials/cell_classification.md +++ b/docs/tutorials/cell_classification.md @@ -124,8 +124,9 @@ Some commands that enable this are found in the {menuselection}`Analyze --> Calc One approach is to calculate textures from the image surrounding each cell. This can be very effective, although computationally quite demanding whenever there are very large numbers of cells. -A much faster alternative, which can give very good results, is to simply 'smooth' the existing measurements with the {menuselection}`Analyze --> Calculate features --> Add smoothed features` command. +A much faster alternative, which can give very good results, is to simply 'smooth' the existing measurements with the {menuselection}`Analyze --> Calculate features --> Add smoothed features` command. This will supplement the existing measurements with new measurements calculated by taking a weighted average of the corresponding measurements of neighboring cells. +A pop-up dialog will ask which regions to smooth; in this case, we select all annotations. The weighting depends on distance, i.e. cells that are further away have less contribution to the result. Technically, distance is based on centroids and the weighting is calculated from a Gaussian function, where the parameter required in the dialog box is the [full-width-at-half-maximum](https://en.wikipedia.org/wiki/Full_width_at_half_maximum) of the Gaussian function. @@ -133,7 +134,7 @@ Less technically, putting higher numbers into the dialog box results in more smo This reduces the noisiness of the measurements more effectively, but also makes it more difficult to distinguish smaller areas containing particular cell types. :::{figure} images/ki67_auto_smooth_features.jpg -:class: shadow-image mid-image +:class: shadow-image small-image Smooth features dialog ::: @@ -154,9 +155,9 @@ Measurement map for smoothed Nucleus/Cell area ratio The next step is to begin annotating regions according to how the cells contained within them should be classified. This requires creating annotations as normal, using any of the tools (apart from the *Line*) described in {doc}`../starting/annotating`. -It does not matter whether the cells are shown or hidden on the image at the time; it can be helpful to toggle the detections on and off with the *Show/hide detection objects* command {{ icon_detections }} while annotating. +It does not matter whether the cells are shown or hidden on the image at the time; it can be helpful to toggle the detections on and off with the {guilabel}`Show/hide detection objects` command {{ icon_detections }} while annotating. -After an annotation has been drawn, select the *Annotations* tab in the *Analysis pane* to the left, click on the appropriate classification from the list on the top right, and press the {guilabel}`Set class` button. +After an annotation has been drawn, select the {guilabel}`Annotations` tab in the *Analysis pane* to the left, click on the appropriate classification from the list on the top right, and press the {guilabel}`Set class` button. You should see the number increase beside the class that you selected. This is the number of annotations that you have drawn and assigned to this class. @@ -173,7 +174,7 @@ Training cell classification Continue creating annotations and assigning their classes. Right-clicking on the image after drawing the annotation can offer an easier way to set the class, without needing to move the mouse to the other side of the screen and press the {guilabel}`Set class` button on the left. -:::{figure} images/ki67_auto_training_tumor.jpg +:::{figure} images/ki67_auto_training_stroma.jpg :class: shadow-image full-image Training cell classification with right-click @@ -265,7 +266,8 @@ If you do this, QuPath will automatically calculate H-scores, in the range 0--30 ## View the results -That's it! If you select the original, large annotation containing all the cells then the Ki67 labelling index show appear in the lower measurements section of the *Annotations* tab on the left of the screen as *Positive %*. +That's it! +If you select the original, large annotation containing all the cells then the Ki67 labelling index show appear in the lower measurements section of the {guilabel}`Annotations` tab on the left of the screen as *Positive %*. You can also generate results tables if necessary. :::{figure} images/ki67_auto_final_markup.jpg diff --git a/docs/tutorials/cell_detection.md b/docs/tutorials/cell_detection.md index 2c1ad6d..8e1f62f 100644 --- a/docs/tutorials/cell_detection.md +++ b/docs/tutorials/cell_detection.md @@ -123,7 +123,7 @@ Another way to view all the measurements of all the cells is by selecting {menus This should open up a results table with the measurements of all cells. From this, it is possible to generate histograms, sort columns, select individual cells (which will then be selected on the image) and to export the measurements to a CSV file for use elsewhere. -:::{figure} images/ki67_detecting_results_detections.jpg +:::{figure} images/ki67_detecting_results_detections.png :class: shadow-image full-image Cell detection results table @@ -146,7 +146,6 @@ However, it is important to note that when the stain estimates are improved then If necessary, it is possible to then proceed to draw further annotations around areas of interest. These can be processed one-by-one by running *Positive cell detection* on an annotation when it is selected, or else they can be processed all together (in parallel). The easiest way to do the latter is to ensure that no annotations are selected (e.g. double-click a background area with the *Move* tool {{ icon_move }} selected), and then press the {guilabel}`Run` button in the *Positive cell detection* dialog window. -QuPath will then prompt you to confirm if you want to run the detection for all *Annotations*. :::{figure} images/ki67_detecting_multiple_parallel_annotations.jpg :class: shadow-image full-image @@ -168,7 +167,7 @@ Whenever you have multiple annotations, it can be helpful to generate a results This is similar to creating a results table for detections, but requires the {menuselection}`Measure --> Show annotation measurements` command instead. You can also access this command from the *Measurement table* icon in the toolbar {{ icon_table }}. -:::{figure} images/ki67_detecting_results_annotations.jpg +:::{figure} images/ki67_detecting_results_annotations.png :class: shadow-image full-image Annotation results table diff --git a/docs/tutorials/images/class_list.png b/docs/tutorials/images/class_list.png new file mode 100644 index 0000000..389d009 Binary files /dev/null and b/docs/tutorials/images/class_list.png differ diff --git a/docs/tutorials/images/density_map_stroma.jpg b/docs/tutorials/images/density_map_stroma.jpg deleted file mode 100644 index 48cf348..0000000 Binary files a/docs/tutorials/images/density_map_stroma.jpg and /dev/null differ diff --git a/docs/tutorials/images/ki67_auto_cells_detected.jpg b/docs/tutorials/images/ki67_auto_cells_detected.jpg index c8fc988..0ba342b 100644 Binary files a/docs/tutorials/images/ki67_auto_cells_detected.jpg and b/docs/tutorials/images/ki67_auto_cells_detected.jpg differ diff --git a/docs/tutorials/images/ki67_auto_final_local.jpg b/docs/tutorials/images/ki67_auto_final_local.jpg deleted file mode 100644 index cd35689..0000000 Binary files a/docs/tutorials/images/ki67_auto_final_local.jpg and /dev/null differ diff --git a/docs/tutorials/images/ki67_auto_final_markup.jpg b/docs/tutorials/images/ki67_auto_final_markup.jpg index 24eeb88..7dd4e77 100644 Binary files a/docs/tutorials/images/ki67_auto_final_markup.jpg and b/docs/tutorials/images/ki67_auto_final_markup.jpg differ diff --git a/docs/tutorials/images/ki67_auto_map_raw.jpg b/docs/tutorials/images/ki67_auto_map_raw.jpg index 4a0a544..ac91907 100644 Binary files a/docs/tutorials/images/ki67_auto_map_raw.jpg and b/docs/tutorials/images/ki67_auto_map_raw.jpg differ diff --git a/docs/tutorials/images/ki67_auto_map_smoothed.jpg b/docs/tutorials/images/ki67_auto_map_smoothed.jpg index c2aabef..71a913c 100644 Binary files a/docs/tutorials/images/ki67_auto_map_smoothed.jpg and b/docs/tutorials/images/ki67_auto_map_smoothed.jpg differ diff --git a/docs/tutorials/images/ki67_auto_original.jpg b/docs/tutorials/images/ki67_auto_original.jpg index 7b94d0b..187a0ca 100644 Binary files a/docs/tutorials/images/ki67_auto_original.jpg and b/docs/tutorials/images/ki67_auto_original.jpg differ diff --git a/docs/tutorials/images/ki67_auto_parallel.jpg b/docs/tutorials/images/ki67_auto_parallel.jpg index d8ee659..a6aad96 100644 Binary files a/docs/tutorials/images/ki67_auto_parallel.jpg and b/docs/tutorials/images/ki67_auto_parallel.jpg differ diff --git a/docs/tutorials/images/ki67_auto_results_detections.jpg b/docs/tutorials/images/ki67_auto_results_detections.jpg index fca4c2d..936f0fa 100644 Binary files a/docs/tutorials/images/ki67_auto_results_detections.jpg and b/docs/tutorials/images/ki67_auto_results_detections.jpg differ diff --git a/docs/tutorials/images/ki67_auto_smooth_features.jpg b/docs/tutorials/images/ki67_auto_smooth_features.jpg index bc2051a..87b437c 100644 Binary files a/docs/tutorials/images/ki67_auto_smooth_features.jpg and b/docs/tutorials/images/ki67_auto_smooth_features.jpg differ diff --git a/docs/tutorials/images/ki67_auto_training_first.jpg b/docs/tutorials/images/ki67_auto_training_first.jpg index 504bb78..ebffb56 100644 Binary files a/docs/tutorials/images/ki67_auto_training_first.jpg and b/docs/tutorials/images/ki67_auto_training_first.jpg differ diff --git a/docs/tutorials/images/ki67_auto_training_intensity.jpg b/docs/tutorials/images/ki67_auto_training_intensity.jpg index c6c6f16..c331d08 100644 Binary files a/docs/tutorials/images/ki67_auto_training_intensity.jpg and b/docs/tutorials/images/ki67_auto_training_intensity.jpg differ diff --git a/docs/tutorials/images/ki67_auto_training_ring.jpg b/docs/tutorials/images/ki67_auto_training_ring.jpg index 2d85266..e749d70 100644 Binary files a/docs/tutorials/images/ki67_auto_training_ring.jpg and b/docs/tutorials/images/ki67_auto_training_ring.jpg differ diff --git a/docs/tutorials/images/ki67_auto_training_stroma.jpg b/docs/tutorials/images/ki67_auto_training_stroma.jpg new file mode 100644 index 0000000..3ef89ea Binary files /dev/null and b/docs/tutorials/images/ki67_auto_training_stroma.jpg differ diff --git a/docs/tutorials/images/ki67_auto_training_tumor.jpg b/docs/tutorials/images/ki67_auto_training_tumor.jpg deleted file mode 100644 index ea025e9..0000000 Binary files a/docs/tutorials/images/ki67_auto_training_tumor.jpg and /dev/null differ diff --git a/docs/tutorials/images/ki67_auto_training_updated.jpg b/docs/tutorials/images/ki67_auto_training_updated.jpg index fa4839a..bd0bce5 100644 Binary files a/docs/tutorials/images/ki67_auto_training_updated.jpg and b/docs/tutorials/images/ki67_auto_training_updated.jpg differ diff --git a/docs/tutorials/images/ki67_detecting_annotation.jpg b/docs/tutorials/images/ki67_detecting_annotation.jpg index f24fe7d..011dc63 100644 Binary files a/docs/tutorials/images/ki67_detecting_annotation.jpg and b/docs/tutorials/images/ki67_detecting_annotation.jpg differ diff --git a/docs/tutorials/images/ki67_detecting_final_markup.jpg b/docs/tutorials/images/ki67_detecting_final_markup.jpg index 11ee974..1c939be 100644 Binary files a/docs/tutorials/images/ki67_detecting_final_markup.jpg and b/docs/tutorials/images/ki67_detecting_final_markup.jpg differ diff --git a/docs/tutorials/images/ki67_detecting_multiple_parallel_annotations.jpg b/docs/tutorials/images/ki67_detecting_multiple_parallel_annotations.jpg index 3e07aaf..e1149ff 100644 Binary files a/docs/tutorials/images/ki67_detecting_multiple_parallel_annotations.jpg and b/docs/tutorials/images/ki67_detecting_multiple_parallel_annotations.jpg differ diff --git a/docs/tutorials/images/ki67_detecting_multiple_rois.jpg b/docs/tutorials/images/ki67_detecting_multiple_rois.jpg index bf98333..b7e6a29 100644 Binary files a/docs/tutorials/images/ki67_detecting_multiple_rois.jpg and b/docs/tutorials/images/ki67_detecting_multiple_rois.jpg differ diff --git a/docs/tutorials/images/ki67_detecting_positive_cell_dialog.jpg b/docs/tutorials/images/ki67_detecting_positive_cell_dialog.jpg deleted file mode 100644 index 6b4a584..0000000 Binary files a/docs/tutorials/images/ki67_detecting_positive_cell_dialog.jpg and /dev/null differ diff --git a/docs/tutorials/images/ki67_detecting_positive_dialog.jpg b/docs/tutorials/images/ki67_detecting_positive_dialog.jpg index 29167b0..50fdba4 100644 Binary files a/docs/tutorials/images/ki67_detecting_positive_dialog.jpg and b/docs/tutorials/images/ki67_detecting_positive_dialog.jpg differ diff --git a/docs/tutorials/images/ki67_detecting_results_annotations.jpg b/docs/tutorials/images/ki67_detecting_results_annotations.jpg deleted file mode 100644 index 5afd948..0000000 Binary files a/docs/tutorials/images/ki67_detecting_results_annotations.jpg and /dev/null differ diff --git a/docs/tutorials/images/ki67_detecting_results_annotations.png b/docs/tutorials/images/ki67_detecting_results_annotations.png new file mode 100644 index 0000000..c210813 Binary files /dev/null and b/docs/tutorials/images/ki67_detecting_results_annotations.png differ diff --git a/docs/tutorials/images/ki67_detecting_results_detections.jpg b/docs/tutorials/images/ki67_detecting_results_detections.jpg deleted file mode 100644 index 8faace5..0000000 Binary files a/docs/tutorials/images/ki67_detecting_results_detections.jpg and /dev/null differ diff --git a/docs/tutorials/images/ki67_detecting_results_detections.png b/docs/tutorials/images/ki67_detecting_results_detections.png new file mode 100644 index 0000000..9a4a40d Binary files /dev/null and b/docs/tutorials/images/ki67_detecting_results_detections.png differ diff --git a/docs/tutorials/images/measurement_table.png b/docs/tutorials/images/measurement_table.png index ad69d83..5ba1338 100644 Binary files a/docs/tutorials/images/measurement_table.png and b/docs/tutorials/images/measurement_table.png differ diff --git a/docs/tutorials/images/multiplex_all_classified.jpg b/docs/tutorials/images/multiplex_all_classified.jpg index dab648a..cb84c96 100644 Binary files a/docs/tutorials/images/multiplex_all_classified.jpg and b/docs/tutorials/images/multiplex_all_classified.jpg differ diff --git a/docs/tutorials/images/multiplex_brightness_profile.png b/docs/tutorials/images/multiplex_brightness_profile.png new file mode 100644 index 0000000..a9c0af3 Binary files /dev/null and b/docs/tutorials/images/multiplex_brightness_profile.png differ diff --git a/docs/tutorials/images/multiplex_cell_measurements.jpg b/docs/tutorials/images/multiplex_cell_measurements.jpg index da66a1a..1f31afd 100644 Binary files a/docs/tutorials/images/multiplex_cell_measurements.jpg and b/docs/tutorials/images/multiplex_cell_measurements.jpg differ diff --git a/docs/tutorials/images/multiplex_cells.jpg b/docs/tutorials/images/multiplex_cells.jpg index 5974caf..9d99e10 100644 Binary files a/docs/tutorials/images/multiplex_cells.jpg and b/docs/tutorials/images/multiplex_cells.jpg differ diff --git a/docs/tutorials/images/multiplex_centroids.jpg b/docs/tutorials/images/multiplex_centroids.jpg index 577717c..e13cf46 100644 Binary files a/docs/tutorials/images/multiplex_centroids.jpg and b/docs/tutorials/images/multiplex_centroids.jpg differ diff --git a/docs/tutorials/images/multiplex_channels.jpg b/docs/tutorials/images/multiplex_channels.jpg index 99a8388..c107f63 100644 Binary files a/docs/tutorials/images/multiplex_channels.jpg and b/docs/tutorials/images/multiplex_channels.jpg differ diff --git a/docs/tutorials/images/multiplex_ck.jpg b/docs/tutorials/images/multiplex_ck.jpg index 723aa9e..9dcbd2b 100644 Binary files a/docs/tutorials/images/multiplex_ck.jpg and b/docs/tutorials/images/multiplex_ck.jpg differ diff --git a/docs/tutorials/images/multiplex_duplicating.jpg b/docs/tutorials/images/multiplex_duplicating.jpg index b60929b..3977fde 100644 Binary files a/docs/tutorials/images/multiplex_duplicating.jpg and b/docs/tutorials/images/multiplex_duplicating.jpg differ diff --git a/docs/tutorials/images/multiplex_foxp3.jpg b/docs/tutorials/images/multiplex_foxp3.jpg index aaa5a8e..023b0f6 100644 Binary files a/docs/tutorials/images/multiplex_foxp3.jpg and b/docs/tutorials/images/multiplex_foxp3.jpg differ diff --git a/docs/tutorials/images/multiplex_load.jpg b/docs/tutorials/images/multiplex_load.jpg index f044d76..ca5ad5a 100644 Binary files a/docs/tutorials/images/multiplex_load.jpg and b/docs/tutorials/images/multiplex_load.jpg differ diff --git a/docs/tutorials/images/multiplex_load_sequentially.jpg b/docs/tutorials/images/multiplex_load_sequentially.jpg index bab96fb..4d49407 100644 Binary files a/docs/tutorials/images/multiplex_load_sequentially.jpg and b/docs/tutorials/images/multiplex_load_sequentially.jpg differ diff --git a/docs/tutorials/images/multiplex_populate_channels.jpg b/docs/tutorials/images/multiplex_populate_channels.jpg index f9548e4..af3d095 100644 Binary files a/docs/tutorials/images/multiplex_populate_channels.jpg and b/docs/tutorials/images/multiplex_populate_channels.jpg differ diff --git a/docs/tutorials/images/multiplex_project.jpg b/docs/tutorials/images/multiplex_project.jpg index 973cff4..25a02d1 100644 Binary files a/docs/tutorials/images/multiplex_project.jpg and b/docs/tutorials/images/multiplex_project.jpg differ diff --git a/docs/tutorials/images/multiplex_single_ck.jpg b/docs/tutorials/images/multiplex_single_ck.jpg index 99aede7..9f082e1 100644 Binary files a/docs/tutorials/images/multiplex_single_ck.jpg and b/docs/tutorials/images/multiplex_single_ck.jpg differ diff --git a/docs/tutorials/images/multiplex_single_pdl1.jpg b/docs/tutorials/images/multiplex_single_pdl1.jpg index e17f631..8894776 100644 Binary files a/docs/tutorials/images/multiplex_single_pdl1.jpg and b/docs/tutorials/images/multiplex_single_pdl1.jpg differ diff --git a/docs/tutorials/images/multiplex_train_dialog.jpg b/docs/tutorials/images/multiplex_train_dialog.jpg deleted file mode 100644 index 3fbe719..0000000 Binary files a/docs/tutorials/images/multiplex_train_dialog.jpg and /dev/null differ diff --git a/docs/tutorials/images/multiplex_train_dialog.png b/docs/tutorials/images/multiplex_train_dialog.png new file mode 100644 index 0000000..2f437f3 Binary files /dev/null and b/docs/tutorials/images/multiplex_train_dialog.png differ diff --git a/docs/tutorials/multiplex_analysis.md b/docs/tutorials/multiplex_analysis.md index 9093880..6c33f4c 100644 --- a/docs/tutorials/multiplex_analysis.md +++ b/docs/tutorials/multiplex_analysis.md @@ -50,8 +50,9 @@ Choosing *Brightfield* conveys the opposite message, which would cause problems ::: :::{sidebar} Accurate cell detection -Good cell segmentation is really *essential* for accurate multiplexed analysis. -New and improved methods of segmenting cells in QuPath are being actively explored... +Good cell segmentation is often *essential* for multiplexed analysis. +Instanseg is a new cell detection method available in QuPath via an extension. +Find out more in the {doc}`InstanSeg <../deep/instanseg>` tutorial. ::: ### Set up the channel names @@ -72,9 +73,9 @@ Adjusting the channel names in the Brightness & Contrast dialog ::::{tip} Setting all the channel names individually can be very laborious. -Two tricks can help. +Three tricks can help. -1\. Outside QuPath (or in the *Script editor*) create a list of the channel names you want, with a separate line for each name. +1. Outside QuPath (or in the *Script editor*) create a list of the channel names you want, with a separate line for each name. Copy this list to the clipboard, and then select the corresponding channels in the *Brightness/Contrast* dialog and press {kbd}`Ctrl + V` to paste them. :::{figure} images/multiplex_channel_names.jpg @@ -95,11 +96,22 @@ setChannelNames( 'CK' ) ``` + +1. Brightness and contrast settings can be saved and re-loaded by entering a name into the {guilabel}`Settings` field and pressing {guilabel}`Save`. To reload simply select the name from the drop-down list. + +:::{figure} images/multiplex_brightness_profile.png +:class: shadow-image mini-image + +Saved brightness and contrast settings +::: + :::: -:::{tip} -The original names are not lost. -You can retrieve them later by going to the *Image* tab, and double-clicking the row that states *Metadata changed: Yes*. +:::{admonition} What if I want the *original* channel names? +When setting channel names, the original names are not lost. + +You can retrieve them later by going to the {guilabel}`Image` tab, and double-clicking the row that states {guilabel}`Metadata changed: Yes`. + This allows you to reset all the image metadata to whatever was read originally from the file, including the channel names. ::: @@ -107,8 +119,8 @@ This allows you to reset all the image metadata to whatever was read originally We now want to make the channel names available as *classifications*. -The classifications currently available are shown under the *Annotations* tab. -You can either right-click this list or select the {guilabel}`โ‹ฎ` button and choose {menuselection}`Populate from image channels` to quickly set these. +The classifications currently available are shown under the {guilabel}`Annotations` tab. +You can either right-click this list or select the {guilabel}`โ–ธ` button and choose {menuselection}`Populate from image channels` to quickly set these. :::{figure} images/multiplex_populate_channels.jpg :class: shadow-image full-image @@ -142,7 +154,7 @@ Exploring the detection results using measurement maps The next step involves finding a way to identify whether cells are positive or negative *for each marker independently* based upon the detections and measurements made during the previous step. -Since QuPath v0.2.0 there are two different ways to do this: +There are two different ways to do this: 1. Threshold a single measurement (e.g. mean nucleus intensity) 2. Train a machine learning classifier to decide based upon multiple measurements @@ -152,8 +164,7 @@ You do not have to choose the same method for every marker, but can switch betwe ### Option #1. Simple thresholding -QuPath v0.2.0 introduced a new command, {menuselection}`Classify --> Object classification --> Create single measurement classifier`. -This gives us a quick way to classify based on the value of one measurement. +A quick way to classify based on one measurement is the command {menuselection}`Classify --> Object classification --> Create single measurement classifier`. As usual, you can consider the options in the dialog box in order from top to bottom, and hover the cursor over each for a short description of what it means. @@ -163,6 +174,12 @@ As usual, you can consider the options in the dialog box in order from top to bo Creating a single measurement classifier for PDL1 ::: +:::{note} +Since PLD1 is the red channel which is also the default detection color there isn't a quick visual indicator of what is PLD1 positive. +To resolve this, change the default detection color to something else (e.g. blue) via the {menuselection}`Preferences --> Objects --> Default object color`. +This has been done in the figure above and then returned to the default red color. +::: + In this case, we can ignore the **Object filter** (all our detections are cells, so no need to distinguish between them). The **Channel filter** will be helpful, because it will help us quickly set sensible defaults for the options below. @@ -199,7 +216,8 @@ This process is a bit more involved, but the effort is often worth it. It is very difficult and confusing to try to train multiple classifiers by annotating the same image. The process is made easier by creating duplicate images within the project for each channel that needs a classifier. -To do this, choose {menuselection}`Classify --> Training Images --> Create duplicate channel training images`. +To do this, generate cell detections as described above and save the data in your QuPath project. +Afterwards, run {menuselection}`Classify --> Training Images --> Create duplicate channel training images`. :::{figure} images/multiplex_duplicating.jpg :class: shadow-image full-image @@ -207,10 +225,6 @@ To do this, choose {menuselection}`Classify --> Training Images --> Create dupli Creating duplicate training images for each channel ::: -:::{Note} -It's useful to run cell detection **before** duplicating the images so the detections match! -::: - :::{tip} It is a good idea to turn the **Initialize Points annotation** option *on*... it might help us later. ::: @@ -218,11 +232,11 @@ It is a good idea to turn the **Initialize Points annotation** option *on*... it #### Train & save classifiers Now you should have multiple duplicate images in your project, with names derived from the original channel names. -Because you ran this after cell detection (right?!), these duplicate images will bring across all the original cells. +Because you ran this after cell detection and saving (right?!), these duplicate images will bring across all the original cells. We can then proceed with {menuselection}`Classify --> Object classification --> Train object classifier`. -:::{figure} images/multiplex_train_dialog.jpg +:::{figure} images/multiplex_train_dialog.png :class: shadow-image small-image The dialog box for training an object classifier @@ -266,7 +280,18 @@ We shouldn't use any other classes in the training annotations. Training an object classifier for FoxP3 by selecting individual cells ::: -Once you are done with one marker, choose {menuselection}`Save & Apply` and enter a name to identify your classifier. +:::{tip} +To only see the cells that are currently classified, click on the eye next to 'None' in the {guilabel}`Class list` in the {guilabel}`Annotations` pane to hide the unclassified cells. + +:::{figure} images/class_list.png +:class: shadow-image mini-image + +The class list, with all unclassified cells hidden +::: + +::: + +Once you are done with one marker, enter a name to identify your classifier and then select {menuselection}`Save`. Then save the image data and open the image associated with the next marker of interest, repeating the process as many times as necessary. :::{figure} images/multiplex_ck.jpg @@ -324,7 +349,7 @@ A few things can help: - The box in the bottom right corner of the viewer now shows not only the mouse location, but also the classification of the object under the cursor. - {menuselection}`View --> Show channel viewer` makes it possible to see all channels side-by-side. Right-click on the channel viewer to customize its display. -- Right-clicking on the *Classifications* list under the *Annotations* tab, you can now use {menuselection}`Populate from existing objects --> All classes` to create a list of all classifications present within the image. The filter box below this list enables quickly finding classifications including specific text. You can then select these, and toggle their visibility by right-clicking or pressing the {kbd}`spacebar`. +- Right-clicking on the {guilabel}`Class` list under the {guilabel}`Annotations` tab, you can now use {menuselection}`Populate from existing objects --> All classes` to create a list of all classifications present within the image. The filter box below this list enables quickly finding classifications including specific text. You can then select these, and toggle their visibility by clicking on the eye or pressing the {kbd}`spacebar`. - Right-click on the image and choose {menuselection}`Cells --> Centroids only` to have another view of the classified cells. Now, the shape drawn for each cell relates to the 'number of components' of its classification, while its color continues to depict the specific class. This makes similar-but-not-the-same classifications to be spotted more easily than using (often subtle) color differences alone. :::{figure} images/multiplex_centroids.jpg