AI/neuron

[neuron][파이썬] 15. 여러 개 시뮬레이션2 - Run the simulations

내만 2022. 7. 22. 11:57
728x90
반응형

 

 

 

 

 

🙆‍♂️ 전류 진폭의 역할 -

Role of current amplitude(amp)


전류 진폭의 차이를 확인하기 위해서 for문을 통해 값과 색을 변경하여 그래프를 확인해보겠습니다.

 

from bokeh.io import output_notebook
import bokeh.plotting as plt
output_notebook()

f = plt.figure(x_axis_label='t (ms)', y_axis_label='v (mV)')
amps = [0.075 * i for i in range(1, 5)]
colors = ['green', 'blue', 'red', 'black']
for amp, color in zip(amps, colors):
    stim.amp = amp
    h.finitialize(-65)
    h.continuerun(25)
    f.line(t, list(soma_v), line_width=2, legend_label='amp=%g' % amp, color=color)
plt.show(f)

그래프 우측 상단에서 알 수 있듯 amp값이 0.075와 0.15, 0.225, 0.3일 때를 다루고 있습니다.

진폭 값이 클 수록 막전위의 최대값이 커지고 최솟값또한 커지는 것을 알 수 있습니다.

 

 

 

🙋‍♂️ 수상돌기와 세포체 그리기 - Plotting both the dendrite and the soma


dend_v = h.Vector().record(my_cell.dend(0.5)._ref_v)

dend(수상돌기)의 뉴런 벡터값을 기록하기 위해서 새로 선언해줍니다.

 

f = plt.figure(x_axis_label='t (ms)', y_axis_label='v (mV)')
amps = [0.075 * i for i in range(1, 5)]
colors = ['green', 'blue', 'red', 'black']
for amp, color in zip(amps, colors):
    stim.amp = amp
    h.finitialize(-65)
    h.continuerun(25)
    f.line(t, list(soma_v), line_width=2, legend_label='amp=%g' % amp, color=color)
    f.line(t, list(dend_v), line_width=2, line_dash='dashed', color=color) #이부분

plt.show(f)

이부분으로 주석 단 부분에 dend의 차트가 그려지는데 dashed로 표현해서 soma차트와 다르게 표현합니다.

 

soma의 막전위가 일정 수준보다 낮다면 dend가 soma보다 탈분극 할 가능성이 있지만

누출된 수상돌기의 막 전위 피크(아마 막전위 최솟값)은 상당히 감소했습니다.

이런 현상이 나오는 것은 현재 만든 모델에서 전압 개폐 채널이 soma에만 존재하기 때문이라네요.

 

 

🤷‍♂️ nseg의 역할 - The role of nseg


dend(수상돌기)의 세그먼트 수를 나타내는 nseg의 값이 변함을 통해 어떤 역할을 하는지 확인해보겠습니다.

 

f = plt.figure(x_axis_label='t (ms)', y_axis_label='v (mV)')
amps = [0.075 * i for i in range(1, 5)]
colors = ['green', 'blue', 'red', 'black']
for amp, color in zip(amps, colors):
    stim.amp = amp
    for my_cell.dend.nseg, width in [(1, 4), (101, 1)]:
        h.finitialize(-65)
        h.continuerun(25)
        f.line(t, list(soma_v), line_width=width, legend_label='amp=%g' % amp , color=color)
        f.line(t, list(dend_v), line_width=width, line_dash='dashed', color=color) 

plt.show(f)

nseg값이 1과 101을 비교해서 보는데 1일 때 굴기가 4이고 101일 때 굵기가 1로 nseg값이 작은 선이 더 굵습니다.

 

그래프의 모습은 이렇습니다. 슬슬 난잡합니다.

nseg=1일 때보다 101일 때 soma peaks(체세포 막전위 최대값)이 낮아졌지만

dendrite peaks(수상돌기 막전위 최대값)은 높아졌습니다.

 

 

f = plt.figure(x_axis_label='t (ms)', y_axis_label='v (mV)')
amps = [0.075 * i for i in range(1, 5)]
colors = ['green', 'blue', 'red', 'black']
for amp, color in zip(amps, colors):
    stim.amp = amp
    for my_cell.dend.nseg, width in [(7, 2), (101, 1)]:
        h.finitialize(-65)
        h.continuerun(25)
        f.line(t, list(soma_v), line_width=width, legend_label='amp=%g' % amp , color=color)
        f.line(t, list(dend_v), line_width=width, line_dash='dashed', color=color) 

plt.show(f)

재밌는 것은 nseg값이 7일 때 101과 비교해보면

차이가 없습니다. 이 결괄르 통해 nseg값의 차이가 일정 수준 이상이여야 위에서 찾은 법칙이 적용됨을 알았습니다.

728x90
반응형