def convert_dicoms(sid, dicom_dir_template, outputdir, queue=None, heuristic_func=None, extension = None,embed=False,no_moco=False): import os from nipype.utils.filemanip import load_json,save_json from glob import glob sdir = dicom_dir_template%sid tdir = os.path.join(outputdir, sid) infofile = os.path.join(tdir,'%s.auto.txt' % sid) editfile = os.path.join(tdir,'%s.edit.txt' % sid) if os.path.exists(editfile) and heuristic_func: info = load_json(editfile) elif not heuristic_func: pass else: infofile = os.path.join(tdir,'%s.auto.txt' % sid) info = heuristic_func(sdir, os.path.join(tdir,'dicominfo.txt')) save_json(infofile, info) if heuristic_func: for key in info: if not os.path.exists(os.path.join(tdir,key)): os.mkdir(os.path.join(tdir,key)) for idx, ext in enumerate(info[key]): convertcmd = ['dcmstack', sdir,'--dest-dir', os.path.join(tdir,key), '--file-ext', '*-%d-*'%ext, '--force-read', '-v', '--output-name', key+'%03d'%(idx+1)] if embed: convertcmd.append('--embed-meta') convertcmd = ' '.join(convertcmd) print convertcmd os.system(convertcmd) else: if not no_moco: convertcmd = ['dcmstack', sdir, '--dest-dir', os.path.join(outputdir,sid), '--force-read','-v'] if embed: convertcmd.append('--embed-meta') convertcmd = ' '.join(convertcmd) print convertcmd os.system(convertcmd) else: import numpy as np from bips.workflows.workflow19 import isMoco foo = np.genfromtxt(os.path.join(tdir,'dicominfo.txt'),dtype=str) for f in foo: if not isMoco(glob(os.path.join(sdir,f[1]))[0]): convertcmd = ['dcmstack', sdir, '--dest-dir', os.path.join(outputdir,sid), '--force-read','-v','--file-ext','*-%s-*'%f[2]] if embed: convertcmd.append('--embed-meta') convertcmd = ' '.join(convertcmd) print convertcmd os.system(convertcmd) else: print "skipping moco run %s"%f[1] return 1
def convert_dicoms(sid, dicom_dir_template, outputdir, queue=None, heuristic_func=None, extension=None, embed=False, no_moco=False): import os from nipype.utils.filemanip import load_json, save_json sdir = dicom_dir_template % sid tdir = os.path.join(outputdir, sid) infofile = os.path.join(tdir, '%s.auto.txt' % sid) editfile = os.path.join(tdir, '%s.edit.txt' % sid) if os.path.exists(editfile) and heuristic_func: info = load_json(editfile) elif not heuristic_func: pass else: infofile = os.path.join(tdir, '%s.auto.txt' % sid) info = heuristic_func(sdir, os.path.join(tdir, 'dicominfo.txt')) save_json(infofile, info) if heuristic_func: for key in info: if not os.path.exists(os.path.join(tdir, key)): os.mkdir(os.path.join(tdir, key)) for idx, ext in enumerate(info[key]): convertcmd = [ 'dcmstack', sdir, '--dest-dir', os.path.join(tdir, key), '--file-ext', '*-%d-*' % ext, '--force-read', '-v', '--output-name', key + '%03d' % (idx + 1) ] if embed: convertcmd.append('--embed-meta') convertcmd = ' '.join(convertcmd) print convertcmd os.system(convertcmd) else: if not no_moco: convertcmd = [ 'dcmstack', sdir, '--dest-dir', os.path.join(outputdir, sid), '--force-read', '-v' ] if embed: convertcmd.append('--embed-meta') convertcmd = ' '.join(convertcmd) print convertcmd os.system(convertcmd) else: import numpy as np from bips.workflows.workflow19 import isMoco foo = np.genfromtxt(os.path.join(tdir, 'dicominfo.txt'), dtype=str) for f in foo: if not isMoco(os.path.join(sdir, f[1])): convertcmd = [ 'dcmstack', sdir, '--dest-dir', os.path.join(outputdir, sid), '--force-read', '-v', '--file-ext', '*-%s-*' % f[2] ] if embed: convertcmd.append('--embed-meta') convertcmd = ' '.join(convertcmd) print convertcmd os.system(convertcmd) return 1
def convert_dicoms(sid, dicom_dir_template, outputdir, queue=None, heuristic_func=None, extension = None,embed=False,no_moco=False): import os from nipype.utils.filemanip import load_json,save_json from glob import glob sdir = dicom_dir_template%sid tdir = os.path.join(outputdir, sid) infofile = os.path.join(tdir,'%s.auto.txt' % sid) editfile = os.path.join(tdir,'%s.edit.txt' % sid) if os.path.exists(editfile) and heuristic_func: info = load_json(editfile) elif not heuristic_func: pass else: infofile = os.path.join(tdir,'%s.auto.txt' % sid) info = heuristic_func(sdir, os.path.join(tdir,'dicominfo.txt')) save_json(infofile, info) if heuristic_func: import dicom import dcmstack for key in info: if not os.path.exists(os.path.join(tdir,key)): os.mkdir(os.path.join(tdir,key)) for idx, ext in enumerate(info[key]): src = glob(os.path.join(sdir,'*-%d-*'%ext)) print key dcm = dcmstack.DicomStack() added_success = True for f in src: try: dcm.add_dcm(dicom.read_file(f,force=True)) except: added_success = False print "error adding %s to stack"%f if added_success: a = dcm.to_nifti(embed_meta = embed) a.to_filename(os.path.join(tdir,key,key+'%03d'%(idx+1))) #convertcmd = ['dcmstack', sdir,'--dest-dir', os.path.join(tdir,key), # '--file-ext', '*-%d-*'%ext, '--force-read', '-v', '--output-name', key+'%03d'%(idx+1)] #if embed: # convertcmd.append('--embed-meta') #convertcmd = ' '.join(convertcmd) #print convertcmd #os.system(convertcmd) else: if not no_moco: convertcmd = ['dcmstack', sdir, '--dest-dir', os.path.join(outputdir,sid), '--force-read','-v'] if embed: convertcmd.append('--embed-meta') convertcmd = ' '.join(convertcmd) print convertcmd os.system(convertcmd) else: import numpy as np from bips.workflows.workflow19 import isMoco foo = np.genfromtxt(os.path.join(tdir,'dicominfo.txt'),dtype=str) for f in foo: if not isMoco(glob(os.path.join(sdir,f[1]))[0]): convertcmd = ['dcmstack', sdir, '--dest-dir', os.path.join(outputdir,sid), '--force-read','-v','--file-ext','*-%s-*'%f[2]] if embed: convertcmd.append('--embed-meta') convertcmd = ' '.join(convertcmd) print convertcmd os.system(convertcmd) else: print "skipping moco run %s"%f[1] return 1
def convert_dicoms(sid, dicom_dir_template, outputdir, queue=None, heuristic_func=None, extension = None,embed=False,no_moco=False): import os from nipype.utils.filemanip import load_json,save_json from glob import glob sdir = dicom_dir_template%sid tdir = os.path.join(outputdir, sid) infofile = os.path.join(tdir,'%s.auto.txt' % sid) editfile = os.path.join(tdir,'%s.edit.txt' % sid) if os.path.exists(editfile) and heuristic_func: info = load_json(editfile) elif not heuristic_func: pass else: infofile = os.path.join(tdir,'%s.auto.txt' % sid) info = heuristic_func(sdir, os.path.join(tdir,'dicominfo.txt')) save_json(infofile, info) if heuristic_func: import dicom import dcmstack for key in info: if not os.path.exists(os.path.join(tdir,key)): os.mkdir(os.path.join(tdir,key)) for idx, ext in enumerate(info[key]): src = glob(os.path.join(sdir,'*-%d-*'%ext)) dcm = dcmstack.DicomStack() for f in src: dcm.add_dcm(dicom.read_file(f,force=True)) a = dcm.to_nifti(embed_meta = embed) a.to_filename(os.path.join(tdir,key,key+'%03d'%(idx+1))) #convertcmd = ['dcmstack', sdir,'--dest-dir', os.path.join(tdir,key), # '--file-ext', '*-%d-*'%ext, '--force-read', '-v', '--output-name', key+'%03d'%(idx+1)] #if embed: # convertcmd.append('--embed-meta') #convertcmd = ' '.join(convertcmd) #print convertcmd #os.system(convertcmd) else: if not no_moco: convertcmd = ['dcmstack', sdir, '--dest-dir', os.path.join(outputdir,sid), '--force-read','-v'] if embed: convertcmd.append('--embed-meta') convertcmd = ' '.join(convertcmd) print convertcmd os.system(convertcmd) else: import numpy as np from bips.workflows.workflow19 import isMoco foo = np.genfromtxt(os.path.join(tdir,'dicominfo.txt'),dtype=str) for f in foo: if not isMoco(glob(os.path.join(sdir,f[1]))[0]): convertcmd = ['dcmstack', sdir, '--dest-dir', os.path.join(outputdir,sid), '--force-read','-v','--file-ext','*-%s-*'%f[2]] if embed: convertcmd.append('--embed-meta') convertcmd = ' '.join(convertcmd) print convertcmd os.system(convertcmd) else: print "skipping moco run %s"%f[1] return 1