Difference between revisions of "2014 Winter Project Week:ParameterSerialization"

From NAMIC Wiki
Jump to: navigation, search
(Created page with '__NOTOC__ <gallery> Image:PW-SLC2014.png|Projects List </gallery> ==Key Investigators== Matt McCormick, Kitware ==Project Description== …')
 
 
(8 intermediate revisions by 2 users not shown)
Line 6: Line 6:
 
==Key Investigators==
 
==Key Investigators==
  
Matt McCormick, Kitware
+
* Matt McCormick, Kitware
 +
* Steve Pieper, Isomics
 +
* Jim Miller, GE
  
 
==Project Description==
 
==Project Description==
Line 13: Line 15:
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<h3>Objective</h3>
 
<h3>Objective</h3>
*  
+
* Many analysis algorithms have advanced parameters that must be tuned to work with given datasets. 
 +
* Exposing all the advanced parameters in the GUI confuses a user who is only interested in applying the algorithm.
 +
* Exploring an algorithm parameter space is more thorough, efficient, and revealing when done programmically instead of manually in a GUI.
 +
* Provenance with saved parameter files is important for reproducibility.
 +
* The object is to allows CLI modules serialize and deserialize CLI parameters in a JSON file. 
 +
** The CLI XML parameters can then be used for "important" or "common" parameters can be tweaked by a user.
 +
** Advanced parameters that deviate from the default can be stored in the file for manual or programmatic adjustment.
 +
** JSON is format that is concise, has good human readability and editability, and widely supported by programming languages.
 
</div>
 
</div>
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<h3>Approach, Plan</h3>
 
<h3>Approach, Plan</h3>
*  
+
* Create a unit test.
 +
* Add [http://jsoncpp.sourceforge.net/ JsonCpp] and [https://github.com/TubeTK/TubeTK-ParameterSerializer ParameterSerializer] to the Slicer superbuild.
 +
* Enable the SlicerExecutionModel_USE_SERIALIZER in [https://github.com/Slicer/SlicerExecutionModel SlicerExecutionModel].
 +
* Consider writing a [http://json-schema.org/ JSON Schema] for CLIs that can be used with [https://github.com/garycourt/JSV a validator].
 +
* Consider implications for CLI Web Services with REST APIs
 +
 
</div>
 
</div>
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<h3>Progress</h3>
 
<h3>Progress</h3>
*  
+
* [https://github.com/thewtex/Slicer/tree/cli-serializer Slicer branch]
 +
* [https://github.com/Slicer/SlicerExecutionModel/pull/22 SlicerExecutionModel FindJsonCpp fix]
 
</div>
 
</div>
 
</div>
 
</div>
 +
 +
== Resources ==
 +
 +
* [https://github.com/pieper/sem-html5 an SEM to HTML experiment]

Latest revision as of 16:25, 10 January 2014

Home < 2014 Winter Project Week:ParameterSerialization

Key Investigators

  • Matt McCormick, Kitware
  • Steve Pieper, Isomics
  • Jim Miller, GE

Project Description

Objective

  • Many analysis algorithms have advanced parameters that must be tuned to work with given datasets.
  • Exposing all the advanced parameters in the GUI confuses a user who is only interested in applying the algorithm.
  • Exploring an algorithm parameter space is more thorough, efficient, and revealing when done programmically instead of manually in a GUI.
  • Provenance with saved parameter files is important for reproducibility.
  • The object is to allows CLI modules serialize and deserialize CLI parameters in a JSON file.
    • The CLI XML parameters can then be used for "important" or "common" parameters can be tweaked by a user.
    • Advanced parameters that deviate from the default can be stored in the file for manual or programmatic adjustment.
    • JSON is format that is concise, has good human readability and editability, and widely supported by programming languages.

Approach, Plan

Resources