Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BEP 011: Structural derivatives #518

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ nav:
- BIDS Derivatives: derivatives/introduction.md
- Common data types and metadata: derivatives/common-data-types.md
- Imaging data types: derivatives/imaging.md
- Structural derivatives: 05-derivatives/04-structural-derivatives.md
- Longitudinal and multi-site studies: longitudinal-and-multi-site-studies.md
- Glossary: glossary.md
- BIDS Extension Proposals: extensions.md
Expand Down
142 changes: 142 additions & 0 deletions src/05-derivatives/04-structural-derivatives.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# Structural (anatomical) derivatives

## Reconstructed cortical surfaces

Reconstructed cortical surfaces should be stored as GIFTI files, and each
hemisphere should be stored separately.
Comment on lines +3 to +6
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we might want to generalize a little bit, as there isn't much leap from cortical surfaces to boundary-element-method (BEM) surfaces (see mri_make_bem_surfaces) like skull and skin that are not hemisphere-specific. The following text doesn't add those, but might pave the way.

Suggested change
## Reconstructed cortical surfaces
Reconstructed cortical surfaces should be stored as GIFTI files, and each
hemisphere should be stored separately.
## Reconstructed surfaces
A surface is defined by three-dimensional vertex coordinates, and a set of triangles,
or triplets of indices into the coordinate array.
Surfaces MUST be stored as [GIFTI] surface files, with one surface per file.
For structures with hemispheres, the `hemi-` entity SHOULD be used to distinguish the
surface files corresponding to each hemisphere.
For example, reconstructions of the cortical sheet are typically split into two disjoing
surfaces.


Template:

```Text
<pipeline_name>/
sub-<participant_label>/
anat/
<source_keywords>_hemi-{L|R}[_space-<surfspace>][_volspace-<volspace>][_desc-<label>]_<surftype>.surf.gii
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need space and volspace? The surface file itself defines a surface space, so I suspect the interesting space here is "what volume is it embedded in". Can we think of use cases for either of space or volspace?

I think we should also add the den-<label> entity. As a (probably wrong) proposal, this might obviate the need for surface space.

And looking ahead to BEM surfaces, the hemi- might be considered RECOMMENDED not REQUIRED.

Suggested change
<source_keywords>_hemi-{L|R}[_space-<surfspace>][_volspace-<volspace>][_desc-<label>]_<surftype>.surf.gii
<source_entities>[_hemi-{L|R}][_den-<label>][_desc-<label>]_<suffix>.surf.gii

Another approach could be to separate cortical surfaces from BEM surfaces, and keep hemi REQUIRED here.

```

Example:

```Text
pipeline/
sub-001/
anat/
sub-001_hemi-L_pial.surf.gii
sub-001_hemi-R_pial.surf.gii
```

The supported surface types (`<surftype>` suffix) are:

| `<surftype>` | Description |
| ------------ | -------------------------------------------------------------------- |
| wm | The gray matter / white matter border for the cortex |
| smoothwm | The smoothed gray matter / white matter border |
| pial | The gray matter / pial matter border |
| midthickness | The midpoints between wm and pial surfaces |
| inflated | An inflation of the midthickness surface (useful for visualization) |
| vinflated | A very-inflated midthicknesss surface (also for visualization) |
| sphere | The sphere (used for registration - see transforms for nomenclature) |
| flat | The flattened surface (used for visualization) |
Comment on lines +29 to +38
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to consider whether to add BEM here or in a separate section.


`space` filename keyword is restricted to
[Surface Coordinate Spaces](../99-appendices/08-coordinate-systems.md#Surface)
Copy link
Member

@rwblair rwblair Apr 21, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently there is no header for #Surface or #Volume to land on at ../99-appendices/08-coordinate-systems.md

and `volspace` corresponds to the 3D coordinate space described in
[Volume Coordinate Spaces](../99-appendices/08-coordinate-systems.md#Volume). In
contrast to other derivatives the sidecar metadata field `SpatialReference` (see
[Introduction](01-introduction.md#Common-file-level-metadata-fields)) is not
required for any space, but is recommended when `volspace` is set to
`individual`. In such case it should point to the volume defining the 3D
coordinate system with witch the surface mesh is aligned with.

## Surface-Mapped Anatomical Scalar Derivatives

Surface-mapped scalar overlays should be stored as either GIFTI or CIFTI files
(which allow for the combination of left and right hemispheres).

Template:

```Text
<pipeline_name>/
sub-<participant_label>/
anat/
<source_keywords>[_hemi-{L|R}][_space-<space>][_desc-<label>]_<suffix>.{shape.gii|dscalar.nii}
```

The REQUIRED extension for scalar GIFTI files is `.shape.gii`. The `hemi` key is
required for GIFTI files. For example:

```Text
pipeline/
sub-001/
anat/
sub-001_hemi-L_curv.shape.gii
sub-001_hemi-R_curv.shape.gii
```

The REQUIRED extension for scalar CIFTI files is `.dscalar.nii`. For example:

```Text
pipeline/
sub-001/
anat/
sub-001_curv.dscalar.nii
```

The file `<suffix>` MUST be one of the following values:

| `<suffix>` | Description |
| ------------ | ----------------------------------------------------- |
| `curv` | Cortical surface curvature indices |
| `thickness` | Cortical thickness |
| `area` | Discretized surface area across regions |
| `dist` | Distance from a point |
| `defects` | Marked regions with surface defects |
| `sulc` | Sulcal depth |
| `myelinmap` | Myelin map calculated from T1w to T2w ratio |
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we've discussed changing this to:

Suggested change
| `myelinmap` | Myelin map calculated from T1w to T2w ratio |
| `T1wT2wratio`| T1w to T2w ratio, a proxy for myelination |

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 on this, since map should be for quantitative outputs.

| `distortion` | Distortion map calculated from a surface registration |

## Morphometrics

Structural statistics produced by segmentation routines should be stored within
tsv files, which could contain common parameters specified in the table below.

Template:

```Text
<pipeline_name>/
sub-<participant_label>/
func|anat|dwi/
<source_keywords>[_desc-<label>]_morph.tsv

```

Example:

```Text
pipeline/
sub-001/
anat/
sub-001_desc-volumetric_morph.tsv
```

| Column name | Description |
| ----------- | ----------------------------------------------- |
| index | RECOMMENDED. Label integer index |
| name | RECOMMENDED. Structure name |
| centroid | OPTIONAL. Center coordinate of structure |
| volume | OPTIONAL. Volume of structure |
| intensity | OPTIONAL. Intensity of voxels within structure |
| thickness | OPTIONAL. Thickness of cortical structure |
| area | OPTIONAL. Surface area of cortical structure |
| curv | OPTIONAL. Curvature index of cortical structure |

Some parameters might require unit specification or have multiple associated
statistics (such as avg, std, min, max, range). The suggested syntax for such
columns is `<parameter>[-<stat>][-<units>]`. An example volumetric stats file
might look something like this:

```Text
index name volume-mm3 intensity-avg intensity-std
11 Brainstem 23415.9 80.11 3.40
32 Left-Hippocampus 5349.7 75.23 2.27
32 Right-Hippocampus 4112.1 76.98 4.01
```