Skip to content

Commit

Permalink
Script construction of the nipoppy-inpsired project dataset
Browse files Browse the repository at this point in the history
  • Loading branch information
yarikoptic committed Jun 22, 2024
1 parent 4f93568 commit 00bb12f
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions proj-nipoppy/.recreate_hierarchy
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/bin/bash

set -eu

git rm --ignore-unmatch -fr [a-zA-Z]*
mkdir -p {code,derivatives{,/fmriprep-{20.2.7,23.1.3},/mriqc-23.1.0,/neurobagel-0.0.1},sourcedata{,/tabular{,/demographics,/assesments},/raw/sub-001/ses-A,/dicoms}}

cat >| dataset_description.json <<EOF
{
"Name": "Example how nipoppy dataset could be presented as project-type BIDS dataset",
"Description": "Demonstration for the https://github.com/bids-standard/bids-specification/pull/1861",
"BIDSVersion": "1.10.0",
"DatasetType": "project",
"Authors": [
"Yaroslav O. Halchenko", "Samuel Nastase"
]
}
EOF

cat >| CHANGES << EOF
0.0.1 2024-06-20
- Started to work on this support of the DatasetType project
EOF

cat >| README.md << EOF
This is an example of an entire project/study level BIDS dataset.
Built taking a hierarchy depicted on
https://github.com/neurodatascience/nipoppy?tab=readme-ov-file#nipoppy
and turning it into a valid BIDS layout.
Some files (e.g. bagel.csv) are specific to nipoppy etc projects, but since
located under folders where bids layout is not enforced -- should be just fine.
Some outstanding issues with validator(s) which were ran into while trying to
get "proper" validation working using deno bids-validator (mark when solved)
- [ ] https://github.com/bids-standard/bids-validator/issues/2007
EOF

cat >| derivatives/bagel.csv << EOF
bids_id,participant_id,session,has_mri_data,pipeline_name,pipeline_version,pipeline_starttime,pipeline_complete
sub-MNI001,MNI001,1,TRUE,freesurfer,6.0.1,2022-05-24 13:43,SUCCESS
sub-MNI001,MNI001,2,TRUE,freesurfer,6.0.1,2022-05-24 13:46,SUCCESS
sub-MNI001,MNI001,3,TRUE,freesurfer,6.0.1,UNAVAILABLE,INCOMPLETE
EOF

cat >| sourcedata/tabular/bagel.csv << EOF
bids_id,participant_id,session,assessment_name,assessment_score
sub-MNI001,MNI001,1,group,Patient
sub-MNI001,MNI001,2,group,Patient
EOF

touch sourcedata/tabular/manifest.csv
echo '{}' > code/global_config.json

# populate empty folders with some placeholder .dotfile
find * -type d | while read d; do
if ! /bin/ls -a "$d" | grep -q '[a-z]'; then
touch $d/.fill
fi
done
git add *

0 comments on commit 00bb12f

Please sign in to comment.