Skip to content

Commit aa83bfa

Browse files
authored
Merge pull request #316 from nipreps/enh/single-anat
ENH: Add separate workflow to run with a single anatomical
2 parents edcbd2b + bc7ee38 commit aa83bfa

File tree

11 files changed

+915
-327
lines changed

11 files changed

+915
-327
lines changed

.circleci/bcp_anat_outputs.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,6 @@ sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_dseg.nii.gz
5151
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_label-CSF_probseg.nii.gz
5252
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_label-GM_probseg.nii.gz
5353
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_label-WM_probseg.nii.gz
54+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-T1w_desc-preproc_T2w.json
5455
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-T1w_desc-preproc_T2w.nii.gz
5556
sub-01_ses-1mo.html

.circleci/bcp_anat_t2only_outputs.txt

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
.bidsignore
2+
dataset_description.json
3+
desc-aparcaseg_dseg.tsv
4+
desc-aseg_dseg.tsv
5+
logs
6+
logs/CITATION.bib
7+
logs/CITATION.html
8+
logs/CITATION.md
9+
logs/CITATION.tex
10+
sub-01
11+
sub-01/ses-1mo
12+
sub-01/ses-1mo/anat
13+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_desc-aparcaseg_dseg.nii.gz
14+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_desc-aseg_dseg.nii.gz
15+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_desc-brain_mask.json
16+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_desc-brain_mask.nii.gz
17+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_desc-preproc_T2w.json
18+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_desc-preproc_T2w.nii.gz
19+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_desc-ribbon_mask.nii.gz
20+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_dseg.nii.gz
21+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_from-MNIInfant+1_to-T2w_mode-image_xfm.h5
22+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_from-T2w_to-MNIInfant+1_mode-image_xfm.h5
23+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_from-T2w_to-fsnative_mode-image_xfm.txt
24+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_from-fsnative_to-T2w_mode-image_xfm.txt
25+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-L_curv.shape.gii
26+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-L_desc-reg_sphere.surf.gii
27+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-L_inflated.surf.gii
28+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-L_midthickness.surf.gii
29+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-L_pial.surf.gii
30+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-L_space-fsLR_desc-reg_sphere.surf.gii
31+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-L_sulc.shape.gii
32+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-L_thickness.shape.gii
33+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-L_white.surf.gii
34+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-R_curv.shape.gii
35+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-R_desc-reg_sphere.surf.gii
36+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-R_inflated.surf.gii
37+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-R_midthickness.surf.gii
38+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-R_pial.surf.gii
39+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-R_space-fsLR_desc-reg_sphere.surf.gii
40+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-R_sulc.shape.gii
41+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-R_thickness.shape.gii
42+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_hemi-R_white.surf.gii
43+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_label-CSF_probseg.nii.gz
44+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_label-GM_probseg.nii.gz
45+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_label-WM_probseg.nii.gz
46+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_desc-brain_mask.json
47+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_desc-brain_mask.nii.gz
48+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_desc-preproc_T2w.json
49+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_desc-preproc_T2w.nii.gz
50+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_dseg.nii.gz
51+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_label-CSF_probseg.nii.gz
52+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_label-GM_probseg.nii.gz
53+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_label-WM_probseg.nii.gz
54+
sub-01_ses-1mo.html

.circleci/bcp_full_outputs.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_dseg.nii.gz
5151
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_label-CSF_probseg.nii.gz
5252
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_label-GM_probseg.nii.gz
5353
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-MNIInfant_cohort-1_label-WM_probseg.nii.gz
54+
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-T1w_desc-preproc_T2w.json
5455
sub-01/ses-1mo/anat/sub-01_ses-1mo_run-001_space-T1w_desc-preproc_T2w.nii.gz
5556
sub-01/ses-1mo/fmap
5657
sub-01/ses-1mo/fmap/sub-01_ses-1mo_run-001_fmapid-auto00000_desc-coeff_fieldmap.nii.gz

.circleci/config.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,50 @@ jobs:
397397
pip install nibabel numpy nitransforms
398398
python /tmp/src/nibabies/scripts/check_outputs.py /tmp/${DATASET}/derivatives/nibabies
399399
exit $?
400+
- run:
401+
name: Create copy with only T2w data
402+
command: |
403+
mkdir -p /tmp/data/${DATASET}-t2only
404+
cp /tmp/data/${DATASET}/dataset_description.json /tmp/data/${DATASET}-t2only
405+
cp -r /tmp/data/${DATASET}/sub-01 /tmp/data/${DATASET}-t2only/sub-01
406+
rm -f /tmp/data/${DATASET}-t2only/sub-01/ses-1mo/anat/*_T1w.*
407+
tree /tmp/data/${DATASET}-t2only
408+
mkdir -p /tmp/data/${DATASET}-t2only/derivatives
409+
cp -r /tmp/data/${DATASET}/derivatives/precomputed /tmp/data/${DATASET}-t2only/derivatives
410+
# rename the derivatives for now - this is only possible since they share the same space
411+
sudo apt install rename
412+
rename 's/space-T1w/space-T2w/' /tmp/data/${DATASET}-t2only/derivatives/precomputed/sub-01/ses-1mo/anat/*
413+
sed -i 's/_T1w./_T2w./g' /tmp/data/${DATASET}-t2only/derivatives/precomputed/sub-01/ses-1mo/anat/*json
414+
tree /tmp/data/${DATASET}-t2only/derivatives/precomputed
415+
416+
- run:
417+
name: Run nibabies single anatomical workflow
418+
no_output_timeout: 1h
419+
command: |
420+
mkdir -p /tmp/data/${DATASET}-t2only /tmp/${DATASET}/derivatives/nibabies-t2only /tmp/${DATASET}/work-t2only
421+
nibabies-wrapper docker /tmp/data/${DATASET}-t2only /tmp/${DATASET}/derivatives/nibabies-t2only participant \
422+
-i nipreps/nibabies:dev \
423+
-e NIBABIES_DEV 1 --user $(id -u):$(id -g) \
424+
--network none --notrack \
425+
--config $PWD/nipype.cfg -w /tmp/${DATASET}/work-t2only \
426+
--fs-subjects-dir /tmp/data/${DATASET}/derivatives/infant-freesurfer \
427+
--skull-strip-template UNCInfant:cohort-1 \
428+
--output-spaces MNIInfant:cohort-1 func \
429+
--sloppy --write-graph --mem-mb 14000 \
430+
--nthreads 4 -vv --age-months 2 --sloppy \
431+
--derivatives /tmp/data/${DATASET}-t2only/derivatives/precomputed \
432+
--output-layout bids --anat-only
433+
- run:
434+
name: Checking outputs of T2-only nibabies anat
435+
command: |
436+
mkdir -p /tmp/${DATASET}/test
437+
CHECK_OUTPUTS_FILE="${DATASET}_anat_t2only_outputs.txt"
438+
cd /tmp/${DATASET}/derivatives/nibabies-t2only && tree -I 'figures|log' -lifa --noreport | sed s+^\./++ | sed '1d' | sort > /tmp/${DATASET}/test/outputs.out
439+
cat /tmp/${DATASET}/test/outputs.out
440+
sort -o /tmp/${DATASET}/test/expected.out /tmp/src/nibabies/.circleci/${CHECK_OUTPUTS_FILE}
441+
diff /tmp/${DATASET}/test/expected.out /tmp/${DATASET}/test/outputs.out
442+
rm -rf /tmp/${DATASET}/test
443+
exit $?
400444
- store_artifacts:
401445
path: /tmp/bcp/derivatives
402446

.pep8speaks.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
scanner:
2+
diff_only: True
3+
linter: pycodestyle
4+
5+
pycodestyle:
6+
max-line-length: 100

nibabies/utils/bids.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ def validate_input_dir(exec_env, bids_dir, participant_label):
281281
"MISSING_TSV_COLUMN_EEG_ELECTRODES",
282282
"MISSING_SESSION",
283283
],
284-
"error": ["NO_T1W"],
284+
"error": [],
285285
"ignoredFiles": ["/dataset_description.json", "/participants.tsv"],
286286
}
287287
# Limit validation only to data from requested participants
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
from .base import init_infant_anat_wf
1+
from .base import init_infant_anat_wf, init_infant_single_anat_wf

0 commit comments

Comments
 (0)