1+ import numpy as np
2+ import matplotlib .pyplot as plt
3+ import json
4+ import os
5+
6+ def compare_all ():
7+ dat_file = "RE_reduced_cell_step_test.RE_reduced_cell_pop.v.dat"
8+ json_file = "RE_reduced_hh2_data.json"
9+ ina_hh2_dat_file = "hh2_na_iDensity.dat"
10+ ik_hh2_dat_file = "hh2_k_iDensity.dat"
11+ m_hh2_na_dat_file = "m_hh2_na_state.dat"
12+ h_hh2_na_dat_file = "h_hh2_na_state.dat"
13+ n_hh2_k_dat_file = "n_hh2_k_state.dat"
14+
15+ dat_data = np .loadtxt (dat_file )
16+ time_dat = dat_data [:, 0 ]
17+ voltage_dat = dat_data [:, 1 ] * 1000
18+
19+ ina_hh2_dat_data = np .loadtxt (ina_hh2_dat_file )
20+ time_ina_hh2_dat = ina_hh2_dat_data [:, 0 ]
21+ ina_hh2_dat = ina_hh2_dat_data [:, 1 ] * - 0.1
22+
23+ ik_hh2_dat_data = np .loadtxt (ik_hh2_dat_file )
24+ time_ik_hh2_dat = ik_hh2_dat_data [:, 0 ]
25+ ik_hh2_dat = ik_hh2_dat_data [:, 1 ] * - 0.1
26+
27+ m_hh2_na_dat_data = np .loadtxt (m_hh2_na_dat_file )
28+ time_m_hh2_na_dat = m_hh2_na_dat_data [:, 0 ]
29+ m_hh2_na_dat = m_hh2_na_dat_data [:, 1 ]
30+
31+ h_hh2_na_dat_data = np .loadtxt (h_hh2_na_dat_file )
32+ time_h_hh2_na_dat = h_hh2_na_dat_data [:, 0 ]
33+ h_hh2_na_dat = h_hh2_na_dat_data [:, 1 ]
34+
35+ n_hh2_k_dat_data = np .loadtxt (n_hh2_k_dat_file )
36+ time_n_hh2_k_dat = n_hh2_k_dat_data [:, 0 ]
37+ n_hh2_k_dat = n_hh2_k_dat_data [:, 1 ]
38+
39+ with open (json_file , 'r' ) as f :
40+ json_data = json .load (f )
41+ voltage_json = json_data ['simData' ]['V_soma' ]['cell_0' ]
42+ ina_hh2_json = json_data ['simData' ]['ina' ]['cell_0' ]
43+ ik_hh2_json = json_data ['simData' ]['ik' ]['cell_0' ]
44+ m_hh2_na_json = json_data ['simData' ]['m_hh2_na' ]['cell_0' ]
45+ h_hh2_na_json = json_data ['simData' ]['h_hh2_na' ]['cell_0' ]
46+ n_hh2_k_json = json_data ['simData' ]['n_hh2_k' ]['cell_0' ]
47+
48+ dt = 1e-6
49+ time_json = np .arange (len (voltage_json )) * dt
50+
51+ fig , axes = plt .subplots (2 , 3 , figsize = (15 , 10 ))
52+
53+ axes [0 , 0 ].plot (time_dat , voltage_dat , 'b-' , label = 'nml Voltage' , linewidth = 2 )
54+ axes [0 , 0 ].plot (time_json , voltage_json , 'r--' , label = 'netpyne Voltage' , linewidth = 1.5 )
55+ axes [0 , 0 ].set_xlabel ('Time (s)' )
56+ axes [0 , 0 ].set_ylabel ('Voltage (mV)' )
57+ axes [0 , 0 ].set_title ('Voltage Comparison' )
58+ axes [0 , 0 ].legend ()
59+ axes [0 , 0 ].grid (True , linestyle = '--' , alpha = 0.7 )
60+
61+ axes [0 , 1 ].plot (time_ina_hh2_dat , ina_hh2_dat , 'b-' , label = 'nml ina_hh2' , linewidth = 2 )
62+ axes [0 , 1 ].plot (time_json , ina_hh2_json , 'r--' , label = 'netpyne ina_hh2' , linewidth = 1.5 )
63+ axes [0 , 1 ].set_xlabel ('Time (s)' )
64+ axes [0 , 1 ].set_ylabel ('ina_hh2' )
65+ axes [0 , 1 ].set_title ('ina_hh2 Comparison' )
66+ axes [0 , 1 ].legend ()
67+ axes [0 , 1 ].grid (True , linestyle = '--' , alpha = 0.7 )
68+
69+ axes [0 , 2 ].plot (time_ik_hh2_dat , ik_hh2_dat , 'b-' , label = 'nml ik_hh2' , linewidth = 2 )
70+ axes [0 , 2 ].plot (time_json , ik_hh2_json , 'r--' , label = 'netpyne ik_hh2' , linewidth = 1.5 )
71+ axes [0 , 2 ].set_xlabel ('Time (s)' )
72+ axes [0 , 2 ].set_ylabel ('ik_hh2' )
73+ axes [0 , 2 ].set_title ('ik_hh2 Comparison' )
74+ axes [0 , 2 ].legend ()
75+ axes [0 , 2 ].grid (True , linestyle = '--' , alpha = 0.7 )
76+
77+ axes [1 , 0 ].plot (time_m_hh2_na_dat , m_hh2_na_dat , 'b-' , label = 'nml m_hh2_na' , linewidth = 2 )
78+ axes [1 , 0 ].plot (time_json , m_hh2_na_json , 'r--' , label = 'netpyne m_hh2_na' , linewidth = 1.5 )
79+ axes [1 , 0 ].set_xlabel ('Time (s)' )
80+ axes [1 , 0 ].set_ylabel ('m_hh2_na' )
81+ axes [1 , 0 ].set_title ('m_hh2_na Comparison' )
82+ axes [1 , 0 ].legend ()
83+ axes [1 , 0 ].grid (True , linestyle = '--' , alpha = 0.7 )
84+
85+ axes [1 , 1 ].plot (time_h_hh2_na_dat , h_hh2_na_dat , 'b-' , label = 'nml h_hh2_na' , linewidth = 2 )
86+ axes [1 , 1 ].plot (time_json , h_hh2_na_json , 'r--' , label = 'netpyne h_hh2_na' , linewidth = 1.5 )
87+ axes [1 , 1 ].set_xlabel ('Time (s)' )
88+ axes [1 , 1 ].set_ylabel ('h_hh2_na' )
89+ axes [1 , 1 ].set_title ('h_hh2_na Comparison' )
90+ axes [1 , 1 ].legend ()
91+ axes [1 , 1 ].grid (True , linestyle = '--' , alpha = 0.7 )
92+
93+ axes [1 , 2 ].plot (time_n_hh2_k_dat , n_hh2_k_dat , 'b-' , label = 'nml n_hh2_k' , linewidth = 2 )
94+ axes [1 , 2 ].plot (time_json , n_hh2_k_json , 'r--' , label = 'netpyne n_hh2_k' , linewidth = 1.5 )
95+ axes [1 , 2 ].set_xlabel ('Time (s)' )
96+ axes [1 , 2 ].set_ylabel ('n_hh2_k' )
97+ axes [1 , 2 ].set_title ('n_hh2_k Comparison' )
98+ axes [1 , 2 ].legend ()
99+ axes [1 , 2 ].grid (True , linestyle = '--' , alpha = 0.7 )
100+
101+ plt .tight_layout ()
102+ current_dir = os .getcwd ()
103+ save_path = os .path .join (current_dir , "compare_hh2.png" )
104+ plt .savefig (save_path , dpi = 300 , bbox_inches = 'tight' )
105+ plt .show ()
106+
107+ if __name__ == "__main__" :
108+ compare_all ()
0 commit comments