ABCD:
    format: ModECI MDF v0.4
    graphs:
        ABCD:
            notes: Example of a simplified network
            nodes:
                A_input:
                    metadata:
                        color: 0.2 0.2 0.2
                        radius: 3
                        region: region1
                    parameters:
                        variable:
                            value:
                            - 2.0
                        spike:
                            default_initial_value:
                            - 0
                            conditions:
                                condition_0_on:
                                    test: OUTPUT < 0
                                    value: 1
                                condition_0_off:
                                    test: spike > 0
                                    value: 0
                        V:
                            value: 0
                        OUTPUT:
                            value: variable
                    input_ports:
                        INPUT: {}
                    output_ports:
                        spike:
                            value: spike
                        V:
                            value: V
                        OUTPUT:
                            value: OUTPUT
                    notes: "Cell: [Cell(notes=None, id='a_input', parameters={'variable':\
                        \ 'A_initial'}, neuroml2_source_file=None, lems_source_file='PNL.xml',\
                        \ neuroml2_cell=None, pynn_cell=None, arbor_cell=None, bindsnet_node=None)]\
                        \ is defined in PNL.xml and in Lems is: Component, id: a_input,\
                        \ type: inputNode,\n   parameters: {'variable': '2'}\n   parent:\
                        \ None\n"
                A:
                    metadata:
                        color: 0 0.9 0
                        radius: 5
                        region: region1
                    parameters:
                        slope:
                            value:
                            - 2.0
                        intercept:
                            value:
                            - 2.0
                        spike:
                            default_initial_value:
                            - 0
                            conditions:
                                condition_0_on:
                                    test: OUTPUT < 0
                                    value: 1
                                condition_0_off:
                                    test: spike > 0
                                    value: 0
                        V:
                            value: 0
                        OUTPUT:
                            value: INPUT*slope + intercept
                    input_ports:
                        INPUT: {}
                    output_ports:
                        spike:
                            value: spike
                        V:
                            value: V
                        OUTPUT:
                            value: OUTPUT
                    notes: "Cell: [Cell(notes=None, id='a', parameters=None, neuroml2_source_file=None,\
                        \ lems_source_file='PNL.xml', neuroml2_cell=None, pynn_cell=None,\
                        \ arbor_cell=None, bindsnet_node=None)] is defined in PNL.xml\
                        \ and in Lems is: Component, id: a, type: pnlLinearFunctionTM,\n\
                        \   parameters: {'slope': '2', 'intercept': '2'}\n   parent:\
                        \ None\n"
                B:
                    metadata:
                        color: .8 .8 .8
                        radius: 5
                        region: region1
                    parameters:
                        gain:
                            value:
                            - 1.0
                        bias:
                            value:
                            - 0.0
                        x_0:
                            value:
                            - 0.0
                        offset:
                            value:
                            - 0.0
                        spike:
                            default_initial_value:
                            - 0
                            conditions:
                                condition_0_on:
                                    test: OUTPUT < 0
                                    value: 1
                                condition_0_off:
                                    test: spike > 0
                                    value: 0
                        V:
                            value: 0
                        OUTPUT:
                            value: 1/(1+numpy.exp(-1*gain*(INPUT + bias - x_0)+offset))
                    input_ports:
                        INPUT: {}
                    output_ports:
                        spike:
                            value: spike
                        V:
                            value: V
                        OUTPUT:
                            value: OUTPUT
                    notes: "Cell: [Cell(notes=None, id='b', parameters=None, neuroml2_source_file=None,\
                        \ lems_source_file='PNL.xml', neuroml2_cell=None, pynn_cell=None,\
                        \ arbor_cell=None, bindsnet_node=None)] is defined in PNL.xml\
                        \ and in Lems is: Component, id: b, type: pnlLogisticFunctionTM,\n\
                        \   parameters: {'gain': '1.0', 'bias': '0.0', 'x_0': '0.0',\
                        \ 'offset': '0.0'}\n   parent: None\n"
                C:
                    metadata:
                        color: 0.7 0.7 0.7
                        radius: 5
                        region: region1
                    parameters:
                        rate:
                            value:
                            - 1.0
                        bias:
                            value:
                            - 0.0
                        scale:
                            value:
                            - 1.0
                        offset:
                            value:
                            - 0.0
                        spike:
                            default_initial_value:
                            - 0
                            conditions:
                                condition_0_on:
                                    test: OUTPUT < 0
                                    value: 1
                                condition_0_off:
                                    test: spike > 0
                                    value: 0
                        V:
                            value: 0
                        OUTPUT:
                            value: scale * numpy.exp((rate * INPUT) + bias) + offset
                    input_ports:
                        INPUT: {}
                    output_ports:
                        spike:
                            value: spike
                        V:
                            value: V
                        OUTPUT:
                            value: OUTPUT
                    notes: "Cell: [Cell(notes=None, id='c', parameters=None, neuroml2_source_file=None,\
                        \ lems_source_file='PNL.xml', neuroml2_cell=None, pynn_cell=None,\
                        \ arbor_cell=None, bindsnet_node=None)] is defined in PNL.xml\
                        \ and in Lems is: Component, id: c, type: pnlExponentialFunctionTM,\n\
                        \   parameters: {'rate': '1.0', 'bias': '0.0', 'scale': '1.0',\
                        \ 'offset': '0.0'}\n   parent: None\n"
                D:
                    metadata:
                        color: 0.7 0 0
                        radius: 5
                        region: region1
                    parameters:
                        rate:
                            value:
                            - 0.05
                        time_step_size:
                            value:
                            - 0.1
                        spike:
                            default_initial_value:
                            - 0
                            conditions:
                                condition_0_on:
                                    test: OUTPUT < 0
                                    value: 1
                                condition_0_off:
                                    test: spike > 0
                                    value: 0
                        OUTPUT:
                            time_derivative: (rate * INPUT) / time_step_size
                            default_initial_value:
                            - 0
                        V:
                            value: 0
                    input_ports:
                        INPUT: {}
                    output_ports:
                        spike:
                            value: spike
                        OUTPUT:
                            value: OUTPUT
                        V:
                            value: V
                    notes: "Cell: [Cell(notes=None, id='d', parameters=None, neuroml2_source_file=None,\
                        \ lems_source_file='PNL.xml', neuroml2_cell=None, pynn_cell=None,\
                        \ arbor_cell=None, bindsnet_node=None)] is defined in PNL.xml\
                        \ and in Lems is: Component, id: d, type: pnlSimpleIntegratorMechanism,\n\
                        \   parameters: {'rate': '0.05', 'time_step_size': '0.1s'}\n\
                        \   parent: None\n"
                proj_input_rsDL:
                    parameters:
                        weight:
                            value:
                            - 1.0
                        SEC:
                            value:
                            - 1.0
                        rpeer:
                            value: peer_OUTPUT
                        I:
                            value: weight * rpeer
                    input_ports:
                        peer_OUTPUT: {}
                    output_ports:
                        I:
                            value: I
                    notes: "Cell: [Synapse(notes=None, id='rsDL', parameters=None,\
                        \ neuroml2_source_file=None, lems_source_file='PNL.xml', pynn_synapse_type=None,\
                        \ pynn_receptor_type=None)] is defined in PNL.xml and in Lems\
                        \ is: Component, id: rsDL, type: synapseDL,\n   parameters:\
                        \ {}\n   parent: None\n"
                proj0_rsDL:
                    parameters:
                        weight:
                            value:
                            - 1.0
                        SEC:
                            value:
                            - 1.0
                        rpeer:
                            value: peer_OUTPUT
                        I:
                            value: weight * rpeer
                    input_ports:
                        peer_OUTPUT: {}
                    output_ports:
                        I:
                            value: I
                    notes: "Cell: [Synapse(notes=None, id='rsDL', parameters=None,\
                        \ neuroml2_source_file=None, lems_source_file='PNL.xml', pynn_synapse_type=None,\
                        \ pynn_receptor_type=None)] is defined in PNL.xml and in Lems\
                        \ is: Component, id: rsDL, type: synapseDL,\n   parameters:\
                        \ {}\n   parent: None\n"
                proj1_rsDL:
                    parameters:
                        weight:
                            value:
                            - 1.0
                        SEC:
                            value:
                            - 1.0
                        rpeer:
                            value: peer_OUTPUT
                        I:
                            value: weight * rpeer
                    input_ports:
                        peer_OUTPUT: {}
                    output_ports:
                        I:
                            value: I
                    notes: "Cell: [Synapse(notes=None, id='rsDL', parameters=None,\
                        \ neuroml2_source_file=None, lems_source_file='PNL.xml', pynn_synapse_type=None,\
                        \ pynn_receptor_type=None)] is defined in PNL.xml and in Lems\
                        \ is: Component, id: rsDL, type: synapseDL,\n   parameters:\
                        \ {}\n   parent: None\n"
                proj2_rsDL:
                    parameters:
                        weight:
                            value:
                            - 1.0
                        SEC:
                            value:
                            - 1.0
                        rpeer:
                            value: peer_OUTPUT
                        I:
                            value: weight * rpeer
                    input_ports:
                        peer_OUTPUT: {}
                    output_ports:
                        I:
                            value: I
                    notes: "Cell: [Synapse(notes=None, id='rsDL', parameters=None,\
                        \ neuroml2_source_file=None, lems_source_file='PNL.xml', pynn_synapse_type=None,\
                        \ pynn_receptor_type=None)] is defined in PNL.xml and in Lems\
                        \ is: Component, id: rsDL, type: synapseDL,\n   parameters:\
                        \ {}\n   parent: None\n"
                proj3_rsDL:
                    parameters:
                        weight:
                            value:
                            - 1.0
                        SEC:
                            value:
                            - 1.0
                        rpeer:
                            value: peer_OUTPUT
                        I:
                            value: weight * rpeer
                    input_ports:
                        peer_OUTPUT: {}
                    output_ports:
                        I:
                            value: I
                    notes: "Cell: [Synapse(notes=None, id='rsDL', parameters=None,\
                        \ neuroml2_source_file=None, lems_source_file='PNL.xml', pynn_synapse_type=None,\
                        \ pynn_receptor_type=None)] is defined in PNL.xml and in Lems\
                        \ is: Component, id: rsDL, type: synapseDL,\n   parameters:\
                        \ {}\n   parent: None\n"
            edges:
                A_TO_proj_input_rsDL:
                    name: A_TO_proj_input_rsDL
                    sender_port: OUTPUT
                    receiver_port: peer_OUTPUT
                    sender: A
                    receiver: proj_input_rsDL
                proj_input_rsDL_TO_B:
                    name: proj_input_rsDL_TO_B
                    sender_port: I
                    receiver_port: INPUT
                    sender: proj_input_rsDL
                    receiver: B
                A_input_TO_proj0_rsDL:
                    name: A_input_TO_proj0_rsDL
                    sender_port: OUTPUT
                    receiver_port: peer_OUTPUT
                    sender: A_input
                    receiver: proj0_rsDL
                proj0_rsDL_TO_A:
                    name: proj0_rsDL_TO_A
                    sender_port: I
                    receiver_port: INPUT
                    sender: proj0_rsDL
                    receiver: A
                A_TO_proj1_rsDL:
                    name: A_TO_proj1_rsDL
                    sender_port: OUTPUT
                    receiver_port: peer_OUTPUT
                    sender: A
                    receiver: proj1_rsDL
                proj1_rsDL_TO_C:
                    name: proj1_rsDL_TO_C
                    sender_port: I
                    receiver_port: INPUT
                    sender: proj1_rsDL
                    receiver: C
                B_TO_proj2_rsDL:
                    name: B_TO_proj2_rsDL
                    sender_port: OUTPUT
                    receiver_port: peer_OUTPUT
                    sender: B
                    receiver: proj2_rsDL
                proj2_rsDL_TO_D:
                    name: proj2_rsDL_TO_D
                    sender_port: I
                    receiver_port: INPUT
                    sender: proj2_rsDL
                    receiver: D
                C_TO_proj3_rsDL:
                    name: C_TO_proj3_rsDL
                    sender_port: OUTPUT
                    receiver_port: peer_OUTPUT
                    sender: C
                    receiver: proj3_rsDL
                proj3_rsDL_TO_D:
                    name: proj3_rsDL_TO_D
                    sender_port: I
                    receiver_port: INPUT
                    sender: proj3_rsDL
                    receiver: D
