Forum
Register Calendar Latest Topics
 
 
 


Reply
  Author   Comment   Page 2 of 3      Prev   1   2   3   Next
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #26 
* Changes in NIMH MonkeyLogic 2 (Mar 28, 2017)

 + Changed the name convention of the cfg file from '*_cfg.mat' to '*_cfg2.mat'
   so that the old cfg files are not overwritten. The old cfg files are not
   compatible with NIMH ML 2.
   
 ~ Fixed the problem that the location of the user plot was incorrect in old
   MATLAB versions.
   
 ~ Fixed the problem that the background color of the subject screen does not
   change during the idle command, when there is no object to update.

 ~ Fixed an error made in the previous version that prevented editable
   variables from loading
0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #27 
Hi mkytch,

Thank you for reporting this.

To fix the first problem, please modify monkeylogic.m like the following.

----- Line 959, monkeylogic.m -----
usedconds = bnum==[MLConditions.Conditions.Block];
----- End of Line -----

----- Replacement of Line 959, monkeylogic.m ---
usedconds = false(1,numconds);
for cnum = 1:numconds, usedconds(cnum) = any(bnum==MLConditions.Conditions(cnum).Block); end
 ----- End of Code ----

A new replayer will be provided. I just don't have time to work on it at the moment.
0
mkytch

Junior Member
Registered:
Posts: 6
Reply with quote  #28 
Awesome! I'll firmly switch to ML 2 then. There're many new features I really likes a lot.
0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #29 
* Changes in NIMH MonkeyLogic 2 (Mar 31, 2017)

 + Now pre-loading stimuli and timing files is possible when running the task
   with a userloop file so that the required ITI can be minimized
   (See the included example task, movie preloading)
   
 ~ Fixed the problem with "Chart Blocks" that occurs when multiple block
   numbers are given in one condition line.
0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #30 
* Changes in NIMH MonkeyLogic 2 (Apr 5, 2017)

 + Added the following new fields to Screen and TrialRecord to improve the
   compatibility with old timing scripts.
   
   Screen.BackgroundColor
   Screen.PixelsPerDegree
   TrialRecord.DataFile
0
crponce

Junior Member
Registered:
Posts: 15
Reply with quote  #31 
Hi Jaewon, quick question about the eye movement calibration routine. In ML1, when registering the animal's gaze position using the 2-D Spatial Transformation routine, I could emit a reward every time I pressed the Space key. I notice that ML2 does not emit a reward each time I press the Space key. This is important because it reinforces naive animals to stick through calibration, even if they've never seen a fixation spot before. Is this part of the design of ML2, or am I doing something wrong?

Thanks!
0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #32 
I didn't know about that, since people at where I work just use a separate manual switch. I think I can use the "Manual Reward" option to do this. Give me some time.
0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #33 
* Changes in NIMH MonkeyLogic 2 (Apr 10, 2017)

 + Now the fixation threshold of eyejoytrack() can be specified as a rectangle
   with a two-element vector.
   
 + An option that delivers reward on typing the space key is added to the 2-D
   Spatial Transformation calibration tool.
 
 ~ The fixation window sizes in the calibration tools are fixed to be radii
   correctly. The sizes of all circle objects in NIMH ML2 are represented in
   radius.
 
 ~ A problem that movie objects couldn't be turned off when they ended before
   the duration of idle() or eyejoytrack() is fixed.
 
0
crponce

Junior Member
Registered:
Posts: 15
Reply with quote  #34 
Great work, thank you for adding the reward option! Still can't get over how fast and robust this new ML is.
0
crponce

Junior Member
Registered:
Posts: 15
Reply with quote  #35 
Hi Jaewon, quick q about a new error msg:

After calibration of the animal's gaze using the 2-D Spatial Transformation routine, during runtime, I will sometimes press 'c' to correct an offset in the eye position. Doing so leads to this error:

 

Quote:

<<< MonkeyLogic >>> Undefined function 'copyfield' for input arguments of type 'struct'. (mlcalibrate.translate, Line 128)

