-
Notifications
You must be signed in to change notification settings - Fork 163
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
[FOUNDATIONAL] Facilitate small atomic enhancements #371
Comments
@bids-standard/bep_leads @bids-standard/derivatives - I would value your input on this proposal |
I would welcome this. The BEP guideline seems not to have been updated for quite some time, is not that easy to find, and might not be that well known to current BEP contributors. A change in style of working that I realize we went through while extending MRI->MEG->EEG+iEEG, and time-wise somewhere between MEG and EEG+iEEG switching from google docs to github for managing the specification, is that the extension process now expects diffs/PRs, whereas it initially it was more like writing a (partially copied) specification that would be merged manually. Quite some older BEPs are still in the old style (full spec), whereas some of the newer BEPs seem to skip google docs (and thereby risk loosing part of the audience/stakeholders) and only do diffs/PRs. Wrt the github process: each issue/PR is treated by github (the website) on its own. That causes confusion between the dependencies of issues/PRs (e.g. there is still a mix-up between common-derivatives and imaging-derivatives). Bugzilla and Jira have explicit mechanisms for this. Adding "BEPxxx" to the name and colored tags is a step in the right direction, but still relatively poor (although possibly the best that we can do within github limits). We might also consider github projects to structure the relation between, and work on issues/PRs. E.g. one project per BEP. And/or we might consider to more explicitly use branches under the main bids-specification repo, e.g. by having BEP-draft branches (which could also be rendered on RTD). PRs that are specific to a BEP could initially be merged in the BEP specific branch. |
I'm a strong +1 on this. An immediate example is one @jasmainak and I discovered a while back -- the concerns in BEP21 on re-annotating electrophysiological data strongly relate to concerns with re-annotating naturalistic stimuli for features of interest (such as used in @adelavega 's NeuroScout ) and I think corresponding to BEP02. I completely agree with @yarikoptic that there's a strong danger of individual BEP leaders not realizing these connections (simply because it would require keeping all of the other BEPs in mind !) and therefore adopting different approaches to the same problem. Personally, I think this would be an ideal role for the steering committee, though I wonder what @robertoostenveld thinks. |
Pinging @bids-standard/steering for opinions on this point:
and any thoughts on how to actualize it 😸 |
I would have continued along "I would propose or us to" lines in the original description. May be make them a bit more specific with rules such as
And then act on those few cases I have already identified (e.g., |
Sorry @yarikoptic, I meant to ask specifically about how BIDS Steering could help with identifying cross-BEP points of convergence going forward. But yes, I think your suggestions make sense ! |
Thanks, actually I could need some help with the PR structure!
BW, Henk
… On 14 Jan 2020, at 16:15, Yaroslav Halchenko ***@***.***> wrote:
and any thoughts on how to actualize it
I would have continued along "I would propose or us to" lines in the original description. May be make them a bit more specific with rules such as
any new _key-value pair (entity) should be submitted as a separate PR open for discussion (we could add a specific template for such PRs)
And then act on those few cases I have already identified (e.g., _part) and submit them as PRs, referencing corresponding BEPs.
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub <#371?email_source=notifications&email_token=AGT42LTTIOLVBXQJ23H7FP3Q5XJJRA5CNFSM4JM677LKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEI47BYI#issuecomment-574222561>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AGT42LUNVF7XV3RNLUGJ6ALQ5XJJRANCNFSM4JM677LA>.
|
I don't think the steering group has a better overview per see than other community members, at least I do not have that overview and don't know BEP details (except for the ones I am involved in on a personal title). The "content" is provided by the community members with domain specific knowledge, and the combined wisdom/insight/expertise of the community is needed in the consensus process. The steering group can at best only guide the process. I do think that we have to improve the signal-to-noise ratio in the communication. That would make it easier for all stakeholders to see where a specific BEP links to other work. My previous comment wrt the github process (projects, branches) might actually not help for that, it would just add another layer and hence more complexity that stands in the way of recognizing what is going on. I think we (=the community) should update the BEP guideline and that the steering group might help in BEP leads following it. E.g., following up on the community forum meeting yesterday, I asked - on behalf of the steering group - all BEP leads to update their main document to make clear where their BEP specific discussion happens, and some have already done so. Such a process-level review (in this case: ensure that communication is on an open channel that others can join) is something the steering group might be able to take up. I realize that by looking at the different BEPs, we can learn a lot from each other and improve good practices. The BEP process is not only on merging PRs in the spec (where I agree that overlap should be identified as potential conflicts between modalities, but also as potential added-value between modalities). The BEP process is also about making (and discussing) examples, and ensuring the validator remains consistent with the spec. The suggestions at the start of this issue by @yarikoptic are very good, and we should also highlight other existing practices that we value, e.g., summarizing proposed changes to the spec explicitly, as in BEP001, or explicitly considering the overlap in entities, as @sappelhoff introduced while working on MEG, EEG and iEEG extensions. |
It might be useful to come up with a set of common "user stories" and map
out the current path that the user would have to take to find the relevant
information. then we could consider refactoring the current environment to
optimize those use cases.
…On Wed, Jan 15, 2020 at 1:12 AM Robert Oostenveld ***@***.***> wrote:
I think this would be an ideal role for the steering committee, though I
wonder what @robertoostenveld <https://github.com/robertoostenveld>
thinks.
I don't think the steering group has a better overview per see than other
community members, at least I do not have that overview and don't know BEP
details (except for the ones I am involved in on a personal title). The
"content" is provided by the community members with domain specific
knowledge, and the combined wisdom/insight/expertise of the community is
needed in the consensus process. The steering group can at best only guide
the process.
I do think that we have to improve the signal-to-noise ratio in the
communication. That would make it easier for all stakeholders to see where
a specific BEP links to other work. My previous comment
<#371 (comment)>
wrt the github process (projects, branches) might actually not help for
that, it would just add another layer and hence more complexity that stands
in the way of recognizing what is going on.
I think we (=the community) should update the BEP guideline
<https://docs.google.com/document/d/1pWmEEY-1-WuwBPNy5tDAxVJYQ9Een4hZJM06tQZg8X4/edit?usp%3Dsharing&sa=D&ust=1537468908724000>
and that the steering group might help in BEP leads following it. E.g.,
following up on the community forum meeting yesterday, I asked - on behalf
of the steering group - all BEP leads to update their main document to make
clear where their BEP specific discussion happens, and some have already
done so. Such a process-level review (in this case: ensure that
communication is on an open channel that others can join) is something the
steering group might be able to take up.
I realize that by looking at the different BEPs, we can learn a lot from
each other and improve good practices. The BEP process is not only on
merging PRs in the spec (where I agree that overlap should be identified as
potential conflicts between modalities, but also as potential added-value
between modalities). The BEP process is also about making (and discussing)
examples, and ensuring the validator remains consistent with the spec. The
suggestions at the start of this issue by @yarikoptic
<https://github.com/yarikoptic> are very good, and we should also
highlight other existing practices that we value, e.g., summarizing proposed
changes
<https://github.com/bids-standard/bep001/blob/master/ProposedChangesToSpecification.md>
to the spec explicitly, as in BEP001, or explicitly considering the overlap
in entities
<https://bids-specification.readthedocs.io/en/stable/99-appendices/04-entity-table.html>,
as @sappelhoff <https://github.com/sappelhoff> introduced while working
on MEG, EEG and iEEG extensions.
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
<#371?email_source=notifications&email_token=AAGUVEDCQN4DU64W5HSMNKDQ53HPDA5CNFSM4JM677LKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEI7S2VQ#issuecomment-574565718>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAGUVEEBGVDNIO5MS6VFS5TQ53HPDANCNFSM4JM677LA>
.
--
Russell A. Poldrack
Albert Ray Lang Professor of Psychology
Professor (by courtesy) of Computer Science
Bldg. 420, Jordan Hall
Stanford University
Stanford, CA 94305
poldrack@stanford.edu
http://www.poldracklab.org/
|
In iEEG we felt that is was the responsibility of the BEP leads to be up to date on the most closely related extensions and ensure compatibility with these and with the main spec. Some examples:
Let me know if you'd like a user story on this. |
bids-standard#487 (and originally bids-standard#439) is a `WIP ENH` to introduce standardized provenance capture/expression for BIDS datasets. This PR just follows the idea of bids-standard#371 (small atomic ENHs), and is based on current state of the specification where we have GeneratedBy to describe how a BIDS derivative dataset came to its existence. ## Rationale As I had previously stated in many (face-to-face when it was still possible ;)) conversations, in my view, any BIDS dataset is a derivative dataset. Even if it contains "raw" data, it is never given by gods, but is a result of some process (let's call it pipeline for consistency) which produced it out of some other data. That is why there is 1) `sourcedata/` to provide placement for such original (as "raw" in terms of processing, but "raw"er in terms of its relation to actual data acquired by equipment), and 2) `code/` to provide placement for scripts used to produce or "tune" the dataset. Typically "sourcedata" is either a collection of DICOMs or a collection of data in some other formats (e.g. nifti) which is then either converted or just renamed into BIDS layout. When encountering a new BIDS dataset ATM it requires forensics and/or data archaeology to discover how this BIDS dataset came about, to e.g. possibly figure out the source of the buggy (meta)data it contains. At the level of individual files, some tools already add ad-hoc fields during conversion into side car .json files they produce, <details> <summary>e.g. dcm2niix adds ConversionSoftware and ConversionSoftwareVersion</summary> ```shell (git-annex)lena:~/datalad/dbic/QA[master]git $> git grep ConversionSoftware | head -n 2 sub-amit/ses-20180508/anat/sub-amit_ses-20180508_acq-MPRAGE_T1w.json: "ConversionSoftware": "dcm2niix", sub-amit/ses-20180508/anat/sub-amit_ses-20180508_acq-MPRAGE_T1w.json: "ConversionSoftwareVersion": "v1.0.20170923 (OpenJPEG build) GCC6.3.0", ``` </details> ATM I need to add such metadata to datasets produced by heudiconv to make sure that in case of incremental conversions there is no switch in versions of the software.
bids-standard#487 (and originally bids-standard#439) is a `WIP ENH` to introduce standardized provenance capture/expression for BIDS datasets. This PR just follows the idea of bids-standard#371 (small atomic ENHs), and is based on current state of the specification where we have GeneratedBy to describe how a BIDS derivative dataset came to its existence. ## Rationale As I had previously stated in many (face-to-face when it was still possible ;)) conversations, in my view, any BIDS dataset is a derivative dataset. Even if it contains "raw" data, it is never given by gods, but is a result of some process (let's call it pipeline for consistency) which produced it out of some other data. That is why there is 1) `sourcedata/` to provide placement for such original (as "raw" in terms of processing, but "raw"er in terms of its relation to actual data acquired by equipment), and 2) `code/` to provide placement for scripts used to produce or "tune" the dataset. Typically "sourcedata" is either a collection of DICOMs or a collection of data in some other formats (e.g. nifti) which is then either converted or just renamed into BIDS layout. When encountering a new BIDS dataset ATM it requires forensics and/or data archaeology to discover how this BIDS dataset came about, to e.g. possibly figure out the source of the buggy (meta)data it contains. At the level of individual files, some tools already add ad-hoc fields during conversion into side car .json files they produce, <details> <summary>e.g. dcm2niix adds ConversionSoftware and ConversionSoftwareVersion</summary> ```shell (git-annex)lena:~/datalad/dbic/QA[master]git $> git grep ConversionSoftware | head -n 2 sub-amit/ses-20180508/anat/sub-amit_ses-20180508_acq-MPRAGE_T1w.json: "ConversionSoftware": "dcm2niix", sub-amit/ses-20180508/anat/sub-amit_ses-20180508_acq-MPRAGE_T1w.json: "ConversionSoftwareVersion": "v1.0.20170923 (OpenJPEG build) GCC6.3.0", ``` </details> ATM I need to add such metadata to datasets produced by heudiconv to make sure that in case of incremental conversions there is no switch in versions of the software.
bids-standard#487 (and originally bids-standard#439) is a `WIP ENH` to introduce standardized provenance capture/expression for BIDS datasets. This PR just follows the idea of bids-standard#371 (small atomic ENHs), and is based on current state of the specification where we have GeneratedBy to describe how a BIDS derivative dataset came to its existence. ## Rationale As I had previously stated in many (face-to-face when it was still possible ;)) conversations, in my view, any BIDS dataset is a derivative dataset. Even if it contains "raw" data, it is never given by gods, but is a result of some process (let's call it pipeline for consistency) which produced it out of some other data. That is why there is 1) `sourcedata/` to provide placement for such original (as "raw" in terms of processing, but "raw"er in terms of its relation to actual data acquired by equipment), and 2) `code/` to provide placement for scripts used to produce or "tune" the dataset. Typically "sourcedata" is either a collection of DICOMs or a collection of data in some other formats (e.g. nifti) which is then either converted or just renamed into BIDS layout. When encountering a new BIDS dataset ATM it requires forensics and/or data archaeology to discover how this BIDS dataset came about, to e.g. possibly figure out the source of the buggy (meta)data it contains. At the level of individual files, some tools already add ad-hoc fields during conversion into side car .json files they produce, <details> <summary>e.g. dcm2niix adds ConversionSoftware and ConversionSoftwareVersion</summary> ```shell (git-annex)lena:~/datalad/dbic/QA[master]git $> git grep ConversionSoftware | head -n 2 sub-amit/ses-20180508/anat/sub-amit_ses-20180508_acq-MPRAGE_T1w.json: "ConversionSoftware": "dcm2niix", sub-amit/ses-20180508/anat/sub-amit_ses-20180508_acq-MPRAGE_T1w.json: "ConversionSoftwareVersion": "v1.0.20170923 (OpenJPEG build) GCC6.3.0", ``` </details> ATM I need to add such metadata to datasets produced by heudiconv to make sure that in case of incremental conversions there is no switch in versions of the software.
bids-standard#487 (and originally bids-standard#439) is a `WIP ENH` to introduce standardized provenance capture/expression for BIDS datasets. This PR just follows the idea of bids-standard#371 (small atomic ENHs), and is based on current state of the specification where we have GeneratedBy to describe how a BIDS derivative dataset came to its existence. ## Rationale As I had previously stated in many (face-to-face when it was still possible ;)) conversations, in my view, any BIDS dataset is a derivative dataset. Even if it contains "raw" data, it is never given by gods, but is a result of some process (let's call it pipeline for consistency) which produced it out of some other data. That is why there is 1) `sourcedata/` to provide placement for such original (as "raw" in terms of processing, but "raw"er in terms of its relation to actual data acquired by equipment), and 2) `code/` to provide placement for scripts used to produce or "tune" the dataset. Typically "sourcedata" is either a collection of DICOMs or a collection of data in some other formats (e.g. nifti) which is then either converted or just renamed into BIDS layout. When encountering a new BIDS dataset ATM it requires forensics and/or data archaeology to discover how this BIDS dataset came about, to e.g. possibly figure out the source of the buggy (meta)data it contains. At the level of individual files, some tools already add ad-hoc fields during conversion into side car .json files they produce, <details> <summary>e.g. dcm2niix adds ConversionSoftware and ConversionSoftwareVersion</summary> ```shell (git-annex)lena:~/datalad/dbic/QA[master]git $> git grep ConversionSoftware | head -n 2 sub-amit/ses-20180508/anat/sub-amit_ses-20180508_acq-MPRAGE_T1w.json: "ConversionSoftware": "dcm2niix", sub-amit/ses-20180508/anat/sub-amit_ses-20180508_acq-MPRAGE_T1w.json: "ConversionSoftwareVersion": "v1.0.20170923 (OpenJPEG build) GCC6.3.0", ``` </details> ATM I need to add such metadata to datasets produced by heudiconv to make sure that in case of incremental conversions there is no switch in versions of the software.
This is a brief issue to possibly start discussion and so we do not forget.
Attn @tsalo @satra
ATM, to accomplish the job, many BEPs need to introduce changes to
_key
s) (Add "part" entity for magnitude and phase data #367).Quite often those changes are of interest for multiple BEPs, (e.g.
_part
for BEP001 (multiple contrasts) and BEP004 (SWI)), or even could be argued to be applicable to existing "raw" BIDS itself (e.g. bids dataset provenance, #369).But being introduced in dedicated specialized BEPs they
I would propose or us to
The text was updated successfully, but these errors were encountered: