annotate linear_fascile_evaluation.py @ 7:eb03934e044f draft

Uploaded
author greg
date Wed, 29 Nov 2017 16:40:08 -0500
parents 0ddfcb3b5ce6
children 2de70534993d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cbfa8c336751 Uploaded
greg
parents:
diff changeset
1 #!/usr/bin/env python
cbfa8c336751 Uploaded
greg
parents:
diff changeset
2 import argparse
3
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
3 import shutil
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
4
0
cbfa8c336751 Uploaded
greg
parents:
diff changeset
5 import dipy.core.optimize as opt
cbfa8c336751 Uploaded
greg
parents:
diff changeset
6 import dipy.tracking.life as life
3
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
7 from dipy.data import fetch_stanford_t1, read_stanford_labels, read_stanford_t1
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
8 from dipy.viz import fvtk
0
cbfa8c336751 Uploaded
greg
parents:
diff changeset
9 from dipy.viz.colormap import line_colors
3
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
10
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
11 import matplotlib
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
12 import matplotlib.pyplot as plt
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
13
0
cbfa8c336751 Uploaded
greg
parents:
diff changeset
14 from mpl_toolkits.axes_grid1 import AxesGrid
3
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
15
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
16 import nibabel as nib
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
17
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
18 import numpy as np
0
cbfa8c336751 Uploaded
greg
parents:
diff changeset
19
cbfa8c336751 Uploaded
greg
parents:
diff changeset
20 parser = argparse.ArgumentParser()
3
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
21 parser.add_argument('--input', dest='input', help='Track Visualization Header dataset')
0
cbfa8c336751 Uploaded
greg
parents:
diff changeset
22 parser.add_argument('--output_life_candidates', dest='output_life_candidates', help='Output life candidates')
cbfa8c336751 Uploaded
greg
parents:
diff changeset
23
cbfa8c336751 Uploaded
greg
parents:
diff changeset
24 args = parser.parse_args()
cbfa8c336751 Uploaded
greg
parents:
diff changeset
25
1
84a2e30b5404 Uploaded
greg
parents: 0
diff changeset
26 # We'll need to know where the corpus callosum is from these variables.
84a2e30b5404 Uploaded
greg
parents: 0
diff changeset
27 hardi_img, gtab, labels_img = read_stanford_labels()
84a2e30b5404 Uploaded
greg
parents: 0
diff changeset
28 labels = labels_img.get_data()
84a2e30b5404 Uploaded
greg
parents: 0
diff changeset
29 cc_slice = labels == 2
84a2e30b5404 Uploaded
greg
parents: 0
diff changeset
30 fetch_stanford_t1()
84a2e30b5404 Uploaded
greg
parents: 0
diff changeset
31 t1 = read_stanford_t1()
84a2e30b5404 Uploaded
greg
parents: 0
diff changeset
32 t1_data = t1.get_data()
84a2e30b5404 Uploaded
greg
parents: 0
diff changeset
33 data = hardi_img.get_data()
0
cbfa8c336751 Uploaded
greg
parents:
diff changeset
34
cbfa8c336751 Uploaded
greg
parents:
diff changeset
35 # Read the candidates from file in voxel space:
3
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
36 candidate_sl = [s[0] for s in nib.trackvis.read(args.input, points_space='voxel')[0]]
0
cbfa8c336751 Uploaded
greg
parents:
diff changeset
37 # Visualize the initial candidate group of streamlines
cbfa8c336751 Uploaded
greg
parents:
diff changeset
38 # in 3D, relative to the anatomical structure of this brain.
cbfa8c336751 Uploaded
greg
parents:
diff changeset
39 candidate_streamlines_actor = fvtk.streamtube(candidate_sl, line_colors(candidate_sl))
cbfa8c336751 Uploaded
greg
parents:
diff changeset
40 cc_ROI_actor = fvtk.contour(cc_slice, levels=[1], colors=[(1., 1., 0.)], opacities=[1.])
cbfa8c336751 Uploaded
greg
parents:
diff changeset
41 vol_actor = fvtk.slicer(t1_data)
cbfa8c336751 Uploaded
greg
parents:
diff changeset
42 vol_actor.display(40, None, None)
cbfa8c336751 Uploaded
greg
parents:
diff changeset
43 vol_actor2 = vol_actor.copy()
cbfa8c336751 Uploaded
greg
parents:
diff changeset
44 vol_actor2.display(None, None, 35)
cbfa8c336751 Uploaded
greg
parents:
diff changeset
45 # Add display objects to canvas.
cbfa8c336751 Uploaded
greg
parents:
diff changeset
46 ren = fvtk.ren()
cbfa8c336751 Uploaded
greg
parents:
diff changeset
47 fvtk.add(ren, candidate_streamlines_actor)
cbfa8c336751 Uploaded
greg
parents:
diff changeset
48 fvtk.add(ren, cc_ROI_actor)
cbfa8c336751 Uploaded
greg
parents:
diff changeset
49 fvtk.add(ren, vol_actor)
cbfa8c336751 Uploaded
greg
parents:
diff changeset
50 fvtk.add(ren, vol_actor2)
3
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
51 fvtk.record(ren, n_frames=1, out_path="life_candidates.png", size=(800, 800))
0ddfcb3b5ce6 Uploaded
greg
parents: 1
diff changeset
52 shutil.move("life_candidates.png", args.output_life_candidates)