Learn R Programming

⚠️There's a newer version (0.5.5) of this package.Take me there.

fsbrain (version 0.5.4)

Managing and Visualizing Brain Surface Data

Description

Provides high-level access to neuroimaging data from standard software packages like 'FreeSurfer' on the level of subjects and groups. Load morphometry data, surfaces and brain parcellations based on atlases. Mask data using labels, load data for specific atlas regions only, and visualize data and statistical results directly in 'R'.

Copy Link

Version

Install

install.packages('fsbrain')

Monthly Downloads

838

Version

0.5.4

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Tim Schc3<a4>fer

Last Published

June 26th, 2023

Functions in fsbrain (0.5.4)

arrange.brainview.images.grid

Combine several brainview images as a grid into a new figure.
boxcoords.from.bbox

Compute the coordinates of the 8 corners of a 3D box.
arrange.brainview.images

Combine several brainview images into a new figure.
annot.outline

Compute outline vertex colors from annotation.
alphablend

Perform alpha blending for pairs of RGBA colors.
annot.outline.border.vertices

Compute the border vertices for each region in an annot.
apply.label.to.morphdata

Load a label from file and apply it to morphometry data.
apply.labeldata.to.morphdata

Apply a label to morphometry data.
apply.transform

Apply matmult transformation to input.
brain

Create fsbrain instance from 2 coloredmeshes.
brainview.t9

Visualize a list of colored meshes from nine angles.
brainviews

Show one or more views of the given meshes in rgl windows.
check.subjectslist

Check whether the subjects_list looks good, warn if not.
brainview.si

Visualize a list of colored meshes from a single viewpoint, interactively.
brainview.sr

Visualize a list of colored meshes, rotating the camera around them.
can.plot.colorbar

Determine whether colorbar can be plotted with given metadata.
check.subjects.files

Report subjects missing files
brainview.t4

Visualize a list of colored meshes from four angles.
cm.heat

Return the standard fsbrain heat colormap.
cm.qual

Return the standard fsbrain qualitative colormap.
cm.seq

Return the standard fsbrain sequential colormap.
brainview.sd

Visualize a list of colored meshes from a single defined angle.
can.plot.colorbar.from.coloredmeshes

Determine whether colorbar can be plotted with given coloredmeshes.
collayer.bg

Compute binarized mean curvature surface color layer.
collayer.bg.atlas

Compute atlas or annotation surface color layer.
clip_fun

Get data clipping function.
clip.data

Clip data at quantiles to remove outliers.
collayer.bg.meancurv

Compute binarized mean curvature surface color layer.
cm.cbry

Get cyan blue red yellow colormap function.
coloredmesh.from.mask

Create a coloredmesh from a mask.
collayer.from.annotdata

Compute surface color layer from annotation or atlas data.
collayer.bg.sulc

Compute binarized sulcal depth surface color layer.
collayer.from.annot

Compute surface color layer from annotation or atlas data.
collayers.merge

Merge two or more color layers based on their transparency values.
cm.div

Return the standard fsbrain diverging colormap.
collayer.from.morphlike.data

Compute surface color layer from morph-like data.
coloredmesh.from.label

Create a coloredmesh from a label.
collayer.from.mask.data

Compute surface color layer from morph-like data.
coloredmesh.from.annot

Create a coloredmesh from an annotation of an atlas.
coloredmesh.from.color

Create a coloredmesh from a mesh and pre-defined colors.
coloredmesh.plot.colorbar.separate

Draw colorbar for coloredmeshes in separate 2D plot.
colorlist.brain.clusters

Return diverging color list
coloredmesh.from.morph.standard

Create a coloredmesh from standard space morphometry data.
coloredmeshes.combined.data.range

Retrieve combined data range from hemilist of coloredmeshes.
coloredmesh.from.morph.native

Create a coloredmesh from native space morphometry data.
coloredmeshes.from.color

Create coloredmeshes for both hemis using pre-defined colors.
coloredmesh.from.morphdata

Create a coloredmesh from arbitrary data.
coloredmesh.from.preloaded.data

Generate coloredmesh from loaded data.
colors.have.transparency

Check for the given color strings whether they have transparency, i.e., an alpha channel value != fully opaque.
coloredmeshes.get.md

Retrieve metadata from hemilist of coloredmeshes.
colors.are.grayscale

Check for the given color strings whether they represent gray scale colors.
common.makecmap.range

Get cmap and colorlayer from data and makecmap_options.
constant.pervertexdata

Get vertex data for a single fs.surface or a hemilist of surfaces.
combine.colorbar.with.brainview.image

Combine a colorbar and a brainview image into a new figure.
combine.colorbar.with.brainview.image.vertical

Combine a vertical colorbar and a brainview image into a new figure.
combine.colorbar.with.brainview.animation

Combine a colorbar and a brain animation in gif format into a new animation.
deepcopylist.long

Write deepcopy list for longitudinal subjects.
deg2rad

Convert degree to radians
download_fsaverage3

Download the FreeSurfer v6 low-resolution fsaverage3 subject.
download_optional_data

Download optional data for this package if required.
demographics.to.fsgd.file

Write FreeSurfer Group Descriptor (FSGD) file from demographics dataframe.
cubes3D.tris

Vectorized version of cube3D.tris
demographics.to.qdec.table.dat

Convert a dataframe containing demographics data to a qdec.table.dat file and related files.
cube3D.tris

Return triangles for a 3D cube or cuboid.
download_optional_paper_data

Download extra data to reproduce the figures from the fsbrain paper.
demo

Show demo visualization to test whether fsbrain is setup correctly.
download_fsaverage

Download the FreeSurfer v6 fsaverage subject.
desaturate

Perform simple desaturation or grayscale conversion of RGBA colors.
delete_all_optional_data

Delete all data in the package cache.
draw.colorbar

Draw colorebar into background of current plot.
eeg_coords

Internal function to get some demo EEG electrode coordinates. Will be removed from public API. Do not use this.
export.coloredmesh.ply

Export a coloredmeshes with vertexcolors in PLY format.
export

Export high-quality brainview image with a colorbar.
ensure.tmesh3d

Ensure the mesh is a tmesh3d instance. Will convert fs.surfaces to one automatically.
extract.volume.3D

Try to extract a 3D volume from the input argument.
ensure.fs.surface

Check whether parameter is an fs.surface instance.
extend_neighbors

Recursive computation of neighborhoods, see surf.sphere.dist
face.edges

Enumerate all edges of the given faces or mesh.
find.freesurferhome

Find the FREESURFER_HOME directory on disk.
find.subjectsdir.of

Find the subject directory containing the fsaverage subject (or others) on disk.
fs.value.list.from.agg.res

Create a named value list from a dataframe.
fs.surface.to.tmesh3d

Get an rgl tmesh3d instance from a brain surface mesh.
fs.surface.vertex.neighbors

Compute vertex neighborhoods or the full adjacency list for a mesh using the Rvcg or igraph library.
fs.home

Return FreeSurfer path.
fs.coloredmesh

fs.coloredmesh constructor
gen.test.volume

Generate test 3D volume of integers. The volume has an outer background area (intensity value 'bg') and an inner foreground areas (intensity value 200L).
geod.patches.pervertexdata

Generate per-vertex distance data from geodesic patches around several vertices.
fs.surface.as.adjacencylist

Turn surface mesh into a igraph and return its adjacency list representation.
fs.surface.to.igraph

Create igraph undirected graph from a brain surface mesh.
geod.patches.color.overlay

Generate color overlay from geodesic patches around several vertices.
fup

Transform first character of a string to uppercase.
flc

Given a list of path coordinates, create matrix containing only the first and last point of each path.
geod.patches.pervertexdata.singlehemi

Generate per-vertex distance data from geodesic patches around several vertices for a single hemi.
force.to.range

Change data to ensure requested data_range.
fsbrain.renderable

Check whether object can be rendered by fsbrain
fsbrain.set.default.figsize

Set default figure size for fsbrain visualization functions.
geodesic.dists.to.vertex

Simple internal wrapper around Rvcg::vcgDijkstra with function check.
geodesic.path

Compute geodesic path from a source vertex to one or more target vertices.
get.atlas.region.names

Determine atlas region names from a subject.
fsaverage.path

Return path to fsaverage dir.
get.rglstyle

Get the default visualization style parameters as a named list.
geod.vert.neighborhood

Compute all vertices within given geodesic distance on the mesh.
geod.patches.color.overlay.singlehemi

