openworm/sibernetic

Commandline option to output line chart related to the movement of the worm

slarson opened this issue · 13 comments

@a-palyanov created an example output here. @skhayrulin, could we have Sibernetic generate this kind of file if a flag is given during the run?

@a-palyanov has the code written but hasn't tested it on linux.

@slarson @a-palyanov am I right that file contains information about center of mass displacement? Actually I think how to do this more generic way not appropriate only for worm configuration but for other too.

Hey Sergey, would the JSON you are already producing be a good option to add this to?

@skhayrulin The file contains information about 3D coordinates of points representing worm body midline (from head to tail). Each line of the file corresponds to the time moment at which these coordinates were written to the file.
File format:
time1 x1 ... xN y1 ... yN z1 .. zN
......
timeM x1 ... xN y1 ... yN z1 .. zN

Coordinates of center of mass can be obtained from these data by averaging each coordinate over worm body midline.

Examples of visualization of such data for the cases of swimming and crawling:
swimming
crawling

@a-palyanov OK got it. @a-palyanov as I understood you already have code which produce this data could you push this into repo or send me. @tarelli do you mean to add this data into JSON file too?

@a-palyanov @skhayrulin @tarelli Hey guys, if it is convenient I'd like a copy of the code (or the JSON output) to try out as well. I will need to work with Rex to 1. project the 3-D data into 2-D space for comparison against WCON versions (if they exist) of Rex's tap-withdrawal movement data.

@a-palyanov @skhayrulin @MichaelCurrie discussed this today, I went to create an issue and then realized we had this, should we re-purpose this card or create a new one for Siberntic to output a text file with counter data (the famous 49 points per 'frame' not sure what frame means in the case of Sibernetic though)?

As discussed with @a-palyanov @MichaelCurrie @cheelee and @gidili, the general idea would be first to get the code @a-palyanov has written for the simple txt output of the midline into the Sibernetic development branch and have this export enabled by a Sibernetic command line output.

Some metadata from Sibernetic (version of Sibernetic, time step/duration, user, configuration (worm/worm_no_water), etc.) can be included as simple text comments at the top of that file.

Then there will be a Python script (see openworm/OpenWorm#247) to convert that file to valid WCON. This Python file can be updated as WCON develops, independent of the Sibernetic codebase, and can also eventually be updated to support the contour output.

Still important! Pinging this here.

@skhayrulin has this been integrated into the current Sibernetic code base? If so, do you know where it is? Most important is getting this to come out as text.

@slarson actually no but if it's really important I can do it asap doesn't look like to hard to implement it

Great @skhayrulin. As mentioned, code for much of this already exists on a fork of @a-palyanov's.

I hope I'll upload my new version of Sibernetic (with the simple txt output of the midline and some other new features) today or tomorrow, right now I'm finalizing it.