fiber 0.2.0
CRAN release: 2026-07-04
Breaking changes
streamline:@point_dataholds numeric-only attributes (e.g. fractional anisotropy).bundle:@bundle_datais now restricted to named lists of scalars (length-1 values, any type). Previously arbitrary R objects were accepted. Non-scalar values (e.g. affine matrices stored as a single@bundle_dataentry) must be split into individual scalar entries or moved elsewhere.bundle_set:@set_datais now restricted to named lists of scalars (length-1 values, any type), consistent with@bundle_dataat the bundle level.
Improvements
-
format()andprint()methods forstreamline,bundle, andbundle_setnow use {cli} for styled, ANSI-aware console output. Unknown shape descriptors passed toadd_shape_descriptors()now emit structuredcli::cli_warn()messages instead of base-R warnings.
New features
bundlegains a@streamline_dataslot — a named list of vectors of length (one entry per streamline) — for per-streamline attributes aggregated at the bundle level.add_shape_descriptors()now stores scalar descriptors (euclidean_length,curvilinear_length,sinuosity) directly inbundle@streamline_datarather than in each individual streamline.bundle_setgains a@bundle_dataslot — a named list of vectors of length (one entry per bundle) — for per-bundle attributes aggregated at the set level.Automatic attribute lifting: when constructing a
bundle, any@streamline_datakey present in all supplied streamlines is automatically copied intobundle@streamline_dataas a length- vector. The same happens one level up: common@bundle_datakeys are lifted intobundle_set@bundle_datawhen constructing abundle_set. Individual child slots are dropped; parent-level values take precedence on conflict.Subsetting push-down:
bundle[[i]]now pushes the correspondingbundle@streamline_datavalues back into the extracted streamlines’@streamline_data. Likewisebundle_set[[i]]and pushesbundle_set@bundle_datavalues into the extracted bundles’@bundle_data.bundle_set:@bundlesno longer needs to be a named list. Names are used to populate a bundle attribute vector calledid_from_input_listand names are then dropped from the input list.bundle()constructor gains astreamline_dataargument for supplying per-streamline data explicitly (overrides automatic lifting).bind_bundles()gains astreamline_dataargument.bind_bundle_sets()gains abundle_dataargument. Barebundlearguments no longer need to be named.as_bundle_set()method forbundle: thenameargument is now optional (defaultNULL); omitting it creates an unnamed single-elementbundle_set.
fiber 0.1.2
CRAN release: 2026-05-30
- Added
bundle_setS7 class — a named collection ofbundleobjects for multi-subject or multi-session studies. - Added
is_bundle_set()predicate,format()/print()/length()/names()/[[/[methods forbundle_set. - Added
as_bundle_set()generic with methods forbundle_set(identity) andbundle(wrap). - Added
bind_bundle_sets()to combine namedbundleobjects and/orbundle_setobjects into a singlebundle_set. - Relaxed the
streamlinevalidator:@point_dataentries no longer need to be numeric (any vector of the correct length is accepted);@streamline_dataentries no longer need to be numeric either (any scalar is accepted). Non-numeric@point_dataentries are dropped with a warning whenreparametrize()is called, since they have no natural arc-length interpolant. - Added missing
\valuedocumentation to thecompute_hausdorff_distance()catch-all method (#CRAN). - Replaced
\dontrun{}withif (requireNamespace("dti", quietly = TRUE)) {}in theas_dwifiber()example (#CRAN).
fiber 0.1.1
- Improved documentation of S7 classes, generics and methods following the release of roxygen2 8.0.0.
- Removed redundant
new_streamline()andnew_bundle()constructors. - Added coercers from and to the
dwiFiberS4 class of the dti package. - Refactored shape descriptors API.
- Rewrote pairwise Hausdorff distance matrix using C++ via the cpp11 package.
- Created the tractoverse GitHub organization and transferred fiber repository to it.
fiber 0.1.0
Breaking changes
- The package has been rebuilt from scratch around two S7 classes:
streamlineandbundle. The previous tibble-basedstreamlineand list-basedtractare removed.
New features
-
new_streamline()/new_bundle()constructors for the S7 classes. -
bind_bundles()combines any mix ofstreamlines andbundles into a singlebundle. -
reparametrize()resamples astreamlineor every streamline in abundleonto a uniform arc-length grid. -
get_euclidean_length(),get_curvilinear_length(),get_sinuosity()— geometric shape scalars. -
get_curvature(),get_torsion()— full curvature/torsion profiles or summary scalars ("mean","sd","max"). -
get_hausdorff_distance()— symmetric Hausdorff distance between twostreamlines.
