Thursday, September 23, 2010

Finally: Network Modeling

Thu Sep 23 15:06:12 CEST 2010

After many struggles, a couple of rewrites from scratch of the discrete event system (DES), we recently got our first network model completely working. The spiker3 network which was already available as a low-level Heccer / DES test case, was converted to a high-level NDF model and then instantiated and run from SSP. Although it is a very simple test case with only one source and two target neurons, it proves that all low-level components are instantiated for correct simulation of this network model. Note that the model-container presents an abstraction of the model to DES making it transparant whether it is a network of multicompartmental neurons or of more abstract neuron models. I will equip SSP with a couple of network simulation templates (and likely will need to do some debugging here and there). But running network models with different stimulation protocols from a unix shell command line will now become easier than ever. Afterwards it will also become trivial to add commands for network models to the gshell.

From the technical point of view this means that the core functionality of the Neurospaces based simulation architecture has been finished. Documentation and tutorials still need to be developed, interfacing to the documentation system is on its way.

As a natural consequence, it is also time to revise the organization of GENESIS 3 development. In the past I have been the main contributor to the core of the code, but now, the core has been finished and only additions tangential to the existing functions are needed. Some of the these additions can be challenging (such as parallelization), but they will neither change the existing functionality nor interfaces. In other words, while I have been carrying Neurospaces and the core components of the architecture of GENESIS 3, now these components have been successfully finished. From here on development will focus on the GUI as an essential tool for tutorials, documentation and model publication. As a logical consequence, the role of each developer in this project needs to be revised too.

After a prototyping stage over the last year during which we integrated the (working) documentation system with the (prototype) GUI, the core design of the publication system is now in place. Build around sets of publication document snippets and an ontology for these snippets, we strongly believe we have all the essential ingredients to implement a extremely powerful GUI that integrates all of the Neurospaces software components with the documentation system. This will not only facilitate research simulation projects, it will also show the relationships between different projects (and their models). This system will help to accelerate knowledge production in a controlled manner. And that is why we are doing it.

Wednesday, March 17, 2010

NeuroML, NineML and Neurospaces / GENESIS 3

Two initiatives, NineML and NeuroML that compete for the same market that is so small that it does not exist yet. So no reason to get anxious nor excited about it. As long as they have complementary visions, under community control of course, this is a good thing and the future looks bright: as Ted Carnevale pointed out during the NeuroML meeting in Arizona: the competition between the Genesis and Neuron simulators has been beneficial for both, and at the same time these simulators have always been substantially different, serving different parts of the computational neuroscience community.

With the now mature core of the Neurospaces software components, I have focused development more on building interfaces of various sorts to create powerful links with external systems. Experimental interfaces implemented in the past include the Geometry libray and most importantly the interface with the Neuromorpho database.

I have worked on preliminary NeuroML and NineML interfaces in the new 'exchange' software component. This component connects directly to the API of the model-container such that G-3 has native NeuroML and NineML support (rather than indirect over XSLT as in G-2). Mando has a first interface between the GUI and the documentation system (although we will need to do some lining up of the interfaces between the GUI and other software components (gshell, documentation system and project-browser)).

So where do we go from here? The current roles in the G-3 team can be summarized as:

  • Dave

    • GUI scripting in python (evaluation)
    • backward compatibility feedback
    • enhance and document debugging functionality of models and simulations.

  • Allan

    • continue write documentation
    • specific GUI design documents based on Purkinje cell
    • develop relationship categories between computational models (different types of lineage ao.).
    • integrate this with the documentation tagging system

  • Jim

    • GUI story board.

  • Mando

    • lead of GUI development
    • packaging

  • Zhiwei

    • read documentation
    • get familiar with software structure
    • get familiar with development processes and flows
    • interact with Mando

  • Hugo

    • all the rest

      • network modeling (currently at 75%)

    • current focus on interfacing

      • continued SLI development
      • continued neuroml development
      • continued nineml development
      • pynn development

        • timed with the visit to the pynn code jam