-
Notifications
You must be signed in to change notification settings - Fork 7
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
Differentiating model fit/derived parameters #69
Comments
BTW, depending on #68 and upstream, please mentally replace the suffix |
I've thought about that and not liked the outcome terribly. If fields like
I think the downstream distinction between model fit and model-derived has obscured the upstream origin of the multiple inheritance problem; the latter can pop its head up when discussing the former, but they're different issues. Let's take the example explained in #50, but remove the fit / derived parameter distinction: "We have a hypothetical DWI model called ABC. This model is represented using parameters X and Y. X and Y are of fundamentally different data types, such that it is not possible to store both in a single NIfTI image, and they must be split across multiple images. For metadata, there is information that is relevant to model ABC as a whole, and there is additionally information that is specific to parameter X and parameter Y separately." For "information that is specific to parameter X and parameter Y separately", think about |
Agreed. What I'm bringing up here is that the multiple inheritance problem is not an urgent one to solve IMHO and could be pushed to BIDS 2.0 where breaking backward compatibility with BIDS 1.0 should not be a problem. I also argue that I believe we can finalize this BEP without any substantial changes to the current BIDS specs. As a result of the above thinking, the core of this proposal is to use BIDS (and BIDS-Derivatives) as already accepted by the community and encode derived parameters as derivatives themselves of the fit model (hence, using the
I think this is the wrong approach. Instead of going from abstract (hypothetical) to concrete, I prefer to follow the BIDS workshop's motto (and @francopestilli's suggestion) and go from specific to general. This BEP has been stalled by inactivity mostly (one principal actor of that inactivity being myself, apologies), but also for trying to establish solutions that require substantial modifications to the rest of the BIDS specs. In other words, let's take the most common DWI models (e.g., everything currently supported by MRTrix and DIPY) and prescribe how to store them. If we hit such a difficult situation that there's no way around having two suffixes or inheriting from multiple files, then go for the bigger fish. But at this point, I'm pretty sure the only way we finish this BEP in a reasonable timeframe is by abiding by the current BIDS principles and definitions. One of the reasons for the success of BIDS is the very scoped advance of the early drafts. First, let's solve fMRI (because, lest we forget, everything started from OpenfMRI), then a few more modalities received support, and now we have EEG or PET. If BIDS attempted to capture everything from the beginning, I agree it would be hypothetically much more harmonic, consistent, and beautiful, but it would not exist at this point. |
+1 to focusing in on some specific commonly-used examples to make
progress.
…On Wed, Sep 21, 2022 at 12:20 AM Oscar Esteban ***@***.***> wrote:
I think the downstream distinction between model fit and model-derived has
obscured the upstream origin of the multiple inheritance problem; the
latter can pop its head up when discussing the former, but they're
different issues.
Agreed. What I'm bringing up here is that the multiple inheritance problem
is not an urgent one to solve IMHO and could be pushed to BIDS 2.0 where
breaking backward compatibility with BIDS 1.0 should not be a problem. I
also argue that I believe we can finalize this BEP without any substantial
changes to the current BIDS specs.
As a result of the above thinking, the core of this proposal is to use
BIDS (and BIDS-Derivatives) as already accepted by the community and encode
derived parameters as derivatives themselves of the fit model (hence, using
the <source_entities>_key-value mechanism).
"We have a hypothetical DWI model called ABC. This model is represented
using parameters X and Y. X and Y are of fundamentally different data
types, such that it is not possible to store both in a single NIfTI image,
and they must be split across multiple images. For metadata, there is
information that is relevant to model ABC as a whole, and there is
additionally information that is specific to parameter X and parameter Y
separately."
I think this is the wrong approach. Instead of going from abstract
(hypothetical) to concrete, I prefer to follow the BIDS workshop's motto
(and @francopestilli <https://github.com/francopestilli>'s suggestion)
and go from specific to general.
This BEP has been stalled by inactivity mostly (one principal actor of
that inactivity being myself, apologies), but also for trying to establish
solutions that require substantial modifications to the rest of the BIDS
specs. In other words, let's take the most common DWI models (e.g.,
everything currently supported by MRTrix and DIPY) and prescribe how to
store them. If we hit such a difficult situation that there's no way around
having two suffixes or inheriting from multiple files, then go for the
bigger fish. But at this point, I'm pretty sure the only way we finish this
BEP in a reasonable timeframe is by abiding by the current BIDS principles
and definitions.
One of the reasons for the success of BIDS is the very scoped advance of
the early drafts. First, let's solve fMRI (because, lest we forget,
everything started from OpenfMRI), then a few more modalities received
support, and now we have EEG or PET. If BIDS attempted to capture
everything from the beginning, I agree it would be hypothetically much more
harmonic, consistent, and beautiful, but it would not exist at this point.
—
Reply to this email directly, view it on GitHub
<#69 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAGUVEHWHK3T6HDD52VMIB3V7KZLJANCNFSM6AAAAAAQQOP6IA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Russell A. Poldrack
Albert Ray Lang Professor of Psychology
Associate Director, Stanford Data Science
Director, SDS Center for Open and Reproducible Science
Building 420
Stanford University
Stanford, CA 94305
***@***.*** ***@***.***>
http://www.poldracklab.org/
|
Writing this comment on PeerHerholz/bids_bep16_conv#3 made me think of an interesting alternative perspective on the MFP / MDP distinction. I've spoken about how the distinction here is that the latter can be regenerated from the former, but regeneration of any of the former would necessitate re-performing the model fit to the empirical data. The retort to that is that it's more likely that a single BIDS App will both fit the model and generate a bunch of derivatives of such, and save them all into a single dataset, and that users shouldn't be manually interacting with the contents of the BIDS Derivatives dataset to eg. generate additional quantitative images (ie. the BIDS Derivatives dataset should be considered immutable). There's an implicit assumption within this argument regarding the BIDS App interface and the grouping of processing steps. Currently, you run a single " But consider the following two hypothetical implementations:
(Note that this echoes the modular command structure philosophy of MRtrix3, where
Both of these:
I'm not necessarily advocating for such a solution. But I do think it illuminates the nature of the problem. |
BEP is currently proceeding on the premise of not differentiating between model fit and model-derived parameters; major change in #92 following bids-standard/bids-specification#1602. If that distinction is to be useful in any other context, eg. see bids-standard/bids-specification#1282, it would be better placed outside of the context of BEP016. |
This builds on the discussions had during the recent BIDS Workshop and follows up after #68. This would be a counter-argument against bids-standard/bids-specification#1282.
I'm a bit worried about the factual encoding of provenance by using
mfd
vsmdp
ormodel
vsmdp
, and alternatives of the sort.Despite how reluctant BIDS is about provenance (a lot), there is some rough prescription in the BIDS-Derivatives specifications that could be of use in this particular case:
In other words, the filename must encode the critical provenance information to understand where each file comes from reasonably.
So, we can think of the "model fit parameters" of a DTI model as:
Where the sidecar of the model fit parameters has:
And the model derived parameters may have:
If one is particularly scrupulous and doesn't like this indirect provenance tracking given by BIDS-Derivatives (because the mdps unequivocally point at a model fit parameter file), one can find the following in the BIDS spec, which does not apply directly (because it talks about cascading pipelines) but I think is helpful:
Then, it could be suggested (and IMHO discouraged) that the model-derived parameters have the following sidecar instead:
If bids-standard/bids-specification#1280 were accepted in some form, the proposed
fit-<label>
entity would not be necessary anymore:Where the units of the MD have been defined for all subjects at the same time (see
mdp-MD_dwi.json
at the top), as that doesn't seem a reasonable thing to vary between subjects (nothing you could not do withoutmodel-<label>
), and it would just contain:In the case of several "mfp" files, the proposal works well if the
model-<label>
directory is usable:That said, I want to conclude that this far, IMHO, the only practical problems I have learned of that have been described as sourced from the lack of multiple inheritances in BIDS precluding proper metadata composition actually are provenance tracking issues.
I acknowledge the theoretical grounds of the multiple inheritances problem, but I haven't seen a practical situation where it is unavoidable. Addressing it would make BIDS less brittle (as in, a user mistakenly doing something different from what they think they are doing, assuming metadata will come from two or more files), but not for this particular reason discussed in BEP016 -- which means we could think of putting it off to BIDS 2.0.
cc/ @arokem @Lestropie @francopestilli @effigies @poldrack
The text was updated successfully, but these errors were encountered: