Ejemplo n.º 1
0
def gen_ras_to_head_trans(head_to_mri_t, t1_img):
    # RAS -> VOXEL
    ras_to_vox_t = Transform(fro='ras',
                             to='mri_voxel',
                             trans=np.linalg.inv(t1_img.header.get_vox2ras()))

    # VOXEL -> MRI
    vox_to_mri_t = Transform(fro='mri_voxel',
                             to='mri',
                             trans=t1_img.header.get_vox2ras_tkr())

    # MRI -> HEAD
    mri_to_head_t = invert_transform(head_to_mri_t)

    # Now we have generated all the required transformations
    # to go from RAS to MNE Head coordinates. Let's combine
    # the transforms into a single transform. This requires
    # two calls to `combine_transforms()`.

    # RAS -> MRI
    ras_to_mri_t = combine_transforms(ras_to_vox_t,
                                      vox_to_mri_t,
                                      fro='ras',
                                      to='mri')

    # RAS -> HEAD
    ras_to_head_t = combine_transforms(ras_to_mri_t,
                                       mri_to_head_t,
                                       fro='ras',
                                       to='head')

    return ras_to_head_t
Ejemplo n.º 2
0
def test_combine():
    """Test combining transforms
    """
    trans = read_trans(fname)
    inv = invert_transform(trans)
    combine_transforms(trans, inv, trans["from"], trans["from"])
    assert_raises(RuntimeError, combine_transforms, trans, inv, trans["to"], trans["from"])
    assert_raises(RuntimeError, combine_transforms, trans, inv, trans["from"], trans["to"])
    assert_raises(RuntimeError, combine_transforms, trans, trans, trans["from"], trans["to"])
Ejemplo n.º 3
0
def test_combine():
    """Test combining transforms."""
    trans = read_trans(fname)
    inv = invert_transform(trans)
    combine_transforms(trans, inv, trans['from'], trans['from'])
    pytest.raises(RuntimeError, combine_transforms, trans, inv, trans['to'],
                  trans['from'])
    pytest.raises(RuntimeError, combine_transforms, trans, inv, trans['from'],
                  trans['to'])
    pytest.raises(RuntimeError, combine_transforms, trans, trans,
                  trans['from'], trans['to'])
Ejemplo n.º 4
0
def test_combine():
    """Test combining transforms."""
    trans = read_trans(fname)
    inv = invert_transform(trans)
    combine_transforms(trans, inv, trans['from'], trans['from'])
    pytest.raises(RuntimeError, combine_transforms, trans, inv,
                  trans['to'], trans['from'])
    pytest.raises(RuntimeError, combine_transforms, trans, inv,
                  trans['from'], trans['to'])
    pytest.raises(RuntimeError, combine_transforms, trans, trans,
                  trans['from'], trans['to'])
Ejemplo n.º 5
0
def test_transforms():
    """ Test transformations """
    bti_trans = (0.0, 0.02, 0.11)
    bti_dev_t = Transform("ctf_meg", "meg", _get_bti_dev_t(0.0, bti_trans))
    for pdf, config, hs in zip(pdf_fnames, config_fnames, hs_fnames):
        raw = read_raw_bti(pdf, config, hs)
        dev_ctf_t = raw.info["dev_ctf_t"]
        dev_head_t_old = raw.info["dev_head_t"]
        ctf_head_t = raw.info["ctf_head_t"]

        # 1) get BTI->Neuromag
        bti_dev_t = Transform("ctf_meg", "meg", _get_bti_dev_t(0.0, bti_trans))

        # 2) get Neuromag->BTI head
        t = combine_transforms(invert_transform(bti_dev_t), dev_ctf_t, "meg", "ctf_head")
        # 3) get Neuromag->head
        dev_head_t_new = combine_transforms(t, ctf_head_t, "meg", "head")

        assert_array_equal(dev_head_t_new["trans"], dev_head_t_old["trans"])
Ejemplo n.º 6
0
def test_transforms():
    """Test transformations."""
    bti_trans = (0.0, 0.02, 0.11)
    bti_dev_t = Transform('ctf_meg', 'meg', _get_bti_dev_t(0.0, bti_trans))
    for pdf, config, hs, in zip(pdf_fnames, config_fnames, hs_fnames):
        raw = read_raw_bti(pdf, config, hs, preload=False)
        dev_ctf_t = raw.info['dev_ctf_t']
        dev_head_t_old = raw.info['dev_head_t']
        ctf_head_t = raw.info['ctf_head_t']

        # 1) get BTI->Neuromag
        bti_dev_t = Transform('ctf_meg', 'meg', _get_bti_dev_t(0.0, bti_trans))

        # 2) get Neuromag->BTI head
        t = combine_transforms(invert_transform(bti_dev_t), dev_ctf_t, 'meg',
                               'ctf_head')
        # 3) get Neuromag->head
        dev_head_t_new = combine_transforms(t, ctf_head_t, 'meg', 'head')

        assert_array_equal(dev_head_t_new['trans'], dev_head_t_old['trans'])
Ejemplo n.º 7
0
def test_transforms():
    """Test transformations."""
    bti_trans = (0.0, 0.02, 0.11)
    bti_dev_t = Transform('ctf_meg', 'meg', _get_bti_dev_t(0.0, bti_trans))
    for pdf, config, hs, in zip(pdf_fnames, config_fnames, hs_fnames):
        raw = read_raw_bti(pdf, config, hs, preload=False)
        dev_ctf_t = raw.info['dev_ctf_t']
        dev_head_t_old = raw.info['dev_head_t']
        ctf_head_t = raw.info['ctf_head_t']

        # 1) get BTI->Neuromag
        bti_dev_t = Transform('ctf_meg', 'meg', _get_bti_dev_t(0.0, bti_trans))

        # 2) get Neuromag->BTI head
        t = combine_transforms(invert_transform(bti_dev_t), dev_ctf_t,
                               'meg', 'ctf_head')
        # 3) get Neuromag->head
        dev_head_t_new = combine_transforms(t, ctf_head_t, 'meg', 'head')

        assert_array_equal(dev_head_t_new['trans'], dev_head_t_old['trans'])
Ejemplo n.º 8
0
def _prepare_trans(info, trans, coord_frame='head'):
    head_mri_t = _ensure_trans(trans, 'head', 'mri')
    dev_head_t = info['dev_head_t']
    del trans

    # Figure out our transformations
    if coord_frame == 'meg':
        head_trans = invert_transform(dev_head_t)
        meg_trans = Transform('meg', 'meg')
        mri_trans = invert_transform(
            combine_transforms(dev_head_t, head_mri_t, 'meg', 'mri'))
    elif coord_frame == 'mri':
        head_trans = head_mri_t
        meg_trans = combine_transforms(dev_head_t, head_mri_t, 'meg', 'mri')
        mri_trans = Transform('mri', 'mri')
    else:  # coord_frame == 'head'
        head_trans = Transform('head', 'head')
        meg_trans = info['dev_head_t']
        mri_trans = invert_transform(head_mri_t)
    return head_trans, meg_trans, mri_trans
Ejemplo n.º 9
0
def gen_ras_to_head_trans(head_to_mri_t, t1_img):
    mri_to_head_t = invert_transform(head_to_mri_t)

    # RAS <> VOXEL
    ras_to_vox_t = Transform(fro='ras', to='mri_voxel',
                             trans=np.linalg.inv(t1_img.header.get_vox2ras()))
    #  trans=t1_img.header.get_ras2vox())
    vox_to_mri_t = Transform(fro='mri_voxel', to='mri',
                             trans=t1_img.header.get_vox2ras_tkr())

    # RAS <> MRI
    ras_to_mri_t = combine_transforms(ras_to_vox_t,
                                      vox_to_mri_t,
                                      fro='ras', to='mri')

    ras_to_head_t = combine_transforms(ras_to_mri_t,
                                       mri_to_head_t,
                                       fro='ras', to='head')

    return ras_to_head_t