//====================//
// parameter setting  //
//====================//

//======================//
// simulation parameter //
//======================//

ENABLE_GRAPHICAL_INTERFACE = 1
tstop	    = 5000		// (ms)  total simulation time
step_dt   = 0.0625		// (ms)  simulation     step original = 0.005
//number_steps = steps_per_ms*tstop

//======================//
//   input parameters   //
//======================//


//======================//
// models 
// WT:
// input2RBC = 1
// input2ONCBC = 1
// input2OFFCBC = 1
// g_RB_AII = 0.0012
// v_th_ONCB_ONGC = -20
// v_th_OFFCB_OFFGC = -40
//
// Trpm1 KO:
// input2RBC = 0
// input2ONCBC = 0
// input2OFFCBC = 1
// g_RB_AII = 0.0
// v_th_ONCB_ONGC = -40
// v_th_OFFCB_OFFGC = -40
//
// mGluR6 KO:
// input2RBC = 3
// input2ONCBC = 3
// input2OFFCBF = 1
// g_RB_AII = 0.0012
// v_th_ONCB_ONGC = -30
// v_th_OFFCB_OFFGC = -40
// I2RBC = 0.5
// I2ONCBC = 1.4
//
// rd1:
// input2RBC = 0
// input2ONCBC = 0
// input2OFFCBF = 0
// g_RB_AII = 0.0
// v_th_ONCB_ONGC = -40
// v_th_OFFCB_OFFGC = -60
//======================//

input2RBC = 1	
input2ONCBC = 1
input2OFFCBC = 1 
g_RB_AII = 0.0012
v_th_ONCB_ONGC = -20
v_th_OFFCB_OFFGC = -40
I2RBC = 0.0
I2ONCBC = 0.0 


gj_AC_ONCB = 0.00050
gj_AC_AC = 0.00008
gj_OFFGC_OFFGC = 0.001
gj_ONCB_ONCB = 0.001
gj_OFFCB_OFFCB = 0.001


g_ONCB_ONGC = 0.013
g_OFFCB_OFFGC = 0.013
g_OFFCB_AII = 0.0

g_AC_OFFGC = 0.003
g_AC_OFFCB = 0.0001

state = 0

proc states() {
    if (state == 0){ //WT
         input2RBC = 1
         input2ONCBC = 1
         input2OFFCBC = 1
         g_RB_AII = 0.0012
         v_th_ONCB_ONGC = -20
         v_th_OFFCB_OFFGC = -40
         I2RBC = 0.0
         I2ONCBC = 0.0
    }
    if(state == 1){ //Trpm1KO
        input2RBC = 3
        input2ONCBC = 3
        input2OFFCBC = 1
        g_RB_AII = 0.0
        v_th_ONCB_ONGC = -40
        v_th_OFFCB_OFFGC = -40
        I2RBC = -10.0
        I2ONCBC = 0.0 
    }
    if(state == 2){ //mGluR6KO
        input2RBC = 3
        input2ONCBC = 3
        input2OFFCBC = 1
        g_RB_AII = 0.0012
        v_th_ONCB_ONGC = -30
        v_th_OFFCB_OFFGC = -40
        I2RBC = -10.0
        I2ONCBC = 0.0
    }
    if(state == 3) {//rd1
	input2RBC = 0
        input2ONCBC = 0
        input2OFFCBC = 0
        g_RB_AII = 0.0
        v_th_ONCB_ONGC = -40
        v_th_OFFCB_OFFGC = -60
        I2RBC = -10.0 //0.0
        I2ONCBC = 0.0
    }
    Ribbon_syn_set()
    iclamps()
}

//=========================================//
//             cell parameter              //
//-----------------------------------------//
//                cell type                //
//                AIIAC                    //
//                Rod Bipolar              //
//                ON Cone Bipolar          //
//                OFF Cone Bipolar         //
//                ON Ganglion              //
//                OFF Ganglion             //
//=========================================//

//=================//
// AIIAC parameter //
//=================//
Num_AC = 14
noise_mean_AC = 0.0
noise_std_AC = 0.002

//=======================//
// Rod bipolar parameter //
//=======================//
Num_RBC = 126     //173(paper), or 20
noise_mean_RBC = 0.0
noise_std_RBC = 0.0004

//===================//
// ON Cone parameter //
//===================//
//Num_ONCBC = 55
Num_ONCBC = 28  //28(paper)
noise_mean_ONCBC = 0.0
noise_std_ONCBC = 0.0004

//====================//
// OFF Cone parameter //
//====================//
Num_OFFCBC = 64
noise_mean_OFFCBC = 0.0
noise_std_OFFCBC = 0.0004


//=================//
// ON GC parameter //
//=================//
Num_ONGC = 1
noise_mean_ONGC = 0.004
noise_std_ONGC = 0.005

//==================//
// OFF GC parameter //
//==================//
Num_OFFGC = 5
noise_mean_OFFGC = 0.003
noise_std_OFFGC = 0.005


//===========================================//
//              connection parameter         //
//-------------------------------------------//
//              Gap junction                 //
//              AIIAC <-> ONCB               //
//              AIIAC <-> AIIAC              //
//              OFFGC <-> OFFGC              //
//-------------------------------------------//
//              Glu syn (Ex)                 //
//              Rod -> AIIAC                 //
//              ONCB -> ONGC                 //
//              OFFCB -> OFFGC               //
//              OFFCB -> AIIAC               //
//-------------------------------------------//
//              Gly syn (Inh)                //
//              AIIAC -> OFFGC               //
//              AIIAC -> OFFCB               //
//===========================================//


//=================//
// Gap junction    //
//=================//

// AIIAC <-> ONCB 
//gj_AC_ONCB = 0.00050    //original
//gj_AC_ONCB = 0.00003 //[uS] //albino rat(normal)

// AIIAC <-> AIIAC
//gj_AC_AC = 0.00008 //[uS]

// OFFGC <-> OFFGC
//gj_OFFGC_OFFGC = 0.001 //[uS]

// ONCB <-> ONCB
//gj_ONCB_ONCB = 0.001 //[uS]

// OFFCB <-> OFFCB
//gj_OFFCB_OFFCB = 0.001 //[uS]

//==============//
// Glu syn(Ex)  //
//==============//

// Rod -> AIIAC
//g_RB_AII = 0.0012       //normal
// g_RB_AII = 0.0000    //pathological

// ONCB -> ONGC
//g_ONCB_ONGC = 0.013     //normal
// g_ONCB_ONGC = 0.011  //pathological
//v_th_ONCB_ONGC = -40

// OFFCB -> OFFGC
//g_OFFCB_OFFGC = 0.013   //normal
// g_OFFCB_OFFGC = 0.0  //pathological
//v_th_OFFCB_OFFGC = -40

// OFFCB -> AIIAC
//g_OFFCB_AII = 0.0001    //normal
// g_OFFCB_AII = 0.000  //pathological


//===============//
// Gly syn(Inh)  //
//===============//


// AIIAC -> OFFGC
//g_AC_OFFGC = 0.003  //normal

e_AC_OFFGC = -65
v_th_AC_OFFGC = -30
v_slp_AC_OFFGC = 10
tau_e_AC_OFFGC = 25
tau_r_AC_OFFGC = 800
u_AC_OFFGC = 0.2

// AIIAC -> OFFCB
//g_AC_OFFCB = 0.0001     //original
//g_AC_OFFCB = 0.001    //pathological model
v_th_AC_OFFCB = -30
v_slp_AC_OFFCB = 10
tau_e_AC_OFFCB = 25
tau_r_AC_OFFCB = 800
u_AC_OFFCB = 0.2