cpp-lln-lab / CPP_BIDS

a set of matlab / octave function to create BIDS comptible folder structure and filenames
https://cpp-bids.readthedocs.io/en/dev/index.html
MIT License
1 stars 9 forks source link

create or update a scan.tsv file for each participant #117

Open Remi-Gau opened 3 years ago

Remi-Gau commented 3 years ago

At first let's not worry about the anonymization issues and let's keep the dates as they are. https://bids-specification.readthedocs.io/en/stable/03-modality-agnostic-files.html#scans-file

marcobarilari commented 3 years ago

FYI, bidsme create a scan.tsv automatically. See below for an example:

filename    acq_time
anat/sub-pilot001_ses-002_run-1_T1w.nii 2020-10-07T10:39:37
func/sub-pilot001_ses-002_task-retinotopyDriftingBarDot_run-1_bold.nii  2020-10-07T10:50:59
func/sub-pilot001_ses-002_task-retinotopyDriftingBarDot_dir-reversedPhase_run-1_bold.nii    2020-10-07T10:56:14
fmap/sub-pilot001_ses-002_run-1_magnitude1.nii  2020-10-07T10:56:26
fmap/sub-pilot001_ses-002_run-1_magnitude2.nii  2020-10-07T10:56:26
fmap/sub-pilot001_ses-002_run-1_phasediff.nii   2020-10-07T10:56:26
func/sub-pilot001_ses-002_task-retinotopyDriftingBar_run-1_bold.nii 2020-10-07T11:01:08
func/sub-pilot001_ses-002_task-retinotopyDriftingBar_dir-reversedPhase_run-1_bold.nii   2020-10-07T11:06:22
fmap/sub-pilot001_ses-002_run-2_magnitude1.nii  2020-10-07T11:06:34
fmap/sub-pilot001_ses-002_run-2_magnitude2.nii  2020-10-07T11:06:34
fmap/sub-pilot001_ses-002_run-2_phasediff.nii   2020-10-07T11:06:34
func/sub-pilot001_ses-002_task-retinotopyDriftingBarDot_run-2_bold.nii  2020-10-07T11:10:04
func/sub-pilot001_ses-002_task-retinotopyDriftingBarDot_dir-reversedPhase_run-2_bold.nii    2020-10-07T11:15:18
fmap/sub-pilot001_ses-002_run-3_magnitude1.nii  2020-10-07T11:15:30
fmap/sub-pilot001_ses-002_run-3_magnitude2.nii  2020-10-07T11:15:30
fmap/sub-pilot001_ses-002_run-3_phasediff.nii   2020-10-07T11:15:30
func/sub-pilot001_ses-002_task-retinotopyDriftingBar_run-2_bold.nii 2020-10-07T11:19:16
func/sub-pilot001_ses-002_task-retinotopyDriftingBar_dir-reversedPhase_run-2_bold.nii   2020-10-07T11:26:41
fmap/sub-pilot001_ses-002_run-4_magnitude1.nii  2020-10-07T11:26:54
fmap/sub-pilot001_ses-002_run-4_magnitude2.nii  2020-10-07T11:26:54
fmap/sub-pilot001_ses-002_run-4_phasediff.nii   2020-10-07T11:26:54
func/sub-pilot001_ses-002_task-bimotionGrating_run-1_bold.nii   2020-10-07T11:31:18
func/sub-pilot001_ses-002_task-bimotionGrating_run-2_bold.nii   2020-10-07T11:35:34
func/sub-pilot001_ses-002_task-bimotionGrating_run-3_bold.nii   2020-10-07T11:39:43
func/sub-pilot001_ses-002_task-bimotionGrating_dir-reversedPhase_run-1_bold.nii 2020-10-07T11:43:46
fmap/sub-pilot001_ses-002_run-5_magnitude1.nii  2020-10-07T11:44:03
fmap/sub-pilot001_ses-002_run-5_magnitude2.nii  2020-10-07T11:44:03
fmap/sub-pilot001_ses-002_run-5_phasediff.nii   2020-10-07T11:44:03
func/sub-pilot001_ses-002_task-bimotionGrating_dir-reversedPhase_run-4_bold.nii 2020-10-07T11:47:14
func/sub-pilot001_ses-002_task-bimotionGrating_run-4_bold.nii   2020-10-07T11:48:24
func/sub-pilot001_ses-002_task-bimotionGrating_run-5_bold.nii   2020-10-07T11:52:29
func/sub-pilot001_ses-002_task-bimotionGrating_run-6_bold.nii   2020-10-07T11:56:20
fmap/sub-pilot001_ses-002_run-6_magnitude1.nii  2020-10-07T11:59:41
fmap/sub-pilot001_ses-002_run-6_magnitude2.nii  2020-10-07T11:59:41
fmap/sub-pilot001_ses-002_run-6_phasediff.nii   2020-10-07T11:59:41
marcobarilari commented 3 years ago

also a sidecar json file

{
  "filename":{
    "LongName":"File Name",
    "Description":"Path to the scan file"
  },
  "acq_time":{
    "LongName":"Acquisition time",
    "Description":"Time corresponding to the first data taken during the scan"
  }
}
Remi-Gau commented 3 years ago

