def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
    history = out_data.items()[0][1].history
    if history == None:
        print "unknown history!"
        return
    kingdom = param_dict.get('kingdom',None)
    group = param_dict.get('group',None)
    org = param_dict.get('org',None)
    
    if not (kingdom or group or org):
        print "Parameters are not available."
    
    new_stdout = ""
    split_stdout = stdout.split("\n")
    basic_name = ""
    for line in split_stdout:
        fields = line.split("\t")
        if fields[0] == "#File1":
            description = fields[1]
            chr = fields[2]
            dbkey = fields[3]
            file_type = fields[4]
            name, data = out_data.items()[0]
            basic_name = data.name
            data.name = data.name + " (" + microbe_info[kingdom][group][org]['chrs'][chr]['data'][description]['feature'] +" for "+microbe_info[kingdom][group][org]['name']+":"+chr + ")"
            data.dbkey = dbkey
            data.info = data.name
            datatypes.change_datatype( data, file_type )
            data.init_meta()
            data.set_peek()
            app.model.flush()
        elif fields[0] == "#NewFile":
            description = fields[1]
            chr = fields[2]
            dbkey = fields[3]
            filepath = fields[4]
            file_type = fields[5]
            newdata = app.model.Dataset()
            newdata.extension = file_type
            newdata.name = basic_name + " (" + microbe_info[kingdom][group][org]['chrs'][chr]['data'][description]['feature'] +" for "+microbe_info[kingdom][group][org]['name']+":"+chr + ")"
            newdata.flush()
            history.add_dataset( newdata )
            newdata.flush()
            app.model.flush()
            try:
                copyfile(filepath,newdata.file_name)
                newdata.info = newdata.name
                newdata.state = jobs.JOB_OK
            except:
                newdata.info = "The requested file is missing from the system."
                newdata.state = jobs.JOB_ERROR
            newdata.dbkey = dbkey
            newdata.init_meta()
            newdata.set_peek()
            #
            app.model.flush()
def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout,
                       stderr):
    history = out_data.items()[0][1].history
    if history == None:
        print "unknown history!"
        return
    new_stdout = ""
    split_stdout = stdout.split("\n")
    basic_name = ""
    for line in split_stdout:
        fields = line.split("\t")
        if fields[0] == "#File1":
            description = fields[1]
            dbkey = fields[2]
            file_type = fields[3]
            name, data = out_data.items()[0]
            basic_name = data.name
            data.name = data.name + " (" + description + ")"
            data.dbkey = dbkey
            data.info = data.name
            datatypes.change_datatype(data, file_type)
            data.init_meta()
            data.set_peek()
            app.model.flush()
        elif fields[0] == "#NewFile":
            description = fields[1]
            dbkey = fields[2]
            filepath = fields[3]
            file_type = fields[4]
            newdata = app.model.Dataset()
            newdata.extension = file_type
            newdata.name = basic_name + " (" + description + ")"
            newdata.flush()
            history.add_dataset(newdata)
            newdata.flush()
            app.model.flush()
            try:
                copyfile(filepath, newdata.file_name)
                newdata.info = newdata.name
                newdata.state = jobs.JOB_OK
            except:
                newdata.info = "The requested file is missing from the system."
                newdata.state = jobs.JOB_ERROR
            newdata.dbkey = dbkey
            newdata.init_meta()
            newdata.set_peek()
            #
            app.model.flush()
