5
5
import logging
6
6
import os
7
7
import os .path as op
8
+ import subprocess
8
9
9
10
import boto3
10
11
import nibabel as nib
@@ -29,8 +30,14 @@ def move_t1_to_freesurfer(t1_file):
29
30
"""
30
31
freesurfer_path = op .join (op .dirname (t1_file ), 'freesurfer' )
31
32
32
- img = nib .load (t1_file )
33
- img .to_filename (op .join (freesurfer_path , 'mri' , 'orig.mgz' ))
33
+ convert_cmd = 'mriconvert {in_:s} {out_:s}' .format (
34
+ in_ = t1_file , out_ = op .join (freesurfer_path , 'mri' , 'orig.mgz' )
35
+ )
36
+
37
+ fnull = open (os .devnull , 'w' )
38
+ cmd = subprocess .call (convert_cmd .split (),
39
+ stdout = fnull ,
40
+ stderr = subprocess .STDOUT )
34
41
35
42
36
43
def upload_to_s3 (output_files , bucket , prefix , site , session , subject ):
@@ -60,9 +67,8 @@ def upload_to_s3(output_files, bucket, prefix, site, session, subject):
60
67
61
68
Returns
62
69
-------
63
- dict
64
- S3 keys for each output file. The dict keys are the same as the keys
65
- for the input parameter `output_files`
70
+ list
71
+ S3 keys for each output file
66
72
"""
67
73
s3 = boto3 .client ('s3' )
68
74
@@ -81,7 +87,7 @@ def filename2s3key(filename):
81
87
Key = filename2s3key (file ),
82
88
)
83
89
84
- return { k : filename2s3key (v ) for k , v in output_files . items ()}
90
+ return [ filename2s3key (f ) for f in output_files ]
85
91
86
92
87
93
def pre_afq_individual (input_s3_keys , s3_prefix , out_bucket ,
@@ -92,6 +98,8 @@ def pre_afq_individual(input_s3_keys, s3_prefix, out_bucket,
92
98
directory = op .abspath (op .join (workdir , 'input' )),
93
99
)
94
100
101
+ move_t1_to_freesurfer (input_files .files ['t1w' ][0 ])
102
+
95
103
scratch_dir = op .join (workdir , 'scratch' )
96
104
out_dir = op .join (workdir , 'output' )
97
105
@@ -113,9 +121,11 @@ def pre_afq_individual(input_s3_keys, s3_prefix, out_bucket,
113
121
if op .isfile (rel_path ):
114
122
out_files .append (rel_path .replace (out_dir + '/' , '' , 1 ))
115
123
116
- upload_to_s3 (output_files = out_files ,
117
- bucket = out_bucket ,
118
- prefix = s3_prefix ,
119
- site = input_s3_keys .site ,
120
- session = input_s3_keys .session ,
121
- subject = input_s3_keys .subject )
124
+ s3_output = upload_to_s3 (output_files = out_files ,
125
+ bucket = out_bucket ,
126
+ prefix = s3_prefix ,
127
+ site = input_s3_keys .site ,
128
+ session = input_s3_keys .session ,
129
+ subject = input_s3_keys .subject )
130
+
131
+ return s3_output
0 commit comments