HI,
I may be mistaken, but isn't the EI and IE index switched (https://nest-simulator.readthedocs.io/en/stable/auto_examples/plot_weight_ma...) ?
a_EI = nest.GetConnections(I_neurons, E_neurons) c_EI = nest.GetStatus(a_EI, keys='weight') a_IE = nest.GetConnections(E_neurons, I_neurons) c_IE = nest.GetStatus(a_IE, keys='weight')
for idx, n in enumerate(a_EI): W_EI[n[0] - min(I_neurons), n[1] - min(E_neurons)] += c_EI[idx] for idx, n in enumerate(a_IE): W_IE[n[0] - min(E_neurons), n[1] - min(I_neurons)] += c_IE[idx]
Thanks,
Hello,
The use of "post-pre" notation when referring to synaptic connections is common practice in computational neuroscience. It does often give rise to some confusion, but it is common, for example, to refer to a synaptic connection from neuron j to neuron i as ij (post<-pre). This is the notation used in this example, where we refer to the connection from inhibitory to excitatory neurons (I->E) as EI (post-pre) and connections from excitatory to inhibitory neurons (E->I) as IE (post-pre). It is just a matter of convention.
Best regards, Renato Duarte
On Jan 19 2021, at 12:43 pm, Ing Jyh Tsang ingjyh.tsang@uantwerpen.be wrote:
HI,
I may be mistaken, but isn't the EI and IE index switched (https://nest-simulator.readthedocs.io/en/stable/auto_examples/plot_weight_ma...) ? a_EI = nest.GetConnections(I_neurons, E_neurons) c_EI = nest.GetStatus(a_EI, keys='weight') a_IE = nest.GetConnections(E_neurons, I_neurons) c_IE = nest.GetStatus(a_IE, keys='weight')
for idx, n in enumerate(a_EI): W_EI[n[0] - min(I_neurons), n[1] - min(E_neurons)] += c_EI[idx] for idx, n in enumerate(a_IE): W_IE[n[0] - min(E_neurons), n[1] - min(I_neurons)] += c_IE[idx]
Thanks, _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi,
Right, in that case I would switch the order when assigning :
W_EE = np.zeros([len(E_neurons), len(E_neurons)]) W_IE = np.zeros([len(E_neurons), len(I_neurons)]) W_EI = np.zeros([len(I_neurons), len(E_neurons)]) W_II = np.zeros([len(I_neurons), len(I_neurons)])
So it would give a hint of the convention (at least for me), but as you said it is a convention, and indeed I was confused by it.
Thanks a lot.
From: Renato Duarte rcfduarte@gmail.com Sent: Tuesday, 19 January 2021 13:04 To: NEST User Mailing List users@nest-simulator.org Subject: [NEST Users] Re: Plot weight matrices example
Hello,
The use of "post-pre" notation when referring to synaptic connections is common practice in computational neuroscience. It does often give rise to some confusion, but it is common, for example, to refer to a synaptic connection from neuron j to neuron i as ij (post<-pre). This is the notation used in this example, where we refer to the connection from inhibitory to excitatory neurons (I->E) as EI (post-pre) and connections from excitatory to inhibitory neurons (E->I) as IE (post-pre). It is just a matter of convention.
Best regards, Renato Duarte
On Jan 19 2021, at 12:43 pm, Ing Jyh Tsang <ingjyh.tsang@uantwerpen.bemailto:ingjyh.tsang@uantwerpen.be> wrote: HI,
I may be mistaken, but isn't the EI and IE index switched (https://nest-simulator.readthedocs.io/en/stable/auto_examples/plot_weight_ma...) ?
a_EI = nest.GetConnections(I_neurons, E_neurons) c_EI = nest.GetStatus(a_EI, keys='weight') a_IE = nest.GetConnections(E_neurons, I_neurons) c_IE = nest.GetStatus(a_IE, keys='weight')
for idx, n in enumerate(a_EI): W_EI[n[0] - min(I_neurons), n[1] - min(E_neurons)] += c_EI[idx] for idx, n in enumerate(a_IE): W_IE[n[0] - min(E_neurons), n[1] - min(I_neurons)] += c_IE[idx]
Thanks, _______________________________________________ NEST Users mailing list -- users@nest-simulator.orgmailto:users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.orgmailto:users-leave@nest-simulator.org
Dear Renato, dear Ing,
While I agree with Renato about the fact that this convention is commonly used, I also agree with Ing that it might be not clear to everyone.
Would one of you be willing (and able) to create a small pull request fixing the order and adding a short comment along the lines Ing presented, so other users don't get confused in the same way?
Many thanks, Jochen!
On 19.01.21 13:21, Ing Jyh Tsang wrote:
------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Volker Rieke Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------
Hi,
to remember the convention it is useful to think about matrix multiplication x_t+1 = W x_t The weight matrix W projects (or propagates) the the old state at t to the new state at t+1, where x is the state vector.
That's it.
Regards, Markus
On 1/19/21 2:35 PM, Jochen Martin Eppler wrote:
Dear Renato, dear Ing,
While I agree with Renato about the fact that this convention is commonly used, I also agree with Ing that it might be not clear to everyone.
Would one of you be willing (and able) to create a small pull request fixing the order and adding a short comment along the lines Ing presented, so other users don't get confused in the same way?
Many thanks, Jochen!
On 19.01.21 13:21, Ing Jyh Tsang wrote:
Hi,
Right, in that case I would switch the order when assigning :
W_EE = np.zeros([len(E_neurons), len(E_neurons)])
W_IE = np.zeros([len(E_neurons), len(I_neurons)])
W_EI = np.zeros([len(I_neurons), len(E_neurons)])
W_II = np.zeros([len(I_neurons), len(I_neurons)])
So it would give a hint of the convention (at least for me), but as you said it is a convention, and indeed I was confused by it.
Thanks a lot.
*From:*Renato Duarte rcfduarte@gmail.com *Sent:* Tuesday, 19 January 2021 13:04 *To:* NEST User Mailing List users@nest-simulator.org *Subject:* [NEST Users] Re: Plot weight matrices example
Hello,
The use of "post-pre" notation when referring to synaptic connections is common practice in computational neuroscience.
It does often give rise to some confusion, but it is common, for example, to refer to a synaptic connection from neuron j to neuron i as ij (post<-pre).
This is the notation used in this example, where we refer to the connection from inhibitory to excitatory neurons (I->E) as EI (post-pre) and connections from excitatory to inhibitory neurons (E->I) as IE (post-pre).
It is just a matter of convention.
Best regards,
Renato Duarte
On Jan 19 2021, at 12:43 pm, Ing Jyh Tsang <ingjyh.tsang@uantwerpen.be mailto:ingjyh.tsang@uantwerpen.be> wrote:
HI, I may be mistaken, but isn't the EI and IE index switched (https://nest-simulator.readthedocs.io/en/stable/auto_examples/plot_weight_matrices.html <https://nest-simulator.readthedocs.io/en/stable/auto_examples/plot_weight_matrices.html>) ? a_EI = nest.GetConnections(I_neurons, E_neurons) c_EI = nest.GetStatus(a_EI, keys='weight') a_IE = nest.GetConnections(E_neurons, I_neurons) c_IE = nest.GetStatus(a_IE, keys='weight') for idx, n in enumerate(a_EI): W_EI[n[0] - min(I_neurons), n[1] - min(E_neurons)] += c_EI[idx] for idx, n in enumerate(a_IE): W_IE[n[0] - min(E_neurons), n[1] - min(I_neurons)] += c_IE[idx] Thanks, _______________________________________________ NEST Users mailing list -- users@nest-simulator.org <mailto:users@nest-simulator.org> To unsubscribe send an email to users-leave@nest-simulator.org <mailto:users-leave@nest-simulator.org>
Sent from Mailspring
NEST Users mailing list --users@nest-simulator.org To unsubscribe send an email tousers-leave@nest-simulator.org
-- Dr. Jochen Martin Eppler Phone: +49(2461)61-96653
Simulation Laboratory Neuroscience Jülich Supercomputing Centre Institute for Advanced Simulation
Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Volker Rieke Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi,
At least for me having the convention (https://nest-simulator.readthedocs.io/en/nest-2.20.1/ref_material/pynest_api...):
Such as: Connect(pre, post, conn_spec=None, syn_spec=None, model=None)
Got me kind of locked in "pre-post" .... But again, it is a convention and for me it is fine now that I know (I will be more careful ...).
Best, Ing
________________________________ From: Markus Diesmann diesmann@fz-juelich.de Sent: 19 January 2021 14:43 To: users@nest-simulator.org users@nest-simulator.org Subject: [NEST Users] Re: Plot weight matrices example
Hi,
to remember the convention it is useful to think about matrix multiplication x_t+1 = W x_t The weight matrix W projects (or propagates) the the old state at t to the new state at t+1, where x is the state vector.
That's it.
Regards, Markus
On 1/19/21 2:35 PM, Jochen Martin Eppler wrote:
Dear Renato, dear Ing,
While I agree with Renato about the fact that this convention is commonly used, I also agree with Ing that it might be not clear to everyone.
Would one of you be willing (and able) to create a small pull request fixing the order and adding a short comment along the lines Ing presented, so other users don't get confused in the same way?
Many thanks, Jochen!
On 19.01.21 13:21, Ing Jyh Tsang wrote:
Hi,
Right, in that case I would switch the order when assigning :
W_EE = np.zeros([len(E_neurons), len(E_neurons)])
W_IE = np.zeros([len(E_neurons), len(I_neurons)])
W_EI = np.zeros([len(I_neurons), len(E_neurons)])
W_II = np.zeros([len(I_neurons), len(I_neurons)])
So it would give a hint of the convention (at least for me), but as you said it is a convention, and indeed I was confused by it.
Thanks a lot.
*From:*Renato Duarte rcfduarte@gmail.com *Sent:* Tuesday, 19 January 2021 13:04 *To:* NEST User Mailing List users@nest-simulator.org *Subject:* [NEST Users] Re: Plot weight matrices example
Hello,
The use of "post-pre" notation when referring to synaptic connections is common practice in computational neuroscience.
It does often give rise to some confusion, but it is common, for example, to refer to a synaptic connection from neuron j to neuron i as ij (post<-pre).
This is the notation used in this example, where we refer to the connection from inhibitory to excitatory neurons (I->E) as EI (post-pre) and connections from excitatory to inhibitory neurons (E->I) as IE (post-pre).
It is just a matter of convention.
Best regards,
Renato Duarte
On Jan 19 2021, at 12:43 pm, Ing Jyh Tsang <ingjyh.tsang@uantwerpen.be mailto:ingjyh.tsang@uantwerpen.be> wrote:
HI, I may be mistaken, but isn't the EI and IE index switched (https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fnest-simulator.readthedocs.io%2Fen%2Fstable%2Fauto_examples%2Fplot_weight_matrices.html&data=04%7C01%7Cingjyh.tsang%40uantwerpen.be%7C5764feb7e87540d76bcb08d8bc803967%7C792e08fb2d544a8eaf72202548136ef6%7C0%7C0%7C637466606906760985%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=JP5sD3gnOT3bTcQ35ob83TCVgoOvHcbyWpxnfeXbqJw%3D&reserved=0 <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fnest-simulator.readthedocs.io%2Fen%2Fstable%2Fauto_examples%2Fplot_weight_matrices.html&data=04%7C01%7Cingjyh.tsang%40uantwerpen.be%7C5764feb7e87540d76bcb08d8bc803967%7C792e08fb2d544a8eaf72202548136ef6%7C0%7C0%7C637466606906760985%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=JP5sD3gnOT3bTcQ35ob83TCVgoOvHcbyWpxnfeXbqJw%3D&reserved=0>) ? a_EI = nest.GetConnections(I_neurons, E_neurons) c_EI = nest.GetStatus(a_EI, keys='weight') a_IE = nest.GetConnections(E_neurons, I_neurons) c_IE = nest.GetStatus(a_IE, keys='weight') for idx, n in enumerate(a_EI): W_EI[n[0] - min(I_neurons), n[1] - min(E_neurons)] += c_EI[idx] for idx, n in enumerate(a_IE): W_IE[n[0] - min(E_neurons), n[1] - min(I_neurons)] += c_IE[idx] Thanks, _______________________________________________ NEST Users mailing list -- users@nest-simulator.org <mailto:users@nest-simulator.org> To unsubscribe send an email to users-leave@nest-simulator.org <mailto:users-leave@nest-simulator.org>
Sent from Mailspring
NEST Users mailing list --users@nest-simulator.org To unsubscribe send an email tousers-leave@nest-simulator.org
-- Dr. Jochen Martin Eppler Phone: +49(2461)61-96653
Simulation Laboratory Neuroscience Jülich Supercomputing Centre Institute for Advanced Simulation
Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Volker Rieke Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
--
Prof. Dr. Markus Diesmann, Director Inst of Neuroscience and Medicine (INM-6) Tel +49-2461-61-4748 (secr) Computational and Systems Neuroscience & +49-2461-61-9301 (lab) Institute for Advanced Simulation (IAS-6) Fax +49-2461-61-9460 Theoretical Neuroscience Mob +49-175-290-1943 Jülich Research Centre and JARA Institute I Jülich, Germany
Department of Psychiatry, Psychotherapy and Psychosomatics School of Medicine, RWTH Aachen University Aachen, Germany
https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.nest-in... https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.csn.fz-...