|
|
| (599 intermediate revisions by 14 users not shown) |
| Line 1: |
Line 1: |
| __TOC__
| | #REDIRECT [[Main Page]] |
| | |
| | |
| ==Tips and Hints for OpenVMS==
| |
| | |
| ===HowTo: Edit Scanco Submit Command Symbol===
| |
| | |
| In directory <code>DISK2:[MICROCT]MICROCT_SETUP_USER.COM</code> add the following line:
| |
| <pre>
| |
| $ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:
| |
| </pre>
| |
| Then end session and log in again.
| |
| | |
| ===HowTo: Start a 3D evaulation from the terminal===
| |
| | |
| Warning: Do not change <code>uct_evaulation_v4.com</code> and <code>ipl_fixed_batch_v4.com</code> in .eval, but only work on your own file (i.e., eval_steve).
| |
| First, an explanation of how the normal evaluation runs by hitting the 'Start 3d' button.
| |
| <pre>$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)</pre>
| |
| There are 8 parameters:
| |
| *P1: number of print outs of our results sheet
| |
| *P2: the ISQ filename
| |
| *P3-5: start x (pos x), y, z
| |
| *P6-8: dim x, y, z
| |
| The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the <code>isq_to_aim_gobjbox.exe</code> and then give the relevant parameters. You can
| |
| <code>$ run um: isq_to_aim_gobjbox.exe </code>
| |
| to see what it's asking for.
| |
| By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:
| |
| <pre>$ scanco_submit_command ue:uct_evaluation_special_josh.com –/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)</pre>
| |
| Note that you can make <code>uct_evaluation_special_josh.com</code> such that there is no need for P1 (change p2 to p1 in the script, etc).
| |
| [Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.] | |
| Then call whatever IPL files you want to call. Look into <code>fixed_batch_v4</code> to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.
| |
| | |
| ===HowTo: Get information about a sample or measurement from database===
| |
| The following will create a <code>sys$scratch:info.txt</code> file.
| |
| <pre>$ write_info</pre>
| |
| | |
| ===HowTo: Fix "last slice" error problem when extracting AIM from ISQ===
| |
| Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.
| |
| The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).
| |
| | |
| ===HowTo: Use the new UCT_BACKUP software===
| |
| New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.
| |
| | |
| Start the move/copy by clicking on <code>'Start...'</code>
| |
| The <code>'Script...'</code> button is for advanced users.
| |
| | |
| <b>Advanced Users:</b>
| |
| Use of the 'Script...' button: this will generate a script,
| |
| <code>sys$scratch:archive.com</code>,
| |
| that you may submit in batch mode later (e.g. over night) by typing:
| |
| <pre>$ scanco_submit_command sys$scratch:archive.com/after=23:59</pre>
| |
| | |
| (In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. <code>/que=sceval_fast</code> )
| |
| | |
| Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it's a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.
| |
| <code>$ show entry</code> will show you that it is holding until then.
| |
| See <code>$ help submit /after</code> and <code>$ help dcl_tips date_time example</code> for more help on this.
| |
| | |
| <b>Little Reminder:</b>
| |
| While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.
| |
| What to do when tape is full? It then displays some message about continuing on another tape. Hit <code>ctrl/c</code> to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit <code>'start'</code>.
| |
| | |
| And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!
| |
| | |
| How to do weekly backup: insert 'special' weekly backup tape, e.g. week_a, and
| |
| just hit 'Full backup to tape'.
| |
| | |
| ===HowTo: Extract your results from the 3D database===
| |
| | |
| Assuming you've used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.
| |
| <pre>$ uct_list</pre>
| |
| The output text file will be stored in <code>sys$scratch</code> and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed.
| |
| | |
| Importing into Excel requires setting a deliminator based on the space.
| |
| | |
| ===HowTo: Tabulate your LOG file results from 3D evaluations===
| |
| Only use this if you have not used the standard <code>uct_evaluation</code> tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).
| |
| You can tabulate the LOG files:
| |
| <pre>$ search xxxx.log "ov "</pre>
| |
| Or whatever you want to search for can be stored in a text file
| |
| <pre>$ search/output=sys$scratch:ov.txt xxxx.log "ov "</pre>
| |
| To search more than one log file, and get the output into one single file:
| |
| <pre>$ fda/output=xxx.txt search *.log "ov "</pre>
| |
| | |
| The fda means 'file do all' and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.
| |
| Josh has made a .com file that does a similar job as described above.
| |
| | |
| ===HowTo: Import foreign data into the Scanco database===
| |
| | |
| Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).
| |
| | |
| <b>PART 1:</b>
| |
| | |
| After transfering your data to the VMS system (use the data disk <code>disk2</code>, NOT the user disk <code>disk1</code>), use the IPL commands <code>/import_freeformat</code> or <code>/read_aim function</code> to import your data for conversion to an ISQ.
| |
| | |
| For DICOM files, start IPL and run the <code>/dicom</code> function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).
| |
| | |
| There may be requests by IPL to convert your data to <code>signed short</code> or <code>signed char</code> from other data types. Obey these requests and do it by running the <code>/convert_unsigned</code> function.
| |
| | |
| Then, write the ISQ file.
| |
| <pre>ipl> toisq in dk0:[microct.data]D0000001.ISQ
| |
| -square true
| |
| -original_pos false</pre>
| |
| | |
| This writes the ISQ file. Note that the filename MUST have one letter followed by seven digits. The letters and numbers can be chosen freely.
| |
| | |
| <b>PART 2: </b>
| |
| | |
| Create a sample in the database and write down the sample and measurement number. Then, run:
| |
| <pre>$ run um:uct_import</pre>
| |
| | |
| And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).
| |
| | |
| Operator and controlfile can be left 0 if you want.
| |
| | |
| Then it changes the sample and measurement number in the ISQ file, makes the correct directory on <code>dk0</code>, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line. Done!
| |
| | |
| You can now use the normal uct_evaluation program with this file.
| |
| | |
| <b>Note</b>, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.
| |
| | |
| ===HowTo: Launch an editor such as EVE===
| |
| On the command line
| |
| <pre>$ edit/display=decwindows/tpu fname.txt</pre>
| |
| | |
| ===HowTo: Edit a symbol set by Scanco such as AIX===
| |
| Log in as user calibration
| |
| <pre>
| |
| $ set proc/priv=bypass
| |
| $ cdc (changes to microct_common)
| |
| $ sea *.com aix
| |
| </pre>
| |
| Edit that file which is called <code>microct_setup_common.com</code>
| |
| | |
| ''Another example'': To make the backspace/insert keys work properly, edit the <code>login.com</code> and insert the line
| |
| <pre>
| |
| $ set terminal/insert
| |
| </pre>
| |
| Anywhere suitable.
| |
| | |
| ===HowTo: Convert CT numbers to mg HA/ccm===
| |
| The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02.
| |
| | |
| These numbers are available in the AIM header, or the ISQ header (<code>$ run ut:ctheader</code>).
| |
| The conversion is as follows:
| |
| <pre>
| |
| mg HA/ccm = (AIM/mu_scaling) * slope + intercept
| |
| mg HA/ccm = (AIM/4096) * 295.494 – 189.695
| |
| </pre>
| |
| <pre>
| |
| !----------------------------------------------------------------------
| |
| 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>
| |
| | |
| ===HowTo: Submit a job to the queue===
| |
| <pre>
| |
| $ submit/noprint /que=sys$slow ipl_voi_josh_m.com
| |
| - /log=sys$scratch:test.log
| |
| </pre>
| |
| | |
| ===HowTo: Assign special 3D evaluation to the uct_evaluation tool===
| |
| '''Warning''': This is for advanced users ONLY. Do not attempt this without contacting Steve!
| |
| | |
| This will show how to set up <code>$ eval_kyle</code>:
| |
| It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:
| |
| <pre>
| |
| $ eval_special
| |
| </pre>
| |
| will do something similar to <code>$ voi</code> where the normal contour program opens, but if you start the 3D eval, the special script <code>um:uct_evaluation_special.com</code> is called (associated with eval_special), which then in turn calls <code>ipl_fixed_batch_special.com</code>, where you can specify your own set of thresholds, etc.
| |
| | |
| So it is a daisy chain of files which we will need to follow to set up a special <code>xxx_kyle.com</code> script, and where ever we encounter <code>_special.com</code>, we copy and change it to <code>_kyle.com</code>.
| |
| | |
| So to set up $ eval_kyle you will need to do the following:
| |
| 1. Edit microct_setup_user.com (double-click on file), please be careful here, it's very important! (and I hope you have done your 'weekly full backup' regularly, so you could always retrieve a good version of login.com...)
| |
| 2. Then, towards to bottom and duplicate the line
| |
| $ eval_special :== @com:eval_var.com um:uct_evaluation_special.com
| |
| and change duplicate to
| |
| $ eval_kyle :== @com:eval_var.com um:uct_evaluation_kyle.com
| |
| This will make this command 'eval_kyle' available after you login freshly. Save and Exit.
| |
| | |
| 3. Then go to disk1:[microct.eval] and copy the file uct_evaluation_special.com to the name uct_evaluation_kyle.com ('Commands', 'Copy ...', BUT CLICK ON THE THREE DOTS and give new output name. If you do not see the eval_special: go to terminal, $ dir ue:*special*.com and take it from the microct_common directory)
| |
| 4. Edit the _kyle.com file: at the top, change ipl_......_special.com to _kyle.com
| |
| 5. Copy ipl_fixed_batch_special.com to ipl_fixed_batch_kyle.com
| |
| 6. Edit ipl_fixed_batch_kyle.com to your liking. If you want $ eval_kyle to not perform the full evaluation, but only something akin to voi, then, in the steps above, copy uct_eval_voi.com to uct_evaluation_kyle.com, and ipl_voi.com to ipl_fixed_batch_kyle.com (thus you take the voi script as template for the _kyle script).
| |
| 7. Then open a new terminal ('applications', 'decterm'),
| |
| $ eval_kyle
| |
| should work now!
| |
| Notes: When you start the 3D eval, then
| |
| $ que
| |
| will show you your batch job with your name on it now!
| |
| And now a few more explanations how the whole thing works: in all eval programs, hitting 'Start 3d' just submits the logical 'uct_evaluation', $ show log uct_evaluation shows you that by default, this points to ue:uct_evaluation_v4.com.
| |
| those little voi and eval_steve script then just temporarily redefine this logical so that a different script is submitted when you 'start 3d eval'.
| |
| About the corelut eval: Then we start a whole different eval program: the .exe_corelut. So: if you set up a eval_steve_c (or whatever you want to call it): Produce a eval_var_c.com in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting
| |
| $ uct_evaluation
| |
| (the normal program), replace by
| |
| $ evalc
| |
| which starts the .exe_corelut - and because the eval_var.com has over-ridden the uct_evaluation logical just before, then you are starting different script upon starting 3d eval.
| |
| NB: we have a logical AND a symbol called uct_evalution. Sorry for confusion. Symbol uct_evaluation starts normal eval program, so this is what you replace by symbol evalc now).
| |
| HowTo: Creating your own IPL script tips
| |
| To make a script that would submit a job to the queue with the command as follows:
| |
| $ @um:ipl_eval_only.com 'aim_file' 'gobj_file' 'p1' 0
| |
| | |
| you need to create your own IPL file would be translated to the following command:
| |
| $ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM /log=sys$scratch:test.log /para=('aim_file','gobj_file','seg_file')
| |
| The IPL file would look something like this…
| |
| $ if p1 .EQS. ""
| |
| $ THEN
| |
| $ write sys$output "Give DK0:[xxx]C0001234_SEG.aim on the line."
| |
| $ write sys$output "Or: "
| |
| $ write sys$output "Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) "
| |
| $ exit
| |
| $ endif
| |
| $
| |
| $ gobj_file = p1-F$PARSE(p1,,,"VERSION")-"_SEG.AIM" + ".GOBJ"
| |
| $ aim_file = p1-F$PARSE(p1,,,"VERSION")-"_SEG.AIM" + ".AIM"
| |
| $
| |
| $!
| |
| $ @um:ipl_eval_only.com 'aim_file' 'gobj_file' 'p1' 0
| |
| $ exit
| |
| Some more handy IPL sequences are:
| |
| $ INPUT = F$SEARCH("UCT_MEASUREMENT_DATA:[*.*''P1']*.RSQ",1)
| |
| and then you just need to give meas. number as P1 (and maybe slice range as p2),
| |
| $ if p2 .eqs. "" then p2 := A
| |
| OR, some nice starts are:
| |
| $ IF P3 .EQS. ""
| |
| $ THEN
| |
| $ WRITE SYS$OUTPUT "P1: Measurement Number to duplicate"
| |
| $ WRITE SYS$OUTPUT "P2: New Sample Number from Database"
| |
| $ WRITE SYS$OUTPUT "P3: New Start Letter of ISQ file"
| |
| $ WRITE SYS$OUTPUT "P4: Optional: Operator Number"
| |
| $ WRITE SYS$OUTPUT "P5: Optional: Controlfile Number"
| |
| $ EXIT
| |
| $ ENDIF
| |
| where you say which parameters HAVE to be there (up to p3), and which ones are optional.
| |
| All together, the script may look like this:
| |
| $ IF P1 .EQS. ""
| |
| $ THEN
| |
| $ WRITE SYS$OUTPUT "P1: Measurement Number to reco"
| |
| $ WRITE SYS$OUTPUT "P2: Optional: Slice number N or Range M:N. Auto:All"
| |
| $ WRITE SYS$OUTPUT "P3: Optional: Queue. Auto: sys$slow"
| |
| $ EXIT
| |
| $ ENDIF
| |
| $ if p2 .eqs. "" then p2 := A
| |
| $ if p3 .eqs. "" then p3 := SYS$SLOW
| |
| $ slices = p2
| |
| $ quename = p3
| |
| $ INPUT = F$SEARCH("UCT_MEASUREMENT_DATA:[*.*''P1']*.RSQ",1)
| |
| $ INPUT = INPUT - F$PARSE(INPUT,,,"VERSION")
| |
| $ logfile = "sys$scratch:RECO_" + f$PARSE(input,,,"NAME") + ".LOG"
| |
| $ submit/noprint/queue='quename' uct_reconstruction_file -
| |
| /para=('input','slices','logfile')
| |
| $ exit
| |
| Note that uct_reconstruction_file is a logical that points to um:uct_reconstruction.com. Logicals are preferred in scripts to make them more universal.
| |
| HowTo: Create a customized button in the session manager
| |
| The session manager part to enable the double-click on the AIM file:
| |
| Session Manager, 'Options', 'Menu', enter new item
| |
| SAP
| |
| with command:
| |
| @decw$user_defaults:sap$vue
| |
| Then move that menu point into 'Applications' menu.
| |
| Also:
| |
| 'Options', 'File types', Create 'AIM' file type.
| |
| Move 'rename', 'copy', 'purge' etc. into menu, Select 'SAP', click on
| |
| 'Change double click', and also move SAP into menu.
| |
| | |
| ===HowTo: Import data onto the VMS system===
| |
| Create a project directory (i.e., <code>DK0:[MICROCT.PROJECTS.SB.RABBIT]</code>). Use FTP to transfer AIM files from other sources to the directory. Run IPL and use the <code>/toisq_from_aim</code> command to generate ISQ files. Create entries in the data base (sample name/number using the data base entry tool).
| |
| | |
| Run <code>$ run um:uct_import</code> to import the newly created ISQs into the data base by the names entered above.
| |
| (Note that <code>um:</code> is a logical for <code>disk1:[microct.main]</code> (directory), give the ISQ. Give the sample number, rest default, check and use rename command it gives you on screen. <b>Remember</b>, the ISQ name must be 8 characters long (1 character followed by seven digits)!!!
| |
| Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.
| |
| | |
| ===HowTo: Use uct_evaluation without importing ISQ into the database===
| |
| In a terminal, <code>$ def uct_default_isq xxxxxxxx.isq</code>
| |
| Then start the <code>uct_evaluation</code> tool (or <code>voi</code>, <code>evalc</code>). Hit cancel when asked for a file to read and the default ISQ that was set will be read.
| |
| | |
| ===HowTo: Export the VMS display to SUN or LINUX terminal===
| |
| <pre>
| |
| # - temple
| |
| $ - sceval
| |
| # xhost +
| |
| # ssh -X microct@sceval.ucalgary.ca
| |
| $ set display /create /transport=tcpip /node=temple.ucalgary.ca
| |
| </pre>
| |
| | |
| ===HowTo: Monitor CPU usage with a program like TOP===
| |
| <pre>
| |
| $ monitor/interval=1 processes/topcpu
| |
| </pre>
| |
| | |
| ===HowTo: Configure the EVE editor===
| |
| The following file, called <code>tpu.dat</code>, should be installed in <code>disk1:[microct.xdefaults]:</code>
| |
| <pre>
| |
| #
| |
| # DECTPU V3.1 1993-04-22 15:50 defaults
| |
| # CHANGED B.KOLLER 21-JUN-90
| |
| #
| |
| # Copyright (c) 1993 Digital Equipment Corporation. All rights reserved.
| |
| #
| |
| #
| |
| # The following are all the resource names that DECTPU supports.
| |
| #
| |
| Tpu.Tpu$MainWindow.Title: DECTPU Copyright © Digital Equipment Corporation 1992. All Rights Reserved.
| |
| Tpu.Tpu$MainWindow.ApplicationTitle: DECTPU
| |
| Tpu.Tpu$MainWindow.IconName: DECTPU
| |
| Tpu.Tpu$MainWindow.X: 610
| |
| Tpu.Tpu$MainWindow.Y: 0
| |
| #
| |
| # The following resource names are commented out so that users can specify
| |
| # *rows and *columns and have DECTPU obey those directives. If DECTPU finds
| |
| # finds no resource names governing the number of rows and columns it should
| |
| # have, it uses 24 rows and 80 columns.
| |
| #
| |
| #
| |
| Tpu.Tpu$MainWindow.Columns: 80
| |
| Tpu.Tpu$MainWindow.Rows: 56
| |
| *EVE_MENU_BAR*background: #ADADADADADAD
| |
| Tpu*XmScrollBar*background: #ADADADADADAD
| |
| Tpu*XmDialogShell*background: #ADADADADADAD
| |
| Tpu*XmMenuShell*background: #ADADADADADAD
| |
| *background: white
| |
| Tpu*condensedFont: OFF
| |
| Tpu*fontSetSelection: 0
| |
| | |
| # 0 = big font
| |
| # 1 = little font
| |
| # 2 = GS font (German Standard)
| |
| # 3 = Fine font (used only for non-latin 1 fonts?)
| |
| </pre>
| |