From 036e753ff22c0d014780a1a962118278f4dceaea Mon Sep 17 00:00:00 2001 From: Beth Cimini Date: Wed, 7 Nov 2018 15:54:38 -0500 Subject: [PATCH 1/2] Test if pipeline is CP2 or CP3 --- worker/cp-worker.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/worker/cp-worker.py b/worker/cp-worker.py index cfa0ef6..7697fa3 100644 --- a/worker/cp-worker.py +++ b/worker/cp-worker.py @@ -143,12 +143,20 @@ def runCellProfiler(message): logger.addHandler(watchtowerlogger) # Build and run CellProfiler command + cp2 = False + with open(os.path.join(replaceValues['DATA'],replaceValues['PL']), 'r') as openpipe: + for line in openpipe: + if 'DateRevision:2' in line: #comes from a CP2 pipeline + cp2 = True + cmdstem = 'cellprofiler -c -r -b ' + if not cp2: + cmdstem = 'cellprofiler -c -r ' cpDone = localOut + '/cp.is.done' if message['pipeline'][-3:]!='.h5': - cmd = 'cellprofiler -c -r -b -p %(DATA)s/%(PL)s -i %(DATA)s/%(IN)s -o %(OUT)s -d ' + cpDone + cmd = cmdstem + '-p %(DATA)s/%(PL)s -i %(DATA)s/%(IN)s -o %(OUT)s -d ' + cpDone cmd += ' --data-file=%(DATA)s/%(FL)s -g %(Metadata)s' else: - cmd = 'cellprofiler -c -r -b -p %(DATA)s/%(PL)s -o %(OUT)s -d ' + cpDone + ' --data-file=%(DATA)s/%(FL)s -g %(Metadata)s' + cmd = cmdstem + '-p %(DATA)s/%(PL)s -o %(OUT)s -d ' + cpDone + ' --data-file=%(DATA)s/%(FL)s -g %(Metadata)s' cmd = cmd % replaceValues print('Running', cmd) logger.info(cmd) From b01b6d3be29098e32c04a5b77b48619b0b1c00b5 Mon Sep 17 00:00:00 2001 From: bethac07 Date: Wed, 7 Nov 2018 23:55:44 +0000 Subject: [PATCH 2/2] misc fixes --- worker/cp-worker.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worker/cp-worker.py b/worker/cp-worker.py index 7697fa3..75467b3 100644 --- a/worker/cp-worker.py +++ b/worker/cp-worker.py @@ -107,15 +107,15 @@ def runCellProfiler(message): message['Metadata']=metadataForCall[:-1] elif 'output_structure' in message.keys(): if message['output_structure']!='': #support for explicit output structuring + watchtowerlogger=watchtower.CloudWatchLogHandler(log_group=LOG_GROUP_NAME, stream_name=message['Metadata'],create_log_group=False) logger.addHandler(watchtowerlogger) metadataID = message['output_structure'] - watchtowerlogger=watchtower.CloudWatchLogHandler(log_group=LOG_GROUP_NAME, stream_name=message['Metadata'],create_log_group=False) for eachMetadata in message['Metadata'].split(','): if eachMetadata.split('=')[0] not in metadataID: printandlog('Your specified output structure does not match the Metadata passed',logger) else: metadataID = string.replace(metadataID,eachMetadata.split('=')[0],eachMetadata.split('=')[1]) - printandlog('metadataID =',metadataID) + printandlog('metadataID ='+metadataID, logger) else: #backwards compatability with 1.0.0 and/or no desire to structure output metadataID = '-'.join([x.split('=')[1] for x in message['Metadata'].split(',')]) # Strip equal signs from the metadata else: #backwards compatability with 1.0.0 and/or no desire to structure output