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
Exemple #3
0
#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',