You must be logged in to post Login Register


Lost Your Password?

Search Forums:


 






Wildcard Usage:
*    matches any number of characters
%    matches exactly one character

Vis Contest 2010 Fiber Tracking

UserPost

11:35 am
April 26, 2010


sd

Member

posts 3

Hi forum,

 

I have tried using DTK to analyze the VIS 2010 contest data (http://viscontest.sdsc.edu/2010/).

Unfortunatly I cannot reproduce the tracking results for the synthetic dataset they provide.

This is what I did:

Split the DTI raw data into one file per timestep and create a analyze header for each file.

The original data is in 16-bit unsigned in format, which is unsupported by DTK. Therefore I converted the volumes to float but was unsure about the data range and tried normalizing it.

I have tried various invert/swap combinations without success.

The results don´t look totally wrong – the helix structure can be recognized, but the tracks are mostly very short and the directions don´t look right.

 

Any ideas or hints?

12:08 pm
April 26, 2010


Ruopeng

Admin

posts 353

Hi,

What is the original data format before you split it? 16-bit unsigned int should be supported by DTK, as long as it's in valid dicom, nifti or analyze format. Can you post the complete log text? A screenshot would also be helpful.

Best,

Ruopeng

6:36 am
April 27, 2010


sd

Member

posts 3

Hi,

 

thanks for the quick reply.

The original data is just one raw file with b0 and all time steps.

I split it up into seperate raw files, named "dti_000.img" etc. and generated a analyze header for each using camino´s (http://web4.cs.ucl.ac.uk/resea…..pmwiki.php) analyzeheader command:

./analyzeheader -datadims 64 64 64  -datatype float > /data/visContestData_raw/syntheticDTIData/dti_000.hdr

Here is a screenshot:

http://img156.imageshack.us/im…..4/dtkt.png

This is the reference image:

http://img156.imageshack.us/im…..0/refb.png

 

This is the log:

Steps to do:

1. dti_recon "/data/visContestData_raw/syntheticDTIData/dti_000.img" "/data/visContestData_raw/syntheticDTIData/dti" -gm "/tmp/dtk_tmp/matrices/gradient.txt" -b 1000 -b0 auto -iop 1 0 0 0 0 -1  -p 3 -sn 0 -ot nii

2. dti_tracker "/data/visContestData_raw/syntheticDTIData/dti" "/data/visContestData_raw/syntheticDTIData/dti.trk" -at 1   -m "/data/visContestData_raw/syntheticDTIData/dti_dwi.nii" -0.98 1000 -rk2   -it nii

3. trackvis "/data/visContestData_raw/syntheticDTIData/dti.trk"

——— Launching dti_recon —————–

Did not find image info file '/data/visContestData_raw/syntheticDTIData/dti_.info'. Default info being used.

Volume dimension: 64 64 64
Voxel size: 1.000 1.000 1.000
Number of b0's: 1
Number of gradient directions: 30

Reading raw data… 100%
Reconstructing… 100%

b0 threshold used to mask background: -22558.2 22816

Writing output…
Done.
Reconstruction completed successfully.

Time taken: 00:00:01

——— Launching dti_tracker —————–

Volume dimension: 64 64 64
Voxel size: 1.000 1.000 1.000

Threshold for mask one:  -0.98 1000

Reading tensor data…done.

Tracking… 100%
Number of tracks: 209158
Time taken: 00:00:09

——— Launching trackvis —————–

TrackVis successfully launched.

Total time taken: 00:00:10

 

When using ushort as datatype I get the following output:

Steps to do:

1. dti_recon "/data/visContestData_raw/syntheticDTIData/dti_" "/data/visContestData_raw/syntheticDTIData/dti" -gm "/tmp/dtk_tmp/matrices/gradient.txt" -b 1000 -b0 auto -iop 1 0 0 0 0 -1  -p 3 -sn 0 -ot nii

2. dti_tracker "/data/visContestData_raw/syntheticDTIData/dti" "/data/visContestData_raw/syntheticDTIData/dti.trk" -at 1   -m "/data/visContestData_raw/syntheticDTIData/dti_dwi.nii" -0.98 1000 -rk2   -it nii

3. trackvis "/data/visContestData_raw/syntheticDTIData/dti.trk"

——— Launching dti_recon —————–
** ERROR: nifti_convert_nhdr2nim: bad datatype ** ERROR (nifti_image_read): cannot create nifti image from header '/data/visContestData_raw/syntheticDTIData/dti_000.hdr' Can not load image data from /data/visContestData_raw/syntheticDTIData/dti_000.hdr
Process aborted due to error.

Using short as datatype produces roughly the same results as using floats.

A higher angle threshold only resulted in longer lines in wrong directions :)

11:45 am
April 27, 2010


Ruopeng

Admin

posts 353

Post edited 11:48 am – April 27, 2010 by Ruopeng


I notice the following in your log:

b0 threshold used to mask background: -22558.2 22816

The values appear to be quite unreasonable. Have you looked at your b0 image? Did you make sure the endianness is correct in the header?

I'm not sure why ushort failed to load. That's the most common datatype we use. Maybe you can try use mricro to create the header?

Ruopeng

7:43 am
April 29, 2010


sd

Member

posts 3

Hi,

 

the endianness was the problem, the tracking works fine now.

 

Thanks for your help and for providing dtk! Smile