Skip to content
Snippets Groups Projects
Commit 668ec288 authored by Beliy Nikita's avatar Beliy Nikita
Browse files

Initial import

parents
No related branches found
No related tags found
No related merge requests found
Showing
with 1504 additions and 0 deletions
*.pyc
.idea
*.IMA
*.swp
dist
build
bidscoin.egg-info
.coverage
.vscode
venv
.eggs
htmlcov
__pycache__
.tox
tests/testdata/*.log
tests/testdata/bidsmap_output.yaml
test/
This folder contains toy datasets inspired from real ones but with removed
data and keeping meta-information to minimum. The demographic informations
and subjects id are randomised.
Each example folder contains 3 subfolders:
- source, containing the original toy dataset
- renamed, containing sorted dataset
- bids, containing bidsified dataset
- resources, containing all nessesairy plugins and files to run the example
## Example 1
Example 1 is based on unpublished study on effet of fatigue on memory performance.
# Ignore everything in this directory
*
# Except this file
!.gitignore
# Ignore everything in this directory
*
# Except this file
!.gitignore
File added
{
"onset":{
"LongName":"Onset (in seconds) of the event",
"Description":"Onset (in seconds) of the event measured from the beginning of the acquisition of the first volume in the corresponding task imaging data file.",
"Units":"s"
},
"duration":{
"LongName":"Time that stimulus was presented",
"Units":"s"
},
"response_time":{
"LongName":"Time taked to respond to stimulus",
"Units":"s"
},
"trial_type":{
"LongName":"Condition presented to subject",
"Levels":{
"Test_1Back":"",
"Test_2Back":"",
"Test_3Back":""
}
},
"block":{
"LongName":"Id of block for trial"
},
"value":{
"LongName":"Recieved responce",
"Levels":{
"c":"correct",
"n":"non correct"
}
},
"exp_value":{
"LongName":"Expected responce",
"Levels":{
"c":"correct",
"n":"non correct"
}
}
}
\ No newline at end of file
{
"trial_type":{
"LongName":"Asked question",
"Description":"State evaluation question",
"Levels":{
"Motivation":"Estimation of motivation",
"Happiness":"Estimation of happiness",
"Fatigue":"Estimation of fatigue",
"Openness":"Estimation of openness",
"Stress":"Estimation of stress",
"Anxiety":"Estimation of anxiety",
"Effort":"Estimation of effort"
}
},
"stim_file":{
"LongName":"Image presented during question"
},
"value":{
"LongName":"Recieved estimation value",
"Description":"Recieved estimation value in scale from 0 to 100"
}
}
\ No newline at end of file
Options:
version: 2.3.1
bidsignore: []
PlugIns:
path: test/resources/plugin/bidsify_plugin.py
options: {}
MRI:
Nifti_SPM12:
__ignore__:
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-HCL/MRI/001-localizer/s1904-0001-00001-000001-01.nii
checked: true
suffix: ''
attributes:
ProtocolName: 'localizer'
bids: !!omap []
json: !!omap []
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/002-al_mtflash3d_sensArray/s1905-0002-00001-000032-01.nii
checked: true
suffix: ''
attributes:
SeriesDescription: 'invalid'
bids: !!omap []
json: !!omap []
func:
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-HCL/MRI/002-cmrr_mbep2d_bold_mb2_invertpe/f1904-0002-00001-000001-01.nii
example: func/sub-003_ses-HCL_task-nBack_dir-PA_run-1_bold
checked: true
suffix: bold
attributes:
ProtocolName: cmrr_mbep2d_bold_mb2_invertpe
ImageType: ORIGINAL\\PRIMARY\\M\\MB\\ND\\MOSAIC
SeriesDescription: 'nBack'
bids: !!omap
- dir: PA
- task: nBack
- acq: ~
- ce: ~
- rec: ~
- run: <AcquisitionNumber>
- echo: ~
json: !!omap
- TaskName: <<bids:task>>
- Instructions: ""
- TaskDescription: ""
- CogAtlasID: ""
- CogPOID: ""
- RepetitionTime: <time3:RepetitionTime>
- NumberOfVolumesDiscardedByScanner: ""
- NumberOfVolumesDiscardedByUser: ""
- DelayTime: 0
- DelayAfterTrigger: ""
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-HCL/MRI/006-cmrr_mbep2d_bold_mb2_invertpe/f1904-0006-00001-000001-01.nii
example: func/sub-003_ses-HCL_task-rest_dir-PA_run-1_bold
checked: true
suffix: bold
attributes:
ProtocolName: cmrr_mbep2d_bold_mb2_invertpe
ImageType: ORIGINAL\\PRIMARY\\M\\MB\\ND\\MOSAIC
SeriesDescription: 'rest'
bids: !!omap
- dir: PA
- task: rest
- acq: ~
- ce: ~
- rec: ~
- run: <AcquisitionNumber>
- echo: ~
json: !!omap
- TaskName: <<bids:task>>
- Instructions: ""
- TaskDescription: ""
- CogAtlasID: ""
- CogPOID: ""
- RepetitionTime: <time3:RepetitionTime>
- NumberOfVolumesDiscardedByScanner: ""
- NumberOfVolumesDiscardedByUser: ""
- DelayTime: 0
- DelayAfterTrigger: ""
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-HCL/MRI/004-cmrr_mbep2d_bold_mb2_task_fat/f1904-0004-00001-000001-01.nii
example: func/sub-003_ses-HCL_task-nBack_dir-AP_run-1_bold
checked: true
suffix: bold
attributes:
ProtocolName: cmrr_mbep2d_bold_mb2_task_fat
ImageType: ORIGINAL\\PRIMARY\\M\\MB\\ND\\MOSAIC
bids: !!omap
- dir: AP
- task: nBack
- acq: ~
- ce: ~
- rec: ~
- run: <AcquisitionNumber>
- echo: ~
json: !!omap
- TaskName: <<bids:task>>
- Instructions: ""
- TaskDescription: ""
- CogAtlasID: ""
- CogPOID: ""
- RepetitionTime: <time3:RepetitionTime>
- NumberOfVolumesDiscardedByScanner: ""
- NumberOfVolumesDiscardedByUser: ""
- DelayTime: 0
- DelayAfterTrigger: ""
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-HCL/MRI/008-cmrr_mbep2d_bold_mb2_rest/f1904-0008-00001-000001-01.nii
example: func/sub-003_ses-HCL_task-rest_dir-AP_run-1_bold
checked: true
suffix: bold
attributes:
ProtocolName: cmrr_mbep2d_bold_mb2_rest
ImageType: ORIGINAL\\PRIMARY\\M\\MB\\ND\\MOSAIC
bids: !!omap
- dir: AP
- task: rest
- acq: ~
- ce: ~
- rec: ~
- run: <AcquisitionNumber>
- echo: ~
json: !!omap
- TaskName: <<bids:task>>
- Instructions: ""
- TaskDescription: ""
- CogAtlasID: ""
- CogPOID: ""
- RepetitionTime: <time3:RepetitionTime>
- NumberOfVolumesDiscardedByScanner: ""
- NumberOfVolumesDiscardedByUser: ""
- DelayTime: 0
- DelayAfterTrigger: ""
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-LCL/MRI/004-cmrr_mbep2d_bold_mb2_task_nfat/f1894-0004-00001-000001-01.nii
example: func/sub-003_ses-LCL_task-nBack_dir-AP_run-1_bold
checked: true
suffix: bold
attributes:
ProtocolName: cmrr_mbep2d_bold_mb2_task_nfat
ImageType: ORIGINAL\\PRIMARY\\M\\MB\\ND\\MOSAIC
bids: !!omap
- dir: AP
- task: nBack
- acq: ~
- ce: ~
- rec: ~
- run: <AcquisitionNumber>
- echo: ~
json: !!omap
- TaskName: <<bids:task>>
- Instructions: ""
- TaskDescription: ""
- CogAtlasID: ""
- CogPOID: ""
- RepetitionTime: <time3:RepetitionTime>
- NumberOfVolumesDiscardedByScanner: ""
- NumberOfVolumesDiscardedByUser: ""
- DelayTime: 0
- DelayAfterTrigger: ""
fmap:
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-HCL/MRI/010-gre_field_mapping/s1904-0010-00001-000001-01.nii
example: fmap/sub-003_ses-HCL_magnitude1
checked: true
suffix: magnitude<EchoNumbers>
attributes:
ProtocolName: 'gre_field_mapping'
ImageType: 'ORIGINAL\\PRIMARY\\M\\ND'
SeriesDescription: 'HCL/LCL'
bids: !!omap
- acq: ~
- ce: ~
- dir: ~
- run: ~
json: !!omap
- EchoTime: <time3:EchoTime>
- IntendedFor:
- "func/<<subject>>_<<session>>_task-nBack_bold.nii"
- "func/<<subject>>_<<session>>_task-rest_bold.nii"
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/015-gre_field_mapping/s1905-0015-00001-000001-01.nii
example: fmap/sub-003_ses-STROOP_magnitude1
checked: true
suffix: magnitude<EchoNumbers>
attributes:
ProtocolName: 'gre_field_mapping'
ImageType: 'ORIGINAL\\PRIMARY\\M\\ND'
SeriesDescription: 'STROOP'
bids: !!omap
- acq: ~
- ce: ~
- dir: ~
- run: ~
json: !!omap
- EchoTime: <time3:EchoTime>
- IntendedFor:
- "anat/<<subject>>_<<session>>_acq-PDw_echo-*_MPM.nii"
- "anat/<<subject>>_<<session>>_acq-MTw_echo-*_MPM.nii"
- "anat/<<subject>>_<<session>>_acq-T1w_echo-*_MPM.nii"
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-HCL/MRI/011-gre_field_mapping/s1904-0011-00001-000001-02.nii
example: fmap/sub-003_ses-HCL_phasediff
checked: true
suffix: phasediff
attributes:
ProtocolName: 'gre_field_mapping'
ImageType: 'ORIGINAL\\PRIMARY\\P\\ND'
SeriesDescription: 'HCL/LCL'
bids: !!omap
- acq: ~
- ce: ~
- dir: ~
- run: ~
json: !!omap
- EchoTime: ~
- EchoTime1: <time6:CSASeriesHeaderInfo/MrPhoenixProtocol/alTE/0>
- EchoTime2: <time6:CSASeriesHeaderInfo/MrPhoenixProtocol/alTE/1>
- IntendedFor:
- "func/<<subject>>_<<session>>_task-nBack_bold.nii"
- "func/<<subject>>_<<session>>_task-rest_bold.nii"
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/016-gre_field_mapping/s1905-0016-00001-000001-02.nii
example: fmap/sub-003_ses-STROOP_phasediff
checked: true
suffix: phasediff
attributes:
ProtocolName: 'gre_field_mapping'
ImageType: 'ORIGINAL\\PRIMARY\\P\\ND'
SeriesDescription: 'STROOP'
bids: !!omap
- acq: ~
- ce: ~
- dir: ~
- run: ~
json: !!omap
- EchoTime: ~
- EchoTime1: <time6:CSASeriesHeaderInfo/MrPhoenixProtocol/alTE/0>
- EchoTime2: <time6:CSASeriesHeaderInfo/MrPhoenixProtocol/alTE/1>
- IntendedFor:
- "anat/<<subject>>_<<session>>_acq-PDw_echo-*_MPM.nii"
- "anat/<<subject>>_<<session>>_acq-MTw_echo-*_MPM.nii"
- "anat/<<subject>>_<<session>>_acq-T1w_echo-*_MPM.nii"
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/002-al_mtflash3d_sensArray/s1905-0002-00001-000032-01.nii
example: fmap/sub-003_ses-STROOP_acq-HeadPDw_B1minus
checked: true
suffix: B1minus
attributes:
ProtocolName: 'al_mtflash3d_sensArray'
SeriesDescription: 'PDw'
bids: !!omap
- acq: HeadPDw
- mod: ~
json: !!omap
- EchoTime: <time3:EchoTime>
- IntendedFor:
- "anat/<<subject>>_<<session>>_acq-<<bids:mod>>_echo-*_MPM.nii"
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/003-al_mtflash3d_sensBody/s1905-0003-00001-000032-01.nii
example: fmap/sub-003_ses-STROOP_acq-BodyPDw_B1minus
checked: true
suffix: B1minus
attributes:
ProtocolName: 'al_mtflash3d_sensBody'
SeriesDescription: 'PDw'
bids: !!omap
- acq: BodyPDw
- mod: ~
json: !!omap
- EchoTime: <time3:EchoTime>
- IntendedFor:
- "anat/<<subject>>_<<session>>_acq-<<bids:mod>>_echo-*_MPM.nii"
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/014-al_B1mapping/s1905-0014-00001-000001-01.nii
example: fmap/sub-003_ses-STROOP_echo-1_fa-1_B1plus
checked: true
suffix: B1plus
attributes:
ProtocolName: 'al_B1mapping'
bids: !!omap
- echo: <EchoNumbers>
- fa: <AcquisitionNumber>
json: !!omap
- EchoTime: <time3:EchoTime>
- B1mapNominalFAValues: <B1mapNominalFAValues>
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/006-al_mtflash3d_sensArray/s1905-0006-00001-000032-01.nii
example: fmap/sub-003_ses-STROOP_acq-HeadT1w_B1minus
checked: true
suffix: B1minus
attributes:
ProtocolName: 'al_mtflash3d_sensArray'
SeriesDescription: 'T1w'
bids: !!omap
- acq: HeadT1w
- mod: ~
json: !!omap
- EchoTime: <time3:EchoTime>
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/007-al_mtflash3d_sensBody/s1905-0007-00001-000032-01.nii
example: fmap/sub-003_ses-STROOP_acq-BodyT1w_B1minus
checked: true
suffix: B1minus
attributes:
ProtocolName: 'al_mtflash3d_sensBody'
SeriesDescription: 'T1w'
bids: !!omap
- acq: BodyT1w
- mod: ~
json: !!omap
- IntendedFor:
- "anat/<<subject>>_<<session>>_acq-<<bids:mod>>_echo-*_MPM.nii"
- EchoTime: <time3:EchoTime>
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/010-al_mtflash3d_sensArray/s1905-0010-00001-000032-01.nii
example: fmap/sub-003_ses-STROOP_acq-HeadMTw_B1minus
checked: true
suffix: B1minus
attributes:
ProtocolName: 'al_mtflash3d_sensArray'
SeriesDescription: 'MTw'
bids: !!omap
- acq: HeadMTw
- mod: ~
json: !!omap
- IntendedFor:
- "anat/<<subject>>_<<session>>_acq-<<bids:mod>>_echo-*_MPM.nii"
- EchoTime: <time3:EchoTime>
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/011-al_mtflash3d_sensBody/s1905-0011-00001-000032-01.nii
example: fmap/sub-003_ses-STROOP_acq-BodyMTw_B1minus
checked: true
suffix: B1minus
attributes:
ProtocolName: 'al_mtflash3d_sensBody'
SeriesDescription: 'MTw'
bids: !!omap
- acq: BodyMTw
- mod: ~
json: !!omap
- IntendedFor:
- "anat/<<subject>>_<<session>>_acq-<<bids:mod>>_echo-*_MPM.nii"
- EchoTime: <time3:EchoTime>
dwi:
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-HCL/MRI/012-cmrr_mbep2d_diff_NODDI_invertpe/s1904-0012-00001-000001-01.nii
example: dwi/sub-003_ses-HCL_acq-RF_dir-PA_run-1_dwi
checked: true
suffix: dwi
attributes:
ProtocolName: cmrr_mbep2d_diff_NODDI_invertpe
bids: !!omap
- dir: PA
- acq: RF
- run: <AcquisitionNumber>
json: !!omap []
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-HCL/MRI/013-cmrr_mbep2d_diff_NODDI/f1904-0013-00001-000001-01.nii
example: dwi/sub-003_ses-HCL_acq-RF_dir-AP_run-1_dwi
checked: true
suffix: dwi
attributes:
ProtocolName: cmrr_mbep2d_diff_NODDI
bids: !!omap
- dir: AP
- acq: RF
- run: <AcquisitionNumber>
json: !!omap []
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-HCL/MRI/014-cmrr_mbep2d_diff_NODDI_noise/s1904-0014-00001-000001-01.nii
example: dwi/sub-003_ses-HCL_acq-noRF_dir-AP_run-1_dwi
checked: true
suffix: dwi
attributes:
ProtocolName: cmrr_mbep2d_diff_NODDI_noise
bids: !!omap
- dir: AP
- acq: noRF
- run: <AcquisitionNumber>
json: !!omap []
anat:
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-LCL/MRI/012-t1_mpr_sag_p2_iso/s1894-0012-00001-000224-01.nii
example: anat/sub-003_ses-LCL_T1w
checked: true
suffix: T1w
attributes:
ProtocolName: t1_mpr_sag_p2_iso
bids: !!omap
- acq: ~
- ce: ~
- rec: ~
- run: ~
- mod: ~
json: !!omap
- ContrastBolusIngredient: ~
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-LCL/MRI/013-t2_spc_da-fl_sag_p2_iso/s1894-0013-00001-000192-01.nii
example: anat/sub-003_ses-LCL_FLAIR
checked: true
suffix: FLAIR
attributes:
ProtocolName: 't2_spc_da-fl_sag_p2_iso'
bids: !!omap
- acq: ~
- ce: ~
- rec: ~
- run: ~
- mod: ~
json: !!omap
- ContrastBolusIngredient: ~
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/004-al_mtflash3d_PDw/s1905-0004-00001-000176-01.nii
example: anat/sub-003_ses-STROOP_acq-PDw_part-mag_echo-1_MPM
checked: true
suffix: MPM
attributes:
ProtocolName: 'al_mtflash3d_PDw'
ImageType: 'ORIGINAL\\PRIMARY\\M\\ND'
bids: !!omap
- acq: PDw
- ce: ~
- rec: ~
- part: mag
- run: ~
- echo: <EchoNumbers>
- mod: ~
json: !!omap
- MTState: "Off"
- ContrastBolusIngredient: ~
- EchoTime: <time3:EchoTime>
- RepetitionTime: <time3:RepetitionTime>
- FlipAngle: <FlipAngle>
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/008-al_mtflash3d_T1w/s1905-0008-00001-000176-01.nii
example: anat/sub-003_ses-STROOP_acq-T1w_part-mag_echo-1_MPM
checked: true
suffix: MPM
attributes:
ProtocolName: al_mtflash3d_T1w
ImageType: 'ORIGINAL\\PRIMARY\\M\\ND'
bids: !!omap
- acq: T1w
- part: mag
- ce: ~
- rec: ~
- run: ~
- mod: ~
- echo: <EchoNumbers>
json: !!omap
- ContrastBolusIngredient: ~
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/012-al_mtflash3d_MTw/s1905-0012-00001-000176-01.nii
example: anat/sub-003_ses-STROOP_acq-MTw_part-mag_echo-1_MPM
checked: true
suffix: MPM
attributes:
ProtocolName: 'al_mtflash3d_MTw'
ImageType: 'ORIGINAL\\PRIMARY\\M\\ND'
bids: !!omap
- acq: MTw
- ce: ~
- rec: ~
- part: mag
- run: ~
- echo: <EchoNumbers>
- mod: ~
json: !!omap
- MTState: "On"
- ContrastBolusIngredient: ~
- EchoTime: <time3:EchoTime>
- RepetitionTime: <time3:RepetitionTime>
- FlipAngle: <FlipAngle>
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/005-al_mtflash3d_PDw/s1905-0005-00001-000176-01.nii
example: anat/sub-003_ses-STROOP_acq-PDw_part-phase_echo-1_MPM
checked: true
suffix: MPM
attributes:
ProtocolName: 'al_mtflash3d_PDw'
ImageType: 'ORIGINAL\\PRIMARY\\P\\ND'
bids: !!omap
- acq: PDw
- ce: ~
- rec: ~
- part: phase
- run: ~
- echo: <EchoNumbers>
- mod: ~
json: !!omap
- MTState: "Off"
- ContrastBolusIngredient: ~
- EchoTime: <time3:EchoTime>
- RepetitionTime: <time3:RepetitionTime>
- FlipAngle: <FlipAngle>
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/009-al_mtflash3d_T1w/s1905-0009-00001-000176-01.nii
example: anat/sub-003_ses-STROOP_acq-T1w_part-phase_echo-1_T1w
checked: true
suffix: MPM
attributes:
ProtocolName: al_mtflash3d_T1w
ImageType: 'ORIGINAL\\PRIMARY\\P\\ND'
bids: !!omap
- acq: T1w
- part: phase
- ce: ~
- rec: ~
- run: ~
- mod: ~
- echo: <EchoNumbers>
json: !!omap
- ContrastBolusIngredient: ~
- provenance: /home/beliy/Works/bidscoin/test/renamed/sub-003/ses-STROOP/MRI/013-al_mtflash3d_MTw/s1905-0013-00001-000176-01.nii
example: anat/sub-003_ses-STROOP_acq-MTw_part-phase_echo-1_MPM
checked: true
suffix: MPM
attributes:
ProtocolName: 'al_mtflash3d_MTw'
ImageType: 'ORIGINAL\\PRIMARY\\P\\ND'
bids: !!omap
- acq: MTw
- ce: ~
- rec: ~
- part: phase
- run: ~
- echo: <EchoNumbers>
- mod: ~
json: !!omap
- MTState: "On"
- ContrastBolusIngredient: ~
- EchoTime: <time3:EchoTime>
- RepetitionTime: <time3:RepetitionTime>
- FlipAngle: <FlipAngle>
{
"participant_id":{
"LongName":"Participant Id",
"Description":"label identifying a particular subject"
},
"age":{
"LongName":"Age",
"Description":"Age of a subject",
"Units":"year"
},
"sex":{
"LongName":"Sex",
"Description":"Sex of a subject",
"Levels":{
"F":"Female",
"M":"Male"
}
},
"education":{
"LongName":"Education level",
"Description":"Education level"
},
"group":{
"LongName":"group",
"Description":"Group subject belongs",
"Levels":{
"patient":"patient",
"control":"control"
}
},
"handiness":{
"LongName":"Handiness of subject",
"Levels":{
"r":"right-handed",
"l":"left-handed"
}
},
"paired":{
"LongName":"Paired Id",
"Description":"Subject Id paired with this subject"
},
"ses_1":{
"LongName":"First session",
"Description":"Id of the first session taken by subject",
"Levels":{
"ses-LCL":"Low charge level",
"ses-HCL":"High charge level",
"ses-STROOP":"Multiparametric scan"
}
},
"ses_2":{
"LongName":"Second session",
"Description":"Id of the second session taken by subject",
"Levels":{
"ses-LCL":"Low charge level",
"ses-HCL":"High charge level",
"ses-STROOP":"Multiparametric scan"
}
},
"ses_3":{
"LongName":"Third session",
"Description":"Id of the second session taken by subject",
"Levels":{
"ses-LCL":"Low charge level",
"ses-HCL":"High charge level",
"ses-STROOP":"Multiparametric scan"
}
}
}
\ No newline at end of file
import os
import shutil
import logging
import pandas
import Modules
from definitions import Series, checkSeries
logger = logging.getLogger(__name__)
# global variables
rawfolder = ""
bidsfolder = ""
dry_run = False
participants_table = None
rec_path = ""
countSeries = {}
def InitEP(source: str, destination: str, dry: bool) -> int:
global rawfolder
global bidsfolder
global dry_run
rawfolder = source
bidsfolder = destination
dry_run = dry
participants = os.path.join(rawfolder, "participants.tsv")
if not os.path.isfile(participants):
e = "participants.tsv not found in {}".format(rawfolder)
logger.critical(e)
raise FileNotFoundError("participants.tsv not found")
global participants_table
participants_table = pandas.read_csv(participants, sep='\t',
header=0,
index_col="participant_id",
na_values="n/a")
participants_table = participants_table.groupby("participant_id")\
.ffill().drop_duplicates()
duplicates = participants_table.index.duplicated(keep=False)
if duplicates.any():
logger.error("One or several subjects have conflicting values."
"See {} for details"
.format(participants))
raise KeyError("Conflicting values in subject descriptions")
Modules.baseModule.sub_BIDSfields.LoadDefinitions(os.path.join(rawfolder,
"participants.json"))
def SessionEP(scan):
global series
global sid
sub = scan["subject"]
ses = scan["session"]
path = os.path.join(rawfolder,
sub, ses,
"MRI")
series = sorted(os.listdir(path))
series = [s.split("-",1)[1] for s in series]
sid = -1
checkSeries(path, sub, ses, False)
# copytng behevioral data
aux_input = os.path.join(rawfolder, sub, ses, "aux")
if ses in ("ses-LCL", "ses-HCL"):
if not os.path.isdir(aux_input):
logger.error("Session {}/{} do not contain aux folder"
.format(sub, ses))
raise FileNotFoundError("folder {} not found"
.format(aux_input))
beh = os.path.join(bidsfolder, sub, ses, "beh")
if not dry_run:
os.makedirs(beh, exist_ok=True)
for old, new in (("FCsepNBack.tsv", "task-rest_events.tsv"),
("FCsepNBack.json", "task-rest_events.json"),
("VAS.tsv", "task-rest_beh.tsv"),
("VAS.json", "task-rest_beh.json")):
source = "{}/{}".format(aux_input, old)
dest = "{}/{}_{}_{}".format(beh, sub, ses, new)
if not os.path.isfile(source):
if dry_run:
logger.error("{}/{}: File {} not found"
.format(sub, ses, source))
else:
logger.critical("{}/{}: File {} not found"
.format(sub, ses, source))
raise FileNotFoundError(source)
if os.path.isfile(dest):
logger.warning("{}/{}: File {} already exists"
.format(sub, ses, dest))
if not dry_run:
shutil.copy2(source, dest)
series = list()
sid = -1
Intended = ""
def SequenceEP(recording):
global series
global sid
global Intended
Intended = ""
sub = recording.subId()
part = participants_table.loc[sub]
for f in participants_table.columns:
recording.sub_BIDSvalues[f] = part[f]
sid += 1
recid = series[sid]
if recid != recording.recId():
logger.warning("{}: Id mismatch folder {}"
.format(recording.recIdentity(False),
recid))
if recid == "cmrr_mbep2d_bold_mb2_invertpe":
mod = series[sid + 1]
if mod.endswith("cmrr_mbep2d_bold_mb2_task_fat"):
Intended = "nBack"
elif mod.endswith("cmrr_mbep2d_bold_mb2_task_nfat"):
Intended = "nBack"
elif mod.endswith("cmrr_mbep2d_bold_mb2_rest"):
Intended = "rest"
else:
Intended = "invalid"
logger.warning("{}: Unknown session {}"
.format(recording.recIdentity(),
mod))
elif recid == "gre_field_mapping":
if recording.sesId() in ("ses-HCL", "ses-LCL"):
Intended = "HCL/LCL"
elif recording.sesId() == "ses-STROOP":
Intended = "STROOP"
else:
logger.warning("{}: Unknown session {}"
.format(recording.recIdentity(),
recording.sesId()))
Intended = "invalid"
elif recid == "al_mtflash3d_sensArray":
det = series[sid + 2]
if det.endswith("al_mtflash3d_PDw"):
Intended = "PDw"
elif det.endswith("al_mtflash3d_T1w"):
Intended = "T1w"
recording.setAttribute("Intended", "T1w")
elif det.endswith("al_mtflash3d_MTw"):
Intended = "MTw"
else:
logger.warning("{}: Unable determine modality"
.format(recording.recIdentity()))
Intended = "invalid"
elif recid == "al_mtflash3d_sensBody":
det = series[sid + 1]
if det.endswith("al_mtflash3d_PDw"):
Intended = "PDw"
elif det.endswith("al_mtflash3d_T1w"):
Intended = "T1w"
elif det.endswith("al_mtflash3d_MTw"):
Intended = "MTw"
else:
logger.warning("{}: Unable determine modality"
.format(recording.recIdentity()))
Intended = "invalid"
def RecordingEP(recording):
if Intended != "":
recording.setAttribute("SeriesDescription", Intended)
import logging
import os
logger = logging.getLogger(__name__)
Series = {
"ses-LCL": ('localizer',
'cmrr_mbep2d_bold_mb2_invertpe',
'cmrr_mbep2d_bold_mb2_task_nfat',
'cmrr_mbep2d_bold_mb2_invertpe',
'cmrr_mbep2d_bold_mb2_rest',
'gre_field_mapping',
'gre_field_mapping',
't1_mpr_sag_p2_iso',
't2_spc_da-fl_sag_p2_iso'
),
"ses-HCL": ('localizer',
'cmrr_mbep2d_bold_mb2_invertpe',
'cmrr_mbep2d_bold_mb2_task_fat',
'cmrr_mbep2d_bold_mb2_invertpe',
'cmrr_mbep2d_bold_mb2_rest',
'gre_field_mapping',
'gre_field_mapping',
'cmrr_mbep2d_diff_NODDI_invertpe',
'cmrr_mbep2d_diff_NODDI',
'cmrr_mbep2d_diff_NODDI_noise'
),
"ses-STROOP": ('localizer',
'al_mtflash3d_sensArray',
'al_mtflash3d_sensBody',
'al_mtflash3d_PDw',
'al_mtflash3d_PDw',
'al_mtflash3d_sensArray',
'al_mtflash3d_sensBody',
'al_mtflash3d_T1w',
'al_mtflash3d_T1w',
'al_mtflash3d_sensArray',
'al_mtflash3d_sensBody',
'al_mtflash3d_MTw',
'al_mtflash3d_MTw',
'al_B1mapping',
'gre_field_mapping',
'gre_field_mapping'
)
}
countSeries = {}
for ses in Series:
countSeries[ses] = dict.fromkeys(Series[ses], 0)
for ser in Series[ses]:
countSeries[ses][ser] += 1
def checkSeries(path: str,
subject: str, session: str,
critical: bool) -> None:
"""
Retrieve list of series from path and checks
its compatibility with defined list
Parameters:
-----------
path: str
Path to folder containing series folder
subject: str
Subject id
session: str
Name of session to check
critical: bool
If True, mismatches will creeate exceptions
and critical level log entries
"""
if session not in Series:
msg = "{}/{}: Invalid session".format(subject, session)
reportError(msg, critical, KeyError)
return
passed = True
series = sorted(os.listdir(path))
series = [s.split("-",1)[1] for s in series]
for ind, s in enumerate(series):
if s not in Series[session]:
msg = "{}/{}: Invalid serie {}".format(subject, session, s)
logger.error(msg)
passed = False
continue
if s == "cmrr_mbep2d_bold_mb2_invertpe":
if ind >= len(series) or\
series[ind + 1] not in ("cmrr_mbep2d_bold_mb2_task_nfat",
"cmrr_mbep2d_bold_mb2_task_fat",
"cmrr_mbep2d_bold_mb2_rest"):
msg = "{}/{}: {:03}-{} isn't followed by task recording"\
.format(subject, session, ind, s)
logger.error(msg)
passed = False
elif s == "al_mtflash3d_sensArray":
if ind >= len(series) - 1 or\
series[ind + 2] not in ("al_mtflash3d_PDw",
"al_mtflash3d_MTw",
"al_mtflash3d_T1w"):
msg = "{}/{}: {:03}-{} isn't followed by weighted recording"\
.format(subject, session, ind, s)
logger.error(msg)
passed = False
elif s == "al_mtflash3d_sensBody":
if ind >= len(series) or\
series[ind + 1] not in ("al_mtflash3d_PDw",
"al_mtflash3d_MTw",
"al_mtflash3d_T1w"):
msg = "{}/{}: {:03}-{} isn't followed by weighted recording"\
.format(subject, session, ind, s)
logger.error(msg)
passed = False
for ser, count in countSeries[session].items():
count_loc = series.count(ser)
if count != count_loc:
msg = "{}/{}: Expected {} occurences of {}, got {}"\
.format(subject, session, count, ser, count_loc)
logger.error(msg)
passed = False
if not passed:
msg = "{}/{}: One or several series errors detected"\
.format(subject, session)
reportError(msg, critical, ValueError)
return passed
def reportError(msg: str, critical: bool, error: type=ValueError) -> None:
"""
reports error.
If critical, an exception of type error will raise
Parametres:
-----------
msg: str
message to report
critical: bool
determines level of error
error: exception
type of exception to raise in case of critical
"""
if critical:
logger.critical(msg)
raise exception(msg)
else:
logger.error(msg)
import os
import pandas
import glob
import logging
import shutil
from tools import tools
from bidsMeta import BIDSfieldLibrary
from definitions import Series, checkSeries
logger = logging.getLogger(__name__)
# global variables
rawfolder = ""
bidsfolder = ""
dry_run = False
resources = os.path.join(os.path.dirname(__file__), "..")
df_subjects = None
scans_map = {}
# scale to convert ms in log-files to seconds
time_scale = 1e-3
# list of subjects exel-file columns
excel_col_list = {'Patient' : 'pat',
'S_A_E' : "pat_sae",
1: "pat_1", 2: "pat_2", 3: "pat_3",
'Control' : "cnt",
'S_A_E.1': "cnt_sae",
'1.1': "cnt_1", '2.1': "cnt_2", '3.1': "cnt_3",
}
sub_columns = BIDSfieldLibrary()
def InitEP(source: str, destination: str,
dry: bool,
subjects: str="") -> int:
global rawfolder
global bidsfolder
global dry_run
global subject_file
rawfolder = source
bidsfolder = destination
dry_run = dry
if subjects:
subject_file = subjects
else:
subject_file = os.path.join(resources, "Appariement.xlsx")
logger.info(subject_file)
if not os.path.isfile(subject_file):
raise FileNotFoundError("Subject file '{}' not found"
.format(subject_file))
# generating model participants.tsv
model_participants = os.path.join(resources, "participants.json")
sub_columns.LoadDefinitions(model_participants)
# creating df for subjects
global df_subjects
df_subjects = pandas.read_excel(subject_file,
sheet_name=0, header=0,
usecols=[0,1,2,3,4,5,6,7,8,9,10])
df_subjects.rename(index=str, columns=excel_col_list,inplace=True)
df_subjects = df_subjects[df_subjects['pat'].notnull()
| df_subjects['cnt'].notnull()]
def SubjectEP(session):
sub_id = int(session["subject"])
index = df_subjects.loc[df_subjects["pat"] == sub_id].index
status = 0
prefix = "pat"
if len(index) == 0:
# Subject not in patient list, looking in control
index = df_subjects.loc[df_subjects["cnt"] == sub_id].index
if len(index) == 0:
raise KeyError("Subject {} not found in table"
.format(sub_id))
status = 1
prefix = "cnt"
index = index[0]
# retrieving demographics
# <sex>_<age>_<education>
line = df_subjects.loc[index, prefix + "_sae"].split("_")
sex = line[0]
age = int(line[1])
education = int(line[2])
values = sub_columns.GetTemplate()
values["participant_id"] = "sub-" + session["subject"]
values["sex"] = sex
values["age"] = age
values["education"] = education
# looking for pairing
if status == 0:
values["group"] = "patient"
values["paired"] = "sub-{:03}".format(int(df_subjects
.loc[index, "cnt"]))
else:
values["group"] = "control"
values["paired"] = "sub-{:03}".format(int(df_subjects
.loc[index, "pat"]))
# looking for order of sessions
global scans_map
scans_map = {}
scans_order = sorted([os.path.basename(s) for s in
tools.lsdirs(os.path.join(rawfolder,
session["subject"]),
"s*")
])
for ind, s in enumerate(("_1", "_2", "_3")):
v = "ses-" + str(df_subjects.loc[index, prefix + s]).strip()
ses = "ses" + s
if v == "ses-nan":
values[ses] = ""
logger.warning("Subject {}({}): missing {} value"
.format(values["participant_id"],
values["group"],
ses)
)
elif v not in Series:
logger.critical("Subject {}({}): Invalid {}: {}"
.format(values["participant_id"],
values["group"],
ses,
values[ses])
)
raise KeyError("Invalid {}: {}"
.format(ses, v))
else:
values[ses] = v
scans_map[scans_order[ind]] = values[ses]
# checking if all scans are identifyable
for scan in scans_order:
if scan not in scans_map:
logger.error("Subject {}({}): Can't identify session {}"
.format(values["participant_id"],
values["group"],
scan))
scans_map[scan] = scan
# creating tsv file
tsv_file = os.path.join(bidsfolder, "participants.tsv")
if not os.path.isfile(tsv_file):
with open(tsv_file, 'w') as f:
f.write(sub_columns.GetHeader())
f.write("\n")
with open(os.path.join(bidsfolder, "participants.tsv"), "a") as f:
f.write(sub_columns.GetLine(values))
f.write("\n")
model_participants = os.path.join(bidsfolder, "participants.json")
if not os.path.isfile(model_participants):
sub_columns.DumpDefinitions(model_participants)
session["subject"] = "sub-" + session["subject"]
return 0
def SessionEP(session):
# retrieving correct session name
session["session"] = scans_map[session["session"]]
return 0
def SessionEndEP(session):
res = checkSeries(os.path.join(session["out_path"], "MRI"),
session["subject"], session["session"],
False)
# parcing log files
if session["session"] == "ses-STROOP":
return 0
logs = os.path.join(session["in_path"], "inp")
aux_d = os.path.join(session["out_path"], "aux")
if not os.path.isdir(logs):
raise NotADirectoryError(logs)
os.makedirs(aux_d, exist_ok=True)
for file in ("FCsepNBack.tsv", "VAS.tsv"):
file = os.path.join(logs, file)
if not os.path.isfile(file):
raise FileNotFoundError(file)
shutil.copy2(file, aux_d)
for file in ("FCsepNBack.json", "VAS.json"):
file = os.path.join(resources, file)
if not os.path.isfile(file):
raise FileNotFoundError(file)
shutil.copy2(file, aux_d)
return 0
onset duration response_time trial_type block value exp_value
16.942 1.70 n/a Test_1Back 1 n/a n/a
19.142 1.70 0.859 Test_1Back 1 c c
21.342 1.70 0.872 Test_1Back 1 n n
23.542 1.70 0.919 Test_1Back 1 c c
25.742 1.70 0.988 Test_1Back 1 n n
27.942 1.70 0.910 Test_1Back 1 n n
30.142 1.70 0.956 Test_1Back 1 n n
32.342 1.70 0.777 Test_1Back 1 n n
34.542 1.70 0.890 Test_1Back 1 n n
36.742 1.70 1.001 Test_1Back 1 n n
38.942 1.70 0.894 Test_1Back 1 c c
41.142 1.70 0.860 Test_1Back 1 n c
43.342 1.70 1.008 Test_1Back 1 n n
45.542 1.70 0.628 Test_1Back 1 n n
47.742 1.70 0.991 Test_1Back 1 c c
49.942 1.70 0.907 Test_1Back 1 c c
72.142 1.70 n/a Test_2Back 2 n/a n/a
74.342 1.70 n/a Test_2Back 2 n/a n/a
76.542 1.70 0.970 Test_2Back 2 c c
78.742 1.70 1.039 Test_2Back 2 n n
80.942 1.70 0.874 Test_2Back 2 n n
83.142 1.70 1.188 Test_2Back 2 c c
85.342 1.70 1.135 Test_2Back 2 n n
87.542 1.70 0.868 Test_2Back 2 c c
89.742 1.70 0.911 Test_2Back 2 n n
91.942 1.70 1.126 Test_2Back 2 n n
94.142 1.70 0.970 Test_2Back 2 c c
96.342 1.70 0.959 Test_2Back 2 c c
98.542 1.70 0.906 Test_2Back 2 c c
100.742 1.70 0.893 Test_2Back 2 n n
102.942 1.70 1.143 Test_2Back 2 c c
105.142 1.70 1.124 Test_2Back 2 c c
127.342 1.70 n/a Test_3Back 3 n/a n/a
129.542 1.70 n/a Test_3Back 3 n/a n/a
131.742 1.70 n/a Test_3Back 3 n/a n/a
133.942 1.70 1.009 Test_3Back 3 c c
136.142 1.70 1.221 Test_3Back 3 n n
138.342 1.70 1.198 Test_3Back 3 n n
140.542 1.70 0.991 Test_3Back 3 c c
142.742 1.70 1.019 Test_3Back 3 n n
144.942 1.70 1.099 Test_3Back 3 c c
147.142 1.70 0.975 Test_3Back 3 c c
149.342 1.70 1.113 Test_3Back 3 n n
151.542 1.70 1.031 Test_3Back 3 c c
153.742 1.70 1.033 Test_3Back 3 n n
155.942 1.70 1.143 Test_3Back 3 n n
158.142 1.70 1.197 Test_3Back 3 c c
160.342 1.70 1.039 Test_3Back 3 c c
182.542 1.70 n/a Test_1Back 4 n/a n/a
184.742 1.70 0.827 Test_1Back 4 n n
186.942 1.70 0.847 Test_1Back 4 c c
189.142 1.70 1.075 Test_1Back 4 n n
191.342 1.70 0.999 Test_1Back 4 c c
193.542 1.70 0.928 Test_1Back 4 n n
195.742 1.70 0.914 Test_1Back 4 n n
197.942 1.70 0.953 Test_1Back 4 n n
200.142 1.70 0.889 Test_1Back 4 n n
202.342 1.70 0.980 Test_1Back 4 c c
204.542 1.70 1.042 Test_1Back 4 c c
206.742 1.70 0.905 Test_1Back 4 n n
208.942 1.70 1.013 Test_1Back 4 n n
211.142 1.70 0.936 Test_1Back 4 n n
213.342 1.70 1.073 Test_1Back 4 n n
215.542 1.70 0.896 Test_1Back 4 c c
237.742 1.70 n/a Test_2Back 5 n/a n/a
239.942 1.70 n/a Test_2Back 5 n/a n/a
242.142 1.70 1.037 Test_2Back 5 c c
244.342 1.70 1.052 Test_2Back 5 c c
246.542 1.70 0.805 Test_2Back 5 c c
248.742 1.70 0.882 Test_2Back 5 c c
250.942 1.70 1.061 Test_2Back 5 n n
253.142 1.70 0.726 Test_2Back 5 c c
255.342 1.70 1.145 Test_2Back 5 c c
257.542 1.70 1.057 Test_2Back 5 n n
259.742 1.70 0.946 Test_2Back 5 c c
261.942 1.70 0.955 Test_2Back 5 c c
264.142 1.70 1.030 Test_2Back 5 n n
266.342 1.70 0.967 Test_2Back 5 n n
268.542 1.70 1.021 Test_2Back 5 n n
270.742 1.70 0.915 Test_2Back 5 n c
292.942 1.70 n/a Test_3Back 6 n/a n/a
295.142 1.70 n/a Test_3Back 6 n/a n/a
297.342 1.70 n/a Test_3Back 6 n/a n/a
299.542 1.70 1.125 Test_3Back 6 c c
301.742 1.70 1.020 Test_3Back 6 n n
303.942 1.70 1.231 Test_3Back 6 c c
306.142 1.70 1.089 Test_3Back 6 n n
308.342 1.70 1.131 Test_3Back 6 c c
310.542 1.70 0.927 Test_3Back 6 n n
312.742 1.70 1.268 Test_3Back 6 n n
314.942 1.70 1.223 Test_3Back 6 n n
317.142 1.70 1.260 Test_3Back 6 n n
319.342 1.70 0.933 Test_3Back 6 c c
321.542 1.70 1.072 Test_3Back 6 c c
323.742 1.70 1.025 Test_3Back 6 n c
325.942 1.70 1.190 Test_3Back 6 c c
348.142 1.70 n/a Test_1Back 7 n/a n/a
350.342 1.70 0.814 Test_1Back 7 n n
352.542 1.70 0.952 Test_1Back 7 n n
354.742 1.70 0.827 Test_1Back 7 n n
356.942 1.70 0.798 Test_1Back 7 n n
359.142 1.70 0.929 Test_1Back 7 c c
361.342 1.70 0.743 Test_1Back 7 c c
363.542 1.70 1.113 Test_1Back 7 n n
365.742 1.70 0.930 Test_1Back 7 n n
367.942 1.70 0.896 Test_1Back 7 c c
370.142 1.70 0.799 Test_1Back 7 n n
372.342 1.70 0.914 Test_1Back 7 c c
374.542 1.70 0.955 Test_1Back 7 n n
376.742 1.70 0.984 Test_1Back 7 n n
378.942 1.70 0.857 Test_1Back 7 n n
381.142 1.70 0.949 Test_1Back 7 n n
403.342 1.70 n/a Test_2Back 8 n/a n/a
405.542 1.70 n/a Test_2Back 8 n/a n/a
407.742 1.70 1.086 Test_2Back 8 c c
409.942 1.70 0.978 Test_2Back 8 c c
412.142 1.70 1.021 Test_2Back 8 c c
414.342 1.70 1.152 Test_2Back 8 c c
416.542 1.70 1.125 Test_2Back 8 n c
418.742 1.70 0.962 Test_2Back 8 c c
420.942 1.70 1.023 Test_2Back 8 n n
423.142 1.70 1.010 Test_2Back 8 c n
425.342 1.70 0.947 Test_2Back 8 c c
427.542 1.70 1.075 Test_2Back 8 c c
429.742 1.70 1.178 Test_2Back 8 c c
431.942 1.70 1.162 Test_2Back 8 c c
434.142 1.70 1.286 Test_2Back 8 c c
436.342 1.70 1.093 Test_2Back 8 c c
458.542 1.70 n/a Test_3Back 9 n/a n/a
460.742 1.70 n/a Test_3Back 9 n/a n/a
462.942 1.70 n/a Test_3Back 9 n/a n/a
465.142 1.70 1.031 Test_3Back 9 c c
467.342 1.70 1.277 Test_3Back 9 c c
469.542 1.70 0.888 Test_3Back 9 n n
471.742 1.70 1.185 Test_3Back 9 c c
473.942 1.70 1.172 Test_3Back 9 n n
476.142 1.70 1.312 Test_3Back 9 c c
478.342 1.70 1.016 Test_3Back 9 c c
480.542 1.70 0.923 Test_3Back 9 n n
482.742 1.70 1.099 Test_3Back 9 c c
484.942 1.70 1.119 Test_3Back 9 n n
487.142 1.70 0.974 Test_3Back 9 c c
489.342 1.70 1.210 Test_3Back 9 n n
491.542 1.70 1.125 Test_3Back 9 n n
513.742 1.70 n/a Test_1Back 10 n/a n/a
515.942 1.70 0.744 Test_1Back 10 c c
518.142 1.70 0.863 Test_1Back 10 c c
520.342 1.70 0.974 Test_1Back 10 n n
522.542 1.70 0.902 Test_1Back 10 n n
524.742 1.70 0.956 Test_1Back 10 c c
526.942 1.70 0.938 Test_1Back 10 n n
529.142 1.70 0.804 Test_1Back 10 c c
531.342 1.70 0.906 Test_1Back 10 n n
533.542 1.70 1.049 Test_1Back 10 c c
535.742 1.70 0.973 Test_1Back 10 c c
537.942 1.70 1.012 Test_1Back 10 n n
540.142 1.70 0.937 Test_1Back 10 n n
542.342 1.70 0.969 Test_1Back 10 n n
544.542 1.70 0.907 Test_1Back 10 c c
546.742 1.70 0.863 Test_1Back 10 n n
568.942 1.70 n/a Test_2Back 11 n/a n/a
571.142 1.70 n/a Test_2Back 11 n/a n/a
573.342 1.70 0.944 Test_2Back 11 c c
575.542 1.70 0.985 Test_2Back 11 c c
577.742 1.70 1.111 Test_2Back 11 n n
579.942 1.70 1.091 Test_2Back 11 n n
582.142 1.70 0.998 Test_2Back 11 n n
584.342 1.70 1.115 Test_2Back 11 c c
586.542 1.70 1.070 Test_2Back 11 n n
588.742 1.70 1.041 Test_2Back 11 n n
590.942 1.70 0.927 Test_2Back 11 n n
593.142 1.70 1.078 Test_2Back 11 n c
595.342 1.70 1.125 Test_2Back 11 n n
597.542 1.70 0.982 Test_2Back 11 c c
599.742 1.70 0.972 Test_2Back 11 n n
601.942 1.70 0.933 Test_2Back 11 c n
624.142 1.70 n/a Test_3Back 12 n/a n/a
626.342 1.70 n/a Test_3Back 12 n/a n/a
628.542 1.70 n/a Test_3Back 12 n/a n/a
630.742 1.70 1.067 Test_3Back 12 c c
632.942 1.70 1.061 Test_3Back 12 n n
635.142 1.70 1.127 Test_3Back 12 n n
637.342 1.70 1.259 Test_3Back 12 c c
639.542 1.70 1.105 Test_3Back 12 c c
641.742 1.70 1.111 Test_3Back 12 c c
643.942 1.70 1.128 Test_3Back 12 n n
646.142 1.70 0.985 Test_3Back 12 c c
648.342 1.70 1.095 Test_3Back 12 c c
650.542 1.70 1.186 Test_3Back 12 n n
652.742 1.70 1.088 Test_3Back 12 n n
654.942 1.70 1.263 Test_3Back 12 n n
657.142 1.70 1.186 Test_3Back 12 n n
679.342 1.70 n/a Test_1Back 13 n/a n/a
681.542 1.70 0.864 Test_1Back 13 c c
683.742 1.70 0.713 Test_1Back 13 c c
685.942 1.70 0.993 Test_1Back 13 c n
688.142 1.70 0.890 Test_1Back 13 n n
690.342 1.70 0.775 Test_1Back 13 c c
692.542 1.70 0.862 Test_1Back 13 n c
694.742 1.70 0.764 Test_1Back 13 n n
696.942 1.70 0.801 Test_1Back 13 c c
699.142 1.70 1.153 Test_1Back 13 c c
701.342 1.70 1.037 Test_1Back 13 c c
703.542 1.70 0.912 Test_1Back 13 c n
705.742 1.70 0.798 Test_1Back 13 n n
707.942 1.70 1.096 Test_1Back 13 n n
710.142 1.70 0.896 Test_1Back 13 c c
712.342 1.70 0.928 Test_1Back 13 n n
734.542 1.70 n/a Test_2Back 14 n/a n/a
736.742 1.70 n/a Test_2Back 14 n/a n/a
738.942 1.70 1.043 Test_2Back 14 c c
741.142 1.70 1.036 Test_2Back 14 n n
743.342 1.70 1.129 Test_2Back 14 c c
745.542 1.70 1.056 Test_2Back 14 c c
747.742 1.70 0.943 Test_2Back 14 c c
749.942 1.70 1.035 Test_2Back 14 c c
752.142 1.70 1.037 Test_2Back 14 n n
754.342 1.70 0.962 Test_2Back 14 c c
756.542 1.70 1.107 Test_2Back 14 n n
758.742 1.70 1.039 Test_2Back 14 c c
760.942 1.70 0.931 Test_2Back 14 c c
763.142 1.70 0.926 Test_2Back 14 c c
765.342 1.70 0.909 Test_2Back 14 n n
767.542 1.70 0.988 Test_2Back 14 n n
789.742 1.70 n/a Test_3Back 15 n/a n/a
791.942 1.70 n/a Test_3Back 15 n/a n/a
794.142 1.70 n/a Test_3Back 15 n/a n/a
796.342 1.70 1.061 Test_3Back 15 c c
798.542 1.70 1.101 Test_3Back 15 n n
800.742 1.70 1.188 Test_3Back 15 c c
802.942 1.70 1.180 Test_3Back 15 n n
805.142 1.70 1.093 Test_3Back 15 c c
807.342 1.70 1.113 Test_3Back 15 n n
809.542 1.70 1.295 Test_3Back 15 c c
811.742 1.70 1.195 Test_3Back 15 c c
813.942 1.70 1.029 Test_3Back 15 n n
816.142 1.70 1.081 Test_3Back 15 c c
818.342 1.70 1.144 Test_3Back 15 n n
820.542 1.70 1.204 Test_3Back 15 c c
822.742 1.70 1.152 Test_3Back 15 n n
844.942 1.70 n/a Test_1Back 16 n/a n/a
847.142 1.70 0.780 Test_1Back 16 n n
849.342 1.70 0.740 Test_1Back 16 c n
851.542 1.70 0.729 Test_1Back 16 n n
853.742 1.70 0.862 Test_1Back 16 n n
855.942 1.70 0.954 Test_1Back 16 n n
858.142 1.70 0.562 Test_1Back 16 n n
860.342 1.70 0.903 Test_1Back 16 n n
862.542 1.70 0.799 Test_1Back 16 c c
864.742 1.70 0.867 Test_1Back 16 n n
866.942 1.70 0.978 Test_1Back 16 c c
869.142 1.70 0.915 Test_1Back 16 c n
871.342 1.70 0.905 Test_1Back 16 c c
873.542 1.70 0.903 Test_1Back 16 n n
875.742 1.70 0.923 Test_1Back 16 c c
877.942 1.70 0.872 Test_1Back 16 c c
900.142 1.70 n/a Test_2Back 17 n/a n/a
902.342 1.70 n/a Test_2Back 17 n/a n/a
904.542 1.70 0.870 Test_2Back 17 c c
906.742 1.70 0.926 Test_2Back 17 n n
908.942 1.70 1.065 Test_2Back 17 n n
911.142 1.70 0.997 Test_2Back 17 c c
913.342 1.70 0.925 Test_2Back 17 n n
915.542 1.70 1.087 Test_2Back 17 c c
917.742 1.70 0.898 Test_2Back 17 n n
919.942 1.70 1.036 Test_2Back 17 n n
922.142 1.70 0.957 Test_2Back 17 c c
924.342 1.70 0.913 Test_2Back 17 c c
926.542 1.70 1.050 Test_2Back 17 n n
928.742 1.70 1.018 Test_2Back 17 n c
930.942 1.70 0.832 Test_2Back 17 c c
933.142 1.70 0.916 Test_2Back 17 c c
955.342 1.70 n/a Test_3Back 18 n/a n/a
957.542 1.70 n/a Test_3Back 18 n/a n/a
959.742 1.70 n/a Test_3Back 18 n/a n/a
961.942 1.70 0.990 Test_3Back 18 c c
964.142 1.70 1.284 Test_3Back 18 c c
966.342 1.70 1.168 Test_3Back 18 c c
968.542 1.70 1.129 Test_3Back 18 n n
970.742 1.70 1.108 Test_3Back 18 c c
972.942 1.70 1.100 Test_3Back 18 c c
975.142 1.70 1.108 Test_3Back 18 n n
977.342 1.70 1.172 Test_3Back 18 c c
979.542 1.70 0.851 Test_3Back 18 c c
981.742 1.70 0.948 Test_3Back 18 n n
983.942 1.70 1.087 Test_3Back 18 c c
986.142 1.70 1.149 Test_3Back 18 n n
988.342 1.70 1.078 Test_3Back 18 c c
trial_type stim_file value
Motivation Vas/images/VAS.0.bmp 46.56
Happiness Vas/images/VAS.1.bmp 68.80
Fatigue Vas/images/VAS.2.bmp 48.03
Openness Vas/images/VAS.3.bmp 32.02
Stress Vas/images/VAS.4.bmp 59.46
Anxiety Vas/images/VAS.5.bmp 60.13
Effort Vas/images/VAS.6.bmp 48.91
This diff is collapsed.
f1512-0002-00001-000001-01.nii
\ No newline at end of file
This diff is collapsed.
f1512-0002-00002-000002-01.nii
\ No newline at end of file
This diff is collapsed.
f1512-0002-00003-000003-01.nii
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment