| { |
| "IAFs": { |
| "format": "ModECI MDF v0.4", |
| "generating_application": "Python modeci-mdf v0.4.11", |
| "metadata": { |
| "preferred_duration": 100, |
| "preferred_dt": 0.1 |
| }, |
| "graphs": { |
| "IAFs": { |
| "nodes": { |
| "current_input_node": { |
| "parameters": { |
| "time": { |
| "default_initial_value": 0, |
| "time_derivative": "1" |
| }, |
| "start": { |
| "value": 20 |
| }, |
| "duration": { |
| "value": 60 |
| }, |
| "amplitude": { |
| "value": 10 |
| }, |
| "level": { |
| "value": 0, |
| "conditions": [ |
| { |
| "id": "on", |
| "test": "time > start", |
| "value": "amplitude" |
| }, |
| { |
| "id": "off", |
| "test": "time > start + duration", |
| "value": "amplitude*0" |
| } |
| ] |
| } |
| }, |
| "output_ports": { |
| "current_output": { |
| "value": "level" |
| } |
| } |
| }, |
| "pre": { |
| "input_ports": { |
| "current_input": { |
| "shape": [ |
| 1 |
| ] |
| } |
| }, |
| "parameters": { |
| "v0": { |
| "value": [ |
| -60 |
| ] |
| }, |
| "erev": { |
| "value": [ |
| -70 |
| ] |
| }, |
| "tau": { |
| "value": 10.0 |
| }, |
| "thresh": { |
| "value": [ |
| -20 |
| ] |
| }, |
| "spiking": { |
| "default_initial_value": "0", |
| "conditions": [ |
| { |
| "id": "is_spiking", |
| "test": "v >= thresh", |
| "value": "1" |
| }, |
| { |
| "id": "not_spiking", |
| "test": "v < thresh", |
| "value": "0" |
| } |
| ] |
| }, |
| "v": { |
| "default_initial_value": "v0", |
| "time_derivative": "-1 * (v-erev)/tau + current_input", |
| "conditions": [ |
| { |
| "id": "reset", |
| "test": "v > thresh", |
| "value": "erev" |
| } |
| ] |
| } |
| }, |
| "output_ports": { |
| "v_output": { |
| "value": "v" |
| }, |
| "spiking_output": { |
| "value": "spiking" |
| } |
| } |
| }, |
| "post": { |
| "input_ports": { |
| "current_input": { |
| "shape": [ |
| 1 |
| ] |
| } |
| }, |
| "parameters": { |
| "v0": { |
| "value": [ |
| -60 |
| ] |
| }, |
| "erev": { |
| "value": [ |
| -70 |
| ] |
| }, |
| "tau": { |
| "value": 10.0 |
| }, |
| "thresh": { |
| "value": [ |
| -20 |
| ] |
| }, |
| "spiking": { |
| "default_initial_value": "0", |
| "conditions": [ |
| { |
| "id": "is_spiking", |
| "test": "v >= thresh", |
| "value": "1" |
| }, |
| { |
| "id": "not_spiking", |
| "test": "v < thresh", |
| "value": "0" |
| } |
| ] |
| }, |
| "v": { |
| "default_initial_value": "v0", |
| "time_derivative": "-1 * (v-erev)/tau + current_input", |
| "conditions": [ |
| { |
| "id": "reset", |
| "test": "v > thresh", |
| "value": "erev" |
| } |
| ] |
| } |
| }, |
| "output_ports": { |
| "v_output": { |
| "value": "v" |
| }, |
| "spiking_output": { |
| "value": "spiking" |
| } |
| } |
| }, |
| "syn_post": { |
| "input_ports": { |
| "spike_input": { |
| "shape": [ |
| 1 |
| ] |
| } |
| }, |
| "parameters": { |
| "syn_tau": { |
| "value": 10 |
| }, |
| "spike_weights": { |
| "value": [ |
| 40 |
| ] |
| }, |
| "weighted_spike": { |
| "function": "MatMul", |
| "args": { |
| "A": "spike_weights", |
| "B": "spike_input" |
| } |
| }, |
| "syn_i": { |
| "default_initial_value": "0", |
| "time_derivative": "-1 * syn_i", |
| "conditions": [ |
| { |
| "id": "spike_detected", |
| "test": "spike_input > 0", |
| "value": "weighted_spike" |
| } |
| ] |
| } |
| }, |
| "output_ports": { |
| "current_output": { |
| "value": "syn_i" |
| } |
| } |
| } |
| }, |
| "edges": { |
| "input_edge": { |
| "sender": "current_input_node", |
| "receiver": "pre", |
| "sender_port": "current_output", |
| "receiver_port": "current_input" |
| }, |
| "post_internal_edge": { |
| "sender": "syn_post", |
| "receiver": "post", |
| "sender_port": "current_output", |
| "receiver_port": "current_input" |
| }, |
| "syn_edge": { |
| "sender": "pre", |
| "receiver": "syn_post", |
| "sender_port": "spiking_output", |
| "receiver_port": "spike_input" |
| } |
| } |
| } |
| } |
| } |
| } |
|
|