Skip to content

Outputs

What each command writes to paths.out_root.

simnibs-analyze

out_root/
├── all_features_space-<space>.csv        ← the extraction table
├── inter_subject_space-<space>.csv       ← group summary
└── intra_subject_<cond>_space-<space>.csv  (only when both modes ran)

The space-<space> suffix is space-mni or space-native, so running both spaces against the same out_root never overwrites anything.

all_features_space-<space>.csv

One row per (subject × condition × mode). This is the file to open first, and the only one you need to reproduce every downstream number.

Column Description
subject Subject ID
condition <roi-name>_<mode>, e.g. AFFT_simulation
space mni or native
efield_path Absolute path to the e-field volume actually read
roi_path Reserved — the ROI mask is not persisted
mean, median, std, min, max Intra-ROI statistics, one column per entry in feature_extraction.metrics
n_voxels Voxels inside the ROI after post-processing
extra_* The same statistics outside the ROI but inside the brain
extra_n_voxels Voxels in that complement
efield_ratio_mean Focality: intra mean ÷ extra mean
cluster specific_high, specific_low, diffuse_high or diffuse_low

The extra_*, ratio and cluster columns need seg_base

Computing statistics outside the ROI requires a brain mask, which comes from the segmentation. Without seg_base you get the intra-ROI columns only, and clustering is skipped — the log says 'efield_ratio_mean' absent — clustering skipped.

inter_subject_space-<space>.csv

One row per condition, aggregating across subjects.

Column Description
condition Condition name
mean, std, count Across-subject statistics of analysis.metric
sem Standard error, std / sqrt(count)

intra_subject_<cond>_space-<space>.csv

Written only when both simulation and optimization ran for that condition, since it contrasts the two. One row per subject.


simnibs-viz

out_root/
├── <subject>_<simulation>/
│   ├── <figure-name>.png
│   └── roi_<name>_native.nii.gz     (when a ROI layer is warped)
└── _cohort/
    └── <figure-name>.png
Path Contents
<subject>_<simulation>/ One directory per subject and montage, holding one PNG per figure block
<figure-name>.png Named after the name key of the figure block
roi_<name>_native.nii.gz ROI mask warped to subject space, written when a kind: roi layer is resolved in native space — reusable as a file: layer later
_cohort/ One montage per figure block flagged cohort: true, all subjects on the shared fields_scale

Existing figures are skipped according to running.if_exists, checked before any volume is loaded, so adding one figure to a finished cohort is nearly free.