Esempio n. 3
0
def exec_before_job( trans, inp_data, out_data, param_dict, tool=None):
    """Sets the name of the data"""
    outputType = param_dict.get( 'hgta_outputType', None )
    if isinstance(outputType, list) and len(outputType)>0: outputType = outputType[-1]
    items = out_data.items()
    
    for name, data in items:
        data.name  = param_dict.get('display', data.name)
        data.dbkey = param_dict.get('dbkey', '???')

        if outputType == 'wigData':
            ext = "wig"
        elif outputType == 'maf':
            ext = "maf"
        elif outputType == 'gff':
            ext = "gff"
        else:
            if 'hgta_doPrintSelectedFields' in param_dict:
                ext = "interval"
            elif 'hgta_doGetBed' in param_dict:
                ext = "bed"
            elif 'hgta_doGenomicDna' in param_dict:
                ext = "fasta"
            elif 'hgta_doGenePredSequence' in param_dict:
                ext = "fasta"
            else:
                ext = "interval"
        
        data = datatypes.change_datatype(data, ext)
        out_data[name] = data
Esempio n. 4
0
def exec_after_process( app, inp_data, out_data, param_dict, tool=None, stdout=None, stderr=None):
    """Verifies the data after the run"""
    items = out_data.items()
    for name, data in items:
        try:            
            err_msg, err_flag = 'Errors:', False
            line_count = 0
            num_lines = len(file(data.file_name).readlines())
            for line in file(data.file_name):
                line_count += 1
                if line and line[0] == '-':
                    if line_count + 3 == num_lines and not err_flag:
                        err_flag = True
                        err_msg = "Warning: It appears that your results have been truncated by UCSC. View the bottom of your result file for details."
                        break
                    err_flag = True
                    err_msg = err_msg +" (line "+str(line_count)+")"+line
            data.set_peek()
            if isinstance(data.datatype, datatypes.interval.Interval) and data.missing_meta():
                data = datatypes.change_datatype(data, 'tabular')
                out_data[name] = data
                
            if err_flag:
                raise Exception(err_msg)

        except Exception, exc:
            data.info  = data.info + "\n" + str(exc)
            data.blurb = "error"
Esempio n. 5
0
def exec_after_process(app, inp_data, out_data, param_dict,tool, stdout, stderr):
    ext   = param_dict.get('out_format', 'html')
    items = out_data.items()   
    for name, data in items: 
        data =  datatypes.change_datatype(data, ext)
        data.flush()
    app.model.flush()
Esempio n. 6
0
def exec_before_job(trans, inp_data, out_data, param_dict, tool=None):
    """Sets the name of the data"""
    outputType = param_dict.get('hgta_outputType', None)
    if isinstance(outputType, list) and len(outputType) > 0:
        outputType = outputType[-1]
    items = out_data.items()

    for name, data in items:
        data.name = param_dict.get('display', data.name)
        data.dbkey = param_dict.get('dbkey', '???')

        if outputType == 'wigData':
            ext = "wig"
        elif outputType == 'maf':
            ext = "maf"
        elif outputType == 'gff':
            ext = "gff"
        else:
            if 'hgta_doPrintSelectedFields' in param_dict:
                ext = "interval"
            elif 'hgta_doGetBed' in param_dict:
                ext = "bed"
            elif 'hgta_doGenomicDna' in param_dict:
                ext = "fasta"
            elif 'hgta_doGenePredSequence' in param_dict:
                ext = "fasta"
            else:
                ext = "interval"

        data = datatypes.change_datatype(data, ext)
        out_data[name] = data
def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
    history = out_data.items()[0][1].history
    if history == None:
        print "unknown history!"
        return
    new_stdout = ""
    split_stdout = stdout.split("\n")
    basic_name = ""
    for line in split_stdout:
        fields = line.split("\t")
        if fields[0] == "#File1":
            description = fields[1]
            dbkey = fields[2]
            file_type = fields[3]
            name, data = out_data.items()[0]
            basic_name = data.name
            data.name = data.name + " (" + description + ")"
            data.dbkey = dbkey
            data.info = data.name
            datatypes.change_datatype(data, file_type)
            data.init_meta()
            data.set_peek()
            app.model.flush()
        elif fields[0] == "#NewFile":
            description = fields[1]
            dbkey = fields[2]
            filepath = fields[3]
            file_type = fields[4]
            newdata = app.model.Dataset()
            newdata.extension = file_type
            newdata.name = basic_name + " (" + description + ")"
            newdata.flush()
            history.add_dataset(newdata)
            newdata.flush()
            app.model.flush()
            try:
                copyfile(filepath, newdata.file_name)
                newdata.info = newdata.name
                newdata.state = jobs.JOB_OK
            except:
                newdata.info = "The requested file is missing from the system."
                newdata.state = jobs.JOB_ERROR
            newdata.dbkey = dbkey
            newdata.init_meta()
            newdata.set_peek()
            #
            app.model.flush()
