728x90
반응형

파이썬 뉴런 13

[neuron][파이썬] 19. 뉴런 병렬 통신 - Parallel communication in NEURON

🙆‍♂️ 병렬 통신 NetCon으로 병렬 통신을 합니다. NetCon 소스들은 임계값 감지기 입니다. 막 전위 등 변수들을 모니터링하고 임계값에 도달하면 이벤트가 발동됩니다. like 시냅스? 시냅스전 뉴런 "PreCell"에 부착된 "NetCon"은 소스라고 표시된 위치에서 스파이크를 감지하고 시냅스 후 뉴런 "PostCell"에 부착된 시냅스 "타겟"에 이벤트를 전달합니다. gid=7인 시냅스 전 스파이크 소스 "PreCell"은 "호스트 2"에 있지만 대상은 "호스트 4"의 "PostCell"에 연결된 시냅스입니다. "PreCell"이 급증하면 소스가 "gid 7"인 "NetCons"가 이벤트를 대상에 전달할 수 있도록 메시지가 모든 호스트에 전달됩니다. 🙋‍♂️ 실습 시작 MPI라는 도구를 사용할..

AI/neuron 2022.07.28

[neuron][파이썬] 18. 확장된 링 네트워크

🙆‍♂️ 일반 셀 클래스 작성 저번 게시물의 링 네트워크를 구성했던 것에서 유연한 변수를 사용하고 캡슐화를 사용하여 확장된 기능을 제공하는 링 네트워를 구성해보겠습니다. from neuron import h, gui from neuron.units import ms, mV h.load_file('stdrun.hoc') 사전 참조를 해주고 class Cell: def __init__(self, gid, x, y, z, theta): self._gid = gid self._setup_morphology() self.all = self.soma.wholetree() self._setup_biophysics() self.x = self.y = self.z = 0 h.define_shape() self._rota..

AI/neuron 2022.07.25

[neuron][파이썬] 16. 링 네트워크 구성을 위한 초기 구성 - Initial configuration for build a ring network

🙆‍♂️ 일반 cell과 고유 cell class 나누기 from neuron import h, gui from neuron.units import ms, mV h.load_file('stdrun.hoc') 먼저 라이브러리들을 import 합니다. class Cell: def __init__(self, gid): self._gid = gid self._setup_morphology() self.all = self.soma.wholetree() self._setup_biophysics() def __repr__(self): return '{}[{}]'.format(self.name, self._gid) 일반 cell의 class는 이렇구 class BallAndStick(Cell): name = 'Ball..

AI/neuron 2022.07.22

[neuron][파이썬] 14. 여러 개 시뮬레이션1 - Run the simulation

🙆‍♂️ 사전작업 🚀 자극 주입 시뮬레이션 확인에 앞서 만든 모델에 자극을 주입합니다. stim = h.IClamp(my_cell.dend(1)) 시뮬레이션 시작 후 5ms부터 dendrite 원위부 끝에 자극을 줍니다 . stim.get_segment() 위 코드로 자극이 주입되는 세그먼트를 확인할 수 있습니다. 잘 진행되고 있습니다. dir(stim)을 통해서 stim의 속성 값들을 확인할 수 있는데 더 좋은 코드는 print(', '.join(item for item in dir(stim) if not item.startswith('__'))) 위 코드를 이용하면 __를 뺀 속성들만 간단하게 볼 수 있습니다. 이렇게 존재합니다. stim.delay = 5 stim.dur = 1 stim.amp = ..

AI/neuron 2022.07.21

[neuron][파이썬] 13. 생물학 값 특정하기 - Specify biophysics

🙆‍♂️ biophysics 값들 설정 현재 값은 대왕오징어의 생물학적 값으로 대입되어있어서 다시 재설정을 해줘야합니다. 축 저항 값과 막 용량 값을 재설정 합니다. class BallAndStick: def __init__(self, gid): self._gid = gid self.soma = h.Section(name='soma', cell=self) self.dend = h.Section(name='dend', cell=self) self.all = [self.soma, self.dend]#전체 속성 값 배열 self.dend.connect(self.soma) self.soma.L = self.soma.diam = 12.6157 self.dend.L = 200 self.dend.diam = 1 fo..

