diff --git a/Makefile b/Makefile
index b901520f8a82e76b218c7d98ac66f4bf0dcc7617..63f1c796f9ebe379c23e3565e966a07bc59a3177 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,6 @@ include ${FSLCONFDIR}/default.mk
 
 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:
diff --git a/bedpost b/bedpost
new file mode 100755
index 0000000000000000000000000000000000000000..af8fde384bc2bc1d36e221d4a9f9699ef4083619
--- /dev/null
+++ b/bedpost
@@ -0,0 +1,128 @@
+#!/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
diff --git a/bedpostX b/bedpostX
new file mode 100755
index 0000000000000000000000000000000000000000..5b138c41299f334644a85c88fda3148ae4b9f47c
--- /dev/null
+++ b/bedpostX
@@ -0,0 +1,128 @@
+#!/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
diff --git a/bedpostX_postproc.sh b/bedpostX_postproc.sh
new file mode 100755
index 0000000000000000000000000000000000000000..0cf50fb3bf695f3340a27b71952fa7c2efeef0b6
--- /dev/null
+++ b/bedpostX_postproc.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+subjdir=$1
+
+#$ -S /bin/sh
+#$ -V
+#$ -N bp_postproc
+#$ -m ae
+
+
+echo cock
\ No newline at end of file
diff --git a/bedpostX_preproc.sh b/bedpostX_preproc.sh
new file mode 100755
index 0000000000000000000000000000000000000000..fc010aebd95797891ebcadf02c3f258710d1bc06
--- /dev/null
+++ b/bedpostX_preproc.sh
@@ -0,0 +1,20 @@
+#!/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
diff --git a/bedpostX_single_slice.sh b/bedpostX_single_slice.sh
new file mode 100755
index 0000000000000000000000000000000000000000..4172411c4a7c10c7d55b0cca462c05e4fabf1c20
--- /dev/null
+++ b/bedpostX_single_slice.sh
@@ -0,0 +1,19 @@
+#!/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
+
diff --git a/bedpost_postproc.sh b/bedpost_postproc.sh
new file mode 100644
index 0000000000000000000000000000000000000000..c4e8e4d4c16fa49cafa3b7b9334c860612fed813
--- /dev/null
+++ b/bedpost_postproc.sh
@@ -0,0 +1,41 @@
+#!/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
diff --git a/bedpost_preproc.sh b/bedpost_preproc.sh
new file mode 100644
index 0000000000000000000000000000000000000000..34a527c21fe6c55204427c48596000ec44ec89f7
--- /dev/null
+++ b/bedpost_preproc.sh
@@ -0,0 +1,20 @@
+#!/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
diff --git a/bedpost_single_slice.sh b/bedpost_single_slice.sh
new file mode 100755
index 0000000000000000000000000000000000000000..310575dcc008fdbfa8db487ca52464e3589e5a30
--- /dev/null
+++ b/bedpost_single_slice.sh
@@ -0,0 +1,18 @@
+#!/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
diff --git a/linkbedpost b/linkbedpost
new file mode 100755
index 0000000000000000000000000000000000000000..f8788f501c3b8e2f673ac2c1291160a641886cd0
--- /dev/null
+++ b/linkbedpost
@@ -0,0 +1,30 @@
+#!/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