ブロックデザイン
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