Hi Matt
Perhaps the FSL authors can confirm this, but it seems from the FSL feat wiki:
1) example_func2highres.mat is distortion-corrected BBR based transform, if you used fieldmapping B0 correction in feat
2) highres2standard.mat is the product of using non-linear reg in feat
3) example_func2standard.mat is derived by concatenating 1) and 2). There doesn't seem to be any direct epi to standard warping or linear registration attempt made during feat
I'm not so sure if you can combine B0-fieldmap derived example_func2highres_warp with FNIRT derived highres2standard_warp just like that... if you try it out, I'd be interested to hear what the outcome was.
Best,
Danny Kim
On 2015-04-16, at 8:39 AM, Matt Sutterer wrote:
> Thanks Danny, that explains the error (we used fieldmap-corrected BBR, nonlinear warping for EPI to T1, so we generate example_func2standard_warp instead of example_func2standard.mat).
>
> but it begs the larger question of why we can't use our fieldmap-corrected, BBR nonlinear epi to T1 warp with featregapply?
>
> for example, with featregapply:
>
> if { [ imtest reg/highres2standard_warp ] && ( $space == "example_func" || $space == "highres" ) } {
>
> set PREMAT ""
> if { $space == "example_func" } {
> set PREMAT "--premat=reg/example_func2highres.mat"
> }
> if { $interp == "nearestneighbour" } {
> set interp nn
> }
> fsl:exec "${FSLDIR}/bin/applywarp --ref=$ref --in=$in --out=$TMPNAM --warp=reg/highres2standard_warp $PREMAT --interp=$interp"
>
>
> Why can't we use the fieldmap-corrected BBR, nonlinear epi to T1 and do something like:
>
> if { [ imtest reg/highres2standard_warp ] && ( $space == "example_func" || $space == "highres" ) } {
>
> set WARP1 ""
> if { $space == "example_func" } {
> set WARP1 "--warp1=reg/example_func2highres_warp"
> }
> if { $interp == "nearestneighbour" } {
> set interp nn
> }
>
> ##Sum nonlinear transforms (rough syntax)
>
> fsl:exec "${FSLDIR}/bin/convertwarp --ref=$ref --in=$in --warp1=$WARP1 --warp2=reg/highres2standard_warp --out=reg/example_func2standard_warp --relout
>
>
> #Use the combined warps (rough syntax)
>
> fsl:exec "${FSLDIR}/bin/applywarp --ref=$ref --in=$in --out=$TMPNAM --warp=reg/example_func2standard_warp --interp=$interp"
>
>
>
>>
>> Hmm.. looking at the code for featregapply, you get that error msg if featregapply cannot locate example_func2standard.mat in the reg folder.
>> --- line 162 ---
>> if { ! [ file exists reg/example_func2standard.mat ] } {
>> puts "Error - registration has not been run for [ pwd ]"
>> exit 1
>> }
>> -------------------
>>
>> See if example_func2standard.mat exists for each feat/reg folder. If they do exist, check permission settings so that you are able to read those .mat >files.
>>
>> Best,
>>
>> Danny Kim
>>
>> On 2015-04-15, at 3:44 PM, Matt Sutterer wrote:
>>
>>> Hi Danny,
>>>
>>> The FEAT GUI will not allow me to run the higher-level analysis, I get a pop-up with the error about registration not being run. If I run my .fsf through the feat command line, the feat log shows errors at the "Higher-level input files preparation" stage:
>>>
>>> Higher-level input files preparation
>>>
>>> /usr/fsl/bin/featregapply /ppg/resting_state/NSG_acute/284_chronic/rsOut1/reproc/nuisancereg.feat
>>> Error - registration has not been run for /ppg/resting_state/NSG_acute/284_chronic/rsOut1/reproc/nuisancereg.feat
>>>
>>> /usr/fsl/bin/featregapply /ppg/resting_state/NSG_acute/284_chronic/rsOut2/reproc/nuisancereg.feat
>>> Error - registration has not been run for /ppg/resting_state/NSG_acute/284_chronic/rsOut2/reproc/nuisancereg.feat
>>>
>>> ...and so on...
>>>
>>> things continue to fail from there, presumably because of the initial failure of featregapply.
>>>
>>> highres2standard.mat is present in the session.feat/reg folder for each session.
>>>
>>> Thanks much,
>>>
>>> Matt Sutterer
>>>
|