Hi,
allow_self_connections is only when a population is connected to itself, it simply does not create weights on the diagonal of the connectivity matrix by default. It is the equivalent of i!=j in brian.
To be sure I understand what you want to do, let's say you have 10 excitatory neurons and one inhibitory. One of the excitatory neurons spikes, what in turn makes the inhibitory neuron spike. The 9 other excitatory neurons should receive an iPSP, but not the one which fired? And that should happen regardless the neuron that fired?
That would be not very easy to do... At least at the projection level. You could implement that logic in the neurons themselves: the first neuron that fires remembers that it won (through a local variable). It can then ignore any iPSP coming from the inhibitory neuron. Something like:
WTA = Neuron(
parameters = """
...
""",
equations="""
inhib = (winner > 0.5? g_inh : 0.0)
tau * dv/dt = g_exc - inhib - v
winner = (g_inh > T ? 0.0 : winner)
""",
spike = "v > vt",
reset = """
v = 0.0
winner = 1.0
"""
)
but one has to implement a WTA in addition.
Best
Julien