Esempio n. 8
0
def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout,
                       stderr):
    ext = param_dict.get('out_format', 'html')
    items = out_data.items()
    for name, data in items:
        data = datatypes.change_datatype(data, ext)
        data.flush()
    app.model.flush()
def exec_before_job( trans, inp_data, out_data, param_dict, tool=None):
    """Sets the name of the data"""
    data_name = param_dict.get( 'name', 'Biomart query' )
    data_type = param_dict.get( 'type', 'text' )
    
    name, data = out_data.items()[0]
    data = datatypes.change_datatype(data, data_type)
    data.name = data_name
    out_data[name] = data
Esempio n. 10
0
def exec_before_job(trans, inp_data, out_data, param_dict, tool=None):
    """Sets the name of the data"""
    data_name = param_dict.get('name', 'Biomart query')
    data_type = param_dict.get('type', 'text')

    name, data = out_data.items()[0]
    data = datatypes.change_datatype(data, data_type)
    data.name = data_name
    out_data[name] = data
def exec_after_process( app, inp_data, out_data, param_dict,tool, stdout, stderr):
#Properly set file formats before job run
#def exec_before_job(trans, inp_data, out_data, param_dict,tool):
    #why isn't items an ordered list?
    items = out_data.items()
    #lets sort it ourselves....
    items = sorted(items, key=operator.itemgetter(0))
    #items is now sorted...
    
    #normal filetype correction
    data_count=1
    for name, data in items:
        outputType = param_dict.get( 'out_format'+str(data_count), None )
        #print "data_count",data_count, "name", name, "outputType", outputType
        if outputType !=None:
            if outputType == 'ncbi':
                outputType = "fasta"
            elif outputType == 'excel':
                outputType = "Tabular"
            elif outputType == 'text':
                outputType = "txt"
            data = datatypes.change_datatype(data, outputType)
            data.flush()
        data_count+=1
    
    #html filetype correction
    data_count=1
    for name, data in items:
        wants_plot = param_dict.get( 'html_out'+str(data_count), None )
        ext = "html"
        if wants_plot == "yes":
            data = datatypes.change_datatype(data, ext)
            data.flush()
        data_count+=1
    
    #png file correction
    data_count=1
    for name, data in items:
        wants_plot = param_dict.get( 'plot'+str(data_count), None )
        ext = "png"
        if wants_plot == "yes":
            data = datatypes.change_datatype(data, ext)
            data.flush()
        data_count+=1
Esempio n. 12
0
 def copy_dataset(self, src, parent_id=None):
     des = self.app.model.Dataset()
     des.flush()
     des = datatypes.change_datatype(des, src.ext)
     des.name = src.name
     des.info = src.info
     des.blurb = src.blurb
     des.peek = src.peek
     des.extension = src.extension
     des.dbkey = src.dbkey
     des.state = src.state
     des.metadata = src.metadata
     des.hid = src.hid
     des.parent_id = parent_id
     shutil.copyfile(src.file_name,des.file_name)
     des.hid = src.hid
     des.designation = src.designation
     des.flush()
     return des
