From fb9553f8495a19d968e4aaaf5a4201acbe9564bb Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Sat, 22 Jun 2024 16:22:00 +0900 Subject: [PATCH] Script construction of the nipoppy-inpsired project dataset --- proj-nipoppy/.recreate_hierarchy | 65 ++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 proj-nipoppy/.recreate_hierarchy diff --git a/proj-nipoppy/.recreate_hierarchy b/proj-nipoppy/.recreate_hierarchy new file mode 100755 index 000000000..9395ba031 --- /dev/null +++ b/proj-nipoppy/.recreate_hierarchy @@ -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 <| 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 *