# file(1) magic for the NIfTI file format # Type: NIfTI, Neuroimaging file format # URL: https://nifti.nimh.nih.gov/ # From: Yann Leprince , 2022 344 string n+1\0 NIfTI-1 neuroimaging data, !:mime image/x.nifti !:ext nii >0 use nifti1 344 string ni1\0 NIfTI-1 neuroimaging data header, !:mime image/x.nifti !:ext hdr >0 use nifti1 4 string n+2\0\r\n\032\n NIfTI-2 neuroimaging data, !:mime image/x.nifti !:ext nii >0 use nifti2 4 string ni2\0\r\n\032\n NIfTI-2 neuroimaging data header, !:mime image/x.nifti !:ext hdr >0 use nifti2 # Main subroutine for NIfTI-1 0 name nifti1 >0 clear x >0 lelong =348 little endian >>70 use nifti-datatype-le >>112 lefloat !0 with scaling >>0 use nifti1-dim-le >>252 leshort >0 \b, with qform >>>252 use xform-code-nifti1-le >>254 leshort >0 \b, with sform >>>254 use xform-code-nifti1-le >>136 string >\0 \b, description: %s >0 belong =348 big endian >>70 use \^nifti-datatype-le >>112 befloat !0 with scaling >>0 use \^nifti1-dim-le >>252 beshort >0 \b, with qform >>>252 use \^xform-code-nifti1-le >>254 beshort >0 \b, with sform >>>254 use \^xform-code-nifti1-le >>136 string >\0 \b, description: %s >0 default x >>0 long x invalid sizeof_hdr=%d # Main subroutine for NIfTI-2 0 name nifti2 >0 clear x >0 lelong =540 little endian >>12 use nifti-datatype-le >>176 lefloat !0 with scaling >>0 use nifti2-dim-le >>344 lelong >0 \b, with qform >>>344 use xform-code-nifti2-le >>348 lelong >0 \b, with sform >>>348 use xform-code-nifti2-le >>240 string >\0 \b, description: %s >0 belong =540 big endian >>12 use \^nifti-datatype-le >>176 befloat !0 with scaling >>0 use \^nifti2-dim-le >>344 lelong >0 \b, with qform >>>344 use \^xform-code-nifti2-le >>348 lelong >0 \b, with sform >>>348 use \^xform-code-nifti2-le >>240 string >\0 \b, description: %s >0 default x >>0 long x invalid sizeof_hdr=%d # Other subroutines for details of NIfTI files 0 name nifti-datatype-le >0 clear x >0 leshort =1 \b, binary datatype >0 leshort =2 \b, uint8 datatype >0 leshort =4 \b, int16 datatype >0 leshort =8 \b, int32 datatype >0 leshort =16 \b, float32 datatype >0 leshort =32 \b, complex64 datatype >0 leshort =64 \b, float64 datatype >0 leshort =128 \b, RGB24 datatype >0 leshort =256 \b, int8 datatype >0 leshort =512 \b, uint16 datatype >0 leshort =768 \b, uint32 datatype >0 leshort =1024 \b, int64 datatype >0 leshort =1280 \b, uint64 datatype >0 leshort =1536 \b, float128 datatype >0 leshort =1792 \b, complex128 datatype >0 leshort =2048 \b, complex256 datatype >0 leshort =2304 \b, RGBA32 datatype >0 default x >>0 leshort x \b, unknown datatype 0x%x >>2 leshort x (%d bits/pixel) 0 name nifti1-dim-le >0 clear x >40 leshort <0 \b, INVALID dim[0]=%d >40 leshort >7 \b, INVALID dim[0]=%d >0 default x >>40 leshort x \b, %d-dimensional (size >>42 leshort x %d >>40 leshort >1 >>>44 leshort x \bx%d >>40 leshort >2 >>>46 leshort x \bx%d >>40 leshort >3 >>>48 leshort x \bx%d >>40 leshort >4 >>>50 leshort x \bx%d >>40 leshort >5 >>>52 leshort x \bx%d >>40 leshort >6 >>>54 leshort x \bx%d >>80 lefloat x \b, voxel size %f >>40 leshort >1 >>>84 lefloat x x %f >>40 leshort >2 >>>88 lefloat x x %f >>123 use nifti1-xyz-unit >>40 leshort >3 >>>92 lefloat x x %f >>>123 use nifti1-t-unit >>40 leshort x \b) 0 name nifti2-dim-le >0 clear x >16 lequad <0 \b, INVALID dim[0]=%lld >16 lequad >7 \b, INVALID dim[0]=%lld >0 default x >>16 lequad x \b, %lld-dimensional (size >>24 lequad x %lld >>16 lequad >1 >>>32 lequad x \bx%lld >>16 lequad >2 >>>40 lequad x \bx%lld >>16 lequad >3 >>>48 lequad x \bx%lld >>16 lequad >4 >>>56 lequad x \bx%lld >>16 lequad >5 >>>64 lequad x \bx%lld >>16 lequad >6 >>>72 lequad x \bx%lld, >>112 ledouble x \b, voxel size %f >>16 lequad >1 >>>120 ledouble x x %f >>16 lequad >2 >>>128 ledouble x x %f >>500 use nifti2-xyz-unit >>16 lequad >3 >>>136 ledouble x x %f >>>500 use nifti2-t-unit >>16 lequad x \b) 0 name xform-code-nifti1-le >0 leshort =1 to scanner-based coordinates >0 leshort =2 to aligned coordinates >0 leshort =3 to Talairach coordinates >0 leshort =4 to MNI152 coordinates >0 leshort =5 to template coordinates 0 name xform-code-nifti2-le >0 lelong =1 to scanner-based coordinates >0 lelong =2 to aligned coordinates >0 lelong =3 to Talairach coordinates >0 lelong =4 to MNI152 coordinates >0 lelong =5 to template coordinates 0 name nifti1-xyz-unit >0 byte &0x01 >>0 byte ^0x02 m >>0 byte &0x02 micron >0 byte ^0x01 >>0 byte &0x02 mm 0 name nifti1-t-unit >0 byte &0x08 >>0 byte ^0x10 s >>0 byte &0x10 ms >0 byte ^0x08 >>0 byte &0x10 microsecond 0 name nifti2-xyz-unit >0 lelong &0x01 >>0 lelong ^0x02 m >>0 lelong &0x02 micron >0 lelong ^0x01 >>0 lelong &0x02 mm 0 name nifti2-t-unit >0 lelong &0x08 >>0 lelong ^0x10 s >>0 lelong &0x10 ms >0 lelong ^0x08 >>0 lelong &0x10 microsecond