0
|
1 from galaxy import datatypes,model
|
|
2 import sys,string,time
|
|
3
|
|
4
|
|
5 def 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
|
|
11 def 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
|
|
33 def 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
|