################################################################### LATEST EMAIL UPDATE: 04 May 2014 ################################################################### Here are the main changes (see UPDATES.txt for complete history, detailes of last 2 updates appended below): 1) new "label:" button "C" to generate overlap labels. In contrast to the "RC" button (read, re-cut label), this cut button does *not* restore currently invisible vertices, so doing "C" for 2 or more labels leave the intersection (AND) of them, saveable with "W". 2) add MATLAB "Jet" colorscale (colscale=15, blue/cyan/yellow/red) Bounds of scale (dark blue, dark red, clamped beyond) set by truncphase entries, accessible on large [fn]-F3 panel and View Functional Data as "jt", reversed w/invphase. Unlike other scales, extreme values are dark so best adapted to full rank data. If fthresh/fmid not zero, fades to background. 3) if tkregister sample policy is "round", add 1/10 micron (0.0001 mm) offset to transform to avoid aliasing zoomed voxels at zoom=2. 4) "R" button on "val:" line now also accepts a 1frame 1D float *.mgh file (e.g., output of FSL/freesurfer surface-based pipeline). Note that these files typically do not contain indication of which hemisphere they came from (if fsaverage, can be read into either!). The "PaintFile:", "StatMask Paintfile:" and "val:" dropdowns will be loaded with any available .w or .mgh files. The tksurfer read_binary_values command auto-detects magic number in valfile or curv, or *.mgh suffix to determine format. 5) Setup Align/Funct scan accepts conforming (256/512) .mgz file for MOVEABLE (for qT1 pseudo 'functional' overlay) 6) conflicting internal variable name semantics cleanup, csurf vs. C/tcl: [hopefully be no visible effect of this!!] csurf: $session = "130503MS" $scandir = "image/polar1" => change varname to: $iscandir C/tcl: $session = "/usr0/fspace/130503MS/image" => varname: $isession $scandir = "polar1" To install: cd mv csurf csurf-YYMMDD tar xvfz csurf0.8-{mac,linux}-YYMMDD.tgz cheers, marty ### UPDATE: 04 May 2014 --register.tcl: if round policy change accepted, update roundregorigflag --lib/help/csurf/{csurf,setuprender} update --wrappers.tcl: incr okclose win name (crash from double-click upper left 'x') --tksurfer.c: invphase flips MATLAB_JET, silently correct flip scale limits --lib/help/tksurfer/{val_jt,label} update --lib/help/csurf/{makerelaxationcuts,tksurfer} update --tksurfer.tcl: DSP->D, add C: like DSP, but recuts label for 2+ labels overlap --tksurfer.c: read_label_to_annot_using_col can recut (with no restore) --newhelpfile: lib/help/tksurfer/label_readcut --lib/help/tksurfer/{smooth_steps,smooth} --lib/help/tksurfer/{label_write,label_read,label_clear,label,fill,cuts} --tksurfer.tcl: DSP->D, add C: like DSP, but also re-cuts label to get overlap --tksurfer.c: read_label_to_annot_using_col can recut: find AND of 2+ labels --### conflicting internal varname fix done: [i]session/[i]scandir var rename --tkstrip.tcl: match new tkstrip.c name: $session->$isession (incl "image") --tkstrip.c: srname->sename, tclexp sename: $session->$isession --csurf: add redundant/safe "set iscandir $page" (usu. done by browse notebook) --tkregister.tcl: match new tkregister.c name:$session->$isession (incl "image") --tkregister.c: rename [p]srname->[p]sename, tclexp sename: $session->$isession --tkmedit.tcl: match new tkmedit.c name: $session->$isession (incl's "image") --tkmedit.tcl: rm unused proc setsession --tkmedit.c: rename tcl export of sename: $session -> $isession --wrappers.tcl: $session -> $isession (affects tkmedit, too) --{movie360,phasemovie,offsetmovie,fs-make,borders}.tcl: $session -> $isession --{eccen,polar,fs,real,twocond}-{flat,views}.tcl: $session -> $isession --tksurfer.tcl: rm unused proc setsession --tksurfer.tcl: match new tksurfer.c name: $session->$isession (incl's "image") --tksurfer.c: rename tcl export of sename : $session -> $isession --csurf: rename global $scandir to $iscandir (usu. includes "image") --csurf: rename proc getfunctscandirslist -> getfunctiscandirslist --tksurfer.tcl: rm tksurfer.tcl trace setting exported $scandir to no-image $dir --csurf: $session="130503MS" $scandir -> $iscandir="image/polar1" (w/"image") --C/tcl: sename=$session -> $isession="/usr0/fspace/130503MS/image" (w/"image") scname=$scandir="polar1" --### begin fixing conflicting internal csurf vs. C/tcl var meanings --lib/tcl/fs-make.tcl: also write fs/fm as wfiles, now uses setfile, needs $dir --csurf: fieldsigncmd: pass dir=[trimoneparent $page] for fs-make setfile --update lib/help/tksurfer/val_w1 --newhelpfile: lib/help/tksurfer/val_jt --tksurfer.tcl: F3 MATLAB jet "jt" colscale, scale ends: truncphasemin/max --tksurfer.c: MATLAB_JET=15 colscale (e.g. fs), fade, {s}f{thresh,mid,slope} --tkregister.c: add 1/10 micron offsets to xform matrix to fix zoom=2 aliasing --tkregister.c: left ifdef'd out ROUNDTARG code in drawslice/select_pixel --lib/tcl/real_{views,flat}.tcl: if floatstem is *.mgh, *don't* append -$hemi.w --csurf: getuniqwfilelist accepts *.mgh files (put into Paintfile dropdown) --csurf: getuniqwfilelist checks -[rl]h.w there before stripping it --lib/tcl/{polar,eccen,twocond}-{views,flat}.tcl: use $maskfloatstem if exists --csurf: functscan READ HEADER reads mgh/mgz header w/tkmedit to fill in panel --csurf: change confusing check label on main interface: surfload -> load2surf --csurf: allow FUNCT=>SUBJ button to pass .mgz file to tkregister as MOVEABLE --tkmedit: make -header also work w/-f or no -f, update help --tksurfer.c: read_binary_values accepts 1frame-1D-float-.mgh file --tksurfer.tcl: also load .mgh files to "val:" dropdown --tkregister.c: fixed select_pixel bad bounds chk crashing SAG right edge click --tkregister.c: fix bad imnr1_2 select_pixel bounds check --tkregister.tcl: double click tkwin raises gl window (replace rm'd POP GL) --tkregister.tcl: showvisible after 'set overlay blah' update TARGET/MOVEABLE --csurf: fix addfunctscan showstopper: setinitroundflag before defaults created --lib/tcl/setdefpatchview.tcl: "cortex" made synonym of "full" for fsaverage --tksurfer.tcl: add cortex to patch look list --tksurfer.tcl: use shrinkcomboarrows --wrappers.tcl: add shrinkcomboarrows (height:18->17/14Fedora, width:15->13) --edit: lib/help/csurf/{setupfunct,tksurfer} ### UPDATE: 15 Apr 2014 [previous, for context] --edit: lib/help/csurf/{setupfunct,tkregister,tkmedit,tksurfer} --tkmedit.tcl: bold "tcl:" if clk'd to log interface tcl cmds, bold if startup --tksurfer.tcl: bold "tcl:" if clk'd to log interface tcl cmds, bold if startup --tkregister.tcl: updated help panel bindings --new files: lib/help/tkregister/{savereg,readreg,round} => add to mk0{.csh} --csurf: "init round" tick allow INIT old/new regdat, report current, else def=1 --tkmedit.c: roundreg for do_regupsamp_stat,get_timecourse,write_roi_timecourses --tksurfer.c: read regdat round, use in paint_surface,normdsamp_timecourse_stat --tkregister.tcl: move/uncover gl window w/interface size change --tkregister.c: export func/vars to save GL winxy for interface size chn --tkregister.tcl: popup warn change round policy on SAVE REG --tkregister.tcl: F3 omit unused top line widgets (POP GL, READENV), squish --tkregister.tcl: F3 tick report/override roundregflag read from register.dat --tkregister.c: tcl export roundregflag so tkregister.tcl can change on the fly --tkregister.c: optional rint() vs. 2 int truncates (reversed) and one floor --tkregister.c: read/write optional register.dat "round" to match tkregister2 --tkmedit.tcl: logcmd all button/entry/check/radio --tkmedit.tcl: logcmd: {r,w}{native,upsamp}{mask,stats},gettseries,do_imim2op --tkmedit.tcl: logcmd: setfile,test_{write,read}_images,run_wmfilter,check*,def* --tkmedit.tcl: turn off incorrect pixval when zoomed (TODO: fix, turn back on) --tkmedit.tcl: tkmeditlogflag, enabledisablelog, setfile does logcmd --wrappers.tcl: proc controls does logcmd's for its entries,checks --lib/help/tkmedit/imim2op, lib/help/csurf/csurf --tkmedit.c: add 2nd imim2op twocol oper: new:1=ell2on (existing:0=ell2off) --tksurfer.tcl: floss fieldsign tk, fixcolscale: fix fieldsignflag, report flags --tksurfer.c: export fieldsignloaded: tksurfer.tcl test fail read, fs scalebar --csurf/tk{surfer,medit,strip}.tcl: rm procs foundbywhich, canwriteormakefile --wrappers.tcl: add foundbywhich, canwriteormakefile, cleanup/reorder/comment --tkstrip.tcl: rm canwriteormake, foundbywhich (now in wrappers.tcl) --tksurfer.tcl: rm foundbywhich, canwriteormake (now in wrappers.tcl) --tkmedit.tcl: rm canwriteormake, foundbywhich (now in wrappers.tcl) --csurf: Preferences -> Log tksurfer actions as tcl cmds --tkmedit.c, export/option tkmeditlogflag so csurf can pass --tksurfer.c: if tksurferlogflag, send tcl command to log left_click x,y --tksurfer.c, export/option tksurferlogflag: tksurfer can chk, csurf can pass --tkmedit.tcl: pidnamerunning now uses ps uxww for Linux, too --tkmedit.tcl: rm xhost+ req send inter-proc tclcmd + findsendto from SEND PNT --tksurfer.tcl: rm xhost+ req send inter-proc tclcmd + findsendto from SEND PNT --tksurfer.tcl: tksurferlogflag: logcmd every interface action -> tksurfer.log --tksurfer.tcl: logcmd: setfile,{r,w}{vc,val,stat,surf},paint,smooth,roi,shrink --tksurfer.tcl: clicking "tcl:" toggles enable/disable tksurferlogflag --wrappers.tcl: testreplace uses logcmd (wraps many interface commands) --wrappers.tcl: add open/write/close log interface tcl cmds --paint.c: fix read opts bug disabling -bok (tksurfer:paint_surface() OK) --mk0{.csh}: install extra precompiled below --nmovie: Linux: older bin (newer 395K not compat w/Fedora7,Centos5.9 32b libs) --dist/precompiled/lib/Linux-i386 libs for (just!) 32b nmovie on def 64bit OS --add5: libXaw.so.7, libXi.so.6, libXxf86vm.so.1, libglut.so.3, libtiff.so.3 --lib/help/csurf/makerelaxationcuts (redo/multipleLINE) --fourier.c: funcptr wrapper for loop of threads for compute_fourier_stat_slice --fourier.c: afs/cfs/ts->loc, sigim,rawim(big=0.3G)->4D for threaded (5% slower) --fourier.c: permute freq, recalc F, p=fraction-permuted w/higher F => better