34
1 http://mipav.cit.nih.gov

mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

1

http://mipav.cit.nih.gov

Page 2: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

2

Scripting MIPAV and the Java Image Scripting MIPAV and the Java Image Science ToolkitScience Toolkit

Evan McCreedyEvan McCreedyemail: [email protected]: [email protected]

(301) 496-3323(301) 496-3323

Biomedical Image Processing Research Services Section (BIRSS)Biomedical Image Processing Research Services Section (BIRSS)

http://mipav.cit.nih.govhttp://mipav.cit.nih.gov

Page 3: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

3

MIPAV TeamMIPAV TeamEmployeesEmployees

Ruida ChengRuida Cheng

William GandlerWilliam Gandler

Matthew McAuliffeMatthew McAuliffe

Evan McCreedyEvan McCreedy

Justin SenseneyJustin Senseney

FellowsFellows

Sara ShenSara Shen

ContractorsContractors

Alexandra Bokinsky, Geometric Tools Inc. (Visualization)Alexandra Bokinsky, Geometric Tools Inc. (Visualization)

Olga Vovk, SRA International Inc. (Technical Writing)Olga Vovk, SRA International Inc. (Technical Writing)

AlumniAlumni

Paul Hemler, Agatha Munzon, Nishith Pandya, Paul Hemler, Agatha Munzon, Nishith Pandya,

Beth Tyriee, Hailong WangBeth Tyriee, Hailong Wang

Page 4: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

4

ExtensibilityExtensibility Plugins and Scripts Plugins and Scripts

• PluginsPlugins– Written in Java using the MIPAV API. Written in Java using the MIPAV API.

• ScriptingScripting– Use MIPAV to record and save function(s) applied to Use MIPAV to record and save function(s) applied to

image dataset(s)image dataset(s)– Apply the script to any number of image datasets Apply the script to any number of image datasets

using the using the ‘Run script’ dialog.‘Run script’ dialog.– Apply the script to any number of image datasets from Apply the script to any number of image datasets from

the command line.the command line.

Page 5: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

5

UsabilityUsability • Most NIH intramural researchers not Most NIH intramural researchers not

interested in software-development: interested in software-development: – they want a GUI for interactive workthey want a GUI for interactive work

• MIPAV provides: MIPAV provides: – a a GUI driven applicationGUI driven application for user-interaction; for user-interaction;– scriptsscripts to automate repetitive functions; to automate repetitive functions;– pluginsplugins for customized functionality; for customized functionality;– command line inputcommand line input for batch processing. for batch processing.

Page 6: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

6

ScriptingScripting

Page 7: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

7

Scripting (Macros)Scripting (Macros)• Automation of functions applied to a group of datasetsAutomation of functions applied to a group of datasets

– Increase efficiency and productivityIncrease efficiency and productivity• MIPAV does NOT require learning a new scripting MIPAV does NOT require learning a new scripting

language.language.– Record and execute scripts via MIPAVRecord and execute scripts via MIPAV’s GUI.’s GUI.– Scripts can also be executed from the command line to process Scripts can also be executed from the command line to process

images from another program or script.images from another program or script.

Page 8: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

8

ScriptingScripting

Page 9: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

9

ScriptingScripting

Allows the user to select the directoryused for scripts

List of scripts found in the script’s home directory. The usual suffix is “.sct”.

Refresh the list of scripts.

Run script Record script

Page 10: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

10

Script RecordingScript Recording

Page 11: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

11

Recording A ScriptRecording A Script

Opens script file

Saves script file

Pauses script recording

Inserts a comment into the script

Inserts a command to recover memory

Inserts an exit command to quit MIPAV. Used in scripts that will be run from the command line.

Allows manual editing of the script. For advanced users.

Resets the script recorder

Page 12: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

12

Scripting FeaturesScripting Features

• Arbitrary ordering of parameters allowedArbitrary ordering of parameters allowed• Parameter labels to facilitate parameter editingParameter labels to facilitate parameter editing• Script execution dialogScript execution dialog• More robust error messagesMore robust error messages

Page 13: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

13

Script ExampleScript Example

– GaussianBlur(GaussianBlur(“input_image_1 ext_image $image1”,“input_image_1 ext_image $image1”,““do_output_new_image boolean true”, do_output_new_image boolean true”,

“do_process_whole_image boolean true”, …)“do_process_whole_image boolean true”, …)

Page 14: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

14

Script LabScript Lab1. Open an image

2. If an algorithm is to operate using a VOI, the VOI must be loaded from disk using VOI > Open VOI > Open VOI

3. Start script recording

4. Run the algorithms in the order specified

5. Save the script when done

Page 15: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

15

Running a ScriptRunning a Script

Page 16: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

16

Running a ScriptRunning a Script

Page 17: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

17

Running a ScriptRunning a Script

Page 18: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

18

Scripting from the Command Line Scripting from the Command Line

• MIPAV can be called from scripts (Perl, batch, MIPAV can be called from scripts (Perl, batch, shell scripts, etc.)shell scripts, etc.)

Page 19: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

19

Calling a Script from the Calling a Script from the DOS command lineDOS command line

Page 20: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

20

• Do not record loading VOIs into the script – Do not record loading VOIs into the script – we load these from the command line with the we load these from the command line with the -v option-v option

