/usr/lib/python2.7/dist-packages/dipy/reconst/benchmarks/bench_csd.py is in python-dipy 0.10.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #!/usr/bin/env python
import numpy as np
import numpy.testing as npt
from dipy.reconst.csdeconv import ConstrainedSphericalDeconvModel
from dipy.core.gradients import GradientTable
from dipy.data import read_stanford_labels
def num_grad(gtab):
return (~gtab.b0s_mask).sum()
def bench_csdeconv(center=(50, 40, 40), width=12):
img, gtab, labels_img = read_stanford_labels()
data = img.get_data()
labels = labels_img.get_data()
shape = labels.shape
mask = np.in1d(labels, [1, 2])
mask.shape = shape
a, b, c = center
hw = width // 2
idx = (slice(a - hw, a + hw), slice(b - hw, b + hw), slice(c - hw, c + hw))
data_small = data[idx].copy()
mask_small = mask[idx].copy()
voxels = mask_small.sum()
cmd = "model.fit(data_small, mask_small)"
print("== Benchmarking CSD fit on %d voxels ==" % voxels)
msg = "SH order - %d, gradient directons - %d :: %g sec"
# Basic case
sh_order = 8
model = ConstrainedSphericalDeconvModel(gtab, None, sh_order=sh_order)
time = npt.measure(cmd)
print(msg % (sh_order, num_grad(gtab), time))
# Smaller data set
data_small = data_small[..., :75].copy()
gtab = GradientTable(gtab.gradients[:75])
model = ConstrainedSphericalDeconvModel(gtab, None, sh_order=sh_order)
time = npt.measure(cmd)
print(msg % (sh_order, num_grad(gtab), time))
# Super resolution
sh_order = 12
model = ConstrainedSphericalDeconvModel(gtab, None, sh_order=sh_order)
time = npt.measure(cmd)
print(msg % (sh_order, num_grad(gtab), time))
if __name__ == "__main__":
bench_csdeconv()
|