Learn R Programming

fsbrain (version 0.5.5)

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

465

Version

0.5.5

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Tim Schc3<a4>fer

Last Published

February 3rd, 2024

Functions in fsbrain (0.5.5)

arrange.brainview.images.grid

Combine several brainview images as a grid into a new figure.
brainview.sd

Visualize a list of colored meshes from a single defined angle.
boxcoords.from.bbox

Compute the coordinates of the 8 corners of a 3D box.
brain

Create fsbrain instance from 2 coloredmeshes.
brainview.si

Visualize a list of colored meshes from a single viewpoint, interactively.
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.
annot.outline

Compute outline vertex colors from annotation.
alphablend

Perform alpha blending for pairs of RGBA colors.
brainview.sr

Visualize a list of colored meshes, rotating the camera around them.
cm.seq

Return the standard fsbrain sequential colormap.
brainviews

Show one or more views of the given meshes in rgl windows.
brainview.t9

Visualize a list of colored meshes from nine angles.
collayer.bg

Compute binarized mean curvature surface color layer.
can.plot.colorbar.from.coloredmeshes

Determine whether colorbar can be plotted with given coloredmeshes.
can.plot.colorbar

Determine whether colorbar can be plotted with given metadata.
clip.data

Clip data at quantiles to remove outliers.
cm.div

Return the standard fsbrain diverging colormap.
clip_fun

Get data clipping function.
cm.cbry

Get cyan blue red yellow colormap function.
check.subjects.files

Report subjects missing files
check.subjectslist

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

Visualize a list of colored meshes from four angles.
collayer.bg.sulc

Compute binarized sulcal depth surface color layer.
collayer.bg.atlas

Compute atlas or annotation surface color layer.
collayer.bg.meancurv

Compute binarized mean curvature surface color layer.
collayer.from.mask.data

Compute surface color layer from morph-like data.
collayer.from.annotdata

Compute surface color layer from annotation or atlas data.
desaturate

Perform simple desaturation or grayscale conversion of RGBA colors.
download_fsaverage

Download the FreeSurfer v6 fsaverage subject.
coloredmesh.from.morph.standard

Create a coloredmesh from standard space morphometry data.
combine.colorbar.with.brainview.image

Combine a colorbar and a brainview image into a new figure.
collayer.from.annot

Compute surface color layer from annotation or atlas data.
coloredmesh.from.morph.native

Create a coloredmesh from native space morphometry data.
combine.colorbar.with.brainview.image.vertical

Combine a vertical colorbar and a brainview image into a new figure.
coloredmesh.from.morphdata

Create a coloredmesh from arbitrary data.
coloredmesh.from.label

Create a coloredmesh from a label.
coloredmesh.from.mask

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

Compute surface color layer from morph-like data.
delete_all_optional_data

Delete all data in the package cache.
cube3D.tris

Return triangles for a 3D cube or cuboid.
extract.volume.3D

Try to extract a 3D volume from the input argument.
cubes3D.tris

Vectorized version of cube3D.tris
coloredmeshes.from.color

Create coloredmeshes for both hemis using pre-defined colors.
face.edges

Enumerate all edges of the given faces or mesh.
download_optional_paper_data

Download extra data to reproduce the figures from the fsbrain paper.
coloredmesh.from.preloaded.data

Generate coloredmesh from loaded data.
coloredmeshes.get.md

Retrieve metadata from hemilist of coloredmeshes.
demo

Show demo visualization to test whether fsbrain is setup correctly.
collayers.merge

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

Return the standard fsbrain qualitative colormap.
cm.heat

Return the standard fsbrain heat colormap.
coloredmesh.from.annot

Create a coloredmesh from an annotation of an atlas.
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.
coloredmesh.from.color

Create a coloredmesh from a mesh and pre-defined colors.
colorlist.brain.clusters

Return diverging color list
colors.are.grayscale

Check for the given color strings whether they represent gray scale colors.
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.
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).
coloredmesh.plot.colorbar.separate

Draw colorbar for coloredmeshes in separate 2D plot.
draw.colorbar

Draw colorbar into background of current plot.
deepcopylist.long

Write deepcopy list for longitudinal subjects.
deg2rad

Convert degree to radians
export.coloredmesh.ply

Export a coloredmeshes with vertexcolors in PLY format.
fs.coloredmesh

fs.coloredmesh constructor
extend_neighbors

Recursive computation of neighborhoods, see surf.sphere.dist
force.to.range

Change data to ensure requested data_range.
combine.colorbar.with.brainview.animation

Combine a colorbar and a brain animation in gif format into a new animation.
colors.have.transparency

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

Download optional data for this package if required.
coloredmeshes.combined.data.range

Retrieve combined data range from hemilist of coloredmeshes.
demographics.to.qdec.table.dat

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

Write FreeSurfer Group Descriptor (FSGD) file from demographics dataframe.
find.subjectsdir.of

Find the subject directory containing the fsaverage subject (or others) on disk.
find.freesurferhome

Find the FREESURFER_HOME directory on disk.
fs.home

Return FreeSurfer path.
download_fsaverage3

Download the FreeSurfer v6 low-resolution fsaverage3 subject.
fsbrain.renderable

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

Set default figure size for fsbrain visualization functions.
geodesic.ballstats

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

Compute geodesic circles and ball stats for given vertices.
get.subject.class

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

Compute geodesic path from a source vertex to one or more target vertices.
geodesic.dists.to.vertex

Simple internal wrapper around Rvcg::vcgDijkstra with function check.
get.rglstyle.glass

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

Get list of valid view angle names.
ensure.fs.surface

Check whether parameter is an fs.surface instance.
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.
eeg_coords

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

Return path to fsaverage dir.
geod.patches.color.overlay

Generate color overlay from geodesic patches around several vertices.
fslong.subjects.detect

Get subject names from sub directories of FreeSurfer long directory.
fslong.subjects.finished

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

Get the glass2 visualization style parameters as a named list.
fs.value.list.from.agg.res

Create a named value list from a dataframe.
ensure.tmesh3d

Ensure the mesh is a tmesh3d instance. Will convert fs.surfaces to one automatically.
get.atlas.region.names

Determine atlas region names from a subject.
get.rglstyle

Get the default visualization style parameters as a named list.
geod.patches.color.overlay.singlehemi

Generate color overlay from geodesic patches around several vertices for a single hemi.
get.rglstyle.shiny

Get a shiny visualization style.
highlight.points.spheres

Draw small 3D spheres at given points.
group.annot

Load annotations for a group of subjects.
export

Export high-quality brainview image with a colorbar.
highlight.vertices.on.subject

Highlight vertices given by index on a subject's meshes by coloring faces.
fs.surface.to.tmesh3d

Get an rgl tmesh3d instance from a brain surface mesh.
get.rglstyle.default

Get the default visualization style parameters as a named list.
getIn

Retrieve values from nested named lists
get_optional_data_filepath

Access a single file from the package cache by its file name.
hull.retain.along.axis

Copy the first *n* foreground voxel values.
get.slice.indices

Compute slice indices from slice definition.
group.morph.agg.standard

Aggregate standard space (fsaverage) morphometry data over one hemisphere for a group of subjects.
group.morph.agg.native

Aggregate native space morphometry data over one hemisphere for a group of subjects.
image.remap.color

Remap a color in an image, typically used to set the background color to transparent.
mesh.vertex.neighbors

Compute neighborhood of a vertex
fs.surface.vertex.neighbors

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

Return all faces which are made up completely of the listed vertices.
group.concat.measures.standard

Concatenate standard space data for a group of subjects.
geod.patches.pervertexdata

Generate per-vertex distance data from geodesic patches around several vertices.
get.rglstyle.parameters

Produce the named list of style parameters from style definition.
get.rglstyle.edges

Get the mesh edges visualization style parameters as a named list.
geod.patches.pervertexdata.singlehemi

Generate per-vertex distance data from geodesic patches around several vertices for a single hemi.
group.concat.measures.native

Concatenate native space data for a group of subjects.
geod.vert.neighborhood

Compute all vertices within given geodesic distance on the mesh.
handle.rglactions.highlight.points

Highlight requested points (if any), but apply given view rotation before doing so.
hasIn

Check for values in nested named lists
group.label

Retrieve label data for a group of subjects.
get.rglstyle.semitransparent

Get the semi-transparent visualization style parameters as a named list.
group.multimorph.agg.native

Aggregate native space morphometry data for multiple measures over hemispheres for a group of subjects.
group.multimorph.agg.standard

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

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

Read combined data for a group from a single file.
group.morph.standard

Retrieve standard space morphometry data for a group of subjects.
hemi.lobe.labels

