180 likes | 313 Views
Resultados de la simulación de una red. // COMPILACION : gcc dynamics.c -o xdynamics -lm -Wall -g // EJECUCION : ./ xdynamics. La dinámica. Dinámica del potencial. Modelo COBA ( Conductance BAsed ). Modelo CUBA ( Current BAsed ).
E N D
// COMPILACION: gccdynamics.c-o xdynamics-lm -Wall -g // EJECUCION: ./xdynamics
La dinámica Dinámica del potencial Modelo COBA (ConductanceBAsed) Modelo CUBA (CurrentBAsed) Dinámica de las conductancias (corrientes)
Explorando algunas propiedades de la red TP Vogels, LF Abbott - Journal of Neuroscience 25: 10786, 2005
TP Vogels, LF Abbott - Journal of Neuroscience 25: 10786, 2005
Traza del potencial de membrana de una neurona Vth = -50 mVVrest=Vreset= -60 mV
Detalle de la traza anterior dt=0.1 ms
Distribución de la media temporal del potencial de membrana en la población
Notar que las corrientes excitadoras e inhibidoras presentan un cierto grado de balance
Distribución del CV en la población La irregularidad de los disparos es grande debido al balance
Notar que el rate de la población está en un régimen estacionario, presentando fluctuaciones alrededor de una media En la simulación no se han realizado “trials”, aquí el promedio se efectúa sobre las neuronas de la población
Distribución de la media temporal de la frecuencia de disparo en la población
Cálculo del CV Durante la simulación: Dentro del if: if (V[i]>VTh){ Evaluamos: ISI = tRunning - t_previous_spike[i]; // "ISI": ms. "t_previous_spike": el tiempo del spike previo de la neurona i NetISI += ISI; // Para evaluar la media, en toda la red, de las cantidades ISI FirstMoment_ISI[i] += ISI; SecondMoment_ISI[i] += ISI*ISI; //To compute theISI's CV
Al final de la simulación: //---------- CV Num_bins_CV_histogram = 30; CVHistogram = calloc(Num_bins_CV_histogram, sizeof(double)); for (i_bin=0; i<Num_bins_CV_histogram; i_bin++) CVHistogram[i_bin] = 0.0; Max = 3.; bin_CV = Max/((double) Num_bins_CV_histogram); meanCV = 0.; failure = 0.; //to count the number of cells that did not produce spikes //those are simply not included in the statistics
for (i=0; i<cells; i++){ if(spike_counter[i] > 1){ FirstMoment_ISI[i] /= spike_counter[i]; SecondMoment_ISI[i] /= spike_counter[i]; SD_ISI = pow( (SecondMoment_ISI[i] - FirstMoment_ISI[i]*FirstMoment_ISI[i]), 0.5); CV = SD_ISI/FirstMoment_ISI[i]; meanCV += CV; iHist = (int) (CV/bin_CV); if (iHist >= Num_bins_CV_histogram) iHist= Num_bins_CV_histogram - 1; CVHistogram[iHist] += 1.0; }else{ failure++; } }
//---------- CV (normalizacion) norm = 0.0; for (i_bin=0; i_bin<Num_bins_CV_histogram; i_bin++) norm+= CVHistogram[i_bin]; for (i_bin=0; i_bin<Num_bins_CV_histogram; i_bin++) { CVHistogram[i_bin] /= norm; fprintf(CV_histogram_File, "%lf %lf \n", i_bin*bin_CV, CVHistogram[i_bin] ) ; } meanCV /= (double) (cells-failure); fprintf(Output_File, "\n Population mean of the CV = %lf \n", meanCV) ;
Similarmente para V, al final de la simulación: //---------- V (solo normalizacion) norm = 0.0; for (i_bin=0; i_bin<Num_bins_V_histogram; i_bin++) norm += VHistogram[i_bin]; for (i_bin=0; i_bin<Num_bins_V_histogram; i_bin++) { VHistogram[i_bin] /= norm; fprintf(V_histogram_File, "%lf %lf \n", Min_V + i_bin*bin_V, VHistogram[i_bin] ); //"bin_V" isalreadygiven in physicalunits (mV) }