AI/neuron 2022.07.21

[neuron][파이썬] 12. 스타일 정의 - Define stylized geometry

🙆‍♂️ 길이와 직경 설정 class BallAndStick: def __init__(self, gid): self._gid = gid self.soma = h.Section(name='soma', cell=self) self.dend = h.Section(name='dend', cell=self) self.dend.connect(self.soma) self.soma.L = self.soma.diam = 12.6157 self.dend.L = 200 self.dend.diam = 1 def __repr__(self): return 'BallAndStick[{}]'.format(self._gid) my_cell = BallAndStick(0) 소마의 길이와 직경은 12.6157µm 수상돌기의 길이는 200..

AI/neuron 2022.07.21

[neuron][파이썬] 08. 결과 표시 - Plot the results

🙆‍♂️ bokeh 라이브러리 사용 Jupyter notebook에서 이동, 확대, 저장할 수 있는 대화형 그래프를 제공해주는 bokeh 모듈을 사용하면 편리합니다. bokeh 로드 방법은 from bokeh.io import output_notebook import bokeh.plotting as plt output_notebook() bokeh가 잘 로드된 모습입니다. f = plt.figure(x_axis_label='t (ms)', y_axis_label='v (mV)') f.line(t, v, line_width=2) plt.show(f) 그래프를 그래보고 실행을 해보면 그래프가 그려져서 나오는 모습입니다. 🙋‍♂️ matplotlib 사용 matplotlib는 자바스크립트가 아닌 기본적인 그래..

AI/neuron 2022.07.20

[neuron][파이썬] 07. 시뮬레이션 실행 - Run the simulation

🙆‍♂️ 라이브러리 로드 h 모듈에서도 시뮬레이션 기능을 제공하지만 더 높은 사양을 위해서 stdrun 라이브러리를 로드해야 합니다. h.load_file('stdrun.hoc') 로드 후 run을 했을 때 1.0이 보인다면 잘 로드가 된 것입니다. h.finitialize(-65) 휴지 전위 상태의 막 전위 값을 -65로 설정하기 위해서 finitialize 함수를 사용합니다. 설정 수치는 -65mV입니다. h.continuerun(40) 그리고 시뮬레이션 지속 시간을 40ms로 설정할 수 있습니다. from neuron import h soma = h.Section(name='soma') soma.L = 20 soma.diam = 20 soma.insert('hh') mech = soma(0.5).h..

AI/neuron 2022.07.20

[neuron][파이썬] 06. 기록 변수 설정 - Set up recording variables

🙆‍♂️ recording 변수 설정 시뮬레이션을 실행하도록 셀을 구성해야 합니다. 그렇기 위해서 뉴런 벡터(h.Vector() 객체)에 저장되는 기록 변수를 지정해야 합니다. soma(0.5).v인 막전위와 해당 시점(h.t)를 기록합니다. 변수 이름 마지막 부분에는 _ref_를 붙여서 사용합니다. v = h.Vector().record(soma(0.5)._ref_v) t = h.Vector().record(h._ref_t) v는 막 전위 백터고 t는 타임스탬프 백터 입니다.

AI/neuron 2022.07.20

[neuron][파이썬] 05. 자극 입력 - Insert a stimulus / (Add point process)

🙆‍♂️ 자극 입력 IClamp라는 객체를 사용해서 포인트 프로세스를 추가할 수 있습니다. stim = h.IClamp(soma(0.5)) 🙋‍♂️ 생성 여부 확인 방법 dir()함수를 사용해서 속성을 확인할 수 있습니다. print(dir(stim)) 앞에 언더바 두개가 있는 속성을 빼고 보고 싶다면 print([i for i in dir(stim) if not i.startswith('__')]) 이렇게 확인이 가능합니다. 전류 클램프의 주요 속성이 3가지가 있습니다. amp - 진폭(nA) delay - 지연 시간 - 켜지는 시간(ms) dur - 지속시간 - 켜져 있는 시간(ms) 입니다. stim.delay = 2 stim.dur = 0.1 stim.amp = 0.9 늘 하던 방법으로 설정할 수..

AI/neuron 2022.07.20
728x90
반응형