- Author: Christopher Jones, Yang Cao, Peter Slaughter, Matthew B. Jones (DataONE)
- License: Apache 2
- Package source code on Github
- Submit Bugs and feature requests
The Matlab DataONE Toolbox provides an automated way to capture data provenance for Matlab scripts and console commands without the need to modify existing Matlab code. The provenance captured during a Matlab script execution includes information about the script that was run, files that were read or written, and details about the execution environment at the time of execution. A package of the script iteself, its input files, and generated files that are associated with the run can be easily published to a repository within the DataONE network.
Matlab R2015b or later for Mac, Windows, or Linux is required to use the toolbox. To install the toolbox,
- Download the zip file: Matlab DataONE Toolbox 1.0.0
- Unpack the zip file into an installation directory of your choosing
- Open Matlab and change directories to your unpacked matlab-dataone directory
- Run the install_matlab_dataone script in that directory
- Restart Matlab
The Matlab DataONE Toolbox is licensed as open source software under the Apache 2.0 license.
Thae Matlab DataONE package can be used to track code execution in Matlab, data inputs and outputs to those executions, and the software environment during the execution (e.g. Matlab and operating system versions). As a quick start, here is an example that starts the toolbox RunManager, executes a precanned script, and then views the details of that script run.
import org.dataone.client.run.RunManager;
mgr = RunManager.getInstance();
mgr.record('/Users/cjones/projects/intertidal_temps/process_temperatures.m', 'First toolbox run');
mgr.listRuns();
mgr.view('runNumber', 1);
The classes provided in the toolbox have built-in documentation. Use the help() function or the doc() function to view the help for a given class. For instance, to view the help on the RunManager class, use:
doc org.dataone.client.run.RunManager
A User Guide is in the works, and will walk through the various toolbox functions.
- The toolbox captures provenance for only a subset of the load() function syntaxes. See Issue #196
- The toolbox captures provenance for the save() function, but requires the filename to be the first argument. See Issue #198
- Debugging log output for some function calls is not suppressed completely. See Issue #200