Configuring AIR 2.0
Several aspects of AIR 2.0 can be configured before compilation to make
the package more usefult at your site. Most options are configured by modifying
the AIR.h header file that is located in the subdirectory AIR2.0/src/. This
file can be modified using the text editor of your choice. You should be
very careful not to change any punctuation in the file since this may confuse
the C compiler when it tries to read the modified file.
The following lines in AIR.h can be configured:
- #define PLATF 1
- This variable allows the C compiler to assign machine dependent constants
that are appropriate for your platform. If your C compiler has the include
file float.h, choose option 3 preferentially (if you are not sure, you can
try using 3 and come back to the choice between 1 and 2 if the compiler
complains about not being able to find float.h). The standard C compiler
on Sun SPARCstations does not include float.h, so you must choose 1 for
SPARCs. Be sure that you are using AIR 2.02 or later in order to choose
option 3.
- 1 Big-endian machines
- 2 Little-endian machines
- 3 Machines with C compilers that include the C header file float.h
- #define VERBOSITY 0
- This variable governs how chatty the programs are. If you want to minimize
the amount of onscreen printing, leave it as 0, if you want lots of reassuring
messages, change it to a 1.
- #define PIX_SIZE_ERR .0001
- The variable decides how fussy the AIR package is about deciding that
pixel sizes are identical. If you plan to round off pixel sizes only to
the nearest .1 mm, you need to make this value .1. If you like to type everything
out to many decimal places, you can make the AIR package equally compulsive.
- #define PIXEL_MAX_SIZE 10
- The AIR package will warn you if you load a file with pixels bigger
than 10 mm (on the assumption that this is an error). If you regularly use
huge pixels, make this number really big.
- #define PIXEL_MIN_SIZE .1
- The AIR package will warn you if you load a file with pixels smaller
than .1 mm (on the assumption that this is an error). If you regularly use
tiny pixels, make this number really small.
- #define EDITED 5.0
- This is included for compatibility with the AIR 1.0 programs alignpettomri
and alignmritopet. You probably can leave it as is.
- #define OLD_ANALYZE 1
- ANALYZE 2.0 (a very old version) will sometimes change all the pixel
sizes to 1.0 when you save a file. If you use ANALYZE 2.0, leave this value
as 1 and you will be warned whenever a file claiming to have voxel sizes
of exactly 1.0 x 1.0 x 1.0 is loaded. If you don't use ANALYZE 2.0, change
this to a 0.
- #define COMPRESS 1
- If this value is 1, AIR will automatically attempt to decompress an
image file if the uncompressed version is not available. This is accomplished
using the UNIX uncompress command. The data is subsequently recompressed
using the UNIX compress command. If compression/decompression is causing
problems with compilation (e.g., if you aren't on a UNIX machine) set this
to 0 to deactivate this feature.
- #define CLOCK 0
- The program alignlinear, when run in verbose mode (using the command
line -v option) will time each iteration as it performs alignment if this
variable is set to 1. This feature is highly non-portable, and I would leave
it as 0 unless you are using a Sun compiler.
- #define OUTBITS 8
- The acceptable values are 8 and 16. If you choose 8, data will be represented
internally and saved as 8 bits/pixel. If you choose 16, data will be represented
internally and saved as 16 bits/pixel. (Either way, you will be able to
read in 8 or 16 bit data, this variable only controls output data). If you
are not sure what to do here, the issue of 8 and 16 bit data is discussed
elsewhere at length.
- #define REP16 3
- This variable is irrelevant if you have OUTBITS set to 8. The acceptable
values are 1, 2 and 3. The variable controls the format of 16 bit data saved
to disk by the AIR package. If you are not sure what to do here, the issue
of 16 bit data types is discussed elsewhere
at length.
- #if(OUTBITS==8)
#define THRESHOLD1 55
#define THRESHOLD2 55
#elif(OUTBITS==16)
#define THRESHOLD1 7000
#define THRESHOLD2 7000
#endif
- THRESHOLD1 and THRESHOLD2
control the default pixel value thresholds used by the registration programs.
If you have set OUTBITS to 8, only the first set of thresholds is used.
If you have set OUTBITS to 16, only the second set is used. The thresholds
should be values that will typically separate brain (suprathreshold) from
nonbrain (subthreshold). For 8 bit PET data, thresholds of 55 work well
for me, but for MRI a threshold of 10 is usually more appropriate. For 16
bit data, it's a tough call--maybe around 7000 for PET, but MRI could be
anywhere from 100 to 1000 or beyond. Look at some data to make a reasonable
guess, and bear in mind that these thresholds are easily overridden on a
per use basis.
Modified: January 23, 1996
© 1996 Roger P. Woods, M.D.(rwoods@ucla.edu)