Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type ‘mynest::pif_psc_alpha’ using nest::Node::handle; ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:116:21: error: type ‘nest::Node’ is not a base type for type ‘mynest::pif_psc_alpha’ using nest::Node::handles_test_event; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:121:14: error: ‘nest::port mynest::pif_psc_alpha::send_test_event(nest::Node&, nest::port, nest::synindex, bool)’ marked ‘override’, but does not override nest::port send_test_event( nest::Node&, nest::port, nest::synindex, bool ) override; ^~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:129:8: error: ‘void mynest::pif_psc_alpha::handle(nest::SpikeEvent&)’ marked ‘override’, but does not override void handle( nest::SpikeEvent& ) override; //! accept spikes ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:130:8: error: ‘void mynest::pif_psc_alpha::handle(nest::CurrentEvent&)’ marked ‘override’, but does not override void handle( nest::CurrentEvent& ) override; //! accept input current ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:131:8: error: ‘void mynest::pif_psc_alpha::handle(nest::DataLoggingRequest&)’ marked ‘override’, but does not override void handle( nest::DataLoggingRequest& ) override; //! allow recording with multimeter ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:133:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::SpikeEvent&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::SpikeEvent&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:134:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::CurrentEvent&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::CurrentEvent&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:135:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::DataLoggingRequest&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::DataLoggingRequest&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:138:8: error: ‘void mynest::pif_psc_alpha::get_status(DictionaryDatum&) const’ marked ‘override’, but does not override void get_status( DictionaryDatum& ) const override; ^~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:139:8: error: ‘void mynest::pif_psc_alpha::set_status(const DictionaryDatum&)’ marked ‘override’, but does not override void set_status( const DictionaryDatum& ) override; ^~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:143:8: error: ‘void mynest::pif_psc_alpha::init_buffers_()’ marked ‘override’, but does not override void init_buffers_() override; ^~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:146:8: error: ‘void mynest::pif_psc_alpha::calibrate()’ marked ‘override’, but does not override void calibrate() override; ^~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:149:8: error: ‘void mynest::pif_psc_alpha::update(const nest::Time&, long int, long int)’ marked ‘override’, but does not override void update( nest::Time const&, const long, const long ) override; ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::send_test_event(nest::Node&, nest::port, nest::synindex, bool)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:324:23: error: no matching function for call to ‘nest::SpikeEvent::set_sender(mynest::pif_psc_alpha&)’ e.set_sender( *this ); ^ In file included from /home/docker/env/neurosci/nest_build/include/nest/connector_model.h:34, from /home/docker/env/neurosci/nest_build/include/nest/common_synapse_properties.h:27, from /home/docker/env/neurosci/nest_build/include/nest/connection.h:27, from /home/docker/nest-extension-module-master/src/drop_odd_spike_connection.h:27, from /home/docker/nest-extension-module-master/src/mymodule.cpp:29: /home/docker/env/neurosci/nest_build/include/nest/event.h:1288:1: note: candidate: ‘void nest::Event::set_sender(nest::Node&)’ Event::set_sender( Node& s ) ^~~~~ /home/docker/env/neurosci/nest_build/include/nest/event.h:1288:1: note: no known conversion for argument 1 from ‘mynest::pif_psc_alpha’ to ‘nest::Node&’ In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::SpikeEvent&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:337:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:337:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::CurrentEvent&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:351:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:351:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::DataLoggingRequest&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:366:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:366:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘void mynest::pif_psc_alpha::get_status(DictionaryDatum&) const’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:380:3: error: ‘ArchivingNode’ has not been declared ArchivingNode::get_status( d ); ^~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘void mynest::pif_psc_alpha::set_status(const DictionaryDatum&)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:397:3: error: ‘ArchivingNode’ has not been declared ArchivingNode::set_status( d ); ^~~~~~~~~~~~~ In file included from /home/docker/env/neurosci/nest_build/include/nest/connection_manager_impl.h:33, from /home/docker/nest-extension-module-master/src/mymodule.cpp:38: /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h: In instantiation of ‘nest::ConnBuilder* nest::ConnBuilderFactory<ConnBuilderType>::create(nest::NodeCollectionPTR, nest::NodeCollectionPTR, const DictionaryDatum&, const DictionaryDatum&) const [with ConnBuilderType = mynest::StepPatternBuilder; nest::NodeCollectionPTR = std::shared_ptrnest::NodeCollection; DictionaryDatum = lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>]’: /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:67:3: required from here /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:72:12: error: no matching function for call to ‘mynest::StepPatternBuilder::StepPatternBuilder(nest::NodeCollectionPTR&, nest::NodeCollectionPTR&, const DictionaryDatum&, const DictionaryDatum&)’ return new ConnBuilderType( sources, targets, conn_spec, syn_spec ); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:31: /home/docker/nest-extension-module-master/src/step_pattern_builder.h:35:3: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(nest::NodeCollectionPTR, nest::NodeCollectionPTR, const DictionaryDatum&, const std::vector<lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>
&)’
StepPatternBuilder( const nest::NodeCollectionPTR sources, ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:35:3: note: no known conversion for argument 4 from ‘const DictionaryDatum’ {aka ‘const lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>’} to ‘const std::vector<lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)> >&’ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(const mynest::StepPatternBuilder&)’ class StepPatternBuilder : public nest::ConnBuilder ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate expects 1 argument, 4 provided /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(mynest::StepPatternBuilder&&)’ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate expects 1 argument, 4 provided In file included from /home/docker/env/neurosci/nest_build/include/nest/model_manager.h:31, from /home/docker/env/neurosci/nest_build/include/nest/kernel_manager.h:31, from /home/docker/env/neurosci/nest_build/include/nest/connector_base_impl.h:26, from /home/docker/env/neurosci/nest_build/include/nest/connection.h:29, from /home/docker/nest-extension-module-master/src/drop_odd_spike_connection.h:27, from /home/docker/nest-extension-module-master/src/mymodule.cpp:29: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::has_proxies() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:174:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:176:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘has_proxies’ return proto_.has_proxies(); ~~~~~~~^~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::one_node_per_process() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:181:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:183:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘one_node_per_process’ return proto_.one_node_per_process(); ~~~~~~~^~~~~~~~~~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::is_off_grid() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:188:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:190:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘is_off_grid’ return proto_.is_off_grid(); ~~~~~~~^~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::calibrate_time(const nest::TimeConverter&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:195:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:197:10: error: ‘class mynest::pif_psc_alpha’ has no member named ‘calibrate_time’; did you mean ‘calibrate’? proto_.calibrate_time( tc ); ~~~~~~~^~~~~~~~~~~~~~ calibrate /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::GapJunctionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:209:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:211:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( ge ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:211:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( ge ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::InstantaneousRateConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:216:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:218:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( re ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:218:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( re ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::DiffusionConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:223:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:225:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( de ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:225:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( de ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::DelayedRateConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:230:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:232:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( re ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:232:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( re ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘nest::SignalType nest::GenericModel<ElementT>::sends_signal() const [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:237:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:239:17: error: ‘const class mynest::pif_psc_alpha’ has no member named ‘sends_signal’ return proto_.sends_signal(); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘const nest::Node& nest::GenericModel<ElementT>::get_prototype() const [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:267:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:269:10: error: invalid initialization of reference of type ‘const nest::Node&’ from expression of type ‘const mynest::pif_psc_alpha’ return proto_; ^~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::set_model_id(int) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:274:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:276:10: error: ‘class mynest::pif_psc_alpha’ has no member named ‘set_model_id’ proto_.set_model_id( i ); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘int nest::GenericModel<ElementT>::get_model_id() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:281:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:283:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘get_model_id’ return proto_.get_model_id(); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘DictionaryDatum nest::GenericModel<ElementT>::get_status_() [with ElementT = mynest::pif_psc_alpha; DictionaryDatum = lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:251:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:253:30: error: ‘class mynest::pif_psc_alpha’ has no member named ‘get_status_base’; did you mean ‘get_status’? DictionaryDatum d = proto_.get_status_base(); ~~~~~~~^~~~~~~~~~~~~~~ get_status /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘nest::Node* nest::GenericModel<ElementT>::allocate_(void*) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:159:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:161:9: error: cannot convert ‘mynest::pif_psc_alpha*’ to ‘nest::Node*’ in initialization Node* n = new ( adr ) ElementT( proto_ ); ^ make[2]: *** [src/CMakeFiles/mymodule_module.dir/build.make:63: src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:125: src/CMakeFiles/mymodule_module.dir/all] Error 2 make: *** [Makefile:152: all] Error 2
Hi Nina,
It looks like this is being caused by an old(er) NEST version being installed in the image (master@1e0ce51, dated Oct 12, 2020), whereas the NEST extension module is expecting a newer version of NEST (NEST 3), which has a slightly different API (some things were renamed, causing the error you are seeing).
I suppose the ideal thing to do would be to ask the maintainers of this docker container if they could update the version of NEST.
In case this fails, you might be interested in using the NEST Docker image, which does not have any TvB couplings/co-simulation, but contains the latest NEST. You can find more information about that here: https://nest-simulator.readthedocs.io/en/latest/installation/index.html?high....
Hope this helps! Charl
On Thu, Nov 4, 2021, at 11:55, Nina Doorn wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container (https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type ‘mynest::pif_psc_alpha’ using nest::Node::handle; ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:116:21: error: type ‘nest::Node’ is not a base type for type ‘mynest::pif_psc_alpha’ using nest::Node::handles_test_event; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:121:14: error: ‘nest::port mynest::pif_psc_alpha::send_test_event(nest::Node&, nest::port, nest::synindex, bool)’ marked ‘override’, but does not override nest::port send_test_event( nest::Node&, nest::port, nest::synindex, bool ) override; ^~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:129:8: error: ‘void mynest::pif_psc_alpha::handle(nest::SpikeEvent&)’ marked ‘override’, but does not override void handle( nest::SpikeEvent& ) override; //! accept spikes ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:130:8: error: ‘void mynest::pif_psc_alpha::handle(nest::CurrentEvent&)’ marked ‘override’, but does not override void handle( nest::CurrentEvent& ) override; //! accept input current ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:131:8: error: ‘void mynest::pif_psc_alpha::handle(nest::DataLoggingRequest&)’ marked ‘override’, but does not override void handle( nest::DataLoggingRequest& ) override; //! allow recording with multimeter ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:133:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::SpikeEvent&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::SpikeEvent&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:134:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::CurrentEvent&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::CurrentEvent&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:135:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::DataLoggingRequest&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::DataLoggingRequest&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:138:8: error: ‘void mynest::pif_psc_alpha::get_status(DictionaryDatum&) const’ marked ‘override’, but does not override void get_status( DictionaryDatum& ) const override; ^~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:139:8: error: ‘void mynest::pif_psc_alpha::set_status(const DictionaryDatum&)’ marked ‘override’, but does not override void set_status( const DictionaryDatum& ) override; ^~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:143:8: error: ‘void mynest::pif_psc_alpha::init_buffers_()’ marked ‘override’, but does not override void init_buffers_() override; ^~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:146:8: error: ‘void mynest::pif_psc_alpha::calibrate()’ marked ‘override’, but does not override void calibrate() override; ^~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:149:8: error: ‘void mynest::pif_psc_alpha::update(const nest::Time&, long int, long int)’ marked ‘override’, but does not override void update( nest::Time const&, const long, const long ) override; ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::send_test_event(nest::Node&, nest::port, nest::synindex, bool)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:324:23: error: no matching function for call to ‘nest::SpikeEvent::set_sender(mynest::pif_psc_alpha&)’ e.set_sender( *this ); ^ In file included from /home/docker/env/neurosci/nest_build/include/nest/connector_model.h:34, from /home/docker/env/neurosci/nest_build/include/nest/common_synapse_properties.h:27, from /home/docker/env/neurosci/nest_build/include/nest/connection.h:27, from /home/docker/nest-extension-module-master/src/drop_odd_spike_connection.h:27, from /home/docker/nest-extension-module-master/src/mymodule.cpp:29: /home/docker/env/neurosci/nest_build/include/nest/event.h:1288:1: note: candidate: ‘void nest::Event::set_sender(nest::Node&)’ Event::set_sender( Node& s ) ^~~~~ /home/docker/env/neurosci/nest_build/include/nest/event.h:1288:1: note: no known conversion for argument 1 from ‘mynest::pif_psc_alpha’ to ‘nest::Node&’ In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::SpikeEvent&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:337:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:337:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::CurrentEvent&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:351:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:351:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::DataLoggingRequest&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:366:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:366:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘void mynest::pif_psc_alpha::get_status(DictionaryDatum&) const’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:380:3: error: ‘ArchivingNode’ has not been declared ArchivingNode::get_status( d ); ^~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘void mynest::pif_psc_alpha::set_status(const DictionaryDatum&)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:397:3: error: ‘ArchivingNode’ has not been declared ArchivingNode::set_status( d ); ^~~~~~~~~~~~~ In file included from /home/docker/env/neurosci/nest_build/include/nest/connection_manager_impl.h:33, from /home/docker/nest-extension-module-master/src/mymodule.cpp:38: /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h: In instantiation of ‘nest::ConnBuilder* nest::ConnBuilderFactory<ConnBuilderType>::create(nest::NodeCollectionPTR, nest::NodeCollectionPTR, const DictionaryDatum&, const DictionaryDatum&) const [with ConnBuilderType = mynest::StepPatternBuilder; nest::NodeCollectionPTR = std::shared_ptrnest::NodeCollection; DictionaryDatum = lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>]’: /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:67:3: required from here /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:72:12: error: no matching function for call to ‘mynest::StepPatternBuilder::StepPatternBuilder(nest::NodeCollectionPTR&, nest::NodeCollectionPTR&, const DictionaryDatum&, const DictionaryDatum&)’ return new ConnBuilderType( sources, targets, conn_spec, syn_spec ); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:31: /home/docker/nest-extension-module-master/src/step_pattern_builder.h:35:3: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(nest::NodeCollectionPTR, nest::NodeCollectionPTR, const DictionaryDatum&, const std::vector<lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)> >&)’ StepPatternBuilder( const nest::NodeCollectionPTR sources, ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:35:3: note: no known conversion for argument 4 from ‘const DictionaryDatum’ {aka ‘const lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>’} to ‘const std::vector<lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)> >&’ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(const mynest::StepPatternBuilder&)’ class StepPatternBuilder : public nest::ConnBuilder ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate expects 1 argument, 4 provided /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(mynest::StepPatternBuilder&&)’ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate expects 1 argument, 4 provided In file included from /home/docker/env/neurosci/nest_build/include/nest/model_manager.h:31, from /home/docker/env/neurosci/nest_build/include/nest/kernel_manager.h:31, from /home/docker/env/neurosci/nest_build/include/nest/connector_base_impl.h:26, from /home/docker/env/neurosci/nest_build/include/nest/connection.h:29, from /home/docker/nest-extension-module-master/src/drop_odd_spike_connection.h:27, from /home/docker/nest-extension-module-master/src/mymodule.cpp:29: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::has_proxies() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:174:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:176:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘has_proxies’ return proto_.has_proxies(); ~~~~~~~^~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::one_node_per_process() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:181:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:183:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘one_node_per_process’ return proto_.one_node_per_process(); ~~~~~~~^~~~~~~~~~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::is_off_grid() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:188:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:190:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘is_off_grid’ return proto_.is_off_grid(); ~~~~~~~^~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::calibrate_time(const nest::TimeConverter&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:195:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:197:10: error: ‘class mynest::pif_psc_alpha’ has no member named ‘calibrate_time’; did you mean ‘calibrate’? proto_.calibrate_time( tc );
calibrate /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::GapJunctionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:209:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:211:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( ge ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:211:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( ge ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::InstantaneousRateConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:216:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:218:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( re ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:218:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( re ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::DiffusionConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:223:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:225:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( de ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:225:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( de ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::DelayedRateConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:230:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:232:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( re ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:232:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( re ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘nest::SignalType nest::GenericModel<ElementT>::sends_signal() const [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:237:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:239:17: error: ‘const class mynest::pif_psc_alpha’ has no member named ‘sends_signal’ return proto_.sends_signal(); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘const nest::Node& nest::GenericModel<ElementT>::get_prototype() const [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:267:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:269:10: error: invalid initialization of reference of type ‘const nest::Node&’ from expression of type ‘const mynest::pif_psc_alpha’ return proto_; ^~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::set_model_id(int) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:274:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:276:10: error: ‘class mynest::pif_psc_alpha’ has no member named ‘set_model_id’ proto_.set_model_id( i ); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘int nest::GenericModel<ElementT>::get_model_id() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:281:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:283:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘get_model_id’ return proto_.get_model_id(); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘DictionaryDatum nest::GenericModel<ElementT>::get_status_() [with ElementT = mynest::pif_psc_alpha; DictionaryDatum = lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:251:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:253:30: error: ‘class mynest::pif_psc_alpha’ has no member named ‘get_status_base’; did you mean ‘get_status’? DictionaryDatum d = proto_.get_status_base(); ~~~~~~~^~~~~~~~~~~~~~~ get_status /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘nest::Node* nest::GenericModel<ElementT>::allocate_(void*) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:159:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:161:9: error: cannot convert ‘mynest::pif_psc_alpha*’ to ‘nest::Node*’ in initialization Node* n = new ( adr ) ElementT( proto_ ); ^ make[2]: *** [src/CMakeFiles/mymodule_module.dir/build.make:63: src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:125: src/CMakeFiles/mymodule_module.dir/all] Error 2 make: *** [Makefile:152: all] Error 2 _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi Charl,
Thank you so much for the quick and clear reply. Very helpful :) I will contact the tvb-multiscale container maintainers.
Kind regards, Nina
On Thu, Nov 4, 2021 at 1:07 PM Charl Linssen nest-users@turingbirds.com wrote:
Hi Nina,
It looks like this is being caused by an old(er) NEST version being installed in the image (master@1e0ce51, dated Oct 12, 2020), whereas the NEST extension module is expecting a newer version of NEST (NEST 3), which has a slightly different API (some things were renamed, causing the error you are seeing).
I suppose the ideal thing to do would be to ask the maintainers of this docker container if they could update the version of NEST.
In case this fails, you might be interested in using the NEST Docker image, which does not have any TvB couplings/co-simulation, but contains the latest NEST. You can find more information about that here: https://nest-simulator.readthedocs.io/en/latest/installation/index.html?high... .
Hope this helps! Charl
On Thu, Nov 4, 2021, at 11:55, Nina Doorn wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type ‘mynest::pif_psc_alpha’ using nest::Node::handle; ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:116:21: error: type ‘nest::Node’ is not a base type for type ‘mynest::pif_psc_alpha’ using nest::Node::handles_test_event; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:121:14: error: ‘nest::port mynest::pif_psc_alpha::send_test_event(nest::Node&, nest::port, nest::synindex, bool)’ marked ‘override’, but does not override nest::port send_test_event( nest::Node&, nest::port, nest::synindex, bool ) override; ^~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:129:8: error: ‘void mynest::pif_psc_alpha::handle(nest::SpikeEvent&)’ marked ‘override’, but does not override void handle( nest::SpikeEvent& ) override; //! accept spikes ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:130:8: error: ‘void mynest::pif_psc_alpha::handle(nest::CurrentEvent&)’ marked ‘override’, but does not override void handle( nest::CurrentEvent& ) override; //! accept input current ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:131:8: error: ‘void mynest::pif_psc_alpha::handle(nest::DataLoggingRequest&)’ marked ‘override’, but does not override void handle( nest::DataLoggingRequest& ) override; //! allow recording with multimeter ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:133:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::SpikeEvent&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::SpikeEvent&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:134:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::CurrentEvent&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::CurrentEvent&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:135:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::DataLoggingRequest&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::DataLoggingRequest&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:138:8: error: ‘void mynest::pif_psc_alpha::get_status(DictionaryDatum&) const’ marked ‘override’, but does not override void get_status( DictionaryDatum& ) const override; ^~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:139:8: error: ‘void mynest::pif_psc_alpha::set_status(const DictionaryDatum&)’ marked ‘override’, but does not override void set_status( const DictionaryDatum& ) override; ^~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:143:8: error: ‘void mynest::pif_psc_alpha::init_buffers_()’ marked ‘override’, but does not override void init_buffers_() override; ^~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:146:8: error: ‘void mynest::pif_psc_alpha::calibrate()’ marked ‘override’, but does not override void calibrate() override; ^~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:149:8: error: ‘void mynest::pif_psc_alpha::update(const nest::Time&, long int, long int)’ marked ‘override’, but does not override void update( nest::Time const&, const long, const long ) override; ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::send_test_event(nest::Node&, nest::port, nest::synindex, bool)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:324:23: error: no matching function for call to ‘nest::SpikeEvent::set_sender(mynest::pif_psc_alpha&)’ e.set_sender( *this ); ^ In file included from /home/docker/env/neurosci/nest_build/include/nest/connector_model.h:34, from /home/docker/env/neurosci/nest_build/include/nest/common_synapse_properties.h:27, from /home/docker/env/neurosci/nest_build/include/nest/connection.h:27, from /home/docker/nest-extension-module-master/src/drop_odd_spike_connection.h:27, from /home/docker/nest-extension-module-master/src/mymodule.cpp:29: /home/docker/env/neurosci/nest_build/include/nest/event.h:1288:1: note: candidate: ‘void nest::Event::set_sender(nest::Node&)’ Event::set_sender( Node& s ) ^~~~~ /home/docker/env/neurosci/nest_build/include/nest/event.h:1288:1: note: no known conversion for argument 1 from ‘mynest::pif_psc_alpha’ to ‘nest::Node&’ In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::SpikeEvent&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:337:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:337:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::CurrentEvent&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:351:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:351:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::DataLoggingRequest&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:366:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:366:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘void mynest::pif_psc_alpha::get_status(DictionaryDatum&) const’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:380:3: error: ‘ArchivingNode’ has not been declared ArchivingNode::get_status( d ); ^~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘void mynest::pif_psc_alpha::set_status(const DictionaryDatum&)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:397:3: error: ‘ArchivingNode’ has not been declared ArchivingNode::set_status( d ); ^~~~~~~~~~~~~ In file included from /home/docker/env/neurosci/nest_build/include/nest/connection_manager_impl.h:33, from /home/docker/nest-extension-module-master/src/mymodule.cpp:38: /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h: In instantiation of ‘nest::ConnBuilder* nest::ConnBuilderFactory<ConnBuilderType>::create(nest::NodeCollectionPTR, nest::NodeCollectionPTR, const DictionaryDatum&, const DictionaryDatum&) const [with ConnBuilderType = mynest::StepPatternBuilder; nest::NodeCollectionPTR = std::shared_ptrnest::NodeCollection; DictionaryDatum = lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>]’: /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:67:3: required from here /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:72:12: error: no matching function for call to ‘mynest::StepPatternBuilder::StepPatternBuilder(nest::NodeCollectionPTR&, nest::NodeCollectionPTR&, const DictionaryDatum&, const DictionaryDatum&)’ return new ConnBuilderType( sources, targets, conn_spec, syn_spec ); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:31: /home/docker/nest-extension-module-master/src/step_pattern_builder.h:35:3: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(nest::NodeCollectionPTR, nest::NodeCollectionPTR, const DictionaryDatum&, const std::vector<lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>
&)’
StepPatternBuilder( const nest::NodeCollectionPTR sources, ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:35:3: note: no known conversion for argument 4 from ‘const DictionaryDatum’ {aka ‘const lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>’} to ‘const std::vector<lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)> >&’ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(const mynest::StepPatternBuilder&)’ class StepPatternBuilder : public nest::ConnBuilder ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate expects 1 argument, 4 provided /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(mynest::StepPatternBuilder&&)’ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate expects 1 argument, 4 provided In file included from /home/docker/env/neurosci/nest_build/include/nest/model_manager.h:31, from /home/docker/env/neurosci/nest_build/include/nest/kernel_manager.h:31, from /home/docker/env/neurosci/nest_build/include/nest/connector_base_impl.h:26, from /home/docker/env/neurosci/nest_build/include/nest/connection.h:29, from /home/docker/nest-extension-module-master/src/drop_odd_spike_connection.h:27, from /home/docker/nest-extension-module-master/src/mymodule.cpp:29: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::has_proxies() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:174:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:176:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘has_proxies’ return proto_.has_proxies(); ~~~~~~~^~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::one_node_per_process() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:181:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:183:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘one_node_per_process’ return proto_.one_node_per_process(); ~~~~~~~^~~~~~~~~~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::is_off_grid() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:188:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:190:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘is_off_grid’ return proto_.is_off_grid(); ~~~~~~~^~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::calibrate_time(const nest::TimeConverter&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:195:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:197:10: error: ‘class mynest::pif_psc_alpha’ has no member named ‘calibrate_time’; did you mean ‘calibrate’? proto_.calibrate_time( tc );
calibrate /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::GapJunctionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:209:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:211:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( ge ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:211:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( ge ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::InstantaneousRateConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:216:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:218:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( re ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:218:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( re ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::DiffusionConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:223:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:225:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( de ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:225:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( de ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::DelayedRateConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:230:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:232:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( re ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:232:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( re ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘nest::SignalType nest::GenericModel<ElementT>::sends_signal() const [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:237:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:239:17: error: ‘const class mynest::pif_psc_alpha’ has no member named ‘sends_signal’ return proto_.sends_signal(); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘const nest::Node& nest::GenericModel<ElementT>::get_prototype() const [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:267:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:269:10: error: invalid initialization of reference of type ‘const nest::Node&’ from expression of type ‘const mynest::pif_psc_alpha’ return proto_; ^~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::set_model_id(int) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:274:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:276:10: error: ‘class mynest::pif_psc_alpha’ has no member named ‘set_model_id’ proto_.set_model_id( i ); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘int nest::GenericModel<ElementT>::get_model_id() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:281:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:283:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘get_model_id’ return proto_.get_model_id(); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘DictionaryDatum nest::GenericModel<ElementT>::get_status_() [with ElementT = mynest::pif_psc_alpha; DictionaryDatum = lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:251:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:253:30: error: ‘class mynest::pif_psc_alpha’ has no member named ‘get_status_base’; did you mean ‘get_status’? DictionaryDatum d = proto_.get_status_base(); ~~~~~~~^~~~~~~~~~~~~~~ get_status /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘nest::Node* nest::GenericModel<ElementT>::allocate_(void*) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:159:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:161:9: error: cannot convert ‘mynest::pif_psc_alpha*’ to ‘nest::Node*’ in initialization Node* n = new ( adr ) ElementT( proto_ ); ^ make[2]: *** [src/CMakeFiles/mymodule_module.dir/build.make:63: src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:125: src/CMakeFiles/mymodule_module.dir/all] Error 2 make: *** [Makefile:152: all] Error 2 _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009 .. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A, Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple neuron types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. Front. Neuroinform. 12:46. doi: 10.3389/fninf.2018.00046
Best regards, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser Head, Department of Data Science
Faculty of Science and Technology Norwegian University of Life Sciences PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560 Email hans.ekkehard.plesser@nmbu.nomailto:hans.ekkehard.plesser@nmbu.no Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" <n.doorn@student.utwente.nlmailto:n.doorn@student.utwente.nl> wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container (https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with: docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master It gives me the message: You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type ‘mynest::pif_psc_alpha’ using nest::Node::handle; ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:116:21: error: type ‘nest::Node’ is not a base type for type ‘mynest::pif_psc_alpha’ using nest::Node::handles_test_event; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:121:14: error: ‘nest::port mynest::pif_psc_alpha::send_test_event(nest::Node&, nest::port, nest::synindex, bool)’ marked ‘override’, but does not override nest::port send_test_event( nest::Node&, nest::port, nest::synindex, bool ) override; ^~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:129:8: error: ‘void mynest::pif_psc_alpha::handle(nest::SpikeEvent&)’ marked ‘override’, but does not override void handle( nest::SpikeEvent& ) override; //! accept spikes ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:130:8: error: ‘void mynest::pif_psc_alpha::handle(nest::CurrentEvent&)’ marked ‘override’, but does not override void handle( nest::CurrentEvent& ) override; //! accept input current ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:131:8: error: ‘void mynest::pif_psc_alpha::handle(nest::DataLoggingRequest&)’ marked ‘override’, but does not override void handle( nest::DataLoggingRequest& ) override; //! allow recording with multimeter ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:133:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::SpikeEvent&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::SpikeEvent&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:134:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::CurrentEvent&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::CurrentEvent&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:135:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::DataLoggingRequest&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::DataLoggingRequest&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:138:8: error: ‘void mynest::pif_psc_alpha::get_status(DictionaryDatum&) const’ marked ‘override’, but does not override void get_status( DictionaryDatum& ) const override; ^~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:139:8: error: ‘void mynest::pif_psc_alpha::set_status(const DictionaryDatum&)’ marked ‘override’, but does not override void set_status( const DictionaryDatum& ) override; ^~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:143:8: error: ‘void mynest::pif_psc_alpha::init_buffers_()’ marked ‘override’, but does not override void init_buffers_() override; ^~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:146:8: error: ‘void mynest::pif_psc_alpha::calibrate()’ marked ‘override’, but does not override void calibrate() override; ^~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:149:8: error: ‘void mynest::pif_psc_alpha::update(const nest::Time&, long int, long int)’ marked ‘override’, but does not override void update( nest::Time const&, const long, const long ) override; ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::send_test_event(nest::Node&, nest::port, nest::synindex, bool)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:324:23: error: no matching function for call to ‘nest::SpikeEvent::set_sender(mynest::pif_psc_alpha&)’ e.set_sender( *this ); ^ In file included from /home/docker/env/neurosci/nest_build/include/nest/connector_model.h:34, from /home/docker/env/neurosci/nest_build/include/nest/common_synapse_properties.h:27, from /home/docker/env/neurosci/nest_build/include/nest/connection.h:27, from /home/docker/nest-extension-module-master/src/drop_odd_spike_connection.h:27, from /home/docker/nest-extension-module-master/src/mymodule.cpp:29: /home/docker/env/neurosci/nest_build/include/nest/event.h:1288:1: note: candidate: ‘void nest::Event::set_sender(nest::Node&)’ Event::set_sender( Node& s ) ^~~~~ /home/docker/env/neurosci/nest_build/include/nest/event.h:1288:1: note: no known conversion for argument 1 from ‘mynest::pif_psc_alpha’ to ‘nest::Node&’ In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::SpikeEvent&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:337:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:337:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::CurrentEvent&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:351:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:351:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::DataLoggingRequest&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:366:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:366:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘void mynest::pif_psc_alpha::get_status(DictionaryDatum&) const’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:380:3: error: ‘ArchivingNode’ has not been declared ArchivingNode::get_status( d ); ^~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘void mynest::pif_psc_alpha::set_status(const DictionaryDatum&)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:397:3: error: ‘ArchivingNode’ has not been declared ArchivingNode::set_status( d ); ^~~~~~~~~~~~~ In file included from /home/docker/env/neurosci/nest_build/include/nest/connection_manager_impl.h:33, from /home/docker/nest-extension-module-master/src/mymodule.cpp:38: /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h: In instantiation of ‘nest::ConnBuilder* nest::ConnBuilderFactory<ConnBuilderType>::create(nest::NodeCollectionPTR, nest::NodeCollectionPTR, const DictionaryDatum&, const DictionaryDatum&) const [with ConnBuilderType = mynest::StepPatternBuilder; nest::NodeCollectionPTR = std::shared_ptrnest::NodeCollection; DictionaryDatum = lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>]’: /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:67:3: required from here /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:72:12: error: no matching function for call to ‘mynest::StepPatternBuilder::StepPatternBuilder(nest::NodeCollectionPTR&, nest::NodeCollectionPTR&, const DictionaryDatum&, const DictionaryDatum&)’ return new ConnBuilderType( sources, targets, conn_spec, syn_spec ); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:31: /home/docker/nest-extension-module-master/src/step_pattern_builder.h:35:3: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(nest::NodeCollectionPTR, nest::NodeCollectionPTR, const DictionaryDatum&, const std::vector<lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)> >&)’ StepPatternBuilder( const nest::NodeCollectionPTR sources, ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:35:3: note: no known conversion for argument 4 from ‘const DictionaryDatum’ {aka ‘const lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>’} to ‘const std::vector<lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)> >&’ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(const mynest::StepPatternBuilder&)’ class StepPatternBuilder : public nest::ConnBuilder ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate expects 1 argument, 4 provided /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(mynest::StepPatternBuilder&&)’ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate expects 1 argument, 4 provided In file included from /home/docker/env/neurosci/nest_build/include/nest/model_manager.h:31, from /home/docker/env/neurosci/nest_build/include/nest/kernel_manager.h:31, from /home/docker/env/neurosci/nest_build/include/nest/connector_base_impl.h:26, from /home/docker/env/neurosci/nest_build/include/nest/connection.h:29, from /home/docker/nest-extension-module-master/src/drop_odd_spike_connection.h:27, from /home/docker/nest-extension-module-master/src/mymodule.cpp:29: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::has_proxies() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:174:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:176:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘has_proxies’ return proto_.has_proxies(); ~~~~~~~^~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::one_node_per_process() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:181:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:183:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘one_node_per_process’ return proto_.one_node_per_process(); ~~~~~~~^~~~~~~~~~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::is_off_grid() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:188:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:190:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘is_off_grid’ return proto_.is_off_grid(); ~~~~~~~^~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::calibrate_time(const nest::TimeConverter&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:195:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:197:10: error: ‘class mynest::pif_psc_alpha’ has no member named ‘calibrate_time’; did you mean ‘calibrate’? proto_.calibrate_time( tc ); ~~~~~~~^~~~~~~~~~~~~~ calibrate /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::GapJunctionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:209:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:211:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( ge ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:211:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( ge ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::InstantaneousRateConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:216:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:218:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( re ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:218:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( re ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::DiffusionConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:223:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:225:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( de ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:225:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( de ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::DelayedRateConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:230:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:232:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( re ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:232:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( re ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘nest::SignalType nest::GenericModel<ElementT>::sends_signal() const [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:237:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:239:17: error: ‘const class mynest::pif_psc_alpha’ has no member named ‘sends_signal’ return proto_.sends_signal(); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘const nest::Node& nest::GenericModel<ElementT>::get_prototype() const [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:267:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:269:10: error: invalid initialization of reference of type ‘const nest::Node&’ from expression of type ‘const mynest::pif_psc_alpha’ return proto_; ^~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::set_model_id(int) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:274:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:276:10: error: ‘class mynest::pif_psc_alpha’ has no member named ‘set_model_id’ proto_.set_model_id( i ); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘int nest::GenericModel<ElementT>::get_model_id() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:281:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:283:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘get_model_id’ return proto_.get_model_id(); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘DictionaryDatum nest::GenericModel<ElementT>::get_status_() [with ElementT = mynest::pif_psc_alpha; DictionaryDatum = lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:251:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:253:30: error: ‘class mynest::pif_psc_alpha’ has no member named ‘get_status_base’; did you mean ‘get_status’? DictionaryDatum d = proto_.get_status_base(); ~~~~~~~^~~~~~~~~~~~~~~ get_status /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘nest::Node* nest::GenericModel<ElementT>::allocate_(void*) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:159:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:161:9: error: cannot convert ‘mynest::pif_psc_alpha*’ to ‘nest::Node*’ in initialization Node* n = new ( adr ) ElementT( proto_ ); ^ make[2]: *** [src/CMakeFiles/mymodule_module.dir/build.make:63: src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:125: src/CMakeFiles/mymodule_module.dir/all] Error 2 make: *** [Makefile:152: all] Error 2
Dear Hans,
Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards, Nina
On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order
spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009
.. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model
for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,
Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple
neuron
types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type ‘mynest::pif_psc_alpha’ using nest::Node::handle; ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:116:21: error: type ‘nest::Node’ is not a base type for type ‘mynest::pif_psc_alpha’ using nest::Node::handles_test_event; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:121:14: error: ‘nest::port mynest::pif_psc_alpha::send_test_event(nest::Node&, nest::port, nest::synindex, bool)’ marked ‘override’, but does not override nest::port send_test_event( nest::Node&, nest::port, nest::synindex, bool ) override; ^~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:129:8: error: ‘void mynest::pif_psc_alpha::handle(nest::SpikeEvent&)’ marked ‘override’, but does not override void handle( nest::SpikeEvent& ) override; //! accept spikes ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:130:8: error: ‘void mynest::pif_psc_alpha::handle(nest::CurrentEvent&)’ marked ‘override’, but does not override void handle( nest::CurrentEvent& ) override; //! accept input current ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:131:8: error: ‘void mynest::pif_psc_alpha::handle(nest::DataLoggingRequest&)’ marked ‘override’, but does not override void handle( nest::DataLoggingRequest& ) override; //! allow recording with multimeter ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:133:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::SpikeEvent&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::SpikeEvent&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:134:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::CurrentEvent&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::CurrentEvent&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:135:14: error: ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::DataLoggingRequest&, nest::port)’ marked ‘override’, but does not override nest::port handles_test_event( nest::DataLoggingRequest&, nest::port ) override; ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:138:8: error: ‘void mynest::pif_psc_alpha::get_status(DictionaryDatum&) const’ marked ‘override’, but does not override void get_status( DictionaryDatum& ) const override; ^~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:139:8: error: ‘void mynest::pif_psc_alpha::set_status(const DictionaryDatum&)’ marked ‘override’, but does not override void set_status( const DictionaryDatum& ) override; ^~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:143:8: error: ‘void mynest::pif_psc_alpha::init_buffers_()’ marked ‘override’, but does not override void init_buffers_() override; ^~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:146:8: error: ‘void mynest::pif_psc_alpha::calibrate()’ marked ‘override’, but does not override void calibrate() override; ^~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:149:8: error: ‘void mynest::pif_psc_alpha::update(const nest::Time&, long int, long int)’ marked ‘override’, but does not override void update( nest::Time const&, const long, const long ) override; ^~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::send_test_event(nest::Node&, nest::port, nest::synindex, bool)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:324:23: error: no matching function for call to ‘nest::SpikeEvent::set_sender(mynest::pif_psc_alpha&)’ e.set_sender( *this ); ^ In file included from /home/docker/env/neurosci/nest_build/include/nest/connector_model.h:34, from /home/docker/env/neurosci/nest_build/include/nest/common_synapse_properties.h:27, from /home/docker/env/neurosci/nest_build/include/nest/connection.h:27, from /home/docker/nest-extension-module-master/src/drop_odd_spike_connection.h:27, from /home/docker/nest-extension-module-master/src/mymodule.cpp:29: /home/docker/env/neurosci/nest_build/include/nest/event.h:1288:1: note: candidate: ‘void nest::Event::set_sender(nest::Node&)’ Event::set_sender( Node& s ) ^~~~~ /home/docker/env/neurosci/nest_build/include/nest/event.h:1288:1: note: no known conversion for argument 1 from ‘mynest::pif_psc_alpha’ to ‘nest::Node&’ In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::SpikeEvent&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:337:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:337:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::CurrentEvent&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:351:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:351:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘nest::port mynest::pif_psc_alpha::handles_test_event(nest::DataLoggingRequest&, nest::port)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:366:53: error: ‘get_name’ was not declared in this scope throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:366:53: note: suggested alternative: ‘get_V_m_’ throw nest::UnknownReceptorType( receptor_type, get_name() ); ^~~~~~~~ get_V_m_ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘void mynest::pif_psc_alpha::get_status(DictionaryDatum&) const’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:380:3: error: ‘ArchivingNode’ has not been declared ArchivingNode::get_status( d ); ^~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member function ‘void mynest::pif_psc_alpha::set_status(const DictionaryDatum&)’: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:397:3: error: ‘ArchivingNode’ has not been declared ArchivingNode::set_status( d ); ^~~~~~~~~~~~~ In file included from /home/docker/env/neurosci/nest_build/include/nest/connection_manager_impl.h:33, from /home/docker/nest-extension-module-master/src/mymodule.cpp:38: /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h: In instantiation of ‘nest::ConnBuilder* nest::ConnBuilderFactory<ConnBuilderType>::create(nest::NodeCollectionPTR, nest::NodeCollectionPTR, const DictionaryDatum&, const DictionaryDatum&) const [with ConnBuilderType = mynest::StepPatternBuilder; nest::NodeCollectionPTR = std::shared_ptrnest::NodeCollection; DictionaryDatum = lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>]’: /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:67:3: required from here /home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:72:12: error: no matching function for call to ‘mynest::StepPatternBuilder::StepPatternBuilder(nest::NodeCollectionPTR&, nest::NodeCollectionPTR&, const DictionaryDatum&, const DictionaryDatum&)’ return new ConnBuilderType( sources, targets, conn_spec, syn_spec ); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:31: /home/docker/nest-extension-module-master/src/step_pattern_builder.h:35:3: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(nest::NodeCollectionPTR, nest::NodeCollectionPTR, const DictionaryDatum&, const std::vector<lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>
&)’
StepPatternBuilder( const nest::NodeCollectionPTR sources, ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:35:3: note: no known conversion for argument 4 from ‘const DictionaryDatum’ {aka ‘const lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>’} to ‘const std::vector<lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)> >&’ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(const mynest::StepPatternBuilder&)’ class StepPatternBuilder : public nest::ConnBuilder ^~~~~~~~~~~~~~~~~~ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate expects 1 argument, 4 provided /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(mynest::StepPatternBuilder&&)’ /home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7: note: candidate expects 1 argument, 4 provided In file included from /home/docker/env/neurosci/nest_build/include/nest/model_manager.h:31, from /home/docker/env/neurosci/nest_build/include/nest/kernel_manager.h:31, from /home/docker/env/neurosci/nest_build/include/nest/connector_base_impl.h:26, from /home/docker/env/neurosci/nest_build/include/nest/connection.h:29, from /home/docker/nest-extension-module-master/src/drop_odd_spike_connection.h:27, from /home/docker/nest-extension-module-master/src/mymodule.cpp:29: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::has_proxies() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:174:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:176:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘has_proxies’ return proto_.has_proxies(); ~~~~~~~^~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::one_node_per_process() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:181:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:183:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘one_node_per_process’ return proto_.one_node_per_process(); ~~~~~~~^~~~~~~~~~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘bool nest::GenericModel<ElementT>::is_off_grid() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:188:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:190:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘is_off_grid’ return proto_.is_off_grid(); ~~~~~~~^~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::calibrate_time(const nest::TimeConverter&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:195:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:197:10: error: ‘class mynest::pif_psc_alpha’ has no member named ‘calibrate_time’; did you mean ‘calibrate’? proto_.calibrate_time( tc );
calibrate /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::GapJunctionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:209:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:211:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( ge ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:211:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( ge ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::InstantaneousRateConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:216:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:218:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( re ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:218:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( re ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::DiffusionConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:223:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:225:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( de ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:225:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( de ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::sends_secondary_event(nest::DelayedRateConnectionEvent&) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:230:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:232:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘sends_secondary_event’; did you mean ‘send_test_event’? return proto_.sends_secondary_event( re ); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ send_test_event /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:232:43: error: return-statement with a value, in function returning ‘void’ [-fpermissive] return proto_.sends_secondary_event( re ); ^ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘nest::SignalType nest::GenericModel<ElementT>::sends_signal() const [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:237:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:239:17: error: ‘const class mynest::pif_psc_alpha’ has no member named ‘sends_signal’ return proto_.sends_signal(); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘const nest::Node& nest::GenericModel<ElementT>::get_prototype() const [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:267:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:269:10: error: invalid initialization of reference of type ‘const nest::Node&’ from expression of type ‘const mynest::pif_psc_alpha’ return proto_; ^~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘void nest::GenericModel<ElementT>::set_model_id(int) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:274:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:276:10: error: ‘class mynest::pif_psc_alpha’ has no member named ‘set_model_id’ proto_.set_model_id( i ); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘int nest::GenericModel<ElementT>::get_model_id() [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:281:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:283:17: error: ‘class mynest::pif_psc_alpha’ has no member named ‘get_model_id’ return proto_.get_model_id(); ~~~~~~~^~~~~~~~~~~~ /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘DictionaryDatum nest::GenericModel<ElementT>::get_status_() [with ElementT = mynest::pif_psc_alpha; DictionaryDatum = lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:251:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:253:30: error: ‘class mynest::pif_psc_alpha’ has no member named ‘get_status_base’; did you mean ‘get_status’? DictionaryDatum d = proto_.get_status_base(); ~~~~~~~^~~~~~~~~~~~~~~ get_status /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In instantiation of ‘nest::Node* nest::GenericModel<ElementT>::allocate_(void*) [with ElementT = mynest::pif_psc_alpha]’: /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:159:1: required from here /home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:161:9: error: cannot convert ‘mynest::pif_psc_alpha*’ to ‘nest::Node*’ in initialization Node* n = new ( adr ) ElementT( proto_ ); ^ make[2]: *** [src/CMakeFiles/mymodule_module.dir/build.make:63: src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:125: src/CMakeFiles/mymodule_module.dir/all] Error 2 make: *** [Makefile:152: all] Error 2 _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Dear Nina,
New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model.
Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging.
Best, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser Head, Department of Data Science
Faculty of Science and Technology Norwegian University of Life Sciences PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560 Email hans.ekkehard.plesser@nmbu.nomailto:hans.ekkehard.plesser@nmbu.no Home http://arken.nmbu.no/~plesser
On 04/11/2021, 14:11, "Nina Doorn" <n.doorn@student.utwente.nlmailto:n.doorn@student.utwente.nl> wrote:
Dear Hans,
Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards, Nina
On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.nomailto:hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009 .. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A, Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple neuron types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. Front. Neuroinform. 12:46. doi: 10.3389/fninf.2018.00046
Best regards, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser Head, Department of Data Science
Faculty of Science and Technology Norwegian University of Life Sciences PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560 Email hans.ekkehard.plesser@nmbu.nomailto:hans.ekkehard.plesser@nmbu.no Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" <n.doorn@student.utwente.nlmailto:n.doorn@student.utwente.nl> wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container (https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with: docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master It gives me the message: You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type
_______________________________________________ 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
Hi Hans,
Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential.
Is this possible to implement in NEST?
Best, Nina
On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model.
Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging.
Best, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear Hans,
Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards,
Nina
On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order
spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009
.. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model
for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,
Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple
neuron
types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Dear all,
I wanted to let you know that I resolved the original problem (with building my own nest module in tvb-multiscale docker container). I have created my own docker image of the tvb-multiscale but with NEST 3.1 installed. In this container, I can easily install the example nest-extension module, exactly like is explained in the tutorial. Thus, the problem was indeed with the nest version.
Thank you all for your answers and help!
However, now I have a different problem. So I am now working with (new setup) NEST 3.1 and python 3.9.2 instead of (old setup) NEST 2.18 on Python 3.7.3. I have a simple script to simulate the response of a few unconnected different aeif_cond_alpha_multisynapse neurons to a transient input current. If I run this script in the old setup, it works perfectly and runs in under a second. However, if I run it in the new setup, simulations take forever (I haven't been able to finish one).
Does anyone know if this could be attributable to a difference between nest 2 and nest 3 that I haven't incorporated into the script? Should I provide you with the entire script?
Thanks in advance! Kind regards, Nina
On Thu, Nov 4, 2021 at 3:19 PM Nina Doorn n.doorn@student.utwente.nl wrote:
Hi Hans,
Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential.
Is this possible to implement in NEST?
Best, Nina
On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model.
Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging.
Best, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear Hans,
Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards,
Nina
On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order
spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009
.. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model
for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,
Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple
neuron
types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Dear Nina,
If you could provide us with a small, self-contained script that reproduces the issue, that would be great to help with debugging.
Cheers, Charl
On Mon, Nov 8, 2021, at 15:46, Nina Doorn wrote:
Dear all,
I wanted to let you know that I resolved the original problem (with building my own nest module in tvb-multiscale docker container). I have created my own docker image of the tvb-multiscale but with NEST 3.1 installed. In this container, I can easily install the example nest-extension module, exactly like is explained in the tutorial. Thus, the problem was indeed with the nest version.
Thank you all for your answers and help! However, now I have a different problem. So I am now working with (new setup) NEST 3.1 and python 3.9.2 instead of (old setup) NEST 2.18 on Python 3.7.3. I have a simple script to simulate the response of a few unconnected different aeif_cond_alpha_multisynapse neurons to a transient input current. If I run this script in the old setup, it works perfectly and runs in under a second. However, if I run it in the new setup, simulations take forever (I haven't been able to finish one).
Does anyone know if this could be attributable to a difference between nest 2 and nest 3 that I haven't incorporated into the script? Should I provide you with the entire script?
Thanks in advance! Kind regards, Nina
On Thu, Nov 4, 2021 at 3:19 PM Nina Doorn n.doorn@student.utwente.nl wrote:
Hi Hans,
Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential.
Is this possible to implement in NEST?
Best, Nina
On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser hans.ekkehard.plesser@nmbu.no wrote:
Dear Nina,
New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model.
Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging.
Best, Hans Ekkehard ____ __ __ __ __ --____ __ __ Prof. Dr. Hans Ekkehard Plesser____ Head, Department of Data Science____ ____ Faculty of Science and Technology____ Norwegian University of Life Sciences____ PO Box 5003, 1432 Aas, Norway____ ____ Phone +47 6723 1560____ Email hans.ekkehard.plesser@nmbu.no____ Home http://arken.nmbu.no/~plesser____ ____ __ __ __ __ On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:____ __ __ Dear Hans,____ __ __ Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards,____
Nina ____ __ __ On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser hans.ekkehard.plesser@nmbu.no wrote:____
Dear Nina,____ ____ The first error is____ ____ In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^____
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?____ ____ There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.____ ____ BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See ____ ____ .. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order____ spiking neuron model equipped with a multi-timescale adaptive____ threshold. Frontiers in Computational Neuroscience, 3:9.____ DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009____ .. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model____ for reproducing diverse firing patterns and predicting precise____ firing times. Frontiers in Computational Neuroscience, 5:42.____ DOI: https://doi.org/10.3389/fncom.2011.00042____ ____ We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see ____ ____ .. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,____ Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018)____ Generalized leaky integrate-and-fire models classify multiple neuron____ types. Nature Communications 9:709.____ ____ These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see____ ____ Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046____ ____ Best regards,____ Hans Ekkehard____ ____ --____ ____ Prof. Dr. Hans Ekkehard Plesser____ Head, Department of Data Science____ ____ Faculty of Science and Technology____ Norwegian University of Life Sciences____ PO Box 5003, 1432 Aas, Norway____ ____ Phone +47 6723 1560____ Email hans.ekkehard.plesser@nmbu.no____ Home http://arken.nmbu.no/~plesser____ ____ ____ ____ On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:____ ____ Dear experts,____ ____ To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container (https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:____
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master____
It gives me the message:____
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb____
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:____
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type ____
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org____
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Dear Charl,
While trying to obtain the minimal code to reproduce the problem, I found out the problem disappears when I get rid of the setting of the timestep. At the beginning of the script, I have (because sometimes I want to have the timestep smaller): nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) And at the meters" TCmeter = nest.Create("multimeter",params={"interval": dt}) Although getting rid of this last part at the meters doesn't solve the problem.
In the documentation, I cannot find a change between nest 2.18 and nest 3.1 concerning the resolution. Did I miss something?
Also, setting the clock back to zero doesn't work anymore" nest.SetKernelStatus({'time':0.}) and I haven't found how I am supposed to do this in NEST 3.
I hope the question is clear. Thank you so much for all your help.
Best, Nina
On Mon, Nov 8, 2021 at 6:40 PM Charl Linssen nest-users@turingbirds.com wrote:
Dear Nina,
If you could provide us with a small, self-contained script that reproduces the issue, that would be great to help with debugging.
Cheers, Charl
On Mon, Nov 8, 2021, at 15:46, Nina Doorn wrote:
Dear all,
I wanted to let you know that I resolved the original problem (with building my own nest module in tvb-multiscale docker container). I have created my own docker image of the tvb-multiscale but with NEST 3.1 installed. In this container, I can easily install the example nest-extension module, exactly like is explained in the tutorial. Thus, the problem was indeed with the nest version.
Thank you all for your answers and help! However, now I have a different problem. So I am now working with (new setup) NEST 3.1 and python 3.9.2 instead of (old setup) NEST 2.18 on Python 3.7.3. I have a simple script to simulate the response of a few unconnected different aeif_cond_alpha_multisynapse neurons to a transient input current. If I run this script in the old setup, it works perfectly and runs in under a second. However, if I run it in the new setup, simulations take forever (I haven't been able to finish one).
Does anyone know if this could be attributable to a difference between nest 2 and nest 3 that I haven't incorporated into the script? Should I provide you with the entire script?
Thanks in advance! Kind regards, Nina
On Thu, Nov 4, 2021 at 3:19 PM Nina Doorn n.doorn@student.utwente.nl wrote:
Hi Hans,
Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential.
Is this possible to implement in NEST?
Best, Nina
On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model.
Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging.
Best, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear Hans,
Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards,
Nina
On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order
spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009
.. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model
for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,
Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple
neuron
types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi Nina, For the simulation and recorder resolution, I recently used the same approach and it worked (I am also using NEST 3.0). See screenshot attached. You can't set recorder resolution smaller than simulation resolution which was the case in previous versions. For time, you now have to set biological_time using nest.SetKernelStatus({"biological_time": 0.})
Hope this helps.
On Wed, Nov 10, 2021 at 10:49 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Charl,
While trying to obtain the minimal code to reproduce the problem, I found out the problem disappears when I get rid of the setting of the timestep. At the beginning of the script, I have (because sometimes I want to have the timestep smaller): nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) And at the meters" TCmeter = nest.Create("multimeter",params={"interval": dt}) Although getting rid of this last part at the meters doesn't solve the problem.
In the documentation, I cannot find a change between nest 2.18 and nest 3.1 concerning the resolution. Did I miss something?
Also, setting the clock back to zero doesn't work anymore" nest.SetKernelStatus({'time':0.}) and I haven't found how I am supposed to do this in NEST 3.
I hope the question is clear. Thank you so much for all your help.
Best, Nina
On Mon, Nov 8, 2021 at 6:40 PM Charl Linssen nest-users@turingbirds.com wrote:
Dear Nina,
If you could provide us with a small, self-contained script that reproduces the issue, that would be great to help with debugging.
Cheers, Charl
On Mon, Nov 8, 2021, at 15:46, Nina Doorn wrote:
Dear all,
I wanted to let you know that I resolved the original problem (with building my own nest module in tvb-multiscale docker container). I have created my own docker image of the tvb-multiscale but with NEST 3.1 installed. In this container, I can easily install the example nest-extension module, exactly like is explained in the tutorial. Thus, the problem was indeed with the nest version.
Thank you all for your answers and help! However, now I have a different problem. So I am now working with (new setup) NEST 3.1 and python 3.9.2 instead of (old setup) NEST 2.18 on Python 3.7.3. I have a simple script to simulate the response of a few unconnected different aeif_cond_alpha_multisynapse neurons to a transient input current. If I run this script in the old setup, it works perfectly and runs in under a second. However, if I run it in the new setup, simulations take forever (I haven't been able to finish one).
Does anyone know if this could be attributable to a difference between nest 2 and nest 3 that I haven't incorporated into the script? Should I provide you with the entire script?
Thanks in advance! Kind regards, Nina
On Thu, Nov 4, 2021 at 3:19 PM Nina Doorn n.doorn@student.utwente.nl wrote:
Hi Hans,
Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential.
Is this possible to implement in NEST?
Best, Nina
On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model.
Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging.
Best, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear Hans,
Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards,
Nina
On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order
spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009
.. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model
for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,
Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple
neuron
types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Dear Maryada,
Thank you for the answer. For me, setting the simulation and recorder resolution is also not the problem. It works to set them (same result as you), but then running a simulation won't work. It does run, but it will never finish, while if I run the same in my old setup, it works perfectly. So for example, the short script:
nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) neuron = nest.Create("aeif_cond_alpha_multisynapse") nest.Simulate(1000.0)
won't ever finish.
Do you not experience this problem?
Best, Nina
On Wed, Nov 10, 2021 at 11:24 AM Maryada Maryada er.maryada@gmail.com wrote:
Hi Nina, For the simulation and recorder resolution, I recently used the same approach and it worked (I am also using NEST 3.0). See screenshot attached. You can't set recorder resolution smaller than simulation resolution which was the case in previous versions. For time, you now have to set biological_time using nest.SetKernelStatus({"biological_time": 0.})
Hope this helps.
On Wed, Nov 10, 2021 at 10:49 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Charl,
While trying to obtain the minimal code to reproduce the problem, I found out the problem disappears when I get rid of the setting of the timestep. At the beginning of the script, I have (because sometimes I want to have the timestep smaller): nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) And at the meters" TCmeter = nest.Create("multimeter",params={"interval": dt}) Although getting rid of this last part at the meters doesn't solve the problem.
In the documentation, I cannot find a change between nest 2.18 and nest 3.1 concerning the resolution. Did I miss something?
Also, setting the clock back to zero doesn't work anymore" nest.SetKernelStatus({'time':0.}) and I haven't found how I am supposed to do this in NEST 3.
I hope the question is clear. Thank you so much for all your help.
Best, Nina
On Mon, Nov 8, 2021 at 6:40 PM Charl Linssen nest-users@turingbirds.com wrote:
Dear Nina,
If you could provide us with a small, self-contained script that reproduces the issue, that would be great to help with debugging.
Cheers, Charl
On Mon, Nov 8, 2021, at 15:46, Nina Doorn wrote:
Dear all,
I wanted to let you know that I resolved the original problem (with building my own nest module in tvb-multiscale docker container). I have created my own docker image of the tvb-multiscale but with NEST 3.1 installed. In this container, I can easily install the example nest-extension module, exactly like is explained in the tutorial. Thus, the problem was indeed with the nest version.
Thank you all for your answers and help! However, now I have a different problem. So I am now working with (new setup) NEST 3.1 and python 3.9.2 instead of (old setup) NEST 2.18 on Python 3.7.3. I have a simple script to simulate the response of a few unconnected different aeif_cond_alpha_multisynapse neurons to a transient input current. If I run this script in the old setup, it works perfectly and runs in under a second. However, if I run it in the new setup, simulations take forever (I haven't been able to finish one).
Does anyone know if this could be attributable to a difference between nest 2 and nest 3 that I haven't incorporated into the script? Should I provide you with the entire script?
Thanks in advance! Kind regards, Nina
On Thu, Nov 4, 2021 at 3:19 PM Nina Doorn n.doorn@student.utwente.nl wrote:
Hi Hans,
Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential.
Is this possible to implement in NEST?
Best, Nina
On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model.
Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging.
Best, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear Hans,
Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards,
Nina
On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order
spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009
.. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model
for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,
Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple
neuron
types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Thanks and Regards
*Maryada*
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Dear Nina, yes, just tested with two different neuron models (see attached).
Did you get any error messages? Also, did the test-suit after installation succeeded?
On Wed, Nov 10, 2021 at 11:58 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Maryada,
Thank you for the answer. For me, setting the simulation and recorder resolution is also not the problem. It works to set them (same result as you), but then running a simulation won't work. It does run, but it will never finish, while if I run the same in my old setup, it works perfectly. So for example, the short script:
nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) neuron = nest.Create("aeif_cond_alpha_multisynapse") nest.Simulate(1000.0)
won't ever finish.
Do you not experience this problem?
Best, Nina
On Wed, Nov 10, 2021 at 11:24 AM Maryada Maryada er.maryada@gmail.com wrote:
Hi Nina, For the simulation and recorder resolution, I recently used the same approach and it worked (I am also using NEST 3.0). See screenshot attached. You can't set recorder resolution smaller than simulation resolution which was the case in previous versions. For time, you now have to set biological_time using nest.SetKernelStatus({"biological_time": 0.})
Hope this helps.
On Wed, Nov 10, 2021 at 10:49 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Charl,
While trying to obtain the minimal code to reproduce the problem, I found out the problem disappears when I get rid of the setting of the timestep. At the beginning of the script, I have (because sometimes I want to have the timestep smaller): nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) And at the meters" TCmeter = nest.Create("multimeter",params={"interval": dt}) Although getting rid of this last part at the meters doesn't solve the problem.
In the documentation, I cannot find a change between nest 2.18 and nest 3.1 concerning the resolution. Did I miss something?
Also, setting the clock back to zero doesn't work anymore" nest.SetKernelStatus({'time':0.}) and I haven't found how I am supposed to do this in NEST 3.
I hope the question is clear. Thank you so much for all your help.
Best, Nina
On Mon, Nov 8, 2021 at 6:40 PM Charl Linssen nest-users@turingbirds.com wrote:
Dear Nina,
If you could provide us with a small, self-contained script that reproduces the issue, that would be great to help with debugging.
Cheers, Charl
On Mon, Nov 8, 2021, at 15:46, Nina Doorn wrote:
Dear all,
I wanted to let you know that I resolved the original problem (with building my own nest module in tvb-multiscale docker container). I have created my own docker image of the tvb-multiscale but with NEST 3.1 installed. In this container, I can easily install the example nest-extension module, exactly like is explained in the tutorial. Thus, the problem was indeed with the nest version.
Thank you all for your answers and help! However, now I have a different problem. So I am now working with (new setup) NEST 3.1 and python 3.9.2 instead of (old setup) NEST 2.18 on Python 3.7.3. I have a simple script to simulate the response of a few unconnected different aeif_cond_alpha_multisynapse neurons to a transient input current. If I run this script in the old setup, it works perfectly and runs in under a second. However, if I run it in the new setup, simulations take forever (I haven't been able to finish one).
Does anyone know if this could be attributable to a difference between nest 2 and nest 3 that I haven't incorporated into the script? Should I provide you with the entire script?
Thanks in advance! Kind regards, Nina
On Thu, Nov 4, 2021 at 3:19 PM Nina Doorn n.doorn@student.utwente.nl wrote:
Hi Hans,
Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential.
Is this possible to implement in NEST?
Best, Nina
On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model.
Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging.
Best, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear Hans,
Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards,
Nina
On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order
spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009
.. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model
for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,
Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple
neuron
types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Thanks and Regards
*Maryada*
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi,
The installation process of much software consists usually of configuring a build system (in NEST's case the pretty popular CMake) and then running the build (the command `make install`, runs the build that CMake configured to produce the "install" target. i.e. "installs NEST" the way CMake configured it).
Could you send us the CMake command that you ran and the output that it produced? Could you also send the make command you used and the full output that that produced? It's a bit like reading chicken bones but any message that appears to "pop out" of the ordinary background is worth reading and checking for warnings or errors. You can send these outputs as a txt attachment.
On Wed, 10 Nov 2021 at 14:31, Maryada Maryada er.maryada@gmail.com wrote:
Dear Nina, yes, just tested with two different neuron models (see attached).
Did you get any error messages? Also, did the test-suit after installation succeeded?
On Wed, Nov 10, 2021 at 11:58 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Maryada,
Thank you for the answer. For me, setting the simulation and recorder resolution is also not the problem. It works to set them (same result as you), but then running a simulation won't work. It does run, but it will never finish, while if I run the same in my old setup, it works perfectly. So for example, the short script:
nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) neuron = nest.Create("aeif_cond_alpha_multisynapse") nest.Simulate(1000.0)
won't ever finish.
Do you not experience this problem?
Best, Nina
On Wed, Nov 10, 2021 at 11:24 AM Maryada Maryada er.maryada@gmail.com wrote:
Hi Nina, For the simulation and recorder resolution, I recently used the same approach and it worked (I am also using NEST 3.0). See screenshot attached. You can't set recorder resolution smaller than simulation resolution which was the case in previous versions. For time, you now have to set biological_time using nest.SetKernelStatus({"biological_time": 0.})
Hope this helps.
On Wed, Nov 10, 2021 at 10:49 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Charl,
While trying to obtain the minimal code to reproduce the problem, I found out the problem disappears when I get rid of the setting of the timestep. At the beginning of the script, I have (because sometimes I want to have the timestep smaller): nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) And at the meters" TCmeter = nest.Create("multimeter",params={"interval": dt}) Although getting rid of this last part at the meters doesn't solve the problem.
In the documentation, I cannot find a change between nest 2.18 and nest 3.1 concerning the resolution. Did I miss something?
Also, setting the clock back to zero doesn't work anymore" nest.SetKernelStatus({'time':0.}) and I haven't found how I am supposed to do this in NEST 3.
I hope the question is clear. Thank you so much for all your help.
Best, Nina
On Mon, Nov 8, 2021 at 6:40 PM Charl Linssen < nest-users@turingbirds.com> wrote:
Dear Nina,
If you could provide us with a small, self-contained script that reproduces the issue, that would be great to help with debugging.
Cheers, Charl
On Mon, Nov 8, 2021, at 15:46, Nina Doorn wrote:
Dear all,
I wanted to let you know that I resolved the original problem (with building my own nest module in tvb-multiscale docker container). I have created my own docker image of the tvb-multiscale but with NEST 3.1 installed. In this container, I can easily install the example nest-extension module, exactly like is explained in the tutorial. Thus, the problem was indeed with the nest version.
Thank you all for your answers and help! However, now I have a different problem. So I am now working with (new setup) NEST 3.1 and python 3.9.2 instead of (old setup) NEST 2.18 on Python 3.7.3. I have a simple script to simulate the response of a few unconnected different aeif_cond_alpha_multisynapse neurons to a transient input current. If I run this script in the old setup, it works perfectly and runs in under a second. However, if I run it in the new setup, simulations take forever (I haven't been able to finish one).
Does anyone know if this could be attributable to a difference between nest 2 and nest 3 that I haven't incorporated into the script? Should I provide you with the entire script?
Thanks in advance! Kind regards, Nina
On Thu, Nov 4, 2021 at 3:19 PM Nina Doorn n.doorn@student.utwente.nl wrote:
Hi Hans,
Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential.
Is this possible to implement in NEST?
Best, Nina
On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model.
Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging.
Best, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear Hans,
Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards,
Nina
On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order
spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009
.. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model
for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,
Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple
neuron
types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Thanks and Regards
*Maryada*
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Thanks and Regards
*Maryada*
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi,
Thank you for the elaborate explanation, however I didn't explicitly execute these commands since I am using a docker image. I've built the image (docker build - < Dockerfile), of the following dockerfile: https://github.com/the-virtual-brain/tvb-multiscale/blob/parallelNEST31/dock... I don't think the output of building contains any useful information. If better, I could ask the developer of the dockerfile for help.
Maryada noted that conductance based models need gsl while current based models do not. Therefore I've tried the same little script with a current based model, but this also does not work. Could this mean the problem is not with gsl?
To provide you with some information; I did install the nest-extension-module with cmake and make install to test if it was possible to include my own neuron model. This is the output: [image: image.png] [image: image.png] [image: image.png]
On Wed, Nov 10, 2021 at 2:57 PM Robin Gilbert De Schepper < robingilbert.deschepper@unipv.it> wrote:
Hi,
The installation process of much software consists usually of configuring a build system (in NEST's case the pretty popular CMake) and then running the build (the command `make install`, runs the build that CMake configured to produce the "install" target. i.e. "installs NEST" the way CMake configured it).
Could you send us the CMake command that you ran and the output that it produced? Could you also send the make command you used and the full output that that produced? It's a bit like reading chicken bones but any message that appears to "pop out" of the ordinary background is worth reading and checking for warnings or errors. You can send these outputs as a txt attachment.
On Wed, 10 Nov 2021 at 14:31, Maryada Maryada er.maryada@gmail.com wrote:
Dear Nina, yes, just tested with two different neuron models (see attached).
Did you get any error messages? Also, did the test-suit after installation succeeded?
On Wed, Nov 10, 2021 at 11:58 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Maryada,
Thank you for the answer. For me, setting the simulation and recorder resolution is also not the problem. It works to set them (same result as you), but then running a simulation won't work. It does run, but it will never finish, while if I run the same in my old setup, it works perfectly. So for example, the short script:
nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) neuron = nest.Create("aeif_cond_alpha_multisynapse") nest.Simulate(1000.0)
won't ever finish.
Do you not experience this problem?
Best, Nina
On Wed, Nov 10, 2021 at 11:24 AM Maryada Maryada er.maryada@gmail.com wrote:
Hi Nina, For the simulation and recorder resolution, I recently used the same approach and it worked (I am also using NEST 3.0). See screenshot attached. You can't set recorder resolution smaller than simulation resolution which was the case in previous versions. For time, you now have to set biological_time using nest.SetKernelStatus({"biological_time": 0.})
Hope this helps.
On Wed, Nov 10, 2021 at 10:49 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Charl,
While trying to obtain the minimal code to reproduce the problem, I found out the problem disappears when I get rid of the setting of the timestep. At the beginning of the script, I have (because sometimes I want to have the timestep smaller): nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) And at the meters" TCmeter = nest.Create("multimeter",params={"interval": dt}) Although getting rid of this last part at the meters doesn't solve the problem.
In the documentation, I cannot find a change between nest 2.18 and nest 3.1 concerning the resolution. Did I miss something?
Also, setting the clock back to zero doesn't work anymore" nest.SetKernelStatus({'time':0.}) and I haven't found how I am supposed to do this in NEST 3.
I hope the question is clear. Thank you so much for all your help.
Best, Nina
On Mon, Nov 8, 2021 at 6:40 PM Charl Linssen < nest-users@turingbirds.com> wrote:
Dear Nina,
If you could provide us with a small, self-contained script that reproduces the issue, that would be great to help with debugging.
Cheers, Charl
On Mon, Nov 8, 2021, at 15:46, Nina Doorn wrote:
Dear all,
I wanted to let you know that I resolved the original problem (with building my own nest module in tvb-multiscale docker container). I have created my own docker image of the tvb-multiscale but with NEST 3.1 installed. In this container, I can easily install the example nest-extension module, exactly like is explained in the tutorial. Thus, the problem was indeed with the nest version.
Thank you all for your answers and help! However, now I have a different problem. So I am now working with (new setup) NEST 3.1 and python 3.9.2 instead of (old setup) NEST 2.18 on Python 3.7.3. I have a simple script to simulate the response of a few unconnected different aeif_cond_alpha_multisynapse neurons to a transient input current. If I run this script in the old setup, it works perfectly and runs in under a second. However, if I run it in the new setup, simulations take forever (I haven't been able to finish one).
Does anyone know if this could be attributable to a difference between nest 2 and nest 3 that I haven't incorporated into the script? Should I provide you with the entire script?
Thanks in advance! Kind regards, Nina
On Thu, Nov 4, 2021 at 3:19 PM Nina Doorn n.doorn@student.utwente.nl wrote:
Hi Hans,
Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential.
Is this possible to implement in NEST?
Best, Nina
On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model.
Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging.
Best, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear Hans,
Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards,
Nina
On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order
spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009
.. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model
for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,
Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple
neuron
types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Thanks and Regards
*Maryada*
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Thanks and Regards
*Maryada*
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Robin De Schepper, MSc Department of Brain and Behavioral Sciences Unit of Neurophysiology University of Pavia, Italy Via Forlanini 6, 27100 Pavia - Italy Tel: (+39) 038298-7607 http://www-5.unipv.it/dangelo/
Interested in network modelling? Discover our framework https://github.com/dbbs-lab/bsb: https://github.com/dbbs-lab/bsb _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi,
I built the Docker image from the Dockerfile you linked, and can run NEST simulations without trouble, using the command:
(neurosci) docker@7d2a1109aa04:~$ LD_LIBRARY_PATH=/home/docker/env/neurosci/nest_build/lib/nest PYTHONPATH=/home/docker/env/neurosci/nest_build/lib/python3.9/site-packages ipython3
Perhaps it could help to clear your local caches and do a fresh build of the Docker image.
All the best, Charl
On Wed, Nov 10, 2021, at 15:21, Nina Doorn wrote:
Hi,
Thank you for the elaborate explanation, however I didn't explicitly execute these commands since I am using a docker image. I've built the image (docker build - < Dockerfile), of the following dockerfile: https://github.com/the-virtual-brain/tvb-multiscale/blob/parallelNEST31/dock... I don't think the output of building contains any useful information. If better, I could ask the developer of the dockerfile for help.
Maryada noted that conductance based models need gsl while current based models do not. Therefore I've tried the same little script with a current based model, but this also does not work. Could this mean the problem is not with gsl?
To provide you with some information; I did install the nest-extension-module with cmake and make install to test if it was possible to include my own neuron model. This is the output: image.png image.png image.png
On Wed, Nov 10, 2021 at 2:57 PM Robin Gilbert De Schepper robingilbert.deschepper@unipv.it wrote:
Hi,
The installation process of much software consists usually of configuring a build system (in NEST's case the pretty popular CMake) and then running the build (the command `make install`, runs the build that CMake configured to produce the "install" target. i.e. "installs NEST" the way CMake configured it).
Could you send us the CMake command that you ran and the output that it produced? Could you also send the make command you used and the full output that that produced? It's a bit like reading chicken bones but any message that appears to "pop out" of the ordinary background is worth reading and checking for warnings or errors. You can send these outputs as a txt attachment.
On Wed, 10 Nov 2021 at 14:31, Maryada Maryada er.maryada@gmail.com wrote:
Dear Nina, yes, just tested with two different neuron models (see attached).
Did you get any error messages? Also, did the test-suit after installation succeeded?
On Wed, Nov 10, 2021 at 11:58 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Maryada,
Thank you for the answer. For me, setting the simulation and recorder resolution is also not the problem. It works to set them (same result as you), but then running a simulation won't work. It does run, but it will never finish, while if I run the same in my old setup, it works perfectly. So for example, the short script:
nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) neuron = nest.Create("aeif_cond_alpha_multisynapse") nest.Simulate(1000.0)
won't ever finish.
Do you not experience this problem?
Best, Nina
On Wed, Nov 10, 2021 at 11:24 AM Maryada Maryada er.maryada@gmail.com wrote:
Hi Nina, For the simulation and recorder resolution, I recently used the same approach and it worked (I am also using NEST 3.0). See screenshot attached. You can't set recorder resolution smaller than simulation resolution which was the case in previous versions. For time, you now have to set biological_time using nest.SetKernelStatus({"biological_time": 0.})
Hope this helps.
On Wed, Nov 10, 2021 at 10:49 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Charl,
While trying to obtain the minimal code to reproduce the problem, I found out the problem disappears when I get rid of the setting of the timestep. At the beginning of the script, I have (because sometimes I want to have the timestep smaller): nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) And at the meters" TCmeter = nest.Create("multimeter",params={"interval": dt}) Although getting rid of this last part at the meters doesn't solve the problem. In the documentation, I cannot find a change between nest 2.18 and nest 3.1 concerning the resolution. Did I miss something?
Also, setting the clock back to zero doesn't work anymore" nest.SetKernelStatus({'time':0.}) and I haven't found how I am supposed to do this in NEST 3.
I hope the question is clear. Thank you so much for all your help.
Best, Nina
On Mon, Nov 8, 2021 at 6:40 PM Charl Linssen nest-users@turingbirds.com wrote: > __ > Dear Nina, > > If you could provide us with a small, self-contained script that reproduces the issue, that would be great to help with debugging. > > Cheers, > Charl > > > On Mon, Nov 8, 2021, at 15:46, Nina Doorn wrote: >> Dear all, >> >> I wanted to let you know that I resolved the original problem (with building my own nest module in tvb-multiscale docker container). >> I have created my own docker image of the tvb-multiscale but with NEST 3.1 installed. In this container, I can easily install the example nest-extension module, exactly like is explained in the tutorial. Thus, the problem was indeed with the nest version. >> >> Thank you all for your answers and help! >> However, now I have a different problem. So I am now working with (new setup) NEST 3.1 and python 3.9.2 instead of (old setup) NEST 2.18 on Python 3.7.3. I have a simple script to simulate the response of a few unconnected different aeif_cond_alpha_multisynapse neurons to a transient input current. If I run this script in the old setup, it works perfectly and runs in under a second. However, if I run it in the new setup, simulations take forever (I haven't been able to finish one). >> >> Does anyone know if this could be attributable to a difference between nest 2 and nest 3 that I haven't incorporated into the script? >> Should I provide you with the entire script? >> >> Thanks in advance! >> Kind regards, >> Nina >> >> On Thu, Nov 4, 2021 at 3:19 PM Nina Doorn n.doorn@student.utwente.nl wrote: >>> Hi Hans, >>> >>> Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential. >>> >>> Is this possible to implement in NEST? >>> >>> Best, >>> Nina >>> >>> >>> On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser hans.ekkehard.plesser@nmbu.no wrote: >>>> __ __ >>>> >>>> Dear Nina, >>>> >>>> New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model. >>>> >>>> Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging. >>>> >>>> Best, >>>> Hans Ekkehard ____ >>>> >>>> __ __ >>>> >>>> __ __ >>>> >>>> --____ >>>> >>>> __ __ >>>> >>>> Prof. Dr. Hans Ekkehard Plesser____ >>>> >>>> Head, Department of Data Science____ >>>> >>>> ____ >>>> >>>> Faculty of Science and Technology____ >>>> >>>> Norwegian University of Life Sciences____ >>>> >>>> PO Box 5003, 1432 Aas, Norway____ >>>> >>>> ____ >>>> >>>> Phone +47 6723 1560____ >>>> >>>> Email hans.ekkehard.plesser@nmbu.no____ >>>> >>>> Home http://arken.nmbu.no/~plesser____ >>>> >>>> ____ >>>> >>>> __ __ >>>> >>>> __ __ >>>> >>>> On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:____ >>>> >>>> __ __ >>>> >>>> Dear Hans,____ >>>> >>>> __ __ >>>> >>>> >>>> >>>> Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory. >>>> >>>> Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors. >>>> >>>> Thanks again and have a nice day! >>>> Kind regards,____ >>>> >>>> >>>> Nina ____ >>>> >>>> __ __ >>>> >>>> On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser hans.ekkehard.plesser@nmbu.no wrote:____ >>>> >>>>> ____ >>>>> >>>>> Dear Nina,____ >>>>> >>>>> ____ >>>>> >>>>> The first error is____ >>>>> >>>>> ____ >>>>> >>>>> >>>>> >>>>> In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: >>>>> /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token >>>>> { >>>>> ^____ >>>>> >>>>> >>>>> ____ >>>>> >>>>> and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?____ >>>>> >>>>> ____ >>>>> >>>>> There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.____ >>>>> >>>>> ____ >>>>> >>>>> BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See ____ >>>>> >>>>> ____ >>>>> >>>>> .. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order____ >>>>> >>>>> spiking neuron model equipped with a multi-timescale adaptive____ >>>>> >>>>> threshold. Frontiers in Computational Neuroscience, 3:9.____ >>>>> >>>>> DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009____ >>>>> >>>>> .. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model____ >>>>> >>>>> for reproducing diverse firing patterns and predicting precise____ >>>>> >>>>> firing times. Frontiers in Computational Neuroscience, 5:42.____ >>>>> >>>>> DOI: https://doi.org/10.3389/fncom.2011.00042____ >>>>> >>>>> ____ >>>>> >>>>> We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see ____ >>>>> >>>>> ____ >>>>> >>>>> .. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,____ >>>>> >>>>> Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018)____ >>>>> >>>>> Generalized leaky integrate-and-fire models classify multiple neuron____ >>>>> >>>>> types. Nature Communications 9:709.____ >>>>> >>>>> ____ >>>>> >>>>> These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see____ >>>>> >>>>> ____ >>>>> >>>>> Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046____ >>>>> >>>>> ____ >>>>> >>>>> Best regards,____ >>>>> >>>>> Hans Ekkehard____ >>>>> >>>>> ____ >>>>> >>>>> --____ >>>>> >>>>> ____ >>>>> >>>>> Prof. Dr. Hans Ekkehard Plesser____ >>>>> >>>>> Head, Department of Data Science____ >>>>> >>>>> ____ >>>>> >>>>> Faculty of Science and Technology____ >>>>> >>>>> Norwegian University of Life Sciences____ >>>>> >>>>> PO Box 5003, 1432 Aas, Norway____ >>>>> >>>>> ____ >>>>> >>>>> Phone +47 6723 1560____ >>>>> >>>>> Email hans.ekkehard.plesser@nmbu.no____ >>>>> >>>>> Home http://arken.nmbu.no/~plesser____ >>>>> >>>>> ____ >>>>> >>>>> ____ >>>>> >>>>> ____ >>>>> >>>>> On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:____ >>>>> >>>>> ____ >>>>> >>>>> Dear experts,____ >>>>> >>>>> ____ >>>>> >>>>> >>>>> >>>>> To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module . >>>>> >>>>> I am working with the tvb-multiscale docker container (https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3. >>>>> >>>>> I've succesfully "made" the module with:____ >>>>> >>>>> >>>>>> docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master____ >>>>>> >>>>> It gives me the message:____ >>>>> >>>>>> >>>>>> >>>>>> You can now build and install 'mymodule' using >>>>>> make >>>>>> make install >>>>>> The library file libmymodule.so will be installed to >>>>>> /home/docker/env/neurosci/nest_build/lib/nest/ >>>>>> Help files will be installed to >>>>>> /home/docker/env/neurosci/nest_build/share/doc/nest >>>>>> The module can be loaded into NEST using >>>>>> nest.Install('mymodule') (in PyNEST) >>>>>> (mymodule) Install (in SLI >>>>>> -- Configuring done >>>>>> -- Generating done >>>>>> -- Build files have been written to: /home/docker/mmb____ >>>>>> >>>>>> >>>>> ____ >>>>> >>>>> >>>>> >>>>> However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know. >>>>> >>>>> Thank you in advance and have a nice day! >>>>> Kind regards, >>>>> Nina Doorn >>>>> >>>>> >>>>> Error message:____ >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> docker@84fabd16af99:~/mmb$ make >>>>> Scanning dependencies of target mymodule_module >>>>> [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o >>>>> In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: >>>>> /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token >>>>> { >>>>> ^ >>>>> /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type ____ >>>>> >>>>> >>>>> ____ >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> NEST Users mailing list -- users@nest-simulator.org >>>>> To unsubscribe send an email to users-leave@nest-simulator.org____ >>>>> >>>>> >>>> _______________________________________________ >>>> NEST Users mailing list -- users@nest-simulator.org >>>> To unsubscribe send an email to users-leave@nest-simulator.org >> _______________________________________________ >> NEST Users mailing list -- users@nest-simulator.org >> To unsubscribe send an email to users-leave@nest-simulator.org >> > > _______________________________________________ > NEST Users mailing list -- users@nest-simulator.org > To unsubscribe send an email to users-leave@nest-simulator.org _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Thanks and Regards
*Maryada*
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Thanks and Regards
*Maryada*
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Robin De Schepper, MSc Department of Brain and Behavioral Sciences Unit of Neurophysiology University of Pavia, Italy Via Forlanini 6, 27100 Pavia - Italy Tel: (+39) 038298-7607 http://www-5.unipv.it/dangelo/
Interested in network modelling? Discover our framework https://github.com/dbbs-lab/bsb:
https://github.com/dbbs-lab/bsb
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi Charl,
Thank you so much!! This worked! And thanks everyone for the help.
Have a nice day! Kind regards, Nina
On Thu, Nov 11, 2021 at 6:46 AM Charl Linssen nest-users@turingbirds.com wrote:
Hi,
I built the Docker image from the Dockerfile you linked, and can run NEST simulations without trouble, using the command:
(neurosci) docker@7d2a1109aa04:~$ LD_LIBRARY_PATH=/home/docker/env/neurosci/nest_build/lib/nest PYTHONPATH=/home/docker/env/neurosci/nest_build/lib/python3.9/site-packages ipython3
Perhaps it could help to clear your local caches and do a fresh build of the Docker image.
All the best, Charl
On Wed, Nov 10, 2021, at 15:21, Nina Doorn wrote:
Hi,
Thank you for the elaborate explanation, however I didn't explicitly execute these commands since I am using a docker image. I've built the image (docker build - < Dockerfile), of the following dockerfile: https://github.com/the-virtual-brain/tvb-multiscale/blob/parallelNEST31/dock... I don't think the output of building contains any useful information. If better, I could ask the developer of the dockerfile for help.
Maryada noted that conductance based models need gsl while current based models do not. Therefore I've tried the same little script with a current based model, but this also does not work. Could this mean the problem is not with gsl?
To provide you with some information; I did install the nest-extension-module with cmake and make install to test if it was possible to include my own neuron model. This is the output: [image: image.png] [image: image.png] [image: image.png]
On Wed, Nov 10, 2021 at 2:57 PM Robin Gilbert De Schepper < robingilbert.deschepper@unipv.it> wrote:
Hi,
The installation process of much software consists usually of configuring a build system (in NEST's case the pretty popular CMake) and then running the build (the command `make install`, runs the build that CMake configured to produce the "install" target. i.e. "installs NEST" the way CMake configured it).
Could you send us the CMake command that you ran and the output that it produced? Could you also send the make command you used and the full output that that produced? It's a bit like reading chicken bones but any message that appears to "pop out" of the ordinary background is worth reading and checking for warnings or errors. You can send these outputs as a txt attachment.
On Wed, 10 Nov 2021 at 14:31, Maryada Maryada er.maryada@gmail.com wrote:
Dear Nina, yes, just tested with two different neuron models (see attached).
Did you get any error messages? Also, did the test-suit after installation succeeded?
On Wed, Nov 10, 2021 at 11:58 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Maryada,
Thank you for the answer. For me, setting the simulation and recorder resolution is also not the problem. It works to set them (same result as you), but then running a simulation won't work. It does run, but it will never finish, while if I run the same in my old setup, it works perfectly. So for example, the short script:
nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) neuron = nest.Create("aeif_cond_alpha_multisynapse") nest.Simulate(1000.0)
won't ever finish.
Do you not experience this problem?
Best, Nina
On Wed, Nov 10, 2021 at 11:24 AM Maryada Maryada er.maryada@gmail.com wrote:
Hi Nina, For the simulation and recorder resolution, I recently used the same approach and it worked (I am also using NEST 3.0). See screenshot attached. You can't set recorder resolution smaller than simulation resolution which was the case in previous versions. For time, you now have to set biological_time using nest.SetKernelStatus({"biological_time": 0.})
Hope this helps.
On Wed, Nov 10, 2021 at 10:49 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Charl,
While trying to obtain the minimal code to reproduce the problem, I found out the problem disappears when I get rid of the setting of the timestep. At the beginning of the script, I have (because sometimes I want to have the timestep smaller): nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) And at the meters" TCmeter = nest.Create("multimeter",params={"interval": dt}) Although getting rid of this last part at the meters doesn't solve the problem. In the documentation, I cannot find a change between nest 2.18 and nest 3.1 concerning the resolution. Did I miss something?
Also, setting the clock back to zero doesn't work anymore" nest.SetKernelStatus({'time':0.}) and I haven't found how I am supposed to do this in NEST 3.
I hope the question is clear. Thank you so much for all your help.
Best, Nina
On Mon, Nov 8, 2021 at 6:40 PM Charl Linssen nest-users@turingbirds.com wrote:
Dear Nina,
If you could provide us with a small, self-contained script that reproduces the issue, that would be great to help with debugging.
Cheers, Charl
On Mon, Nov 8, 2021, at 15:46, Nina Doorn wrote:
Dear all,
I wanted to let you know that I resolved the original problem (with building my own nest module in tvb-multiscale docker container). I have created my own docker image of the tvb-multiscale but with NEST 3.1 installed. In this container, I can easily install the example nest-extension module, exactly like is explained in the tutorial. Thus, the problem was indeed with the nest version.
Thank you all for your answers and help! However, now I have a different problem. So I am now working with (new setup) NEST 3.1 and python 3.9.2 instead of (old setup) NEST 2.18 on Python 3.7.3. I have a simple script to simulate the response of a few unconnected different aeif_cond_alpha_multisynapse neurons to a transient input current. If I run this script in the old setup, it works perfectly and runs in under a second. However, if I run it in the new setup, simulations take forever (I haven't been able to finish one).
Does anyone know if this could be attributable to a difference between nest 2 and nest 3 that I haven't incorporated into the script? Should I provide you with the entire script?
Thanks in advance! Kind regards, Nina
On Thu, Nov 4, 2021 at 3:19 PM Nina Doorn n.doorn@student.utwente.nl wrote:
Hi Hans,
Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential.
Is this possible to implement in NEST?
Best, Nina
On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model.
Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging.
Best, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear Hans,
Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards,
Nina
On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order
spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009
.. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model
for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,
Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple
neuron
types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Thanks and Regards
*Maryada*
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Thanks and Regards
*Maryada*
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Robin De Schepper, MSc Department of Brain and Behavioral Sciences Unit of Neurophysiology University of Pavia, Italy Via Forlanini 6, 27100 Pavia - Italy Tel: (+39) 038298-7607 http://www-5.unipv.it/dangelo/
Interested in network modelling? Discover our framework https://github.com/dbbs-lab/bsb: https://github.com/dbbs-lab/bsb _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi,
I double-checked, but on both NEST 3.1 and latest master, the little script you posted finishes within a second. It's somewhat disturbing that you are experiencing this issue; perhaps this could point to something wrong with the installation. Could you check that you have the GSL library installed, and that NEST finds it during the CMake configuration?
Use GSL : Yes (GSL 2.6)
Cheers, Charl
On Wed, Nov 10, 2021, at 11:58, Nina Doorn wrote:
Dear Maryada,
Thank you for the answer. For me, setting the simulation and recorder resolution is also not the problem. It works to set them (same result as you), but then running a simulation won't work. It does run, but it will never finish, while if I run the same in my old setup, it works perfectly. So for example, the short script:
nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) neuron = nest.Create("aeif_cond_alpha_multisynapse") nest.Simulate(1000.0)
won't ever finish.
Do you not experience this problem?
Best, Nina
On Wed, Nov 10, 2021 at 11:24 AM Maryada Maryada er.maryada@gmail.com wrote:
Hi Nina, For the simulation and recorder resolution, I recently used the same approach and it worked (I am also using NEST 3.0). See screenshot attached. You can't set recorder resolution smaller than simulation resolution which was the case in previous versions. For time, you now have to set biological_time using nest.SetKernelStatus({"biological_time": 0.})
Hope this helps.
On Wed, Nov 10, 2021 at 10:49 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Charl,
While trying to obtain the minimal code to reproduce the problem, I found out the problem disappears when I get rid of the setting of the timestep. At the beginning of the script, I have (because sometimes I want to have the timestep smaller): nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) And at the meters" TCmeter = nest.Create("multimeter",params={"interval": dt}) Although getting rid of this last part at the meters doesn't solve the problem. In the documentation, I cannot find a change between nest 2.18 and nest 3.1 concerning the resolution. Did I miss something?
Also, setting the clock back to zero doesn't work anymore" nest.SetKernelStatus({'time':0.}) and I haven't found how I am supposed to do this in NEST 3.
I hope the question is clear. Thank you so much for all your help.
Best, Nina
On Mon, Nov 8, 2021 at 6:40 PM Charl Linssen nest-users@turingbirds.com wrote:
__ Dear Nina,
If you could provide us with a small, self-contained script that reproduces the issue, that would be great to help with debugging.
Cheers, Charl
On Mon, Nov 8, 2021, at 15:46, Nina Doorn wrote:
Dear all,
I wanted to let you know that I resolved the original problem (with building my own nest module in tvb-multiscale docker container). I have created my own docker image of the tvb-multiscale but with NEST 3.1 installed. In this container, I can easily install the example nest-extension module, exactly like is explained in the tutorial. Thus, the problem was indeed with the nest version.
Thank you all for your answers and help! However, now I have a different problem. So I am now working with (new setup) NEST 3.1 and python 3.9.2 instead of (old setup) NEST 2.18 on Python 3.7.3. I have a simple script to simulate the response of a few unconnected different aeif_cond_alpha_multisynapse neurons to a transient input current. If I run this script in the old setup, it works perfectly and runs in under a second. However, if I run it in the new setup, simulations take forever (I haven't been able to finish one).
Does anyone know if this could be attributable to a difference between nest 2 and nest 3 that I haven't incorporated into the script? Should I provide you with the entire script?
Thanks in advance! Kind regards, Nina
On Thu, Nov 4, 2021 at 3:19 PM Nina Doorn n.doorn@student.utwente.nl wrote:
Hi Hans,
Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential.
Is this possible to implement in NEST?
Best, Nina
On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser hans.ekkehard.plesser@nmbu.no wrote: > __ __ > > Dear Nina, > > New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model. > > Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging. > > Best, > Hans Ekkehard ____ > > __ __ > > __ __ > > --____ > > __ __ > > Prof. Dr. Hans Ekkehard Plesser____ > > Head, Department of Data Science____ > > ____ > > Faculty of Science and Technology____ > > Norwegian University of Life Sciences____ > > PO Box 5003, 1432 Aas, Norway____ > > ____ > > Phone +47 6723 1560____ > > Email hans.ekkehard.plesser@nmbu.no____ > > Home http://arken.nmbu.no/~plesser____ > > ____ > > __ __ > > __ __ > > On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:____ > > __ __ > > Dear Hans,____ > > __ __ > > > > Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory. > > Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors. > > Thanks again and have a nice day! > Kind regards,____ > > > Nina ____ > > __ __ > > On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser hans.ekkehard.plesser@nmbu.no wrote:____ > >> ____ >> >> Dear Nina,____ >> >> ____ >> >> The first error is____ >> >> ____ >> >> >> >> In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: >> /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token >> { >> ^____ >> >> >> ____ >> >> and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?____ >> >> ____ >> >> There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.____ >> >> ____ >> >> BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See ____ >> >> ____ >> >> .. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order____ >> >> spiking neuron model equipped with a multi-timescale adaptive____ >> >> threshold. Frontiers in Computational Neuroscience, 3:9.____ >> >> DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009____ >> >> .. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model____ >> >> for reproducing diverse firing patterns and predicting precise____ >> >> firing times. Frontiers in Computational Neuroscience, 5:42.____ >> >> DOI: https://doi.org/10.3389/fncom.2011.00042____ >> >> ____ >> >> We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see ____ >> >> ____ >> >> .. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,____ >> >> Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018)____ >> >> Generalized leaky integrate-and-fire models classify multiple neuron____ >> >> types. Nature Communications 9:709.____ >> >> ____ >> >> These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see____ >> >> ____ >> >> Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046____ >> >> ____ >> >> Best regards,____ >> >> Hans Ekkehard____ >> >> ____ >> >> --____ >> >> ____ >> >> Prof. Dr. Hans Ekkehard Plesser____ >> >> Head, Department of Data Science____ >> >> ____ >> >> Faculty of Science and Technology____ >> >> Norwegian University of Life Sciences____ >> >> PO Box 5003, 1432 Aas, Norway____ >> >> ____ >> >> Phone +47 6723 1560____ >> >> Email hans.ekkehard.plesser@nmbu.no____ >> >> Home http://arken.nmbu.no/~plesser____ >> >> ____ >> >> ____ >> >> ____ >> >> On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:____ >> >> ____ >> >> Dear experts,____ >> >> ____ >> >> >> >> To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module . >> >> I am working with the tvb-multiscale docker container (https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3. >> >> I've succesfully "made" the module with:____ >> >> >>> docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master____ >>> >> It gives me the message:____ >> >>> >>> >>> You can now build and install 'mymodule' using >>> make >>> make install >>> The library file libmymodule.so will be installed to >>> /home/docker/env/neurosci/nest_build/lib/nest/ >>> Help files will be installed to >>> /home/docker/env/neurosci/nest_build/share/doc/nest >>> The module can be loaded into NEST using >>> nest.Install('mymodule') (in PyNEST) >>> (mymodule) Install (in SLI >>> -- Configuring done >>> -- Generating done >>> -- Build files have been written to: /home/docker/mmb____ >>> >>> >> ____ >> >> >> >> However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know. >> >> Thank you in advance and have a nice day! >> Kind regards, >> Nina Doorn >> >> >> Error message:____ >> >> >> >> >> >> docker@84fabd16af99:~/mmb$ make >> Scanning dependencies of target mymodule_module >> [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o >> In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: >> /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token >> { >> ^ >> /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type ____ >> >> >> ____ >> >> >> >> _______________________________________________ >> NEST Users mailing list -- users@nest-simulator.org >> To unsubscribe send an email to users-leave@nest-simulator.org____ >> >> > _______________________________________________ > NEST Users mailing list -- users@nest-simulator.org > To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Thanks and Regards
*Maryada*
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi Charl,
Thank you for the help. How should I check if it is installed and if NEST finds it?
I cannot find it so far, what I've been able to find is:
(neurosci) docker@de363c07d0ce:~$ apt show gsl Package: gsl State: not a real package (virtual)
I'm sorry I don't know much about these things 😅.
Cheers :)
On Wed, Nov 10, 2021 at 1:36 PM Charl Linssen nest-users@turingbirds.com wrote:
Hi,
I double-checked, but on both NEST 3.1 and latest master, the little script you posted finishes within a second. It's somewhat disturbing that you are experiencing this issue; perhaps this could point to something wrong with the installation. Could you check that you have the GSL library installed, and that NEST finds it during the CMake configuration?
Use GSL : Yes (GSL 2.6)
Cheers, Charl
On Wed, Nov 10, 2021, at 11:58, Nina Doorn wrote:
Dear Maryada,
Thank you for the answer. For me, setting the simulation and recorder resolution is also not the problem. It works to set them (same result as you), but then running a simulation won't work. It does run, but it will never finish, while if I run the same in my old setup, it works perfectly. So for example, the short script:
nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) neuron = nest.Create("aeif_cond_alpha_multisynapse") nest.Simulate(1000.0)
won't ever finish.
Do you not experience this problem?
Best, Nina
On Wed, Nov 10, 2021 at 11:24 AM Maryada Maryada er.maryada@gmail.com wrote:
Hi Nina, For the simulation and recorder resolution, I recently used the same approach and it worked (I am also using NEST 3.0). See screenshot attached. You can't set recorder resolution smaller than simulation resolution which was the case in previous versions. For time, you now have to set biological_time using nest.SetKernelStatus({"biological_time": 0.})
Hope this helps.
On Wed, Nov 10, 2021 at 10:49 AM Nina Doorn n.doorn@student.utwente.nl wrote:
Dear Charl,
While trying to obtain the minimal code to reproduce the problem, I found out the problem disappears when I get rid of the setting of the timestep. At the beginning of the script, I have (because sometimes I want to have the timestep smaller): nest.ResetKernel() dt = 0.1 nest.SetKernelStatus({"resolution": dt, "print_time": True}) And at the meters" TCmeter = nest.Create("multimeter",params={"interval": dt}) Although getting rid of this last part at the meters doesn't solve the problem. In the documentation, I cannot find a change between nest 2.18 and nest 3.1 concerning the resolution. Did I miss something?
Also, setting the clock back to zero doesn't work anymore" nest.SetKernelStatus({'time':0.}) and I haven't found how I am supposed to do this in NEST 3.
I hope the question is clear. Thank you so much for all your help.
Best, Nina
On Mon, Nov 8, 2021 at 6:40 PM Charl Linssen nest-users@turingbirds.com wrote:
Dear Nina,
If you could provide us with a small, self-contained script that reproduces the issue, that would be great to help with debugging.
Cheers, Charl
On Mon, Nov 8, 2021, at 15:46, Nina Doorn wrote:
Dear all,
I wanted to let you know that I resolved the original problem (with building my own nest module in tvb-multiscale docker container). I have created my own docker image of the tvb-multiscale but with NEST 3.1 installed. In this container, I can easily install the example nest-extension module, exactly like is explained in the tutorial. Thus, the problem was indeed with the nest version.
Thank you all for your answers and help! However, now I have a different problem. So I am now working with (new setup) NEST 3.1 and python 3.9.2 instead of (old setup) NEST 2.18 on Python 3.7.3. I have a simple script to simulate the response of a few unconnected different aeif_cond_alpha_multisynapse neurons to a transient input current. If I run this script in the old setup, it works perfectly and runs in under a second. However, if I run it in the new setup, simulations take forever (I haven't been able to finish one).
Does anyone know if this could be attributable to a difference between nest 2 and nest 3 that I haven't incorporated into the script? Should I provide you with the entire script?
Thanks in advance! Kind regards, Nina
On Thu, Nov 4, 2021 at 3:19 PM Nina Doorn n.doorn@student.utwente.nl wrote:
Hi Hans,
Thank you for letting me know. NMDA receptor conductivity depends on the membrane potential of the post-synaptic neuron (because of the receptor blocking with a magnesium ion). So I would like to multiplicate the NMDA current by a factor which depends on the post-synaptic membrane potential.
Is this possible to implement in NEST?
Best, Nina
On Thu, Nov 4, 2021 at 2:38 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
New synaptic dynamics can be added to existing neuron models, mostly independent of the membrane potential dynamics of the model.
Concerning non-linear NMDA synapses, depending on what kind of non-linearity you want to imlement (just voltage gating or also non-linear interaction between different synapses onto a given neuron), achieving an efficient implementation can be challenging.
Best, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 14:11, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear Hans,
Thank you for the quick response. Yes I am trying to install the example module exactly as cloned from Github, I haven't altered anything. I think the problem might be indeed as Charl described. But it still could be that it is also a problem that the config.h file is not in the source directory.
Thank you very much for the information on the other models! That is very useful! I will definitely take a look at the first model (since parameters are available for different types of thalamic neurons). However, I want to model, besides AMPA and GABA receptors, NMDA receptors. I know modelling actual non-linear NMDA receptors is not possible with the available NEST models. However, what I have done so far with the aeif_cond_beta_multisynapse, is to define different receptors with different time constants corresponding to AMPA, NMDA and GABA post-synaptic potentials. This would not be possible with the NEST models you mention above. However, I will definitely take a look at them and re-evaluate the importance of modelling these different beta-synapse receptors.
Thanks again and have a nice day! Kind regards,
Nina
On Thu, Nov 4, 2021 at 1:23 PM Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Nina,
The first error is
In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^
and it looks a lot like everything following are consequences of this error. So if looks as if something may be off in the pif_psc_alpha.h file around lines 90-92. Are you trying to compile the example module exactly as cloned from Github or have you made any changes to the code?
There could also be a small chance of problems "spilling" from the config.h file, which is in the build (not source) directory. That could explain why you experience problems using the docker container, while all works for your colleagues using Linux.
BTW, do you know the adaptive multi-timescale models from the Shinomoto group (amat2_exp_psc), which can reproduce the same 20 response patterns as the Izhikevich model, but are mathematically simpler as they are linear? See
.. [3] Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order
spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computational Neuroscience, 3:9. DOI: https://dx.doi.org/10.3389%2Fneuro.10.009.2009
.. [4] Yamauchi S, Kim H, Shinomoto S (2011). Elemental spiking neuron model
for reproducing diverse firing patterns and predicting precise firing times. Frontiers in Computational Neuroscience, 5:42. DOI: https://doi.org/10.3389/fncom.2011.00042
We also have the glif model families from the Allen institute available in NEST (glif_cond, glif_psc), see
.. [1] Teeter C, Iyer R, Menon V, Gouwens N, Feng D, Berg J, Szafer A,
Cain N, Zeng H, Hawrylycz M, Koch C, & Mihalas S (2018) Generalized leaky integrate-and-fire models classify multiple
neuron
types. Nature Communications 9:709.
These may be more up-to-date alternatives to the Izhikevich model. For some experiences with that model, see
Pauli R, Weidel P, Kunkel S and Morrison A (2018) Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models. *Front. Neuroinform*. 12:46. doi: 10.3389/fninf.2018.00046
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
On 04/11/2021, 11:55, "Nina Doorn" n.doorn@student.utwente.nl wrote:
Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to adapt the Izhikevich neuron model to account for the behavior of thalamocortical neurons. Before I do this, I wanted to test if it was possible to install an extension module in my setup. Therefore I followed these steps: https://nest-extension-module.readthedocs.io/en/latest/extension_modules.htm... to install this example nest-extension-module: https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container ( https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisca...) in VScode on windows. I've been working with this succesfully and easily managed to make thalamus models with the available aeIF neuron model of NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake -Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config ../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule' using make make install The library file libmymodule.so will be installed to /home/docker/env/neurosci/nest_build/lib/nest/ Help files will be installed to /home/docker/env/neurosci/nest_build/share/doc/nest The module can be loaded into NEST using nest.Install('mymodule') (in PyNEST) (mymodule) Install (in SLI -- Configuring done -- Generating done -- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at the end of this email. My colleague tried to install exactly the same module in exactly the same way on his linux machine and it worked perfectly. But somehow for me, I get these weird errors that I haven't been able to resolve so far. Does anyone have an idea what the problem might be? It would be greatly appreciated. If you need any additional information please let me know.
Thank you in advance and have a nice day! Kind regards, Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make Scanning dependencies of target mymodule_module [ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o In file included from /home/docker/nest-extension-module-master/src/mymodule.cpp:30: /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error: expected class-name before ‘{’ token { ^ /home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21: error: type ‘nest::Node’ is not a base type for type
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Thanks and Regards
*Maryada*
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org