Phantom setup: It is necessary to use a phantom with an aqueous solution without relaxation agents that load the RF coil (A volume coil is best, e.g., one that fits snugly around a ping-pong ball for animal systems, a quadrature head coil for the human systems). The solution should be in either e.g., a ping-pong ball (make sure that no air bubble is left, this can be achieved by injecting water with a syringe) or e.g. a 4l bottle placed along the z axis. The phantoms should be centered at the isocenter of the magnet.
Next it is recommended to open a terminal or shelltool and to reduce the font size such that you can view the contents of this window in addition to the vnmr display. Then it is recommended to start vnmr within this window, this allows stderr output to be printed to this window, which contains IMPORTANT DIAGNOSTIC INFORMATION: yourprompt>vn&<cr>. Here's an example (Note the terminal window on the right, from which vnmr was started):
Because in general the Z2 coil intrincically produces a B0 (frequency) shift, this needs to be taken into account for the calibration. To start this, load into another experiment the parameter file sh2pul.par that is provided in $FASTMAP/parlib. After adjusting frequency (tof), pw, tpwr and gain to get an appreciable signal without ADC overflow, manually shim at least x1, y1 and z1(c) to optimum. Then collect a single-shot spectrum and adjust the phase and display the spectrum fully : ph f full. Of course fn (e.g. 32k), np, sw (20kHz) should be reasonably set.
NEED to have $vnmruser/fastmap dir created. Change fastmap.upload accordingly !!
NOTE:
Some systems generate a transient frequency shift with a time constant on the order of
minutes upon abrupt changes in the Z2 coil. To assess such drifts run the macro get_z2drift. The macro will array d1=60 and then 3 s thereafter and
for the first element deviate the z2 shim from the good setting and start the
acquisition automatically. The output of the ensuing peak picking is displayed on line3
and written to the file $vnmruser/fastmap/<gcoil>_z2drift. In this file is the
output of the peak picked arrayed experiment above, which is shown in the text output
window and the spectra are shown with dss at the end to visually check for temporal
drifts. Check after what time the field is stable and this will define the repetition time
needed for making changes to the Z2 coil.
The next step is to establish the field (frequency) change induced by the Z0 impurity of the Z2 shim coil. This is done by running the macro get_z2z0 in the same experiment from which get_z2drift was run (see above NOTE). This macro will increasingly and symmetrically deviate from the current (optimum) setting of the Z2 coil and automatically abort, when it finds excellent correlation and that the change in frequency with Z2 DAC is less than 5% after running 4 measurements. The output is stored in the file $vnmruser/fastmap/<gcoil>_<name of Z2 parameter>z0, which is used in the Calibration (see below).
In order to run FASTMAP, you need to load the fastestmap parameter file (It is in systemdir/parlib) into a suitable experiment, e.g., exp3 or exp4. Execution of an acquisition should now be aborted with the display of a menu that reminds you to check the settings of a few parameters, as shown below.
Among the parameters to be adjusted are:
lro - the FOV (cm), which together with sw defines the gradient strengths. The choice of lro should take into account the dimensions of most subjects/orgrans scanned in this particular setup, and should also take into account that fastmap always centers the projection at the ROI center. Examples of recommened settngs are lro=30 for volume coils and head scans, lro=20 for human head scans using surface coils, lro=6-10 for rodents and small mammals.
thk - the thickness of the bar in mm (two-dimensional slice selection), the compromise here is to make sure thk is at least three times smaller than the typical ROI being shimmed. Examples, are thk=10 for most human head scans, thk=2 for rodents. In cases of excellent signal-to-noise ratios, thk can be further reduced, which can further improve shim performance, especially in situations of poor initial shims.
tpwr - RF power setting for all pulses used in the sequence (dB). Although fastmap is fully adiabatic, it is recommened to consider the tpwr setting, especially when using a small surface coil with a strong RF amplifier, in order not to damage the RF coil. An initial setting that assumes a peak gB1 of approximately 0.5 - 1kHz should be adequate.
tof - set the tof to be on-resonance with the water frequency.
resto - should be set to on-resonance to water and thus equal to tof (resto=tof).
More adjustments can be found with the button continue setup,
which will bring you to the following menu:
For a description of these adjustments on a routine basis, click here. For a description of the recommended settings for the calibration process, see below:
tau - For calibration it is recommended to set tau=0.01, a compromise between setting a large value without setting it too large to avoid uncorrectable discontinuities in the phase projections.
nt - if sensitivity is adequate, set nt=1, if time is not an issue nt=2 might be safer (the sequence does have a +- phase cycle)
diam (mm) - For whole body systems use 40 mm, for animal systems, 6-10 mm shuld work.
epi=n - Because of issues with eddy current compensation and its quality, it is recommended to turn epi mode off, this does result in two fold longer acquisition, but this should not be a problem, since this adjustment needs to be done only once for a given configuration.
Low B1 - It is recommended to use the Low B1 setting, this requires a tpwr setting corresponding to a B1 of 0.5 - 1 kHz.
Next make sure that X0=0 Y0=0 Z0=0 (location at the isocenter), set tr=3 and tof to the water frequency.
Then, enter the FASTMAP/Maintenance menu, which looks like this:
and click on Adj. button to adjust tpwr. The system responds with a request for parameter, enter tpwr, as shown below:
and a reasonable range of values to include B1 on the order of 0.5-1 kHz. Then start acquisition using, e.g., ga and watch for a reasonable maximum at the center of the projection and set tpwr to that value. The overall projection could look like this:
but be sure to watch for the adjustment at the projection center, e.g., in the region between the red cursors below:
and when expanding this region the arrayed projections could look like this:
and probably the ninth projection would be selected. (The projection is along the y axis, assuming that this is vertical, in most cases coincides with the axis of the surface coil. This is controlled by the parameter off, with off=0 along x, off=1 along y and off=2 along z.).
NOTE: If you do not hear or see evidence that the acqusition starts check the parameter ticks - This is set to one initially. In that case set ticks=0, and the sequence will not wait for an external trigger and should now pulse.
gain - set the gain such that you get a reasonably digitized echo, but not to close to the ADC range in order to avoid ADC overflow in future experiments.
Now you are ready to test the basic performance of the sequence: in FASTMAP/Setup first click on "Coil Pos.", which will start an acquisition along x, y and z and at the end display the x y and z projection (dss), as shown below:
To check that gain and signal are ok, use dfsh with vf=100 on the above three projections and you should see reasonably well described echoes in the order x, y and z.
To verify performance of FASTMAP click on "Setup/6 proj." (set default # of echoes to zero) then "Setup/nf_def=0" and enter 0 which will set epi='n'. Now set tau to e.g. 0.005 or 0.01 in "Setup/tau" depending on quality of the shimset. Set tr to 2 or better 3 s. Now you are ready to run a test run by clicking "Return/Manual adjust/go". After the acquisition completes, click on "FASTMAP/Maintenance/Test calculation" and enter a shim coil name (x1, it is really irrelevant which one you use) and watch the output in the shelltool or terminal window from which you started vnmr. The output should show some reasonable numbers for kx, ky, kz, kzx, etc. (Unreasonable #'s are NaN, caused e.g. by using tau=0). Especially the RMSD (#'s provided in parentheses for each of the six projections measured) should be very small, should be less than 0.1, but typically the numbers are on the order of 0.02-0.07 (Hz).
It is important that the shim set be optimal and that the water frequency be stored in tof and resto. The execution of the calibration is automatically started when clicking on "Maintenance/Cal (6proj.)". The measurements are logged in the file $vnmruser/fastmap/fastmap.calib. If at the beginning this file exists, you will be prompted whether you want to delete it, rename it or append data to it. Beware, however, that all entries in this file will be used in the calibration calculation. Upon starting the calibration process, the current (hand shimmed) shim set is stored to disk named current. If such a shim file already exists you will be prompted to overwrite the old "current" shim set. The macro will then array each of the 8 shim parameters (x1, y1, z1(c), z2(c), z2y2, xy, xz and yz) about the optimal values stored in "current". Which shim coil is set is dictated by the processing parameter shimcoil and what value it will be set is given by the parameter shimval. While the calibration is running, do not change the parameter r1, it is used as the array index. Nor change experiment, since this interferes with macro execution. Since 7 values are measured in 8 shim coils, 56 measurements are made. If the repetition time is 1s, and using epi='n' (highly recommended), and nt=1, the calibration will be done in approximately 13 minutes. Given that this measurement is done only once per gradient coil installation, it is worth doing the experiment with optimal sensitivity, e.g., using a TR of 3 s and nt of 2 or even 4. The file $vnmruser/fastmap/fastmap.calib has contents that look like this :
x1= -638 +102.024 -89.632 +37.037 -5.145 +4.388 -27.997 +30.869 -4.483 x1= -438 +58.821 -90.529 +38.013 -7.888 +9.706 -26.366 +32.370 -6.239 x1= -238 +13.398 -90.649 +37.590 -1.915 +7.873 -25.923 +33.550 -2.699 x1= -38 -30.940 -91.894 +36.502 -7.582 +9.847 -22.891 +34.211 -2.723 x1= -438 +57.811 -91.246 +37.607 -8.317 +6.865 -25.814 +32.287 -5.200 x1= -238 +13.479 -91.708 +38.378 -6.318 +6.430 -27.315 +33.985 -4.486 x1= -38 -30.356 -92.698 +37.338 -6.630 +8.577 -25.195 +33.154 -4.888 x1= 162 -76.260 -93.256 +36.500 -7.451 +8.905 -24.057 +35.960 -5.374 x1= 362 -121.406 -93.705 +36.278 -7.675 +7.430 -26.357 +36.915 -6.170 x1= 562 -166.969 -93.698 +35.712 -12.553 +6.523 -25.706 +35.607 -3.937 y1= -7253 -32.273 +41.748 +36.008 -4.743 +15.119 -24.407 +33.418 -2.166 y1= -7053 -30.220 -2.700 +37.084 -6.523 +15.648 -26.860 +34.531 -4.800 y1= -6853 -29.433 -46.285 +36.698 -6.198 +9.726 -26.417 +35.848 -1.804 y1= -6653 -31.373 -91.602 +36.895 -7.633 +5.837 -25.623 +34.133 -1.909 y1= -6453 -31.435 -135.011 +37.285 -5.901 +9.827 -26.010 +31.846 -4.465 y1= -6253 -31.119 -179.591 +37.533 -8.557 +4.947 -26.267 +32.562 -8.329 y1= -6053 -31.628 -224.134 +37.258 -9.522 +7.345 -26.165 +32.718 -5.132 z1c= -786 -29.736 -89.927 +164.836 -8.235 +9.403 -23.897 +35.200 -4.613 z1c= -586 -29.577 -90.228 +123.259 -8.545 +10.041 -23.026 +35.852 -4.362 z1c= -386 -29.897 -89.258 +79.929 -10.410 +7.994 -22.146 +33.242 -4.559 z1c= -186 -30.397 -89.651 +38.024 -8.348 +6.176 -22.503 +34.965 -5.682 z1c= 14 -31.050 -91.568 -6.506 -11.523 +7.118 -27.705 +33.155 -4.202 z1c= 214 -30.689 -91.148 -53.168 -11.643 +9.883 -28.724 +35.907 -3.337 z1c= 414 -31.601 -92.567 -97.682 -7.742 +11.246 -27.495 +34.309 -2.632 x2y2= -15000 -24.578 -111.405 +36.670 -4.323 +5.915 -23.327 +32.576 +42.492 x2y2= -10000 -27.778 -104.279 +36.600 -6.273 +9.401 -25.210 +33.772 +26.885 x2y2= -5000 -29.691 -99.007 +37.461 -7.236 +8.973 -24.368 +31.720 +11.573 x2y2= 0 -31.859 -93.155 +37.103 -5.923 +7.366 -26.406 +34.280 -2.987 x2y2= 5000 -31.647 -85.842 +37.089 -10.448 +9.657 -23.270 +35.808 -17.954 x2y2= 10000 -33.433 -78.710 +37.334 -10.705 +4.533 -23.406 +35.080 -35.389 x2y2= 15000 -34.748 -71.680 +36.906 -5.481 +11.631 -26.412 +35.936 -50.294 z2c= -15000 -29.909 -83.057 +27.691 -7.034 +6.746 -66.864 +34.274 -2.858 z2c= -10000 -29.545 -85.674 +31.341 -9.974 +6.486 -50.147 +33.351 -7.282 z2c= -5000 -31.071 -90.444 +34.298 -6.182 +8.226 -38.258 +36.500 -2.720 z2c= 0 -31.099 -91.558 +37.419 -7.304 +7.118 -28.360 +33.095 -4.274 z2c= 5000 -31.702 -96.250 +40.024 -6.113 +7.606 -13.142 +35.367 -5.082 z2c= 10000 -32.360 -98.885 +41.707 -5.334 +8.663 -0.115 +33.206 -5.503 z2c= 15000 -33.801 -102.214 +43.948 -6.197 +5.409 +15.135 +34.134 -6.651 xz= -15000 -51.182 -90.386 +41.198 +60.971 +13.714 -25.025 +36.046 -3.594 xz= -10000 -44.483 -91.176 +39.544 +42.922 +10.771 -25.455 +36.963 -2.164 xz= -5000 -38.314 -91.901 +39.292 +16.396 +6.918 -25.942 +35.312 -4.627 xz= 0 -31.798 -92.301 +35.938 -6.027 +8.380 -24.442 +34.974 -4.321 xz= 5000 -25.463 -92.667 +35.692 -30.051 +10.567 -21.781 +33.112 -4.733 xz= 10000 -19.321 -95.018 +33.617 -56.955 +8.884 -24.293 +34.124 -3.573 xz= 15000 -12.319 -95.113 +31.888 -80.368 +12.573 -25.365 +32.676 -3.447 yz= -15000 -33.194 -100.812 +52.543 -0.647 +80.901 -27.775 +35.108 -6.276 yz= -10000 -33.325 -97.583 +47.986 -4.272 +54.979 -27.320 +34.394 -4.927 yz= -5000 -31.494 -94.676 +42.440 -5.931 +31.288 -25.200 +33.890 -6.719 yz= 0 -32.448 -93.179 +36.408 -9.593 +6.973 -22.094 +34.487 -4.559 yz= 5000 -30.691 -89.190 +30.830 -6.766 -15.336 -21.496 +33.130 -4.509 yz= 10000 -30.929 -84.942 +25.080 -10.888 -39.417 -19.671 +33.249 -3.704 yz= 15000 -29.582 -81.121 +19.888 -10.678 -61.966 -21.626 +33.321 -4.370 xy= -15000 -49.903 -92.954 +34.725 -8.170 +8.228 -23.988 -12.422 -7.216 xy= -10000 -43.682 -93.544 +36.485 -3.801 +9.223 -24.940 +3.329 -7.707 xy= -5000 -37.980 -93.151 +36.225 -3.415 +8.884 -23.127 +17.194 -5.194 xy= 0 -32.261 -93.011 +35.705 -7.328 +10.457 -24.845 +34.057 -4.047 xy= 5000 -25.412 -91.619 +38.183 -10.447 +11.918 -24.374 +47.820 -5.172 xy= 10000 -18.854 -91.284 +37.752 -9.908 +9.710 -27.590 +63.560 -2.734 xy= 15000 -12.194 -89.553 +38.196 -5.329 +9.368 -27.078 +78.958 -3.587
Upon completion of the 56 acquisitions, the macro fastmap_calib macro is called which automatically calculates the calibration matrix. For this calculation a correlation coefficient of larger than 0.97 or less than -0.97 is required, which demands excellent sensitivity and stability for the system. The results of the linear regression and the made decisions are stored in the log file $vnmruser/fastmap/calib.log, but the calibration file is written to $FASTMAP/src/calib/.<gcoil>.
On many systems some of the tesseral shim coil pairs are interchanged, i.e. the parameter xy drives the physical x2-y2 shim coil, or xz and yz can be interchanged. Note that an interchange of xy and x2-y2 is not uncommon and seems to stem from an erroneous convention. FASTMAP can clearly distinguish the two coils. To accomodate such switches, the parameters nam_<shim coil> and DAC_<shim coil> are created subsequently by the macro swapshimcoil will determine if in the rows containing xz and yz for example, the diagonal elements are smaller than the off-diagonal elements, which is consistent with an interchange of the shimcoils. In the calibration file $FASTMAP/src/calib/.<gcoil> the line containing the shim labels is added, which in the normal case should be
x1 y1 z1 xz yz z2 xy x2y2
In reality the files can look like this :
The last line is read when adjusting the shim currents and defines the value of the parameters nam_<shim coil>.
Now that the calibration has completed, you are ready for a test run of FASTMAP. For further instructions, click here.