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!
=Scanning= ==Scanner User Manual== For XtremeCTs: * [[Media:Scanco - Manual_XtremeCTII_2.5.pdf |XtremeCT II User's Guide V2.5]] * [[Media:XtremeCT User Guide XCT I.pdf |XtremeCT I User's Guide V6.4]] For microCTs: * [[Media:Manual_vivaCT_80.pdf |VivaCT80 User's Guide V1.5]] * [[Media:scanco-manual-vivact40.pdf |VivaCT40 User's Guide V4.05]] * [[Media:Scanco-manual-uct35.pdf |MicroCT35 User's Guide V4.05]] ==Scanco's FAQ== Navigate to the manufacturer [http://www.scanco.ch/index.php?id=customer_login Scanco Medical FAQ]. * Username: users@scanco.ch * Password: basser5dorf [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ==Scan== ===Scan SOP=== ====Image Quality==== *Refer to [[Media:Scanco-faq-image-quality.pdf|'''Image Quality: Resolution vs. Noise''']] by Scanco Medical. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Optimize Control File Settings==== *Refer to [[Media:ControlFileSettingsUserMeeting2014Final.pdf|'''Optimize Control File Settings''']] with regards to resolution, contrast and scan time. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Scan materials of different densities==== *Refer to [[Media:UM_HongKong_DifferentDensityMaterials.pdf|'''Scan materials of different densities''']]. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Optimize Scan for Soft and Adipose Tissue Separability==== *Refer to [[Media:Scanco-faq-adipose-vs-soft-tissue.pdf|'''Scan Protocol Optimization for Soft and Adipose Tissue Separability''']]. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Measure multiple samples in one scan==== This quite often happens when you want to scan 6 rat bones, for example, but using our six-gun sample holder you scan them in one go. But, you want to analyse them separately, so you have to import the ISQ multiple times as new MEASUREMENTS into each SAMPLE. There are two options: manual and auto. <b>Read this entire HowTo before proceeding. There is significant potential for mistakes!</b> <pre> $ @com:import_manual.com P1: Measurement Number to duplicate P2: New Sample Number from Database P3: New Start Letter of ISQ file P4: Optional: Operator Number P5: Optional: Controlfile Number </pre> So: <pre>$ @com:import_manual.com 1234 342 D</pre> will copy the ISQ from measurement 1234, import it into the database to sample 342, give some feedback lines with 'old' and the new samplename, CHECK IT, and at the end it gives the feedback line on the terminal which you take with the mouse and drop to rename the data over to the new location. <b>IMPORTANT: BE VERY SURE NOT TO MIX UP MEASUREMENT AND SAMPLE NUMBER !!!</b> This distiction needs to be VERY clear in your mind! Of course, you can duplicate one scan and give it to the same samplenumber again (e.g. to evaluate different parts of the same sample, and each has its database entry). Please build up some system so you see immediately that the right meas. goes to the right sample. E.g. all four bones in one scan have the same part in the name, distinct from other 4 bones. If there is any trace of a doubt later on that somebody MAY have messed up the samples in this duplication step, you'll most probably have to start from scratch again... Of course, I'll have to make you aware that Scanco declines all responsibility - this program is NOT in the normal user-friendly, quite fool-proof Scanco controlbox, but it's up to you to use it carefully, and not on Friday night when you're sleepy and mistakenly mix up sample and meas. numbers... The new startletter I built in so you always know which one was the 'original' measurement (which has an RSQ), and which are the duplicated ones. <b>Backup</b> And the organization of how you know which duplicated scan is which part is completely up to you - as well as how you want to handle the backup - our software allows you to back-up each duplicated scan (but this might be an overkill, since it's the same ISQ always) so you may choose to delete the duplicated ISQ by hand in the session manager (only keep the 'original' ISQ), and only backup the .gobj, .aim and _seg.aim etc. (but then you will need to know not to get scared if you retrieve a scan, and the ISQ is missing...) (Or you just 'move to trash' the duplicated scans to nicely delete them with the backup program if you want to remove them completely (but you still have the 3D results in the evaluation database)) <b>Autosubmit</b> <pre>$ import_autosubmit.com</pre> Please use the manual one for a while. Then, if you feel comfortable, use the autosubmit one (which also does the last command automatically, the renaming of the isq to the new location.) Because it goes into a batch que, you can quickly submit all duplications, and do not have to wait for the whole file-copying like in the manual one. One thing you should check there: $ show que sys$fast/full This needs to be one single queue (/job_limit=1). In a clustered enviroment, this might be a '/generic=' que that then gives the jobs to multiple queues in the cluster. This is NOT good. If this is the case, please edit the autosubmit script, and replace sys$fast in the following line at the end by ONE of the generic fast queues, e.g. SC4240_FAST or whatever the name is (preferrable the one computer where also the data disk DK0 is sitting: <pre> $! $ SUBMIT/NOPRINT/QUE=SYS$FAST/DELETE/NOTIFY/LOG=SYS$SCRATCH: 'COMMANDFILE' $! </pre> (Reason: if multiple uct_imports would run at exactly totally the very same time, both jobs might get the same new measurement number... bad...) I also suggest to add the following line to your login.com <pre>$ dupl*icate :== @com:import_autosubmit.com</pre> then you can just start it with <pre>$ dupl 1234 342 D</pre> And I also recommend to put into login.com: <pre> $ check_dup :== search sys$scratch:import*.log """ name:"" </pre> (yes, with all these double-quotes) Then use it to check the feedback that the right scans were given to the right samples. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Scan FAQ=== ====Unlock a locked controlfile==== In November 2023, Stephan Weiss suggested you can use: mcr ut:UCT_UPD_EVALSCR_MISC.EXE and set locked to 0. For example, to change script #61: $ mcr ut:UCT_UPD_EVALSCR_MISC.EXE UCT_UPD_EVALSCR_MISC V1.0 V IDX escript/Rec. Description 1 1/1 XtremeCT Standard Patient Evaluation (RL,RR,TL,TR,CU) 2 1/7 XtremeCT Standard Patient Evaluation (RL,RR,TL,TR,CU) * 3 1/9 XtremeCT Standard Patient Evaluation (RL,RR,TL,TR,CU) 4 2/2 QC1 Trabecular Morphometry 5 2/8 QC1 Trabecular Morphometry 6 2/384 QC1 Trabecular Morphometry * 7 2/401 QC1 Trabecular Morphometry 8 3/3 QC2 9 3/6 QC2 10 3/385 QC2 * 11 3/402 QC2 * 12 4/4 3D Segmentation of VOI, 1 solid objectAIM * 13 5/5 3D Seg. of 2 VOIs: solid dense in transparent low dens obj obj <snip> 356 60/283 TEST - STEP2 SCSRV1_FAST * 357 60/290 Can be reused, irrelevant content 358 61/284 TEST - STEP2 SCSRV1_FAST * 359 61/291 Can be reused, irrelevant content 360 62/296 MCP Meta auto contour <snip> 559 127/558 (ML) Knee Segmentation * 560 127/559 (ML) Knee Segmentation Choose evalscript Record (IDX): [560]: 359 Description [Can be reused, irrelevant content]: Valid [1]: Locked [1]: Favourite [0]: Category [32]: Save Record ? [Y]: Y Rewriting DB Idx 291 Record saved successfully End of program Also see the instructions about setting VALID and LOCKED in another part of the wiki under the heading "Valid and Locked Settings for an eval script" But my old instructions are: If you accidentally locked a controlfile, it is possible to unlock it so that it can again be modified. Login as the calibration user (Xtremect: calibration; VivaCT40: calib5019; uCT35: calib2339), the password is the same as for the system user, Set priviledges to bypass. $ spb Set the controlfile database to the microct, or other, user where the controlfile is locked. *The file is usually located on (a)disk1:[username.database] and may be accessible using the uctd logical. *The database file contains the scanner ID (e.g., 3309 for the XtremeCT, note there's no SC before 3309). $ def uct_controlfiles_database adisk1:[microct.database]uct_controlfiles_3309.dat $ run ut:uct_upd_controlfiles Choose the controlfile.Use T and F to indicate true and false. *YOU MUST SAY YES TO UPDATE CTRL-FILE! There is a bug so do this even if you make a mistake. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Warning: Selected operator is not an operator CODE: 24==== You must enter an operator name in the micro-CT control panel. *You only need to enter the beginning part of your operator name (e.g., Bo for Bone Imaging Lab) or your operator number. *You can also press "Edit..." and then press the "Find..." and press "OK" to show a list of all the operators that have been registered. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Warning: Error assigning IO-channel for UCT_ACQ_LINE, device already allocated to another user CODE: 2112==== Only one person can be given control of the scanner at any time. Most likely the scanning program is already open. Check the minimized icons on the desktop. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Error: ROT (M1) end switch detected, Motor stopped CODE: 3031==== We're not sure why motor errors occur occasionally. The solution is to exit the scanning program and turn off the scanner (the switch is on the side of the machine). Wait 30 seconds. Turn the scanner on again. Re-start the scanning program. Wait for the scanner to warm up (20 min). [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Error: Acquisition error, Buffer overrun CODE: 1005==== This error occurs if the computer hooked up to the scanner is overloaded and does not accept the stream of CT data quickly enough. Check that no large calculations are running interactively (e.g., loading a large dataset into the 3D viewer while the scan is running). If you happen to be there at the very exact second when the buffer overrun happens, do the following: <pre> $ show user/node/full !check how many users/processes there are $ monitor system/int=1 !check the process that is using the most cpu and page file quota </pre> Advise lab personal of the problem. If nobody is around, put the output of the above commands into a text document, stop the queues for the computer, and repeat the scan. <pre> $ stop/que/next sc5019_fast !for the vivaCT 40 $ stop/que/next sc5019_slow !for the vivaCT 40 $ stop/que/next sceva2_fast !for the µCT35 $ stop/que/next sceva2_slow !for the µCT35 </pre> When finished, restart the queues that you stopped by <code>$ start/que queue_name </code>. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Error: Shutter fail safety test timeout CODE: 2101==== This happens if the scanning program has accidentally be left on overnight and the shutter fail safe test cannot be performed. Ensure that uct_tomography is closed at the end of the day and the scanner computer is logged out at the end of the day to avoid this error. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Error: Input error detected, Z protection detected CODE: 4001==== This means the big plate that you can see through the gantry has moved or been touched, activating one of the Z protection switches. This can happen during positioning a patient for a tibia scan if the person's leg isn't pushed into the scanner straight. The cast can potentially touch the plates and cause this error. In the rare case where this error occurs spontaneously during or at the end of a scan, or during a precalibration, one of the switches may have become activated due to the position of the Z plate. To determine the position(s) this error is triggered, do the following: <pre> $ set host 0 Username: calibration Password: $ sdl $ spb $ run um:ccd_2d </pre> The Scanco test programs will open. First click on the Reset Z button (upper left corner). Then move the Z slider all the way to the right and hit move. If the Z-protection error appears, record exactly which Z position triggers the error (should be a red number on the left hand side of the slider). When you are done with this test, hit Reset Z again, wait until the motor comes to a complete stop (max. 15 seconds), close the software and in the same terminal by <code>$ logout </code>. Contact Scanco regarding this error and provide the details from running the ccd program. They will provide further instructions on how to proceed and fix the problem. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Error: High resolution 30 µm scans and avoiding buffer overrun error==== If you get an error of a Buffer Overrun when scanning at high resolution on the XtremeCT II, use this command prior to open the measurement software from the very same terminal: <pre> $ DEFINE UCT_MEASUREMENT_SHARED_FRAMES 1 $ uct_measurement </pre> This could be set permanently, but it may then also delay the patient scan saving. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Fatal: CCD frame timeout, HOTLink reframing CODE: 1007==== Take a screenshot of the error message and email Scanco immediately. Message indicates that X-ray tube is arcing. Try and warm up the X-ray tube again, and notify Scanco if there is any abnormal activity and whether the tube was able to warm up. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Fatal: Invalid Scanner ID CODE: 24==== You have logged in with the incorrect user name. End the session and login with the correct user name (vivaCT 40: vivact or invivo; µCT 35: microct or invitro). [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Fatal: Unable to create shared memory, global page table full CODE: 196==== The temporary fix is to reboot the system. But before you restart, if you have system access, do the following and save the output to a text to send to Scanco. <pre> $ set host 0 Username: system Password: $ search sys$system:agen$feedback.dat gblpages $ write sys$output f$getsyi("contig_gblpages") $ write sys$output f$getsyi("free_gblsects") </pre> ==Reconstruction== ===Standard Reconstruction=== Scans are automatically submitted for reconstruction, so manual submission is usually only necessary if there was a problem during reconstruction (e.g., a power failure). *To reconstruct all slices from the RSQ, first delete or rename the old ISQ. *To reconstruct a selection of slices, a valid ISQ must exist. There is an offset of 1 slice when designating slice selection. '''General Usage for Interactive Reconstruction''': <pre> $ uct_reconstruction P1 P2 P3 P1: RSQ Filename P2: Slice number (A – all, start:finish) P3: Log file of batch job </pre> '''General Usage for Non-interactive Reconstruction''': $ submit/noprint/que=sys$slow um:uct_reconstruction.com/params=(<b>DISK2:[MICROCT.DATA.00000610.00002449]C000####.RSQ </b>, a) *Normally jobs are submitted to sys$slow queue instead of running them interactively. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Reconstruct a selection of slices==== Here are examples of how to reconstruct a single RSQ file: C0007655.RSQ, sample 4111 and measurement 9899. <br> To reconstruct slices 101 to 201 and submit the job to the sys$slow queue: <pre> $ submit/noprint/que=sys$slow um:uct_reconstruction.com /log=sys$scratch:reco4111.log/para=(dk0:[microct.data.00004111.00009899]C0007655.rsq, 100:200, sys$scratch:reco4111.log) </pre> *The command must be all on one line (or use hyphen), and it wants the 3 parameters: filename, slices, and log.file name [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Reconstruct all slices==== To reconstruct all slices, use “a” for all slices and submit the job to the sys$slow queue: <pre> $ delete C0007655.ISQ;* $ submit/noprint/que=sys$slow um:uct_reconstruction.com/log=sys$scratch:reco4111.log/para=(dk0:[microct.data.00004111.00009899]C0007655.rsq, a, sys$scratch:reco4111.log) </pre> *The .log filename is up to you, as long as it's the same at both places. *Give full pathname for RSQ file. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Reconstruct multiple files==== For multiple files, create a script and submit the job to the sys$slow queue. For example, <pre> $ cd sys$scratch $ eve reco_all.com </pre> Or open editor (command 'Edit'), put the following lines in the file and save it as .e.g sys$scratch:reco_all.com: <pre> $ uct_reconstruction dk0:[microct.data.00004111.00009899]C0007655.rsq a $ uct_reconstruction dk0:[microct.data.00004111.00009900]C0007656.rsq a $ uct_reconstruction dk0:[microct.data.00004111.00009001]C0007657.rsq a $ exit </pre> Save the script and exit the text editor, then submit the job (e.g. to sys$slow): <pre> $ submit/noprint/que=sys$slow/log=sys$scratch:reco4111.log sys$scratch:reco_all.com </pre> All the files will be reconstructed as a single job, with one log file. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Batch reconstruction ==== The reconstruction software available for the XT2 & microCT systems supports the /batch syntax that replaces reco_all.com. You can split a manual reconstruction into several jobs using $ uct_reconstruction DK0:[XTREMECT2.DATA.00001234.00005678]D0123456.RSQ a/batch=16 [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Update to uct_reconstruction V6.2-5, March 2019==== As of March 2019, we should only use uct_reconstruction v6.2-5 on xtremect2. For studies with baseline and follow-up scans overlapping this time, the old version (V6.2-2) can still be accessed using <pre> $ uct_old_recon </pre> Changing reconstruction versions can lead to small systematic differences in the result parameters of a trabecular bone analysis. The old version should only be accessed by those who absolutely need to use it. (Scanco recommends re-reconstructing all measurements of a study with version 6.2-5 instead). [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] === Rotated Reconstruction (about z-axis)=== #Use the [[Scanco_User_Instructions#.C2.B5CT_Evaluation_Program|'''µCT Evaluation Program''']] to measure the angle for the rotated reconstruction. #*To start the program type <code>$ uct_evaluation </code> in a DEC terminal, or use the graph button. #*Load your sample and select the angle measurement button. #*Drag the ends and the intersection of the green lines to measure the desired rotation angle. #:[[File:Angle meas.preview.jpg|600px]] #Rotate and reconstruct #*Use <code>$ @com:reco_all </code> to reconstruct all slices. #*Use <code>$ @com:uct_reconstruction_angle </code> to reconstruct selected slices from an RSQ. #Use the [[Scanco_User_Instructions#.C2.B5CT_Evaluation_Program|'''µCT Evaluation Program''']] to check the sample after the rotated reconstruction: #:[[File:Rotated_reconstruction.preview.jpg|600px]] *'''General Usage''': <pre> $ @com:reco_all.com P1 P2 P3 P1: Angle in degrees P2: Sample number P3: Measurement number $ @com:uct_reconstruction_angle.com P1 P2 P3 P4 P5 P1: RSQ Filename P2: Slice number (A – all, start:finish) P3: Log file of batch job P4: Delete log file (true/false) P5: Angle in degrees </pre> *The angle of rotation uses the right-hand rule: a counterclockwise rotation is positive and a clockwise rotation is negative. *The angle of rotation uses a single decimal place. *By default the reconstruction jobs will be placed in the sceva3_slow queue. *Both functions are executed from the measurement directory. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Reconstruct all slices==== The following examples are for a 19.1 degree counterclockwise rotation of sample 6876, measurement 15417, C0005086.RSQ. <pre> $ @com:reco_all.com 19.1 6876 15417 </pre> *Delete the ISQ file from the measurement directory. ====Reconstruct a selection of slices==== *A valid ISQ must exist. *There is an offset of 1 slice when designating slice selection. To reconstruct slices 36 to 41: <pre> $ @com:uct_reconstruction_angle.com DK0:MICROCT.DATA.00006876.00015417]C0005086.RSQ 35:40 sys$scratch:reco610.log true 19.1 $ @com:uct_reconstruction_angle.com DK0:MICROCT.DATA.00006876.00015417]C0005086.RSQ 35:40 "" "" 19.1 </pre> *"" is used as a null input for optional parameters. Instead of submitting in the terminal and running interactively, submit it to the queue as follows <pre> $ submit/noprint/que=sys$slow com:uct_reconstruction_angle.com/log=sys$scratch:TEST.LOG/para=(DK0:[XTREMECT2.DATA.00002816.00014743]D0012841.RSQ,A,sys$scratch:TEST.log,"",156.1) </pre> [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Other Reconstruction=== ====Reconstruct at a new voxel size==== See a script in: DISK1:[XTREMECT2.EVAL]UPDATE_HEADER.COM This script includes the following type of information: $ r ut:updh_voxelsize.exe DK0:[XTREMECT2.DATA.00000010.00000050]D0000068.RSQ 122 82000 1706 $ r ut:updh_voxelsize.exe DK0:[XTREMECT2.DATA.00000011.00000054]D0000072.RSQ 122 82000 1706 This is what one would do in a terminal. The only requirement is that this <code>updh_voxelsize.exe</code> cannot be executed as the normal user. Prior to that, one has to log as calibration, and do: $ set proc/priv=bypass [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ==Manipulate RSQ== ===View RSQ projections and flat field=== It can be very useful to examine the projections that are contained in the RSQ file, as well as to see the flat field correction frames. In the session manager, double click the RSQ file and the program ximage will open. Or, type: $ sh sym x X == "$UM:XIMAGE.EXE" $ x D0000018.RSQ Then switch to xz view and go to the second slice (in this order). Then you should see a frame of the none attenuated beam (nothing in the beam, or Scanco calls it the I0 frame). If it is a multi stack measurement then there will be several copys of this frame in this image. In an RSQ you have for each slice of the detector one dark current line and then the full intensity line followed form the radiographs taken under the different angles (sinogram). In the x direction is the detector line, in the y direction is the rotation angle (except dark and I0) and in the z direction is the z-direction of the scanner. If you switch the view to xz, then you can see the frames as acquired by the detector (or stacked frames all taken under the same rotation angle). Frame 1 is then the dark image and Frame 2 is the full intensity image. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Convert RSQ to AIM=== <pre> $ ipl ipl> rsq_to_aim in YP_IGFAMOTION_003_6.RSQ -pos [0 0 0] > -dim [-1 -1 -1] > -convert_to_pro [false] > true -sinogram_not_frames [true] > true -div_unsigned_by_2 [false] > true ipl> write -name [internal_name] > in -filename [default_file_name] > YP_IGFAMOTION_003_6_rsq.aim -compress_type [bin] > none -version_020 [true] > </pre> [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Convert RSQ to PSQ=== First, in the terminal turn on the 'advanced questions' mode <pre> $ define uct_reconstruction_calibration true </pre> Second use the reconstruction EXE to convert RSQ to PSQ <pre> $ run UCT_RECONSTRUCTION.EXE raw file: DISK3:[MICROCT.PROJECTS.YVES.LANDMARK.RAW]filename.RSQ Give slice number, or 'a' for all hit return a few times Write Projection [N]: -> say y and it writes the PSQ and continues with reco Say p if it shall just produce PSQ and NOT continue with reco! </pre> Beam hardening correction can be turned off by doing <pre> $ DEFINE UCT_RECONSTRUCTION_CALIBRATION TRUE $ define uct_disable_bh_correction true $ deass UCT_BEAMHARD_POWER $ deass UCT_BEAMHARD_factor </pre> and then run <code>uct_reconstruction</code> The RSQ contains the RAW projection data. The PSQ represents tilted parallel beam projections: [[Image:CB-Rebinned.gif]] The rebinning process reduces the number of projections from 836 (1 bright field, 1 dark field and 834 projections spaced at 0.24 deg/proj, spanning 200.16 deg) to 750 (spanning 180 deg) with a resolution of 0.24 deg. In addition to the geometric changes, intensities are adjusted ln(I/I0) and beam hardening correction is applied. After converting a PSQ to AIM with IPL, an image can be reconstructed with Matlab's iradon(), note that only the central slice will be geometrically 'correct', but differences in other slices are small (Circumference of calibration phantom differs less than 1%). in the final reconstruction these effects are accounted for reducing the number of z-slices from 124 (acquired) to 110 in the reconstructed image. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Measure RSQ motion artifact=== Based on RSQ data, in-plane translation and rotation, and longitudinal translation can be determined. The RSQ is first converted to a tilted parallel-beam sinogram. Motion is measured using the bonelab_measuremotion command in the Calgary extension of IPL installed on percy. Copy the motion scripts available in <code>DISK3:[MICROCT.PROJECTS.YVES.SCRIPTS]</code> to your COM directory. Here is how they work: * RSQ_TO_PSQ.COM;1 - (optional) convert RSQ to PSQ, PSQ gets created in the same directory as RSQ. Usage: <code>$ @rsq_to_psq.com DK0:[BRUNO.DATA.00000162.00009479]C0008921.RSQ</code> * IPL_MEASUREMOTION.COM;2 - Takes a PSQ and measures motion using Calgary IPL on percy <pre> $! example of how to submit a motion measurement $ SUBMIT/NOPRINT/QUE=SYS$FAST /LOG=SYS$SCRATCH: - DISK3:[MICROCT.PROJECTS.YVES.SCRIPTS]IPL_MEASUREMOTION.COM - /PARAM=(DISK3:[MICROCT.PROJECTS.DEVEL.RECO_TEST.RAW]PHANTOM_NOMOTION.PSQ) - /LOG=DISK3:[MICROCT.PROJECTS.YVES.SCRIPTS]MEASUREMOTION.LOG </pre> Results are save in <code>MEASUREMOTION.LOG</code> and the following section contains all information: <pre> /bonelab_measure_motion -input org Motion: Translation = 2.135364 Rotation = 0.024216 Index = 3.694660 Translation weight = 0.943156 Rotation weight = 69.403737 Z_motion = 2.274551 Use the line below with search. Translation,Rotation,Index,Trans_weight,Rot_weight,Z_motion 2.135364,0.024216,3.694660,0.943156,69.403737,2.274551 Use the line below for DB entry (Index*100). db_motion_index=369.466034 </pre> In-plane translation is '''Translation''', in-plane rotation is '''Rotation''' and longitudinal translation is '''Z_motion'''. '''Index''' is the total in-plane motion as used in the IEEE ISBI 2009 paper by linear combination using the weights, not used any more, now we use in-plane translation only. '''db_motion_index''' is the motion index value multiplied by 100 and that could be written to the patient database. Multiplication by 100 is necessary since the motion field in the database is integer only. For more background on the algorithm look at ''Pauchard Y., et al, Measuring patient motion in HR-pQCT, IEEE ISBI 2009'', and ''Pauchard Y., et.al., Automated quantification of three-dimensional subject motion to monitor image quality in high-resolution peripheral quantitative computed tomography, Phys Med Biol. vol. 56, pp 6523-6543, 2011''. '''IMPORTANT''': The IPL implementation has not been validated against the Matlab implementation used in these publications. Motion Values can be different. Values can be automatically extracted as described below. * RSQ_MEASUREMOTION.COM;10 - The full deal: creates PSQ and measures motion all in the same directory as the RSQ. <code> @DISK3:[MICROCT.PROJECTS.RESCAN.COM]RSQ_MEASUREMOTION.COM DISK3:[MICROCT.PROJECTS.RESCAN.RAW]M0003508.RSQ;1 </code> Make sure to adjust the line: <code>$ SCRIPTFILE := DISK3:[MICROCT.PROJECTS.YVES.SCRIPTS]IPL_MEASUREMOTION.COM</code> to the location of your <code>IPL_MEASUREMOTION.COM</code>. The results are stored in the same directory as the RSQ in <RSQname>MOTION.LOG and can be extracted into motion_all.txt by running the search command: <pre>search/output=motion_all.txt/window(0,1)/match=OR *motion.log "Translation,","Patient Name "</pre> [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Update RSQ's Center Information=== <pre> $ set host 0 username: calibration password: $ spb or $ set proc/priv=bypass $ run [.util]updh_center Raw-Data-File: enter location of raw data (with directory if necessary) Center X: [15430]: enter new center value (e.g. 15415) Press return for all other options. </pre> [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Determine RSQ's Centre Calibration Values=== <pre> $ define uct_reconstruction_calibration true ! Note: do not mistype... or the calibration program will not run </pre> In the SAME terminal: <pre>$ uct_reconstruction dk0:[microct.data.00004026.00004576]c0001344.rsq Slice-Nr. [0...919] (Neg. to stop): 100 Center [207]: here enter a new number </pre> Hit return a few more times to use default values for other options. <pre> XtremeCT check these values, that they do not change: Maximal possible Scan-Distance (mm) = 125.9520 Cropped adjusted Scan-Distance (mm) = 125.9520 See that it does not change, e.g. drop to 124 mm or such... </pre> Then do that again, $ uct_reconstruction ....rsq 100 (for the first time, for each file/scan). Double click on ISQ. slide to slice 101 (!) (100+1, since terminal zero based) compare with image in e.g. slice 100 or 99 (disregard funny half image shift...) Should already look nicer. Then try out with e.g. center 230 or so, with e.g. slice 101 (thus slice 102 in Ximage). (now, only one run is necessary) <pre> compare against image with center e.g. 200. continue at libitum until you find the best center, the crispest image. </pre> Usually the centre is determined to within about 3 to 5 points (which is 0.3 to 0.5 pixels), so e.g. test 225 and 230, and maybe 228. Write down your favourite. If you cannot decide: let Andres know which ISQ slice was reco-ed with which center (in 'Ximage' slice numbers), and I can check - but since remote Ximage is SOOO slow, thanks for only pointing out a few options, I cannot check 20 settings... Then continue with next diameter scan (the first time for each scan, reco twice again) The different diameter centers should be a steady function, so all the new center values should be increasing as diameter decreases. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Modify RSQ's BHC for in-air scans=== This is necessary because the beam-hardening correction factor assumes scans were done in soft tissue. It is necessary to choose calibrations of 1200 or 700, instead of the default 200. Currently, the XtremeCT has options for 200 (standard) or 1200 calibration (in air). To do this, log in as users <code>calibration</code> and then: <pre> $ set proc/priv=bypass ! as user calibration; modification of MICROCT user data $ run ut:UCT_EXT_HEADER_ADD_CALIB.EXE > Raw-Data-File []: DISK2:[MICROCT.DATA.00000401.00001495]C0001404.RSQ > ... > Add another BH-Corr from file again? (Y/N) [N]: ! Enter yes (UCTD:UCT_BH_COEFF_60KV_1200HA_3309.TXT) </pre> Then, <b>delete</b> the old ISQ. It must be deleted or else the header information will not be changed. Finally, reconstruct the new ISQ and analyze... [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ==Manipulate ISQ== ===Read an ISQ header=== You can either read using the standard tool $ ctheader C0014141.ISQ $ sh sym ctheader CTHEADER == "$UT:CTHEADER.EXE" Or, use the extended header tool to show the calibration data $ run ut:uct_ext_header_display.exe [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ==Image Artifacts== ===Ring Artifact=== *Refer to [[Media:Microct_ring_correction.pdf|'''MicroCT Ring Correction''']]. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Partial Volume Effect=== *Refer to [[Media:Partial_Volume_Effect.pdf|'''Partial Volume Effect''']]. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ===Beam Hardening Correction (BHC)=== ====Use the right BHC==== *Refer to [[Media:Beam_hardening_correction.pdf|'''Use the right beam hardening correction''']]. [[Image:Redirect.jpg|15px]] [[#top|''Return to Contents'']] or [[Main_Page|''Return to Main Page'']] ====Understand Scanco BHC==== If you see lines like 'CCD_CORR: Expand BH-corr to1536' etc. etc.: then we do a polynomial correction: <pre> $ dir uctd:*bh_coeff*.txt </pre> and you see a file with the scanner ID. <pre> --> $ type uctd:UCT_BH_COEFF_60KV_0200HA_3309.TXT --> ! Function 9 is Addpolynom Function: 9 A 0: 3 0.00000000 -0.38599902 0.30870225 -0.06162301 --> 0: for all pixels. 3 --> 3rd degree polynom, with factors: x^0 = 0 x^1 = -0.38... x^2 = 0.308... x^3 = -0.061... </pre> This polynom is added to the PROJECTION value (not the raw counts). the BH-corr is doing a 'linearization', e.g. see http://iospress.metapress.com/content/twcxb9jfk8knhpq2/ for more info. The values in the middle of the scan are amplified more - not just because of their position, but because the object is thicker there, thus the projection values are higher, thus the correction term is higher. <b>NOTE</b> : Linearisation, as used by Scanco, will compensate 'soft-tissue' beam hardening (inside of water phantom appears <b>LESS</b> dense). Bone related beam hardening, e.g. soft tissue near skull appearing <b>MORE</b> dense, will <b>NOT</b> generally be compensated. See Kak and Slaney 'Principles of computerized tomogprahic imaging' and Joseph and Spital J Comp Assist Tomo 1978 vol 2 for more information. [[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