annotate dmri.py @ 8:a0d57df923d2 draft

Uploaded
author greg
date Fri, 03 Nov 2017 13:33:58 -0400
parents 2b6708bc9391
children cf847e9f1a3a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
1 #!/usr/bin/env python
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
2 import argparse
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
3 import os
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
4 import nibabel
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
5 import shutil
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
6
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
7 from dipy.data import fetch_sherbrooke_3shell
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
8
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
9 parser = argparse.ArgumentParser()
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
10 parser.add_argument('--input', dest='input', help='Input dataset')
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
11 parser.add_argument('--output', dest='output', help='Output dataset')
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
12
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
13 args = parser.parse_args()
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
14
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
15 def move_directory_files(source_dir, destination_dir, copy=False, remove_source_dir=False):
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
16 source_directory = os.path.abspath(source_dir)
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
17 destination_directory = os.path.abspath(destination_dir)
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
18 if not os.path.isdir(destination_directory):
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
19 os.makedirs(destination_directory)
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
20 for dir_entry in os.listdir(source_directory):
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
21 source_entry = os.path.join(source_directory, dir_entry)
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
22 if copy:
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
23 shutil.copy(source_entry, destination_directory)
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
24 else:
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
25 shutil.move(source_entry, destination_directory)
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
26 if remove_source_dir:
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
27 os.rmdir(source_directory)
7
2b6708bc9391 Uploaded
greg
parents: 5
diff changeset
28 source_dir = os.path.abspath(os.path.join('home', 'greg', '.dipy', 'sherbrooke_3shell'))
8
a0d57df923d2 Uploaded
greg
parents: 7
diff changeset
29 dest_dir = 'input_dir'
a0d57df923d2 Uploaded
greg
parents: 7
diff changeset
30 if not os.path.exists(source_dir):
a0d57df923d2 Uploaded
greg
parents: 7
diff changeset
31 # Get input data.
a0d57df923d2 Uploaded
greg
parents: 7
diff changeset
32 fetch_sherbrooke_3shell()
a0d57df923d2 Uploaded
greg
parents: 7
diff changeset
33 # Move inputs to working directory.
a0d57df923d2 Uploaded
greg
parents: 7
diff changeset
34 move_directory_files(source_dir, dest_dir, copy=True)
a0d57df923d2 Uploaded
greg
parents: 7
diff changeset
35 fdwi = os.path.join(dest_dir, 'HARDI193.nii.gz')
a0d57df923d2 Uploaded
greg
parents: 7
diff changeset
36 fbval = os.path.join(dest_dir, 'HARDI193.bval')
a0d57df923d2 Uploaded
greg
parents: 7
diff changeset
37 fbvec = os.path.join(dest_dir, 'HARDI193.bvec')
0
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
38 # Load the dMRI datasets.
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
39 img = nibabel.load(fdwi)
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
40 data = img.get_data()
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
41 # data is a 4D array where the first 3 dimensions are the i, j,
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
42 # k voxel coordinates and the last dimension is the number of
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
43 # non-weighted (S0s) and diffusion-weighted volumes.
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
44 # Visualize the results using matplotlib.
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
45 axial_middle = data.shape[2] // 2
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
46 plt.figure('Showing the datasets')
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
47 plt.subplot(1, 2, 1).set_axis_off()
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
48 plt.imshow(data[:, :, axial_middle, 0].T, cmap='gray', origin='lower')
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
49 plt.subplot(1, 2, 2).set_axis_off()
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
50 plt.imshow(data[:, :, axial_middle, 10].T, cmap='gray', origin='lower')
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
51 plt.show()
94f6b3e28c36 Uploaded
greg
parents:
diff changeset
52 plt.savefig(args.output, bbox_inches='tight')