###################################################################
LATEST EMAIL UPDATE: 05 Oct 2013
###################################################################

I've updated the mac and linux csurfs here:

  http://www.cogsci.ucsd.edu/~sereno/.tmp/dist/csurf0.8-mac-131005.tgz
  http://www.cogsci.ucsd.edu/~sereno/.tmp/dist/csurf0.8-linux-131005.tgz

Here is the summary of changes:

  ### 05 Oct 2013 (tksurfer read3D/livepaint, add stats to sample timecourse)
  1) tksurfer live read 3D stats (click "val:" to get "val3d:" alternate)
  2) tksurfer live paint 3D stats, run surfclust
  3) extract timecourse w/normsearch can also get stats ("S" button on "label:")
  4) allow create functional inside subject
  5) tksurfer/tkmedit/csurf help panels update

About 1000 new lines, but the main visible
effect is the "S" button on the "label:" line
(dump ASCII stats along with ASCII timecourses),
and the live paint options that appear when you
click the bold "val:" (it changes to "val3d:"
for reading in 3D stats BRIKs and live painting
and clustering them on the surface).

I wrote the live paint stuff to make sure everything
was working correctly (and to verify that the much
more complicated Bruce normal calculation is virtually
identical to the original surfer version I'm using
here).

Any float stat BRIKs can be read in as long as they are

  ORIENT_SPECIFIC 
  0 3 4

like any standard transverse EPI (so that the same
register.dat can be used on them).  I found the live paint
function in tksurfer useful for quickly seeing the effects
of different paint depths (right-click "label:" to get a
popup for live adjustment of surface normal sampling
parameters).

Finally, for data in which there is only one functional
per subject (but who would ever want to do that? :-} ),
you can now make a functional dir inside of a subject.

cheers,
marty

##############
UPDATE DETAILS
##############

