annotate home/ubuntu/lefse_to_export/format_input_selector.py @ 1:db64b6287cd6 draft

Modified datatypes
author george-weingart
date Wed, 20 Aug 2014 16:56:51 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
1 from galaxy import datatypes,model
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
2 import sys,string,time
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
3
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
4
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
5 def timenow():
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
6 """return current time as a string
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
7 """
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
8 return time.strftime('%d/%m/%Y %H:%M:%S', time.localtime(time.time()))
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
9
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
10 def get_opt(data):
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
11 return [('r','r',False),('c','c',False)]
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
12
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
13 def red(st,l):
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
14 if len(st) <= l: return st
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
15 l1,l2 = l/2,l/2
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
16 return st[:l1]+".."+st[len(st)-l2:]
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
17
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
18 def get_row_names(data,t):
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
19 if data == "": return []
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
20 max_len =38
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
21 fname = data.dataset.file_name
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
22 opt = []
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
23 rc = ''
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
24 # lines = [(red(v.split()[0],max_len),'%s' % str(v.split()[0]),False) for i,v in enumerate(open(fname))]
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
25 if t == 'b': lines = [(red(v.split()[0],max_len),'%d' % (i+1),False) for i,v in enumerate(open(fname)) if len(v.split()) > 3 ]
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
26 else: lines = [(red(v.split()[0],max_len),'%d' % (i+1),False) for i,v in enumerate(open(fname))]
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
27 return sorted(opt+lines)
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
28
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
29 def get_cols(data,t,c):
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
30 if data == "": return []
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
31 max_len =32
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
32 fname = data.dataset.file_name
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
33 opt = []
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
34 if c != 'cl':
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
35 opt.append(('no '+c,'%d' % -1,False))
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
36 if t == 'c':
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
37 rc = ''
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
38 lines = [(red((rc+"#"+str(i+1)+":"+v[0]),max_len),'%d' % (i+1),False) for i,v in enumerate(zip(*[line.split() for line in open(fname)]))]
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
39 else:
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
40 rc = ''
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
41 lines = [(red((rc+"#"+str(i+1)+":"+v.split()[0]),max_len),'%d' % (i+1),False) for i,v in enumerate(open(fname))]
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
42 return opt+lines
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
43
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
44 """
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
45 def get_phecols(i,addNone,hint):
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
46 hint = hint.lower()
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
47 fname = i.dataset.file_name
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
48 try:
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
49 f = open(fname,'r')
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
50 except:
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
51 return [('get_phecols unable to open file "%s"' % fname,'None',False),]
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
52 header = f.next()
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
53 h = header.strip().split()
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
54 dat = [(x,'%d' % i,False) for i,x in enumerate(h)]
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
55 matches = [i for i,x in enumerate(h) if x.lower().find(hint) <> -1]
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
56 if len(matches) > 0:
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
57 sel = matches[0]
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
58 dat[sel] = (dat[sel][0],dat[sel][1],True)
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
59 if addNone:
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
60 dat.insert(0,('None - no Manhattan plot','0', False ))
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
61 return dat
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
62 """
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
63
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
64
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
65 """
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
66 def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
67 outfile = 'out_html'
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
68 job_name = param_dict.get( 'name', 'Manhattan QQ plots' )
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
69 killme = string.punctuation + string.whitespace
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
70 trantab = string.maketrans(killme,'_'*len(killme))
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
71 newname = '%s.html' % job_name.translate(trantab)
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
72 data = out_data[outfile]
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
73 data.name = newname
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
74 data.info='%s run at %s' % (job_name,timenow())
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
75 out_data[outfile] = data
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
76 app.model.context.flush()
db64b6287cd6 Modified datatypes
george-weingart
parents:
diff changeset
77 """