Пример #1
0
def test_dmtx0b():
    # test design matrix creation when no paradigm is provided
    #
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    X, names = dmtx_light(frametimes, drift_model="Polynomial", drift_order=3)
    assert_almost_equal(X[:, 0], np.linspace(0, 1.0, 128))
Пример #2
0
def test_dmtx0():
    # test design matrix creation when no paradigm is provided
    #
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    X, names = dmtx_light(frametimes, drift_model="Polynomial", drift_order=3)
    print names
    assert_true(len(names) == 4)
Пример #3
0
def test_dmtx0d():
    # test design matrix creation when regressors are provided manually
    #
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    ax = np.random.randn(128, 4)
    X, names = dmtx_light(frametimes, drift_model="Polynomial", drift_order=3, add_regs=ax)
    assert_true((len(names) == 8) & (X.shape[1] == 8))
Пример #4
0
def test_dmtx0c():
    # test design matrix creation when regressors are provided manually
    #
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    ax = np.random.randn(128, 4)
    X, names = dmtx_light(frametimes, drift_model="Polynomial", drift_order=3, add_regs=ax)
    assert_almost_equal(X[:, 0], ax[:, 0])
Пример #5
0
def test_dmtx1():
    # basic test based on basic_paradigm and canonical hrf
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    paradigm = basic_paradigm()
    hrf_model = "Canonical"
    X, names = dmtx_light(frametimes, paradigm, hrf_model=hrf_model, drift_model="Polynomial", drift_order=3)
    print names
    assert_true(len(names) == 7)
Пример #6
0
def test_dmtx6():
    # idem test_dmtx1 with a block paradigm and the hrf derivative
    #
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    paradigm = block_paradigm()
    hrf_model = "Canonical With Derivative"
    X, names = dmtx_light(frametimes, paradigm, hrf_model=hrf_model, drift_model="Polynomial", drift_order=3)
    assert_true(len(names) == 10)
Пример #7
0
def test_dmtx1d():
    # idem test_dmtx1, but different test
    #
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    paradigm = basic_paradigm()
    hrf_model = "Canonical"
    X, names = dmtx_light(frametimes, paradigm, hrf_model=hrf_model, drift_model="Polynomial", drift_order=3)
    assert_true((np.isnan(X) == 0).all())
Пример #8
0
def test_dmtx3():
    # idem test_dmtx1 with a different drift term
    #
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    paradigm = basic_paradigm()
    hrf_model = "Canonical"
    X, names = dmtx_light(frametimes, paradigm, hrf_model=hrf_model, drift_model="Blank")
    print names
    assert_true(len(names) == 4)
Пример #9
0
def test_dmtx12():
    # check that the 11th column of a FIR design matrix is indeed OK
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    paradigm = basic_paradigm()
    hrf_model = "FIR"
    X, names = dmtx_light(
        frametimes, paradigm, hrf_model=hrf_model, drift_model="Polynomial", drift_order=3, fir_delays=range(1, 5)
    )
    assert_true(np.all(X[paradigm[paradigm[:, 0] == 2, 1] + 5, 11] == 1))
Пример #10
0
def test_dmtx1b():
    # idem test_dmtx1, but different test
    #
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    paradigm = basic_paradigm()
    hrf_model = "Canonical"
    X, names = dmtx_light(frametimes, paradigm, hrf_model=hrf_model, drift_model="Polynomial", drift_order=3)
    print np.shape(X)
    assert_true(X.shape == (128, 7))
Пример #11
0
def test_dmtx5():
    # idem test_dmtx1 with a block paradigm
    #
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    paradigm = block_paradigm()
    hrf_model = "Canonical"
    X, names = dmtx_light(frametimes, paradigm, hrf_model=hrf_model, drift_model="Polynomial", drift_order=3)
    print names
    assert_true(len(names) == 7)
Пример #12
0
def test_dmtx4():
    # idem test_dmtx1 with a different hrf model
    #
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    paradigm = basic_paradigm()
    hrf_model = "Canonical With Derivative"
    X, names = dmtx_light(frametimes, paradigm, hrf_model=hrf_model, drift_model="Polynomial", drift_order=3)
    print names
    assert_true(len(names) == 10)
