Source code for bsb.connectivity.connectome.mossy_dcn

import numpy as np
from ..strategy import ConnectionStrategy
from ...reporting import report, warn
from ...exceptions import *


[docs]class ConnectomeMossyDCN(ConnectionStrategy): """ Implementation for the connection between mossy fibers and DCN cells. """ casts = {"convergence": int} required = ["convergence"]
[docs] def validate(self): pass
def connect(self): # Source and target neurons are extracted mossy_cell_type = self.from_cell_types[0] dcn_cell_type = self.to_cell_types[0] mossy = self.scaffold.entities_by_type[mossy_cell_type.name] dcn_cells = self.scaffold.cells_by_type[dcn_cell_type.name] convergence = self.convergence if convergence > len(mossy): convergence = len(mossy) warn( "Convergence for MF-DCN saturated at MF number. Network too small", ConnectivityWarning, ) mf_dcn = np.zeros((convergence * len(dcn_cells), 2)) for i, dcn in enumerate(dcn_cells): connected_mfs = np.random.choice(mossy, convergence, replace=False) range_i = range(i * convergence, (i + 1) * convergence) mf_dcn[range_i, 0] = connected_mfs.astype(int) mf_dcn[range_i, 1] = dcn[0] self.scaffold.connect_cells(self, mf_dcn)