scidash / neuronunit

A package for data-driven validation of neuron and ion channel models using SciUnit
http://neuronunit.scidash.org
38 stars 24 forks source link

Model validation #186

Closed gidili closed 6 years ago

gidili commented 6 years ago

Neuronunit should expose wether a given model instance can implement the capabilities of that model class

gidili commented 6 years ago

The logic of finding appropriate xml tags related to capability implementation should be separated form manipulating values associated to those tags.

We need a way to tell that a given model instance can implement the capabilities guaranteed by the model class.

For example as a usecase in scidash we need to be able to populate model classes as the creates a model instance:

screenshot 2018-08-01 17 53 33
rgerkin commented 6 years ago

Partly implemented in 7952585e8459fc10d36918663a443fdad2ceb91b

rgerkin commented 6 years ago

See this notebook for an example of the functionality.

The way this works is that a function like this does this checking for a particular implementation of the capability in the NeuroML file, and then this specifies that this is the function to be checked to see if a particular claimed capability is implemented in a given model instance. SciUnit has been revised here to look for this dictionary and evaluate its entries before assuming that a model has a capability that it claims to have.

gidili commented 6 years ago

Request: .check will default to False (instead of True) so that we know that a particular model instance does not implement a given capability.

rgerkin commented 6 years ago

Added in scidash/sciunit@cca66d0 an keyword argument require_extras to all check and check_capabilities methods to require that instance level methods to check for capability implementation exist (and return True) for a capability to be considered implemented.