From 09ef0d61bc6c9052d6f4fd43e18f65c4486b9136 Mon Sep 17 00:00:00 2001 From: Shencong-Ni Date: Tue, 10 Oct 2023 16:19:38 +0800 Subject: [PATCH] update --- .../firing_rate_analysis.cpython-39.pyc | Bin 49724 -> 0 bytes analysis/__pycache__/mydata.cpython-39.pyc | Bin 5697 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 431 -> 0 bytes .../connect_2lattice.cpython-39.pyc | Bin 2631 -> 0 bytes .../__pycache__/coordination.cpython-39.pyc | Bin 2620 -> 0 bytes .../findnearbyneuron.cpython-39.pyc | Bin 556 -> 0 bytes .../model_neu_syn_AD.cpython-39.pyc | Bin 6436 -> 0 bytes .../model_neu_syn_YG.cpython-39.pyc | Bin 2014 -> 0 bytes connection/test/expo_connection.py | 525 ------------------ connection/test/gaus_connection.py | 434 --------------- connection/test/refractory/test_refractory.py | 184 ------ connection/test/test_expo.py | 322 ----------- connection/test/test_gaus.py | 371 ------------- 13 files changed, 1836 deletions(-) delete mode 100644 analysis/__pycache__/firing_rate_analysis.cpython-39.pyc delete mode 100644 analysis/__pycache__/mydata.cpython-39.pyc delete mode 100644 connection/__pycache__/__init__.cpython-39.pyc delete mode 100644 connection/__pycache__/connect_2lattice.cpython-39.pyc delete mode 100644 connection/__pycache__/coordination.cpython-39.pyc delete mode 100644 connection/__pycache__/findnearbyneuron.cpython-39.pyc delete mode 100644 connection/__pycache__/model_neu_syn_AD.cpython-39.pyc delete mode 100644 connection/__pycache__/model_neu_syn_YG.cpython-39.pyc delete mode 100644 connection/test/expo_connection.py delete mode 100644 connection/test/gaus_connection.py delete mode 100644 connection/test/refractory/test_refractory.py delete mode 100644 connection/test/test_expo.py delete mode 100644 connection/test/test_gaus.py diff --git a/analysis/__pycache__/firing_rate_analysis.cpython-39.pyc b/analysis/__pycache__/firing_rate_analysis.cpython-39.pyc deleted file mode 100644 index a34bcef8fe13e026bd1027ab1df60fd7c9b014ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49724 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 E7v|?qa-0LdZ0c20MwQsW3i?`&s!KK1R2$ zd<9qDRAKZ&4&Oao?gC4U;iy2|<9_39{KEGf2f#rQ z3>*T7ML2K-92L>PF>qYOz@u9<9ly-+wGqq;PP8I-bw_gjOvpKz&9jq5mY$LHc(%ZJ z$vRtWlaaPoGCf_)@h98?O}+lG(n^WS(zIdL%1VHjR9YJ@6|+(+H}fDBSAv=KR*BC1 zcpJ?{L!qbbR?(}KoBQwG-{jL#KcbZDiqancCc#eQp27r9LMM@v7~~C^1IJFjmaD8Z zqJ`Y5E^`;03rmNLeY-Z2sdB%%q*N+tDLs1H_Tvkf?iz9FqFVPmAx?tCPrStY27Z=u Ang9R* diff --git a/connection/__pycache__/connect_2lattice.cpython-39.pyc b/connection/__pycache__/connect_2lattice.cpython-39.pyc deleted file mode 100644 index a2f34d30bd5e3a08f45d00f579db2d0c86bff728..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2631 zcmchY&yU+g6vt=AcH%g;NmM4hmuJ0u)2#Q!MD#X3>0Q0Cxv{Z%S^8|S&;X%>}fp52Y>7@t3FD6xJU-hxmuS0YYH59T?Cbk^i-=9ZSUpU^wxo1bQ0Sv#mpB27u9w?+<) znGgB4^qWK)=Lqy@NlQGHwc;s^+>kBl-6W6!qwX{hTvH~>YS}8E^{$-;_W;y5*+D> zhzqc=-@m-Gd0!+&5{Y>G{s4Oqk}}-Qc`{yBABZ%{?#FqSB{5>QaKnxHDlbj;mAjQb z!b#}WH4!=d1Hx=-vkvW0-!!QUUH}n?U0_|>rDvJX#CwqSKXF?>#w`VI$-m;({s(S@ z6S(#MJGTOLN7TUd+u{`ZT`)s`PEtNCaZAM;*m4@p88jeZM698C6U{j^=h3`{W*yDj zXnJVg0izat0AiYs%DjtB9_}vuQT3O72)*w1egL_#mQ`@@!3EgxYFTnCSwcC|QZpi@ zamZ#(l%2WnRz8S{$LY+M45a5*5EfGmO7p-1=`mm%TUvgCEPz-IVpW9A0_a_r0cWR( zw9uYGSqfwg;}Wi$x|pQNX2B?euq$SINy{r>*5apRe|r;XZdwaRYMu z?C#xTZ$s6?kmqq2Dl41rPWG#VLB4&BoHYLiymtQK#ihSL;EJ&kkfJU8J^O@ Q1!LB1xZRv}=c04@Pt1#D;s5{u diff --git a/connection/__pycache__/coordination.cpython-39.pyc b/connection/__pycache__/coordination.cpython-39.pyc deleted file mode 100644 index 5ea33109f129e527f9455d37370165f33e08760c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2620 zcmbtW&u<$=6rP#gwbxEkN|QDYg|cvfx2z2h^OK(9)_K-;~MV~(u(vj}>?4ct)SwZc}s`OENvL@@OD{?_DqOMBu zfHjv6Z`JP^6=q5Xi4MLPs^Fu630iLl>o?o$t#<21(7LgHyI#K=4zpfj+CkdWaqH&o zTlHr+mvthCs!5?6SMc4#m;MZqbIC8Wv6J(hp>{KN%yVafTPw%G#!<7_Y$f4 zr`>H6hk7eYv{n(B7|m0AUmuK$g}v~Rn(VxQZPN=7?3~YiewAMp=fwrS!dHa31nn6( zR-y3lSvdZJM#ge+1V}y-=5@ft!c8K0o&XkWfT@0WGQ+`)cE$lN0+FMy%=E7LJVSsT z@$b0y(ekJTm^&8U{1_0=*%8MoF9VEo=ZGKiP4?wG;|hR^v*@(ELgxYel{E(FyQ@qh z5LVbFv>RwI+aP#+m?MOj5e~Tra8^5pV$FKdkUtNv-8Y6pk~}|1(%1rYZMKY?@MkQ82-xp_SZwVd@@ z0itX`;q#5^kKUio4-MR`Px%TI1F9J)6DKl`g6(9eWoSkqI4v!BuG`B@-L&2gI@ekg z6xpSgnM|@zD^grE*1P}0j`p@C?@YI9{r|0I^f*CA$!mY3*kG`+(J`xVbhBDiVUJ#j zml8xvKstNjfoV|pGDP9oaUi)iz2o|6vthlJ_Allp)hHxBFA&Oi>btwT&oEvWCN&P8pmpqg_7pxfeF(gRrX;J$>v0tVk)im|GVc z!n}!AiJi|9 zyPsEV68B3+oh0@$*-v$4V)tPTw^M?Il3!^Ix^1&oxH?MukN`E3oTLsa^vnx1mE34v zBtbc+G}m)RTAs^JV5=R<_+MdidJcj)4c<7-P;Wug^owe@E0d_(Ej;{j7>r7fQ1-Gc oW?^DYYH0o(?Ci;w9{mj@(P3ZRAq1sFr>^Ha{$;=6U-TFL0pG=bLI3~& diff --git a/connection/__pycache__/findnearbyneuron.cpython-39.pyc b/connection/__pycache__/findnearbyneuron.cpython-39.pyc deleted file mode 100644 index 8d8e77ec33647d03148cd5022392a42fd9c9b03a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmZ8eziJyX7?*UXv$>v4)^0asIS9oy*n|38WKdNBfe{PWCzV}$;CN;Z{-1%vxEBg3HEc9oIS7uDjHY z^o!&l*3wo|?JMb8a$C7biIvgHg}y9LlwfAQ+529QNucw;FSnDK5e-DjYBu%hQ(=pR z=Au5Db0e9Wm0BrL`eC#0Qt{JnpOzbU_TK3~uIU0G(#L(A5Yq=ei(IEDxGsyr#mAQW mJE>YNmKzg5-dpn9jwjHAfa_kudaGJo`KM_jfRHA*Oa24M=#=XK diff --git a/connection/__pycache__/model_neu_syn_AD.cpython-39.pyc b/connection/__pycache__/model_neu_syn_AD.cpython-39.pyc deleted file mode 100644 index e6c2e3a926e6f1c8001608682a0cbfd454ec3ce4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6436 zcmeGh%WfMtaBXjFhq2L1fTA}dKoG4B*OHB1gr-R02&jv|D3G2O1_(xEtcBLQ0+*}W z?l<%UdhV&ekwcF80A2eRJ#~g$E-Be4j3R;SRuZ(*yoW>13`z0rZ4$xj*LS~(U%rT< zKM)9CD*(KJPt}Eoh|)-`q$^@IT@`ET8hm0Arw`z>E*_*CVm;jy8|g!_nG*5vb(D~+ zugH;-TuVXAg8n$F>GyR`54-fB*Y6$nyNC3kd(b811+Vp}RDD`x)kqTlel3cKnC=Tr zpVLln|0vn%?47ZEr!%E{bjtFC?oz~zfnZT%L>;rN7@2Q*ku~4C$XPWR2hdRIg!bvQ z%r))QMJ}s~D*0CNp)S>BLckD^X_d)ySyV(bAOfP2!?F;>+5oq}{Bdhu$tgg<#m^_e zg61vD031GJ18_`BHOD?kJhyYQkpX$YEO0l7;aWE>Yn2^?8h}lKUx-t{F8t zYF+f8H-T<70{F{mUWkj)0YdZUk*P5Z!8&g39y>$0xGsRuj3W!Qf?X%zIaJ6I3eDLy zOy2ImE`!#(gBy8i$;~90732JIr1@yfsl!PMWnhvF7>s1WP8$=84+R>Zaoyueh6DpO zmF%-!6R-);r%yXu9BpFwSqc*cila>wTO4mB z-F@C&ZIPe67gxg&616QUotnMjm4pUWCnmz!<$AOur?Sv{LS^us5b>(v?g8T~%P4MQ z-NZ`ZyzZTmTO9o$aNu7}S{QSXSeF~c9MEIMWzv)K5pn4kMr9ZCh&onTIxZ9>>_ zOaTfyj)j-?33f$FV)T5l?xa4Mz1#gSPyFe!R{Y~F{WHh);GGaMY)7 zx#9vZ1$<9kxDvQGn~Pus%jUnl6YzHc{^BM)&x9HJF;n{I+obfzxf8fQ`MbOuz`NF_ zWB8r6>lGe@NAx?{d;eGN22PSkvkk^XIb>}1sF1ZP3ntmOFIyl(V5_<;_@sjCjycHC zJ_~8=^$)Wafn-EH4)iiE_(U^3oqc{2c5pG7ZHENif<~MEJyKin|ATq_`Q6L@sgjlC zYB)MQLFZ4T#v`%JJ@`gtyf}sX`a%wMRu-p*&cFx*&%wnnCzrF$uklEn%WqckACAZH Uh}Yw%@sk)|>+xp13-4!t0h*Ir3;+NC diff --git a/connection/__pycache__/model_neu_syn_YG.cpython-39.pyc b/connection/__pycache__/model_neu_syn_YG.cpython-39.pyc deleted file mode 100644 index 407edaf522ee540547f5cb8308c05f8570ea4de6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2014 zcmd^A&5qMB5Kg<<7J1nVTsUy>G0Cd*2lWyGT4||v%b^#zY*fh#vD-#XoytzyZQq15 zCtd?iyh5+sc>qp~>oiFV5>!G0iAae(pJzPt#a|}=`8hJ+diU`?9oG%xi!#br1&m9$ zTvP__(gU|1WKNjabMBR$cV%QD5Dv)C-4O+1n!BRdO#GBgA+HSCjB$x5ixQuV z%TVsZf|yf;pzcxtl(%o`VoR8!qbh_~1E?YhTl6#tESGxbNIe#%WD5mAGncIVou%rN zgtBbM3w)Q&T--)9GqRYSrDMb{#>F>lbg&QP)r5cW&2axKsP&gh`ZKcm+p77$&pemH z`V(3fdQ>W&$5Qo?r6UW)V@sy98KX9$a;Mepho)2ty+W`cA@eknj@5>iBh{ze##Ru; z!L&g|xM18yxs&cvI}zFr8;u|yLO`6S;;}G5hK*kV6vvqe-atm)CbZiSYMG zghk02`x3JLe0UPu9(gpCf8aa@c5PE9gvJ3On={T*5p%-G?R9R1%D69A+@DKmS$o!Y z?Lo1oU&HP72SdOQRzJSoymW_xN#=`SG90K31D23k4Bfsk--^)ZL+J4w^cBW@xLqeu j5P|I>>67_tbMG0TX~bT@U(}H5XKvQaN9IElnP=YtvuujT diff --git a/connection/test/expo_connection.py b/connection/test/expo_connection.py deleted file mode 100644 index 11977b7..0000000 --- a/connection/test/expo_connection.py +++ /dev/null @@ -1,525 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Created on Fri Sep 4 12:58:31 2020 - -@author: shni2598 -""" - -import numpy as np -#import brian2.numpy_ as np -#import matplotlib.pyplot as plt -import connection as cn -import warnings -from scipy import sparse -#from brian2.only import * -#import time -#import mydata -#import firing_rate_analysis -#import os -#import datetime -#%% -class get_ijwd: - - def __init__(self, *param_dict, **kwargs): - - self.Ne = 3969 - self.Ni = 1024 - self.width = 62 - self.decay_p_ee = 8 # decay constant of e to e connection probability as distance increases - self.decay_p_ei = 10 # decay constant of e to i connection probability as distance increases - self.decay_p_ie = 20 # decay constant of i to e connection probability as distance increases - self.decay_p_ii = 20 # decay constant of i to i connection probability as distance increases - self.mean_SynNumIn_ee = 320 ; # p = 0.08 - self.mean_SynNumIn_ei = 500 ; # p = 0.125 - self.mean_SynNumIn_ie = 200 ; # p = 0.2 - self.mean_SynNumIn_ii = 250 ; # p = 0.25 - self.w_ee_mean = 4 - self.w_ei_mean = 5 - self.w_ie_mean = 20 - self.w_ii_mean = 25 - self.delay = 4 - for dictionary in param_dict: - for key in dictionary: - setattr(self, key, dictionary[key]) - for key in kwargs: - setattr(self, key, kwargs[key]) - # if either param_dict or kwargs is not empty, reset some parameters which are dependent on other parameters - if bool(param_dict) or bool(kwargs): self.change_dependent_para() - - def change_dependent_para(self): - pass - - def generate_ijw(self): - - self.e_lattice = cn.coordination.makelattice(int(round(np.sqrt(self.Ne))), self.width, [0,0]) - self.i_lattice = cn.coordination.makelattice(int(round(np.sqrt(self.Ni))), self.width, [0,0]) - - self.p_peak_ee = self.find_peak_probability(self.mean_SynNumIn_ee, self.decay_p_ee, self.e_lattice, self.width, position=[0,0]) - self.p_peak_ei = self.find_peak_probability(self.mean_SynNumIn_ei, self.decay_p_ei, self.e_lattice, self.width, position=[0,0]) - self.p_peak_ie = self.find_peak_probability(self.mean_SynNumIn_ie, self.decay_p_ie, self.i_lattice, self.width, position=[0,0]) - self.p_peak_ii = self.find_peak_probability(self.mean_SynNumIn_ii, self.decay_p_ii, self.i_lattice, self.width, position=[0,0]) - - self.i_ee, self.j_ee, _ = cn.connect_2lattice.expo_decay(self.e_lattice, self.e_lattice, np.arange(self.Ne), self.width, periodic_boundary=True, interarea_dist=0, \ - peak_p=self.p_peak_ee, tau_d=self.decay_p_ee, src_equal_trg = True, self_cnt = False) - - self.i_ei, self.j_ei, _ = cn.connect_2lattice.expo_decay(self.e_lattice, self.i_lattice, np.arange(self.Ne), self.width, periodic_boundary=True, interarea_dist=0, \ - peak_p=self.p_peak_ei, tau_d=self.decay_p_ei, src_equal_trg = False, self_cnt = False) - - self.i_ie, self.j_ie, _ = cn.connect_2lattice.expo_decay(self.i_lattice, self.e_lattice, np.arange(self.Ni), self.width, periodic_boundary=True, interarea_dist=0, \ - peak_p=self.p_peak_ie, tau_d=self.decay_p_ie, src_equal_trg = False, self_cnt = False) - - self.i_ii, self.j_ii, _ = cn.connect_2lattice.expo_decay(self.i_lattice, self.i_lattice, np.arange(self.Ni), self.width, periodic_boundary=True, interarea_dist=0, \ - peak_p=self.p_peak_ii, tau_d=self.decay_p_ii, src_equal_trg = True, self_cnt = False) - - self.num_in_ee = self.find_indegree(self.i_ee, self.j_ee, self.Ne, self.Ne) - self.num_in_ei = self.find_indegree(self.i_ei, self.j_ei, self.Ne, self.Ni) - self.num_in_ie = self.find_indegree(self.i_ie, self.j_ie, self.Ni, self.Ne) - self.num_in_ii = self.find_indegree(self.i_ii, self.j_ii, self.Ni, self.Ni) - - self.J_ee = self.find_J(self.num_in_ee, self.w_ee_mean) - self.J_ei = self.find_J(self.num_in_ei, self.w_ei_mean) - self.J_ie = self.find_J(self.num_in_ie, self.w_ie_mean) - self.J_ii = self.find_J(self.num_in_ii, self.w_ii_mean) - - self.w_ee = self.find_synWeight(self.j_ee, self.J_ee, self.Ne, self.num_in_ee) - self.w_ei = self.find_synWeight(self.j_ei, self.J_ei, self.Ni, self.num_in_ei) - self.w_ie = self.find_synWeight(self.j_ie, self.J_ie, self.Ne, self.num_in_ie) - self.w_ii = self.find_synWeight(self.j_ii, self.J_ii, self.Ni, self.num_in_ii) - - def generate_d_rand(self): - - self.d_ee = np.random.uniform(0, self.delay, len(self.i_ee)) - self.d_ie = np.random.uniform(0, self.delay, len(self.i_ie)) - self.d_ei = np.random.uniform(0, self.delay, len(self.i_ei)) - self.d_ii = np.random.uniform(0, self.delay, len(self.i_ii)) - - def find_peak_probability(self, mean_SynNum, tau_d, lattice, width, position=[0,0]): - - dist = cn.coordination.lattice_dist(lattice, width, position) - p_peak = mean_SynNum/(np.sum(np.exp(-dist/tau_d))) - if p_peak > 1: - warnings.warn(" Error: peak connection probability exceeds '1', adjust 'decay_p' or 'mean_SynSum' to reduce it below '1'" ) - - return p_peak - - def find_indegree(self, i, j, N_src, N_trg): - - A = sparse.csc_matrix((np.ones(i.shape, dtype=int), (i, j)),shape=(N_src,N_trg)) - num_in = A.sum(0) - return num_in.A[0] - - def find_J(self, num_in, J_mean): - J = J_mean*np.sum(num_in)/(np.sum(np.sqrt(num_in))) - return J - - def find_synWeight(self, j_cnt, J_weight, N_trg, num_indegree): - - w_cnt = np.zeros(j_cnt.shape) - for j in range(N_trg): - J_mean = J_weight/np.sqrt(num_indegree[j]) - J_std = J_mean/4 - w_tmp = np.random.randn(num_indegree[j])*J_std + J_mean - negative_w = np.any(w_tmp <= 0) - while negative_w: - #w_tmp = np.random.randn(num_indegree[j])*J_std + J_mean - w_tmp[w_tmp <= 0] = np.random.randn(np.sum(w_tmp <= 0))*J_std + J_mean - negative_w = np.any(w_tmp <= 0) - - w_cnt[j_cnt == j] = w_tmp - - return w_cnt -#%% -""" -def find_peak_probability(mean_SynNum, tau_d, lattice, width, position=[0,0]): - - dist = cn.coordination.lattice_dist(lattice, width, position) - p_peak = mean_SynNum/(np.sum(np.exp(-dist/tau_d))) - if p_peak > 1: - warnings.warn(" Error: peak connection probability exceeds '1', adjust 'tau_d' or 'mean_SynSum' to reduce it below '1'" ) - - return p_peak - -#%% -e_lattice = cn.coordination.makelattice(63, 62, [0,0]) -i_lattice = cn.coordination.makelattice(32, 62, [0,0]) -#%% -tau_d_ee = 8 ;tau_d_ei = 10 ;tau_d_ie = 20 ;tau_d_ii = 20 ; -mean_SynNum_ee = 320 ;mean_SynNum_ei = 500 ;mean_SynNum_ie = 200 ;mean_SynNum_ii = 250 ; - -width = 62 -#%% - -p_peak_ee = find_peak_probability(mean_SynNum_ee, tau_d_ee, e_lattice, width, position=[0,0]) -p_peak_ei = find_peak_probability(mean_SynNum_ei, tau_d_ei, e_lattice, width, position=[0,0]) -p_peak_ie = find_peak_probability(mean_SynNum_ie, tau_d_ie, i_lattice, width, position=[0,0]) -p_peak_ii = find_peak_probability(mean_SynNum_ii, tau_d_ii, i_lattice, width, position=[0,0]) -#%% -Ne = 3969; -Ni = 1024; -i_ee, j_ee, _ = cn.connect_2lattice.expo_decay(e_lattice, e_lattice, np.arange(Ne), 62, periodic_boundary=True, interarea_dist=0, \ - peak_p=p_peak_ee, tau_d=tau_d_ee, src_equal_trg = True, self_cnt = False) - -i_ei, j_ei, _ = cn.connect_2lattice.expo_decay(e_lattice, i_lattice, np.arange(Ne), 62, periodic_boundary=True, interarea_dist=0, \ - peak_p=p_peak_ei, tau_d=tau_d_ei, src_equal_trg = False, self_cnt = False) - -i_ie, j_ie, _ = cn.connect_2lattice.expo_decay(i_lattice, e_lattice, np.arange(Ni), 62, periodic_boundary=True, interarea_dist=0, \ - peak_p=p_peak_ie, tau_d=tau_d_ie, src_equal_trg = False, self_cnt = False) - -i_ii, j_ii, _ = cn.connect_2lattice.expo_decay(i_lattice, i_lattice, np.arange(Ni), 62, periodic_boundary=True, interarea_dist=0, \ - peak_p=p_peak_ii, tau_d=tau_d_ii, src_equal_trg = True, self_cnt = False) - - -#%% -def find_indegree(i, j, N_src, N_trg): - A = sparse.csc_matrix((np.ones(i.shape, dtype=int), (i, j)),shape=(N_src,N_trg)) - num_in = A.sum(0) - return num_in.A[0] -#%% -num_in_ee = find_indegree(i_ee, j_ee, Ne, Ne) -num_in_ei = find_indegree(i_ei, j_ei, Ne, Ni) -num_in_ie = find_indegree(i_ie, j_ie, Ni, Ne) -num_in_ii = find_indegree(i_ii, j_ii, Ni, Ni) - - -#%% -def find_J(num_in, J_mean): - J = J_mean*np.sum(num_in)/(np.sum(np.sqrt(num_in))) - return J -#%% -w_ee_mean = 4 -w_ei_mean = 5 -w_ie_mean = 20 -w_ii_mean = 25 - -J_ee = find_J(num_in_ee, w_ee_mean) -J_ei = find_J(num_in_ei, w_ei_mean) -J_ie = find_J(num_in_ie, w_ie_mean) -J_ii = find_J(num_in_ii, w_ii_mean) - -#%% -def find_synWeight(j_cnt, J_weight, N_trg, num_indegree): - - w_cnt = np.zeros(j_cnt.shape) - for j in range(N_trg): - J_mean = J_weight/np.sqrt(num_indegree[j]) - J_std = J_mean/4 - w_tmp = np.random.randn(num_indegree[j])*J_std + J_mean - negative_w = np.any(w_tmp <= 0) - while negative_w: - w_tmp = np.random.randn(num_indegree[j])*J_std + J_mean - w_tmp[w_tmp <= 0] = np.random.randn(np.sum(w_tmp <= 0))*J_std + J_mean - negative_w = np.any(w_tmp <= 0) - - w_cnt[j_cnt == j] = w_tmp - - return w_cnt -#%% -w_ee = find_synWeight(j_ee, J_ee, Ne, num_in_ee) -w_ei = find_synWeight(j_ei, J_ei, Ni, num_in_ei) -w_ie = find_synWeight(j_ie, J_ie, Ne, num_in_ie) -w_ii = find_synWeight(j_ii, J_ii, Ni, num_in_ii) - - - -#%% -plt.figure() -plt.hist(num_in_ie) -#%% -#%%%%%%%%%%%%%%%%%%%%%% -e_lattice = cn.coordination.makelattice(63, 62, [0,0]) -i_lattice = cn.coordination.makelattice(32, 62, [0,0]) -""" -#%% - -""" -ijwd = get_ijwd() -ijwd.Ne = 77*77; ijwd.Ni = 39*39 -ijwd.width = 76 -ijwd.generate_ijw() -ijwd.generate_d_rand() -#%% - -chg_adapt_loca = [0, 0] -chg_adapt_range = 6 -chg_adapt_neuron = cn.findnearbyneuron.findnearbyneuron(ijwd.e_lattice, chg_adapt_loca, chg_adapt_range, ijwd.width) - - - -#%% -start_scope() - -neuronmodel_e = cn.model_neu_syn_AD.neuron_e_AD -neuronmodel_i = cn.model_neu_syn_AD.neuron_i_AD - -synapse_e = cn.model_neu_syn_AD.synapse_e_AD -synapse_i = cn.model_neu_syn_AD.synapse_i_AD - -group_e_1 =NeuronGroup(ijwd.Ne, model=neuronmodel_e, - threshold='v>v_threshold', method='euler', - reset='''v = v_reset - g_k += delta_gk''', refractory='(t-lastspike) 1: - warnings.warn(" Error: peak connection probability exceeds '1', adjust 'decay_p' or 'mean_SynSum' to reduce it below '1'" ) - - return p_peak - - def find_indegree(self, i, j, N_src, N_trg): - - A = sparse.csc_matrix((np.ones(i.shape, dtype=int), (i, j)),shape=(N_src,N_trg)) - num_in = A.sum(0) - return num_in.A[0] - - def find_J(self, num_in, J_mean): - J = J_mean*np.sum(num_in)/(np.sum(np.sqrt(num_in))) - return J - - def find_synWeight(self, j_cnt, J_weight, N_trg, num_indegree): - - w_cnt = np.zeros(j_cnt.shape) - for j in range(N_trg): - J_mean = J_weight/np.sqrt(num_indegree[j]) - J_std = J_mean/4 - w_tmp = np.random.randn(num_indegree[j])*J_std + J_mean - negative_w = np.any(w_tmp <= 0) - while negative_w: - #w_tmp = np.random.randn(num_indegree[j])*J_std + J_mean - w_tmp[w_tmp <= 0] = np.random.randn(np.sum(w_tmp <= 0))*J_std + J_mean - negative_w = np.any(w_tmp <= 0) - - w_cnt[j_cnt == j] = w_tmp - - return w_cnt -#%% - -""" -#%% -plt.figure() -plt.hist(num_in_ie) -#%%%%%%%%%%%%%%%%%%%%%% -e_lattice = cn.coordination.makelattice(63, 62, [0,0]) -i_lattice = cn.coordination.makelattice(32, 62, [0,0]) -""" -#%% - -""" -ijwd = get_ijwd() -ijwd.Ne = 77*77; ijwd.Ni = 39*39 -ijwd.width = 76 -ijwd.generate_ijw() -ijwd.generate_d_rand() -#%% - -chg_adapt_loca = [0, 0] -chg_adapt_range = 6 -chg_adapt_neuron = cn.findnearbyneuron.findnearbyneuron(ijwd.e_lattice, chg_adapt_loca, chg_adapt_range, ijwd.width) - - - -#%% -start_scope() - -neuronmodel_e = cn.model_neu_syn_AD.neuron_e_AD -neuronmodel_i = cn.model_neu_syn_AD.neuron_i_AD - -synapse_e = cn.model_neu_syn_AD.synapse_e_AD -synapse_i = cn.model_neu_syn_AD.synapse_i_AD - -group_e_1 =NeuronGroup(ijwd.Ne, model=neuronmodel_e, - threshold='v>v_threshold', method='euler', - reset='''v = v_reset - g_k += delta_gk''', refractory='(t-lastspike)