├── README.md
└── BIDS_single_ses.sh
/README.md:
--------------------------------------------------------------------------------
1 | # BIDS-Auto-Organization
2 |
3 | Automatical organization bash script for your MRI images into BIDS format, temporarily available for T1, dwi and restfmri single session modalities.
4 |
5 | ## Raw DICOM file structure
6 |
7 | * Dataset/
8 | * Dicom/
9 | * anat/
10 | * 001/
11 | * 002/
12 | * ...
13 | * dwi/
14 | * 001/
15 | * 002/
16 | * ...
17 | * rest/
18 | * 001/
19 | * 002/
20 | * ...
21 |
22 | ## Dependencies
23 |
24 | The bash script requires *dcm2niix* and *jo* to be installed in Ubuntu as follows:
25 |
26 | ```Bash
27 | apt-get install dcm2niix
28 | apt-get install jo
29 |
--------------------------------------------------------------------------------
/BIDS_single_ses.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | # setting your dataset path here
6 | homedir=~/Desktop/BIDS_test
7 |
8 | dcmdir=${homedir}/Dicom
9 | niidir=${homedir}/Nifti
10 |
11 | if [ -d ${niidir} ];then
12 | rm -r ${niidir}
13 | fi
14 |
15 | mkdir ${niidir}
16 |
17 |
18 | jo -p "Name"="KCL Multi-site schizophrenia dataset - Graph Convolutional Network" "BIDSVersion"="1.0.2" >> ${niidir}/dataset_description.json
19 |
20 | if [ -d ${dcmdir}/anat ];then
21 | for subj in `ls ${dcmdir}/anat/`
22 | do
23 | echo "processing anatomical images of $subj"
24 | mkdir -p ${niidir}/sub-${subj}/anat
25 | dcm2niix -z n -b y -o ${niidir}/sub-${subj}/anat -f ${subj}_%f_%p ${dcmdir}/anat/${subj}
26 | cd ${niidir}/sub-${subj}/anat
27 | mv *.json sub-${subj}_T1w.json
28 | mv *.nii sub-${subj}_T1w.nii
29 | done
30 | fi
31 |
32 | if [ -d ${dcmdir}/dwi ];then
33 | for subj in `ls ${dcmdir}/dwi/`
34 | do
35 | echo "processing diffusion images of $subj"
36 | mkdir -p ${niidir}/sub-${subj}/dwi
37 | dcm2niix -z n -b y -o ${niidir}/sub-${subj}/dwi -f ${subj}_%f_%p ${dcmdir}/dwi/${subj}
38 | cd ${niidir}/sub-${subj}/dwi
39 | mv *.json sub-${subj}_dwi.json
40 | mv *.nii sub-${subj}_dwi.nii
41 | mv *.bval sub-${subj}_dwi.bval
42 | mv *.bvec sub-${subj}_dwi.bvec
43 | done
44 | fi
45 |
46 | if [ -d ${dcmdir}/rest ];then
47 | for subj in `ls ${dcmdir}/rest/`
48 | do
49 | echo "processing resting-state functional images of $subj"
50 | mkdir -p ${niidir}/sub-${subj}/func
51 | dcm2niix -z n -b y -o ${niidir}/sub-${subj}/func -f ${subj}_%f_%p ${dcmdir}/rest/${subj}
52 | cd ${niidir}/sub-${subj}/func
53 | mv *.json sub-${subj}_task-rest_bold.json
54 | mv *.nii sub-${subj}_task-rest_bold.nii
55 | for funcjson in `ls *.json`
56 | do
57 | taskexist=`cat ${funcjson} | jq '.TaskName'`
58 | if [ "$taskexist" == "null" ]; then
59 | jsonname="${funcjson%.*}"
60 | taskfield=$(echo $jsonname | cut -d '_' -f2 | cut -d '-' -f2)
61 | jq '. |= . + {"TaskName":"'${taskfield}'"}' ${funcjson} > tasknameadd.json
62 | rm ${funcjson}
63 | mv tasknameadd.json ${funcjson}
64 | echo "TaskName was added to ${jsonname} and matches the tasklabel in the filename"
65 | else
66 | Taskquotevalue=$(jq '.TaskName' ${funcjson})
67 | Taskvalue=$(echo $Taskquotevalue | cut -d '"' -f2)
68 | jsonname="${funcjson%.*}"
69 | taskfield=$(echo $jsonname | cut -d '_' -f2 | cut -d '-' -f2)
70 | if [ $Taskvalue == $taskfield ]; then
71 | echo "TaskName is present and matches the tasklabel in the filename"
72 | else
73 | echo "TaskName and tasklabel do not match"
74 | fi
75 | fi
76 | done
77 | done
78 | fi
79 |
80 |
81 |
82 |
83 |
84 |
--------------------------------------------------------------------------------