#!/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:
Beispiel #9
0
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."