Intracortical microstructure profiling: A cross-modal method for indexing cortical lamination.
The 8 matches · 2 of them tie a paragraph to a whole file, not to given lines: weak matches, whose lines are not tinted
- [1] § The Intracortical Microstructure Profiling Workflow ↔ microstructure_profiling.sh, lines 198–264 · score 0.79 · co registered, equivolumetric surfaces, surface space, micro image, intracortical surfaces, microstructure profile
- [2] § The Intracortical Microstructure Profiling Workflow ↔ functions/generate_equivolumetric_surfaces.py, lines 94–108 · score 0.69 · volume fraction, cortical volume, equivolumetric surface, vertex
- [3] § The Intracortical Microstructure Profiling Workflow ↔ functions/compute_t1t2_ratio.sh, the whole file · a weak match · score 0.67 · ratio image, bias corrected, T2w image, micapipe, T1w, MRI
- [4] § The Intracortical Microstructure Profiling Workflow ↔ functions/compute_t1t2_ratio_predefined.sh, the whole file · a weak match · score 0.66 · ratio image, bias corrected, T2w image, micapipe, T1w, MRI
- [5] § The Intracortical Microstructure Profiling Workflow ↔ microstructure_profiling.sh, lines 198–264 · score 0.64 · generating equivolumetric, surface space, intracortical surfaces, microstructure profiles, FreeSurfer
- [6] § The Intracortical Microstructure Profiling Workflow ↔ functions/collate_MP.py, lines 60–92 · score 0.62 · cortical depths, u3, kurtosis, skewness, u4, u0
- [7] § The Intracortical Microstructure Profiling Workflow ↔ functions/collate_MP.py, lines 60–92 · score 0.53 · image intensities, cortical depths, SD, profile, microstructural
- [8] § The Intracortical Microstructure Profiling Workflow ↔ functions/compute_snr.sh, lines 1–39 · score 0.52 · T1 weighted imaging, micro image, computation, SPACE
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
Shell · 403 lines · 18 KB · MIT · 2 matches
- #!/bin/bash
- # Auto-detect location of the toolbox bin directory
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- TOOLBOX_BIN="${SCRIPT_DIR}/functions"
- export TOOLBOX_BIN
- # -----------------------------
- # Microstructure Profiling Toolbox Wrapper
- # -----------------------------
- show_help() {
- echo "Usage: $0 [--micro-image FILE] [--anat-dir DIR] --subject-id ID --subjects-dir DIR --output-dir DIR --fs-dir DIR --sing-dir DIR [--num_surfaces 14]"
- echo
- echo "Arguments:"
- echo " --micro-image FILE Path to a precomputed microstructural image (optional)"
- echo " --anat-dir DIR Path to a BIDS anat/ directory (optional, necessary for creation of T1wDividedByT2w image and cortical surface construction)"
- echo " --subject-id ID Subject ID (e.g., sub-001) [required]"
- echo " --subjects-dir DIR Path to Freesurfer-style SUBJECTS_DIR [required] (if the directory doesn't contain surfaces for the specified subject, Fastsurfer will be run)"
- echo " --output-dir DIR Output directory for toolbox results [required]"
- echo " --fs-dir DIR Path to the FreeSurfer directory [required] (should contain standard license file, 'license.txt')"
- echo " --sing-dir DIR Path to the directory with singularities [required] (must contain cortpro.sif and, if Freesurfer output is not yet available, fastsurfer_gpu.sif)"
- echo " --num-surfaces N Number of intracortical surfaces (default: 14)"
- echo " --surface-output NAME Name of standard surface for output, currently compatible with any fsaverage number (default: fsaverage5), native or fsLR32k"
- echo " --ratio-type NAME Type of image for ratio with T1w (default: T2w). In principle, accepts any BIDS suffix that is housed in anat"
- echo " --t1-file PATH Custom T1w (must be paired with --t2-file)"
- echo " --t2-file PATH Custom T2w (must be paired with --t1-file)"
- echo " --skip-bias-correct Option to turn off bias correction on T1w and T2w images"
- echo " --keep-inter-files Option to keep all intermediary files, which are otherwise removed in a final clean up"
- echo " --run-snr Option to compute SNR profiles"
- echo " -h, --help Display this help message"
- }
- # -----------------------------
- # Parse Arguments
- # -----------------------------
- MICRO_IMAGE=""
- ANAT_DIR=""
- SUBJECT_ID=""
- SUBJECTS_DIR=""
- OUTPUT_DIR=""
- FREESURFER_HOME=""
- SING_DIR=""
- NUM_SURFACES=14 # default
- SURF_OUT=fsaverage5 # default
- RATIO_TYPE=T2w # default
- T1_FILE=""
- T2_FILE=""
- SKIP_BC=0
- CLEAN_UP=1
- RUN_SNR=0
- RESLICE_MICRO=0
- REGISTER_T1=0
- while [[ $# -gt 0 ]]; do
- case "$1" in
- --micro-image)
- MICRO_IMAGE="$2"
- shift 2
- ;;
- --anat-dir)
- ANAT_DIR="$2"
- shift 2
- ;;
- --subject-id)
- SUBJECT_ID="$2"
- shift 2
- ;;
- --subjects-dir)
- SUBJECTS_DIR="$2"
- shift 2
- ;;
- --output-dir)
- OUTPUT_DIR="$2"
- shift 2
- ;;
- --fs-dir)
- FREESURFER_HOME="$2"
- shift 2
- ;;
- --sing-dir)
- SING_DIR="$2"
- shift 2
- ;;
- --num-surfaces)
- NUM_SURFACES="$2"
- shift 2
- ;;
- --surface-output)
- SURF_OUT="$2"
- shift 2
- ;;
- --ratio-type)
- RATIO_TYPE="$2"
- shift 2
- ;;
- --t1-file)
- T1_FILE="$2"
- shift 2
- ;;
- --t2-file)
- T2_FILE="$2"
- shift 2
- ;;
- --skip-bias-correct)
- SKIP_BC=1
- shift
- ;;
- --keep-inter-files)
- CLEAN_UP=0
- shift
- ;;
- --run-snr)
- RUN_SNR=1
- shift
- ;;
- -h|--help)
- show_help
- exit 0
- ;;
- *)
- echo "[ERROR] Unknown option: $1"
- show_help
- exit 1
- ;;
- esac
- done
- # -----------------------------
- # Validate Required Inputs
- # -----------------------------
- if [[ -z "$SUBJECT_ID" || -z "$SUBJECTS_DIR" || -z "$OUTPUT_DIR" || -z "$FREESURFER_HOME" || -z "$SING_DIR" ]]; then
- echo "[ERROR] --subject-id, --subjects-dir, --output-dir, --fs-dir and --sing-dir are all required."
- exit 1
- fi
- export FREESURFER_HOME
- export SUBJECTS_DIR
- export SING_DIR
- if ! command -v singularity &> /dev/null; then
- echo "[ERROR] Singularity not found - unable to continue"
- exit 1
- fi
- SING_IMG="$SING_DIR/cortpro.sif"
- if [[ ! -f $SING_IMG ]]; then
- echo "[ERROR] cortpro.sif not found at: $SING_DIR"
- exit 1
- fi
- # Validate NUM_SURFACES is a positive integer
- if ! [[ "$NUM_SURFACES" =~ ^[0-9]+$ ]]; then
- echo "[ERROR] --num-surfaces must be a positive integer."
- exit 1
- fi
- # Create output directory if needed
- mkdir -p "$OUTPUT_DIR"/"$SUBJECT_ID" || {
- echo "[ERROR] Failed to create output directory: "$OUTPUT_DIR"/"$SUBJECT_ID""
- exit 1
- }
- # -----------------------------
- # Compile microstructure image - creates new file with standardised naming for micro image in its native space (Nb: T1-space for T1w/T2w)
- # -----------------------------
- if [[ -n "$MICRO_IMAGE" ]]; then
- # pre-made micro image case
- echo "[INFO] Using precomputed microstructure image: $MICRO_IMAGE"
- cp ${MICRO_IMAGE} $OUTPUT_DIR/$SUBJECT_ID/"$SUBJECT_ID"_space-native_desc-micro.nii.gz
- elif [[ -n "$T1_FILE" || -n "$T2_FILE" ]]; then
- # predefined T1/T2 case
- if [[ -z "$T1_FILE" || -z "$T2_FILE" ]]; then
- echo "[ERROR] --t1-file and --t2-file must be provided together."
- exit 1
- fi
- if [[ ! -f "$T1_FILE" || ! -f "$T2_FILE" ]]; then
- echo "[ERROR] Provided T1 or T2 file does not exist."
- exit 1
- fi
- bash "$TOOLBOX_BIN/compute_t1t2_ratio_predefined.sh" \
- "$T1_FILE" "$T2_FILE" "$SUBJECT_ID" "$OUTPUT_DIR" "$SKIP_BC"
- cp "$OUTPUT_DIR"/"$SUBJECT_ID"/T1wDividedByT2w.nii.gz $OUTPUT_DIR/$SUBJECT_ID/"$SUBJECT_ID"_space-native_desc-micro.nii.gz
- REGISTER_T1=1
- else
- # BIDS-derived case
- if [[ -z "$ANAT_DIR" ]]; then
- echo "[ERROR] No --anat-dir provided to compute T1/T2 ratio."
- exit 1
- fi
- bash "$TOOLBOX_BIN/compute_t1t2_ratio.sh" \
- "$ANAT_DIR" "$SUBJECT_ID" "$OUTPUT_DIR" "$RATIO_TYPE" "$SKIP_BC"
- cp "$OUTPUT_DIR"/"$SUBJECT_ID"/T1wDividedBy${RATIO_TYPE}.nii.gz $OUTPUT_DIR/$SUBJECT_ID/"$SUBJECT_ID"_space-native_desc-micro.nii.gz
- REGISTER_T1=1
- fi
- # -----------------------------
- # Check for Freesurfer output and/or run Fastsurfer
- # -----------------------------
- if [[ ! -f "$SUBJECTS_DIR"/"$SUBJECT_ID"/surf/lh.pial ]]; then
- echo "[WARNING] Freesurfer data not found at "$SUBJECTS_DIR"/"$SUBJECT_ID". Will try to run Fastsurfer"
- if [[ -z "$ANAT_DIR" ]]; then
- echo "[ERROR] Freesurfer output missing, and no --anat-dir provided to run Fastsurfer on."
- exit 1
- fi
- bash "$TOOLBOX_BIN/run_fastsurfer.sh" "$ANAT_DIR" "$SUBJECT_ID" "$SUBJECTS_DIR" "$OUTPUT_DIR"
- if [[ ! -n "$MICRO_IMAGE" ]]; then
- RESLICE_MICRO=1 # Defines whether reslicing of affine registration will be used for co-registration of micro-image. Dependent on surface generation from T1 in micro-image.
- fi
- else
- echo "[INFO] Found Freesurfer directory: "$SUBJECTS_DIR"/"$SUBJECT_ID""
- fi
- # -----------------------------
- # Generate intracortical surfaces
- # -----------------------------
- echo "[INFO] Creating intracortical surfaces"
- total_surfaces=$((NUM_SURFACES + 2))
- for hemi in lh rh ; do
- python3 ${TOOLBOX_BIN}/generate_equivolumetric_surfaces.py \
- ${SUBJECTS_DIR}/${SUBJECT_ID}/surf/${hemi}.pial \
- ${SUBJECTS_DIR}/${SUBJECT_ID}/surf/${hemi}.white \
- $total_surfaces \
- ${OUTPUT_DIR}/${SUBJECT_ID}/${hemi}. \
- /tmp/ \
- --software freesurfer --subject_id $SUBJECT_ID
- done
- rm -rfv ${OUTPUT_DIR}/${SUBJECT_ID}/*.0.0.pial ${OUTPUT_DIR}/${SUBJECT_ID}/*.1.0.pial # removing pial and wm surfaces
- # -----------------------------
- # Co-register microstructure image
- # -----------------------------
- if [[ "$RESLICE_MICRO" == 1 ]]; then
- echo "[INFO] Reslicing micro-image to surface space"
- mri_vol2vol --mov $OUTPUT_DIR/$SUBJECT_ID/"$SUBJECT_ID"_space-native_desc-micro.nii.gz \
- --targ ${SUBJECTS_DIR}/${SUBJECT_ID}/mri/rawavg.mgz \
- --regheader \
- --o "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_space-fsnative_desc-micro.nii.gz \
- --no-save-reg
- else
- if [[ "$REGISTER_T1" == 1 ]]; then
- echo "[INFO] Performing affine registration of T1 to surface space"
- # define image to use as template for transformation (micro volume to surface space)
- if [[ "$SKIP_BC" == 1 ]]; then
- cp $OUTPUT_DIR/$SUBJECT_ID/T1w.nii.gz $OUTPUT_DIR/$SUBJECT_ID/"$SUBJECT_ID"_space-native_desc-template.nii.gz
- else
- cp $OUTPUT_DIR/$SUBJECT_ID/T1w_BC.nii.gz $OUTPUT_DIR/$SUBJECT_ID/"$SUBJECT_ID"_space-native_desc-template.nii.gz
- fi
- else
- echo "[INFO] Performing affine registration of micro-image to surface space"
- cp ${MICRO_IMAGE} $OUTPUT_DIR/$SUBJECT_ID/"$SUBJECT_ID"_space-native_desc-template.nii.gz
- cp ${MICRO_IMAGE} $OUTPUT_DIR/$SUBJECT_ID/"$SUBJECT_ID"_space-native_desc-micro.nii.gz
- fi
- if [[ ! -f "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_space-fsnative_desc-micro.nii.gz ]] ; then
- singularity exec -B $SUBJECTS_DIR/:/subjects_dir \
- -B $OUTPUT_DIR/:/out_dir \
- -B $TOOLBOX_BIN/:/toolbox_bin \
- -B $FREESURFER_HOME/:/freesurfer \
- "${SING_IMG}" \
- /toolbox_bin/coregister_micro.sh "$SUBJECT_ID"
- fi
- fi
- # -----------------------------
- # Compute SNR of microstructure image
- # -----------------------------
- if [[ "$RUN_SNR" == 1 ]]; then
- echo "[INFO] Computing SNR along profiles"
- singularity exec -B $SUBJECTS_DIR/:/subjects_dir \
- -B $OUTPUT_DIR/:/out_dir \
- -B $TOOLBOX_BIN/:/toolbox_bin \
- "${SING_IMG}" \
- /toolbox_bin/compute_snr.sh "$SUBJECT_ID" 9
- fi
- # -----------------------------
- # Sample microstructure profiles
- # -----------------------------
- # create symbolic link to fsaverage
- if [[ "$SURF_OUT" == *"fsaverage"* ]] ; then
- ln -s $FREESURFER_HOME/subjects/$SURF_OUT $SUBJECTS_DIR
- fi
- if [[ "$SURF_OUT" == "fsLR32k" ]] ; then
- ln -s $FREESURFER_HOME/subjects/fsaverage $SUBJECTS_DIR
- fi
- for hemi in lh rh ; do
- [[ $hemi == lh ]] && HEMI=L || HEMI=R
- # find all intracortical surfaces, list by creation time, sample intensities and convert to fsaverage
- x=$(ls -t ${OUTPUT_DIR}/${SUBJECT_ID}/${hemi}.0.*)
- for n in $(seq 1 1 ${NUM_SURFACES}) ; do
- which_surf=$(sed -n "${n}p" <<< "$x")
- filename=${which_surf##*/}
- if [[ ! -f ${SUBJECTS_DIR}/${SUBJECT_ID}/surf/$filename ]] ; then
- cp $which_surf ${SUBJECTS_DIR}/${SUBJECT_ID}/surf/$filename
- fi
- shortname=${filename#*.}
- # sample microstructure along intracortical surface
- mri_vol2surf --mov "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_space-fsnative_desc-micro.nii.gz \
- --regheader ${SUBJECT_ID} \
- --hemi ${hemi} \
- --surf $shortname \
- --o "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-fsnative_MP-${n}.mgh \
- --interp trilinear
- # transform to desired output space
- if [[ "$SURF_OUT" == *"fsaverage"* ]] ; then
- # transform to fsaverage
- mri_surf2surf --hemi ${hemi} \
- --srcsubject $SUBJECT_ID --srcsurfval "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-fsnative_MP-${n}.mgh \
- --trgsubject $SURF_OUT --trgsurfval "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-${SURF_OUT}_MP-${n}.mgh
- fi
- if [[ "$SURF_OUT" == "fsLR32k" ]] ; then
- # transform to fsaverage
- mri_surf2surf --hemi ${hemi} \
- --srcsubject $SUBJECT_ID --srcsurfval "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-fsnative_MP-${n}.mgh \
- --trgsubject fsaverage --trgsurfval "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-fsaverage_MP-${n}.shape.gii
- # transform to fsLR32k using wb_command
- singularity exec -B $OUTPUT_DIR:/out_dir \
- -B $SCRIPT_DIR/templates:/templates \
- "${SING_IMG}" \
- wb_command -metric-resample \
- /out_dir/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-fsaverage_MP-${n}.shape.gii \
- /templates/fsaverage_std_sphere.${HEMI}.164k_fsavg_${HEMI}.surf.gii \
- /templates/fs_LR-deformed_to-fsaverage.${HEMI}.sphere.32k_fs_LR.surf.gii \
- ADAP_BARY_AREA \
- /out_dir/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-fsLR32k_MP-${n}.shape.gii \
- -area-metrics \
- /templates/fsaverage.${HEMI}.midthickness_va_avg.164k_fsavg_${HEMI}.shape.gii \
- /templates/fs_LR.${HEMI}.midthickness_va_avg.32k_fs_LR.shape.gii
- fi
- if [[ "$RUN_SNR" == 1 ]]; then
- # sample SNR along intracortical surface
- mri_vol2surf --mov "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_space-fsnative_desc-micro_SNR.nii.gz \
- --regheader ${SUBJECT_ID} \
- --hemi ${hemi} \
- --surf $shortname \
- --o "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-fsnative_SNR-${n}.mgh \
- --interp trilinear
- if [[ "$SURF_OUT" == *"fsaverage"* ]] ; then
- # transform to fsaverage
- mri_surf2surf --hemi ${hemi} \
- --srcsubject $SUBJECT_ID --srcsurfval "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-fsnative_SNR-${n}.mgh \
- --trgsubject $SURF_OUT --trgsurfval "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-${SURF_OUT}_SNR-${n}.mgh
- fi
- if [[ "$SURF_OUT" == "fsLR32k" ]] ; then
- # transform to fsaverage
- mri_surf2surf --hemi ${hemi} \
- --srcsubject $SUBJECT_ID --srcsurfval "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-fsnative_SNR-${n}.mgh \
- --trgsubject fsaverage --trgsurfval "$OUTPUT_DIR"/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-fsaverage_SNR-${n}.mgh
- # transform to fsLR32k using wb_command
- singularity exec -B $OUTPUT_DIR:/out_dir \
- -B $SCRIPT_DIR/templates:/templates \
- "${SING_IMG}" \
- wb_command -metric-resample \
- /out_dir/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-fsaverage_SNR-${n}.shape.gii \
- /templates/fsaverage_std_sphere.${HEMI}.164k_fsavg_${HEMI}.surf.gii \
- /templates/fs_LR-deformed_to-fsaverage.${HEMI}.sphere.32k_fs_LR.surf.gii \
- ADAP_BARY_AREA \
- /out_dir/"$SUBJECT_ID"/"$SUBJECT_ID"_hemi-${HEMI}_surf-fsLR32k_SNW-${n}.shape.gii \
- -area-metrics \
- /templates/fsaverage.${HEMI}.midthickness_va_avg.164k_fsavg_${HEMI}.shape.gii \
- /templates/fs_LR.${HEMI}.midthickness_va_avg.32k_fs_LR.shape.gii
- fi
- fi
- done
- ((Nsteps++))
- done
- ##------------------------------------------------------------------------------#
- # Generate MPs for easy reading
- echo "[INFO] Collating microstructure profiles and computing moments for shape analysis"
- singularity exec -B $OUTPUT_DIR/:/out_dir \
- -B $TOOLBOX_BIN/:/toolbox_bin \
- "${SING_IMG}" \
- python3 /toolbox_bin/collate_MP.py --output_dir /out_dir/ --subject_id "$SUBJECT_ID" --num_surfaces "$NUM_SURFACES" --surface_output "$SURF_OUT"
- if [[ "$RUN_SNR" == 1 ]]; then
- singularity exec -B $OUTPUT_DIR/:/out_dir \
- -B $TOOLBOX_BIN/:/toolbox_bin \
- "${SING_IMG}" \
- python3 /toolbox_bin/collate_SNR.py --output_dir /out_dir/ --subject_id "$SUBJECT_ID" --num_surfaces "$NUM_SURFACES" --surface_output "$SURF_OUT"
- fi
- ##------------------------------------------------------------------------------#
- # Clean up tmp folder and drop datalad files
- if [[ "$CLEAN_UP" == 1 ]]; then
- rm -rf "$OUTPUT_DIR"/"$SUBJECT_ID"/*.mgh
- rm -rf "$OUTPUT_DIR"/"$SUBJECT_ID"/*.pial
- rm -rf "$OUTPUT_DIR"/"$SUBJECT_ID"/*synthseg*
- rm -rf "$OUTPUT_DIR"/"$SUBJECT_ID"/*Warped*
- rm -rf "$OUTPUT_DIR"/"$SUBJECT_ID"/*.mat
- rm -rf "$OUTPUT_DIR"/"$SUBJECT_ID"/*tmp*.nii.gz
- fi
- echo "[INFO] Toolbox completed for subject $SUBJECT_ID."
microstructure_profiling.sh at commit 38d4148, under MIT · at the source
Overview
- Institute for Neuroscience and Medicine (INM-7), Forschungszentrum Juelich, Juelich, Germany
- Institute for Systems Neuroscience, Heinrich Heine Universität Dusseldorf, Dusseldorf, Germany
- McConnell Brain Imaging Centre (BIC) and Centre for Excellence in Epilepsy at the Neuro (CEEN), Montreal Neurological Institute, McGill University, Montreal, Canada
- Max Planck Institute for Human Cognitive and Brain Sciences, Leipzig, Germany
Abstract
Intracortical microstructure profiling represents a powerful, scalable approach for investigating the laminar organisation of the human cortex on both in-vivo and post-mortem datasets. Building upon a long tradition of histological analysis, this method leverages surface-based intracortical sampling to generate profiles of tissue properties across cortical depths. The present work outlines a standardised workflow for intracortical microstructural profiling, newly packaged as the open-source toolbox “CortPro” (https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above, with 8 matches between paragraphs and lines of code.
caseypaquola/CortPro
38d4148ec04bc4fab48cdf9fc1e3ec86324e0b66, 6 August 2026Availability: 1 check, the latest on 29 September 2026: the link answers
- 29 September 2026: the link answers
20 files
- docs/
bigbrainwarplexer.py , Python, 68 lines - docs/
conf.py , Python, 103 lines - docs/
micapipelexer.py , Python, 71 lines - docs/
source/ , Jupyter, 1 line.ipynb_checkpoints/ Untitled-checkpoint.ipyn b - functions/
anatomical_average.sh , Shell, 74 lines - functions/
collate_MP.py , Python, 109 lines, 2 matches - functions/
collate_SNR.py , Python, 59 lines - functions/
compute_snr.sh , Shell, 95 lines, 1 match - functions/
compute_t1t2_ratio.sh , Shell, 58 lines, 1 match - functions/
compute_t1t2_ratio_prede , Shell, 59 lines, 1 matchfined.sh - functions/
coregister_micro.sh , Shell, 39 lines - functions/
evaluate_moment_correlat , Python, 130 linesions.py - functions/
generate_equivolumetric_ , Python, 128 lines, 1 matchsurfaces.py - functions/
io_mesh.py , Python, 430 lines - functions/
qc_registration.sh , Shell, 39 lines - functions/
run_fastsurfer.sh , Shell, 74 lines - functions/
transform_fsaverage_to_f , Python, 57 linesslr.py - microstructure_profiling
.sh , Shell, 403 lines, 2 matches - LICENSE, License, 21 lines
- README.md, Text, 105 lines
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 18 scripts, each with its path and the digest of its content;
- 8 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
No dataset and no data link were found in the paper.
Data and Code Availability
Raw data for our analyses are available via the following open datasets:
Lüsebrink: https://
Shams: https://
MICA-MICs: https://
MICA-PNI: https://
ABCD: https://
Preprocessed microstructure profiles are additionally available on the Microstructure Marketplace (https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 29 September 2026: the first record
Recorded: type, language, journal, volume, pages, dates, 8 authors, 6 keywords, 9 funders, 59 references.
Cite
This paper
Paquola, C., Royer, J., Tsigaras, T., Cabalo, D. G., Hwang, Y., Hoffstaedter, F., Eickhoff, S. B., & Bernhardt, B. C. (2026). Intracortical microstructure profiling: A cross-modal method for indexing cortical lamination. Imaging neuroscience (Cambridge, Mass.), 4, IMAG.a.1212. https://
BibTeX
@article{paquola2026intr
author = {Paquola, Casey and Royer, Jessica and Tsigaras, Thanos and Cabalo, Donna Gift and Hwang, Youngeun and Hoffstaedter, Felix and Eickhoff, Simon B and Bernhardt, Boris C},
title = {{Intracortical microstructure profiling: A cross-modal method for indexing cortical lamination}},
journal = {Imaging neuroscience (Cambridge, Mass.)},
year = {2026},
month = apr,
volume = {4},
pages = {IMAG.a.1212},
publisher = {MIT Press},
issn = {2837-6056},
doi = {10.1162/
url = {https://
pmid = {42027740},
pmcid = {PMC13100671}
}
RIS
TY - JOUR
AU - Paquola, Casey
AU - Royer, Jessica
AU - Tsigaras, Thanos
AU - Cabalo, Donna Gift
AU - Hwang, Youngeun
AU - Hoffstaedter, Felix
AU - Eickhoff, Simon B
AU - Bernhardt, Boris C
TI - Intracortical microstructure profiling: A cross-modal method for indexing cortical lamination
T2 - Imaging neuroscience (Cambridge, Mass.)
J2 - Imaging Neurosci (Camb)
PY - 2026
DA - 2026/
VL - 4
SP - IMAG.a.1212
SN - 2837-6056
PB - MIT Press
DO - 10.1162/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1162/
"type": "article-journal",
"title": "Intracortical microstructure profiling: A cross-modal method for indexing cortical lamination",
"container-title": "Imaging neuroscience (Cambridge, Mass.)",
"author": [
{
"family": "Paquola",
"given": "Casey"
},
{
"family": "Royer",
"given": "Jessica"
},
{
"family": "Tsigaras",
"given": "Thanos"
},
{
"family": "Cabalo",
"given": "Donna Gift"
},
{
"family": "Hwang",
"given": "Youngeun"
},
{
"family": "Hoffstaedter",
"given": "Felix"
},
{
"family": "Eickhoff",
"given": "Simon B"
},
{
"family": "Bernhardt",
"given": "Boris C"
}
],
"container-title-short":
"volume": "4",
"page": "IMAG.a.1212",
"DOI": "10.1162/
"PMID": "42027740",
"PMCID": "PMC13100671",
"ISSN": "2837-6056",
"publisher": "MIT Press",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
21
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1162/imag.a.1279 [code]
- Multimodal laminar characterization of visual areas along the cortical hierarchy.Journal: Imaging neuroscience (Cambridge, Mass.)In common: ANTs, FSL, NiBabel, 3 other tools, histology / microscopy, 7 references
- [2] doi:10.1038/s41467-026-76812-w [code]
- Assessing molecular, cellular and transcriptomic bases of laminar perfusion and cytoarchitecture coupling in the human cortex.Journal: Nature communicationsIn common: neuromaps, ANTs, FreeSurfer, 4 other tools, structural MRI / diffusion, 6 references
- [3] doi:10.1371/journal.pbio.3003856 [code]
- Aging and metabolism contribute separately to brain-body health.Journal: PLoS biologyIn common: neuromaps, Connectome Workbench, ANTs, 6 other tools, structural MRI / diffusion, 3 references
- [4] doi:10.1038/s41467-026-72940-5 [code]
- Cerebellar growth is associated with domain-specific cerebral maturation and socio-linguistic behavior.Journal: Nature communicationsIn common: neuromaps, Connectome Workbench, FSL, 4 other tools, author Casey Paquola
- [5] doi:10.1038/s42003-026-10276-y [code]
- The cellular correlates and adolescent reorganisation of cortical myelination networks in the common marmoset.Journal: Communications biologyIn common: FreeSurfer, NiBabel, pandas, 2 other tools, structural MRI / diffusion, 6 references
- [6] doi:10.1038/s41398-026-04025-2 [code]
- Brain energetic landscapes shape state dysregulation in major depressive disorder: a morphological network controllability perspective.Journal: Translational psychiatryIn common: neuromaps, Connectome Workbench, ANTs, 6 other tools, 1 reference
- [7] doi:10.21203/rs.3.rs-9326213/v1 [code]
- Multi-task fMRI outperforms resting-state fMRI for revealing task-invariant organization of the human brainJournal: Research Square (preprint)In common: neuromaps, Connectome Workbench, ANTs, 6 other tools, 1 reference
- [8] doi:10.1016/j.neuron.2026.04.011 [code]
- Precision fMRI reveals densely interdigitated network patches with conserved motifs in the lateral prefrontal cortex.Journal: NeuronIn common: Connectome Workbench, ANTs, FreeSurfer, 4 other tools, 3 references
- [9] doi:10.1038/s41467-026-71270-w [code]
- Spatiotemporal dynamics of the human cortical functional hierarchy across the lifespan.Journal: Nature communicationsIn common: Connectome Workbench, FreeSurfer, FSL, 4 other tools, 3 references
- [10] doi:10.7554/elife.108408 [code]
- Frequency and laminar profile of feature-specific visual activity revealed by interleaved EEG-fMRI.Journal: eLifeIn common: Connectome Workbench, ANTs, FreeSurfer, 5 other tools, 2 references
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 1 repository of the authors' code, each at its verified commit and with its license, 18 scripts, and 8 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:2cce04791dadb9b3…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
