Is there a convention for dealing with repeated acquisitions? #4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
It is not unusual to have to re-start given acquisition because of subject motion, issues with stimulus presentation, etc.
Currently the heuristic implements a simple logic: DICOMs are assigned to BIDS filenames based on a certain string being present in
(0018,1030) ProtocolName, and only the last matching run is kept (ie. repetitions are done to override previous ones).We need to gather the responses from all sites. Likely the practice is different.
Regarding the handling of repeated acquisitions, I can't offer much insight into Heudiconv's specific implementation since I primarily use dcm2bids.
However, at Mannheim, our current practice for dealing with repeated acquisitions is fairly straightforward. We either instruct our MTAs to only export the relevant/good acquisitions directly from the scanner, or, in a worst-case scenario where all files are exported, we manually select the relevant files during the BIDS conversion process.
Regarding the second question about quality control, I strongly support adding an additional check for the expected number of volumes for fMRI runs , provided it can easily implemented. This would add an important automated quality control layer during conversion, helping to detect incomplete or truncated runs at an early stage.
Thank you for the comment, this is reassuring to know!
From my experience, some sites export all acquisitions by default, either keeping the automatic numbering in names/descriptions, or manually adding some sort of e.g. suffix. These can be caught by automatic conversion, but only to a degree.
Heudiconv performs a similar task to dcm2bids, in that it maps DICOM series onto the desired file name templates. With Heudiconv, mapping is defined by implementing a Python function which takes DICOM series properties (series id, protocol name, etc.) and returns an assignment to naming templates. Checking for volume numbers is easy (e.g. adding
if s.dim4 < 20: continuesomewhere here would skip very short fMRI sequences; the comment above lists all properties which can be taken into account). I thought I had already done this, but apparently not - I'll make sure to do so in my next iteration.