Generate color overlay from geodesic patches around several vertices for a single hemi.
fslong.subjects.finished

Find completely run FreeSurfer long subjects in a recon-all long output folder.
get.rglstyle.edges

Get the mesh edges visualization style parameters as a named list.
fslong.subjects.detect

Get subject names from sub directories of FreeSurfer long directory.
geodesic.ballstats

Compute geodesic ball area and perimeter at location defined by geodists for all radii.
getIn

Retrieve values from nested named lists
get.rglstyle.semitransparent

Get the semi-transparent visualization style parameters as a named list.
get.rglstyle.parameters

Produce the named list of style parameters from style definition.
get.subject.class

Construct FSGD Class name from group and non-continuous covariate columns.
geodesic.average.distance

Compute the average (pseudo-) geodesic distance on the mesh from each vertex to all other vertices.
geodesic.circles

Compute geodesic circles and ball stats for given vertices.
get.rglstyle.default

Get the default visualization style parameters as a named list.
get.view.angle.names

Get list of valid view angle names.
get.slice.indices

Compute slice indices from slice definition.
get.rglstyle.shiny

Get a shiny visualization style.
get_optional_data_filepath

Access a single file from the package cache by its file name.
get.rglstyle.glass

Get the glass visualization style parameters as a named list.
get.rglstyle.glass2

Get the glass2 visualization style parameters as a named list.
group.label

Retrieve label data for a group of subjects.
group.morph.agg.standard

Aggregate standard space (fsaverage) morphometry data over one hemisphere for a group of subjects.
group.data.to.array

Convert group 2D data (1 vector per subject) to 4D array format.
group.annot

Load annotations for a group of subjects.
group.label.from.annot

Extract a region from an atlas annotation as a label for a group of subjects.
group.agg.atlas.standard

Aggregate standard space morphometry data over brain atlas regions and subjects for a group of subjects.
group.morph.agg.native

Aggregate native space morphometry data over one hemisphere for a group of subjects.
group.concat.measures.native

Concatenate native space data for a group of subjects.
group.agg.atlas.native

Aggregate native space morphometry data over brain atlas regions and subjects for a group of subjects.
group.concat.measures.standard

Concatenate standard space data for a group of subjects.
handle.rglactions.highlight.points

Highlight requested points (if any), but apply given view rotation before doing so.
group.morph.agg.standard.vertex

Aggregate standard space morphometry data over subjects.
group.morph.standard

Retrieve standard space morphometry data for a group of subjects.
group.morph.native

Retrieve native space morphometry data for a group of subjects.
groupmorph.split.hemilist

Split a per-vertex group data matrix for both hemispheres into a hemilist at given index.
group.morph.standard.sf

Read combined data for a group from a single file.
hasIn

Check for values in nested named lists
group.multimorph.agg.standard

Aggregate standard space (fsaverage) morphometry data for multiple measures over hemispheres for a group of subjects.
group.surface

Retrieve surface mesh data for a group of subjects.
group.multimorph.agg.native

Aggregate native space morphometry data for multiple measures over hemispheres for a group of subjects.
hemilist.unwrap

Unwrap hemi data from a named hemi list.
hemilist.derive.hemi

Derive 'hemi' string from the data in a hemilist
highlight.points.spheres

Draw small 3D spheres at given points.
hemilist.from.prefixed.list

Create a hemilist from a named list with keys prefixed with 'lh_' and 'rh_'.
hemi.lobe.labels

Compute lobe labels for a single hemi from aparc atlas.
highlight.vertices.on.subject

Highlight vertices given by index on a subject's meshes by coloring faces.
hemilist

Create a hemilist from lh and rh data.
hemilist.wrap

Wrap data into a named hemi list.
hemilist.get.combined.data

Get combined data of hemi list
hemlist.ensure.contains

title Ensure an key for a hemilist exists.
highlight.vertices.on.subject.spheres

Highlight vertices given by index on a subject's meshes by coloring faces.
images.same.height

Extent all images to the height of the image with maximal height.
images.same.width

Extent all images to the width of the image with maximal width.
highlight.vertices.spheres

Draw small 3D spheres at given brain mesh vertices. Supports full brain (2 meshes) as well.
images.rescale.to.max.canvas

Rescale all images canvas to match the largest one.
hull.retain.along.axis

Copy the first *n* foreground voxel values.
images.dimmax

Compute max width and height of magick images.
images.annotate

Annotate image with text.
image.remap.color

Remap a color in an image, typically used to set the background color to transparent.
is.Triangles3D

Check whether object is a Triangles3D instance
label.colFn

A simple colormap function for binary colors.
label.border.fast

Compute border vertices of a label using Rvcg.
is.fs.coloredmesh

Check whether object is an fs.coloredmesh (S3)
is.fs.coloredvoxels

Check whether object is an fs.coloredvoxels instance (S3)
label.from.annotdata

Extract a region from an annotation as a label.
is.fsbrain

Check whether object is an fsbrain (S3)
label.border

Compute border of a label.
label.colFn.inv

A simple colormap function for binary colors.
is.hemilist

Check whether x is a hemilist
label.to.annot

Merge several labels into an annotation
mesh.vertex.included.faces

Return all faces which are made up completely of the listed vertices.
mesh.vertex.neighbors

Compute neighborhood of a vertex
list_optional_data

Get file names available in package cache.
labeldata.from.mask

Create labeldata from a mask.
mask.from.labeldata.for.hemi

Create a binary mask from labels.
limit_fun_na_inside

Get data limiting function, setting values inside range to NA.
limit_fun_na

Get data limiting function to NA.
limit_fun

Get data limiting function.
mergehemi.annots

Merge the annotations from two hemispheres into one annot.
magick.grid

Arrange a multi-frame ImageMagick image into a grid.
mkco.heat

Return recommended 'makecmap_options' for sequential data with heatmap style.
mkco.seq

Return recommended 'makecmap_options' for sequential data.
numverts.rh

Determine vertex count of right hemi from hemilist of surfaces or the count itself.
numverts.lh

Determine vertex count of left hemi from hemilist of surfaces or the count itself.
mkco.cluster

Return recommended 'makecmap_options' for diverging cluster data.
mkco.div

Return recommended 'makecmap_options' for diverging data.
pervertexdata.smoothgaussian

Perform Gaussian smoothing
path.slopes

Compute slopes of paths relative to axes.
path.colors.from.orientation

Compute path color from its orientation.
plot.fsbrain.colorbar

Draw a simple colorbar from colors.
per.hemi.vertex.indices

Transform surfaces indices which go over two surfaces to per-hemi indices.
normalize

Normalize data.
print.fs.coloredmesh

Print description of a brain coloredmesh (S3).
principal.curvatures

Computes principal curvatures according to 2 definitions from raw k1 and k2 values.
pervertexdata.smoothnn

Perform iterative nearest-neighbor smoothing of per-vertex data.
perform.na.mapping

Perform NA mapping for transparency
perform.rglactions

Perform rglactions, like taking screenshots.
pp.named.list

Pretty-print a named list or vector.
qc.for.group

Perform data quality check based on computed region stats.
qc.vis.failcount.by.region

Visualize the number of outlier subjects per region in your dataset.
print.fs.coloredvoxels

Print description of fs.coloredvoxels (S3).
qc.from.segstats.tables

Perform data quality check based on a segstats table.
pervertexdata.smoothnn.compute.fwhm

Compute expected FWHM from given number of neighborhood smoothing iterations.
pervertexdata.smoothnn.compute.numiter

Compute number of neighborhood smoothing iterations to reach requested fwhm.
qdec.table.filter

Filter QDEC long table for subjects.
qc.from.regionwise.df

Perform data quality check based on a dataframe containing aggregated region-wise data.
print.fsbrain

Print description of an fsbrain (S3).
qc.fslong.checkidenticaldata

Check whether subjects for FS longitudinal pipeline contain data that is identical between time points.
qc.report.html

Create visual quality check report from QC result.
qc.from.segstats.table

Perform data quality check based on a segstats table.
read.md.subjects

Read subjects file
read.md.demographics

Read demographics file
recycle

Recycle parameters or whatever.
qdec.table.skeleton

Generate skeleton dataframe for FreeSurfer QDEC long file from subjects list.
read.colorcsv

Read colors from CSV file.
read.md.subjects.from.fsgd

Read subjects list from an FSGD file.
ras2vox_tkr

The FreeSurfer default ras2vox_tkr matrix.
rad2deg

