Beispiel #1
0
def calc_streams_in_roi(dpy_file,roi_dat,stream_idxs):
  aff_eye = np.eye(4)
  D = Dpy(dpy_file, 'r')
  streams = D.read_tracksi(stream_idxs)
  D.close()
  streamsinroi = list(target_line_based(streams,roi_dat,aff_eye))
  return streamsinroi
Beispiel #2
0
def calc_streams_in_roi(dpy_file,roi_dat,stream_idxs):
  aff_eye = np.eye(4)
  D = Dpy(dpy_file, 'r')
  streams = D.read_tracksi(stream_idxs)
  D.close()
    
  # hack to deal with apparent nibabel-dipy conflict
  if type(streams) == nib.streamlines.array_sequence.ArraySequence:
    streams = list(streams)
    
  streamsinroi = list(target_line_based(streams,roi_dat,aff_eye))
  return streamsinroi
Beispiel #3
0
def test_target_line_based_out_of_bounds():
    test_cases = [
        (np.array([[-10, 0, 0], [0, 0, 0]]), 0),
        (np.array([[-10, 0, 0], [1, -10, 0]]), 0),
        (np.array([[0, 0, 0], [10, 10, 10]]), 0),
        (np.array([[-2, -0.6, -0.6], [2, -0.6, -0.6]]), 0),
        (np.array([[-10000, 0, 0], [0, 0, 0]]), 0),
        (np.array([[-10, 0, 0], [10, 0, 0]]), 1),
        (np.array([[1, -10, 0], [1, 10, 0]]), 1),
    ]
    for streamline, expected_matched in test_cases:
        mask = np.zeros((2, 1, 1), dtype=np.uint8)
        mask[1, 0, 0] = 1
        matched = list(target_line_based([streamline], np.eye(4), mask))
        assert len(matched) == expected_matched
Beispiel #4
0
def warp_streamlines(
    adjusted_affine,
    ref_grid_aff,
    mapping,
    warped_fa_img,
    streams_in_curr_grid,
    brain_mask,
):
    from dipy.tracking import utils
    from dipy.tracking.streamline import (
        values_from_volume,
        transform_streamlines,
        Streamlines,
    )

    # Deform streamlines, isocenter, and remove streamlines outside brain
    streams_in_brain = [
        sum(d, s) for d, s in zip(
            values_from_volume(mapping.get_forward_field(),
                               streams_in_curr_grid, ref_grid_aff),
            streams_in_curr_grid,
        )
    ]
    streams_final_filt = Streamlines(
        utils.target_line_based(
            transform_streamlines(
                transform_streamlines(streams_in_brain,
                                      np.linalg.inv(adjusted_affine)),
                np.linalg.inv(warped_fa_img.affine),
            ),
            np.eye(4),
            brain_mask,
            include=True,
        ))

    return streams_final_filt