1*a4d6d3b8SXin LI 2*a4d6d3b8SXin LI#------------------------------------------------------------------------------ 3*a4d6d3b8SXin LI# $File: nifty,v 1.1 2022/02/14 16:51:15 christos Exp $ 4*a4d6d3b8SXin LI# file(1) magic for the NIfTI file format 5*a4d6d3b8SXin LI 6*a4d6d3b8SXin LI# Type: NIfTI, Neuroimaging file format 7*a4d6d3b8SXin LI# URL: https://nifti.nimh.nih.gov/ 8*a4d6d3b8SXin LI# From: Yann Leprince <yann.leprince@cea.fr>, 2022 9*a4d6d3b8SXin LI 10*a4d6d3b8SXin LI344 string n+1\0 NIfTI-1 neuroimaging data, 11*a4d6d3b8SXin LI!:mime image/x.nifti 12*a4d6d3b8SXin LI!:ext nii 13*a4d6d3b8SXin LI>0 use nifti1 14*a4d6d3b8SXin LI344 string ni1\0 NIfTI-1 neuroimaging data header, 15*a4d6d3b8SXin LI!:mime image/x.nifti 16*a4d6d3b8SXin LI!:ext hdr 17*a4d6d3b8SXin LI>0 use nifti1 18*a4d6d3b8SXin LI 19*a4d6d3b8SXin LI4 string n+2\0\r\n\032\n NIfTI-2 neuroimaging data, 20*a4d6d3b8SXin LI!:mime image/x.nifti 21*a4d6d3b8SXin LI!:ext nii 22*a4d6d3b8SXin LI>0 use nifti2 23*a4d6d3b8SXin LI4 string ni2\0\r\n\032\n NIfTI-2 neuroimaging data header, 24*a4d6d3b8SXin LI!:mime image/x.nifti 25*a4d6d3b8SXin LI!:ext hdr 26*a4d6d3b8SXin LI>0 use nifti2 27*a4d6d3b8SXin LI 28*a4d6d3b8SXin LI# Main subroutine for NIfTI-1 29*a4d6d3b8SXin LI0 name nifti1 30*a4d6d3b8SXin LI>0 clear x 31*a4d6d3b8SXin LI>0 lelong =348 little endian 32*a4d6d3b8SXin LI>>70 use nifti-datatype-le 33*a4d6d3b8SXin LI>>112 lefloat !0 with scaling 34*a4d6d3b8SXin LI>>0 use nifti1-dim-le 35*a4d6d3b8SXin LI>>252 leshort >0 \b, with qform 36*a4d6d3b8SXin LI>>>252 use xform-code-nifti1-le 37*a4d6d3b8SXin LI>>254 leshort >0 \b, with sform 38*a4d6d3b8SXin LI>>>254 use xform-code-nifti1-le 39*a4d6d3b8SXin LI>>136 string >\0 \b, description: %s 40*a4d6d3b8SXin LI>0 belong =348 big endian 41*a4d6d3b8SXin LI>>70 use \^nifti-datatype-le 42*a4d6d3b8SXin LI>>112 befloat !0 with scaling 43*a4d6d3b8SXin LI>>0 use \^nifti1-dim-le 44*a4d6d3b8SXin LI>>252 beshort >0 \b, with qform 45*a4d6d3b8SXin LI>>>252 use \^xform-code-nifti1-le 46*a4d6d3b8SXin LI>>254 beshort >0 \b, with sform 47*a4d6d3b8SXin LI>>>254 use \^xform-code-nifti1-le 48*a4d6d3b8SXin LI>>136 string >\0 \b, description: %s 49*a4d6d3b8SXin LI>0 default x 50*a4d6d3b8SXin LI>>0 long x invalid sizeof_hdr=%d 51*a4d6d3b8SXin LI 52*a4d6d3b8SXin LI# Main subroutine for NIfTI-2 53*a4d6d3b8SXin LI0 name nifti2 54*a4d6d3b8SXin LI>0 clear x 55*a4d6d3b8SXin LI>0 lelong =540 little endian 56*a4d6d3b8SXin LI>>12 use nifti-datatype-le 57*a4d6d3b8SXin LI>>176 lefloat !0 with scaling 58*a4d6d3b8SXin LI>>0 use nifti2-dim-le 59*a4d6d3b8SXin LI>>344 lelong >0 \b, with qform 60*a4d6d3b8SXin LI>>>344 use xform-code-nifti2-le 61*a4d6d3b8SXin LI>>348 lelong >0 \b, with sform 62*a4d6d3b8SXin LI>>>348 use xform-code-nifti2-le 63*a4d6d3b8SXin LI>>240 string >\0 \b, description: %s 64*a4d6d3b8SXin LI>0 belong =540 big endian 65*a4d6d3b8SXin LI>>12 use \^nifti-datatype-le 66*a4d6d3b8SXin LI>>176 befloat !0 with scaling 67*a4d6d3b8SXin LI>>0 use \^nifti2-dim-le 68*a4d6d3b8SXin LI>>344 lelong >0 \b, with qform 69*a4d6d3b8SXin LI>>>344 use \^xform-code-nifti2-le 70*a4d6d3b8SXin LI>>348 lelong >0 \b, with sform 71*a4d6d3b8SXin LI>>>348 use \^xform-code-nifti2-le 72*a4d6d3b8SXin LI>>240 string >\0 \b, description: %s 73*a4d6d3b8SXin LI>0 default x 74*a4d6d3b8SXin LI>>0 long x invalid sizeof_hdr=%d 75*a4d6d3b8SXin LI 76*a4d6d3b8SXin LI 77*a4d6d3b8SXin LI# Other subroutines for details of NIfTI files 78*a4d6d3b8SXin LI 79*a4d6d3b8SXin LI0 name nifti-datatype-le 80*a4d6d3b8SXin LI>0 clear x 81*a4d6d3b8SXin LI>0 leshort =1 \b, binary datatype 82*a4d6d3b8SXin LI>0 leshort =2 \b, uint8 datatype 83*a4d6d3b8SXin LI>0 leshort =4 \b, int16 datatype 84*a4d6d3b8SXin LI>0 leshort =8 \b, int32 datatype 85*a4d6d3b8SXin LI>0 leshort =16 \b, float32 datatype 86*a4d6d3b8SXin LI>0 leshort =32 \b, complex64 datatype 87*a4d6d3b8SXin LI>0 leshort =64 \b, float64 datatype 88*a4d6d3b8SXin LI>0 leshort =128 \b, RGB24 datatype 89*a4d6d3b8SXin LI>0 leshort =256 \b, int8 datatype 90*a4d6d3b8SXin LI>0 leshort =512 \b, uint16 datatype 91*a4d6d3b8SXin LI>0 leshort =768 \b, uint32 datatype 92*a4d6d3b8SXin LI>0 leshort =1024 \b, int64 datatype 93*a4d6d3b8SXin LI>0 leshort =1280 \b, uint64 datatype 94*a4d6d3b8SXin LI>0 leshort =1536 \b, float128 datatype 95*a4d6d3b8SXin LI>0 leshort =1792 \b, complex128 datatype 96*a4d6d3b8SXin LI>0 leshort =2048 \b, complex256 datatype 97*a4d6d3b8SXin LI>0 leshort =2304 \b, RGBA32 datatype 98*a4d6d3b8SXin LI>0 default x 99*a4d6d3b8SXin LI>>0 leshort x \b, unknown datatype 0x%x 100*a4d6d3b8SXin LI>>2 leshort x (%d bits/pixel) 101*a4d6d3b8SXin LI 102*a4d6d3b8SXin LI0 name nifti1-dim-le 103*a4d6d3b8SXin LI>0 clear x 104*a4d6d3b8SXin LI>40 leshort <0 \b, INVALID dim[0]=%d 105*a4d6d3b8SXin LI>40 leshort >7 \b, INVALID dim[0]=%d 106*a4d6d3b8SXin LI>0 default x 107*a4d6d3b8SXin LI>>40 leshort x \b, %d-dimensional (size 108*a4d6d3b8SXin LI>>42 leshort x %d 109*a4d6d3b8SXin LI>>40 leshort >1 110*a4d6d3b8SXin LI>>>44 leshort x \bx%d 111*a4d6d3b8SXin LI>>40 leshort >2 112*a4d6d3b8SXin LI>>>46 leshort x \bx%d 113*a4d6d3b8SXin LI>>40 leshort >3 114*a4d6d3b8SXin LI>>>48 leshort x \bx%d 115*a4d6d3b8SXin LI>>40 leshort >4 116*a4d6d3b8SXin LI>>>50 leshort x \bx%d 117*a4d6d3b8SXin LI>>40 leshort >5 118*a4d6d3b8SXin LI>>>52 leshort x \bx%d 119*a4d6d3b8SXin LI>>40 leshort >6 120*a4d6d3b8SXin LI>>>54 leshort x \bx%d 121*a4d6d3b8SXin LI>>80 lefloat x \b, voxel size %f 122*a4d6d3b8SXin LI>>40 leshort >1 123*a4d6d3b8SXin LI>>>84 lefloat x x %f 124*a4d6d3b8SXin LI>>40 leshort >2 125*a4d6d3b8SXin LI>>>88 lefloat x x %f 126*a4d6d3b8SXin LI>>123 use nifti1-xyz-unit 127*a4d6d3b8SXin LI>>40 leshort >3 128*a4d6d3b8SXin LI>>>92 lefloat x x %f 129*a4d6d3b8SXin LI>>>123 use nifti1-t-unit 130*a4d6d3b8SXin LI>>40 leshort x \b) 131*a4d6d3b8SXin LI 132*a4d6d3b8SXin LI0 name nifti2-dim-le 133*a4d6d3b8SXin LI>0 clear x 134*a4d6d3b8SXin LI>16 lequad <0 \b, INVALID dim[0]=%lld 135*a4d6d3b8SXin LI>16 lequad >7 \b, INVALID dim[0]=%lld 136*a4d6d3b8SXin LI>0 default x 137*a4d6d3b8SXin LI>>16 lequad x \b, %lld-dimensional (size 138*a4d6d3b8SXin LI>>24 lequad x %lld 139*a4d6d3b8SXin LI>>16 lequad >1 140*a4d6d3b8SXin LI>>>32 lequad x \bx%lld 141*a4d6d3b8SXin LI>>16 lequad >2 142*a4d6d3b8SXin LI>>>40 lequad x \bx%lld 143*a4d6d3b8SXin LI>>16 lequad >3 144*a4d6d3b8SXin LI>>>48 lequad x \bx%lld 145*a4d6d3b8SXin LI>>16 lequad >4 146*a4d6d3b8SXin LI>>>56 lequad x \bx%lld 147*a4d6d3b8SXin LI>>16 lequad >5 148*a4d6d3b8SXin LI>>>64 lequad x \bx%lld 149*a4d6d3b8SXin LI>>16 lequad >6 150*a4d6d3b8SXin LI>>>72 lequad x \bx%lld, 151*a4d6d3b8SXin LI>>112 ledouble x \b, voxel size %f 152*a4d6d3b8SXin LI>>16 lequad >1 153*a4d6d3b8SXin LI>>>120 ledouble x x %f 154*a4d6d3b8SXin LI>>16 lequad >2 155*a4d6d3b8SXin LI>>>128 ledouble x x %f 156*a4d6d3b8SXin LI>>500 use nifti2-xyz-unit 157*a4d6d3b8SXin LI>>16 lequad >3 158*a4d6d3b8SXin LI>>>136 ledouble x x %f 159*a4d6d3b8SXin LI>>>500 use nifti2-t-unit 160*a4d6d3b8SXin LI>>16 lequad x \b) 161*a4d6d3b8SXin LI 162*a4d6d3b8SXin LI0 name xform-code-nifti1-le 163*a4d6d3b8SXin LI>0 leshort =1 to scanner-based coordinates 164*a4d6d3b8SXin LI>0 leshort =2 to aligned coordinates 165*a4d6d3b8SXin LI>0 leshort =3 to Talairach coordinates 166*a4d6d3b8SXin LI>0 leshort =4 to MNI152 coordinates 167*a4d6d3b8SXin LI>0 leshort =5 to template coordinates 168*a4d6d3b8SXin LI 169*a4d6d3b8SXin LI0 name xform-code-nifti2-le 170*a4d6d3b8SXin LI>0 lelong =1 to scanner-based coordinates 171*a4d6d3b8SXin LI>0 lelong =2 to aligned coordinates 172*a4d6d3b8SXin LI>0 lelong =3 to Talairach coordinates 173*a4d6d3b8SXin LI>0 lelong =4 to MNI152 coordinates 174*a4d6d3b8SXin LI>0 lelong =5 to template coordinates 175*a4d6d3b8SXin LI 176*a4d6d3b8SXin LI0 name nifti1-xyz-unit 177*a4d6d3b8SXin LI>0 byte &0x01 178*a4d6d3b8SXin LI>>0 byte ^0x02 m 179*a4d6d3b8SXin LI>>0 byte &0x02 micron 180*a4d6d3b8SXin LI>0 byte ^0x01 181*a4d6d3b8SXin LI>>0 byte &0x02 mm 182*a4d6d3b8SXin LI 183*a4d6d3b8SXin LI0 name nifti1-t-unit 184*a4d6d3b8SXin LI>0 byte &0x08 185*a4d6d3b8SXin LI>>0 byte ^0x10 s 186*a4d6d3b8SXin LI>>0 byte &0x10 ms 187*a4d6d3b8SXin LI>0 byte ^0x08 188*a4d6d3b8SXin LI>>0 byte &0x10 microsecond 189*a4d6d3b8SXin LI 190*a4d6d3b8SXin LI0 name nifti2-xyz-unit 191*a4d6d3b8SXin LI>0 lelong &0x01 192*a4d6d3b8SXin LI>>0 lelong ^0x02 m 193*a4d6d3b8SXin LI>>0 lelong &0x02 micron 194*a4d6d3b8SXin LI>0 lelong ^0x01 195*a4d6d3b8SXin LI>>0 lelong &0x02 mm 196*a4d6d3b8SXin LI 197*a4d6d3b8SXin LI0 name nifti2-t-unit 198*a4d6d3b8SXin LI>0 lelong &0x08 199*a4d6d3b8SXin LI>>0 lelong ^0x10 s 200*a4d6d3b8SXin LI>>0 lelong &0x10 ms 201*a4d6d3b8SXin LI>0 lelong ^0x08 202*a4d6d3b8SXin LI>>0 lelong &0x10 microsecond 203