def METHOD_NAME(self):
    """
    For gap junctions potentially other complex synapse types the presynaptic side of the
    connection also needs to be initiated. This is a little tricky with sources distributed on
    different nodes as the parameters need to be gathered to the node where the source is
    hosted before it can be set
    """
    # Get the list of all connections on all nodes
    conn_list = np.array(self.get(self.synapse_type.get_parameter_names(), 'list',
                                  gather='all', with_address=True))
    # Loop through each of the connections where the presynaptic index (first column) is on
    # the local node
    mask_local = np.array(np.in1d(np.squeeze(conn_list[:, 0]),
                                  np.nonzero(self.pre._mask_local)[0]), dtype=bool)
    for conn in conn_list[mask_local, :]:
        pre_idx = int(conn[0])
        post_idx = int(conn[1])
        params = dict(zip(self.synapse_type.get_parameter_names(), conn[2:]))
        self._presynaptic_components[pre_idx][post_idx] = \
            self.synapse_type.presynaptic_type(self, pre_idx, post_idx, **params)