Compute lobe labels for a single hemi from aparc atlas.
per.hemi.vertex.indices

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

Create a hemilist from lh and rh data.
path.slopes

Compute slopes of paths relative to axes.
perform.na.mapping

Perform NA mapping for transparency
highlight.vertices.on.subject.spheres

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

Draw small 3D spheres at given brain mesh vertices. Supports full brain (2 meshes) as well.
label.border

Compute border of a label.
group.morph.agg.standard.vertex

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

Retrieve native space morphometry data for a group of subjects.
group.label.from.annot

Extract a region from an atlas annotation as a label for a group of subjects.
perform.rglactions

Perform rglactions, like taking screenshots.
hemilist.wrap

Wrap data into a named hemi list.
hemilist.derive.hemi

Derive 'hemi' string from the data in a hemilist
hemilist.from.prefixed.list

Create a hemilist from a named list with keys prefixed with 'lh_' and 'rh_'.
hemlist.ensure.contains

title Ensure an key for a hemilist exists.
geodesic.average.distance

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

Compute border vertices of a label using Rvcg.
numverts.rh

Determine vertex count of right hemi from hemilist of surfaces or the count itself.
is.fsbrain

Check whether object is an fsbrain (S3)
is.hemilist

Check whether x is a hemilist
images.dimmax

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

Annotate image with text.
path.colors.from.orientation

Compute path color from its orientation.
labeldata.from.mask

Create labeldata from a mask.
limit_fun

Get data limiting function.
is.fs.coloredmesh

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

Check whether object is an fs.coloredvoxels instance (S3)
plot.fsbrain.colorbar

Draw a simple colorbar from colors.
pp.named.list

Pretty-print a named list or vector.
qdec.table.skeleton

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

Convert raduians to degree
mask.from.labeldata.for.hemi

Create a binary mask from labels.
mergehemi.annots

Merge the annotations from two hemispheres into one annot.
list_optional_data

Get file names available in package cache.
mkco.heat

Return recommended 'makecmap_options' for sequential data with heatmap style.
magick.grid

Arrange a multi-frame ImageMagick image into a grid.
rglactions

Create rglactions list, suitable to be passed as parameter to vis functions.
shift.hemis.apart

Shift hemispheres apart.
spread.values.over.subject

Spread the values in the region_value_list and return them for one hemisphere.
rgl.coord.lines

Plot x, y and z axes in R,G,B.
subject.annot

Load an annotation for a subject.
shift.hemis.rglactions

Shift hemis apart if indicated in rglactions
normalize

Normalize data.
subject.lobes

Load labels representing brain lobes.
qc.fslong.checkidenticaldata

Check whether subjects for FS longitudinal pipeline contain data that is identical between time points.
subject.mask

Compute a mask for a subject.
numverts.lh

Determine vertex count of left hemi from hemilist of surfaces or the count itself.
print.fs.coloredvoxels

Print description of fs.coloredvoxels (S3).
print.fsbrain

Print description of an fsbrain (S3).
vol.imagestack

Turn volume into an ImageMagick image stack.
mkco.seq

Return recommended 'makecmap_options' for sequential data.
qc.report.html

Create visual quality check report from QC result.
surf.radius.fsaverage

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

Compute vertex neighborhoods on a sphere based on the given max distance along the sphere.
read.colorcsv

Read colors from CSV file.
ras2vox_tkr

The FreeSurfer default ras2vox_tkr matrix.
vis.paths

Visualize many paths.
pervertexdata.smoothgaussian

Perform Gaussian smoothing
track.length

Compute the total length of a path given by the coordinates of its points.
vis.data.on.fsaverage

Visualize arbitrary data on the fsaverage template subject, if available.
images.rescale.to.max.canvas

Rescale all images canvas to match the largest one.
pervertexdata.smoothnn

Perform iterative nearest-neighbor smoothing of per-vertex data.
vis.rotated.coloredmeshes

Rotate and visualize coloredmeshes, applying a style.
tmesh3d.to.fs.surface

Get an fs.surface brain mesh from an rgl tmesh3d instance.
vis.data.on.group.native

Visualize native space data on a group of subjects.
regions.to.ignore

Give suggestions for regions to ignore for an atlas.
group.agg.atlas.standard

Aggregate standard space morphometry data over brain atlas regions and subjects for a group of subjects.
images.same.height

Extent all images to the height of the image with maximal height.
group.agg.atlas.native

