#!/usr/bin/env python from hcpxnat.interface import HcpInterface from datetime import datetime import envoy # Use hcpxnat config file or assign each instance variable, e.g., # xnat = HcpInterface(url='http://intradb..', username='******', password='******', project='Proj') idb = HcpInterface(config='/data/intradb/home/hileman/.hcpxnat_intradb.cfg') idb.project = 'Phase2_Retest' pipeline = 'facemask' timestamp = datetime.now().strftime("%Y%m%d") outf = '/data/intradb/home/hileman/intradb_python_pipeline/log/%s_%s_%s.csv' % (idb.project, pipeline, timestamp) if __name__ == "__main__": session_labels = [s['label'] for s in idb.getSessions(idb.project)] session_labels = sorted(session_labels, key=lambda s: s.split('_')[0]) for s in session_labels: sub = s.split('_')[0] #if sub != '122317': # continue command = "python intradbPipelineResources.py -u %s -p %s -H %s -s %s -S %s -P %s -f %s -i %s" % \ (idb.username, idb.password, idb.url, sub, s, idb.project, outf, pipeline) print command p = envoy.run(command) if p.std_err: print p.std_err print "\nHere's your csv:\n", outf
#!/usr/bin/env python from hcpxnat.interface import HcpInterface from datetime import datetime import envoy # Use hcpxnat config file or assign each instance variable, e.g., # xnat = HcpInterface(url='http://intradb..', username='******', password='******', project='Proj') idb = HcpInterface(config="/data/intradb/home/hileman/.hcpxnat_intradb.cfg") # Check resources for which pipeline? pipeline = "dcm2nii" # For which project idb.project = "Mamah_CPC" timestamp = datetime.now().strftime("%Y%m%d") outf = "/data/intradb/home/hileman/pipeline/log/%s_%s_%s.csv" % (idb.project, pipeline, timestamp) print outf if __name__ == "__main__": sessions = idb.getSessions(idb.project) session_labels = list() for s in sessions: session_labels.append(s.get("label")) session_labels = sorted(session_labels, key=lambda s: s.split("_")[0]) for s in session_labels: sub = s.split("_")[0] command = "python intradbPipelineResources.py -u %s -p %s -H %s -s %s -S %s -P %s -f %s -i %s -I" % ( idb.username, idb.password, idb.url,
#!/usr/bin/env python from hcpxnat.interface import HcpInterface from datetime import datetime import envoy # Use hcpxnat config file or assign each instance variable, e.g., # xnat = HcpInterface(url='http://intradb..', username='******', password='******', project='Proj') idb = HcpInterface(config='/data/intradb/home/hileman/.hcpxnat_intradb.cfg') # Check resources for which pipeline? pipeline = 'level2qc' timestamp = datetime.now().strftime("%Y%m%d") outf = '/data/intradb/home/hileman/intradb_python_pipeline/log/%s_%s_%s.csv' % (idb.project, pipeline, timestamp) print outf if __name__ == "__main__": sessions = idb.getSessions(idb.project) session_labels = list() for s in sessions: session_labels.append(s.get('label')) session_labels = sorted(session_labels, key=lambda s: s.split('_')[0]) for s in session_labels: sub = s.split('_')[0] command = "python intradbPipelineResources.py -u %s -p %s -H %s -s %s -S %s -P %s -f %s -i %s" % \ (idb.username, idb.password, idb.url, sub, s, idb.project, outf, pipeline) print command p = envoy.run(command) if p.std_err: print p.std_err
#!/usr/bin/env python from hcpxnat.interface import HcpInterface from datetime import datetime import envoy # Use hcpxnat config file or assign each instance variable, e.g., # xnat = HcpInterface(url='http://intradb..', username='******', password='******', project='Proj') idb = HcpInterface(config='/data/intradb/home/hileman/.hcpxnat_intradb.cfg') idb.project = 'LS_Phase1a' pipeline = 'all' timestamp = datetime.now().strftime("%Y%m%d") outf = '/data/intradb/home/hileman/pipeline/log/%s_%s_%s.csv' % (idb.project, pipeline, timestamp) if __name__ == "__main__": sessions = idb.getSessions(idb.project) session_labels = list() for s in sessions: session_labels.append(s.get('label')) session_labels = sorted(session_labels, key=lambda s: s.split('_')[0]) for s in session_labels: sub = s.split('_')[0] command = "python intradbPipelineResources.py -u %s -p %s -H %s -s %s -S %s -P %s -f %s -i %s" % \ (idb.username, idb.password, idb.url, sub, s, idb.project, outf, pipeline) print command p = envoy.run(command) if p.std_err: print p.std_err
fh.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) log.addHandler(fh) ################# ### LOAD SCAN MAP ### if opts.map: with open(opts.map) as data: scan_file_map = json.load(data) ##################### SCRIPTDIR = os.path.abspath(os.path.curdir) + '/' DCMADDRESS = 'dicom://' + opts.host + ':8104/HCP' #idb = HcpInterface(config='/home/NRG/mhilem01/.hcpxnat_intradb_dev.cfg') idb = HcpInterface(config='/data/intradb/home/hileman/.hcpxnat_intradb.cfg') idb.url = 'https://' + opts.host def get_subjects_from(directory): """ Assumes the source directory contains subject labels """ os.chdir(directory) dirs = [d for d in os.listdir(os.curdir) if os.path.isdir(os.path.join(os.curdir, d))] subs = [] for d in dirs: if d.isdigit(): subs.append(d) return subs
# Currently assume overwrite for facemask and dcm2nii parser.add_option("-U", "--unusable", action="store_true", dest="unusable", default=False, help='Try defacing unusable scans (skipped by default)') parser.add_option("-d", "--delay", action="store", type="string", dest="delay", help='Delay between pipeline launches in minutes') parser.add_option("-D", "--dryRun", action="store_true", dest="dryRun", default=False) # For existing resources, we currently assume Overwrite (opts, args) = parser.parse_args() if not opts.username: parser.print_help() sys.exit(-1) idb = HcpInterface(opts.hostname, opts.username, opts.password, opts.project) timestamp = datetime.datetime.now().strftime("%Y%m%d%M%s") builddir = '/data/intradb/build/' + opts.project + '/' + timestamp archivedir = '/data/intradb/archive/' + opts.project + '/arc001' if not os.path.exists(builddir): os.makedirs(builddir) runOtherParam = 'Y' if opts.runOther else 'N' ####################################################### # Pipline versions facemask_versions = { 'HCP_Phase2': 'FaceMasking/FaceMasking.xml',
#!/usr/bin/env python from hcpxnat.interface import HcpInterface idb = HcpInterface(config="/home/NRG/mhilem01/.hcpxnat_intradb.cfg") idb.project = "NKI" sessions = idb.getSessions(project="NKI") for s in sessions: idb.subject_label = idb.session_label = s.get("label") scans = idb.getSessionScans() for s in scans: idb.scan_id = s.get("ID") sd = s.get("series_description") if "MUSIC" in sd: print s
#!/usr/bin/env python from hcpxnat.interface import HcpInterface from datetime import datetime import envoy # Use hcpxnat config file or assign each instance variable, e.g., # xnat = HcpInterface(url='http://intradb..', username='******', password='******', project='Proj') idb = HcpInterface(config='/data/intradb/home/hileman/.hcpxnat_intradb.cfg') idb.project = 'Phase2_7T' # Check resources for which pipeline? pipeline = 'level2qc' timestamp = datetime.now().strftime("%Y%m%d") outf = '/data/intradb/home/hileman/pipeline/log/%s_%s_%s.csv' % (idb.project, pipeline, timestamp) print outf if __name__ == "__main__": sessions = idb.getSessions(idb.project) session_labels = list() for s in sessions: session_labels.append(s.get('label')) session_labels = sorted(session_labels, key=lambda s: s.split('_')[0]) for s in session_labels: sub = s.split('_')[0] command = "python intradbPipelineResources.py -u %s -p %s -H %s -s %s -S %s -P %s -f %s -i %s" % \ (idb.username, idb.password, idb.url, sub, s, idb.project, outf, pipeline) print command p = envoy.run(command) if p.std_err:
import sys import os import argparse from hcpxnat.interface import HcpInterface """ Takes a CSV submitted to NDA by CCF contributor and uploads """ # hcpxnat module config config_file = os.path.join(os.path.expanduser('~'), '.xnat_dev.cfg') idb = HcpInterface(config=config_file) # argument parser parser = argparse.ArgumentParser(prog='genxsd.py') parser.add_argument('-p', dest='project', required=True, help='Project to upload to') parser.add_argument('-f', dest='filename', required=True, help='CSV filename to upload') parser.add_argument('--create-subject', dest='create_subject', required=False, action='store_true', help='Create the subject') args = parser.parse_args() idb.project = args.project if not idb.projectExists(): print "++ Project {} does not exists. Exiting...".format(args.project) sys.exit(1) def createSubject(): print "-- Creating subject {sub}".format(sub=idb.subject_label)
#!/usr/bin/env python from hcpxnat.interface import HcpInterface idb = HcpInterface(config='/home/NRG/mhilem01/.hcpxnat_intradb.cfg') idb.project = 'NKI' sessions = idb.getSessions(project='NKI') mapping = { #'REST_645': 'rfMRI', #'MPRAGE_SIEMENS': 'T1w', #'REST_1400': 'rfMRI', #'REST_CAP': 'rfMRI', #'CHECKERBOARD_645': 'tfMRI', #'CHECKERBOARD_1400': 'tfMRI', #'BREATH_HOLD_1400': 'tfMRI', #'DIFF_137_AP': 'dMRI' #'MPRAGE_SIEMENS_DEFACED': 'T1w', #'MPRAGE_SIEMENS_MUSIC ONLY': 'T1w', #'FLAIR - ch32 iPAT2 -CLINICAL': 'T2w', 'MPRAGE': 'T1w' } for s in sessions: idb.subject_label = idb.session_label = s.get('label') scans = idb.getSessionScans() print "\nModifying series_desc for session " + idb.session_label for s in scans: idb.scan_id = s.get('ID') sd = s.get('series_description')
#!/usr/bin/env python from hcpxnat.interface import HcpInterface from datetime import datetime import envoy # Use hcpxnat config file or assign each instance variable, e.g., # xnat = HcpInterface(url='http://intradb..', username='******', password='******', project='Proj') idb = HcpInterface(config='/data/intradb/home/hileman/.hcpxnat_intradb.cfg') # Check resources for which pipeline? pipeline = 'level2qc' # For which project idb.project = 'Mamah_CPC' timestamp = datetime.now().strftime("%Y%m%d") outf = '/data/intradb/home/hileman/intradb_python_pipeline/log/%s_%s_%s.csv' % (idb.project, pipeline, timestamp) print outf if __name__ == "__main__": sessions = idb.getSessions(idb.project) session_labels = list() for s in sessions: session_labels.append(s.get('label')) session_labels = sorted(session_labels, key=lambda s: s.split('_')[0]) for s in session_labels: sub = s.split('_')[0] command = "python resources.py -u %s -p %s -H %s -s %s -S %s -P %s -f %s -i %s -I" % \ (idb.username, idb.password, idb.url, sub, s, idb.project, outf, pipeline) print command p = envoy.run(command)
(opts, args) = parser.parse_args() if not opts.username: parser.print_help() sys.exit(-1) if opts.csv: try: csv_file = open(opts.csv, 'a') except: print "Problem with file " + opts.csv exit(-1) else: print "No CSV option" idb = HcpInterface(opts.hostname, opts.username, opts.password, opts.project) idb.subject_label = opts.subject idb.session_label = opts.session deface_types = ('Bias_Transmit', 'Bias_Receive', 'T1w', 'T2w', 'T1w_MEG', 'T2w_MEG') deface_seriesdescs = ('BIAS_BC', 'BIAS_32CH', 'AFI', 'T1w_MPR1', 'T2w_SPC1', 'T1w_MPR2', 'T2w_SPC2') def verifyValidation(): """ Checks for ProtocolVal at the experiment level. """ print "--Verifying Validation" uri = '/REST/experiments?xsiType=val:protocolData&project=%s&session_label=%s' % \ (idb.project, idb.session_label) validation = idb.getJson(uri)
#!/usr/bin/env python from hcpxnat.interface import HcpInterface from datetime import datetime import envoy # Use hcpxnat config file or assign each instance variable, e.g., # xnat = HcpInterface(url='http://intradb..', username='******', password='******', project='Proj') idb = HcpInterface(config='/data/intradb/home/hileman/.hcpxnat_intradb.cfg') # Check resources for which pipeline? pipeline = 'level2qc' idb.project = 'LS_3T7T_1B' timestamp = datetime.now().strftime("%Y%m%d") outf = '/data/intradb/home/hileman/pipeline/log/%s_%s_%s.csv' % (idb.project, pipeline, timestamp) print outf if __name__ == "__main__": sessions = idb.getSessions(idb.project) session_labels = list() for s in sessions: session_labels.append(s.get('label')) session_labels = sorted(session_labels, key=lambda s: s.split('_')[0]) for s in session_labels: sub = s.split('_')[0] command = "python intradbPipelineResources.py -u %s -p %s -H %s -s %s -S %s -P %s -f %s -i %s" % \ (idb.username, idb.password, idb.url, sub, s, idb.project, outf, pipeline) print command p = envoy.run(command)
#!/usr/bin/env python from hcpxnat.interface import HcpInterface from datetime import datetime import envoy # Use hcpxnat config file or assign each instance variable, e.g., # xnat = HcpInterface(url='http://intradb..', username='******', password='******', project='Proj') idb = HcpInterface(config="/data/intradb/home/hileman/.hcpxnat_intradb.cfg") idb.project = "LS_Phase1b" pipeline = "level2qc" timestamp = datetime.now().strftime("%Y%m%d") outf = "/data/intradb/home/hileman/intradb_python_pipeline/log/%s_%s_%s.csv" % (idb.project, pipeline, timestamp) if __name__ == "__main__": sessions = idb.getSessions(idb.project) session_labels = list() for s in sessions: session_labels.append(s.get("label")) session_labels = sorted(session_labels, key=lambda s: s.split("_")[0]) for s in session_labels: sub = s.split("_")[0] command = "python intradbPipelineResources.py -u %s -p %s -H %s -s %s -S %s -P %s -f %s -i %s" % ( idb.username, idb.password, idb.url, sub, s,
#!/usr/bin/env python from hcpxnat.interface import HcpInterface from datetime import datetime import envoy # Use hcpxnat config file or assign each instance variable, e.g., # xnat = HcpInterface(url='http://intradb..', username='******', password='******', project='Proj') idb = HcpInterface(config='/data/intradb/home/hileman/.hcpxnat_intradb.cfg') # Check resources for which pipeline? pipeline = 'dcm2nii' # For which project idb.project = 'DMC_Phase1a' timestamp = datetime.now().strftime("%Y%m%d") outf = '/data/intradb/home/hileman/intradb_python_pipeline/log/%s_%s_%s.csv' % (idb.project, pipeline, timestamp) print outf if __name__ == "__main__": sessions = idb.getSessions(idb.project) session_labels = list() for s in sessions: #if 'Stroop' not in s.get('label'): # continue session_labels.append(s.get('label')) session_labels = sorted(session_labels, key=lambda s: s.split('_')[0]) for s in session_labels: idb.session_label = s sub = idb.getSessionSubject() # fails sometimes, so check that this found something
import os parser = OptionParser() parser.add_option("-s", "--sessions", action="store", type="string", dest="sessions") parser.add_option("-p", "--project", action="store", type="string", dest="project", help="Not yet implemented") parser.add_option("-u", "--sge-user", action="store", type="string", dest="user", help="Not yet implemented") (opts, args) = parser.parse_args() if not (opts.sessions or opts.project or opts.user): #print('Monitoring all pipeline processes for hcpinternal ...') #time.sleep(3) parser.print_help() sys.exit(-1) idb = HcpInterface(config='/data/intradb/home/hileman/.hcpxnat_intradb.cfg') idb.project = opts.project sessions_list = [] def get_sessions_list(): sessions = idb.getSessions(project=idb.project) for s in sessions: sessions_list.append(s['label']) if opts.sessions: sessions_list = opts.sessions.split(',') sessions_str = opts.sessions.replace(',', '|') def monitor_sessions(): """ Assumes hcpinternal user
#!/usr/bin/env python from hcpxnat.interface import HcpInterface idb = HcpInterface(config='/home/NRG/mhilem01/.hcpxnat_intradb.cfg') idb.project = 'NKI' sessions = idb.getSessions(project='NKI') for s in sessions: idb.subject_label = idb.session_label = s.get('label') idb.setExperimentElement('xnat:mrSessionData', 'scanner', 'MRC35390') idb.setExperimentElement('xnat:mrSessionData', 'acquisition_site', 'Nathan Kline Institute for Psychiatric Research')
#!/usr/bin/env python from hcpxnat.interface import HcpInterface from datetime import datetime import envoy # Use hcpxnat config file or assign each instance variable, e.g., # xnat = HcpInterface(url='http://intradb..', username='******', password='******', project='Proj') idb = HcpInterface(config='/data/intradb/home/hileman/.hcpxnat_intradb.cfg') # Check resources for which pipeline? pipeline = 'facemask' # For which project idb.project = 'PDSIII' timestamp = datetime.now().strftime("%Y%m%d") outf = '/data/intradb/home/hileman/intradb_python_pipeline/log/%s_%s_%s.csv' % (idb.project, pipeline, timestamp) print outf if __name__ == "__main__": sessions = idb.getSessions(idb.project) session_labels = list() for s in sessions: session_labels.append(s.get('label')) session_labels = sorted(session_labels, key=lambda s: s.split('_')[0]) for s in session_labels: idb.session_label = s sub = idb.getSessionSubject() # fails sometimes, so check that this found something if not sub: print "getSessionSubject() failed. Assuming a naming convention."