Skip to content

Config_defaults

Page Hayley edited this page Jun 22, 2021 · 2 revisions

Configuring +defaults

Which +defaults parameters are important to double-check for my experiment?

This list was put together since often times there have been certain "key" parameters that were conflicting during merges/rebase of different feature branches, which were then causing issues when attempting to load existing nigelObj files. Ultimately, such issues should be resolved by the User property, but until that is worked out, this reference guide will hopefully help at least identify where problems could arise to facilitate troubleshooting in the future.

Suggestions

In order of importance (where you might look first).

  1. Block.m
  2. Queue.m
  3. Video.m
  4. Experiment.m

Parameter settings in +defaults files

Block.m

This file contains a number of important parameters that seem to get changed sometimes between projects ongoing at KUMC & IIT. Among those are:

  • pars.SavelocDefault (line 25; can be important if drive mappings are not set up)
  • pars.DynamicVarExp (line 74; see explanation starting on line 29, or here)
  • pars.NamingConvention (line 79; see explanation starting on line 29, or here)
  • pars.SpecialMeta.SpecialVars (line 92; see explanation here)
  • pars.VarExprDelimiter (line 110; see explanation here)

Note: these parameters are essentially repeated in Animal.m and Tank.m, so those should be checked as well.

(return to list of suggestions)

Experiment.m

This hasn't yet been encountered, but just thinking about what could happen, if a user is trying to access the same _Pars.mat from two different devices that parse different User names, it could pose problems for them. If you feel confident with handling the +defaults files, then change pars.User (line 25) so that it should take a "static" value. As long as you keep this configured file referencing the specified pars.User value (and not an empty char array), then it should override the default behavior that tries to get the User name from the local machine name. Once you've done that for the first time (if done after tank construction), run:

updateParams(tankObj,'Experiment','direct');
save(tankObj);

Note 1: This could take a while if you change the User name since it will create a new field for that User and re-save all currently-configured parameters with that User.

Note 2: If you do specify a "static" User, then do double-check this file after merging or pulling from the remote repository, since it's unlikely that someone else is using the same User value as you.

(return to list of suggestions)

Queue.m

This is typically just the UseParallel and UseRemote flags, which are around lines 14 - 17. Currently, some of the Video-related methods (particularly if interfaced via the nigelDash UI) will try and use the Isilon, but the methods are not robust for use on the remote machine yet. If working with Videos, it's recommended to set these parameters both to false, then run:

updateParams(tankObj,'Queue','direct');
save(tankObj);

(return to list of suggestions)

Video.m

If you are not using video recordings, simply ensure that pars.HasVideo and pars.HasVidStreams are both set to false (lines 81-82). Otherwise, there are a lot of considerations for video naming schema, which can be considered here.

Clone this wiki locally