### UPDATE: 05 Oct 2013
--csurf: init select "mm" or "frac" sets normdsampsearchflag (tksurfer PNT,T,S)
--tksurfer.tcl: add right-click "label:" for normd samp parmaters pop-up
--phasemovie.tcl,offsetmovie.tcl: add "SAVE", expand filename entries
--tksurfer.tcl: add "Norm Samp Controls" on R-click "lab:"
--wrappers.tcl: fixcolor controls, extend controls, tmpcontrols->wrapper,multOK
--lib/help/tksurfer/label_{timecourses,stat},setupfunct -> CSURF_HELP.txt
--lib/help/csurf/setupfunct
--tksurfer.tcl. add S butt (stat+timecourse), overload mid-click S -> just stat
--wrappers.tcl: fix helpwin bug w/arg varnotfile
--tksurfer.c: normdsamp_timecourse_stat no remallocs, stop per-vtx print err
--mk0: update help list
--lib/help/tksurfer/script_{run,edit},smooth
--lib/help/tksurfer/stattpatt,val,val3d_{read,paint,clust},val_lab,val_clear
--tksurfer.c: fix re-read current surface w/interactive 1vtx timecourse click
--tksurfer.tcl: mk printf fmt from selected file for read_native_stats stattpatt
--tksurfer.tcl: also load _???.bfloats into val3d
--tksurfer.tcl: 5 new help bindings for val3d entry line
--tksurfer.tcl: fix SMOOTH button bug: smoothing real component twice
--tksurfer.c: paint_surface/normdsamp_timecourse_stat: ensure load orignormals
--tksurfer.c: add clear_stats, inline mknativestatbufs and enforce init 3d dims
--lib/help/tksurfer/val_clear: updated for full clear
--tksurfer.tcl: overload "val:" middle-click CLR with clearall (val{bak}s,stat)
--paint.c: fixed incorrect "###" in successful thickness file read
--tksurfer.tcl: use default search for paint_surface (no current controls)
--tksurfer.tcl: add PNT (chk/autoread regdat, paint), CLU (run surf_cluster)
--tksurfer.tcl: toggle val<->val3d like tkmedit, autoread real/cplx 3d stats
--tksurfer.c: fix paint_surface (uniqvoxnumflag != normdsampuniqvoxflag)
--tksurfer.c: 3d normd stat averages sampled stats, but avg not yet used
--tksurfer.c: 5diffASCII: justtime/realstat/cplxstat/realstat+time/cplxstat+time
--tksurfer.c: normdsamp_timecourse_stat: stat: cp statdims->rawdata loop bounds
--tksurfer.c: normdsamp_timecourse_stat either timecourse+xyz or stat+xyz
--tksurfer.c: write_label_timecourses => write_label_timecourses_stats w/outtype
--tksurfer.c: get_timecourse -> normdsamp_timecourse_stat: add outtype arg
--tksurfer.c: add clear_valbaks (second position on complex stack)
--tkmedit.c: statnslices->stat_zdim, stat{x,y}res -> stat{y,x}_dim (whew!)
--tksurfer.c: statnslices->stat_zdim, stat{x,y}res -> stat{y,x}_dim (whew!)
--tksurfer.c: write_label_timecourses => write_label_times_stats w/outtype arg
--tksurfer.c: get_timecourse: don't reload orig surf for every vertex!
--tksurfer.c: get_timecourse: flag arg to just get xyz
--tksurfer.c: add native{real,imag,mask}loadedflag for 3D state
--wrappers.tcl: testreplace accepts args for funct to use if okreplace says go
--tksurfer.c: maintain/export/report val{2}{bak}loadedflag, statloadedflag
--lib/help/csurf/fourierflow.gif
--csurf: use new helpwin gif img display for helpwin setupfour
--wrappers.tcl: one inline (350 wide) or right (650 tall) gif img in helpwin
--tksurfer.tcl: glob statpatt/statpatt_m, rect<->disk on button
--tksurfer.c: get_timecourse: fix use bad normals (curr surf, not orig)
--tksurfer.c: verify tksurfer normal calc equivalent to surflib.c (whew!)
--tksurfer.c: function to run surfclust on complex 3D stats w/system()
--tksurfer.c: wrap paint.c:paint_surface(), use new normd{} opts, orig normcalc
--tksurfer.c: add statpatt (generic interface) and statpatt{r,i,m}, usage
--tksurfer.c: get stat{yres,xres,nslices} from readHEAD or count-bfloat+read-hdr
--tksurfer.c: new opts: -{real,imag,stat}3d signal live paint 3D stats
--tksurfer.c: read_native_stat, mknativestatbufs, statfileformat_from_suff
--tksurfer.c: swap_stat_val always set statloadedlfag (e.g., live re-read/swap)
--csurflib.c,h: add get_bfloatdims
--csurf: medtestrender: no longer pass -stat{yres,xres,nslices} to tkmedit
--tkmedit.c: rm -stat{yres,xres,nslices} usage (compat: left overridden getopt)
--tkmedit.c: get stat{yres,xres,nslices} from read HEAD or count-bfloat+read-hdr
--paint.c: setup write_label_stats framework => ABANDON (do in tksurfer)
--paint.c: rename tranform() => vtx2rawdata()
--slices.tcl: allow tick off different planes, cursors
--wrappers.tcl: tmpcontrols checkbox if var ends *flag, takes var "whitespace"
--tkmedit.c: add partial deriv gaussian filter to smooth_3d, save in bytebuffs
--tk{surfer,medit,register}.tcl: uniformize testclose
--help: lib/help/csurf/{setuprender,setupfield}
--borders.tcl: floodfill_retin_patches -> find_retin_borders, fix defaults
--csurf: floodfillretincmd -> findretinborderscmd, fix defaults
--tksurfer.c: floodfill_retin_patches() -> find_retin_borders(), fix defaults
--tkmedit.c: accept tkmedit *.mgh
--slices.tcl: add nocursorflag, bigcursorflag to tmpcontrols popup
--tkmedit.tcl: mv revphase left of angleoffset (=> angoff) like csurf/tksurfer
--help: lib/help/csurf/tkmedit
--help: lib/help/tkmedit/{roi,roi_read,roi_ckmask}
--tkmedit.tcl: labelmaskflag "m" checkbutton for ROI/label mask panel
--tkmedit.c: if labelmaskflag, mask overlay where label/ROI=0
--help: lib/help/csurf/{csurf,makenewfunct}
--csurf: mknewfunct can insert funct session inside an already-made subject
--csurf: fix chk cplxmask render (unrec'd single sub phase mask button var)
--tksurfer.tcl: ask autocreate missing subjdir labeldir
--tksurfer.tcl: ask autocreate missing functdir rgbdir (was only chk subjrgbdir)
...