Esempio n. 13
0
 def copy_dataset(self, src, parent_id=None):
     des = self.app.model.Dataset()
     des.flush()
     des = datatypes.change_datatype(des, src.ext)
     des.name = src.name
     des.info = src.info
     des.blurb = src.blurb
     des.peek = src.peek
     des.extension = src.extension
     des.dbkey = src.dbkey
     des.state = src.state
     des.metadata = src.metadata
     des.hid = src.hid
     des.parent_id = parent_id
     shutil.copyfile(src.file_name, des.file_name)
     des.hid = src.hid
     des.designation = src.designation
     des.flush()
     return des
Esempio n. 14
0
def exec_after_process(app,
                       inp_data,
                       out_data,
                       param_dict,
                       tool=None,
                       stdout=None,
                       stderr=None):
    """Verifies the data after the run"""
    items = out_data.items()
    for name, data in items:
        try:
            err_msg, err_flag = 'Errors:', False
            line_count = 0
            num_lines = len(file(data.file_name).readlines())
            for line in file(data.file_name):
                line_count += 1
                if line and line[0] == '-':
                    if line_count + 3 == num_lines and not err_flag:
                        err_flag = True
                        err_msg = "Warning: It appears that your results have been truncated by UCSC. View the bottom of your result file for details."
                        break
                    err_flag = True
                    err_msg = err_msg + " (line " + str(
                        line_count) + ")" + line
            data.set_peek()
            if isinstance(data.datatype,
                          datatypes.interval.Interval) and data.missing_meta():
                data = datatypes.change_datatype(data, 'tabular')
                out_data[name] = data

            if err_flag:
                raise Exception(err_msg)

        except Exception, exc:
            data.info = data.info + "\n" + str(exc)
            data.blurb = "error"
Esempio n. 15
0
def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout,
                       stderr):
    for name, data in out_data.items():
        if data.ext == "bed":
            data = datatypes.change_datatype(data, "interval")
            data.flush()
Esempio n. 16
0
def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout,
                       stderr):
    history = out_data.items()[0][1].history
    if history == None:
        print "unknown history!"
        return
    kingdom = param_dict.get('kingdom', None)
    group = param_dict.get('group', None)
    org = param_dict.get('org', None)

    if not (kingdom or group or org):
        print "Parameters are not available."

    new_stdout = ""
    split_stdout = stdout.split("\n")
    basic_name = ""
    for line in split_stdout:
        fields = line.split("\t")
        if fields[0] == "#File1":
            description = fields[1]
            chr = fields[2]
            dbkey = fields[3]
            file_type = fields[4]
            name, data = out_data.items()[0]
            basic_name = data.name
            data.name = data.name + " (" + microbe_info[kingdom][group][org][
                'chrs'][chr]['data'][description][
                    'feature'] + " for " + microbe_info[kingdom][group][org][
                        'name'] + ":" + chr + ")"
            data.dbkey = dbkey
            data.info = data.name
            datatypes.change_datatype(data, file_type)
            data.init_meta()
            data.set_peek()
            app.model.flush()
        elif fields[0] == "#NewFile":
            description = fields[1]
            chr = fields[2]
            dbkey = fields[3]
            filepath = fields[4]
            file_type = fields[5]
            newdata = app.model.Dataset()
            newdata.extension = file_type
            newdata.name = basic_name + " (" + microbe_info[kingdom][group][
                org]['chrs'][chr]['data'][description][
                    'feature'] + " for " + microbe_info[kingdom][group][org][
                        'name'] + ":" + chr + ")"
            newdata.flush()
            history.add_dataset(newdata)
            newdata.flush()
            app.model.flush()
            try:
                copyfile(filepath, newdata.file_name)
                newdata.info = newdata.name
                newdata.state = jobs.JOB_OK
            except:
                newdata.info = "The requested file is missing from the system."
                newdata.state = jobs.JOB_ERROR
            newdata.dbkey = dbkey
            newdata.init_meta()
            newdata.set_peek()
            #
            app.model.flush()
def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
    for name, data in out_data.items():
        if data.ext == "bed":
            data = datatypes.change_datatype(data, "interval")
            data.flush()