Convert raduians to degree
scale.to.range.zero.one

Scale given values to range 0..1.
rglactions

Create rglactions list, suitable to be passed as parameter to vis functions.
rglvoxels

Draw 3D boxes at locations using rgl.
rglactions.transform

Apply data transformation rglactions.
rglactions.has.key

Check for a key in names of rglactions.
rglo

Get rgloptions and consider global options.
report.on.demographics

Print a demographics report
regions.to.ignore

Give suggestions for regions to ignore for an atlas.
rglot

Get rgloptions for testing.
rgl.coord.lines

Plot x, y and z axes in R,G,B.
rotation.matrix.for.axis.rot

Get rotation matrix for a 3D rotation around an axis.
scale01

Scale given values to range 0..1.
sjd.demo

Download optional demo data if needed and return its path.
shape.descriptor.names

Get all shape descriptor names.
shape.descriptors

Computes geometric curvature-based descriptors.
sjld

Get subjects list from subjects.txt file in dir.
sortcoloredmeshes.by.hemi

Sort coloredmeshes into 2 lists by their 'hemi' property.
spread.values.over.hemi

Spread the values in the region_value_list and return them for one hemisphere.
sph2fs

Transform spherical coordinates to FreeSurfer surface space to plot things around a brain.
spread.values.over.annot

Spread a single value for a region to all region vertices.
shift.hemis.apart

Shift hemispheres apart.
shift.hemis.rglactions

Shift hemis apart if indicated in rglactions
subject.label.from.annot

Extract a region from an atlas annotation as a label for a subject.
subject.atlas.agg

Aggregate morphometry data over brain atlas regions for a subject.
subject.label

Retrieve label data for a single subject.
subject.filepath.any

Construct filepath of any freesurfer file.
subject.annot.border

Compute annot border vertices.
subject.filepath.morph.native

Construct filepath of native space morphometry data file.
spread.values.over.subject

Spread the values in the region_value_list and return them for one hemisphere.
subject.annot

Load an annotation for a subject.
subject.filepath.morph.standard

Construct filepath of standard space morphometry data file.
subject.descriptor.geodesic.average.distance

Compute mean geodesic distance descriptor for a subject.
subject.report.html

Create visual quality check report from QC result.
subject.volume

Read a brain volume.
subject.num.verts

Get subjects vertex count.
subject.mask

Compute a mask for a subject.
subject.surface

Load a surface for a subject.
subject.morph.standard

Retrieve standard space morphometry data for a single subject.
surf.avg.vertexradius

Compute average distance from the origin to each vertex.
subject.lobes

Load labels representing brain lobes.
subject.morph.native

Retrieve native space morphometry data for a single subject.
submesh.vertex

Create a submesh including only the given vertices.
surf.center.fsaverage

Get pre-computed center for fsaverage white surface.
surface.curvatures

Compute the k1 and k2 principal curvatures of a mesh.
symmrange

Given data, compute symmetric range around zero.
surfs.props

Compute simple version of center and radius of 2 meshes.
surf.metric.properties

Compute metric surface properties.
surf.sphere.spatialfilter

Apply spatial filter to surface data.
test.numerical.meandiff

Perform tests for group differences on paired or unpaired data for two groups.
surf.sphere.dist

Compute vertex neighborhoods on a sphere based on the given max distance along the sphere.
surf.radius.fsaverage

Get pre-computed radius for fsaverage white surface.
surf.sphere.gaussianweights

Compute Gaussian weights
vdata.split.by.hemi

Split morph data vector at hemisphere boundary.
vertex.hemis

Return the proper hemi string ('lh' or 'rh') for each vertex.
vis.coloredmeshes

Visualize a list of colored meshes in a single scene.
vis.color.on.subject

Visualize pre-defined vertex colors on a subject.
track.length

Compute the total length of a path given by the coordinates of its points.
test.numerical.meandiff.unpaired

Perform tests for group differences on unpaired data for two groups.
vis.coloredmesh

Draw a coloredmesh using a style.
test.numerical.meandiff.paired

Perform tests for group differences on paired data (repeated measurements) for two conditions or time points.
tmesh3d.to.fs.surface

Get an fs.surface brain mesh from an rgl tmesh3d instance.
vertex.coords

Return coordinates for vertices, supporting entire brain via hemilist.
vis.data.on.fsaverage

