Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if b != "whole_brain":
idx = np.where(sft.data_per_streamline['bundle']
== self.bundle_dict[b]['uid'])[0]
this_tg = StatefulTractogram(
sft.streamlines[idx],
row['dwi_img'],
Space.VOX)
this_tg = seg.clean_bundle(this_tg, **self.clean_params)
if self.clean_params['return_idx']:
this_tg, this_idx = this_tg
idx_file = bundles_file.split('.')[0] + '_idx.json'
with open(idx_file) as ff:
bundle_idx = json.load(ff)[b]
return_idx[b] = \
np.array(bundle_idx)[this_idx].tolist()
this_tgram = nib.streamlines.Tractogram(
this_tg.streamlines,
data_per_streamline={
'bundle': (len(this_tg)
* [self.bundle_dict[b]['uid']])},
affine_to_rasmm=row['dwi_affine'])
tgram = aus.add_bundles(tgram, this_tgram)
self.log_and_save_trk(
StatefulTractogram(
tgram.streamlines,
sft,
Space.VOX,
data_per_streamline=tgram.data_per_streamline),
clean_bundles_file)
seg_args = get_default_args(seg.clean_bundle)
for k in seg_args:
def main():
parser = _build_arg_parser()
args = parser.parse_args()
if args.verbose:
logging.basicConfig(level=logging.DEBUG)
assert_inputs_exist(parser, [args.in_sh, args.in_seed,
args.in_map_include,
args.map_exclude_file])
assert_outputs_exist(parser, args, args.out_tractogram)
if not nib.streamlines.is_supported(args.out_tractogram):
parser.error('Invalid output streamline file format (must be trk or ' +
'tck): {0}'.format(args.out_tractogram))
if not args.min_length > 0:
parser.error('minL must be > 0, {}mm was provided.'
.format(args.min_length))
if args.max_length < args.min_length:
parser.error('maxL must be > than minL, (minL={}mm, maxL={}mm).'
.format(args.min_length, args.max_length))
if args.compress:
if args.compress < 0.001 or args.compress > 1:
logging.warning(
'You are using an error rate of {}.\nWe recommend setting it '
'between 0.001 and 1.\n0.001 will do almost nothing to the '
'tracts while 1 will higly compress/linearize the tracts'
def main():
args, parser = parse_args()
try:
nii = nib.load(args.anatomy)
except Exception:
parser.error("Expecting anatomical image as first agument.")
for tractogram in args.tractograms:
tractogram_format = nib.streamlines.detect_format(tractogram)
if tractogram_format is not nib.streamlines.TckFile:
print("Skipping non TCK file: '{}'".format(tractogram))
continue
filename, _ = os.path.splitext(tractogram)
output_filename = filename + '.trk'
if os.path.isfile(output_filename) and not args.force:
msg = "Skipping existing file: '{}'. Use -f to overwrite."
print(msg.format(output_filename))
continue
# Build header using infos from the anatomical image.
header = {}
header[Field.VOXEL_TO_RASMM] = nii.affine.copy()
header[Field.VOXEL_SIZES] = nii.header.get_zooms()[:3]
header[Field.DIMENSIONS] = nii.shape[:3]
header = tractogram.header
streamlines = tractogram.streamlines[streamlines_id.T]
data_per_streamline = tractogram.tractogram.data_per_streamline[streamlines_id.T]
data_per_point = tractogram.tractogram.data_per_point[streamlines_id.T]
vote_score = streamlines_wise_vote[streamlines_id.T, bundle_id]
# All models of the same bundle have the same basename
basename = os.path.join(self.output_directory,
os.path.splitext(bundle_names[bundle_id])[0])
out_tractogram = nib.streamlines.Tractogram(
streamlines,
data_per_streamline=data_per_streamline,
data_per_point=data_per_point,
affine_to_rasmm=np.eye(4))
nib.streamlines.save(out_tractogram, basename + extension,
header=header)
curr_results_dict = {}
curr_results_dict['indices'] = np.asarray(streamlines_id).tolist()
curr_results_dict['votes'] = np.squeeze(
vote_score.toarray()).tolist()
results_dict[basename] = curr_results_dict
out_logfile = os.path.join(self.output_directory, 'results.json')
with open(out_logfile, 'w') as outfile:
json.dump(results_dict, outfile)
i = (idx_bundle + 1)*width
if not os.path.isfile(bundle_file):
print('\nInput file {} doesn\'t exist.'.format(bundle_file))
number_streamlines = 0
view_number = 6
j = height * view_number
draw_bundle_information(draw, bundle_file_name, number_streamlines,
i + text_pos_x, j + text_pos_y, font)
else:
# Select the streamlines to plot
bundle_tractogram_file = nib.streamlines.load(bundle_file)
streamlines = bundle_tractogram_file.streamlines
tubes = actor.line(streamlines)
number_streamlines = len(streamlines)
# Render
ren = window.Renderer()
zoom = args.zoom
opacity = args.opacity_background
# Structural data
slice_actor = actor.slicer(data, affine, value_range)
slice_actor.opacity(opacity)
ren.add(slice_actor)