1 / 28

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

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. Outline . The software: teem includes nrrd and ten Application 1: Inspecting CT data

utt
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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. Outline • The software: teem includes nrrd and ten • Application 1: Inspecting CT data • Application 2: Estimating and inspecting diffusion tensors

  3. Teem overview • Software I write to do research • Data processing, scientific visualization • Open-source: http://teem.sourceforge.net • Get pre-compiled binaries, reproduce 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. 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 Teem libraries

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

  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. dimension generality 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

  9. Blank line Data Getting data in: NRRD file format • NRRD0001 • content: a dozen images • type: float • dimension: 4 • sizes: 3 640 480 12 • encoding: raw • endian: big • <raw data> • 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

  10. Getting data in: “unu make” • unu make -i <data file> \ -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 <data file> \ -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) 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 color X linear ordering in memory Y

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

  13. Unu application: Visible human CT • 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 (link)

  14. Unu application: Visible human CT

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

  16. Anisotropy: diffusion rate depends on direction isotropic anisotropic Diffusion in Biological Tissue • Motion of water through tissue • Faster in some directions than others Kleenex newspaper

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

  18. 2.1-0.1-0.2 -0.12.0-0.0 -0.2-0.02.1 3.70.3-0.8 0.30.6-0.1 -0.8-0.10.8 1.70.1-0.1 0.12.3-0.3 -0.1-0.30.3 Diffusion MRI of brain • Anisotropy high along white matter fiber tracts Dxx Dxy Dxz Dxy Dyy Dyz Dxz Dyz Dzz

  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 Dxx Dxy Dxz Dyy Dyz confidence Dzz

  24. Inspecting diffusion tensors z v1 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 x y R=| v1.x | G=| v1.y | B=| v1.z |

  25. l3 l1 + l2 + l3 = T l1 = l2 = l3 l3 l2 l1 l2 l1 l1 >= l2 >= l3 spherical planar linear Space of tensor shape v3 v1 v2

  26. Glyph shapes

  27. Backdrop: FA Color: RGB(v1) 1 glyph = 1 mm3

  28. http://teem.sourceforge.net

More Related