Hi Julia, yes, those are the default options for bedpostx_single_slice.sh. But if you take a look to this script (bedpostx_single_slice.sh), you can see that you will need these files: bedpostx_analysis_multishell/data_slice_$n bedpostx_analysis_multishell/nodif_brain_mask_slice_$n bedpostx_analysis_multishell/bvals bedpostx_analysis_multishell/bvecs Maybe in your case is better to avoid the call to bedpostx_single_slice.sh and call directly to xfibres (using the queue) using the same parameters, with: --data=X --mask=Y --logdir=Z X will be the part that you are going to process Y will be the mask of this part Z will be the output directory of this part The rest of parameters are common for all the parts (-b, -r ......). subjdir.bedpostX/log/log$slicezp is the file for log output I am still not sure how are you going to merge all the output files. Probably this is going to be the most problematic thing. fslmerge only allows you to concatenate in a specific direction (x,y,z or time). Best, Moises. Best, Moises. On 26 August 2014 19:46, Owen, Julia <[log in to unmask]> wrote: > Hi Moises, > > Thanks again for the very helpful email. I have coded up everything as > you suggest only that I am still not certain how to call > bedpostx_single_slice.sh such that it is called exactly as when executing > bedpostx (with --model=2 for our multishell data). I looked at the > bedpostx source code and I have to admit following every line is giving me > a bit of an issue. But, I think I have deciphered how to replicate the > call in the following: > > bedpostx_single_slice.sh bedpostx_analysis_multishell $n --nf=2 --fudge=1 > --bi=1000 --nj=1250 --se=25 --model=2 > > where $n is the slice number. > > Are there any other default inputs to bedpostx_single_slice.sh that I have > missed? > > Best, Julia > ------------------------------ > *From:* FSL - FMRIB's Software Library [[log in to unmask]] on behalf of > Moises Hernandez [[log in to unmask]] > *Sent:* Tuesday, August 26, 2014 9:23 AM > > *To:* [log in to unmask] > *Subject:* Re: [FSL] Make bedpostx more parallel > > Hi Julia, > > yes, it is still valid, bedpostx is using it to run each slice. > > Basically bedpostx script does these things: > > 1. Prepare the output directory > 2. Submit pre-processing script (it divides the data into slices) > 3. Submit several bedpostx_single_slice scripts (for each slice) to run > in parallel (each job will call xfibres) > 4. Submit postprocesing script (it merges the output slices) > > 3 must wait for 2 to finish > 4 must wait for 3 to finish > > Maybe you are missing some parameters when you use bedpostx_single_slice > or you are using the incorrect mask slice. > > What you can do is to check that the commands that bedpostx write in the > file subject.bedpostX/commands.txt are the same that you are using to call > bedpostx_single_slice. > > > Best, > Moises. > > > > On 26 August 2014 16:59, Owen, Julia <[log in to unmask]> wrote: > >> Thank you, Moises! >> >> Great - that was my intuition for how to solve the problem. >> >> A follow-up questions is: Is the function "bedpostx_single_slice.sh" >> still valid? After I sent my email yesterday, I realized that the result >> from 1) using bedpostx_single_slice.sh on every slice and 2) running >> bedpostx (with the automatic submission to our SGE) yields very different >> results (even after forcing bedpostx_single_slice.sh to fit two fibers). I >> have a feeling this function is perhaps defunct. If so, I can look at what >> bedpostx is doing, but I originally thought bedpostx_single_slice.sh (or >> something like it) was being called in parallel withink bedpostx. >> >> Thanks again, Julia >> ------------------------------ >> *From:* FSL - FMRIB's Software Library [[log in to unmask]] on behalf of >> Moises Hernandez [[log in to unmask]] >> *Sent:* Tuesday, August 26, 2014 2:47 AM >> *To:* [log in to unmask] >> *Subject:* Re: [FSL] Make bedpostx more parallel >> >> Hi Julia, >> >> what you could do is to use fslroi instead of fslslice to divide your >> data in as many parts as you want. They can be smaller than a slice. Then >> you can process these parts in parallel. >> >> You have to code up the main script bedpostx (submit parts, not >> slices), the preprocessing script bedpostx_preproc.sh (you do not want to >> use fslslice), and the post processing script (merging process). >> >> If you want to create parts with a similar number of voxels you can >> calculate how many Non-zero voxels there are in the mask (fslstats mask -V). >> >> Best, >> Moises. >> >> >> On 25 August 2014 17:59, Owen, Julia <[log in to unmask]> wrote: >> >>> Hi, >>> >>> I currently have bedpostx running parallel over slices. I don't use >>> the automatic fsl_sub submission process, rather I've coded up >>> bedpostx_single_slice.sh to run in parallel on our large institutional >>> grid. Each slice takes from 20mins to 2.5 hrs. The grid I am using has >>> two queues, one for jobs under 30 mins and one for jobs over 30 mins. The >>> shorter queue is preferable, so I was wondering if there is a way to break >>> the jobs up into smaller jobs than just slices so I can get all jobs under >>> 30 mins. Without fully understanding what goes on the fitting process, I >>> wanted to see if the developers had any suggestions for how I can do this. >>> I couldn't find a previous post on this, excuse me if this is a duplicate. >>> >>> Thanks in advance, >>> >>> Julia >>> >> >> >