コード例 #1
0
ファイル: dropbox.py プロジェクト: applicake-tools/toolscake
    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
コード例 #2
0
ファイル: dropbox.py プロジェクト: applicake-tools/toolscake
    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
コード例 #3
0
ファイル: dropbox.py プロジェクト: applicake-tools/toolscake
    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
コード例 #4
0
ファイル: dropbox.py プロジェクト: applicake-tools/toolscake
    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
コード例 #5
0
ファイル: dropbox.py プロジェクト: applicake-tools/toolscake
    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