NAME fdatap.h - NMRPipe Data and Header Definitions DESCRIPTION The NMRPipe parameter header array FDATA currently consists of 512 4-byte floating-point values which describe the spec- tral data. While all numerical values in this array are floating point, many represent parameters (such as size in points) which are integers. Some parts of the header contain packed ascii text. There are currently three variations of spectral data in the NMRPipe format: 1. Single-File (1D and 2D): the data are recorded in a single binary file consisting of the header followed by the spectral intensities, stored in sequential order as 4-byte floats. 2. Multi-File (3D and 4D): the data are stored as a series of 2D file planes, each with its own complete header followed by the spectral intensities in sequential order. 3. Data Stream (1D-4D): the data are in the form of a pipeline stream, with a single header at the beginning followed by all of the spectral intensities in sequential order. The header values can be manipulated directly, but this is not recommended. Instead, the functions getParm() and set- Parm() can be used to extract or set header values according to parameter codes and the dimension of interest (if any). See the source code distribution for examples of these func- tions. The NMRPipe format was created to be compatible with an older format which pre-dates phase-sensitive NMR and mul- tidimensional NMR. So, for historical reasons, there are some potentially confusing aspects regarding definition of dimension sizes, data types, and interleaving of real and imaginary data. In the NMRPipe nomenclature, the dimensions are called the X-Axis, Y-Axis, Z-Axis, and A-Axis. The X-Axis refers to rows from the spectral data file or data stream; the Y-Axis refers to the next dimension etc. Some rules of thumb about the data format follow: 1. Complex data in the X-Axis is stored as separated 1D vectors of real and imaginary points (see below). 2. Complex data in the Y-Axis, Z-Axis, and A-Axis is stored as interleaved real and imaginary points. 3. The X-Axis size is recorded as complex points. 4. The Z-Axis and A-Axis sizes are recorded as total points real+imag. 5. If both the X-Axis and Y-Axis are complex, the Y-Axis size is reported as total points real+imag. 6. If the X-Axis is not complex but the Y-Axis is com- plex, the Y-axis size is reported as complex points. 7. TPPI data, and Bruker QSEQ mode data are treated as real data. 1D FORMAT The NMRPipe 1D format consists of a header, followed by a list of real values, and optionally a list of corresponding imaginary values: 1D Real Format: (512-point FDATA) (N real points...) 1D Complex Format: (512-point FDATA) (N real points...) (N imag points...) 2D HYPERCOMPLEX FORMAT; The NMRPipe 2D Hypercomplex format consists of a header, followed by a series of complex vectors. The vectors are alternating real and imaginary in the indirect dimension (Y-Axis). (direct dimension = t2, indirect dimension = t1): (512-point FDATA) (N t2=real points... for t1=1 Real) (N t2=imag points... for t1=1 Real) (N t2=real points... for t1=1 Imag) (N t2=imag points... for t1=1 Imag) (N t2=real points... for t1=2 Real) (N t2=imag points... for t1=2 Real) (N t2=real points... for t1=2 Imag) (N t2=imag points... for t1=2 Imag) ... etc ... (N t2=real points... for t1=M Real) (N t2=imag points... for t1=M Real) (N t2=real points... for t1=M Imag) (N t2=imag points... for t1=M Imag) 3D AND 4D HYPERCOMPLEX FORMAT The 3D hypercomplex format consists of a series of 2D hyper- complex planes above, which are alternating real and ima- ginary in the Z-Axis. Likewise, the 4D hypercomplex format, consists of a series of 3D hypercomplex spectra above, which are alternating real and imaginary in the A-Axis. DIMENSION-SPECIFIC PARAMETERS The following are generalized integer codes for parameters which have a specific value for each dimension of the spec- trum. In the codes given, NDPARM currently has a value of 1000. This assures that all of the generalize codes will be different that the actual parameter array location codes 0-511. For each ND code given here, there are four corresponding header locations for each of the for possible dimensions. For a complete list of all parameters, see the file fdatap.h in the source code distribution. NDSIZE (1+NDPARM) Number of points in the given dimension. For the X-Axis, this is given in complex points. For the Y-Axis, this is given in total points real+imag if both the X-Axis and Y-Axis are complex, and in complex points otherwise. For the Z-Axis and A-Axis, this is given in total points real+imag. NDAPOD (2+NDPARM) Current time-domain size. In the case of time-domain data, this is the current number of valid complex time-domain points in the data. In the case of frequency-domain data, this is the number of valid com- plex time-domain points which would be available if the data was inverse transformed. NDSW (3+NDPARM) Full Sweep Width Hz. NDORIG (4+NDPARM) Axis origin (location of last point in the data) in Hz. NDOBS (5+NDPARM) Spectral observe frequency in MHz. NDFTFLAG (6+NDPARM) Fourier transform flag; 0 = Time Domain 1 = Frequency Domain NDQUADFLAG (7+NDPARM) Quadtrature Mode Flag; describes the data type of the dimension; 0 = Complex (States, States-TPPI) 1 = Real (Bruker QSEQ, TPPI) 2 = Bruker Pseudocomplex (Obsolete handling for QSEQ) NDUNITS (8+NDPARM) Axis Units Code; currently unused. 1 = Seconds 2 = Hz 3 = PPM 4 = Points NDLABEL (9+NDPARM) 8-character Axis Label. NDP0 (11+NDPARM) Zero Order Phase, Degrees. NDP1 (12+NDPARM) First Order Phase, Degrees. NDCAR (13+NDPARM) Carrier Position, PPM. NDCENTER (14+NDPARM) Point Location of Zero Frequency. NDAQSIGN (15+NDPARM) Sign adjustment needed for forward FT: 0 = No Sign Adjustment 1 = Real Sign Alternation 2 = Complex Sign Alternation 16 = Negate Imaginaries 17 = Real Sign Alternation, Negate 18 = Complex Sign Alternation, Negate Imaginaries NDAPODCODE (16+NDPARM) Window function used. Current values are: 0 = NA No Window Used 1 = SP Adjustable Sine Bell 2 = EM Exponential Multiply 3 = GM Lorentz-to-Gauss 4 = TM Trapezoid 5 = ZE Zero Range 6 = TRI Triangle Window NDAPODQ1 (17+NDPARM) Window parameter Q1. NDAPODQ2 (18+NDPARM) Window parameter Q2. NDAPODQ3 (19+NDPARM) Window parameter Q3. NDC1 (20+NDPARM) First point scale - 1.0 NDZF (21+NDPARM) Negative of Zero Fill Size. NDX1 (22+NDPARM) Extract region origin, if any, in points. NDXN (23+NDPARM) Extract region endpoint, if any, in points. NDOFFPPM (24+NDPARM) Additional PPM offset, used by assignment software. NDFTSIZE (25+NDPARM) Size of data when a forward Fourier transform was last performed. NDTDSIZE (26+NDPARM) Original time-domain size in complex points. ORIGINAL 2D PARAMETERS FDMAGIC 0 Should be zero in valid NMRPipe data. FDFLTFORMAT 1 Constant defining floating point format; see CONSTANTS below. FDFLTORDER 2 Constant defining byte order; see CONSTANTS below. FDSIZE 99 Number of points in current dimension, complex points. FDREALSIZE 97 Number of valid time-domain points (obsolete). FDSPECNUM 219 Number of complex 1D slices in 2D file plane. FDQUADFLAG 106 This value is a function of both the X-Axis and Y-Axis data types. A value of zero means the X-Axis vectors should be treated as complex for purposes of reading data. 0 = Complex (States, States-TPPI) 1 = Real (Bruker QSEQ, TPPI) 2 = Bruker Pseudocomplex (Obsolete handling for QSEQ) FD2DPHASE 256 Describes the type of 2D file plane. 0 = Magnitude Mode 1 = TPPI 2 = States or States-TPPI 3 = Image DATA ORDER PARAMETERS These parameters define the number of dimensions and their order in the data; a newly-converted FID has dimension order (2 1 3 4). These dimension codes are a hold-over from the oldest 2D NMR definitions, where the directly-acquired dimension was always t2, and the indirect dimension was t1. FDTRANSPOSED 221 0 = Not Transposed 1 = Transposed FDDIMCOUNT 9 Number of dimensions in the complete spectrum. FDDIMORDER1 24 Dimension stored in X-Axis. FDDIMORDER2 25 Dimension stored in Y-Axis. FDDIMORDER3 26 Dimension stored in Z-Axis. FDDIMORDER4 27 Dimension stored in A-Axis. PIPELINE PARAMETERS The following parameters describe the data when it is in a multidimensional data stream format (FDPIPEFLAG != 0): FDPIPEFLAG 57 Dimension code of data stream. Non-standard. FDPIPECOUNT 75 Number of functions in pipeline. Non-standard. FDSLICECOUNT 443 Number of 1D slices in stream. Non-standard. FDFILECOUNT 442 Number of files in complete data. PARALLEL PARAMETERS The following definitions are used for data streams which are subsets of the complete data, as for parallel process- ing: FDFIRSTPLANE 77 First Z-Plane in subset. Non-standard. FDLASTPLANE 78 Last Z-Plane in subset. Non-standard. FDPARTITION 65 Slice count for client-server mode. Non-standard. FDPLANELOC 14 Location of this plane; currently unused. DISPLAY SCALE The following define max and min data values, previously used for contour level setting: FDMAX 247 Max value in real part of data. FDMIN 248 Min value in real part of data. FDSCALEFLAG 250 1 if the max and min values (FDMAX and FDMIN) in the header are accurate. FDDISPMAX 251 Max value, used for display generation. FDDISPMIN 252 Min value, used for display generation. OTHER PARAMETERS Locations reserved for User customization: FDUSER1 70 User Parameter 1. FDUSER2 71 User Parameter 2. FDUSER3 72 User Parameter 3. FDUSER4 73 User Parameter 4. FDUSER5 74 User Parameter 5. Defines date and time when data was converted: FDMONTH 294 Month, 1-12. FDDAY 295 Day, 1-31. FDYEAR 296 Year (with century, e.g. 1998, 2003, etc). FDHOURS 283 Hour, 0-23. FDMINS 284 Minute, 0-59. FDSECS 285 Seconds, 0-60. MISCELLANEOUS PARAMETERS FDMCFLAG 135 1 if a Magnitude Calculation was performed. FDNOISE 153 Used to store an RMS noise estimate. FDRANK 180 Estimate of matrix rank; Non-standard. FDTEMPERATURE 157 Temperature, degrees C. FD2DVIRGIN 399 0 if the data have never been accessed, and the header never checked or adjusted. FDTAU 199 A Time value (for spectral series). TEXT PARAMETERS FDSRCNAME 286 Source file, 16 characters. FDUSERNAME 290 Username, 16 characters. FDOPERNAME 464 Operator name, 32 characters. FDTITLE 297 Title, 60 characters. FDCOMMENT 312 Comments, 160 characters. CONSTANTS FDATASIZE 512 Length of header in 4-byte float values. FDIEEECONS 0xeeeeeeee Indicates IEEE floating point format. FDVAXCONS 0x11111111 Indicates DEC VAX floating point format; currently unsupported by NMRPipe. FDORDERCONS 2.345 Constant used to determine byte-order. SEE ALSO fdatap.c, fdatap.h, showhdr.c