Skip to content
Snippets Groups Projects
Commit 3a276a09 authored by Tim Behrens's avatar Tim Behrens
Browse files

added bedpost scripts.

parent 11927009
No related branches found
No related tags found
No related merge requests found
...@@ -2,6 +2,6 @@ include ${FSLCONFDIR}/default.mk ...@@ -2,6 +2,6 @@ include ${FSLCONFDIR}/default.mk
PROJNAME = misc_scripts PROJNAME = misc_scripts
SCRIPTS = regscript remove_vols replacevols replace_and_average_fmrib SCRIPTS = regscript remove_vols replacevols replace_and_average_fmrib bedpost bedpostX bedpostX_postproc.sh bedpostX_preproc.sh bedpostX_single_slice.sh bedpost_postproc.sh bedpost_preproc.sh bedpost_single_slice.sh linkbedpost
all: all:
bedpost 0 → 100755
#!/bin/sh
# Copyright (C) 2004 University of Oxford
#
# SHCOPYRIGHT
if [ "x$SGE_ROOT" = "x" ] ; then
. /usr/local/share/sge-6.0/default/common/settings.sh
fi
Usage() {
echo ""
echo "Usage: bedpost <subject directory> "
echo ""
echo "expects to find bvals and bvecs in subject directory"
echo "expects to find data nodif_brain_mask nodif in subject directory"
echo ""
exit
}
make_absolute(){
dir=$1;
if [ -d ${dir} ]; then
OLDWD=`pwd`
cd ${dir}
dir_all=`pwd`
cd $OLDWD
else
dir_all=${dir}
fi
echo ${dir_all}
}
[ "$1" = "" ] && Usage
subjdir=`make_absolute $1`
subjdir=`echo $subjdir | sed 's/\/$/$/g'`
echo subjectdir is $subjdir
#check that all required files exist
if [ ! -d $subjdir ]; then
echo "subject directory $1 not found"
fi
if [ ! -e ${subjdir}/bvecs ]; then
echo "${subjdir}/bvecs not found"
fi
if [ ! -e ${subjdir}/bvals ]; then
echo "${subjdir}/bvals not found"
fi
if [ `${FSLDIR}/bin/imtest ${subjdir}/data` -eq 0 ]; then
echo "${subjdir}/data not found"
fi
if [ `${FSLDIR}/bin/imtest ${subjdir}/nodif` -eq 0 ]; then
echo "${subjdir}/nodif not found"
fi
if [ `${FSLDIR}/bin/imtest ${subjdir}/nodif_brain_mask` -eq 0 ]; then
echo "${subjdir}/nodif_brain_mask not found"
fi
echo Making bedpost directory structure
mkdir -p ${subjdir}.bedpost/
mkdir -p ${subjdir}.bedpost/diff_slices
mkdir -p ${subjdir}.bedpost/logs
mkdir -p ${subjdir}.bedpost/logs/pid_${$}
mkdir -p ${subjdir}.bedpost/xfms
mailto=`whoami`@fmrib.ox.ac.uk
echo Queuing preprocessing stages
preprocid=`qsub -M $mailto -V -q short.q \
-o ${subjdir}.bedpost/logs -e ${subjdir}.bedpost/logs \
${FSLDIR}/bin/bedpost_preproc.sh ${subjdir} | \
awk '{print $3}'`
echo Queuing parallel processing stage
nslices=`avwval ${subjdir}/data dim3`
bedpostid=`qsub -M $mailto -hold_jid $preprocid -V -q long.q -t 1-$nslices \
-o ${subjdir}.bedpost/logs -e ${subjdir}.bedpost/logs \
${FSLDIR}/bin/bedpost_single_slice.sh $subjdir | \
awk '{print $3}' | awk -F. '{print $1}'`
echo Queuing post processing stage
mergeid=`qsub -M $mailto -hold_jid $bedpostid -V -q short.q \
-o ${subjdir}.bedpost/logs -e ${subjdir}.bedpost/logs \
${FSLDIR}/bin/bedpost_postproc.sh $subjdir | \
awk '{print $3}'`
echo
echo Type ${subjdir}.bedpost/monitor to show progress.
cat <<EOM > ${subjdir}.bedpost/monitor
#!/bin/sh
finished=0
logdir=${subjdir}.bedpost/logs
while [ \$finished -eq 0 ] ; do
nfin=0
if [ -f \$logdir/bedpost.o$bedpostid.1 ] ; then
nfin=\`cat \$logdir/bedpost.o$bedpostid.* |\
grep Done | wc -w | awk '{print \$1}'\`
fi
if [ \$nfin -eq $nslices ] ; then
finished=1
fi
echo "\$nfin slices processed"
sleep 600;
done
EOM
chmod +x ${subjdir}.bedpost/monitor
echo Type ${subjdir}.bedpost/cancel to terminate the task.
cat <<EOC > ${subjdir}.bedpost/cancel
#!/bin/sh
qdel $mergeid $bedpostid $preprocid
EOC
chmod +x ${subjdir}.bedpost/cancel
echo
echo You will get an email at the end of the post-processing stage.
echo
bedpostX 0 → 100755
#!/bin/sh
# Copyright (C) 2004 University of Oxford
#
# SHCOPYRIGHT
if [ "x$SGE_ROOT" = "x" ] ; then
. /usr/local/share/sge-6.0/default/common/settings.sh
fi
Usage() {
echo ""
echo "Usage: bedpost <subject directory> "
echo ""
echo "expects to find bvals and bvecs in subject directory"
echo "expects to find data nodif_brain_mask nodif in subject directory"
echo ""
exit
}
make_absolute(){
dir=$1;
if [ -d ${dir} ]; then
OLDWD=`pwd`
cd ${dir}
dir_all=`pwd`
cd $OLDWD
else
dir_all=${dir}
fi
echo ${dir_all}
}
[ "$1" = "" ] && Usage
subjdir=`make_absolute $1`
subjdir=`echo $subjdir | sed 's/\/$/$/g'`
echo subjectdir is $subjdir
#check that all required files exist
if [ ! -d $subjdir ]; then
echo "subject directory $1 not found"
fi
if [ ! -e ${subjdir}/bvecs ]; then
echo "${subjdir}/bvecs not found"
fi
if [ ! -e ${subjdir}/bvals ]; then
echo "${subjdir}/bvals not found"
fi
if [ `${FSLDIR}/bin/imtest ${subjdir}/data` -eq 0 ]; then
echo "${subjdir}/data not found"
fi
if [ `${FSLDIR}/bin/imtest ${subjdir}/nodif` -eq 0 ]; then
echo "${subjdir}/nodif not found"
fi
if [ `${FSLDIR}/bin/imtest ${subjdir}/nodif_brain_mask` -eq 0 ]; then
echo "${subjdir}/nodif_brain_mask not found"
fi
echo Making bedpost directory structure
mkdir -p ${subjdir}.bedpost/
mkdir -p ${subjdir}.bedpost/diff_slices
mkdir -p ${subjdir}.bedpost/logs
mkdir -p ${subjdir}.bedpost/logs/pid_${$}
mkdir -p ${subjdir}.bedpost/xfms
mailto=`whoami`@fmrib.ox.ac.uk
echo Queuing preprocessing stages
preprocid=`qsub -M $mailto -V -q short.q \
-o ${subjdir}.bedpost/logs -e ${subjdir}.bedpost/logs \
${FSLDIR}/bin/bedpostX_preproc.sh ${subjdir} | \
awk '{print $3}'`
echo Queuing parallel processing stage
nslices=`avwval ${subjdir}/data dim3`
bedpostid=`qsub -M $mailto -hold_jid $preprocid -V -q long.q -t 1-$nslices \
-o ${subjdir}.bedpost/logs -e ${subjdir}.bedpost/logs \
${FSLDIR}/bin/bedpostX_single_slice.sh $subjdir | \
awk '{print $3}' | awk -F. '{print $1}'`
echo Queuing post processing stage
mergeid=`qsub -M $mailto -hold_jid $bedpostid -V -q short.q \
-o ${subjdir}.bedpost/logs -e ${subjdir}.bedpost/logs \
${FSLDIR}/bin/bedpostX_postproc.sh $subjdir | \
awk '{print $3}'`
echo
echo Type ${subjdir}.bedpost/monitor to show progress.
cat <<EOM > ${subjdir}.bedpost/monitor
#!/bin/sh
finished=0
logdir=${subjdir}.bedpost/logs
while [ \$finished -eq 0 ] ; do
nfin=0
if [ -f \$logdir/bedpost.o$bedpostid.1 ] ; then
nfin=\`cat \$logdir/bedpost.o$bedpostid.* |\
grep Done | wc -w | awk '{print \$1}'\`
fi
if [ \$nfin -eq $nslices ] ; then
finished=1
fi
echo "\$nfin slices processed"
sleep 600;
done
EOM
chmod +x ${subjdir}.bedpost/monitor
echo Type ${subjdir}.bedpost/cancel to terminate the task.
cat <<EOC > ${subjdir}.bedpost/cancel
#!/bin/sh
qdel $mergeid $bedpostid $preprocid
EOC
chmod +x ${subjdir}.bedpost/cancel
echo
echo You will get an email at the end of the post-processing stage.
echo
#!/bin/sh
subjdir=$1
#$ -S /bin/sh
#$ -V
#$ -N bp_postproc
#$ -m ae
echo cock
\ No newline at end of file
#!/bin/sh
subjdir=$1
#$ -S /bin/sh
#$ -V
#$ -N bpx_preproc
#$ -m a
echo Copying files to bedpost directory
cp ${subjdir}/bvecs ${subjdir}/bvals ${subjdir}.bedpost
${FSLDIR}/bin/imcp ${subjdir}/nodif ${subjdir}/nodif_brain_mask ${subjdir}.bedpost
${FSLDIR}/bin/avwmaths\
${subjdir}/nodif\
-mas ${subjdir}/nodif_brain_mask\
${subjdir}.bedpost/nodif_brain
${FSLDIR}/bin/avwslice ${subjdir}/data
${FSLDIR}/bin/avwslice ${subjdir}/nodif_brain_mask
echo Done
\ No newline at end of file
#!/bin/sh
subjdir=$1
slice=`expr $SGE_TASK_ID - 1`
slicezp=`${FSLDIR}/bin/zeropad $slice 4`
#$ -cwd -q long.q
#$ -S /bin/sh
#$ -V -N bedpostX
#$ -l arch=tru64
#$ -m a
${FSLDIR}/bin/xfibres\
--data=$subjdir/data_slice_$slicezp\
--mask=$subjdir/nodif_brain_mask_slice_$slicezp\
-b $subjdir/bvals -r $subjdir/bvecs\
--forcedir --logdir=$subjdir.bedpost/diff_slices/data_slice_$slicezp\
--nj=1000 --bi=600 --se=20 --upe=24 --nfibres=3 > $subjdir.bedpost/logs/log$slicezp && echo Done
#!/bin/sh
subjdir=$1
#$ -S /bin/sh
#$ -V
#$ -N bp_postproc
#$ -m ae
echo Merging outputs into 4D files
${FSLDIR}/bin/avwmerge -z ${subjdir}.bedpost/merged_thsamples `${FSLDIR}/bin/imglob -oneperimage ${subjdir}.bedpost/diff_slices/data_slice_*/th_samples`
${FSLDIR}/bin/avwmerge -z ${subjdir}.bedpost/merged_phsamples `${FSLDIR}/bin/imglob -oneperimage ${subjdir}.bedpost/diff_slices/data_slice_*/ph_samples`
${FSLDIR}/bin/avwmerge -z ${subjdir}.bedpost/merged_fsamples `${FSLDIR}/bin/imglob -oneperimage ${subjdir}.bedpost/diff_slices/data_slice_*/f_samples`
${FSLDIR}/bin/avwmaths ${subjdir}.bedpost/merged_thsamples -Tmean ${subjdir}.bedpost/mean_thsamples
${FSLDIR}/bin/avwmaths ${subjdir}.bedpost/merged_phsamples -Tmean ${subjdir}.bedpost/mean_phsamples
${FSLDIR}/bin/avwmaths ${subjdir}.bedpost/merged_fsamples -Tmean ${subjdir}.bedpost/mean_fsamples
${FSLDIR}/bin/make_dyadic_vectors ${subjdir}.bedpost/merged_thsamples ${subjdir}.bedpost/merged_phsamples ${subjdir}.bedpost/nodif_brain_mask ${subjdir}.bedpost/dyadic_vectors
echo Removing intermediate files
if [ `imtest ${subjdir}.bedpost/merged_thsamples` -eq 1 ];then
if [ `imtest ${subjdir}.bedpost/merged_phsamples` -eq 1 ];then
if [ `imtest ${subjdir}.bedpost/merged_fsamples` -eq 1 ];then
rm -rf ${subjdir}.bedpost/diff_slices
rm -f ${subjdir}/data_slice_*
rm -f ${subjdir}/nodif_brain_mask_slice_*
fi
fi
fi
echo Creating identity xfm
xfmdir=${subjdir}.bedpost/xfms
echo 1 0 0 0 > ${xfmdir}/eye.mat
echo 0 1 0 0 >> ${xfmdir}/eye.mat
echo 0 0 1 0 >> ${xfmdir}/eye.mat
echo 0 0 0 1 >> ${xfmdir}/eye.mat
echo Done
\ No newline at end of file
#!/bin/sh
subjdir=$1
#$ -S /bin/sh
#$ -V
#$ -N bp_preproc
#$ -m a
echo Copying files to bedpost directory
cp ${subjdir}/bvecs ${subjdir}/bvals ${subjdir}.bedpost
${FSLDIR}/bin/imcp ${subjdir}/nodif ${subjdir}/nodif_brain_mask ${subjdir}.bedpost
${FSLDIR}/bin/avwmaths\
${subjdir}/nodif\
-mas ${subjdir}/nodif_brain_mask\
${subjdir}.bedpost/nodif_brain
${FSLDIR}/bin/avwslice ${subjdir}/data
${FSLDIR}/bin/avwslice ${subjdir}/nodif_brain_mask
echo Done
\ No newline at end of file
#!/bin/sh
subjdir=$1
slice=`expr $SGE_TASK_ID - 1`
slicezp=`${FSLDIR}/bin/zeropad $slice 4`
#$ -cwd -q long.q
#$ -S /bin/sh
#$ -V -N bedpost
#$ -l arch=tru64
#$ -m a
${FSLDIR}/bin/diff_pvm\
--data=$subjdir/data_slice_$slicezp\
--mask=$subjdir/nodif_brain_mask_slice_$slicezp\
-b $subjdir/bvals -r $subjdir/bvecs\
--forcedir --logdir=$subjdir.bedpost/diff_slices/data_slice_$slicezp\
--nj=1300 --bi=300 --se=20 > $subjdir.bedpost/logs/log$slicezp && echo Done
#!/bin/sh
if [ $# -lt 1 ];then
echo "Usage: linkbedpost <sourcedir>"
echo ""
echo "linkbedpost /usr/people/dtiuser/OCMR/CONTROLS/2mmdata/OCMR_20_001.bedpost"
exit
fi
source=$1;
targ=`basename $1`
mkdir $targ
mkdir ${targ}/xfms
for i in `imglob ${source}/dti_* ${source}/mean_* ${source}/merged_* ${source}/dyad* ${source}/nodif_* ${source}/nodif_* ${source}/struct* ${source}/standard*`; do
j=`basename $i`;
ln -s $i ${targ}/$j
done
for i in ${source}/xfms/*.mat;do
j=`basename $i`;
ln -s $i ${targ}/xfms/${j}
done
for i in ${source}/bv*;do
j=`basename $i`;
ln -s $i ${targ}/$j
done
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment