Changing v1 scripts to work on v2

41 views
Skip to first unread message

nicholas...@gmail.com

unread,
Apr 18, 2019, 11:52:20 AM4/18/19
to QuPath users
Hi All, I am trying to use a script that worked great on the older version of Qupath but I am running into trouble using it on version two. It is apparently failing to resolve some classes and I don't know enough to figure out how to fix it!

Here is the code itself, or at least the part containing the lines where the error messages are popping up:

selectAnnotations ();
//get superpixels. AdjustspacingMicrons as necessary
runPlugin('qupath.imagej.superpixels.SLICSuperpixelsPlugin', '{"sigmaMicrons": 5.0,  "spacingMicrons": 50.0,  "maxIterations": 10,  "regularization": 0.25,  "adaptRegularization": false,  "useDeconvolved": false}');
runPlugin('qupath.lib.analysis.objects.TileClassificationsToAnnotationsPlugin', '{"pathClass": "All classes",  "deleteTiles": false,  "clearAnnotations": true,  "splitAnnotations": false}');
selectDetections();
runPlugin('qupath.lib.algorithms.IntensityFeaturesPlugin', '{"pixelSizeMicrons": 2.0,  "region": "ROI",  "tileSizeMicrons": 200,  "colorOD": false,  "colorStain1": false,  "colorStain2": true,  "colorStain3": false,  "colorRed": false,  "colorGreen": false,  "colorBlue": false,  "colorHue": false,  "colorSaturation": false,  "colorBrightness": false,  "doMean": true,  "doStdDev": false,  "doMinMax": false,  "doMedian": false,  "doHaralick": true,  "haralickDistance": 1,  "haralickBins": 32}');
def roi = 'ROI: 2.00 ' + qupath.lib.common.GeneralTools.micrometerSymbol() + ' per pixel: DAB:  Mean'
// seperate superpixels into 1+, 2+ etc
setIntensityClassifications(qupath.lib.objects.PathTileObject, roi , 0.22, 0.25, 0.33);

def name1 = getProjectEntry().getImageName() + '.txt'
def path1 = buildFilePath(PROJECT_BASE_DIR, 'annotation results')
mkdirs(path1)
path1 = buildFilePath(path1, name1)
saveAnnotationMeasurements(path1)
print 'Results exported to ' + path1

selectAnnotations();
import qupath.lib.gui.helpers.MeasurementMapper

import static qupath.lib.scripting.QPEx.*

// Define measurement & display range
def measure = 'ROI: 2.00 ' + qupath.lib.common.GeneralTools.micrometerSymbol() + ' per pixel: DAB:  Mean'
double minValue = -0.04
double maxValue = 0.6

// Request current viewer & objects
def viewer = getCurrentViewer()
def options = viewer.getOverlayOptions()
def detections = getDetectionObjects()

// Update the display
if (measure) {
    print String.format('Setting measurement map: %s (%.2f - %.2f)', measure, minValue, maxValue)
    def mapper = new MeasurementMapper(measure, detections)
    mapper.setDisplayMinValue(minValue)
    mapper.setDisplayMaxValue(maxValue)
    options.setMeasurementMapper(mapper)
} else {
    print 'Resetting measurement map'
    options.setMeasurementMapper(null)
}
import ij.IJ
import ij.ImagePlus
import qupath.lib.gui.ImageWriterTools
import qupath.imagej.images.servers.ImagePlusServer
import qupath.imagej.images.servers.ImagePlusServerBuilder
import qupath.lib.images.servers.ImageServer
import qupath.lib.regions.RegionRequest
import qupath.lib.scripting.QP

import java.awt.image.BufferedImage


And here is the error: 

ERROR: Error: startup failed:
Script36.groovy: 48: unable to resolve class qupath.imagej.images.servers.ImagePlusServer
 @ line 48, column 1.
   import qupath.imagej.images.servers.ImagePlusServer
   ^

Script36.groovy: 49: unable to resolve class qupath.imagej.images.servers.ImagePlusServerBuilder
 @ line 49, column 1.
   import qupath.imagej.images.servers.ImagePlusServerBuilder
   ^

Script36.groovy: 22: unable to resolve class qupath.lib.scripting.QPEx
 @ line 22, column 1.
   import static qupath.lib.scripting.QPEx.*
   ^

Script36.groovy: 22: unable to resolve class qupath.lib.scripting.QPEx
 @ line 22, column 1.
   import static qupath.lib.scripting.QPEx.*
   ^

4 errors


ERROR: Script error
    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:311)
    at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:980)
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:647)
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:596)
    at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:390)
    at groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java:89)
    at groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:330)
    at groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:327)
    at org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:147)
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:325)
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:309)
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:251)
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.getScriptClass(GroovyScriptEngineImpl.java:331)
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:153)
    at qupath.lib.gui.scripting.DefaultScriptEditor.executeScript(DefaultScriptEditor.java:767)
    at qupath.lib.gui.scripting.DefaultScriptEditor.executeScript(DefaultScriptEditor.java:697)
    at qupath.lib.gui.scripting.DefaultScriptEditor.executeScript(DefaultScriptEditor.java:677)
    at qupath.lib.gui.scripting.DefaultScriptEditor$2.run(DefaultScriptEditor.java:1034)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)


Sorry for the long post but I don't know enough to fix it myself. Any help would be amazing. 

Thank you!

micros...@gmail.com

unread,
Apr 18, 2019, 11:59:34 AM4/18/19
to QuPath users
As described in the header, the forums have moved!

Part of your question is covered here on the new forum: https://forum.image.sc/t/quex-on-qupath2-0/23697

nicholas...@gmail.com

unread,
Apr 18, 2019, 12:46:49 PM4/18/19
to QuPath users
Thank you!
Reply all
Reply to author
Forward
0 new messages