Skip to content

Instantly share code, notes, and snippets.

@Svidro
Svidro / !Modifying QuPath
Last active May 16, 2019 15:51
Edited Java files
Files from QuPath that can be swapped in place of their default counterparts using Gradle for alternate functionality.
Now adding modifications to the UI
TOC
AbstractTileableDetectionPlugin.java - Changes the tiling size to work better for high resolution images where the tiles might break up
too many individual cells.
Add button.groovy - script that adds a button to the UI that... can do things. If you make it do them.
WatershedCellDetection.java - Gives users the ability to choose weights for various stains when detecting cells. This is in addition to
@Svidro
Svidro / !Changing colors in QuPath
Last active March 29, 2023 19:08
Color changes in QuPath
Collections of scripts to alter object colors harvested mainly from Pete, but also picked up from the forums
TOC
Change IF channel color.groovy - Change the LUT for individual channels. Does not work with OpenSlide servers (check Image tab).
Change colors by subclass.groovy - Detection object color adjustment when using subclasses.
Change subcellular detection color - Hugely useful when working with subcellular detections as, by default, they are a derived class
and cannot be altered directly through the Annotation tab interface.
@Svidro
Svidro / !Creating Objects in QuPath
Last active July 17, 2023 02:16
Creating objects in QuPath
Collections of scripts harvested mainly from Pete, but also picked up from the forums
TOC
Annotation subtraction example.groovy - An example of creating and subtracing ROIs through scripting
Create annotation of fixed size.groovy - see https://petebankhead.github.io/qupath/scripting/2018/03/09/script-create-fixed-size-region.html
Create object based on Viewer position.groovy - Creates an object at the Viewer position. In this case a rectangle. Useful if you want
to create the exact same size object multiple times and then move it to an area of interest for subsampling.
Scripts that are complex enough not to fit in any of the other simple categories.
TOC
Affine transform objects between images.groovy - used with the Align images experimental tool in v0.2.0m1
Background staining check - Takes annotations, expands an area around them, checks the staining level in that area,
then deletes all expanded areas and any original areas that violate some condition. Can help check for staining artifacts.
Classifier with GUI.groovy - User interface based macro to simplify classifying many possible channels. Also generates all
possible combinations of base classes (double, triple, etc positives).
@Svidro
Svidro / !Coding helper scripts for QuPath
Last active July 18, 2023 16:18
Coding helper scripts for QuPath
Collections of scripts harvested mainly from Pete, but also picked up from the forums
If you are starting with 0.2.0m4+ START HERE: https://petebankhead.github.io/qupath/2019/08/21/scripting-in-v020.html
TOC
Access objects in other project images.groovy - in later versions of 0.2.0M#, access the hierarchies of other images
Access other project images or data.groovy
Access project metadata.groovy - interact with user defined, per image metadata. Useful for sorting projects.
Scripts mostly taken from Pete, and also from the forums. For easy access and reference.
TOC
Remove detections outside annotations.groovy - Removes detections without a parent object.
Removing measurements by Weka file.groovy - Uses the results of Weka classification analysis of your training set
to select the "best" measurements plus any specific ones you want to keep. Then it removes the rest. Use this to clean up
large amounts measurements like LBP, Haralick, Smoothed etc.
@Svidro
Svidro / !Exporting images
Last active August 4, 2023 20:43
Export Images
Image exporting in QuPath
Note, this is likely a mess, and I won't be able to provide much support since I don't do this much,
but requests are common and I have trouble tracking things down each time.
Added a script from the forum for importing binary masks as annotations.
@Svidro
Svidro / !Classifying objects in QuPath
Last active December 3, 2023 10:58
Classification based groovy scripts for QuPath
Collection of scripts mostly from Pete, but also taken from the forums. Note you can always run a saved classifier using the
runClassifier() command, with the file path included as a string.
TOC
A simple cell classifier.groovy - One way to classify cells.
A simple classifier 2.groovy - Another way.
Annotation Classifications to Name field.groovy - Sets the Name of the annotation to its classification. Useful for applying a second
@Svidro
Svidro / !Making Measurements in QuPath
Last active December 3, 2023 11:00
Making Measurements in QuPath
Collections of scripts harvested mainly from Pete, but also picked up from the forums
TOC
Accessing dynamic measurements.groovy - Most annotation measurements are dynamically created when you click on the annotation, and
are not accessible through the standard getMeasurement function. This is a way around that.
Affine transformation.groovy - access more accurate measurements for the affine transformation used in the image alignment (m5/m6+)
Alignment of local cells.groovy - check neighborhood for similarly aligned cells
@Svidro
Svidro / !Selecting Objects in QuPath
Last active December 3, 2023 11:00
Selecting things in QuPath
Scripts mostly taken from Pete, and also from the forums. For easy access and reference.
Covers both Selecting, which is necessary to run most commands like cell detection, and collecting objects into a variable
for processing. The latter is more efficient when you do not need to run a command like cell detection.
TOC
A Selection guide.groovy - not actually a script, just a collection of useful tips.
Access top level objects.groovy - Creates a list of all objects at the "top" of the hierarchy. This list is dynamic.