Visualize arbitrary data on the fsaverage template subject, if available.
vis.fs.surface

Visualize fs.surface mesh
vis.export.from.coloredmeshes

Export high-quality brainview image with a colorbar.
vis.data.on.group.standard

Visualize standard space data for a group on template.
vis.data.on.subject

Visualize arbitrary data on the surface of any subject.
vis.colortable.legend

Create a separate legend plot for a colortable or an annotation.
vis.group.annot

Plot atlas annotations for a group of subjects.
vis.data.on.group.native

Visualize native space data on a group of subjects.
vis.coloredmeshes.rotating

Visualize a list of colored meshes in a single scene and rotate them, movie-style.
vis.dti.trk

Visualize DTI tracks from Diffusion Toolkit/TrackVis TRK format file.
vis.renderable

Visualize a renderable object
vis.mask.on.subject

Visualize a vertex mask on the surface of a subject.
vis.labeldata.on.subject

Visualize a label on the surface of a subject.
vis.group.morph.native

Plot native space morphometry data for a group of subjects.
vis.paths.along.verts

Visualize several paths in different colors.
vis.paths

Visualize many paths.
vis.path.along.verts

Draw a 3D line from vertex to vertex
vis.group.coloredmeshes

Plot coloredmeshes for a group of subjects.
vis.region.values.on.subject

Visualize arbitrary data, one value per atlas region, on the surface of any subject (including template subjects).
vis.group.morph.standard

Plot standard space morphometry data for a group of subjects.
vis.rotated.coloredmeshes

Rotate and visualize coloredmeshes, applying a style.
vis.seg.legend

Plot legend for a brain volume segmentation based on colorLUT.
vislayout.from.coloredmeshes

Visualize coloredmeshes from several angles and combine the images into a new figure.
vol.boundary.box

Compute 3D bounding box of a volume.
vis.subject.pre

Visualize pre-loaded data.
vis.subject.morph.standard

Visualize native space morphometry data for a subject or a group.
vis.subject.morph.native

Visualize native space morphometry data for a subject.
vis.subject.annot

Visualize an annotation for a subject.
vis.subject.label

Visualize a binary label for a subject.
vis.symmetric.data.on.subject

Visualize clusters or activation data on the surface of any subject.
vol.boundary.box.apply

Apply a boundary box to a volume, returning the inner volume part
vol.imagestack

Turn volume into an ImageMagick image stack.
vol.mask.from.segmentation

Extract subset from a volume by value.
vol.merge

Merge background volume and overlay to new colors.
vol.overlay.colors.from.colortable

Compute voxel colors based on colortable.
vol.overlay.colors.from.activation

Generate colors for a 3D volume, based on the activation data and a colormap.
vol.intensity.to.color

Convert integer intensity image to RGB color string form.
vol.plane.axes

Get indices of the axes defining the given plane.
vol.hull

Retain only the outer hull voxels of the foreground.
vol.boundary.mask

Compute foreground pixels over the whole 3D imagestack.
volvis.contour

Visualize contour of a volume.
vol.vox.from.crs

Compute R voxel index for FreeSurfer CRS voxel index.
volvis.lb

Show continuous 3D voxel/volume data as a lightbox, optionally with a background brain volume and colormap.
vox2ras_tkr

The FreeSurfer default vox2ras_tkr matrix.
wrapped.image.append

Wrapper around magick::image_append that allows specifying the background color when working with images of different width/height.
vol.planes

Translate names and indices of planes.
volvis.voxels

Voxel-based visualization of volume mask at surface RAS positions.
vol.slice

Extract a slice of a 3D image stack.
volvis.lightbox

Draw a lightbox view from volume slices.
write.group.morph.standard

Write standard space group data to a standard FreeSurfer directory stucture.
write.region.values

Write one value per atlas region for a subject.
write.group.morph.standard.sf

Reshape and write combined per-vertex data for a group to a single MGH file.
write.region.values.fsaverage

Write one value per atlas region for a template subject.
write.group.morph.standard.mf

Write per-vertex standard space data for a group of subjects to given file names.
write.region.aggregated

Write data aggregated over regions to morphometry file for group.
write.group.morph.standard.singlehemi

Write single hemi per-vertex data for a group of subjects to given file names.