Skip to content

Submodel machinery and improvements

J.L Stevens edited this page Jul 25, 2014 · 21 revisions

Lancet integration

  • With the new system, Lancet can checking model parameters cheaply (not hooked up yet)

Miscellaneous fixes

  • Auto-generation of projection names...

  • Warn if matchcondition defined (and not None) and no projections were created (for that condition)

  • Tobias made the following comment in issue #573 :

    The current implementation does not work with SheetSpec properties which have non-string values, as name+=prop fails (name is a string). This is currently the case for spatial frequency sheets.

    There are two ways to fix this:

    1. Properties must always have string values, which would need to be documented. The drawback with this fix is that things like channel=properties['SF'] if 'SF' in properties else 1 would become more slightly more complicated, i.e. channel=int(properties['SF'][2:]) if 'SF' in properties else 1. However, it would have the advantage that we could stick to the current naming convention.
    2. The simplest solution would be changing name+=prop to name+=str(prop). However, then SF sheets would be called LGNOn1, LGNOn2 and so forth. As long as there is only SF, this is fine. However additional "integer-"properties would make it harder to distinguish which sheet is meant, at least from the sheet name. Internally, everything would be still nice because the properties can always be accessed.

Is this issue resolved now?

Component based approach

A component based approach will be tricky to get working due to all the communication required between components. Specifically, there is information that needs to be propagated locally between components (e.g an LGN component would need to know about the set of available retinas) as well as information that needs to be computed globally once the model definition is complete, namely computing appropriate bounds for components given a target area for a specific sheet (e.g. a cortical sheet of interest).

What we think will be required

  1. A forwards pass so that (for example) the retina can tell the LGN how it has been configured (e.g how many generator sheets are present). This would happen with the suggested '>>'operator.
  • A backwards pass to propagate bounds from the final cortical area to the earlier sheets. This has to wait for the whole model to be defined. Right now the lack of a well-defined mechanism to

propagate bounds properly between components is a big reason everything is so entangled.

The distant future

  • Functionality to inspect the structure of SheetSpec and ProjectionSpec objects to check the network has one fully connected component.
  • Render a Model instance as a model diagram (functionality currently only offered by the Model Editor)