oh cool !

I am sure this one is more valid (though the dates are "anonymized" in the BIDSme one) than what I had in mind. :wink:

Still think we can eventually add this function as it might help with purely behavioral stuff.

CerenB commented 3 years ago

FYI, bidsme create a scan.tsv automatically. See below for an example:

filename  acq_time
anat/sub-pilot001_ses-002_run-1_T1w.nii   2020-10-07T10:39:37
func/sub-pilot001_ses-002_task-retinotopyDriftingBarDot_run-1_bold.nii    2020-10-07T10:50:59
func/sub-pilot001_ses-002_task-retinotopyDriftingBarDot_dir-reversedPhase_run-1_bold.nii  2020-10-07T10:56:14
fmap/sub-pilot001_ses-002_run-1_magnitude1.nii    2020-10-07T10:56:26
fmap/sub-pilot001_ses-002_run-1_magnitude2.nii    2020-10-07T10:56:26
fmap/sub-pilot001_ses-002_run-1_phasediff.nii 2020-10-07T10:56:26
func/sub-pilot001_ses-002_task-retinotopyDriftingBar_run-1_bold.nii   2020-10-07T11:01:08
func/sub-pilot001_ses-002_task-retinotopyDriftingBar_dir-reversedPhase_run-1_bold.nii 2020-10-07T11:06:22
fmap/sub-pilot001_ses-002_run-2_magnitude1.nii    2020-10-07T11:06:34
fmap/sub-pilot001_ses-002_run-2_magnitude2.nii    2020-10-07T11:06:34
fmap/sub-pilot001_ses-002_run-2_phasediff.nii 2020-10-07T11:06:34
func/sub-pilot001_ses-002_task-retinotopyDriftingBarDot_run-2_bold.nii    2020-10-07T11:10:04
func/sub-pilot001_ses-002_task-retinotopyDriftingBarDot_dir-reversedPhase_run-2_bold.nii  2020-10-07T11:15:18
fmap/sub-pilot001_ses-002_run-3_magnitude1.nii    2020-10-07T11:15:30
fmap/sub-pilot001_ses-002_run-3_magnitude2.nii    2020-10-07T11:15:30
fmap/sub-pilot001_ses-002_run-3_phasediff.nii 2020-10-07T11:15:30
func/sub-pilot001_ses-002_task-retinotopyDriftingBar_run-2_bold.nii   2020-10-07T11:19:16
func/sub-pilot001_ses-002_task-retinotopyDriftingBar_dir-reversedPhase_run-2_bold.nii 2020-10-07T11:26:41
fmap/sub-pilot001_ses-002_run-4_magnitude1.nii    2020-10-07T11:26:54
fmap/sub-pilot001_ses-002_run-4_magnitude2.nii    2020-10-07T11:26:54
fmap/sub-pilot001_ses-002_run-4_phasediff.nii 2020-10-07T11:26:54
func/sub-pilot001_ses-002_task-bimotionGrating_run-1_bold.nii 2020-10-07T11:31:18
func/sub-pilot001_ses-002_task-bimotionGrating_run-2_bold.nii 2020-10-07T11:35:34
func/sub-pilot001_ses-002_task-bimotionGrating_run-3_bold.nii 2020-10-07T11:39:43
func/sub-pilot001_ses-002_task-bimotionGrating_dir-reversedPhase_run-1_bold.nii   2020-10-07T11:43:46
fmap/sub-pilot001_ses-002_run-5_magnitude1.nii    2020-10-07T11:44:03
fmap/sub-pilot001_ses-002_run-5_magnitude2.nii    2020-10-07T11:44:03
fmap/sub-pilot001_ses-002_run-5_phasediff.nii 2020-10-07T11:44:03
func/sub-pilot001_ses-002_task-bimotionGrating_dir-reversedPhase_run-4_bold.nii   2020-10-07T11:47:14
func/sub-pilot001_ses-002_task-bimotionGrating_run-4_bold.nii 2020-10-07T11:48:24
func/sub-pilot001_ses-002_task-bimotionGrating_run-5_bold.nii 2020-10-07T11:52:29
func/sub-pilot001_ses-002_task-bimotionGrating_run-6_bold.nii 2020-10-07T11:56:20
fmap/sub-pilot001_ses-002_run-6_magnitude1.nii    2020-10-07T11:59:41
fmap/sub-pilot001_ses-002_run-6_magnitude2.nii    2020-10-07T11:59:41
fmap/sub-pilot001_ses-002_run-6_phasediff.nii 2020-10-07T11:59:41

is this the content of scan.tsv? I was having little bit different thing in my mind. e.g. keeping track of which subject is who AND the session dates.

Remi-Gau commented 3 years ago

is this the content of scan.tsv? I was having little bit different thing in my mind. e.g. keeping track of which subject is who AND the session dates.

yeah scans.tsv are more to know what happened when. If you have it in the subject folder it CAN tell you which session happen when. here this is just for the second session so all the dates are the same.

also in theory for anonymsation purposes BIDS in general does not keep track of which subject is who and dates should "scrambled" (that is offseted by a certain amount of time so that the absolute time of scan is wrong but the relative time of each scan to one another is correct.