source: project/release/4/nemo/trunk/examples/Golgi/plot_neuron_nest_v.scm @ 31355

Last change on this file since 31355 was 31355, checked in by Ivan Raikov, 6 years ago

nemo: fixed SK2 rate constant units

File size: 6.3 KB
Line 
1
2(require-library srfi-1 irregex data-structures files posix extras ploticus cis)
3(import
4 (only srfi-1 filter)
5 (only files make-pathname)
6 (only posix glob)
7 (only data-structures ->string alist-ref compose)
8 (only extras fprintf)
9 (only mathh cosh tanh log10)
10 (prefix ploticus plot:)
11 )
12
13
14(define comment-pat (string->irregex "^#.*"))
15
16(define (activity-plot nest-file neuron-file) ; stim-file
17
18  (let* (
19         #;(stim-data
20          (fold
21           (lambda (data-file data)
22             (append
23              (map (lambda (line) 
24                     (let ((strs (filter (lambda (x) (not (string-null? x))) (string-split  line " "))))
25                       (map string->number strs)))
26                   (filter (lambda (line) (not (irregex-match comment-pat line)))
27                           (read-lines data-file)))
28              data))
29           '() (list stim-file)))
30
31         (nest-data
32          (fold
33           (lambda (data-file data)
34             (append
35              (map (lambda (line) 
36                     (let ((strs (filter (lambda (x) (not (string-null? x))) (string-split  line "\t"))))
37                       (map string->number strs)))
38                   (filter (lambda (line) (not (irregex-match comment-pat line)))
39                           (read-lines data-file)))
40              data))
41           '() (list nest-file)))
42
43         (neuron-data
44          (fold
45           (lambda (data-file data)
46             (append
47              (map (lambda (line) (map string->number (string-split  line " ")))
48                   (filter (lambda (line) (not (irregex-match comment-pat line)))
49                           (read-lines data-file)))
50              data))
51           '() (list neuron-file)))
52         
53
54         #;(stim-data1
55          (filter-map (lambda (lst) (and (pair? lst) (list (list-ref lst 0) (list-ref lst 1)))) stim-data))
56
57         (nest-data1
58          (map (lambda (lst) (list (list-ref lst 1) (list-ref lst 2))) nest-data))
59
60         (neuron-data1
61          (map (lambda (lst) (list (list-ref lst 0) (list-ref lst 1))) neuron-data))
62         )
63
64    (let-values (
65                 ((fd1 temp-path1) (file-mkstemp "/tmp/activity-plot.nest.XXXXXX"))
66                 ((fd2 temp-path2) (file-mkstemp "/tmp/activity-plot.neuron.XXXXXX"))
67;                 ((fd3 temp-path3) (file-mkstemp "/tmp/activity-plot.stim.XXXXXX"))
68                 )
69     
70      (file-close fd1)
71      (file-close fd2)
72;      (file-close fd3)
73     
74      (let ((dataport (open-output-file temp-path1)))
75        (for-each (lambda (x) (fprintf dataport "~A,~A~%" (car x) (cadr x))) nest-data1)
76        (close-output-port dataport))
77     
78      (let ((dataport (open-output-file temp-path2)))
79        (for-each (lambda (x) (fprintf dataport "~A,~A~%" (car x) (cadr x))) neuron-data1)
80        (close-output-port dataport))
81
82      #;(let ((dataport (open-output-file temp-path3)))
83        (for-each (lambda (x) (fprintf dataport "~A,~A~%" (car x) (cadr x))) stim-data1)
84        (close-output-port dataport))
85     
86      (plot:init 'eps (make-pathname "."  "nest_neuron_run.eps"))
87     
88      (plot:arg "-pagesize"   "20,30")
89      (plot:arg "-textsize"   "14")
90      (plot:arg "-maxrows"    "300000")
91      (plot:arg "-maxfields"  "900000")
92      (plot:arg "-maxvector"  "900000")
93
94      (plot:proc "getdata"
95                 `(
96;                   ("showdata"   . "yes")
97                   ("delim"      . "comma")
98                   ("fieldnames" . "t1 v1")
99                   ("pathname"   . ,temp-path1)
100                   ))
101
102     
103      (plot:proc "areadef"
104                 `(("title"     . "Golgi DeSouza 2010 voltage trace (NEST simulation, soma)")
105                   ("titledetails"     . "adjust=0,0.2")
106                   ("rectangle" . "1 10 8 14")
107                   ("areacolor" . "white")
108                   ("xrange" . "0 3000")
109                   ("yrange" . "-80 60")
110                   ;("xaxis.label"     . "t [ms]")
111                   ("xaxis.axisline"  . "yes")
112                   ("xaxis.stubs"     . "inc")
113                   ("yaxis.label"     . "V [mV]")
114                   ("yaxis.labeldistance"     . "0.6")
115                   ("yaxis.stubs"     . "inc")
116                 ))
117     
118      (plot:proc "lineplot"
119                 `(("xfield"    .  "t1")
120                   ("yfield"    .  "v1")
121                   ("linedetails" . "color=red width=0.5")
122                   ))
123
124
125      (plot:proc "getdata"
126                 `(
127;                   ("showdata"   . "yes")
128                   ("delim"      . "comma")
129                   ("fieldnames" . "t2 v2")
130                   ("pathname"   . ,temp-path2)
131                   ))
132
133     
134      (plot:proc "areadef"
135                 `(("title"     . "Golgi DeSouza 2010 voltage trace (NEURON simulation, soma)")
136                   ("titledetails"     . "adjust=0,0.2")
137                   ("rectangle" . "1 5 8 9")
138                   ("areacolor" . "white")
139                   ("xrange" . "0 3000")
140                   ("yrange" . "-80 60")
141                   ("xaxis.label"     . "t [ms]")
142                   ("xaxis.labeldistance" . "0.6")
143                   ("xaxis.axisline"  . "yes")
144                   ("xaxis.stubs"     . "inc")
145                   ("yaxis.label"     . "V [mV]")
146                   ("yaxis.labeldistance"     . "0.6")
147                   ("yaxis.stubs"     . "inc")
148                 ))
149
150      (plot:proc "lineplot"
151                 `(("xfield"    .  "t2")
152                   ("yfield"    .  "v2")
153                   ("linedetails" . "color=blue width=0.5")
154                   ))
155                   
156#;      (plot:proc "getdata"
157                 `(
158;                   ("showdata"   . "yes")
159                   ("delim"      . "comma")
160                   ("fieldnames" . "t i")
161                   ("pathname"   . ,temp-path3)
162                   ))
163
164     
165#;      (plot:proc "areadef"
166                 `(("title"     . "Stimulus current")
167                   ("titledetails"     . "adjust=0,0.2")
168                   ("rectangle" . "1 3 8 4")
169                   ("areacolor" . "white")
170                   ("xrange" . "0 3000")
171                   ("yrange" . "0 5")
172                   ("xaxis.label"     . "t [ms]")
173                   ("xaxis.axisline"  . "yes")
174                   ("xaxis.stubs"     . "inc")
175                   ("yaxis.label"     . "I [nA]")
176                   ("yaxis.stubs"     . "inc")
177                 ))
178
179#;      (plot:proc "lineplot"
180                 `(("xfield"    .  "t")
181                   ("yfield"    .  "i")
182                   ("stairstep"    .  "yes")
183                   ("linedetails" . "color=green width=1")
184                   ))
185                   
186
187      (plot:end)
188      ))
189    )
190
191(apply activity-plot (command-line-arguments))
192
193
Note: See TracBrowser for help on using the repository browser.