• DonDon’t forget to “’t forget to “Save As…Save As…” before finishing” before finishing– -o options saves the result image using the user -o options saves the result image using the user

provide string.provide string.• E.g. E.g. “-o outputFileName” “-o outputFileName”

• Optionally, add an Exit() command to the end of the script– An Exit() will be automatically added to the

end of a script executed with the -hide command

Writing a Script for Batch Writing a Script for Batch ProcessingProcessing

Page 21: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

21

Cla

ssro

om L

abC

lass

room

Lab

1. Open an image

2. Open a VOI

3. Start script recording

4. Mask the image

5. Save result image as…

6. Save as new script when done – call it example.sct

Writing a Script for Batch Writing a Script for Batch Processing – LabProcessing – Lab

Page 22: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

22

Batch Processing with MIPAVBatch Processing with MIPAV

• From the command line:From the command line:– We can call MIPAV to run the script we have recordedWe can call MIPAV to run the script we have recorded– We can call a batch script or shell script to run a MIPAV active scriptWe can call a batch script or shell script to run a MIPAV active script– Windows:Windows:

• Batch scripts (.bat files)Batch scripts (.bat files)• Cygwin (http://www.cygwin.com/) Cygwin (http://www.cygwin.com/) • ActivePerlActivePerl

– Linux/UNIX/Mac OS XLinux/UNIX/Mac OS X• Shell scripting (bash, tcsh, zsh, etc.)Shell scripting (bash, tcsh, zsh, etc.)• PerlPerl• PythonPython

Page 23: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

23

1.1. Open the command shell Open the command shell

2.2. At the command prompt:At the command prompt:mipav –s example.sct –i image.xml –v voi.voimipav –s example.sct –i image.xml –v voi.voi

Note: Runs the script just once on the given imageNote: Runs the script just once on the given image

Lab for Batch Processing with Lab for Batch Processing with MIPAVMIPAV

Page 24: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

24

Batch Processing with MIPAVBatch Processing with MIPAV

Multiple images can also be processed through the use of scripting:

@echo off

rem usage: loop_xml.bat image_directory script voi_fileecho processes xml files in a dir with a mipav script, using a voi

for %%f in (%1\*.xml) do "C:\Program Files (x86)\mipav\mipav" -i %%f -s %2 -v %3

Similar scripts are even easier to write in shell scripts and Perl programs.

Page 25: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

25

Command Line NotesCommand Line Notes

• Use the –hide option to prevent the MIPAV GUI Use the –hide option to prevent the MIPAV GUI from showing up.from showing up.

• The –m option should be used to open multi-file The –m option should be used to open multi-file images (such as DICOM volumes).images (such as DICOM volumes).

• Use the –help option to learn about other Use the –help option to learn about other command line switchescommand line switches

Page 26: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

Java Image Science ToolkitJava Image Science Toolkit

• Originally developed at Johns Hopkins, now also Originally developed at Johns Hopkins, now also supported by Vanderbilt (LGPL license)supported by Vanderbilt (LGPL license)

• Created as a set of MIPAV extensions & pluginsCreated as a set of MIPAV extensions & plugins• Main featuresMain features

– Automated GUI generation for application pluginsAutomated GUI generation for application plugins– Graphical image processing workflow layout toolsGraphical image processing workflow layout tools– Command line interfacesCommand line interfaces

• http://www.nitrc.org/projects/jisthttp://www.nitrc.org/projects/jist

26

Page 27: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

Installing JISTInstalling JIST

• Install MIPAVInstall MIPAV– Download & install the MIPAV version compatible Download & install the MIPAV version compatible

with the release of JIST you will be usingwith the release of JIST you will be using– Latest release of JIST works with MIPAV 5.3.1Latest release of JIST works with MIPAV 5.3.1

27

Page 28: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

Installing JIST (cont.)Installing JIST (cont.)

• Download the JIST jar fileDownload the JIST jar file• Use MIPAVUse MIPAV’s Plugins -> Install plugin dialog’s Plugins -> Install plugin dialog

28

Page 29: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

JIST Plugin SelectorJIST Plugin Selector

• Useful for running or debugging a single JIST Useful for running or debugging a single JIST modulemodule

29

Page 30: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

JIST Layout ToolJIST Layout Tool

• Connects JIST modules together to create image Connects JIST modules together to create image processing workflowsprocessing workflows

• GUI interfaceGUI interface

30

Page 31: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

JIST Process ManagerJIST Process Manager

• Run from the Layout Tool or standaloneRun from the Layout Tool or standalone• Executes layouts and displays statusExecutes layouts and displays status

31

Page 32: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

JIST LabJIST Lab

• Get JIST from http://www.nitrc.org/projects/jistGet JIST from http://www.nitrc.org/projects/jist• Install JISTInstall JIST• Create a simple workflowCreate a simple workflow

– Choose a MIPAV algorithm (e.g., Median filter)Choose a MIPAV algorithm (e.g., Median filter)– Select the input image for the moduleSelect the input image for the module– Output the result image to an External fileOutput the result image to an External file

32

Page 33: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

33

Visualization

Ubiquitous file reader

Quantification File writer

Processing Macros/Plugins

Page 34: mipav.cit.nihmipav.cit.nih.gov/documentation/presentations/scripting.pdf · interested in software-development: –they want a GUI for interactive work •MIPAV provides: –a GUI

34

Thank you!Thank you!