def run(self, log, info): info['WORKFLOW'] = dropbox.extendWorkflowID(info['WORKFLOW']) stagebox = dropbox.make_stagebox(log, info) dropbox.keys_to_dropbox(log, info, ['ROSETTA_COMPRESSEDOUT'], stagebox) dsattr = {} dsattr['SPACE'] = info['SPACE'] dsattr['PROJECT'] = info['PROJECT'] dsattr['EXPERIMENT'] = info['OUTEXPERIMENT'] dsattr['DATASET_TYPE'] = 'ROSETTA_OUTFILE' path = os.path.join(stagebox, 'dataset.attributes') IniInfoHandler().write(dsattr, path) dsprop = {} for key in ['SEQ', 'COMMENT', 'ROSETTA_VERSION', 'RUN__PROTOCOL', 'RUN__SHUFFLE', 'INFRASTRUCTURE', 'N_MODELS', 'DATABASE', 'IN__FILE__ALIGNMENT', 'CM__ALN_FORMAT', 'FRAG3', 'FRAG9', 'IN__FILE__FASTA', 'IN__FILE__FULLATOM', 'IN__FILE__PSIPRED_SS2', 'IN__DETECT_DISULF', 'IN__FILE__TEMPLATE_PDB', 'LOOPS__FRAG_SIZES', 'LOOPS__FRAG_FILES', 'IDEALIZE_AFTER_LOOP_CLOSE', 'LOOPS__EXTENDED', 'LOOPS__BUILD_INITIAL', 'LOOPS__REMODEL', 'LOOPS__RELAX', 'RANDOM_GROW_LOOPS_BY', 'SELECT_BEST_LOOP_FROM', 'RELAX__FAST', 'RELAX__DEFAULT_REPEATS', 'SILENT_DECOYTIME', 'FAIL_ON_BAD_HBOND', 'BGDT', 'EVALUATION__GDTMM', 'OUT__FILE__SILENT_STRUCT_TYPE']: dsprop[key] = info[key] path = os.path.join(stagebox, 'dataset.properties') IniInfoHandler().write(dsprop, path) dropbox.move_stage_to_dropbox(log, stagebox, info['DROPBOX'], keepCopy=False) return info
def run(self, log, info): info['WORKFLOW'] = dropbox.extendWorkflowID(info['WORKFLOW']) info['DROPBOXSTAGE'] = dropbox.make_stagebox(log, info) #copy files keys = ['PEPCSV', 'PROTCSV', 'CONSENSUSXML'] dropbox.keys_to_dropbox(log, info, keys, info['DROPBOXSTAGE']) #compress TOPPAS files archive = os.path.join(info['DROPBOXSTAGE'], 'toppasfiles.zip') subprocess.check_call('zip -v ' + archive + ' ' + " ".join(info['TOPPASFILES']), shell=True) #compress XML files archive = os.path.join(info['DROPBOXSTAGE'], 'featurexmls.zip') subprocess.check_call('zip -jv ' + archive + ' ' + " ".join(info['FEATUREXML']), shell=True) #protxml special naming filename = os.path.basename(info['DROPBOXSTAGE']) + '.prot.xml' filepath = os.path.join(info['DROPBOXSTAGE'], filename) shutil.copy(info['PROTXML'], filepath) #properties file expinfo = info.copy() expinfo['PARENT-DATA-SET-CODES'] = info[Keys.DATASET_CODE] expinfo['BASE_EXPERIMENT'] = info['EXPERIMENT'] expinfo['QUANTIFICATION_TYPE'] = 'LABEL-FREE' expinfo['PEAKPICKER'] = 'YES' expinfo['MAPALIGNER'] = 'YES' proppath = os.path.join(info['DROPBOXSTAGE'], 'quantification.properties') IniInfoHandler().write(expinfo, proppath) #create witolds LFQ report mail reportcmd = 'mailLFQ.sh %s %s %s %s 2>&1' % (proppath, expinfo['PEPCSV'], expinfo['PROTCSV'], getpass.getuser()) try: subprocess.call(reportcmd, shell=True) shutil.copy('analyseLFQ.pdf', info['DROPBOXSTAGE']) except: log.warn("LFQ report command [%s] failed, skipping" % reportcmd) dropbox.move_stage_to_dropbox(log, info['DROPBOXSTAGE'], info['DROPBOX']) return info
def run(self, log, info): info['WORKFLOW'] = dropbox.extendWorkflowID(info['WORKFLOW']) stagebox = dropbox.make_stagebox(log, info) dropbox.keys_to_dropbox(log, info, ['APMS_OUT'], stagebox) dsattr = {} dsattr['DATASET_TYPE'] = 'APMS_RESULT' dsattr['SPACE'] = info['SPACE'] dsattr['PROJECT'] = info['PROJECT'] dsattr['EXPERIMENT'] = info['OUTEXPERIMENT'] for key in ["COMMENT"]: dsattr[key] = info[key] path = os.path.join(stagebox, 'dataset.attributes') IniInfoHandler().write(dsattr, path) dropbox.move_stage_to_dropbox(log, stagebox, info['DROPBOX'], keepCopy=False) return info
def run(self, log, info): info['WORKFLOW'] = dropbox.extendWorkflowID(info['WORKFLOW']) info['DROPBOXSTAGE'] = stagebox = dropbox.make_stagebox(log, info) info['PEPIDX'] = info['SPLIB'].replace(".splib", ".pepidx") dropbox.keys_to_dropbox(log, info, ['SPLIB', 'PEPIDX', 'TSV', 'TRAML'], stagebox) dsattr = {} dsattr['SPACE'] = 'PERSONAL_DB' dsattr['PROJECT'] = 'TRAML' dsattr['EXPERIMENT'] = getpass.getuser().upper() dsattr['EXPERIMENT_TYPE'] = "PLAIN" dsattr['DATASET_TYPE'] = 'TRAML_DB' dsattr['PARENT_DATASETS'] = os.path.basename(os.path.dirname(info[Keys.PEPXML])) path = os.path.join(stagebox, 'dataset.attributes') IniInfoHandler().write(dsattr, path) dsprop = {} dsprop['VERSION'] = time.strftime("%Y%m%d%H%M%S") dsprop['NAME'] = info.get('COMMENT', "unnamed") dsprop['DESCRIPTION'] = info.get('DESCRIPTION', "undescribed") dsprop['WORKFLOW'] = info['WORKFLOW'] dsprop['HASSPLIB'] = "true" for key in ["FDR", "MS_TYPE", "RUNRT", "RTKIT", "TSV_MASS_LIMITS", "TSV_ION_LIMITS", "TSV_PRECISION", "TSV_CHARGE", "TSV_REMOVE_DUPLICATES", "TSV_EXACT", "TSV_GAIN", "TSV_SERIES", "CONSENSUS_TYPE"]: dsprop[key] = info[key] #cannot use IniInfoHandlerHere because it writes NAME config = ConfigObj(dsprop) config.filename = os.path.join(stagebox, 'dataset.properties') config.write() dropbox.move_stage_to_dropbox(log, stagebox, info['DROPBOX'], keepCopy=False) return info
def run(self, log, info): info['WORKFLOW'] = dropbox.extendWorkflowID(info['WORKFLOW']) info['DROPBOXSTAGE'] = dropbox.make_stagebox(log, info) info['EXPERIMENT_CODE'] = dropbox.get_experiment_code(info) keys = [Keys.PEPXML, 'PEPCSV', 'MAYUOUT'] dropbox.keys_to_dropbox(log, info, keys, info['DROPBOXSTAGE']) # protxml special naming filename = os.path.basename(info['DROPBOXSTAGE']) + '.prot.xml' filepath = os.path.join(info['DROPBOXSTAGE'], filename) shutil.copy(info['PROTXML'], filepath) #search.properties requires some specific fields sinfo = info.copy() sinfo['FDR'] = info['FDR'] sinfo['DBASENAME'] = os.path.splitext(os.path.split(info['DBASE'])[1])[0] sinfo['PARENT-DATA-SET-CODES'] = info[Keys.DATASET_CODE] # set values to NONE if they were e.g. "" before for key in ['STATIC_MODS', 'VARIABLE_MODS']: if info.get(key, "") == "": sinfo[key] = 'NONE' #lowercase required sinfo['experiment-code'] = info['EXPERIMENT_CODE'] path = os.path.join(info['DROPBOXSTAGE'], 'search.properties') IniInfoHandler().write(sinfo, path) #write mail to dropbox but do not send yet (after viewer only) info['MAILFILE'] = os.path.join(info['DROPBOXSTAGE'], 'mailtext.txt') self._writemail(info.copy()) info['DROPBOXSTAGE'] = dropbox.move_stage_to_dropbox(log, info['DROPBOXSTAGE'], info['DROPBOX'], keepCopy=True) return info