Skip to content

Commit 1d14a1a

Browse files
committed
record state before task
1 parent adb7a22 commit 1d14a1a

File tree

2 files changed

+23
-6
lines changed

2 files changed

+23
-6
lines changed

iris/converters.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
niigz = ".nii.gz"
1111

1212
# make sure we use system dcm2niix
13-
os.environ['PATH'] = '/usr/local/bin:' + os.environ['PATH']
13+
os.environ["PATH"] = "/usr/local/bin:" + os.environ["PATH"]
14+
1415

1516
def final_scan(sourcenames, multiecho=False):
1617
# if single-echo:
@@ -55,6 +56,17 @@ def final_scan(sourcenames, multiecho=False):
5556
return sorted(files[ids[-1]])
5657

5758

59+
def record_studydir_state(studydir, task):
60+
# record the state of the studydir before we start messing with it
61+
state_file = pjoin(studydir, f".state-pre-{task}")
62+
with open(state_file, "w") as f:
63+
for root, dirs, files in os.walk(studydir):
64+
for name in sorted(dirs + files):
65+
relpath = os.path.relpath(pjoin(root, name), studydir)
66+
if relpath != os.path.relpath(state_file, studydir):
67+
f.write(relpath + "\n")
68+
69+
5870
def convert_to_nifti(studydir):
5971
logging.info("Converting to nifti")
6072
dicomdir = pjoin(studydir, "scans")
@@ -85,16 +97,18 @@ def convert_to_bids(config, studydir, subject, session):
8597
open(pjoin(studydir, "dataset_description.json"), "w").write(
8698
"""
8799
{
88-
"Name": "none",
89-
"BIDSVersion": "1.2.0",
100+
"Name": "Investigator Name",
101+
"BIDSVersion": "1.10.0",
90102
"Authors": ["name1", "name1"],
91-
"Funding": ["NIH"]
103+
"Funding": ["Funding Agency"]
92104
}
93105
"""
94106
)
95107
open(pjoin(studydir, "README"), "w").write("\n")
96108
open(pjoin(studydir, "CHANGES"), "w").write("\n")
97-
open(pjoin(studydir, ".bidsignore"), "w").write(".job*\n.task*\n")
109+
bids_ignore = [".job*", ".task*", ".state*"]
110+
with open(pjoin(studydir, ".bidsignore"), "w") as f:
111+
f.write("\n".join(bids_ignore) + "\n")
98112

99113
# move data into sourcedata
100114
for _ in ("nifti", "scans"):

iris/iris-fmriprep.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from collections import defaultdict
1414
import time
1515

16-
from converters import convert_to_bids, convert_to_nifti
16+
from converters import convert_to_bids, convert_to_nifti, record_studydir_state
1717

1818
logging.basicConfig(format="%(levelname)s:%(message)s", level=logging.DEBUG)
1919

@@ -211,10 +211,13 @@ def scontrol_to_dict(s):
211211
tasks = task_select(config.get("run", "none"))
212212

213213
if tasks["nifti"] and not task_run("nifti", args.studydir):
214+
record_studydir_state(args.studydir, "nifti")
214215
convert_to_nifti(args.studydir)
215216
task_run("nifti", args.studydir, write=True)
216217
if tasks["bids"] and not task_run("bids", args.studydir):
218+
record_studydir_state(args.studydir, "bids")
217219
convert_to_bids(config, args.studydir, args.subject, args.session)
218220
task_run("bids", args.studydir, write=True)
219221
if tasks["fmriprep"]:
222+
record_studydir_state(args.studydir, "fmriprep")
220223
submit_fmriprep(config, args.studydir, args.subject)

0 commit comments

Comments
 (0)