Home > Turbo-BrainVoyager > File Formats > Data Simulator settings files (SIMJ)

Data Simulator settings files (SIMJ)

A *.simj file stores settings for the Turbo-BrainVoyager Data Simulator. The file is a plain text file in JSON format and contains the simulator configuration, including the selected protocol and region files, ROI/condition effect settings, confounds, noise, simulated motion, scan geometry, and output settings.

SIMJ files are useful for saving a complete simulation setup so that it can be loaded again later or reused for similar simulation runs.

General structure

A *.simj file contains a top-level Version entry and several main sections:

 
{
  "Version": 1,
  "Paradigm": {},
  "Confounds": {},
  "Noise": {},
  "Motion": {},
  "Scan": {},
  "Output": {}
}
 

The main sections correspond to the main setting groups in the Data Simulator.

Main sections

SectionDescription
VersionFile format version.
ParadigmStores the protocol file, region file, and ROI/condition effect settings.
ConfoundsStores constant signal, trend, and DCT confound settings.
NoiseStores random noise and AR(1) noise settings.
MotionStores simulated translation and rotation settings.
ScanStores image matrix, voxel/slice geometry, number of volumes, TR, and optional MNI slicing/translation settings.
OutputStores output folder, TBV project/settings file, data subfolder, and generated image file prefix.

Paradigm section

The Paradigm section defines the input files and ROI/condition simulation parameters.

Example:

 
{
  "Paradigm": {
    "ProtocolFile": "./Example.prt",
    "RegionsFile": "./Example.voi",
    "ROIConditionTable": [
      [
        {
          "EffectSize": 1.0,
          "PatternAcrossVoxelSD": 0.2
        },
        {
          "EffectSize": 0.5,
          "PatternAcrossVoxelSD": 0.1
        }
      ]
    ]
  }
}
 
FieldDescription
ProtocolFilePath to the protocol file, usually a *.prt file.
RegionsFilePath to the region file used for the simulation, for example a VOI/ROI file.
ROIConditionTableNested list of ROI/condition settings. The first level corresponds to ROIs, and the second level corresponds to conditions.
EffectSizeSimulated effect size for the respective ROI and condition.
PatternAcrossVoxelSDAcross-voxel standard deviation used for the simulated condition pattern.

Confounds section

The Confounds section stores simulated non-neural signal components.

Example:

 
{
  "Confounds": {
    "ConstantMean": 1000.0,
    "ConstantSD": 0.0,
    "AddLinearTrend": true,
    "LinearTrendMean": 0.0,
    "LinearTrendSD": 0.0,
    "AddDCT1": false,
    "DCT1Mean": 0.0,
    "DCT1SD": 0.0,
    "AddDCT2": false,
    "DCT2Mean": 0.0,
    "DCT2SD": 0.0
  }
}
 
FieldDescription
ConstantMean / ConstantSDMean and standard deviation of the constant signal component.
AddLinearTrendEnables or disables a simulated linear trend.
LinearTrendMean / LinearTrendSDMean and standard deviation of the linear trend.
AddDCT1, AddDCT2Enable or disable DCT confound components.
DCT1Mean, DCT1SD, DCT2Mean, DCT2SDMean and standard deviation values for the DCT components.

Noise section

The Noise section stores random noise settings.

Example:

 
{
  "Noise": {
    "NoiseSD": 1.0,
    "AddAR1": true,
    "AR1Mean": 0.2,
    "AR1SD": 0.05
  }
}
 
FieldDescription
NoiseSDStandard deviation of the simulated noise.
AddAR1Enables or disables AR(1) noise.
AR1Mean / AR1SDMean and standard deviation of the AR(1) parameter.

Motion section

The Motion section stores simulated head-motion settings for translation and rotation.

Example:

 
{
  "Motion": {
    "EnableTranslX": true,
    "EnableTranslY": true,
    "EnableTranslZ": true,
    "EnableRotX": true,
    "EnableRotY": true,
    "EnableRotZ": true,
    "TranslationXSD": 0.1,
    "TranslationYSD": 0.1,
    "TranslationZSD": 0.1,
    "RotationXSD": 0.1,
    "RotationYSD": 0.1,
    "RotationZSD": 0.1,
    "TXLinearTrend": 0.0,
    "TYLinearTrend": 0.0,
    "TZLinearTrend": 0.0,
    "RXLinearTrend": 0.0,
    "RYLinearTrend": 0.0,
    "RZLinearTrend": 0.0
  }
}
 
FieldDescription
EnableTranslX, EnableTranslY, EnableTranslZEnable or disable simulated translation in x, y, and z direction.
EnableRotX, EnableRotY, EnableRotZEnable or disable simulated rotation around x, y, and z axes.
TranslationXSD, TranslationYSD, TranslationZSDStandard deviation of simulated translation.
RotationXSD, RotationYSD, RotationZSDStandard deviation of simulated rotation.
TXLinearTrend, TYLinearTrend, TZLinearTrendLinear trend values for translation.
RXLinearTrend, RYLinearTrend, RZLinearTrendLinear trend values for rotation.

Scan section

The Scan section defines the simulated scan geometry and timing.

Example:

 
{
  "Scan": {
    "MatrixSize": "64 x 64",
    "PixelSize": 3.0,
    "SliceThickness": 3.0,
    "NrOfSlices": 30,
    "NrOfVolumes": 200,
    "VolumeTR": 2000,
    "SliceMNIBrain": true,
    "TranslationX": 0.0,
    "TranslationY": 0.0,
    "TranslationZ": 0.0
  }
}
 
FieldDescription
MatrixSizeImage matrix size used for the simulated data.
PixelSizeIn-plane pixel size.
SliceThicknessSlice thickness.
NrOfSlicesNumber of simulated slices.
NrOfVolumesNumber of simulated volumes.
VolumeTRRepetition time, usually in milliseconds.
SliceMNIBrainEnables or disables slicing from an MNI brain volume.
TranslationX, TranslationY, TranslationZTranslation values used when slicing the MNI brain volume.

Output section

The Output section defines where the simulated data will be written and how the generated files will be named.

Example:

 
{
  "Output": {
    "BaseDirectory": "./SimData",
    "TBVJFile": "Simulation.tbvj",
    "DataSubFolder": "Run01",
    "ImageFilePrefix": "vol"
  }
}
 
FieldDescription
BaseDirectoryBase output folder for the generated simulation data.
TBVJFileTBV settings/project file associated with the simulated run.
DataSubFolderSubfolder name for the generated image data.
ImageFilePrefixPrefix used for generated image files.

Path handling

File and folder paths can be stored as absolute paths or as relative paths. If a referenced file or output folder is located in the same folder as the *.simj file, or in a subfolder, the path may be written using ./.

Example:

 
"ProtocolFile": "./Example.prt"
 

This makes the simulation setup easier to move together with its related files.

Important notes

A *.simj file must remain valid JSON. Use double quotes around text values, separate entries with commas, and use true or false for enabled/disabled settings.

When editing a *.simj file manually, use a plain text editor. Do not edit the file in a word processor, because hidden formatting characters can make the file unreadable.

For ROIConditionTable, the order of values is important. The outer list represents ROIs, and each ROI contains a list of condition entries. Each condition entry contains an EffectSize and a PatternAcrossVoxelSD value.