NeuroVecSeq now supports matrix conversion and dense
coercion helpers for easier interoperability with standard matrix
workflows.NeuroVec now supports optional per-volume
volume_labels() metadata across dense, sparse, mapped,
file-backed, bigvec, and NeuroVecSeq backends.vec[["label"]], with strict unique-match semantics, and
sub_vector() now accepts character label vectors.write_vec() now round-trips per-volume labels through a
custom NIfTI extension; read_vec() and low-footprint
readers restore labels on load.read_vec(), read_vol(), and
read_image() documentation.NeuroVec label inference for lists of
NeuroVol inputs and refreshed the generated documentation
for volume_labels() and related extractors.NeuroVec now supports optional per-volume
volume_labels() metadata across dense, sparse, mapped,
file-backed, bigvec, and NeuroVecSeq backends.vec[["label"]], with strict unique-match semantics, and
sub_vector() now accepts character label vectors.write_vec() now round-trips per-volume labels through a
custom NIfTI extension; read_vec() and low-footprint
readers restore labels on load.NeuroVecSeq, and NIfTI label
round-tripping.NeuroSpace() to derive spacing() and
origin() from the affine matrix when constructed with
trans=. Previously, spacing() returned
(1,1,1) for spaces created from an explicit affine.drop_dim() for 3D-to-2D NeuroSpace
objects to properly subset the affine matrix, preserving spatial
transforms instead of lossy reconstruction from spacing/origin.crayon with cli for all
user-facing output. The cli package provides structured
error messages, progress bars, and consistent ANSI formatting.assertthat with cli::cli_abort()
across all 253 assertion sites, providing richer error messages with
argument and class markup.vdiffr to Suggests for visual regression
testing.show() methods now use a unified formatting
style via internal
show_header()/show_rule()/show_field()
helpers.show() methods for DenseNeuroVol and
NeuroSpace (previously had no informative display).random_searchlight() and
searchlight(eager=TRUE) now display a cli
progress bar in interactive sessions.normalize_mask() internal helper consolidates
duplicated mask-coercion logic.NeuroSpace test suite (26 tests) covering
construction, coordinate transforms, affine operations, and dimension
manipulation.vdiffr plot snapshot tests (7 tests) for
plot(), plot_ortho(),
plot_montage(), and plot_overlay().make_vol(), make_vec(),
make_mask(), etc.).@rdname method families, reducing man
pages from 276 to 265.downsample() for DenseNeuroVol and
DenseNeuroVec so output NeuroSpace objects now
carry a correctly rescaled affine transform. Previously, voxel
dimensions could change while trans() still reflected the
pre-downsample grid.plot_overlay() gains an ov_alpha_mode
argument: "binary" (default, existing behaviour) applies a
uniform alpha to thresholded pixels, while "proportional"
scales per-pixel alpha by the absolute overlay value for smoother
blending. Internal helpers matrix_to_colors(),
matrix_to_rgba(), and matrix_to_raster_grob()
now accept an alpha_map argument to support this.R/axis.R: new
helpers .default_axcode_labels(),
.validate_ornt(), ornt_transform(),
inv_ornt_aff(), apply_orientation(),
flip_axis(), io_orientation(),
axcodes2ornt(), and ornt2axcodes() provide a
comprehensive NiBabel-compatible orientation API.ClusteredNeuroVec
vignette: searchlight values() dimensions were documented
as N x T but are actually T x N (time points x neighbors).albersdown dependency from vignette setup
chunks; all vignettes now use neuroim2::theme_neuro()
exclusively..ecosystem.yml to .Rbuildignore to
silence hidden-file NOTE.deoblique() for
NeuroSpace/NeuroVol, with
gridset/newgrid controls and default isotropic
grid spacing equal to the minimum input voxel size.
NeuroVol inputs are resampled to an axis-aligned deobliqued
target space.plot(NeuroVol) and plot(NeuroSlice)
memory blowups for oblique/sheared affines by rasterizing on pixel-grid
coordinates instead of world-coordinate grids; added regression tests
for oblique affine plotting.read_hyper_vec() reader returns NeuroHyperVec;
read_image(type = "auto") now dispatches to
NeuroHyperVec for 5D inputs (with optional spatial
masking); and write_vec() now supports
NeuroHyperVec so 5D NIfTI read/write round-trips are
supported.write_vec() affine round-trip regression: NIfTI
sform (direct affine) is now preferred over qform (quaternion-derived)
on read, matching the convention used by FSL, FreeSurfer, and ANTs.
Previously, the sform was silently replaced by the qform, causing
world-coordinate drift for vector fields and warp images.as_nifti_header() to derive qoffset
from the transform matrix translation column, ensuring internal header
consistency between quaternion parameters and the sform.NeuroSpace affine precision from 6 to 7
significant digits, matching NIfTI float32 precision and reducing
cumulative round-trip truncation.affine_to_orientation(),
orientation_transform(), apply_orientation(),
orientation_inverse_affine(),
orientation_to_axcodes(),
axcodes_to_orientation(), and
affine_to_axcodes().output_aligned_space()
(with NiBabel-compatible alias vox2out_vox()) and
slice_to_volume_affine() (alias
slice2volume()), including support for
NeuroSpace/NeuroVol inputs, >3D spatial
handling via first 3 axes, and optional zero-based indexing
compatibility.apply_affine(),
to_matvec(), from_matvec(),
append_diag(), dot_reduce(),
voxel_sizes(), obliquity(), and
rescale_affine(), with stricter validation and
center-preserving affine rescaling semantics.reorient(NeuroSpace, orient) so returned spaces
now carry the requested orientation axes (instead of preserving original
axes).sub_clusters() generic: subset a
ClusteredNeuroVol or ClusteredNeuroVec by
integer cluster ID, numeric, or character name (looked up in the label
map). Returns a new object of the same class containing only the
selected clusters.scale_series() for DenseNeuroVec is now
~10x faster by operating row-wise on the voxels-by-time matrix instead
of double-transposing through base::scale.scale_series() method for
SparseNeuroVec: scales only masked voxels in-place on the
T×K @data matrix, returns 0 (not NaN) for zero-variance
voxels, and stays sparse.as.dense() is now an identity (no-copy) for
DenseNeuroVol.+, -, *,
/, ^) now work for
ClusteredNeuroVol (with a warning that cluster structure is
not preserved) and scalar ops for DenseNeuroVol and
SparseNeuroVol.&, |) and negation
(!) now work across DenseNeuroVol,
SparseNeuroVol, and LogicalNeuroVol, returning
LogicalNeuroVol.>, <, ==,
etc.) for SparseNeuroVol and DenseNeuroVol now
correctly return LogicalNeuroVol instead of raw sparse
vectors or mistyped volumes.NiftiExtension,
NiftiExtensionList) and read_image()
convenience wrapper.Makevars.win to correctly link
TBB libraries from RcppParallel without the non-existent
-lRcppParallel flag.meta_info() helper returns a normalized list of
basic header metadata from a filename or FileMetaInfo (dim,
spacing, origin, trans, path, etc.), making 3D/4D image introspection
simpler for new users.spherical_roi() now cross-links to
spherical_roi_set(); ROI vignette shows multi-ROI
creation.as.matrix.SparseNeuroVec() implementation
(#2).resample_to() wrapper for readable interpolation
names; delegates to existing resample() methods.
Need a high-speed mirror for your open-source project?
Contact our mirror admin team at info@clientvps.com.
This archive is provided as a free public service to the community.
Proudly supported by infrastructure from VPSPulse , RxServers , BuyNumber , UnitVPS , OffshoreName and secure payment technology by ArionPay.