Lots of options & dialogs have been revised & updated to be more intuitive & user-friendly.
Measurement tables now include images, annotations can have descriptions, and it's possible to undock the tabs on the left so you can see more things at once.
If multidimensional images are your thing, you should find annotating across z-stacks & timepoints to be easier - thanks to new commands to copy annotations between slices.
As before, you can use arrow keys to navigate between slices.
Transferring annotations between images is also much easier, since objects support copy & paste.
In fact, this uses text (GeoJSON) so you can even copy between software.
If you need to fix the alignment, interactively adjust one annotation & apply the transform to all of them
(I've run out of gifs & time, so I'll add more tomorrow)
Time for some more things in v0.4.0...
The script editor is a bit prettier and lot more helpful.
For starters, there’s a ‘Run’ button, 'File > Recent scripts...' menu, logged messages are in color, and a timer shows how long a script has been running.
Press Ctrl/Cmd+Space to get completions for built-in (static) methods.
It’s not full autocomplete, but it helps with common things.
For less common things, or if you just want more info, the javadocs are now on hand.
These should describe every public method in QuPath that you might want to use in a script.
There’s also basic syntax highlighting for more kinds of interesting files, not just Groovy scripts.
You can even work with JSON, YAML… even Markdown.
Bonus hack: I don’t *really* recommend it, but if you download Jython-standalone from jython.org/download you can drag it onto QuPath and start scripting with Jython instead of Groovy.
(Note this is limited to Python 2.x syntax & won’t give access to things like NumPy etc.)
But scripting improvements aren’t limited to the editor.
A couple more changes should make Groovy scripting *much* more powerful, although it might take a little bit of time to prove that…
One is that objects now have IDs.
This means that if you want to combine QuPath with R/Python/MATLAB/sth else (e.g. to do some fancy clustering), there’s a way to relate everything back to the original image - without needing to grapple with coordinates/centroids/other hacks.
The other is that objects have been upgraded to make accessing & updating measurements & classifications much more intuitive.
Combined with extra Groovy tricks, this can make powerful scripts much shorter & more readable – especially for complex/multiplex images.
Got delayed, back now with more new things in v0.4.0...
QuPath has been used quite a lot by AI folks because it has some pretty nice annotation tools, as well as the ability to export in lots of customized ways.
For example, here's a pre-trained object detection model from DJL's PyTorch model zoo running through QuPath. Results are converted to QuPath-friendly annotations & classifications.
What used to be horribly complicated in QuPath, now just takes a few lines of code in a script
Here's another example using object detection and semantic segmentation models.
Running through QuPath means it's easy to restrict the segmentation to just part of the image, further refine the ROIs, adjust the input resolution, or export the results.
And here's a style transfer model, with the output added as a QuPath overlay.
Of course you can use your own models as well - it just needs to be in a DJL-friendly form.
QuPath v0.4.0 has initial support for a subset of models from the model zoo at bioimage.io
It's still early & not everything works as well as it should, but it's already possible to convert a few segmentation models into QuPath pixel classifiers
Once a deep learning model gets wrapped up into a pixel classifier, it behaves like any pixel classifier in QuPath - supporting measurements, creating objects, applying classifications etc.
A small number of people know the real background story to @QuPath, but most don't.
I didn't plan to ever tell it publicly, until a Google Alert today caught my eye.
A thread about open science & academia 👇 (1/n)
The short version is that I single-handedly wrote the software as a postdoc but was blocked from releasing it open-source for years, while the environment in which I was working became increasingly toxic.
I handed in my notice as a last-ditch attempt to see it released. (2/n)
This worked - but meant I was out of academia, and my old group were free to take the credit.
Which they did.
It was strange to see people suddenly become huge fans of open science, speaking like they were my biggest supporters rather than the reason I left. (3/n)
I say 'almost all', because I need to mention the command list early: with 'Ctrl + L' you get a searchable list of everything in the menus.
Having told you that, I can now ignore the menus & focus on shortcuts - safe in the knowledge you can find things if you need them. 2/20
(If you *really* like the command list, you can turn it into a command bar and give it a special place at the top of the viewer... but I probably wouldn't unless I broke my 'L' key.) 3/20
QuPath's most obvious distinguishing feature is that it handles whole slide images. These are ultra-large 2D images, often up to 50 GB in size.
Whole slide images are everywhere in #digitalpathology & increasingly common in research. 2/12
A single whole slide image can be more than 200k x 100k pixels in size & contain a huge amount of information that matters to researchers & clinicians.
The trouble is trying to wring that information out of billions of pixels. 3/12