Undefined function 'copyfield' for input arguments of type 'struct'.

Error in mlcalibrate/translate (line 128)

                       ml_tform = copyfield([], obj.TransformMatrix{3},

                       {'ndims_in','ndims_out','forward_fcn','inverse_fcn','tdata'});

Error in screening_runtime/end_trial (line 1068)

EyeCal.translate(ML_EyeOffset);

Error in screening_runtime (line 1200)

end_trial;

 

As far as I can tell, the copyfield function expects three input arguments: two structures and a "field" cell array (optional).

What's the second structure meant to be in this line?
0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #36 
Hi crponce,

It is my mistake. You can fix it like the following. I will update the package later. I forgot to modify the function when I encapsulate it in the class.

Line 128 of mlcalibrate.m
    ml_tform = copyfield(obj, [], obj.TransformMatrix{3}, {'ndims_in','ndims_out','forward_fcn','inverse_fcn','tdata'});

Line 162 of mlcalibrate.m
    function dest = copyfield(~,dest,src,field)

0
crponce

Junior Member
Registered:
Posts: 15
Reply with quote  #37 
Thank you...got another one, other calls to copyfield may have to be modified...

Undefined function 'copyfield' for input arguments of type 'struct'.

Error in mlcalibrate/translate (line 134)
obj.TransformMatrix{3} = copyfield(obj.TransformMatrix{3},
cp2tform(ml_cpi,ml_cpo,'projective')); %#ok<DCPTF>

Error in screening_runtime/end_trial (line 1104)
EyeCal.translate(ML_EyeOffset);

0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #38 
* Changes in NIMH MonkeyLogic 2 (Apr 12, 2017)

 ~ An error that occurred during manual eye/joystick drift correction while
   using 2-D Spatial Transformation is fixed.
 
 ~ The previous patch related to movie presentation introduced a new bug that
   disabled the movie preview. It is fixed now.

0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #39 
Thanks, crponce. I fixed both of them.
0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #40 
* Changes in NIMH MonkeyLogic 2 (Apr 21, 2017)

 + Now the length of the strobe pulses can be customized in the main menu,
   according to the required specification of the recording system.
 
 ~ Now eventcodes are marked in the behavioral data file, even though the
   'Behavioral Codes' and 'Strobe bit' are not assigned in the main menu. The
   reward-on and -off times of goodmonkey() still won't be recorded unless
   'Reward' is assigned.
   
 ~ A problem that ML couldn't parse out the pic object description when the
   width and height were given as decimals. This happens when the conditions
   file is generated with a script provided in the original ML.

 ~ get_analog_data() is fixed to receive the name of the General Input signals
   in the original ML's convention, like 'gen1'.
   
 ~ Fixed an error in the DirectX 9 detection
0
crponce

Junior Member
Registered:
Posts: 15
Reply with quote  #41 
Hi Jaewon, loving the latest version. I got a couple of observations that may help for the next version:

1) I tried to use the hotkey command as described here ( " hotkey('t', 'goodmonkey(500);'); ") but entering that into the timing function and pressing 't' results in this error:

Error using eval
Too many input arguments.

Error in hm_runtime/hotkey (line 738)
eval(ML_KeyCallbacks{ml_});

Error in hm_runtime/eyejoytrack (line 497)
hotkey(ml_kb);

2) Thank you for restoring ML1's eye calibration routine as described on post entry #31. The last detail missing is that once the SPACE bar was pressed to emit a reward, the target toggled off. In ML2, the target remains on. Would it be possible to add this last item?

Thanks!

 

0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #42 
Hi crponce,

Someone informed me of the same thing as your observation #2, so I fixed it. I will upload the new package soon.

However, I cannot replicate the observation #1. It works okay on my side. Can you send me your task files so that I can test?

