Presentation is loading. Please wait.

Presentation is loading. Please wait.

Representing and Processing Scientific Data with Teem: Applications to CT and DT-MRI Gordon Kindlmann Representing and Processing Scientific Data with.

Similar presentations


Presentation on theme: "Representing and Processing Scientific Data with Teem: Applications to CT and DT-MRI Gordon Kindlmann Representing and Processing Scientific Data with."— Presentation transcript:

1 Representing and Processing Scientific Data with Teem: Applications to CT and DT-MRI Gordon Kindlmann Representing and Processing Scientific Data with Teem: Applications to CT and DT-MRI Gordon Kindlmann Scientific Computing and Imaging Institute, School of Computing, University of Utah

2 The software: teem includes nrrd and ten Application 1: Inspecting CT data Application 2: Estimating and inspecting diffusion tensors Outline

3 Teem overview Software I write to do research Data processing, scientific visualization Open-source: http://teem.sourceforge.net Get pre-compiled binaries, reproduce resultsreproduce results Collection of ANSI C libraries Function calls do what you need Pseudo-object-oriented: nrrdNew(), nrrdCopy(), nrrdSlice(), nrrdNuke() Uncommon library names Multiple interfaces Command-line: Repeatability, reproducability API  BioTensor  GUI

4 Teem libraries Basic utility functions + macros Command-line parsing Nearly Raw Raster Data: representing (in memory, on disk) and manipulating N- dimensional arrays Filtered point sampling: interpolating scalar, vector, tensor fields; used for fiber tracking in Bio-Tensor All things diffusion tensor

5 Two libraries, two utilities Underlying library nrrd ten Command-line utility unu tend also BioPSE module name prefix

6 nrrd : what it is Nearly Raw Raster Data No abstractions, no cleverness Representation and manipulation of N- dimensional raster data: File format Data structure Large set of operations Used by SCIRun, ITK, others Format and API are stable

7 nrrd : why it is Information in scientific computation and visualization often N-dimensional array: 1D: histograms, time-varying scalar 2D: gray-scale images, scatterplots, collection of signals 3D: color images, CT/MRI volumes 4D: vector/tensor volumes, time- varying scalar fields 5D: time-varying vector/tensor fields Common format and tools for all of these

8 nrrd : capabilities Subset, superset Cropping, slicing, padding, joining Arithmetic Adding, multiplying Converting Quantization, changing type Rearranging Permute axes, flipping+shuffling slices, bricking (w/out overlap) Filtering Up+downsampling, blurring, median Measuring: projection along an axis Min, max, mean, L2, variance, etc. Histograms of all sorts dimension generality

9 Getting data in: NRRD file format NRRD0001 content: a dozen images type: float dimension: 4 sizes: 3 640 480 12 encoding: raw endian: big Detached headers possible: “ data file ”, “ line skip ”, “ byte skip ” Different encodings possible: Raw, ASCII, gzip-compressed, hex Can be generated by hand … ASCII header for array description Blank line Data

10 Getting data in: “ unu make ” unu make -i \ -s 3 640 480 12 -t float \ -e raw -en big -o images.nrrd NRRD0001 type: float dimension: 4 sizes: 3 640 480 12 encoding: raw endian: big … unu make -h -i \ -s 3 640 480 12 -t float \ -e raw -en big -o images.nhdr Pretty? No. Effective? Yes.

11 Concept: raster ordering N-D raster data has “raster ordering” (0, 0, 0) (1, 0, 0) (2, 0, 0) (0, 1, 0) (1, 1, 0) (2, 1, 0) … (0, 539, 0) (1, 539, 0) (2, 539, 0) (0, 0, 1) … (0, 0, 2) … (0, 539, 379) (1, 539, 379) (2, 539, 379) linear ordering in memory 2-D color image  3-D array color:X:Y Each coordinate is an axis Axes ordered: fast to slow; contiguous to distant Fast: color Medium: X Slow: Y color X Y

12 The software: teem includes nrrd and ten Application 1: Inspecting CT data Application 2: Estimating and inspecting diffusion tensors Outline

13 To inspect one slice: zcat c_vf1700.fre.Z \ | unu make -t ushort -e raw \ -en big -s 512 512 -bs 3416 \ | unu quantize -b 8 \ | unu save -f pnm | xv - (demo of this, and command list) cp data/c_vf16{4,5,6,7,8,9}?.fre.Z. cp data/c_vf17??.fre.Z. cp data/c_vf18{0,1,2}?.fre.Z. uncompress *.Z unu make -i *.fre -t ushort -e raw -en big \ -s 512 512 190 -bs 3416 \ -sp 0.9375 0.9375 1.0 \ | unu crop -min 324 84 0 -max 499 270 M \ -o vfrhand.nhdr rm -rf *.fre Unu application: Visible human CT (link)

14 Unu application: Visible human CT

15 The software: teem includes nrrd and ten Application 1: Inspecting CT data Application 2: Estimating and inspecting diffusion tensors Outline

16 Diffusion in Biological Tissue Motion of water through tissue Faster in some directions than others Kleenexnewspaper Anisotropy: diffusion rate depends on direction isotropicanisotropic

17 Diffusion in 3D isotropic anisotropic linear planar spherical Diffusion Tensor: 3x3 semi-positive definite symmetric matrix Ellipsoids represent variety of possible diffusion patterns Ellipsoid is image of unit sphere under diffusion tensor matrix

18 Diffusion MRI of brain Anisotropy high along white matter fiber tracts 2.1 - 0.1 - 0.2 - 0.1 2.0 - 0.0 - 0.2 - 0.0 2.1 3.7 0.3 - 0.8 0.3 0.6 - 0.1 - 0.8 - 0.1 0.8 1.7 0.1 - 0.1 0.1 2.3 - 0.3 - 0.1 - 0.3 0.3 Dxx Dxy Dxz DxyDxz DyzDyy DzzDyz

19 Inspecting DWI slices unu make -i 02728/003/I.050 -t ushort \ -e raw -en big -s 256 256 -bs -1 \ | unu quantize -b 8 -o slice.png

20 Inspecting multiple DWI slices unu make -i 003/I.0{5,6,7}? -t ushort \ -e raw -en big -s 256 256 20 -bs -1 \ | unu axsplit -a 2 -s 5 4 \ | unu permute -p 0 2 1 3 \ | unu axmerge -a 0 | unu axmerge -a 1 \ | unu quantize -b 8 -o mosaic.png

21 Making DWI volumes foreach IMG ( 003 004 005 006 007 \ 008 009 010 011 012 013 \ 014 015 016 017 018 019 \ 020 021 022 ) unu make -i 02728/$IMG/I.* -bs -1 \ -t ushort -e raw -en big \ -s 256 256 136 -sp 0.39 0.39 1.00 \ -o dwi/$IMG.nrrd unu resample -I dwi/$IMG.nrrd \ -s 100 100 = -k hann:8 \ -o dwi/$IMG-small.nrrd end

22 Meddling with B-matrix list Brr Brp Brs 0 3 5 0 1 2. Bpp Bps 1 4 3 4.. Bss 2 5 105.92862 0.00003 33746.47739 0.04822 -1.07717 -1484.48257 6868.88229 1.60591 31849.32096 -104.73389 226.02398 -14714.54241 16140.57145 21695.45998 1893.56463 -18690.76297 -6346.26912 5492.96913. unu shuffle -i B-orig.txt \ -a 0 -p 0 3 5 1 4 2 -o B.txt 

23 Estimating diffusion tensors tend estim -i dwi/0??.nrrd -knownB0 false \ -B B.txt -t 48 -o ten.nrrd confidence DxxDxyDxz Dyz Dzz Dyy

24 Inspecting diffusion tensors R = | v 1.x | G = | v 1.y | B = | v 1.z | v1v1 x y z foreach SLC ( 30 40 50 60 ) tend slice -i ten.nrrd -a 2 -p $SLC \ | tend evecrgb -c 0 -a fa \ | unu axdelete -a -1 \ | unu quantize -b 8 \ -min 0 -max 1 -o $SLC-rgb.png end

25 1 = 2 = 3 1 + 2 + 3 = T Space of tensor shape 1 2 3 1 2 3 v1v1 v2v2 v3v3 linear planar spherical 1 >= 2 >= 3

26 Glyph shapes

27 1 glyph = 1 mm 3 Backdrop: FA Color: RGB(v 1 )

28 http://teem.sourceforge.net


Download ppt "Representing and Processing Scientific Data with Teem: Applications to CT and DT-MRI Gordon Kindlmann Representing and Processing Scientific Data with."

Similar presentations


Ads by Google