Пример #13
0
def test_dmtx14():
    # Check that the first column o FIR design matrix is OK after a 1/2
    # time shift
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128) + tr / 2
    paradigm = basic_paradigm()
    hrf_model = "FIR"
    X, names = dmtx_light(
        frametimes, paradigm, hrf_model=hrf_model, drift_model="Polynomial", drift_order=3, fir_delays=range(1, 5)
    )
    assert_true(np.all(X[paradigm[paradigm[:, 0] == 0, 1] + 1, 0] == 1))
Пример #14
0
def test_dmtx18():
    """
    Test the effect of scaling on the blocks
    """
    tr = 1.0
    frametimes = np.linspace(0, 127*tr,128)
    paradigm = modulated_block_paradigm()
    hrf_model='Canonical'
    X, names= dm.dmtx_light(frametimes, paradigm, hrf_model=hrf_model,
                         drift_model='Polynomial', drift_order=3)
    assert_true((X[paradigm.onset[paradigm.index==0].astype(np.int)+3,0]>0).all())
Пример #15
0
def test_dmtx1():
    """
    basic test based on basic_paradigm and canonical hrf
    """
    tr = 1.0
    frametimes = np.linspace(0, 127*tr,128)
    paradigm = basic_paradigm()
    hrf_model='Canonical'
    X, names= dm.dmtx_light(frametimes, paradigm,  hrf_model=hrf_model,
                            drift_model='Polynomial', drift_order=3)
    assert_true(len(names)==7)
Пример #16
0
def test_dmtx1c():
    """
    idem test_dmtx1, but different test
    """
    tr = 1.0
    frametimes = np.linspace(0,127*tr,128)
    paradigm = basic_paradigm()
    hrf_model='Canonical'
    X,names= dm.dmtx_light(frametimes, paradigm,  hrf_model=hrf_model,
                        drift_model='Polynomial', drift_order=3)
    assert_true((X[:,-1]==1).all())
Пример #17
0
def test_dmtx9():
    """
    basic test based on basic_paradigm and FIR
    """
    tr = 1.0
    frametimes = np.linspace(0, 127*tr,128)
    paradigm = basic_paradigm()
    hrf_model='FIR'
    X, names= dm.dmtx_light(frametimes, paradigm,  hrf_model=hrf_model,
                         drift_model='Polynomial', drift_order=3, fir_delays=range(1,5))
    print names
    assert_true(len(names)==16)
Пример #18
0
def test_dmtx2():
    """
    idem test_dmtx1 with a different drift term
    """
    tr = 1.0
    frametimes = np.linspace(0,127*tr,128)
    paradigm = basic_paradigm()
    hrf_model='Canonical'
    X,names= dm.dmtx_light(frametimes, paradigm,  hrf_model=hrf_model,
                        drift_model='Cosine', hfcut=63)
    print names
    assert_true(len(names)==8)
Пример #19
0
def test_dmtx13():
    """
    Check that the fir_duration is well taken into account
    """
    tr = 1.0
    frametimes = np.linspace(0, 127*tr,128)
    paradigm = basic_paradigm()
    hrf_model='FIR'
    X, names= dm.dmtx_light(frametimes, paradigm,  hrf_model=hrf_model,
                         drift_model='Polynomial', drift_order=3,
                         fir_delays=range(1,5), fir_duration=2*tr)
    assert_true(np.all(X[paradigm.onset[paradigm.index==0]+2, 0]==1))
Пример #20
0
def test_dmtx15():
    """
    basic test based on basic_paradigm, plus user supplied regressors 
    """
    tr = 1.0
    frametimes = np.linspace(0, 127*tr,128)
    paradigm = basic_paradigm()
    hrf_model='Canonical'
    ax = np.random.randn(128,4)
    X, names= dm.dmtx_light(frametimes, paradigm,  hrf_model=hrf_model,
                         drift_model='Polynomial', drift_order=3, add_regs=ax)
    assert_true((len(names)==11)&(X.shape[1]==11))