Aggregate native space morphometry data over brain atlas regions and subjects for a group of subjects.
qc.from.segstats.table

Perform data quality check based on a segstats table.
qc.from.segstats.tables

Perform data quality check based on a segstats table.
report.on.demographics

Print a demographics report
rglot

Get rgloptions for testing.
rglo

Get rgloptions and consider global options.
sortcoloredmeshes.by.hemi

Sort coloredmeshes into 2 lists by their 'hemi' property.
sph2fs

Transform spherical coordinates to FreeSurfer surface space to plot things around a brain.
vis.subject.morph.standard

Visualize native space morphometry data for a subject or a group.
label.colFn

A simple colormap function for binary colors.
label.colFn.inv

A simple colormap function for binary colors.
read.md.subjects

Read subjects file
read.md.demographics

Read demographics file
scale.to.range.zero.one

Scale given values to range 0..1.
group.surface

Retrieve surface mesh data for a group of subjects.
surf.sphere.spatialfilter

Apply spatial filter to surface data.
groupmorph.split.hemilist

Split a per-vertex group data matrix for both hemispheres into a hemilist at given index.
hemilist.get.combined.data

Get combined data of hemi list
hemilist.unwrap

Unwrap hemi data from a named hemi list.
images.same.width

Extent all images to the width of the image with maximal width.
label.from.annotdata

Extract a region from an annotation as a label.
scale01

Scale given values to range 0..1.
is.Triangles3D

Check whether object is a Triangles3D instance
limit_fun_na_inside

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

Get data limiting function to NA.
label.to.annot

Merge several labels into an annotation
shape.descriptor.names

Get all shape descriptor names.
surfs.props

Compute simple version of center and radius of 2 meshes.
symmrange

Given data, compute symmetric range around zero.
rglvoxels

Draw 3D boxes at locations using rgl.
subject.filepath.morph.native

Construct filepath of native space morphometry data file.
vis.seg.legend

Plot legend for a brain volume segmentation based on colorLUT.
volvis.lb

Show continuous 3D voxel/volume data as a lightbox, optionally with a background brain volume and colormap.
vis.paths.along.verts

Visualize several paths in different colors.
rotation.matrix.for.axis.rot

Get rotation matrix for a 3D rotation around an axis.
mkco.div

Return recommended 'makecmap_options' for diverging data.
principal.curvatures

Computes principal curvatures according to 2 definitions from raw k1 and k2 values.
mkco.cluster

Return recommended 'makecmap_options' for diverging cluster data.
print.fs.coloredmesh

Print description of a brain coloredmesh (S3).
shape.descriptors

Computes geometric curvature-based descriptors.
submesh.vertex

Create a submesh including only the given vertices.
surf.avg.vertexradius

Compute average distance from the origin to each vertex.
spread.values.over.hemi

Spread the values in the region_value_list and return them for one hemisphere.
qc.vis.failcount.by.region

Visualize the number of outlier subjects per region in your dataset.
qdec.table.filter

Filter QDEC long table for subjects.
subject.label

Retrieve label data for a single subject.
surface.curvatures

Compute the k1 and k2 principal curvatures of a mesh.
subject.label.from.annot

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

Return the proper hemi string ('lh' or 'rh') for each vertex.
rglactions.has.key

Check for a key in names of rglactions.
vis.coloredmeshes

Visualize a list of colored meshes in a single scene.
pervertexdata.smoothnn.compute.fwhm

Compute expected FWHM from given number of neighborhood smoothing iterations.
vis.coloredmesh

Draw a coloredmesh using a style.
pervertexdata.smoothnn.compute.numiter

Compute number of neighborhood smoothing iterations to reach requested fwhm.
vis.subject.annot

Visualize an annotation for a subject.
vol.hull

Retain only the outer hull voxels of the foreground.
vis.subject.morph.native

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

Plot atlas annotations for a group of subjects.
vis.fs.surface

Visualize fs.surface mesh
vis.renderable

Visualize a renderable object
vis.region.values.on.subject

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

Retrieve native space morphometry data for a single subject.
vis.color.on.subject

Visualize pre-defined vertex colors on a subject.
surf.sphere.gaussianweights

Compute Gaussian weights
vol.plane.axes

Get indices of the axes defining the given plane.
write.region.values.fsaverage

Write one value per atlas region for a template subject.
vis.subject.label

Visualize a binary label for a subject.
write.region.values

