################################################################### LATEST EMAIL UPDATE: 15 Apr 2014 ################################################################### Here are the main changes (see UPDATES.txt for complete history, detailes of last 2 updates appended below): 1) tkregister now auto detects sample policy "round" (in MGH register.dat's from tkregister2/bbregsiter) vs. "trunc" (original tkregister). You can also change the sampling policy live with the F3 interface. For a while, MGH tkregister2 and bbregister register.dat's have had a line containing "round" after the transform matrix. With previous csurf versions, this was only a problem when you mixed tkregister2/bbregister-derived matrices with csurf tkregister ones. Now they can be mixed. For gory details, see csurf: Help -> tkreigster 2) tkregister/paint/tksurfer/tkmedit autodetect and use "round" vs. nothing (or "tkregister") in MGH register.dat (e.g., for surface normal sampling of raw timecourses from tksurfer label, 3D stats overlays in tkmedit). 3) tksurfer and tkmedit can now save a log containing the tcl commands executed when you do any interface action (so you quickly make a tcl script to automate any series of interface actions). To turn this on, click the "tcl:" label in tksurfer or tkmedit, or use: "Preferences -> Log tksurfer/tkmedit actions as tcl cmds" 4) fourier can compute single-subject p-values based on permutation of frequencies (multi-threaded, still takes a half an hour). This generally returns more significant p-values than p-values from the original F-ratio calculation. To use, set a non-zero value to number of permutations on the Fourier panel 5) added more 32-bit libs so nmovie works on curr default 64-bit Linux install 6) update Help -> csurf/tkregister/tksurfer/tkmedit To install: cd mv csurf csurf-YYMMDD tar xvfz csurf0.8-{mac,linux}-YYMMDD.tgz cheers, marty ### UPDATE: 15 Apr 2014 --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 ### UPDATE: 7 Mar 2014 [previous, for reference] --mk0{.csh} -- afni/progs/dist/inst: 32b libs AFNI/tk{surf,med,reg} on 64b OS --mk0,mk0.csh: better dist/inst/afni/ for precompiled libs --FreeSurferEnv.{csh,sh}: linux add LD_LIBRARY_PATH (centos 32bit for 64bit) --fourier.c: read AFNI float too (to short buff), was: read as short w/o warn! --rm unused -lGLU from tk{medit,register,strip} => still in tk{surfer,wheel} --paint.c: add subvoxel -offset for testing --paint.c: also read 256^3 or 512^3 float .mgz/.mgh (OK for -complex, too) --runra.sh: fix 'which' response testing --lib/help/csurf/tkmedit --tkmedit.c,tcl: opencursorflag, cmd-O (overlay forces open) --tkmedit.tcl: if -pf,-tr infix already there and $force, overwrite --tksurfer.c: bad neighbors warnings in read_binary_surface, find_neighbors --tksurfer.c: find_neighbors catches >100 nei vtmp overflow (vtx=0:surf bug?) --brik2cor.c,fill.c,orig2cor.c,regcor.c,surfcombine.c,wmfilter.c =>void *lcalloc --surlib.c,tkmedit.c,tkregister.c,tksurfer.c,tkstrip.c => void *lcalloc --surf.c: fix overflowing pack tables w/512: read actual image size (bucky bug) --surf.c: increase max vtx/faces 4M->6M for unsplit hemis cerebellum recon --tkmedit.tcl: pass/warn kcnt from F2 panel --wmfilter.c: add -kcnt to allow 7x7x7 kernel, -kcnt clamps to 5 or 7 --lib/help/tkmedit/{wmtrunc,wmfiltergau,wmfilterstd} --tkmedit.tcl: catch attempt to add second infix --tkmedit.tcl: planefilter done popup says how to save, warns infix name change --tkmedit.tcl: check tmp wmfilter outfile exists before create, rm when done --tkmedit.tcl: middle-click on TRUNC button applies trunc to editable buffer --mk0,mk0.csh: add 3drotate to saved-from-AFNI --tkmedit.tcl: report GaussPlaneFilter kfwhm and order ops: Trunc+PlaneFilter --tkmedit.c: allow 'no -f' tcl script, quit tkmedit local if COR-001 not found --tkmedit.c: fix flip_corview_xyz crash w/512 --brik2cor.c: noresampflag: hires-aware override HEAD for 1pix=>1pix --tksurfer.tcl: add bokflag/sulfrac/gyrfrac to "NormSamp, Clust Controls" popup --tksurfer.c: add -bokflag/-sulfrac/-gyrfrac, paint.c:paint_surface Bok correct --tksurfer.c: read_binary_curv saves curvmin/max in globals --csurflibs/csurflib.h: add .thickness to vertex structure (!) --paint.c: Bok correct: use curv and middle-of-cos bump, req's dfrac{min,max} --paint.c: copy thickness read into curv field to new csurflib .thickness memb --calcvert.c: no strsep() in IRIX: back port to strtok() --calcimg.c: no rintf() in IRIX, ifdef IRIX rint() --mk0: IRIX insttmp: fix tar z flag --*.cpp Makefiles: rm -Wall from IRIX CFLAGS since just here use CC, not gcc/g++ --all Makefiles: IRIX CFLAGS: add "-n32 -mips3", LIBS: -lm,-ljpeg after -ltiff --IRIX csurflibs/clustlib.h: ifdef C++ header files: => /**/,,/**/,,/**/ --mk0: gmake using IRIX CC won't accept .cpp, so mk0 prog moves files to .cc --IRIX tifflib patch: rm C++ style comments from tiff2pdf.c,tiff2pdf.c --IRIX tifflib patch: tif_stream.cxx: ios::iostate old_state; => int old_state; --IRIX tifflib patch: libtiff/tif_stream.cxx: #include => --mk{.csh}: $makeprog set but not used (found w/IRIX compile), report set env --mk0{.csh}: rm double AFNI install, req confirm use existing AFNI if not force