Exemple #1
0
def test_show_design_matrix():
    # test that the show code indeed (formally) runs
    frame_times = np.linspace(0, 127 * 1., 128)
    DM = make_design_matrix(
        frame_times, drift_model='polynomial', drift_order=3)
    ax = plot_design_matrix(DM)
    assert (ax is not None)
Exemple #2
0
def test_show_design_matrix():
    # test that the show code indeed (formally) runs
    frame_times = np.linspace(0, 127 * 1., 128)
    DM = make_design_matrix(frame_times,
                            drift_model='polynomial',
                            drift_order=3)
    ax = plot_design_matrix(DM)
    assert (ax is not None)
X1 = make_design_matrix(
    frame_times, paradigm, drift_model='polynomial', drift_order=3,
    add_regs=motion, add_reg_names=add_reg_names)

# block design matrix
duration = 7. * np.ones(len(conditions))
paradigm = pd.DataFrame({'name': conditions, 'onset': onsets,
                      'duration': duration})

X2 = make_design_matrix(frame_times, paradigm, drift_model='polynomial',
                        drift_order=3)

# FIR model
paradigm = pd.DataFrame({'name': conditions, 'onset': onsets})
hrf_model = 'FIR'
X3 = make_design_matrix(frame_times, paradigm, hrf_model='fir',
                        drift_model='polynomial', drift_order=3,
                        fir_delays=np.arange(1, 6))

# plot the results
fig, (ax1, ax2, ax3) = plt.subplots(figsize=(10, 6), nrows=1, ncols=3)
plot_design_matrix(X1, ax=ax1)
ax1.set_title('Event-related design matrix', fontsize=12)
plot_design_matrix(X2, ax=ax2)
ax2.set_title('Block design matrix', fontsize=12)
plot_design_matrix(X3, ax=ax3)
ax3.set_title('FIR design matrix', fontsize=12)
plt.subplots_adjust(left=0.08, top=0.9, bottom=0.21, right=0.96, wspace=0.3)
plt.show()
                    len(conditions))
paradigm = DataFrame(
    {'onset': onset, 'duration': duration, 'name': conditions})

# construct design matrix
nscans = len(subject_data.func)
frametimes = np.linspace(0, (nscans - 1) * tr, nscans)
drift_model = 'Cosine'
hrf_model = 'Canonical With Derivative'
period_cut = 2 * 2 * epoch_duration
design_matrix = make_design_matrix(
    frametimes, paradigm, hrf_model=hrf_model, drift_model=drift_model,
    period_cut=period_cut)

# plot and save design matrix
ax = plot_design_matrix(design_matrix)
ax.set_position([.05, .25, .9, .65])
ax.set_title('Design matrix')

# specify contrasts
contrasts = {}
_, matrix, names = check_design_matrix(design_matrix)
contrast_matrix = np.eye(len(names))
for i in range(len(names)):
    contrasts[names[i]] = contrast_matrix[i]

# Use a  more interesting contrast
contrasts = {'active-rest': contrasts['active'] - contrasts['rest']}

# fit GLM
print('\r\nFitting a GLM (this takes time) ..')
Exemple #5
0
def plot_design(design, tr, title="Design matrix", group=False, ax=None):
    if group is True:
        design['trial_type'] = design['trial_group']
    x = design_matrix(design, tr)
    plot_design_matrix(x, ax=ax)
    plt.title(title)
Exemple #6
0
paradigm_file = heroes['paradigm'][0]

# Read the paradigm
from nistats import experimental_paradigm
paradigm = experimental_paradigm.paradigm_from_csv(paradigm_file)

# Create the design matrix
import numpy as np
import matplotlib.pyplot as plt
import nibabel
from nistats.design_matrix import make_design_matrix, plot_design_matrix
tr = 2.5
n_scans = nibabel.load(func_file).get_data().shape[-1]
frametimes = np.arange(0, n_scans * tr, tr)
design_matrix = make_design_matrix(frametimes, paradigm)
plot_design_matrix(design_matrix)
plt.tight_layout()

# Fit GLM
print('Fitting a GLM')
from nistats.first_level_model import FirstLevelModel
fmri_glm = FirstLevelModel(tr)
fmri_glm = fmri_glm.fit(func_file, design_matrices=design_matrix)

# Specify the contrasts
contrasts = {}
n_columns = len(design_matrix.columns)
for n, name in enumerate(design_matrix.columns[:3]):
    contrasts[name] = np.zeros((n_columns, ))
    contrasts[name][n] = 1
contrasts['[motor audio] left - right'] = \
X1 = make_design_matrix(
    frame_times, 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 = DataFrame({"name": conditions, "onset": onsets, "duration": duration})

X2 = make_design_matrix(frame_times, paradigm, drift_model="polynomial", drift_order=3)

# FIR model
paradigm = DataFrame({"name": conditions, "onset": onsets})
hrf_model = "FIR"
X3 = make_design_matrix(
    frame_times, paradigm, hrf_model="fir", drift_model="polynomial", drift_order=3, fir_delays=np.arange(1, 6)
)

# plot the results
fig = plt.figure(figsize=(10, 6))
ax = plt.subplot(1, 3, 1)
plot_design_matrix(X1, ax=ax)
ax.set_title("Event-related design matrix", fontsize=12)
ax = plt.subplot(1, 3, 2)
plot_design_matrix(X2, ax=ax)
ax.set_title("Block design matrix", fontsize=12)
ax = plt.subplot(1, 3, 3)
plot_design_matrix(X3, ax=ax)
ax.set_title("FIR design matrix", fontsize=12)
plt.subplots_adjust(top=0.9, bottom=0.25)
plt.show()