Skip to content

Commit 0b1e2bd

Browse files
committed
Updating the documentation to include the new methods
1 parent fc56e7c commit 0b1e2bd

File tree

3 files changed

+85
-1
lines changed

3 files changed

+85
-1
lines changed

docs/source/modules/freesurfertools.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ Key Features
1616
- Surface-based morphometry computation
1717
- Container technology integration
1818
- Multi-format conversion capabilities
19+
- Extract CRAS coordinates from transform files
20+
- Parse FreeSurfer LTA transform files
1921

2022
Main Classes
2123
------------
@@ -29,6 +31,7 @@ Key Methods:
2931
- ``correct_parcellation()``: Fix unlabeled vertices in parcellations
3032
- ``save_as_gcs()``: Convert annotation to GCS format
3133
- ``get_region_info()``: Extract parcellation region information
34+
- ``get_cras()``: Extract CRAS coordinates from Talairach transform file
3235

3336
Common Usage Examples
3437
---------------------
@@ -58,4 +61,25 @@ Surface morphometry processing::
5861
morphometry_table = fs.compute_morphometry_table(
5962
subjects_dir="/path/to/freesurfer/subjects",
6063
parcellation="aparc.a2009s"
64+
)
65+
66+
Transform and coordinate processing::
67+
68+
from clabtoolkit.freesurfertools import AnnotParcellation, parse_freesurfer_lta, get_cras_coordinates
69+
70+
# Extract CRAS coordinates from an annotation object
71+
annot = AnnotParcellation("lh.aparc.a2009s.annot")
72+
cras_coords = annot.get_cras()
73+
print(f"CRAS coordinates: {cras_coords}")
74+
75+
# Parse LTA transform file
76+
lta_data = parse_freesurfer_lta("/path/to/transforms/talairach.lta")
77+
transform_matrix = lta_data['transform_matrix']
78+
source_cras = lta_data['source_cras']
79+
dest_cras = lta_data['dest_cras']
80+
81+
# Extract CRAS coordinates directly from LTA file
82+
cras_coordinates = get_cras_coordinates(
83+
"/path/to/transforms/talairach.lta",
84+
source=True
6185
)

docs/source/modules/imagetools.rst

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Key Features
1616
- Quality control and preprocessing utilities
1717
- Multi-modal image processing support
1818
- Structuring element generation for morphological operations
19+
- 3D/4D scalar data interpolation at specified coordinates
1920

2021
Main Classes
2122
------------
@@ -75,4 +76,39 @@ Image quality control::
7576
7677
# Get image statistics
7778
stats = morph.get_image_statistics(binary_data)
78-
print(f"Volume: {stats['volume']} voxels")
79+
print(f"Volume: {stats['volume']} voxels")
80+
81+
3D/4D data interpolation::
82+
83+
from clabtoolkit.imagetools import interpolate
84+
import numpy as np
85+
import nibabel as nib
86+
87+
# Load 3D scalar volume
88+
img = nib.load("/path/to/scalar_data.nii.gz")
89+
scalar_data = img.get_fdata()
90+
91+
# Define voxel coordinates for interpolation (Nx3 array)
92+
vertices_vox = np.array([
93+
[10.5, 20.3, 15.7], # fractional coordinates allowed
94+
[25.2, 30.1, 45.9],
95+
[12.0, 18.5, 22.3]
96+
])
97+
98+
# Interpolate values at specified coordinates
99+
interpolated_values = interpolate(
100+
scalar_data=scalar_data,
101+
vertices_vox=vertices_vox,
102+
interp_method="linear" # options: 'linear', 'nearest', 'slinear'
103+
)
104+
105+
# For 4D data (e.g., time series)
106+
functional_img = nib.load("/path/to/4d_functional.nii.gz")
107+
functional_data = functional_img.get_fdata() # shape: (x, y, z, time)
108+
109+
# Interpolate 4D data - returns values for each timepoint
110+
time_series_values = interpolate(
111+
scalar_data=functional_data,
112+
vertices_vox=vertices_vox,
113+
interp_method="linear"
114+
) # shape: (n_vertices, n_timepoints)

docs/source/modules/surfacetools.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ Key Methods:
3030
- ``load_parcellation()``: Load parcellation overlays
3131
- ``plot()``: Interactive 3D visualization with customization options
3232
- ``get_mesh_info()``: Extract surface geometry information
33+
- ``map_volume_to_surface()``: Project 3D/4D volumetric data onto surface mesh vertices
3334

3435
Common Usage Examples
3536
---------------------
@@ -68,4 +69,27 @@ Multi-view visualization::
6869
views=['lateral', 'medial', 'dorsal'],
6970
scalar_map=True,
7071
save_figure="/path/to/output.png"
72+
)
73+
74+
Volume-to-surface mapping::
75+
76+
# Project volumetric data onto surface
77+
from pathlib import Path
78+
79+
# Load surface
80+
surface = Surface("/path/to/lh.pial")
81+
82+
# Map 3D structural image to surface
83+
surface_values = surface.map_volume_to_surface(
84+
image="/path/to/structural.nii.gz",
85+
method="nilearn",
86+
interp_method="linear"
87+
)
88+
89+
# Map 4D functional data to surface
90+
functional_values = surface.map_volume_to_surface(
91+
image="/path/to/functional_4d.nii.gz",
92+
method="custom",
93+
interp_method="linear",
94+
overlay_name="activation"
7195
)

0 commit comments

Comments
 (0)