Conversation
|
@jan-petr: Could you have a look at this PR? I don't think there's that much work left to do, since everything is already tested pretty nicely. Thanks 👍 |
HenkMutsaerts
left a comment
There was a problem hiding this comment.
Really nice.
The only thing I would not change, is the order of the processing modules.
In the end, each ExploreASL processing module should individually read rawdata and save in derivatives/ExploreASL. Now we still have an interim BIDS2legacy conversion step, which cannot be a separate module, not to confuse the users. So we need to discuss how to deal with this. Any idea?
Perhaps best to run BIDS2legacy at the start of each Structural or ASL module.
I would just write the tutorials accordingly right now. Like in the videos I've shown you, where you just say " What you could do is to have three processing modules and run this module every time it wasn't run. So you basically just remove the option to run it manually. This way you hide it pretty well. As a developer I hate that, because it makes it harder to control, but for a user that would probably make sense. |
jan-petr
left a comment
There was a problem hiding this comment.
Very good! Some comments in the files. Plus the following:
- Update
ExploreASLcalls (number of processing modules have changed) in the following functions/lines:xASL_ut_module_xASL_module_Population.m:dd,xASL_ut_module_xASL_module_Structural.m:33,xASL_ut_module_xASL_module_ASL.m:33,xASL_ut_function_xASL_bids_BIDS2Legacy.m:38,111,125,xASL_test_Flavors.m:114,xASL_test_Flavors_ExploreASL.m:28,xASL_qc_TestExploreASL.m:336, 340, 343 - I guess that one common problem we will have is that people will set processing to
1but will want to start from Legacy set without having the BIDS data, but they will not know that they should say then [0 1 1 1] - we should make sure that this is then nicely catched and reported - can we add this to UT?
jan-petr
left a comment
There was a problem hiding this comment.
Further small thing added.
This comment has been minimized.
This comment has been minimized.
|
Team meeting:
Edit: we forgot the defacing, so I have to add some more code for that, too. |
jan-petr
left a comment
There was a problem hiding this comment.
I fix one error when trying to bLoad data when there wasn't bLoadableData. Should we fix that also on other occurrences?
xASL_adm_CleanUpX.m
xASL_init_checkDatasetRoot.m
xASL_init_DefinePaths.m
xASL_imp_ImportInitialization.m
xASL_imp_DetermineSubjectStructure.m
Probably not needed in all cases?!
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
I would just write the tutorials accordingly right now. Like in the videos I've shown you, where you just say " I know you, and I have warned you before that this is not the utlimately workflow that was designed for neuroimaging:) The idea by the BIDS guys (and us), is that you have the DICOMs that you convert asap to BIDS rawdata, and then you lock the DICOMs in a vault as sourcedata, and always reuse the BIDS data. So you will (in the future) get BIDS data from others, and give BIDS data to be run in other pipelines. Does this now make more sense? ;)
Well, you would want to rerun it again. The point is that this is a temporary invisible submodule of each module. In the near future, the structural module will load
From your perspective this makes sense. From the bird-eyed perspective of how we want BIDS and ExploreASL to evolve, this differs. When we move to new major versions, I try to push ExploreASL to the final folder layout, which helps all users and mTrial for not having to change stuff. The point is that ExploreASL is the processing pipeline. And aside from ExploreASL, there is a Furthermore, the INPUT of any pipeline like ExploreASL should be rawdata, and the OUTPUT should be |
28dfe4e to
a65e597
Compare
|
The code really wasn't ready when all of you started to test again 😉 Most of it should be fixed now. Right now it still runs bids2legacy after defacing, so I'll have to think of a similar solution for that as well. Don't mention modularity 😆 It is modular, but for the implicit things like bids2legacy and data loading we have to create some background if-else statements. |
Yes - we need to update the tutorials. A diagram documenting the current workflow in import might be helpful as well.
As discussed over whatsapp - that's the ultimate goal, but a lot of stuff needs to be done prior to that!
Yes - the ideal goal, added as issue #1066 - but several steps need to be done before we start implementing this - see issue #165.
Yes. We are now making the first step in separating those.
Currently - this is already invisible. We still copy stuff to derivatives, but it is invisible. The user doesn't have to take care of it. And it is done only once and only for files that haven't been copies from rawdata yet. If you add new subjects, then you simply re-run the pipeline and it will do BIDS2Legacy only for these new files. So this already works in the way we want it (except for still making the copy - but that's a long-run issue). |
|
@jan-petr: Check out my test results in the original PR message 😄 |
UTs look good. TestDataSets also look good. We just wanted to be sure that these run and they do ;) So that's fine. I am now checking the Flavors-import. |
Let's save this for 2.0.0 (not for the current 1.10.0 :) |
HenkMutsaerts
left a comment
There was a problem hiding this comment.
- When I run
ExploreASL('TestDataSet');great feedback to the screen! Only few confusing points:
Empty session number, setting session number to 1...
This feedback should contain the subject name so the user know which one the change is applied to. Also, I would remove this warning/text at all if there is only a single session.
We get feedback that we're missing the dataPar.json and that a default one is created. This is fine for bids2legacy but when we only load data, we don't process so shouldn't load the dataPar.json?
Overwriting x.dir.dataPar... -> this text is unnecessary
-
When we run ExploreASL('TestDataSet',1);
but thesourcedata` folder doesn't exist, this should give a single error and then skip data loading (or load ExploreASL only). Now it gives a warning and still tries to load the data, giving further errors confusing to the user. -
When ExploreASL processing has crashed, the next time you run ExploreASL,
bids2legacystarts zipping the temporary files that were left from the previous processing. Why doesbids2legacyeven zip?
Note thatExploreASL('TestDataSet');only loads the data, so in the near future this won't copy data (the data copying is a temporary "pre-step" for when processing is run. The fact that we now temporarily runbids2legacywhen only loading data is a temporary "quick and dirty" solution so I wouldn't complicate this and simply never zip in thebids2legacymodule -
Please delete the full deface module, this is confusing. The bDeface is something that we/the community haven't decided upon if this should be in the import or process. If you do the latter, the order stays the same so it doesn't confuse the users (remind that we want backward compatibility as much as possible). So let's remove bDeface fully to the user: probably best to comment these parts out, and not mention it in the printed text/warnings.
-
BTW: please undo the folder
ExploreASL/Templates, we use the word "Templates" a lot for images/atlases, so that would be confusing.
… line @jan-petr: I do not get how this worked before. The visualization settings and some other paths are definitely needed in the general dataset independent initialization, otherwise the 10 test dataset tests crash, because they need the wb masks. I moved some calls from the data dependent to the data independent settings to make this work again. Or am I thinking wrong? Cheers!
Note that this is not required for xASL_init_PrintUserFeedback, as the x fields used by the latter will not change by ExploreASL_Import
8ddbaab to
c6c7639
Compare
Linked issue
Check out the detailed descriptions in #1044.
Tutorial
Format:
Defaults:
Descriptions:
Testing
Flavor testing
{ "pathExploreASL": "...\\m.stritt\\Server_xASL\\ExploreASL", "pathFlavorDatabase": "...\\m.stritt\\Server_xASL\\FlavorDatabase", "cmdCloneFlavors": "git clone [email protected]:ExploreASL/FlavorDatabase.git", "flavorList": ["GE_PCASL_3Dspiral_14.0LX_WIP_1", "Philips_PCASL_2DEPI_3.2.1.1_1", "Siemens_PASL_3DGRASE_E11_1"] }Unit testing
10 Test datasets
Comments
We probably should re-evaluate if we zip too much now. An easy alternative would be to let
xASL_adm_CleanUpX(x)only do the zipping ifBIDS2Legacywas done. These things can easily be fixed in a follow-up issue. Maybe we need to update a few tests that I haven't thought about yet, but in general it looks pretty good I'd say. There are more detailed descriptions of the individual tasks in the issue. I think the newExploreASLformat is definitely better and hopefully more user friendly. You can still use the array notation to runDCM2NIIandNII2BIDSseparately, but most people will just use a 1 there. To the reviewers I want to mention that we can easily add/change things in follow-up issues instead of making this PR more convoluted. Cheers!