openworm/OpenWorm

Configuration file failed with Version 0.9.3

Enderest opened this issue · 6 comments

When running the docker openworm test. Some configuration file could output error.

Expected behavior
The expected behaviour is similar to working configuration that is worm_crawl_half_resolution and worm_swim_half_resolution_immersed.

Actual behavior
When unzip and loading configuration file such as worm_crawl_half_resolution_2x_space and worm_swim_half_resolution_large_square_area_crawl, sibernetic would give the error:
OSError: Could not find simulation output file /home/ow/sibernetic/NeuroML2/results/c302_C2_FW.dat
This error shows that there is an issue running c302 with neuron such that it cannot output the .dat file.

Steps to reproduce the behavior

Setting the 'configuration' option in master_openworm.py as the file would generate the issue.


Furthermore, I was wondering if there is a procedure to generate the customized configuration file?

Thanks.

@Enderest I assume you are running this inside the docker container using ./run-shell-only.sh and then testing manually? Do all the tests in /home/ow/sibernetic/run_all_tests.sh work? I tried modifying one of these to python sibernetic_c302.py -test -duration 1 -c302params C0 -configuration worm_deep_water and it worked. Did you try this way?

Re the custon configuration file, please see here: openworm/sibernetic#165

Hi, thank you for the response. I can run it with worm_deep_water. But if I change it to worm_swim_half_resolution_large_square_area_crawl it would give the same. Again, I do not believe the issue is sibernetic but more an issue from c302. I inspect and find that with the configuration, the .dat file is not generate. So I tried by run c302 independently with the command from c302 repository. It would work. So I checked pynml. In pynml, direct command calls function pynml.run_lems_with_jneuroml(). However, in sibernetic_c302, the test called function pynml.run_lems_with_jneuroml_neuron(). This could be an issue from that function call. But I have not yet find any further relation between the configuration file and the neuron c302 generation. Thank you.

@Enderest I don't think this is any issue with c302. I've tried unrar on that file, and tried
python sibernetic_c302.py -test -duration 1 -noc302 -configuration worm_swim_half_resolution_large_square_area_crawl
and it fails (segmentation fault).

To be honest though I wouldn't mix any of the "walk" and "crawl" configurations with c302.. These are intended for having sibernetic internally generated muscle activity patterns (sine waves) injected to the worm, which make it crawl or swim... I'm not sure what would happen when there is also input from c302...

@pgleeson Thanks for your response. Yes, I only think it is related to c302 because the output file does not plot out neuronal activities. But also the main goal I am trying is using a self-generated configuration file. I think if I can generate a configuration file similar to the working ones it should work as well. So as a follow-up question on this, as I have read through the link for generating the file above, I wonder how would thee particle velocity be initialized (for the liquid and elastic particle). They seemed quite random at first glance and the repository seems to be setting it to 0. Thank you.

I think for self generated configuration files, the Sibernetic repo might be more appropriate for an issue. I would highly recommend though concentrating on making a simple example of a configuration first (e.g. a cube like the default configuration), sharing this on a repo and if you have any issue present an example that works and one which doesn't after a small change.

I'm not sure how velocity is initialised, but I would have thought it's not in the configuration file, it's just the initial positions..? Have you looked at the Sibernetic paper: https://royalsocietypublishing.org/doi/10.1098/rstb.2017.0376#d3e467

@pgleeson Thanks for the response I will continue the discussion of configuration file in the sibernetic repo. The reason i asked is that I have a configuration file generated that works in 0.9.2 and it fails in 0.9.3 as well. I suspect it is simililar to other ones that fails. The configuration file has a section [velocity] to correspond the velocity. I am not sure if the initial settings of the value would affect the overall running process. Again, thanks for your help.