No project description provided
Project description
fUSer
fUSer is a Python package for analyzing functional ultrasound (fUS) imaging data, including preprocessing, registration, and statistical analysis. It supports direct loading and processing of raw scan data from Iconeus systems.
This is an early-stage release. APIs may change.
Why a dedicated fUS library?
fMRI tooling (e.g., nilearn) is already mature and well-developed, so building a new library for fUS may initially seem like reinventing the wheel. However, fUS data differ fundamentally in how they are acquired and structured, which means existing fMRI pipelines rely on implicit assumptions that do not strictly hold for fUS data and therefore require substantial adaptation.
Source: Brunner et al., Nature Protocols, 2021, Fig. 3c
fUS acquires one imaging plane at a time because ultrasound signals only encode depth along the beam direction, while lateral dimensions are reconstructed within a 2D slice. There is no mechanism to encode the third spatial dimension in a single acquisition, so a 3D volume must be built by sweeping the probe. In contrast, fMRI encodes spatial information directly in the signal using magnetic field gradients, allowing full 3D volumes to be acquired without mechanical motion.
In fMRI, data are naturally represented as a 4D array (time, x, y, z), where spatial and temporal dimensions are separable. In fUS, however, data are acquired as (scan, pose, x, y, z). In typical fUS acquisitions with a linear probe, y is 1, as each acquisition produces a 2D slice. This dimension is retained to support array-based probes where y > 1, although it typically remains much smaller than the other spatial dimensions. Time is given by the combination of (scan, pose), and space is given by (pose, x, y, z). The probe sweep dimension (pose) therefore couples space and time: each spatial slice is acquired at a different time point within a sweep. Treating these slices as if they were acquired simultaneously (e.g., by using scan as time) introduces a temporal misalignment, whose impact depends on the signal timescale and analysis type. In timing-sensitive analyses (e.g., GLM, event alignment, latency estimation), this can lead to systematic bias. As a result, fUS data are not strictly separable into independent time and space dimensions and cannot be represented as a standard 4D (time, x, y, z) array without approximation.
The figure illustrates probe pose as a function of time. Here, pose denotes the probe affine transform (a 4×4 matrix), typically dominated by translation but potentially including rotation. In this plot, pose is shown as a discrete index. The red points and connecting lines indicate the probe trajectory over time. Note that pose indices are not necessarily spatially ordered. In this example they follow a permuted sequence (e.g., 0 → 2 → 1 → 3), reflecting that probe positions may be sampled in a non-contiguous order. Each repetition of this sequence corresponds to a scan, with repeated scans separated by the red dashed lines.
The black dots indicate missing time points for individual poses.
These can be filled via per-pose interpolation (see interpolate_pose)
to obtain a complete 4D representation.
However, interpolation introduces synthesized data and may affect downstream statistical analysis.
For this reason, most components in this library are designed to
operate directly on the original, non-uniformly sampled data.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fuser_lib-0.1.0.tar.gz.
File metadata
- Download URL: fuser_lib-0.1.0.tar.gz
- Upload date:
- Size: 242.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2678e99e056904a9e90dad813c0febda1d8b65d8d5e0ece568b1f795ada959d9
|
|
| MD5 |
595232eff5272b32302f5f1a477f1858
|
|
| BLAKE2b-256 |
1359e0dd13f44f06e482e5f8995db718563cbbbb5b1e9512c44241aff8b572b5
|
Provenance
The following attestation bundles were made for fuser_lib-0.1.0.tar.gz:
Publisher:
publish.yml on yuanxun-yx/fuser
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fuser_lib-0.1.0.tar.gz -
Subject digest:
2678e99e056904a9e90dad813c0febda1d8b65d8d5e0ece568b1f795ada959d9 - Sigstore transparency entry: 1244902882
- Sigstore integration time:
-
Permalink:
yuanxun-yx/fuser@225714d7cf5f6bdf3dea559a3fc7208c4368e2c7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/yuanxun-yx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@225714d7cf5f6bdf3dea559a3fc7208c4368e2c7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file fuser_lib-0.1.0-py3-none-any.whl.
File metadata
- Download URL: fuser_lib-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c00dc2c24eb733af720284a28d18c6e5862f9621fec65d3ef7d6a3c00d09a18
|
|
| MD5 |
cfe39be9484e5fcfb0598adec2ddef06
|
|
| BLAKE2b-256 |
09ea0361b7dda8224ef004c15b33b95933bcd10647153ea76a62cb551ad07216
|
Provenance
The following attestation bundles were made for fuser_lib-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on yuanxun-yx/fuser
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fuser_lib-0.1.0-py3-none-any.whl -
Subject digest:
9c00dc2c24eb733af720284a28d18c6e5862f9621fec65d3ef7d6a3c00d09a18 - Sigstore transparency entry: 1244903443
- Sigstore integration time:
-
Permalink:
yuanxun-yx/fuser@225714d7cf5f6bdf3dea559a3fc7208c4368e2c7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/yuanxun-yx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@225714d7cf5f6bdf3dea559a3fc7208c4368e2c7 -
Trigger Event:
push
-
Statement type: