Difference between revisions of "2014 Winter Project Week:ParameterSerialization"
From NAMIC Wiki
(2 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
==Key Investigators== | ==Key Investigators== | ||
− | Matt McCormick, Kitware | + | * Matt McCormick, Kitware |
− | Steve Pieper, Isomics | + | * Steve Pieper, Isomics |
− | Jim Miller, GE | + | * Jim Miller, GE |
==Project Description== | ==Project Description== | ||
Line 35: | Line 35: | ||
<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 == | == Resources == | ||
* [https://github.com/pieper/sem-html5 an SEM to HTML experiment] | * [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:ParameterSerializationKey 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
- Create a unit test.
- Add JsonCpp and ParameterSerializer to the Slicer superbuild.
- Enable the SlicerExecutionModel_USE_SERIALIZER in SlicerExecutionModel.
- Consider writing a JSON Schema for CLIs that can be used with a validator.
- Consider implications for CLI Web Services with REST APIs