Name templates#
Validation in datashuttle is by default restricted to the
NeuroBlueprint specification. Any subject or session names
that are not formatted correctly (e.g. not starting with
“sub-” or “ses-” will be flagged.
However, it is also possible to add custom templates to validate against by defining template names using ‘regular expressions’.
For example, say you wanted your subjects to be in the form
sub-XXX_id-XXXXXX where X is a digit (i.e. subject number with
a 6-digit id.
We can define this
as a regexp where \d stands for ‘any digit`:
"sub-\d\d\d_id-\d\d\d\d\d\d"
If this is defined as a Name Template, any name that
does not take this form will result in a validation error.
Name templates can include convenience tags.
(@DATE@, @TIME@ or @DATETIME@.)
Set up Name Templates#
Click the Settings button in the Create tab. Scroll down to the
Template Validation section.
Clicking the checkbox will turn on Template Validation and these
can be set for subject and session independent. If the input is left empty,
no name template will be applied.
Fill in the subject or session name template—any changes
will be automatically saved. These settings will persist across
datashuttle sessions.
The set_name_templates() and get_name_templates() can be used
to set and get current name template settings.
set_name_templates takes as input the name_template dictionary,
which is formatted as below:
name_templates = {
"on": True,
"sub": "sub-\d\d\d_id-\d\d\d\d\d\d",
"ses": None,
}
project.set_name_templates(
name_templates
)
In the above example, validation with name templates is
turned on "on: True. A template is set for the subject name,
but no template is set for the session name.
Name Template placeholders#
Placeholders (based on [regular expressions]) can be used to fill templates with yet-unknown values.
Any regular expression available in Python is permitted, but below we summarise the most useful:
- Wildcard Single Digit:
\dcan act as a placeholder for a digit.
e.g.sub-\d\d\dwill allow anysub-prefix followed by three digits.- Wildcard Single Character:
.?can act as a placeholder for any character
e.g.sub-\d\d\d_id-.?.?.?.?will allow theid-to be made up for any 4-character id.- Wildcard Range:
.*can act as a placeholder for an unknown range.
e.g.sub-\d\d\d_id-.*will allow theid-to be made up of any length combination of any characters.