728x90
반응형

AI/neuron 22

[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][파이썬] 11. 섹션 연결 - Connect the sections

🙆‍♂️ soma와 dend 연결 soma와 dend를 연결하기 위해서는 역시 class 속 함수의 내용을 바꿔줘야 합니다. 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) def __repr__(self): return 'BallAndStick[{}]'.format(self._gid) connect 메소드를 사용해서 연결해줄 수 있습니다. 지금 상황은 완전하게 연결된 것은 아니고 soma가 끝나는 지점에 dend가 시작되어서 연결..

AI/neuron 2022.07.21

[neuron][파이썬] 10. 여러 섹션 만들기 - Create the sections

🙆‍♂️ 시작 설정 from neuron import h from neuron.units import ms, mV h.load_file('stdrun.hoc') 시작하기 전에 라이브러리들을 import 시켜주고 %matplotlib notebook 주피터 노트북에서 하고 있다면 이 코드도 넣어줍니다. 🙋‍♂️ 섹션 생성 섹션 = 셀입니다. 셀은 ball과 stick으로 구성되는데 ball은 soma(세포체)이고 stick은 dendrites(수상 둘기) 입니다. 이전에 배웠던 방법으로는 여러 셀을 만들 수 없습니다. 클래스로 정의해서 만들어야 합니다. class BallAndStick: def __init__(self): self.soma = h.Section(name='soma', cell=self) ..

AI/neuron 2022.07.21

[neuron][파이썬] 09. 결과 저장하고 불러오기 - Saving and loading results

🙆‍♂️ CSV csv 파일 형식은 데이터 교환에 널리 사용되는 방식ㅇ빈디ㅏ. csv 모듈을 제공하니 import 하여 사용할 수 있습니다. import csv 그전에 해당 폴더에 data.csv를 만들고 🚀 작성하기 with open('data.csv', 'w') as f: csv.writer(f).writerows(zip(t, v)) 이렇게 작성하면 data.csv에 t값과 v값이 작성됩니다. 🚀 csv 불러오기 with open('data.csv') as f: reader = csv.reader(f) tnew, vnew = zip(*[[float(val) for val in row] for row in reader if row]) tnew 변수와 vnew 변수를 통해서 csv에 저장되어 있었던 값들..

AI/neuron 2022.07.20

[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

[neuron][파이썬] 04. 이온 채널 입력 - Insert ion channels

🙆‍♂️ 채널 입력하기 soma.insert('hh') Hodgkin-Huxley 채널을 입력하려면 위와 같은 코드로 작성할 수 있습니다. 또 다른 채널인 passive 채널은 pas로 입력할 수 있습니다. 🙋‍♂️ 섹션과 세그먼트 섹션 내의 세그먼트 수는 nseg 속성에 저장됩니다. print(soma.nseg) 위의 코드로 확인할 수 있습니다. 🚀 섹션&세그먼트 접근 섹션의 일부에 접근하려면 0과 1사이의 값을 지정하면 됩니다. 0과 1 사이인 0.5를 지정하면 중간 세그먼트를 얻을 수 있습니다. 섹션에 접근하고 싶다면 이름 별로 접근하고 세그먼트에 접근하고 싶다면 섹션의 위치 별로 접근하면 됩니다. print("type(soma) = {}".format(type(soma))) print("type(..

AI/neuron 2022.07.20

[neuron][파이썬] 03. 셀 형태 속성 설정 - Set the cell's morphological properties

🙆‍♂️ 속성값 설정 soma.L = 20 soma.diam = 20 morphological의 속성값을 변경하려면 위와 같은 방식을 사용하면 됩니다. 출력을 해보면 값이 바뀐 모습을 볼 수 있습니다. 🙋‍♂️ 속성값 확인 법 🚀 dir()함수 사용 dir(soma) 엄청나게 많은 속성들을 확인할 수 있었습니다. dir(h) h의 속성 정보를 확인해보면 어마어마하게 많은 속성들을 확인할 수 있습니다. 🚀 help()함수 사용 dir함수 말고도 help함수를 사용해서 문서로 도움말을 볼 수 있습니다. help(soma.connect) 이렇게 help 함수를 통해 connect 속성의 사용법에 대해 알아볼 수 있습니다. ?soma.connect jupyter notebook으로 사용하면 이렇게 정보창으로 뜨..

AI/neuron 2022.07.20
728x90
반응형