Write one value per atlas region for a subject.
spread.values.over.annot

Spread a single value for a region to all region vertices.
vis.data.on.group.standard

Visualize standard space data for a group on template.
rglactions.transform

Apply data transformation rglactions.
subject.volume

Read a brain volume.
subject.filepath.morph.standard

Construct filepath of standard space morphometry data file.
subject.surface

Load a surface for a subject.
volvis.lightbox

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

Write per-vertex standard space data for a group of subjects to given file names.
vis.labeldata.on.subject

Visualize a label on the surface of a subject.
vis.colortable.legend

Create a separate legend plot for a colortable or an annotation.
vislayout.from.coloredmeshes

Visualize coloredmeshes from several angles and combine the images into a new figure.
subject.morph.standard

Retrieve standard space morphometry data for a single subject.
vis.coloredmeshes.rotating

Visualize a list of colored meshes in a single scene and rotate them, movie-style.
volvis.contour

Visualize contour of a volume.
vis.group.morph.standard

Plot standard space morphometry data for a group of subjects.
test.numerical.meandiff

Perform tests for group differences on paired or unpaired data for two groups.
subject.descriptor.geodesic.average.distance

Compute mean geodesic distance descriptor for a subject.
vol.overlay.colors.from.colortable

Compute voxel colors based on colortable.
qc.for.group

Perform data quality check based on computed region stats.
vol.boundary.box

Compute 3D bounding box of a volume.
qc.from.regionwise.df

Perform data quality check based on a dataframe containing aggregated region-wise data.
write.group.morph.standard

Write standard space group data to a standard FreeSurfer directory stucture.
read.md.subjects.from.fsgd

Read subjects list from an FSGD file.
vis.group.coloredmeshes

Plot coloredmeshes for a group of subjects.
vol.vox.from.crs

Compute R voxel index for FreeSurfer CRS voxel index.
vol.boundary.box.apply

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

Convert integer intensity image to RGB color string form.
subject.filepath.any

Construct filepath of any freesurfer file.
test.numerical.meandiff.paired

Perform tests for group differences on paired data (repeated measurements) for two conditions or time points.
wrapped.image.append

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

Compute foreground pixels over the whole 3D imagestack.
write.group.morph.standard.sf

Reshape and write combined per-vertex data for a group to a single MGH file.
test.numerical.meandiff.unpaired

Perform tests for group differences on unpaired data for two groups.
write.region.aggregated

Write data aggregated over regions to morphometry file for group.
recycle

Recycle parameters or whatever.
write.group.morph.standard.singlehemi

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

Compute annot border vertices.
vis.data.on.subject

Visualize arbitrary data on the surface of any subject.
vol.mask.from.segmentation

Extract subset from a volume by value.
sjd.demo

Download optional demo data if needed and return its path.
vis.path.along.verts

Draw a 3D line from vertex to vertex
vol.slice

Extract a slice of a 3D image stack.
vol.planes

Translate names and indices of planes.
vis.mask.on.subject

Visualize a vertex mask on the surface of a subject.
subject.num.verts

Get subjects vertex count.
sjld

Get subjects list from subjects.txt file in dir.
subject.atlas.agg

Aggregate morphometry data over brain atlas regions for a subject.
subject.report.html

Create visual quality check report from QC result.
vdata.split.by.hemi

Split morph data vector at hemisphere boundary.
surf.center.fsaverage

Get pre-computed center for fsaverage white surface.
surf.metric.properties

Compute metric surface properties.
vis.dti.trk

Visualize DTI tracks from Diffusion Toolkit/TrackVis TRK format file.
vertex.coords

Return coordinates for vertices, supporting entire brain via hemilist.
vis.export.from.coloredmeshes

Export high-quality brainview image with a colorbar.
vol.merge

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

Generate colors for a 3D volume, based on the activation data and a colormap.
volvis.voxels

Voxel-based visualization of volume mask at surface RAS positions.
vis.subject.pre

Visualize pre-loaded data.
vis.symmetric.data.on.subject

Visualize clusters or activation data on the surface of any subject.
vis.group.morph.native

Plot native space morphometry data for a group of subjects.
vox2ras_tkr

The FreeSurfer default vox2ras_tkr matrix.
apply.labeldata.to.morphdata

Apply a label to morphometry data.
arrange.brainview.images

Combine several brainview images into a new figure.
apply.transform

Apply matmult transformation to input.