Build an atlas from individual FreeSurfer .label files rather than a
complete annotation. Each label file defines a single region by listing
which surface vertices belong to it. Useful when you have analysis results
saved as labels, or when you want to combine regions from different sources
into a custom atlas.
The function detects hemisphere from filename prefixes (lh. or rh.) and
derives region names from the rest of the filename.
Usage
create_cortical_from_labels(
label_files,
atlas_name = NULL,
input_lut = NULL,
output_dir = NULL,
views = c("lateral", "medial"),
tolerance = NULL,
smoothness = NULL,
snapshot_dim = NULL,
cleanup = NULL,
verbose = get_verbose(),
skip_existing = NULL,
steps = NULL
)Arguments
- label_files
Paths to
.labelfiles. Each file should follow FreeSurfer naming:{hemi}.{regionname}.label(e.g.,lh.motor.label).- atlas_name
Name for the atlas. If NULL, derived from the input filename.
- input_lut
Path to a color lookup table (LUT) file, or a data.frame with columns
regionand colour columns (R, G, B or hex). Use this to provide region names and colours. If NULL, names are derived from filenames and the atlas will have no palette.- output_dir
Directory to store intermediate files (screenshots, masks, contours). Defaults to
tempdir().- views
Which views to include: "lateral", "medial", "superior", "inferior".
- tolerance
Simplification tolerance for 2D polygons. Higher values produce simpler shapes with fewer vertices (typical range: 0.1–2). Passed to
sf::st_simplify(). If not specified, usesoptions("ggseg.extra.tolerance")or theGGSEG_EXTRA_TOLERANCEenvironment variable. Default is 1.- smoothness
Smoothing factor for 2D contours. Higher values produce smoother region boundaries (typical range: 3–15). Passed to
smoothr::smooth(). If not specified, usesoptions("ggseg.extra.smoothness")or theGGSEG_EXTRA_SMOOTHNESSenvironment variable. Default is 5.- snapshot_dim
Width and height (in pixels) for brain surface snapshots. Higher values capture more detail for dense parcellations. If not specified, uses
options("ggseg.extra.snapshot_dim")or theGGSEG_EXTRA_SNAPSHOT_DIMenvironment variable. Default is 800.- cleanup
Remove intermediate files after atlas creation. If not specified, uses
options("ggseg.extra.cleanup")or theGGSEG_EXTRA_CLEANUPenvironment variable. Default is TRUE.- verbose
Verbosity level:
0(silent),1(standard progress, default), or2(debug, includes FreeSurfer output). Logical values are accepted (TRUE= 1,FALSE= 0). If not specified, uses the value fromoptions("ggseg.extra.verbose")or theGGSEG_EXTRA_VERBOSEenvironment variable.- skip_existing
Skip generating output files that already exist, allowing interrupted atlas creation to resume. If not specified, uses
options("ggseg.extra.skip_existing")or theGGSEG_EXTRA_SKIP_EXISTINGenvironment variable. Default is TRUE.- steps
Which pipeline steps to run. Default NULL runs all steps. Steps are:
1: Read label files and build 3D atlas
2: Take full brain snapshots
3: Take region snapshots
4: Isolate regions from images
5: Extract contours
6: Smooth contours
7: Reduce vertices
8: Build final atlas with 2D geometry
Use
steps = 1for 3D-only atlas. Usesteps = 6:7to iterate on smoothing and reduction parameters.
Value
A ggseg_atlas object containing region metadata, vertex indices,
colours, and optionally sf geometry for 2D plots.
Examples
if (FALSE) { # \dontrun{
# Create 3D-only atlas from label files
labels <- c("lh.region1.label", "lh.region2.label", "rh.region1.label")
atlas <- create_cortical_from_labels(labels, steps = 1)
ggseg3d(atlas = atlas)
# Full atlas with 2D geometry
atlas <- create_cortical_from_labels(labels)
# Iterate on smoothing parameters
atlas <- create_cortical_from_labels(labels, steps = 6:8, smoothness = 10)
} # }