Related Documentation:
This document contains a list of functions and descriptions that need to be implemented or incorporated in the software or software infrastructure. The level of detail of the descriptions can vary between items. After an item is described, it can be followed by a checklist with information of the level of implementation. For example, subitems in the checklist can be marked with the word ‘DONE’.
This document can grow when people add new functions that await implementation, and it can be consolidated by moving items that have been completed from the TODO list to the top of the DONE list. Items are never removed from the DONE list.
This TODO list was built on December 28, 2015, 8:28.
Looks like ’neurospaces_install heccer’ currently fails because the python code tries to link with the model-container archives in the source directories instead of the ones that have been installed.
Seems more flexible, regular command line utility, see also http://lists.debian.org/debian-accessibility/2011/10/msg00001.html and follow.
Needs package unoconv on ubuntu 12.04.
The entry has always the default value.
For use in SSP configuration files and in the gshell.
Mando, I have no idea what is going on, but it seems autoconf related and related to uninstallation of STARTUP_FILES. You?
I don’t know how this would influence the consistency of the tester output, for instance if it leaves foreign files that contaminate the filesystem. I also don’t know how long this has been happening on my machine because this type of error is not reported by neurospaces_cron when not run from a crontab.
\$ grep -v ’t/died’ /tmp/neurospaces_cron.stdout | grep -v ’t/dont_overwrite_die_handler’ | grep -v ’t/subtest/die’ | grep -v ’t/Tester/tbt_03die’ | grep -B 15 die
make[2]: Entering directory ‘/home/cornelis/neurospaces_project/ns-sli/source/snapshots/0/src’ ( cd ’/usr/local/bin’ && rm -f ns-sli ) rm -rf /usr/local/ns-sli/ ( cd ’/usr/local/ns-sli/’ && rm -f startup/grey startup/xmacros.g startup/xtools.g startup/vclamp.g startup/redhot startup/rainbow2 startup/escapelist.g startup/schedule.g startup/rainbow startup/defaults.g~ startup/nxsimrc-ns-sli startup/minsimrc-ns-sli~ startup/Xdefaults.example startup/simrc-ns-sli.example startup/hot startup/defaults.g startup/Usermake startup/minsimrc-ns-sli startup/schedule.g~ startup/simrc~ startup/simrc-ns-sli~ startup/xstartup.g startup/simrc-ns-sli startup/nxsimrc~ startup/configrc startup/Libmake startup/Makefile startup/minschedule.g startup/minsimrc~ ) /bin/bash: line 4: cd: /usr/local/ns-sli/: No such file or directory make[2]: *** [uninstall-nobase_dist_ns_slistartupDATA] Error 1 make[2]: Leaving directory ‘/home/cornelis/neurospaces_project/ns-sli/source/snapshots/0/src’ make[1]: *** [uninstall-recursive] Error 1 make[1]: Leaving directory ‘/home/cornelis/neurospaces_project/ns-sli/source/snapshots/0/src’ make: *** [uninstall-recursive] Error 1 /usr/local/bin/neurospaces_build: *** Error: package ns-sli: 512 at /usr/local/bin/neurospaces_build line 4269. at /usr/local/bin/neurospaces_build line 4269 main::operation_execute(’ARRAY(0x99b9668)’, ’HASH(0x9a3f360)’, ’ARRAY(0x9a94e90)’) called at /usr/local/bin/neurospaces_build line 781 main::all_operations_execute() called at /usr/local/bin/neurospaces_build line 546 main::main() called at /usr/local/bin/neurospaces_build line 4344 *** die: /usr/local/bin/neurospaces_build: *** Error: package ns-sli: 512 at /usr/local/bin/neurospaces_build line 4269. |
neurospaces_clean has a –distclean option, but I don’t think it has ever been tested. We should incorporate it into neurospaces_cron and neurospaces_upgrade.
The ns-sli does more soundness checks on a model and the simulation run-time and gives many more warnings than G-2. Typical examples include:
*** Warning: the setmethod command is deprecated in G-3
|
Warning: ParameterResolveToPidinStack() does not perform any operations.
|
*** Warning: zero initial value for the concentration of the following:
/cell/apical_18/Ca_conc |
Warning: Tabchannel parameter xmin has already been set to 0.000000 for K_C
Warning: Tabchannel parameter xmax has already been set to 1000.000000 for K_C |
warning: cell found during solver_mathcomponent_typer()
warning: /axon/solve warning: cell found during solver_mathcomponent_processor() warning: /axon/solve warning: cell found during solver_mathcomponent_finalizer() warning: /axon/solve |
Warning: Heccer object /axon exists, resetting it instead.
|
*** Warning: during readcell: channel /library/Na_pyr_dp has no Gbar / gmax defined
*** Warning: during readcell: channel /library/Kdr_pyr_dp has no Gbar / gmax defined *** Warning: during readcell: channel /library/KM_pyr_dp has no Gbar / gmax defined |
The implementation of a warning registry that registers warnings without displaying them avoids annoying a user. A new SLI command ’show_warnings’ shows all the registered warnings.
The documentation system uses ht4tex which is the successor of latex2html.
It looks like a set of configuration files of dvipng determine the quality of the generated images. Each linux distro puts these files in different locations.
So far it is not clear how exactly to modifiy the configuration to improve the quality of the images, neither to the choice of distribution we would like to support.
Proposal to support at least one user-oriented operating system for generating higher quality images, and I still think we should do this. Then we can understand how well this works.
The genesis website runs on CentOS, not user-oriented. The best candidate is maybe ubuntu.
The problem comes when I want to set an output interval (i.e. a time step for a G2 clock) that is not related to the integration time step. Presently one can give a gshell command, such as:
genesis > output\_resolution 5
|
to output every fifth integration step, but the resolution has to be an integer multiplier of simulation time step. I had a case where I wanted to compare to a G2 result where the simulation clock was 20 microsec and the output clock was 50 microsec, and it was not posssible. Furthermore, it is only possible to set the output resolution if the output generator is running in ’steps’ output_mode, which means that the file output will list step number instead of simulation time. Perhaps that should be an option, but one usually cares about the simulation time, not the step number, nor the relation between the output interval and the simulation time step. In fact, if we at some point incorporate variable time step solver methods, it wouldn’t be possible to relate the ”output resolution” to the time step.
So, my suggestion is to replace ’output_resolution’ with ’output_interval’, and that this should be an option within g-tube also.
Another slightly related issue that came up in the benchmarking is that the rallpack axon model produces two output files, one for each end of the axon. Alternatively, it could have used asc_file to produce a single file with three columns for time, axon0, axonx values. But neither option is presently possible with G3. (I have not yet implemented the G3plot capability to plot multiple columns yet, but it is on the list.) These options should be part of the gshell/g-tube output model.
The email reporting facility of the tester needs to be refactored and cleaned up. It currently is highly sensitive to small misconfiguration errors, see also the entry of 29th of August in system-administration-log.
It is likely that the best way forward is to refactor things across the different scripts by creating a couple of perl packages.
The script neurospaces_build does not detect compilation errors. Maybe because the option keep-going is set, needs further investigation. The priority of this problem is very low. Compilation errors are assumed to be detected on the machine of checkin rather than the automated tester.
See also the document that describes how to add a new software component.
The ns-sli module install files under /usr/local/ns-sli rather than /usr/local/neurospaces/ns-sli. This installation needs to be ligned up with the installation of other modules such as gshell.
To characterize a cell morphology it would be good to extend the morphology_summarize command to include the average (+/- SD, SE ?) number of branch point from the soma to each tip and the number of primary, secondary, tertiary . . . etc, branch points.
Define GShell tests for endogeneous activation.
Correct build of the documentation depends on a working G-3 installation. It looks as if userdocs_cron should be integrated into neurospaces_cron. Both the build of the documenation and the execution of the tests should be configurable from the neurospaces_cron options. The userdocs_cron script should call the neurospaces_docs script.
See also chat between Mando and me date 23th of August 2010.
Add monotone version information identifiers to the gshell command ’list components’.
Implement the following SLI commands and objects:
Others that need implementation:
The model-container does not use the readline library for its querymachine. This function was present in the past and should be restored because it helps in querying models via the querymachine interface.
There is logic to detect readline in the filesystem present in the configure script, but somehow this part of the configuration does not propagate through to the compilation phase of the model-container.
Notes | |
Time Estimate | 1 days |
Assigned to | Mando |
Certain tests output to a hardcoded filename, such as /tmp/output. When one user runs the tests this file is given permissions for their user id. If a second user tries to run the same test, it writes to the same filename, the test will fail and the test will bail out with an error (as was displayed by the regression tester machine). This bottlenecks the number of users that can reliably install a developer installation on the same machine.
Notes | |
Time Estimate | ??? |
Assigned to | ??? |
The source code of most GENESIS 3 software components are maintained using the Monotone version control system. The installer scripts integrate with Monotone to provide for automated building and testing.
The G-Tube is maintained using the Mercurial version control system. We must continue and finish the integration of the Mercurial version control system and the DeveloperScript neurospaces_build.
There is currently no way to solve coupled equations of gating variables.
dm/dt = A * m + B * n dn/dt = C * m + D * n
In GENESIS 2, this is possible using forward integration methods only.
For each software component a set of (html) documents must be generated that specify the capabilities of the component. For Unix shell scripts, technical specifications can be generated from the usage messages generated by a “--help” argument.
Documentation from Levels 3–7 are ”automatically” generated. What is required is a description for developers of how to create these levels of documentation and how to add them to the appropriate places where they can be accessed by the GENESIS Documentation System. These are level 2 documents.
Tag all the documentation with keywords to define flows through the documentation and ease browsing and reading of related documents.
Should be provided via a browser-based framework to give ‘professional’ look to documentation. See Documentation Framing (following).
Does not happen anymore, likely due to the recent rewrites of some of the userdocs scripts.
The userdocs-sync command in the g-tube source directory gives error messages about the descriptor.yml files part of the g-tube source code. This is a bug because userdocs-sync is supposed to only run in the userdocs source directory.
Dave has been working on this, and populated the library with useful models. See the CNS 2011 report
Build up a library of cells that can be used with G2 or G3.
The supplement funding period has past
Every three months a report about progress on the work of the administrative supplement must be submitted to NIH.
This can be done by picking items from the DONE list related to the work proposed in the administrative supplement.
First move conceptualized items from the supplement to this TODO list.
Diagnosis of problem and documented procedure for troubleshooting the Inline::Python module is found in GENESIS dependencies document, in the Note about Inline::Python section. (Working)
Fails on Mac OSX after reinstallation of GENESIS developer package for Python module:
Other components:
python: description: interface to python scripting module: GENESIS3::Python status: | Error. You have specified ’Python’ as an Inline programming language. I currently only know about the following languages: C, Foo, foo If you have installed a support module for this language, try deleting the config file from the following Inline DIRECTORY, and run again: /Users/adcmobile/.genesis3/gshell/InlineCode at /usr/local/glue/swig/perl/GENESIS3/Python.pm line 25 at /usr/local/bin/genesis-g3 line 52 main::__ANON__(’Error. You have specified \’Python\’ as an Inline programming...’) called at /System/Library/Perl/5.8.8/Carp.pm line 269 Carp::croak(’Error. You have specified \’Python\’ as an Inline programming...’) called at blib/lib/Inline.pm (autosplit into blib/lib/auto/Inline/check_config_file.al) line 711 Inline::check_config_file(’Inline=HASH(0xa3043c)’) called at /Library/Perl/5.8.8/Inline.pm line 244 Inline::glue(’Inline=HASH(0xa3043c)’) called at /Library/Perl/5.8.8/Inline.pm line 146 Inline::import(’Inline’, ’Python’, ’import sys\x{a}sys.path.append(\’/usr/local/glue/swig/python\’)\x{a}i...’) called at /usr/local/glue/swig/perl/GENESIS3/Python.pm line 25 GENESIS3::Python::BEGIN() called at /usr/local/glue/swig/perl/GENESIS3/Python.pm line 52 eval {...} called at /usr/local/glue/swig/perl/GENESIS3/Python.pm line 52 require GENESIS3/Python.pm called at (eval 41) line 3 eval ’require GENESIS3::Python ;’ called at /usr/local/glue/swig/perl/GENESIS3.pm line 3611 GENESIS3::profile_environment() called at /usr/local/glue/swig/perl/GENESIS3.pm line 3635 require GENESIS3.pm called at /usr/local/bin/genesis-g3 line 256 main::main() called at /usr/local/bin/genesis-g3 line 354 BEGIN failed--compilation aborted at /usr/local/glue/swig/perl/GENESIS3/Python.pm line 52. at /usr/local/bin/genesis-g3 line 52 main::__ANON__(’Error. You have specified \’Python\’ as an Inline programming...’) called at /usr/local/glue/swig/perl/GENESIS3/Python.pm line 52 require GENESIS3/Python.pm called at (eval 41) line 3 eval ’require GENESIS3::Python ;’ called at /usr/local/glue/swig/perl/GENESIS3.pm line 3611 GENESIS3::profile_environment() called at /usr/local/glue/swig/perl/GENESIS3.pm line 3635 require GENESIS3.pm called at /usr/local/bin/genesis-g3 line 256 main::main() called at /usr/local/bin/genesis-g3 line 354 Compilation failed in require at (eval 41) line 3. at /usr/local/bin/genesis-g3 line 52 main::__ANON__(’Error. You have specified \’Python\’ as an Inline programming...’) called at (eval 41) line 3 eval ’require GENESIS3::Python ;’ called at /usr/local/glue/swig/perl/GENESIS3.pm line 3611 GENESIS3::profile_environment() called at /usr/local/glue/swig/perl/GENESIS3.pm line 3635 require GENESIS3.pm called at /usr/local/bin/genesis-g3 line 256 main::main() called at /usr/local/bin/genesis-g3 line 354 type: description: scriptable user interface layer: 2 |
dhcp-129-111-247-96:0 adcmobile$ genesis-g3
Welcome to the GENESIS 3 shell genesis > ndf_load cells/edsjb1994_partitioned.ndf Could not find file (number 1, 1), path name (cells/edsjb1994_partitioned.ndf) Set one of the environment variables NEUROSPACES_NMC_USER_MODELS, NEUROSPACES_NMC_PROJECT_MODELS, NEUROSPACES_NMC_SYSTEM_MODELS or NEUROSPACES_NMC_MODELS to point to a library where the required model is located, or use the -m switch to configure where neurospaces looks for models. genesis > ndf_load cells/purkinje/edsjb1994_partitioned.ndf genesis-g3: Parse of cells/purkinje/edsjb1994_partitioned.ndf failed with 1 (cumulative) error. genesis > list_elements --- - /Purkinje genesis > delete /Purkinje genesis > list_elements --- genesis > ndf_load cells/purkinje/edsjb1994_partitioned.ndf genesis-g3: Parse of cells/purkinje/edsjb1994_partitioned.ndf failed with 1 (cumulative) error. genesis > exit dhcp-129-111-247-96:0 adcmobile$ genesis-g3 Welcome to the GENESIS 3 shell genesis > ndf_load cells/purkinje/edsjb1994_partitioned.ndf genesis > |
The gshell command ’list_elements’ sometimes loses part of the output. In the following snippet parts of the ’km’ and ’kh’ channels have disappeared:
> genesis-g3 --execute "ndf_load cells/purkinje/edsjb1994.ndf"
Welcome to the GENESIS 3 shell genesis > list_elements /Purkinje/segments/soma/** --- - /Purkinje/segments/soma/km/km - /Purkinje/segments/soma/kdr/kdr_steadystate - /Purkinje/segments/soma/kdr/kdr_tau - /Purkinje/segments/soma/ka/ka_gate_activation - /Purkinje/segments/soma/ka/ka_gate_inactivation - /Purkinje/segments/soma/kh/kh - /Purkinje/segments/soma/nap/nap - /Purkinje/segments/soma/naf/naf_gate_activation - /Purkinje/segments/soma/naf/naf_gate_inactivation - /Purkinje/segments/soma/cat/cat_gate_activation - /Purkinje/segments/soma/cat/cat_gate_inactivation |
This is obviously wrong behavior. The querymachine command ’expand’ can be used to compare with the correct output.
genesis > querymachine expand /Purkinje/segments/soma/**
|
When the internet is down, the userdocs-sync script continues its execution after a synchronization failure.
Integrate userdocs-check with userdocs-sync.
The Heccer package currently contains the Heccer software component and various Input and Output Simulation objects. It is better to have an I/O package separate from the Heccer package.
Create a consolidated directory for inline perl code so that Perl does not constantly create ”_Inline” directories in every working directory that ssp and the gshell are called in.
The following tag should be recognized by the documentation build system (cf. draft, published):
The local tag is currently implemented by invoking the following command from a UNIX shell:
$ userdocs-build --tags local
|
This command builds a local website of all the documents that have the tag ’local’.
$ userdocs-build --tags local --tags published
|
This command builds a local website with all the published and the local documents.
Assigned to Hugo (G-Shell) and Mando (G-Tube).
runtime_parameter_add <name>
runtime_parameter_show <name> runtime_parameter_delete <name> input_add <name> input_show <name> input_delete <name> inputclass_add <name> inputclass_show <name> inputclass_delete <name> |
Also doing similar commands for inputclass_templates.
Publication documentation does not currently support bibtex references. e.g.
References appear as [?] in text and the References section is missing.
This probably requires the following sequence to be implemented in userdocs-build:
latex bibtex latex latex
|
Documentation that use citations are currently not supported by the documentation system. Such documents are built differently on different machines.
Seems at present nobody knows what the original problem was, but this description being in the done list means that the problem has been solved.
(DONE)
The automated tester (neurospaces_cron) currently has a problem with not deleting all of the files it generates in /tmp. Over time the “files” grow and consume large amounts of disk space. The trash file removal must be fixed so that it keeps from contaminating the file system further. It must also be improved by making the trash list an configurable input file that can be passed as an argument to the neurospaces_cron script.
Notes | Won’t take wildcards for file deleting. |
Time Estimate | 1 day |
Assigned to | Mando |
The backward-compatibility module expects the .simrc file in the users home directory. The default place of this file should be a place in /usr/local. (DONE)
This file may also be renamed to .ns-sli.
Notes | Required for alpha1 Release 3.0 |
Time Estimate | 1 day |
Assigned to | Hugo |
Extend the number of file formats for documentation that are recognized by the documentation build system when a document is placed in a document folder, as for example, currently happens for PDF formated documents. The following tags should be recognized for the alpha release.
This means that tags given above, should also be placed in the descriptor.yml file and recognized.
There are several fundamentally different ways to specify inputs to a simulated model from the G-Shell. For example, a voltage clamp protocol is specified by creating input objects (pclamp object). A current injection and endogeneous stimulation is specified by setting parameters.
Notes | Required for alpha1 Release 3.0 |
Time Estimate | 1 week |
Assigned to | Mando |
Notes | Required for alpha1 Release 3.0 |
Time Estimate | 1 - 2 weeks |
Assigned to | Mando |
Notes | Required for alpha1 Release 3.0 |
Time Estimate | 1 - 2 days for integration |
Assigned to | Mando |
Write a document that briefly describes the dependencies. These dependencies are known:
Compile other dependencies from the NS wiki.
Notes | Required for alpha1 Release 3.0 |
Time Estimate | 1 day |
Assigned to | Mando and Hugo |
genesis > help ndf_save
--- *** Error: no help for topic ndf_save yet genesis > ndf_save mypc.ndf Bus error dhcp-129-111-247-96:0 adcmobile$ genesis-g3 cat: neurospaces/config.h: No such file or directory Welcome to the GENESIS 3 shell genesis > ndf_load cells/purkinje/edsjb1994.ndf genesis > ndf_save Bus error dhcp-129-111-247-96:0 adcmobile$ |
genesis > ndf_load cells/purkinje/edsjb1994.ndf
genesis > pwe / genesis > show_parameter /Purkinje/segments/b3s45[10] RM value = 3 genesis > ce /Purkinje/segments/b3s45[10] genesis > show_parameter RM symbol not found genesis > show_parameter /Purkinje/segments/b3s45[10] RM value = 3 |
The use of the command show_parameter above is invalid. Use of the current element as the default element for the GENESIS 2 setfield command interferes with future extensibility of this command and will not be implemented.
This can be easily worked around using the ’.’ to refer to the current working element. The following snippet illustrates this use:
genesis > ndf_load cells/purkinje/edsjb1994.ndf
genesis > ce /Purkinje/segments/ genesis > pwe /Purkinje/segments genesis > ce b3s45[10] genesis > pwe /Purkinje/segments/b3s45[10] genesis > show_parameter . RM value = 3 genesis > ce ../ genesis > pwe /Purkinje/segments genesis > show_parameter b3s45[10] RM value = 3 |
This requires component names to be stringified in the NDF file format. E.g. cell, neuron, channel, etc.
Notes | |
Time Estimate | 2 days |
Assigned to | Hugo |
Make a current clamp protocol available to the gshell. Based on the voltage clamp protocol, add an inputclass, set the clamp value and connect it to a variable.
Add support for a summary descriptor attribute that will append some text to end of a link in the documentation conents page. (DONE)
Right now custom scripts are used to serve the GENESIS 3 source code to the internet. This leads to duplication of configuration data such as filenames. The installer script neurospaces_build has dedicated function to serve the source code without configuration data duplication. Rather than using custom scripts, the neurospaces_build script should be used to serve the source code to the outside world. (DONE)
Notes | Required for alpha1 Release 3.0 |
Time Estimate | 1 day |
Assigned to | Mando |
Disable the studio in the gshell, it should only be loaded on explicit request (DONE).
Notes | Required for alpha1 Release 3.0 |
Time Estimate | 4 hours |
Assigned to | Hugo |
Building a tarball of the backward compatibility modules is broken. This needs to be fixed before a debian package can be built. (DONE)
Notes | Required for alpha1 Release 3.0 |
Time Estimate | 1 day |
Assigned to | Mando |
Monotone sometimes hangs on the repository server. Upgrade the repository server (DONE).
Time Estimate | 1 day |
Assigned to | Mando |
After an update of the model-container, monotone reports that there are files missing from the local model-container workspace. This inhibits further updates such that the tester starts testing old software. An example monotone checkin that produces this problem is the model-container checkin of version d4cbeb603334d009ba2797976db15f53db5046fe. This version contains a white-space only change but corrupts the model-container workspace on the tester machine.
Notes | |
Time Estimate | 2 days |
Assigned to | Mando |
Implement ns-sli showfield. (DONE)
Notes | Required for alpha1 Release 3.0 |
Time Estimate | 1 days |
Assigned to | Mando |
Notes | Required for alpha1 Release 3.0 |
Time Estimate | 2 days |
Assigned to | Hugo |
The configure script of Heccer and NS-SLI does not find a valid neurospaces.h header even when one is installed in a standard location.
Notes | |
Time Estimate | 0.5 days |
Assigned to | Hugo |
The asc_file object test in ns-sli needs to be completed.
Notes | |
Time Estimate | 1 day |
Assigned to | Hugo |
Consolidate and correct the installation documentation for software developers.
Notes | Required for alpha1 Release 3.0 |
Time Estimate | 3 days, includes installation and uninstall of the software on a laptop |
Assigned to | Allan |
Upgrade the source code repository (also test machine) to the latest stable Debian version. This was a duplicate of 3.31.
Integrate ‘mtn clone’ into the installer scripts (DONE).
Correct the errors reported by webcheck. (DONE)
Notes | Required for alpha1 Release 3.0 |
Time Estimate | |
Assigned to | Allan |
Go through the Webcheck output and identify critical and easy to fix problems. (DONE)
Notes | Required for alpha1 Release 3.0 |
Time Estimate | 1 day |
Assigned to | Allan |