Skip to content

Instantly share code, notes, and snippets.

@htwangtw
Created April 20, 2021 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save htwangtw/ff8667e2c6269907b3cad7979648109c to your computer and use it in GitHub Desktop.
Save htwangtw/ff8667e2c6269907b3cad7979648109c to your computer and use it in GitHub Desktop.
Create cifti with random data
import nibabel as nb
import numpy as np
original = nb.load("sub-A00018030_ses-FLU1_task-rest_acq-645_space-fsLR_den-91k_bold.dtseries.nii")
meta = {k: i for k, i in original.header.matrix.metadata.data.items()}
data = np.random.rand(30, 100)
vertices = nb.cifti2.Cifti2VertexIndices(np.arange(data.shape[-1]))
bm = nb.cifti2.Cifti2BrainModel(
index_offset=0,
index_count=data.shape[-1],
model_type='CIFTI_MODEL_TYPE_SURFACE',
brain_structure='CIFTI_STRUCTURE_CORTEX_LEFT',
vertex_indices=vertices,
n_surface_vertices=data.shape[-1]
)
brainmodels = [bm]
series_map = original.header.matrix[0]
series_map.number_of_series_points = data.shape[0]
geometry_map = nb.cifti2.Cifti2MatrixIndicesMap((1,), "CIFTI_INDEX_TYPE_BRAIN_MODELS", maps=brainmodels)
matrix = nb.cifti2.Cifti2Matrix()
matrix.append(series_map)
matrix.append(geometry_map)
matrix.metadata = nb.cifti2.Cifti2MetaData(meta)
img = nb.Cifti2Image(data, header=nb.Cifti2Header(matrix))
img.nifti_header.set_intent("NIFTI_INTENT_CONNECTIVITY_DENSE_SERIES")
img.to_filename("sub-test_ses-BAS_task-rest_downsample_bold.dtseries.nii")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment