diff --git a/pydr/__init__.py b/pydr/__init__.py index 9b8373a616743dabf60809d6a556022ec2e54d0c..9f942221714ffe52d69f9c81d95f53569089c87f 100644 --- a/pydr/__init__.py +++ b/pydr/__init__.py @@ -1,3 +1,3 @@ #!/usr/bin/env python -__version__ = '0.1.2' +__version__ = '0.1.3' diff --git a/pydr/dr.py b/pydr/dr.py index 4f94ce80128688fc788635481aa5b9fe57a238e1..e6a890da652e7bc821c6152966e68cdab325944f 100644 --- a/pydr/dr.py +++ b/pydr/dr.py @@ -140,13 +140,13 @@ def calc_spec(timeseries, TR=0.392, nfft=1024): def dr_single_subject( - func: str, - map: str, - timecourse: str, - grp_map: str, - amplitude: str = None, - spectra: str = None, - func_smooth: str = None + func: str, + map: str, + timecourse: str, + grp_map: str, + amplitude: str = None, + spectra: str = None, + func_smooth: str = None ): assert_env('FSLDIR') @@ -245,7 +245,7 @@ def dr_single_subject( np.savetxt(spectra, spec, delimiter='\t', fmt='%.6f') -def dr(files, grp_maps, workdir): +def dr(files, grp_maps, workdir, submit_to_cluster=True): assert_env('FSLDIR') assert_env('FSLOUTPUTTYPE') @@ -308,14 +308,24 @@ def dr(files, grp_maps, workdir): logger.info(cmd) fpr.write(cmd + '\n') - fsl_sub = [ - 'fsl_sub', - '-T', '1400', - '-l', f'{workdir}/logs', - '--export', f'FSLDIR={os.environ["FSLDIR"]}', - '--export', f'FSLOUTPUTTYPE={os.environ["FSLOUTPUTTYPE"]}', - '-t', f'{workdir}/logs/dr_commands.txt', - ] + # Run all commands sequentially in case user does not want to run them in the cluster + if not submit_to_cluster: + with open(f'{workdir}/logs/dr_commands.txt', 'r') as fpr: + for command in fpr.readlines(): + logger.info(' '.join(command)) + output=run(command) + print(output) - logger.info(' '.join(fsl_sub)) - run(fsl_sub) + # Run all commands in the cluster with fsl_sub + else: + command =[ + 'fsl_sub', + '-T', '1400', + '-l', f'{workdir}/logs', + '--export', f'FSLDIR={os.environ["FSLDIR"]}', + '--export', f'FSLOUTPUTTYPE={os.environ["FSLOUTPUTTYPE"]}', + '-t', f'{workdir}/logs/dr_commands.txt', + ] + + logger.info(' '.join(command)) + run(command)