====== NeuroElf - global configuration (variable) ====== ===== Motivation ===== For the purpose of keeping a globally accessible configuration, a single 1x1 struct variable, **''ne_gcfg''**, stores settings and this wiki page describes the more important ones as a reference for scripting functionality ===== Coarse structure ===== The structure ''ne_gcfg'' contains the following fields (all of which are 1x1 struct variables, unless otherwise noted): * **''.c''** - global run-time, UI, and @xini-based configuration, error handling, etc. * **''.cc''** - child-window configuration (undocked windows, beta plotter, etc.) * **''.fcfg''** - figure-based configuration and @xff handle shortcuts, including sub-structures for general UI dialogs * **''.h''** - @xfigure and Matlab UI handle shortcuts (equally including sub-structures for dialogs) * **''.lut''** - LUT (@xff) object with lookup-table colors for VMR overlay * **''.poi''** - POI (@xff) object with cluster-table for surface-based objects * **''.tio''** - structure with @transimg handles used in main UI (slices, render) * **''.voi''** - VOI (@xff) object with cluster-table for voxel-based objects * **''.w'' and ''.wc''** - workspace (loaded @xff objects in main UI) ==== Figure-based configuration ==== The subfield ''ne_gcfg.fcfg'' contains the fields described below (any fields in the structure not mentioned here either have no functionality or will be removed shortly). === Fixed child-dialogs (single instance allowed per dialog) === * **''.CM''** - contrast manager configuration (to execute [[glm.FFX_tMap|GLM::FFX_tMap]], [[glm.RFX_rMap|GLM::RFX_rMap]], and [[glm.RFX_tMap|::RFX_tMap]]) * **''.MDM''** - multi-study design matrix dialog (to configure and create a GLM with [[mdm.ComputeGLM|MDM::ComputeGLM]]) * **''.MKDA''** - MKDA interface (configuring and then executing [[plp.MKDA|PLP::MKDA]]) * **''.RM''** - RFX- (single-level) mediation dialog (to execute [[mediationpset]] and store results in a VMP) * **''.Render''** - Render dialog (feeding [[ne_render_setview]] and [[ne_render_ex]]) * **''.VisMontage''** - montage dialog (feeding [[ne_vismontage_ex]]) These dialogs' configurations are described in greater detail on their own pages. === Main UI configuration settings === * **''.asimthr''** - thresholds passed into ''[[alphasim]](VOLUME_SIZE, struct('thr', **ASIMTHR**, ...))'' * **''.chair''** - status of cross-hair visibility (read-only) * **''.chcol''** - cross-hair color (read-only) * **''.clconn''** - cluster-connectivity setting (for ''[[vmp.ClusterTable|OBJ::ClusterTable]](MAP_NUMBER, MAP_THRESHOLD, struct('clconn', **CLCONN**, ...))'') * **''.clim''** - cluster-restriction limitation (for ''[[voi.Combine|VOI::Combine]](LIST_OF_VOIS, 'restrict', struct('rsize', **CLIM**, ...))'') * **''.clsort''** - cluster-sorting algorithm (for ''[[vmp.ClusterTable|OBJ::ClusterTable]](MAP_NUMBER, MAP_THRESHOLD, struct('sorting', **CLSORT**, ...))'') * **''.cpos''** - current position (in real-world mm, read-only) * **''.cstep''** - step applied to coordinate when using the cursor keys (set by changing the current object, read-write) * **''.ddir''** - last drawing direction (read-only) * **''.dirorder''** - order in which slicing directions are shown when switching through single-slice display * **''.fullsize''** - size of GUI when in full-size (read-only; side effects may occur when altered) * **''.fullsized''** - flag indicating whether GUI is in full-size mode (used by [[ne_swapfullsize]]) * **''.fullsizes''** - size information used to compute smaller UI size (read-only; side effects may occur when altered) * **''.gradient''** - flag indicating whether gradient display mode for current object is active (read-write) * **''.gradientu''** - flag indicating whether gradient display mode for underlay object is active (read-write) * **''.graylut''** - alternative gray-scale coloring scheme for lowest to highest color--i.e. can be used to inverse the display; read by [[ne_setslicepos]] (main UI slice display), [[ne_setsatslicepos]] (undocked slice display), [[ne_vismontage_ex]] (montage generation), [[ne_render_ex]] (slow, high-q rendering), and [[ne_render_setview]] (main UI based rendering); example: ''ne_gcfg.fcfg.graylut = flexinterpn(repmat([0,0,0;1,1,1], 3, 1), [inf, inf; 1, 1; 1/64, 1; 5-1/128, 3]);''; for slice-based methods must be 256x3 in size, values between 0 and 255 * **''.histpos''** - position of histogram and contrast/brightness selector of current object (read-only, side effects may occur when altered) * **''.histset''** - which limit of the histogram is to be set (''0'': auto-detect, ''1'': lower limit, ''2'': upper limit) * **''.histval''** - current range of histogram sliders (read-only, side effects may occur when altered) * **''.imethod''** - currently selected interpolation method (used by ''[[flexinterpn_method]](DATA, COORD_RANGE, OPTIONS, **IMETHOD**))'') * **''.join''** - join-stats mode flag * **''.joinmd2''** - join-maximally-distance-colors mode for two stats maps flag * **''.joinulay''** - underlay-blending mode--if an Underlay object is selected, this is used by [[montagemix]](OVERLAY, UNDERLAY, **JOINULAY**) * **''.localmax''** - search for local maxima in cluster tables * **''.localmaxsrf''** - search for local maxima in surface-based cluster tables * **''.localmaxsz''** - required minimum size for local maxima * **''.mods''** - cell array with key modifiers pressed (read-only) * **''.mpos''** - struct array keeping track of position and modifiers when mouse was pressed down to compute rotation and translation for slice, surface, and render displays * **''.nsynth''** - NeuroSynth-related configuration in fields ''.termm'' (available maps for re-loading) and ''.terms'' (available terms for loading via internet) * **''.noupdate''** - flag to instruct [[ne_setslicepos]] to not update the main UI (or perform any drawing operations) * **''.orient''** - neurological ('''n''') or radiological ('''r''') slice-based display (slice-only) * **''.page''** - current "page" (set of controls and axes objects) being displayed (read-only, use [[ne_showpage]](PAGE) to select a different page; page ''1'': 3-slice view, page ''2'': single-slice view, page ''3'': surface view, and page ''4'': render view) * **''.paint''** - sub-structure with settings for the drawing/painting mode, set by [[ne_setdrawmode]] * **''.bbox''** - bounding-box for paint operation (read-only, no effect) * **''.code''** - intensity value (or color code) being written into the dataset when mode is ''2'' (2D painting) or ''3'' (3D painting) * **''.mode''** - painting mode, determines what action is performed by [[ne_setslicepos]] for drawing events; ''1'': browsing mode (no draw events), ''2'': 2D intensity-drawing (overwrite data with intensity/code, possibly blended), ''3'': 3D intensity-drawing (same), ''-2'' and ''-3'': 2D/3D undo-drawing (re-capture data from UndoBuffer) * **''.over''** - 1x2 range definition, execute drawing only over voxels within this range (incl. limits) * **''.rad''** - selected radius (read-only) * **''.shap2''** - 2D shape for drawing (voxel selection) * **''.shap2w''** - 2D weighting vector (for smoothed drawing mode) * **''.shap3''** - 3D shape for drawing * **''.shap3w''** - 3D weighting vector * **''.shape''** - kind of shape (read-only, '''b''' square/box or '''s''' circle/sphere) * **''.smooth''** - smoothness indicator (read-only, between and including ''0'': no smoothness and ''1'': full smoothness) * **''.smootk''** - smoothness weights from kernel estimate (read-only) * **''.plp''** - current PLP object (used to fill the cluster-table text box with studies in close proximity to current position) * **''.prange''** - p-value range (multiplied with select p-threshold from dropdown control to compute upper statistical threshold) * **''.progress''** - unused struct * **''.renderer''** - selected Renderer property for main UI figure (read-only, side effects may occur when altered) * **''.sframe''** - slicing frame (bounding box, original and experimental feature, no longer reliably used; drawing does not work when altered) * **''.sframez''** - slicing frame (bounding box) when in "zoomed" mode (drawing does not work properly in this mode!) * **''.slicepos''** - position of slice view axes on UI (read-only, used to compute hit-tests, side effects may occur when altered) * **''.srfcfg''** - surface (and render) viewpoint configuration (read-only, can be altered with either [[ne_setsurfpos]] or [[ne_render_setview]]) * **''.anglex''** - azimuth angle * **''.angley''** - zenith angle * **''.time''** - sub-volume selector (only for MTC-based average surface time courses) * **''.trans''** - translation of surfaces/rendered volume * **''.zoom''** - zooming factor of surfaces/rendered volume * **''.stalphared''** - statistics-on-anatomical alpha-reduction factor (for rendering) *