ブロックデザインとHRFの畳み込みモデル

ブロックデザイン

HRF


Pythonでモデル化

Pythonで、ブロックデザインの刺激モデルとHRFの畳み込み計算をしていきます。

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import nipy.modalities.fmri.hrf as hrf

#ボリューム
times = np.arange(0, 288, 1)
#ボリューム数
n_time_points = len(times)

neural_signal = np.zeros(n_time_points)
#タスク
tasks = [24]
for i in range(5):
    tasks.append(tasks[i] + 48)
for i in tasks:
    neural_signal[(times >= i) & (times < i+24)] = 1

plt.plot(times, neural_signal)
plt.xlabel('Vlume')
plt.ylabel('neural signal')
plt.ylim(0, 1.2)
plt.title("block_task")
plt.savefig('block_task.png')
plt.show()



#BOLD反応
hrf_times = np.arange(0, 30, 1)
hrf_signal = hrf.spm_hrf_compat(hrf_times)
plt.plot(hrf_times, hrf_signal)

plt.xlabel('time (seconds)')
plt.ylabel('BOLD signal')
plt.title('HRF')
plt.savefig('HRF.png')
plt.show()



#畳み込み
bold_signal = np.convolve(neural_signal, hrf_signal)
plt.plot(bold_signal[:288])
plt.xlabel('Vlume')
plt.ylabel('bold signal')
plt.title('convolution HRF and Block')
plt.savefig('bold.png')
plt.show()

出力

ブロックデザイン

HRF

ブロックデザインとHRFの畳み込みモデル

参考

http://mumford.fmripower.org/2010_summercourse/lev1_2010.pdf
https://en.wikipedia.org/wiki/Convolution
http://mindhive.mit.edu/node/72
https://practical-neuroimaging.github.io/on_convolution.html
http://nipy.org/nipy/api/generated/nipy.modalities.fmri.hrf.html

おすすめ