Editing
Scanco Administration
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Calibration and Conversion== ===Attenuation measured by µCT=== A micro-CT 3D image of an object is basically a 3D map of local x-ray absorption in the object. The reconstruction from multiple angular views provides information on how much x-ray absorption is happening within each cubic voxel element of the scanned volume. It is important to understand what is meant by “density” in a µCT image. The reconstructed grey-scale intensity of each image voxel does not relate directly to mass density alone, thus do not expect it to correspond with measurements of weight per volume, e.g. g.cm-3. The primary entity that is measured is x-ray absorption, defined as the x-ray linear attenuation coefficient in units of 1/distance, specifically, 1/cm. This is determined both by mass density and x-ray mass attenuation coefficient which is determined by the elemental composition of the material. The x-ray linear attenuation coefficients of typical material is shown blow. [[File:Mu_comparison.JPG|thumb|center|600px|X-ray linear attenuation coefficient µ of typical material (image curtesy of Dr. Ying Zhu)]] The images we obtain from the scanner are in a special scanner manufacturer format called AIM files. Each voxel in these images contains a scaled linear attenuation value (mu-value) to save disk space. {| class="wikitable" |- ! scope="col"| Symbol ! scope="col"| Name ! scope="col"| Unit ! scope="col"| Value Range ! scope='col'| Meaning or Comments |- ! scope="row"| µ | x-ray linear attenuation coefficient | 1/cm | µ > 0 | A constant that describes the fraction of attenuated incident photons in a monoenergetic beam per unit thickness of a material |- ! scope="row"| mu_value | linear attenuation in Scanco images | 1/cm | -8~8 typically | mu value represented in Scanco images |- ! scope="row"| pixel_Scanco | pixel intensity value in Scanco images | - | −32768~32767 | Original format of Scanco images in 16-bit signed |- ! scope="row"| pixel_uint | pixel intensity value in converted Scanco images | - | 0~65535 | Converted format of Scanco images in 16-bit unsigned, using the same slope (unscaled) but an updated intercept |} <pre> pixel_Scanco = mu-value * scaling_factor </pre> [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Calibration by BMD=== When we know that the x-ray absorption of a material is dominated by one specific material, then we can relate the measured x-ray linear attenuation coefficient (mu_value) to the mass density of that material. The calibration of [[Scanco_User_Instructions#Descriptive_Statistics_.28Mean.2C_Median.2C_SD.29_of_Calibrated_Voxel_Values| '''Bone Mineral Density (BMD)''']] is an example of this. We assume that the x-ray attenuation within mineralized tissues such as bone, dentine and enamel is dominated by, and can be approximated as, the x-ray attenuation of the mineral compound calcium hydroxyapatite (CaHA) which has the formula Ca5(PO4)3(OH). Then we obtain “phantoms” with two or more known mass concentrations of CaHA. By linking these mass concentrations of CaHA with measured mu_value in the micro-CT images, we can establish calibration linking the two quantities, allowing us to infer from the micro-CT measured linear attenuation coefficient (mu_value) in a mineralized tissue, to the density of CaHA in mg.cm-3. *The assumption of linear correlation between the two quantities is based on a well-applied beam hardening correction and the phantoms' diameter matching with the size of bone within the sample. *This calibration system could be used to calibrate measurement of other substances apart from CaHA and bone, where x-ray absorption is known to be dominated by a certain substance and phantoms can be prepared with known concentrations of that substance. {| class="wikitable" |- ! scope="col"| Symbol ! scope="col"| Name ! scope="col"| Unit ! scope="col"| Value Range ! scope='col'| Meaning or Comments |- ! scope="row"| BMD | Bone Mineral Density | mg HA/ccm | 0~3000 | Volumetric density of calcium hydroxyapatite (CaHA) in a biological tissue in terms of mg/cm^3 |- ! scope="row"| BMD_value | Bone Mineral Density in Scanco images | mg HA/ccm | -1500~3000 typically | BMD value in Scanco images |} [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Conversion between Attenuation and Bone Density=== <pre> BMD_value = mu-value * slope + intercept mu-value = (BMD_value – intercept) / slope pixel_Scanco = scaling_factor * (BMD_value – intercept) / slope </pre> For example, to convert mu_value of 1.7923 (1/cm) to BMD (mg HA/ccm): <pre> BMD_value = 1.7923 * 3.67162994e+02 + -2.06399002e+02 = 451.667 (mg HA/ccm) </pre> For example, to convert the lower threshold of 125 mg HA/ccm that is in the IPL script to pixel intensity in Scanco images: <pre> pixel_Scanco = 4096 * (125 - -2.06399002e+02) / 3.67162994e+02 = 3697 </pre> *You could get the scaling_factor, intercept and slope values from the AIM header of your scan by using aix -l command: [[File:Aix.JPG|400px]] *Reference: [[Media:Jbmr.141.pdf|Bouxsein ML, Boyd SK, Christiansen BA, Guldberg RE, Jepsen KJ, Müller R, Guidelines for assessment of bone microstructure in rodents using micro-computed tomography. J Bone Miner Res. 25(7): 1468-86. 2010.]] [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Convert CT numbers to mg HA/ccm / Houndsfield units (HU)=== The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096 (uCT35, vivaCT40) or 8192 (XtremeCT). <b>Houndsfield units (HU)</b> Here is the conversion formula from mu (lin.att. in 1/cm, our original, 'physical' image numbers) to HU: <pre>HU(pixel) = -1000 + mu(pixel) * 1000/mu(water)</pre> so the mu(water) is the 'constant' that is needed for this conversion of any pixel value mu(pixel) to HU of that pixel. divide the 2-byte numbers in our dicom/aim/isq files by 4096 to get mu. (4096 --> 'mu_scaling' in our headers). E.g. you see gray-scale number 8192 in our files --> mu = 2 [1/cm]. A reasonable result for the uCT35 is: <pre>HU = (CT / 4096) * 1718.19 - 1000</pre> and that means 1000/mu(water) = 1718.19 --> mu(water) = 0.58299 which is a reasonable number. <b>mg HA/ccm</b> <pre> mg HA/ccm = (AIM/mu_scaling) * slope + intercept mg HA/ccm = (AIM/4096) * 295.494 - 189.695 ! vivaCT40 mg HA/ccm = (AIM/4096) * 256.51 - 172.99 ! uCT35 mg HA/ccm = (AIM/8192) * 1402.549 - 340.953 ! XtremeCT </pre> These numbers are available in the AIM header, or the ISQ header (<code>$ run ut:ctheader</code>). To look up slope, intercept and mu_scaling, check either the AIM header <pre>$ aix C1234567.AIM</pre> or <pre>$ run ut:uct_update_calibration</pre> and look at a record, and you'll find slope and intercept and mu-water. <pre> vivaCT40 !---------------------------------------------------------------------- Mu_Scaling 4096 Calibration Data 55 kVp, 200mg HA wedge, 4096 scaling Calib. default unit type 2 (Density) Density: unit mg HA/ccm Density: slope 2.95493988e+02 Density: intercept -1.89695007e+02 HU: mu water 0.58200 !---------------------------------------------------------------------- </pre> <pre> XtremeCT !------------------------------------------------------------------------------- Mu_Scaling 8192 Calibration Data 60kVp, BH: 200 mg HA/ccm, Scaling 8192 Calib. default unit type 2 (Density) Density: unit mg HA/ccm Density: slope 1.40254895e+03 Density: intercept -3.40953003e+02 HU: mu water 0.23900 !------------------------------------------------------------------------------- </pre> [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Fix the calibration data stored in the RSQ header=== You can see what calibration file is stored with your scan a few ways. One is to use <code>aix -l</code> to view the log file. You should see this part: !------------------------------------------------------------------------------- Mu_Scaling 8192 Calibration Data 60kVp, BH: 200 mg HA/ccm, Scaling 8192 Calib. default unit type 2 (Density) Density: unit mg HA/ccm Density: slope 1.40254895e+03 Density: intercept -3.40953003e+02 HU: mu water 0.23900 !------------------------------------------------------------------------------- Another is to use the extended header command for RSQ and ISQ files: $ run ut:UCT_EXT_HEADER_DISPLAY.EXE UCT_EXT_HEADER_DISPLAY V 1.3 Raw-Data-File []: DK0:[MICROT.DATA.00000006.00000011]C0002519.RSQ Reading Raw Data ... Found valid hext of type CALIBRATION: 8 Found valid hext of type UCT_BH-Corr: 7 Hext type [8]:8 hext 8 read. Calibration No. 1 Valid Flag 1 Description 60 kVp, BH: 200 mg HA/ccm, Scaling 8192 Scanner-ID 3307 Energy [V] 59400 Intensity [▒A] 0 Antiring Enable 0 Beamhardening Enable 1 Beamhardening Coeff file UCTD:UCT_BH_COEFF_60KV_0200HA_3418.TXT Beamhardening Checksum 0 Default unit type (1=▒, 2=mg, 3=HU, 4=Custom) 2 ▒ Enable 1 ▒-scaling 8192 Density Enable 1 Density units mg HA/ccm Density Slope 1489.406 Density Intercept -370.3510 HU Enable 1 ▒ of water 0.2447000 CUSTOM Enable 0 If you need to fix it, use the <code>UCT_EXT_HEADER_ADD_CALIB.EXE</code> command: run ut:UCT_EXT_HEADER_ADD_CALIB.EXE UCT_EXT_HEADER_ADD_CALIB V 1.1 Raw-Data-File []: DK0:[MICROT.DATA.00000006.00000011]C0002519.RSQ Reading Raw Data ... IDX Calib Description 1 1 68 kVp, BH: 0200 mg HA/ccm, Scaling 8192 Calibration Record No [0]:1 [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Calibration FAQ=== ====Change brightness scaling==== *Refer to [[Media:Mu-scaling.pdf|'''Change the brightness scaling''']]. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Update a scan after pixel correction==== Contact Lab personnel with system-level priviledges to perform <pre> $ set host 0 ! Username: calib2339 (µCT35) ! Username: calib5019 (vivaCT40) $ spb ! set priviledge bypass to write in other user accounts $ run ut:pixel_corr_apply PIXEL_CORR_APPLY Version 1.5 Scanner ID from UCTD:UCT_SCANNER_2339.DAT : 2339 !2339 for µCT 35, 5019 for vivaCT 40 Is this Scanner ID correct ? [?]: y Give RSQ-Filename (leave empty to exit) []: DISK4:[BONELAB.DATA.00005283.00011668]C0005128.RSQ ... ... Copy .RSQ to _CORRECTED.RSQ befor correction ? [?]: y $ logout </pre> [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Update calibration in ISQ==== If DICOM files are converted to ISQ with IPL and then used for patient evaluation, the calibration data in the ISQ header needs to be present and correct. If this information is missing, utilizing upat_list to extract the values will say 'Error: Density calibration not valid'. In order to add calibration data to an ISQ file, do the following as user calibration: <pre> $set proc/priv=bypass ! gain read/write access to the files $mcr ut:uct_ext_header_add_calib ! provide ISQ file name and header type (I chose [2]) </pre> If you need to adjust the calibration of a file, without changing the system calibration data, copy the calibration database into a different directory, e.g. sys$scratch. Then, add a new calibration record to this temporary calibration database. This way your new, temporary values will not show up in the scan program. $ copy uctd:uct_calibration_3401.dat sys$scratch: Define the following logical in a terminal MAKE SURE TO DO THIS!!!! $ def UCT_CALIBRATION_DATABASE sys$scratch:uct_calibration_3401.dat Run uct_update_calibration and click trough the current calibration record (always enter). $ r ut:UCT_UPDATE_CALIBRATION.EXE select current calibration record enter... $ r ut:UCT_UPDATE_CALIBRATION.EXE Then select the last number (New Record), copy all values from above, change slope and intercept. Then use $ mcr ut:uct_ext_header_add_calib for ISQ and RSQ. At the end, close the terminal! [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']]
Summary:
Please note that all contributions to bone.wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
BoneWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Log in
associated-pages
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
Documents
Recent changes
Help
Tools
What links here
Related changes
Page information