AFNI Message Board

Dear AFNI users-

We are very pleased to announce that the new AFNI Message Board framework is up! Please join us at:

https://discuss.afni.nimh.nih.gov

Existing user accounts have been migrated, so returning users can login by requesting a password reset. New users can create accounts, as well, through a standard account creation process. Please note that these setup emails might initially go to spam folders (esp. for NIH users!), so please check those locations in the beginning.

The current Message Board discussion threads have been migrated to the new framework. The current Message Board will remain visible, but read-only, for a little while.

Sincerely, AFNI HQ

History of AFNI updates  

|
January 24, 2020 04:13PM
Hi Rick,
thanks much ! I am attaching the stim_analyze_modern script at the bottom, with my edits for clarity. from the 3dDeconvolve cmd --

3dDeconvolve \
-nodata 1680 2.000 \
-polort 2 \
-concat '1D: 0 168 336 504 672 840 1008 1176 1344 1512' \
-num_stimts 1 \
-stim_times 1 movemouth.0004_01_mouth.1D GAM \
-stim_label 1 mouth \
-x1D X.movemouth.0004.xmat.1D

from the 3dDecon help, I see that MION(d) could be used instead of GAM (although you mentioned the default was BLOCK?) -- In our experiment, these events are motor outputs of the participant, that last for <1 second. My questions are, 1) is it still appropriate to use the MION(d) if d is so short, or would it be more appropriate to convolve the MION response with the event-times only? 2) our lab's "preferred" mion fxn is piped through fsfast, which takes additional input parameters (ie., mion response is a modified gamma fxn with delta=0, tau=8, exponent=0.3) -- I'm wondering if these are specified as default values somewhere in AFNI, or how it is handled.

thanks much.
best,
Geena

**********
#!/bin/tcsh

# try to find reasonable random event related timing given the experimental
# parameters

# ---------------------------------------------------------------------------
# some experiment parameters (most can be inserted directly into the
# make_random_timing.py command)

# ---------------------------------------------------------------------------
# execution parameters
set iterations = 10000 # number of iterations to compare
set seed = 1234567 # initial random seed
set outdir = stim_results # directory that all results are under
set LCfile = NSD_sums # file to store norm. std. dev. sums in

# set pattern = LC # search pattern for LC[0], say
set pattern = 'norm. std.' # search pattern for normalized stdev vals


# ===========================================================================
# start the work
# ===========================================================================

# ------------------------------------------------------------
# recreate $outdir each time

if ( -d $outdir ) then
echo "** removing output directory, $outdir ..."
\rm -fr $outdir
endif

echo "++ creating output directory, $outdir ..."
mkdir $outdir
if ( $status ) then
echo "failure, cannot create output directory, $outdir"
exit
endif

# move into the output directory and begin work
cd $outdir

# create empty LC file
echo -n "" > $LCfile

echo -n "iteration (of $iterations): 0000"

# ------------------------------------------------------------
# run the test many times

foreach iter (`count -digits 4 1 $iterations`)

# make some other random seed

@ seed = $seed + 1


# create randomly ordered stimulus timing files
# (consider: -tr_locked -save_3dd_cmd tempfile)

make_random_timing.py -num_runs 10 -run_time 336 \
-tr 2 \
-pre_stim_rest 10 -post_stim_rest 40 \
-rand_post_stim_rest no \
-add_timing_class stim 1 \
-add_timing_class rest 2 -1 45 dist=decay_fixed \
-add_stim_class mouth 20 stim rest \
-prefix threat_app.$iter \
-write_event_list events.$iter.txt \
-show_timing_stats \
-seed $seed \
-save_3dd_cmd cmd.3dd.$iter.txt >& out.mrt.$iter


# consider: sed 's/GAM/"TENT(0,15,7)"/' tempfile > cmd.3dd.$iter
# rm -f tempfile

# now evaluate the stimulus timings

tcsh cmd.3dd.$iter.txt >& out.3dD.$iter

# save the sum of the 3 LC values
set nums = ( `awk -F= '/'"$pattern"'/ {print $2}' out.3dD.${iter}` )

# make a quick ccalc command
set sstr = $nums[1]
foreach num ( $nums[2-] )
set sstr = "$sstr + $num"
end
set num_sum = `ccalc -expr "$sstr"`

echo -n "$num_sum = $sstr : " >> $LCfile
echo "iteration $iter, seed $seed" >> $LCfile

echo -n "\b\b\b\b$iter"
end

echo ""
echo "done, results are in '$outdir', LC sums are in '$LCfile'"
echo consider the command: "sort -n $outdir/$LCfile | head -1"
Subject Author Posted

@stim_analyze & modern version

geenaianni January 20, 2020 03:09PM

Re: @stim_analyze & modern version

rick reynolds January 21, 2020 02:24PM

Re: @stim_analyze & modern version

geenaianni January 24, 2020 04:13PM

Re: @stim_analyze & modern version

rick reynolds January 27, 2020 10:54AM

Re: @stim_analyze & modern version

rick reynolds January 27, 2020 01:34PM

Re: @stim_analyze & modern version

geenaianni January 27, 2020 03:54PM

Re: @stim_analyze & modern version

rick reynolds January 28, 2020 09:29AM