Пример #21
0
def test_dmtx16():
    """
    check that additional regressors are put at the reight place
    """
    tr = 1.0
    frametimes = np.linspace(0, 127*tr,128)
    paradigm = basic_paradigm()
    hrf_model ='Canonical'
    ax = np.random.randn(128,4)
    X, names= dm.dmtx_light(frametimes, paradigm,  hrf_model=hrf_model,
                         drift_model='Polynomial', drift_order=3, add_regs=ax)
    assert_almost_equal(X[:,3:7],ax)
Пример #22
0
def test_dmtx12():
    """
    check that the 11th column of a FIR design matrix is indeed OK
    """
    tr = 1.0
    frametimes = np.linspace(0, 127*tr,128)
    paradigm = basic_paradigm()
    hrf_model='FIR'
    X, names= dm.dmtx_light(frametimes, paradigm,  hrf_model=hrf_model,
                         drift_model='Polynomial', drift_order=3,
                         fir_delays=range(1,5))
    assert_true(np.all(X[paradigm.onset[paradigm.index==2]+4, 11]==1))
Пример #23
0
def test_dmtx17():
    """
    Test the effect of scaling on the events
    """
    tr = 1.0
    frametimes = np.linspace(0, 127*tr,128)
    paradigm = modulated_event_paradigm()
    hrf_model = 'Canonical'
    X, names= dm.dmtx_light(frametimes, paradigm,  hrf_model=hrf_model,
                         drift_model='Polynomial', drift_order=3)
    assert_true((X[paradigm.onset[paradigm.con_id=='c0'].astype(np.int)+1,0]\
                 > 0).all())
Пример #24
0
def test_dmtx7():
    # idem test_dmtx1, but odd paradigm
    #
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    conditions = [0, 0, 0, 1, 1, 1, 3, 3, 3]
    # no condition '2'
    onsets = [30, 70, 100, 10, 30, 90, 30, 40, 60]
    paradigm = np.vstack(([conditions, onsets])).T
    return paradigm
    hrf_model = "Canonical"
    X, names = dmtx_light(frametimes, paradigm, hrf_model=hrf_model, drift_model="Polynomial", drift_order=3)
    assert_true(len(names) == 7)
Пример #25
0
def test_dmtx19():
    """
    Test the effect of scaling on a FIR model
    """
    tr = 1.0
    frametimes = np.linspace(0, 127*tr,128)
    paradigm = modulated_event_paradigm()
    hrf_model='FIR'
    X, names= dm.dmtx_light(frametimes, paradigm, hrf_model=hrf_model, 
                         drift_model='Polynomial', drift_order=3,
                         fir_delays=range(1,5))
    idx = paradigm.onset[paradigm.index==0].astype(np.int)
    assert_true((X[idx+1,0]==X[idx+2,1]).all())
Пример #26
0
def test_dmtx11():
    """
    check that the second column of the FIR design matrix is OK indeed
    """
    tr = 1.0
    frametimes = np.linspace(0, 127*tr,128)
    paradigm = basic_paradigm()
    hrf_model='FIR'
    X, names= dm.dmtx_light(frametimes, paradigm,  hrf_model=hrf_model,
                         drift_model='Polynomial', drift_order=3,
                         fir_delays=range(1,5))
    onset = paradigm.onset[paradigm.con_id=='c0'].astype(np.int)
    assert_true(np.all(X[onset+3, 2]==1))
Пример #27
0
def test_dmtx14():
    """
    Check that the first column o FIR design matrix is OK after a 1/2
    time shift
    """
    tr = 1.0
    frametimes = np.linspace(0, 127*tr,128)+tr/2
    paradigm = basic_paradigm()
    hrf_model='FIR'
    X, names= dm.dmtx_light(frametimes, paradigm,  hrf_model=hrf_model,
                         drift_model='Polynomial', drift_order=3,
                         fir_delays=range(1,5))
    assert_true(np.all(X[paradigm.onset[paradigm.index==0]+1,0]==1))
