-
Notifications
You must be signed in to change notification settings - Fork 26
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
RFC: New heuristics table #101
Comments
One thing that will be important is picking which images from the epi fieldmaps, whether from fmaps/ or dwi/, to use. Siemens scanners add b>0 images to these, so it would be great to extend BIDS to allow for bval and bvec files in fmaps/ to prevent b>0 images from being used for distortion correction. It has also been helpful to use b=0 images from multiple timepoints in the scan if the fieldmaps are coming from long dwi scans. Otherwise this looks great |
Adds a new subworkflow based on FSL TOPUP to integrate SD estimation for the ds001771 dataset. - [x] Pin niworkflows to current master (while I release 1.2.0rc5 containing nipreps/niworkflows#503, nipreps/niworkflows#504, which are used here). - [x] Create a new sdc estimation workflow, with the expectation of upstreaming it to SDCFlows. - [x] Implement the barebones of how nipreps/sdcflows#101 could look like. Also to be upstreamed to SDCFlows when mature. - [x] Stick TOPUP from FSL 6.0.3 in the Docker image, since topup from FSL 5.0.x is really unstable (for instance, it fails with a segmentation fault on the workflow of ds001771) Resolves: nipreps#92
I've given this some thought and realized this would be really easy to encode with valid BIDS: just dump those bvecs and bvals in the sidecar JSON. I'll try to resurrect a bunch of stalled PRs and figure out whether a new PR would be appropriate. But this should be more explicit in BIDS (and that way, for instance, the validator can be instructed to check that the number of b-vecs/vals in the sidecar matches the size of the 4th dimension). That also made me think about the RASB PR. We are already including tables in the metadata (e.g. the That said, in my first implementation of nipreps/dmriprep#97, I'm using b0s extracted from two datasets under |
Adds a new subworkflow based on FSL TOPUP to integrate SD estimation for the ds001771 dataset. - [x] Pin niworkflows to current master (while I release 1.2.0rc5 containing nipreps/niworkflows#503, nipreps/niworkflows#504, which are used here). - [x] Create a new sdc estimation workflow, with the expectation of upstreaming it to SDCFlows. - [x] Implement the barebones of how nipreps/sdcflows#101 could look like. Also to be upstreamed to SDCFlows when mature. - [x] Stick TOPUP from FSL 6.0.3 in the Docker image, since topup from FSL 5.0.x is really unstable (for instance, it fails with a segmentation fault on the workflow of ds001771) Resolves: nipreps#92
Adds a new subworkflow based on FSL TOPUP to integrate SD estimation for the ds001771 dataset. - [x] Pin niworkflows to current master (while I release 1.2.0rc5 containing nipreps/niworkflows#503, nipreps/niworkflows#504, which are used here). - [x] Create a new sdc estimation workflow, with the expectation of upstreaming it to SDCFlows. - [x] Implement the barebones of how nipreps/sdcflows#101 could look like. Also to be upstreamed to SDCFlows when mature. - [x] Stick TOPUP from FSL 6.0.3 in the Docker image, since topup from FSL 5.0.x is really unstable (for instance, it fails with a segmentation fault on the workflow of ds001771) Resolves: nipreps#92
Adds a new subworkflow based on FSL TOPUP to integrate SD estimation for the ds001771 dataset. - [x] Pin niworkflows to current master (while I release 1.2.0rc5 containing nipreps/niworkflows#503, nipreps/niworkflows#504, which are used here). - [x] Create a new sdc estimation workflow, with the expectation of upstreaming it to SDCFlows. - [x] Implement the barebones of how nipreps/sdcflows#101 could look like. Also to be upstreamed to SDCFlows when mature. - [x] Stick TOPUP from FSL 6.0.3 in the Docker image, since topup from FSL 5.0.x is really unstable (for instance, it fails with a segmentation fault on the workflow of ds001771) Resolves: nipreps#92
Adds a new subworkflow based on FSL TOPUP to integrate SD estimation for the ds001771 dataset. - [x] Pin niworkflows to current master (while I release 1.2.0rc5 containing nipreps/niworkflows#503, nipreps/niworkflows#504, which are used here). - [x] Create a new sdc estimation workflow, with the expectation of upstreaming it to SDCFlows. - [x] Implement the barebones of how nipreps/sdcflows#101 could look like. Also to be upstreamed to SDCFlows when mature. - [x] Stick TOPUP from FSL 6.0.3 in the Docker image, since topup from FSL 5.0.x is really unstable (for instance, it fails with a segmentation fault on the workflow of ds001771) Resolves: nipreps#92
Adds a new subworkflow based on FSL TOPUP to integrate SD estimation for the ds001771 dataset. - [x] Pin niworkflows to current master (while I release 1.2.0rc5 containing nipreps/niworkflows#503, nipreps/niworkflows#504, which are used here). - [x] Create a new sdc estimation workflow, with the expectation of upstreaming it to SDCFlows. - [x] Implement the barebones of how nipreps/sdcflows#101 could look like. Also to be upstreamed to SDCFlows when mature. - [x] Stick TOPUP from FSL 6.0.3 in the Docker image, since topup from FSL 5.0.x is really unstable (for instance, it fails with a segmentation fault on the workflow of ds001771) Resolves: nipreps#92
Adds a new subworkflow based on FSL TOPUP to integrate SD estimation for the ds001771 dataset. - [x] Pin niworkflows to current master (while I release 1.2.0rc5 containing nipreps/niworkflows#503, nipreps/niworkflows#504, which are used here). - [x] Create a new sdc estimation workflow, with the expectation of upstreaming it to SDCFlows. - [x] Implement the barebones of how nipreps/sdcflows#101 could look like. Also to be upstreamed to SDCFlows when mature. - [x] Stick TOPUP from FSL 6.0.3 in the Docker image, since topup from FSL 5.0.x is really unstable (for instance, it fails with a segmentation fault on the workflow of ds001771) Resolves: nipreps#92
This PR attempts to provide a more reliable framework to build fieldmap estimation workflows. Implicitly, it will help addressing issues regarding data conformity (e.g., nipreps#63, nipreps#64, nipreps#65) and also ease larger refactors such as #20, nipreps#21, nipreps#26, and nipreps#101.
This PR attempts to provide a more reliable framework to build fieldmap estimation workflows. Implicitly, it will help addressing issues regarding data conformity (e.g., nipreps#63, nipreps#64, nipreps#65) and also ease larger refactors such as #20, nipreps#21, nipreps#26, and nipreps#101.
This PR attempts to provide a more reliable framework to build fieldmap estimation workflows. Implicitly, it will help addressing issues regarding data conformity (e.g., nipreps#63, nipreps#64, nipreps#65) and also ease larger refactors such as #20, nipreps#21, nipreps#26, and nipreps#101.
When bids-standard/bids-specification#622 goes in this heuristic table will be much easier, and should be defined by the workflows using sdcflows, so not a responsibility of this package anymore. Closing. |
This PR attempts to provide a more reliable framework to build fieldmap estimation workflows. Implicitly, it will help addressing issues regarding data conformity (e.g., nipreps#63, nipreps#64, nipreps#65) and also ease larger refactors such as #20, nipreps#21, nipreps#26, and nipreps#101.
This PR attempts to provide a more reliable framework to build fieldmap estimation workflows. Implicitly, it will help addressing issues regarding data conformity (e.g., nipreps#63, nipreps#64, nipreps#65) and also ease larger refactors such as #20, nipreps#21, nipreps#26, and nipreps#101.
In the context of nipreps/dmriprep#97, I'm trying to design a more generalizable set of heuristics when deciding the SDC estimation strategy. This is also related to nipreps/dmriprep#70.
This is likely to replace the
fieldmap_wrangler
eventually:sdcflows/sdcflows/workflows/base.py
Lines 258 to 294 in 02a824e
The implementation will probably take the shape of a workflow, with an
IdentityInterface
for anoutputnode
where fields are the names of the EPI targets, for later selection.Each of these fields will contain a list of fielmaps (which will be written out to the derivatives folder following the proposal in #26, with the adaptation of #26 (comment)), in the order and estimated as prescribed in the following table:
This heuristic table is to be applied per participant.
dwi
dataset underdwi/
.sbref
and then anybold
in the absence ofsbref
withIntendedFor
.IntendedFor
underfmap/
IntendedFor
targetsIntendedFor
underfmap/
with 1+ target inIntendedFor
with different PE.IntendedFor
targets as alternative PEs; ii) Apply fieldmap toIntendedFor
targetsIntendedFor
underfmap/
IntendedFor
to all targets and apply 0?IntendedFor
underfmap/
with 1+ target with different PE.IntendedFor
to all targets and apply 1?dir-
, thenrun-
, thenacq-
, etc. and their combinations); ii) Expand aIntendedFor
to corresponding matchesIntendedFor
. Priority of fieldmaps:_fieldmap
,_phasediff
,_phase{1,2}
.fmap/
and targets do not have several PEsThis is to be discussed in today's dMRIPrep meeting (cc/ @nipreps/dmriprep). Requesting for comments from @mattcieslak, @effigies, @satra, @mgxd.
The text was updated successfully, but these errors were encountered: