SD,
                           None,
                           stim_max,
                           Xternal=Xternal,
                           VE_scale=VE_scale)
StimPar_test_long = Stimulation(NeuPar,
                                NetPar,
                                SD,
                                num_stim,
                                stim_max,
                                flg_test=0,
                                Xternal=Xternal,
                                VE_scale=VE_scale)

### Run simulations
RunStaticNetwork(NeuPar, NetPar, StimPar_test_long, SimPar_test, folder,
                 'Before_Balance')
RunStaticNetwork(NeuPar, NetPar, StimPar_test, SimPar_test, folder,
                 'Before_Test')
SaveNetworkPara(NeuPar, NetPar, StimPar_test_long, None, folder, 'Before')

### Analyse & plot network
Plot_Currents2PC(NeuPar, NetPar, StimPar_test_long, SimPar_test, folder,
                 'Before_Balance')
HeatmapTest(NeuPar, NeuPar.NCells[0], folder, 'Before_Test')
Plot_PopulationRate(NeuPar, folder, 'Before_Test', ini=1)

#######################
####### Learning ######
#######################

### Define input parameters
                      flg_test=0,
                      Xternal=Xternal,
                      CT=True)

### Run simulation
RunPlasticNetwork(NeuPar, NetPar, StimPar, SimPar, LearnPar, SavePar, folder,
                  FlagDendRec_ABC[FlagDendRec])
SaveNetworkPara(NeuPar, NetPar, StimPar, LearnPar, folder,
                FlagDendRec_ABC[FlagDendRec] + 'After')

#####################
# After plasticity ##
#####################

### Define input parameters
num_stim = np.int32(10)

StimPar_test = Stimulation(NeuPar, NetPar, SD, None, stim_max, Xternal=Xternal)

### Run simulations
RunStaticNetwork(NeuPar, NetPar, StimPar_test, SimPar_test, folder,
                 FlagDendRec_ABC[FlagDendRec] + 'After')

### Analyse & plot network
HeatmapTest(NeuPar, NeuPar.NCells[0], folder,
            FlagDendRec_ABC[FlagDendRec] + 'After')
Plot_PopulationRate(NeuPar,
                    folder,
                    FlagDendRec_ABC[FlagDendRec] + 'After',
                    ini=1)
    wSV, wVS, wPP, wEP = -0.6, -0.5, -0.1, -40.0
elif Panel==3: # e
    VE, VP, MP = 0, 1, 1
    wSV, wVS, wPP, wEP = -0.6, -0.5, -1.5, -40.0
elif Panel==4: # f
    VE, VP, MP = 0, 0, 1
    wSV, wVS, wPP, wEP = -0.6, -0.5, -1.5, -40.0

wPV = -(VP + abs(wSV)*MP - (1-wPP)/(-0.07*wEP) * VE) # gain = 0.07
wPS = -(abs(wVS)*abs(wPV) + (1-wSV*wVS)*MP) 

NeuPar = Neurons()
NetPar = Network(NeuPar, wPP=wPP, wPS=wPS, wPV=wPV, wEP=wEP, flag_hetero=0)

### Define input parameters
stim_max, SD = 50.0, 10.0
r0 = np.array([1,2,2,4])

StimPar = Stimulation(NeuPar, NetPar, SD, None, stim_max, r0 = r0, VE=VE, VP=VP, MP=MP, VS=VS, VV=VV)

### Define simulation parameters
SimPar = Simulation()

### Run simulation
RunStaticNetwork(NeuPar, NetPar, StimPar, SimPar, folder, fln)
SaveNetworkPara(NeuPar, NetPar, StimPar, None, folder, fln)

### Analyse & plot network
Bar_pathways(NeuPar, NetPar, VE, VP, MP, folder, fln, pPE_flag = True)
Plot_PopulationRate(NeuPar, folder, fln)
### Run simulation
RunPlasticNetwork(NeuPar, NetPar, StimPar, SimPar, LearnPar, SavePar, folder,
                  PV_input_ABC[PV_input_type])
SaveNetworkPara(NeuPar, NetPar, StimPar, LearnPar, folder,
                PV_input_ABC[PV_input_type] + '_After')

#####################
# After plasticity ##
#####################

### Define input parameters
num_stim = np.int32(10)

StimPar_test = Stimulation(NeuPar,
                           NetPar,
                           SD,
                           None,
                           stim_max,
                           Xternal=Xternal,
                           VP=int(PV_input_type),
                           MP=int(1 - PV_input_type))

### Run simulations
RunStaticNetwork(NeuPar, NetPar, StimPar_test, SimPar_test, folder,
                 PV_input_ABC[PV_input_type] + '_After_Test')

### Analyse & plot network
HeatmapTest(NeuPar, NeuPar.NCells[0], folder,
            PV_input_ABC[PV_input_type] + '_After_Test')