def __init__(self, params_file, seed=123): """Initializes the simulation builder, setting up attributes but not actually building the BMTK network. Parameters ---------- params_file : str path to the JSON file with network parameters seed : int base random seed for the simulation """ #Loads the JSON file with information about the network. with open(params_file) as f: self.params = json.load(f) self.seed = seed #Loads synapse templates. synapses.load() self.syn = synapses.syn_params_dicts() avg_exc_div = np.mean(list(self.params["divergence"]["exc"].values())) self.n_dend_exc = int( (self.params["lengths"]["basal_dist"] * self.params["syn_density"]["exc"]) / avg_exc_div) self.n_apic_exc = int( (self.params["lengths"]["apic"] * self.params["syn_density"]["exc"]) / avg_exc_div) self.n_dend_inh = int((self.params["lengths"]["basal_dist"] * self.params["syn_density"]["inh"]) / self.params["divergence"]["basal_inh"]["m"]) self.n_apic_inh = int((self.params["lengths"]["apic"] * self.params["syn_density"]["inh"]) / self.params["divergence"]["apic_inh"]["m"]) self.n_prox_dend_inh = int((self.params["lengths"]["basal_prox"] * self.params["syn_density"]["inh"]) / self.params["divergence"]["peri_inh"]["m"]) self.n_soma_inh = int(self.params["n_soma_syns"] / self.params["divergence"]["peri_inh"]["m"]) self.clust_per_group = int( (self.params["groups"]["cells_per_group"] * avg_exc_div) // (self.params["syn_density"]["exc"] * 10)) if self.params["file_current_clamp"]["input_file"] == "None": self.file_current_clamp = None else: self.file_current_clamp = self.params["file_current_clamp"]
fullsecname = seg.sec.name() source_pops.append(source._population) node_ids.append(source._node_id) weights.append(float(syn.initW)) release_probs.append(float(syn.P_0)) names.append(str(seg)) sec_types.append(fullsecname.split(".")[1][:4]) dists.append(float(h.distance(seg))) df = pd.DataFrame() df["Node ID"] = node_ids df["Distance"] = dists df["Conductance"] = weights df["Type"] = sec_types df["Name"] = names df["Source Population"] = source_pops df["Release Probability"] = release_probs df.to_csv("Connections.csv", index=False) if __name__ == "__main__": synapses.load() syn = synapses.syn_params_dicts() np.random.seed(42) run.run_network( [save_connections], v_report_all=False) #make v_report_all True to save all segments
#Number of cells in each population numPN_A = 1 numPN_C = 1 numBask = 1 num_cells = numPN_A + numPN_C + numBask dist_constraint = False min_conn_dist = 0.0 max_conn_dist = 9999.9 if dist_constraint: max_conn_dist = 300.0 #9999.9# Distance constraint for all cells # Load synapse dictionaries synapses.load() syn = synapses.syn_params_dicts('../../components/synaptic_models') ################################################################################### ####################################Pyr Type A##################################### # Add a population of numPN_A nodes (all of which share model_type, dynamics_params, etc.) net.add_nodes(N=numPN_A, pop_name='PyrA', mem_potential='e', model_type='biophysical', #model_template='hoc:feng_typeA',#Ben's model model_template='hoc:Cell_Af', morphology=None) ################################################################################## ###################################Pyr Type C#####################################
from bmtk.builder import NetworkBuilder import numpy as np import sys import synapses synapses.load() syn = synapses.syn_params_dicts( syn_dir='../biophys_components/synaptic_models') if __name__ == '__main__': if __file__ != sys.argv[-1]: inp = sys.argv[-1] else: raise Exception("no work" + str(sys.argv[-1])) dist = float(inp) net = NetworkBuilder("biophysical") # net.add_nodes(N=1, pop_name='PyrC', # potental='exc', # model_type='biophysical', # model_template='ctdb:Biophys1.hoc', # model_processing='aibs_perisomatic', # dynamics_params='472363762_fit.json', # morphology='Scnn1a_473845048_m.swc') net.add_nodes(N=1, pop_name='Pyrc', potental='exc', model_type='biophysical', model_template='ctdb:Biophys1.hoc', model_processing='aibs_allactive',