New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Should there ever be a need to do file filtering on a stream contents? #19
Comments
I think a separate module makes sense. In fact, I already started to do this as part of the "new segment"/VBM pipeline, which also previously used file filtering and combined bias correction and segmentation. Having a separate module gives users much more flexibility all around, which I think is a good thing. |
Sorry about the issue, I just had imagined that BET should work best on a native brain, which is why I implemented the filtering in the first case. But indeed, a flexible pipeline is best for everyone, I completely agree on a separate module for bias correction, which would be useful in other places! |
I have fixed aamod_bet_robust, so that it typically considers the first structural, but such that this really depends on a variable in the .xml, which can be changed at the recipe level. Now we only need a module for bias correction :-) |
Oh, and am fixing it also in aamod_bet_modified |
Isn't aamod_bet_modified + aamod_bet_epi_reslicing = aamod_bet_robust On 17 April 2012 10:39, alexvicegrab <
Rhodri Cusack Associate Professor |
I have changed aamod_bet_robust to not do reslicing. It still has a number of options that make it more complete than the aamod_bet_modified, which include masking out the neck (by masking using the SPM T1 template) and doing bias correction (though this should be moved to a separate module, as we have discussed already). We may want to move the neck masking out as well? Also, aamod_bet seems to have changed to resemble aamod_bet_robust, which is strange. Maybe we should collapse aamod_bet_robust into the aamod_bet, but add an option for the 'robustness' bit? What do you think? |
Giving my 2 cents without having used the bet functions (!): having a single aamod_bet with the option to set multiple parameters (i.e. akin to command line options) seems the most elegant. |
That could be aamod_bet. Then, we could have one other option, that On 17 April 2012 13:41, Jonathan Peelle <
Rhodri Cusack Associate Professor |
I have now made a trial aamod_bet with 3 options: Also made a bet_premask module, which removes neck using the T1_template from the structural, which we can run before BET. We could do bias correction at any point before/after/inbetween? Does that sound like a plan? |
Sounds great! The script that worked well for Vivek & I on the CamCAN data % AA module function [aap,resp]=aamod_bet(aap,task,i) resp=''; switch task
gravity\n')
end On 17 April 2012 13:57, alexvicegrab <
Rhodri Cusack Associate Professor |
Cool! I'll commit the changes once I get the dependency stats to work (see issue 21) :-) |
This all sounds good. Would it make sense to specify the file stream in the xml header? I.e. usually this would be 'structural' [1], but someone may want to, for example, average 2 T1 images and then perform bet on a different file stream (e.g. 'meant1'), or try using bet on a t2 image, etc. Thus in the xml file we would have structural and in the script aas_getfiles_bystream(aap,i,aap.tasksettings.currenttask.filestream); or something like that. Does that make sense? (If so, this may be worth incorporating in some other modules...) [1] soon to be 't1' - I hope to do this today or tomorrow |
Oops, error parsing that. Should have been: Thus in the xml file we would have
and in the script
or something like that. |
Hi! This is possible within the current framework in two ways: On 17 April 2012 14:33, Jonathan Peelle <
Rhodri Cusack Associate Professor |
Hi Rhodri, That all seems fine for now - I don't actually have any cases where this wouldn't work. I'm just thinking ahead in terms of what might be handy in the future. For example, I would like to make the bias-correction/segmentation functions accept one or more filestreams (t1 vs. t1+t2). I think that's pretty do-able, I just didn't know if it would make sense to incorporate this flexibility elsewhere. |
Ah! I'm sorry, I misunderstood - I get it now. I was thinking you were Where there is only one stream, or where the same things happen to all of However, in the case where there are input streams that have different On 17 April 2012 15:37, Jonathan Peelle <
Rhodri Cusack Associate Professor |
Great, thanks - that's very helpful. |
Closing this issue for now but agree we should keep an eye on this issue (ongoing in issue #69). |
DEBUG: secondlevel threshold without structural can find template
I had imagined that a stream would uniquely identify all, and only, the files of a particular kind. So, the "structural" (or soon to be "T1") stream would only contain normalized images after normalization, and so on.
However, for the purpose of setting up bet, Sasha added the following into the structural stream during aamod_norm_noss:
Now, he and I agreed that there's no need to have the unnormalized, because if one wants, one can use the fully specified syntax in a tasklist or .xml module wrapper
aamod_copystructural.structural
to get to the previous data. So, we took this out.
However, now I'm running into a problem that the aamod_bet_modified module filters for the "mm" image, rather than taking the "w, which is what I want to run it on. By re-including file filtering within the aamod_bet_modified module, we've made it more difficult to change what a module works on by just changing its order. If you want bet to run on the data before normalization, then you put it before norm_noss; if you want it after, you put it afterwards.
I would suggest that we try to avoid file filtering for this reason. We could either write a separate bias correction module before normalization, or write this to a separate stream (T1_biascorr or something)?
The text was updated successfully, but these errors were encountered: