PageRenderTime 184ms CodeModel.GetById 178ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 0ms

/tools/rgenetics/rgManQQ_code.py

https://bitbucket.org/cistrome/cistrome-harvard/
Python | 50 lines | 37 code | 6 blank | 7 comment | 7 complexity | 30ab84a51b773b7b4e4221176cb5a7f7 MD5 | raw file
 1from galaxy import datatypes,model
 2import sys,string,time
 3
 4
 5def timenow():
 6    """return current time as a string
 7    """
 8    return time.strftime('%d/%m/%Y %H:%M:%S', time.localtime(time.time()))
 9
10
11def get_phecols(i,addNone,hint):
12   """ 
13   return a list of phenotype columns for a multi-select list
14   """
15   hint = hint.lower()
16   fname = i.dataset.file_name
17   try:
18        f = open(fname,'r')
19   except:
20        return [('get_phecols unable to open file "%s"' % fname,'None',False),]
21   header = f.next()
22   h = header.strip().split()
23   dat = [(x,'%d' % i,False) for i,x in enumerate(h)]
24   matches = [i for i,x in enumerate(h) if x.lower().find(hint) <> -1]
25   if len(matches) > 0:
26       sel = matches[0]
27       dat[sel] = (dat[sel][0],dat[sel][1],True)
28   if addNone:
29        dat.insert(0,('None - no Manhattan plot','0', False ))
30   return dat
31
32
33def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
34    """Sets the name of the data
35       <outputs>
36       <data format="pdf" name="allqq" />
37       <data format="pdf" name="lowqq" parent="allqq"/>
38    </outputs>
39    """
40    outfile = 'out_html'
41    job_name = param_dict.get( 'name', 'Manhattan QQ plots' )
42    killme = string.punctuation + string.whitespace
43    trantab = string.maketrans(killme,'_'*len(killme))
44    newname = '%s.html' % job_name.translate(trantab)
45    data = out_data[outfile]
46    data.name = newname
47    data.info='%s run at %s' % (job_name,timenow())
48    out_data[outfile] = data
49    app.model.context.flush()
50