Social-Evolution-and-Behavior / anTraX

anTraX: high throughput tracking of color-tagged insects
https://antrax.readthedocs.io/
GNU General Public License v3.0
17 stars 3 forks source link

`Dot indexing is not supported for variables of this type` error when running `validate` #21

Closed janamach closed 3 years ago

janamach commented 3 years ago

Running validate is behaving strangely:

With matlab on either master or debug-jana branch:

$ antrax validate H1CN0304/

==================================================================================

Welcome to anTraX - a software for tracking color tagged ants (and other insects)

==================================================================================

11:12:48 -I- Reading video information from file
Dot indexing is not supported for variables of this type.

Error in generate_assignment_rate_report (line 27)
        Tid = T(strcmp(T.id,id) |  strcmp(T.id,'all'),:);

Error in validate_tracking/set_experiment (line 332)
            app.assigment_rate = generate_assignment_rate_report(app.Trck, app.XY);

Error in validate_tracking/startupFcn (line 441)
            set_experiment(app, Trck, p.Results.session)

Error in validate_tracking (line 659)
            runStartupFcn(app, @(app)startupFcn(app, varargin{:}))

Traceback (most recent call last):
  File "/home/jana/anaconda3/envs/antrax/bin/antrax", line 8, in <module>
    sys.exit(main())
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/antrax/cli.py", line 651, in main
    """)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/sigtools/modifiers.py", line 158, in __call__
    return self.func(*args, **kwargs)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/clize/runner.py", line 363, in run
    ret = cli(*args)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/clize/runner.py", line 220, in __call__
    return func(*posargs, **kwargs)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/clize/runner.py", line 262, in _cli
    return func('{0} {1}'.format(name, command), *args)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/clize/runner.py", line 220, in __call__
    return func(*posargs, **kwargs)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/antrax/cli.py", line 149, in validate
    launch_matlab_app('validate_tracking', args, mcr=mcr)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/antrax/matlab.py", line 204, in launch_matlab_app
    app = eval('eng.' + appname + '(' + ','.join([str(a) for a in args]) + ')')
  File "<string>", line 1, in <module>
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/matlab/engine/matlabengine.py", line 71, in __call__
    _stderr, feval=True).result()
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/matlab/engine/futureresult.py", line 67, in result
    return self.__future.result(timeout)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/matlab/engine/fevalfuture.py", line 82, in result
    self._result = pythonengine.getFEvalResult(self._future,self._nargout, None, out=self._out, err=self._err)
matlab.engine.MatlabExecutionError: 
  File /home/jana/src/anTraX/matlab/misc/generate_assignment_rate_report.m, line 27, in generate_assignment_rate_report

  File /home/jana/src/anTraX/matlab/apps/validate_tracking.mlapp, line 332, in validate_tracking.set_experiment

  File /home/jana/src/anTraX/matlab/apps/validate_tracking.mlapp, line 441, in validate_tracking.startupFcn

  File /home/jana/src/anTraX/matlab/apps/validate_tracking.mlapp, line 659, in validate_tracking.validate_tracking
Dot indexing is not supported for variables of this type.

With MCR on debug-jana branch:

$ antrax validate H1CN0304/

==================================================================================

Welcome to anTraX - a software for tracking color tagged ants (and other insects)

==================================================================================

08/04/21 11:14:49 -D- running matlab mcr 
08/04/21 11:14:49 -D- command is: /home/jana/src/anTraX/bin/antrax_glnxa64_mcr_interface validate_tracking H1CN0304/
11:15:00 -D- initializing expreader object
11:15:00 -I- Reading video information from file
Dot indexing is not supported for variables of this type.
Error in generate_assignment_rate_report (line 27)

Error in validate_tracking/set_experiment (line 332)

Error in validate_tracking/startupFcn (line 441)

Error in appdesigner.internal.service.AppManagementService/tryCallback (line 336)

Error in matlab.apps.AppBase/runStartupFcn (line 41)

Error in validate_tracking (line 659)

Error in antrax_mcr_interface (line 20)
MATLAB:structRefFromNonStruct
08/04/21 11:15:30 -D- matlab app exited with code 249

But it loads with MCR on the master branch:

$ antrax validate H1CN0304/

==================================================================================

Welcome to anTraX - a software for tracking color tagged ants (and other insects)

==================================================================================

08/04/21 11:16:02 -D- running matlab mcr 
08/04/21 11:16:02 -D- command is: /home/jana/src/anTraX/bin/antrax_glnxa64_mcr_interface validate_tracking H1CN0304/
11:16:13 -D- initializing expreader object
11:16:13 -I- Reading video information from file
11:16:42 -I- opening video file H1CN0304/videos//01_12/H1CN0304_10.mp4
11:16:42 -D- Running ffprobe #1 for file H1CN0304/videos//01_12/H1CN0304_10.mp4

mov,mp4,m4a,3gp,3g2,mj2
900382322

11:16:42 -D- Running ffprobe #2 for file H1CN0304/videos//01_12/H1CN0304_10.mp4

1640
1232
yuv420p
25/1
0.000000
3600.000000
90000

This does not seem to be dataset-specific, as I get the same error when I try to run validate on your test dataset:

$ antrax validate JS16/

==================================================================================

Welcome to anTraX - a software for tracking color tagged ants (and other insects)

==================================================================================

11:36:34 -D- initializing expreader object
11:36:34 -I- Reading video information from file
Dot indexing is not supported for variables of this type.

Error in generate_assignment_rate_report (line 27)
        Tid = T(strcmp(T.id,id) |  strcmp(T.id,'all'),:);

Error in validate_tracking/set_experiment (line 332)
            app.assigment_rate = generate_assignment_rate_report(app.Trck, app.XY);

Error in validate_tracking/startupFcn (line 441)
            set_experiment(app, Trck, p.Results.session)

Error in validate_tracking (line 659)
            runStartupFcn(app, @(app)startupFcn(app, varargin{:}))

Traceback (most recent call last):
  File "/home/jana/anaconda3/envs/antrax/bin/antrax", line 8, in <module>
    sys.exit(main())
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/antrax/cli.py", line 651, in main
    """)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/sigtools/modifiers.py", line 158, in __call__
    return self.func(*args, **kwargs)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/clize/runner.py", line 363, in run
    ret = cli(*args)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/clize/runner.py", line 220, in __call__
    return func(*posargs, **kwargs)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/clize/runner.py", line 262, in _cli
    return func('{0} {1}'.format(name, command), *args)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/clize/runner.py", line 220, in __call__
    return func(*posargs, **kwargs)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/antrax/cli.py", line 149, in validate
    launch_matlab_app('validate_tracking', args, mcr=mcr)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/antrax/matlab.py", line 204, in launch_matlab_app
    app = eval('eng.' + appname + '(' + ','.join([str(a) for a in args]) + ')')
  File "<string>", line 1, in <module>
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/matlab/engine/matlabengine.py", line 71, in __call__
    _stderr, feval=True).result()
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/matlab/engine/futureresult.py", line 67, in result
    return self.__future.result(timeout)
  File "/home/jana/anaconda3/envs/antrax/lib/python3.6/site-packages/matlab/engine/fevalfuture.py", line 82, in result
    self._result = pythonengine.getFEvalResult(self._future,self._nargout, None, out=self._out, err=self._err)
matlab.engine.MatlabExecutionError: 
  File /home/jana/src/anTraX/matlab/misc/generate_assignment_rate_report.m, line 27, in generate_assignment_rate_report

  File /home/jana/src/anTraX/matlab/apps/validate_tracking.mlapp, line 332, in validate_tracking.set_experiment

  File /home/jana/src/anTraX/matlab/apps/validate_tracking.mlapp, line 441, in validate_tracking.startupFcn

  File /home/jana/src/anTraX/matlab/apps/validate_tracking.mlapp, line 659, in validate_tracking.validate_tracking
Dot indexing is not supported for variables of this type.

But it loads properly with MCR and master branch.

asafgal commented 3 years ago

I'm working on too many branches in parallel, a change I made in a different branch partially found its way into your branch :(

Try now on debug jana.

janamach commented 3 years ago

Now works on both matlab and MCR and both branches. Thank you for fixing it :-)