Source code for AFQ.tractography.utils

import logging
import dipy.tracking.utils as dtu
import numpy as np


[docs]logger = logging.getLogger('AFQ')
[docs]def get_percentile_threshold(mask, threshold): zero_mask = mask == 0 mask[zero_mask] = np.nan new_threshold = np.nanpercentile( mask, 100 - threshold) mask[zero_mask] = 0 return new_threshold
[docs]def gen_seeds(seed_mask, seed_threshold, n_seeds, thresholds_as_percentages, random_seeds, rng_seed, affine): """ Generate seeds for tracking. For parameters, see :func:`AFQ.tractography.tractography.track`. """ logger.info("Generating Seeds...") if isinstance(n_seeds, int): if len(np.unique(seed_mask)) > 2: if thresholds_as_percentages: seed_threshold = get_percentile_threshold( seed_mask, seed_threshold) seed_mask = seed_mask > seed_threshold if random_seeds: seeds = dtu.random_seeds_from_mask(seed_mask, seeds_count=n_seeds, seed_count_per_voxel=False, affine=affine, random_seed=rng_seed) else: seeds = dtu.seeds_from_mask(seed_mask, density=n_seeds, affine=affine) else: # If user provided an array, we'll use n_seeds as the seeds: seeds = n_seeds return seeds