Пример #28
0
def test_dmtx13():
    # Check that the fir_duration is well taken into account
    tr = 1.0
    frametimes = np.linspace(0, 127 * tr, 128)
    paradigm = basic_paradigm()
    hrf_model = "FIR"
    X, names = dmtx_light(
        frametimes,
        paradigm,
        hrf_model=hrf_model,
        drift_model="Polynomial",
        drift_order=3,
        fir_delays=range(1, 5),
        fir_duration=2 * tr,
    )
    assert_true(np.all(X[paradigm[paradigm[:, 0] == 0, 1] + 3, 0] == 1))
Пример #29
0
"""
import numpy as np
from nipy.neurospin.utils.design_matrix import dmtx_light


tr = 1.0
frametimes = np.linspace(0,127*tr,128)
conditions = [0,0,0,1,1,1,3,3,3]
onsets=[30,70,100,10,30,90,30,40,60]
hrf_model = 'Canonical'
motion = np.cumsum(np.random.randn(128,6),0)
add_reg_names = ['tx','ty','tz','rx','ry','rz']

#event-related design matrix
paradigm = np.vstack(([conditions, onsets])).T
x1,name1 = dmtx_light(frametimes, paradigm, drift_model='Polynomial',
                      drift_order=3, add_regs=motion, add_reg_names=add_reg_names)

# block design matrix
duration = 7*np.ones(9)
paradigm = np.vstack(([conditions, onsets, duration])).T
x2,name2 = dmtx_light(frametimes, paradigm, drift_model='Polynomial', drift_order=3)

# FIR model
paradigm = np.vstack(([conditions, onsets])).T
hrf_model = 'FIR'
x3,name3 = dmtx_light(frametimes, paradigm, hrf_model = 'FIR',
                      drift_model='Polynomial', drift_order=3,
                      fir_delays = range(1,6))

import matplotlib.pylab as mp
mp.figure()
Пример #30
0
frametimes = np.linspace(0, (n_scans-1)*tr, n_scans)
conditions = np.arange(20)%2
onsets = np.linspace(5, (n_scans-1)*tr-10, 20) # in seconds
hrf_model = 'Canonical'
motion = np.cumsum(np.random.randn(n_scans, 6),0)
add_reg_names = ['tx','ty','tz','rx','ry','rz']

# write directory
swd = tempfile.mkdtemp()

########################################
# Design matrix
########################################

paradigm = dm.EventRelatedParadigm(conditions, onsets)
X, names = dm.dmtx_light(frametimes, drift_model='Cosine', hfcut=128,
               hrf_model=hrf_model, paradigm=paradigm, add_regs=motion, add_reg_names=add_reg_names)


#######################################
# Get the FMRI data
#######################################

fmri_data = surrogate_4d_dataset(shape=shape, n_scans=n_scans)[0]

# if you want to save it as an image
data_file = op.join(swd,'fmri_data.nii')
save(fmri_data, data_file)

########################################
# Perform a GLM analysis
########################################
Пример #31
0
hrf_model = 'Canonical'
motion = np.cumsum(np.random.randn(n_scans, 6), 0)
add_reg_names = ['tx', 'ty', 'tz', 'rx', 'ry', 'rz']

# write directory
swd = tempfile.mkdtemp()

########################################
# Design matrix
########################################

paradigm = dm.EventRelatedParadigm(conditions, onsets)
X, names = dm.dmtx_light(frametimes,
                         drift_model='Cosine',
                         hfcut=128,
                         hrf_model=hrf_model,
                         paradigm=paradigm,
                         add_regs=motion,
                         add_reg_names=add_reg_names)

#######################################
# Get the FMRI data
#######################################

fmri_data = surrogate_4d_dataset(shape=shape, n_scans=n_scans)[0]

# if you want to save it as an image
data_file = op.join(swd, 'fmri_data.nii')
save(fmri_data, data_file)

########################################