This file describes ideas how the labbook works and which commands are available. At the center of the labbook commands is a configuration file defining pipelines and dependencies
labbook init project <template>
Create a new project from template. Comparable to
git init
with some extras like adding:- a
.gitignore
file; - a
.labbook.json
file; - a
results
folder for archived results.
- a
labbook init campaign <name>
Creates a new campaign folder with specified name and sets metadata, if folder exists subfolders are added to version control
base name results .gitignore .archive .config
- =labbook init campaign parameter_foo
base parameter_foo results .gitignore .archive .config
labbook init new_base [parameter_foo/1] -m "Use parameter 1 for new base case"
base results .archive/old_base_id
labook execute <pipeline> <campaign/case>
Execute the pipeline for a full campaign or a specific case. There are four different pipeline types:
- preprocessing:
Brings a campaign or a case into an executable state.
- execution:
Runs a simulation and sets the state to started. If copy flag is set the case is copied to a dedicated folder with the hash of the transforming function, otherwise only a simlink is created.
- postprocessing
Extracts results from the cases and sets the state to complete. Initially, results are non-final, meaning they are added to the repo but flaged as non-final. Non final results can be purged easily or finallised and archived.
- archive
A pipeline might be of multiple types
- preprocessing:
labook rebase <campaign/case>
Sets
campaign/case
as new base case, archives all other cases
labbook checkout <revision>
Go back to revision
labbook log
Shows a full log of the current project
labbook log [done/started/waiting]
Shows cases which are
completed/started/waiting
labbook commit -m <message>
Commit state to version control. TODO Specify when it needed
base results .gitignore .archive .config