Replies: 16 comments 39 replies
-
BIDS usagePrimitive obsessionPrimitive obsession: overuse of primitive types to implement domain-specific functionality instead of composing them into reusable higher-level models and abstractions, see [primitive-obsession]. Most of Clinica's BIDS handling logic relies on bare string manipulation. As a result, fixing a BIDS-compliance issue means scanning the entire codebase to spot buggy raw string composition logic. Use of Another area where Clinica lacks homogeneity and abstraction is in reading and writing modality-agnostic BIDS files. BIDS specifies its own flavour of TSV, which our calls to Solution: Provide a proper abstraction for BIDS dataset and filename operations and use it consistently throughout the codebase. Shotgun parsingShotgun parsing: ad-hoc validation during processing, see [langsec-cwes-secdev2016]. Clinica is riddled with instances of shotgun parsing in its codebase. For BIDS management in particular, some instances are centralized within Solution: Leave input validation at the edge of the program and use record types providing stronger guarantees within the rest of the processing. Inconsistent namingThe BIDS specification defines a glossary of terms, each modelling an important concept or notion. Clinica does not use these terms in a consistent manner, introducing confusion when reading part of the codebase. For instance: # in DWI preprocessing pipeline.
from clinica.utils.filemanip import get_subject_id
image_id = get_subject_id(dwi)
# image_id = "sub-<label>_ses-<label>" Multiple issues here:
|
Beta Was this translation helpful? Give feedback.
-
BIDS complianceBIDS datasetsSome converters produce a e.g OASIS:
CAPS datasetBIDS derivative specificationQuoted verbatim from version 1.6.0 of the specification.
|
Beta Was this translation helpful? Give feedback.
-
T1 linearCurrent specification
Motives for non-compliance
Proposal
|
Beta Was this translation helpful? Give feedback.
-
T1 volumeCurrent specification
Motives for non-compliance
Proposal
|
Beta Was this translation helpful? Give feedback.
-
T1 FreeSurfer (and longitudinal)Current specification
Motives for non-compliance
Proposal
|
Beta Was this translation helpful? Give feedback.
-
DWI connectomeCurrent specification
Motives for non-compliance
Proposal
|
Beta Was this translation helpful? Give feedback.
-
DWI preprocessingCurrent specification
Motives for non-compliance
Proposal
|
Beta Was this translation helpful? Give feedback.
-
DWI DTICurrent specification
Motives for non-compliance:
Proposal
|
Beta Was this translation helpful? Give feedback.
-
PET volumeCurrent specification
Motives for non-compliance
Proposal
Could we use shorter labels for the |
Beta Was this translation helpful? Give feedback.
-
PET surfaceCurrent specification
Motives for non-compliance
Proposal
|
Beta Was this translation helpful? Give feedback.
-
Statistics surfaceCurrent specification
Motives for non-compliance
ProposalRequires a proper rethinking of the pipeline's output model and how to map it to BIDS concepts. |
Beta Was this translation helpful? Give feedback.
-
Statistics volumeCurrent specification
Motives for non-compliance
ProposalRequires a proper rethinking of the pipeline's output model and how to map it to BIDS concepts. |
Beta Was this translation helpful? Give feedback.
-
Spatial SVMCurrent specification
Motives for non-compliance
Proposal
|
Beta Was this translation helpful? Give feedback.
-
Content of a statistics fileCurrent specification
Areas for improvement
|
Beta Was this translation helpful? Give feedback.
-
ADNI:
|
Beta Was this translation helpful? Give feedback.
-
AIBL:
|
Beta Was this translation helpful? Give feedback.
-
This discussion compiles the outcome of multiple assessment carried on Clinica to evaluate its BIDS compliance.
Clinica produces raw BIDS dataset and its own flavor of derivative datasets named CAPS. An ongoing goal for Clinica has been to improve its BIDS compliance to improve its interoperability with other BIDS compatible tools.
Beta Was this translation helpful? Give feedback.
All reactions