fmristore

Note: The badge URLs above already use the bbuchsbaum GitHub username; update them only if you publish from a different account.

An R package for efficient storage and retrieval of neuroimaging data using HDF5 format with specialized data structures for fMRI analysis.

Features

Installation

From GitHub

# Install development version from GitHub
# install.packages("devtools")
# devtools::install_github("bbuchsbaum/fmristore")
install.packages("fmristore", repos = c('https://bbuchsbaum.r-universe.dev', 'https://cloud.r-project.org'))

Dependencies

The package requires HDF5 system libraries. Installation instructions by platform:

Ubuntu/Debian

sudo apt-get install libhdf5-dev

macOS

# Using Homebrew
brew install hdf5

# Using MacPorts
sudo port install hdf5

Windows

HDF5 libraries are automatically handled during R package installation.

Quick Start

library(fmristore)

# Load neuroimaging data
# Example workflow here...

Documentation

Development

Running Tests

# Install test dependencies
devtools::install_dev_deps()

# Run tests
devtools::test()

# Check test coverage
covr::package_coverage()

Code Style

This package strictly follows the tidyverse style guide. Style compliance is enforced through automated checks:

Automated Style Enforcement:

Checking and Fixing Style Issues:

# Check for style violations
lintr::lint_package()

# Automatically fix style issues
styler::style_pkg()

# Check what styler would change without modifying files
styler::style_pkg(dry = "on")

Setting Up Pre-commit Hooks (Recommended for Contributors):

# Install pre-commit (requires Python)
pip install pre-commit

# Install the git hook scripts
pre-commit install

# (Optional) Run against all files
pre-commit run --all-files

The pre-commit hooks will automatically:

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. (Recommended) Set up pre-commit hooks: pre-commit install
  4. Make your changes
  5. Ensure tests pass (devtools::test())
  6. Ensure code follows tidyverse style:
    styler::style_pkg()      # Auto-fix style issues
    lintr::lint_package()    # Check for remaining violations
    
  7. Commit your changes (git commit -m 'Add amazing feature')
  8. Push to the branch (git push origin feature/amazing-feature)
  9. Open a Pull Request

Style Requirements:

License

This project is licensed under the [license specified in DESCRIPTION file].

Citation

To cite this package in publications, use:

citation("fmristore")

Getting Help

Albers theme

This package uses the albersdown theme. Vignettes are styled with vignettes/albers.css and a local vignettes/albers.js; the palette family is provided via params$family (default 'red'). The pkgdown site uses template: { package: albersdown }.

Albers theme

This package uses the albersdown theme. Vignettes are styled with vignettes/albers.css and a local vignettes/albers.js; the palette family is provided via params$family (default 'red'). The pkgdown site uses template: { package: albersdown }.