By the way, the website is not complete yet. Most of the contents are identical to those of the original ML website.
0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #43 
* Changes in NIMH MonkeyLogic 2 (May 2, 2017)

 + The reward count is displayed above the water drop icon now.
 
 ~ The conditions file header items that contain spaces before and after them
   are read correctly now. (Thanks to Ben Basile)
 
 ~ The fixation target in the 2-D transformation calibration is turned off
   when a reward is delivered with a space key press. (Thanks to Ben Basile and
   crponce)
   
 ~ Calibration points in the 2-D transformation calibration can be toggled off
   even when they are not currently on the fixation points.
0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #44 
* Changes in NIMH MonkeyLogic 2 (May 8, 2017)

 + STM and TTL can be triggered in the simulation mode now, if actual hardware
   exists.

 + Reward on & off times are recorded even when the Reward I/O is not assigned.
 
 + As in the ML1, 'reward_dur' is defined as an editable variable by default
   and its value can be increased/decreased by 10 with the '-' & '=' keys.

 + If the DAQ boards indicated in the loaded configuration do not exist, the
   configuration is not automatically saved when the run button is clicked.
   This prevents the I/O mapping in the configuration file from being
   overwritten when the task is temporarily tested in a different computer.
0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #45 
* Changes in NIMH MonkeyLogic 2 (May 11, 2017)

 + Now the behaviorsummary shows the figure drawn by the userplot function, if
   the function is provided.

 + Another reward mode is added to the 2-D spatial transform calibration, in
   which the fixation cue moves to the next calibration point upon the space
   key press.
   
 ~ The gain range in the origin-gain calibration is increased from [-10 10]
   to [-20 20].
 
 ~ The index of the currently selected calibration target was not updated
   appropriately in the 2-D spatial transform calibration, if a target was
   chosen by a mouse click. As a result, when the target presentation was
   resumed by the keyboard, the target adjacent to the previously selected one
   was displayed, instead of the one adjacent to the current target. This
   problem is fixed now.
 
 ~ The problem that the reward function did not get custom reward variables
   when it was tested from the main menu is fixed.
0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #46 
* Changes in NIMH MonkeyLogic 2 (May 18, 2017)

 + Support for individualized configurations and editable variables. When a
   conditions file is selected, the very last saved configuration is loaded by
   default. Then, the configuration for a particular subject can be chosen by
   changing the subject name.
   
 + When the data file with the same name exists already and the user chooses
   overwriting, the old file is moved to Recycle Bin rather than deleted
   directly. The question dialog is updated to show the choices and actions
   more clearly.
   
 + The following keyboard controls work in both origin-gain and 2-D spatial
   transform calibration methods now.
   
   r: manual reward
   -: decrease reward duration by 10 ms
   =: increase reward duration by 10 ms
   c: eye slip correction
   u: undo eye slip correction
   
 + The eye offset at the time of the slip correction during trials (manual
   correction by the 'c' key or auto drift correction) is recorded to the data
   file.
 
 ~ Many minor fixes
0
zym1010

Junior Member
Registered:
Posts: 1
Reply with quote  #47 
Hi,

I wonder if it's possible to host the project on GitHub, as that would make contributing to the project much easier. NIMH may want to have tight control over what features should be added, but this is not in conflict with hosting the code on GitHub. Thanks!
0
yannlong

Junior Member
Registered:
Posts: 1
Reply with quote  #48 
Hi Jaewon, thanks for the great work,

Is there a problem with the FTP server at nih.gov? I tried downloading the ML 2 package from multiple machine and I always get an 'error 425 failed to establish connection'.

Thanks
0
aboharbf

Junior Member
Registered:
Posts: 16
Reply with quote  #49 
Hey Jaewon, I am trying to install NIMH MonkeyLogic 2 but it seems the download links, both provided by you and present at the site below:

https://www.nimh.nih.gov/labs-at-nimh/research-areas/clinics-and-labs/ln/shn/monkeylogic/download-information.shtml

If this is a temporary outage, Apologies for bringing it up. Thanks.
 
0
Jaewon

Senior Member
Registered:
Posts: 344
Reply with quote  #50 
There was a network problem in NIH. It seems that anonymous FTP still doesn't work.
0
Previous Topic | Next Topic
Print
Reply

Quick Navigation: