1 | # before running the qc, need to rename various output files |
---|
2 | import os,string,time |
---|
3 | from galaxy import datatypes |
---|
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 | def get_out_formats(): |
---|
11 | """return options for formats""" |
---|
12 | dat = [['ucsc track','wig'],['ucsc genome graphs','gg'],['tab delimited','xls']] |
---|
13 | dat = [(x[0],x[1],False) for x in dat] |
---|
14 | dat.reverse() |
---|
15 | return dat |
---|
16 | |
---|
17 | def get_phecols(phef='',selectOne=0): |
---|
18 | """return column names """ |
---|
19 | phepath = phef.extra_files_path |
---|
20 | phename = phef.metadata.base_name |
---|
21 | phe = os.path.join(phepath,'%s.pphe' % phename) |
---|
22 | head = open(phe,'r').next() |
---|
23 | c = head.strip().split()[2:] # first are fid,iid |
---|
24 | res = [(cname,cname,False) for cname in c] |
---|
25 | if len(res) >= 1: |
---|
26 | if selectOne: |
---|
27 | x,y,z = res[0] # 0,1 = fid,iid |
---|
28 | res[0] = (x,y,True) # set second selected |
---|
29 | else: |
---|
30 | res.insert(0,('None','None',True)) |
---|
31 | else: |
---|
32 | res = [('None','no phenotype columns found',False),] |
---|
33 | return res |
---|
34 | |
---|
35 | |
---|
36 | def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): |
---|
37 | """Sets the name of the data""" |
---|
38 | killme=string.punctuation+string.whitespace |
---|
39 | trantab = string.maketrans(killme,'_'*len(killme)) |
---|
40 | job_name = param_dict.get( 'title1', 'GLM' ) |
---|
41 | job_name = job_name.encode().translate(trantab) |
---|
42 | outxls = ['tabular','%s_GLM.xls' % job_name] |
---|
43 | logtxt = ['txt','%s_GLM_log.txt' % job_name] |
---|
44 | ggout = ['gg','%s_GLM_topTable.gff' % job_name] |
---|
45 | lookup={} |
---|
46 | lookup['out_file1'] = outxls |
---|
47 | lookup['logf'] = logtxt |
---|
48 | lookup['gffout'] = ggout |
---|
49 | info = '%s GLM output by rgGLM created at %s' % (job_name,timenow()) |
---|
50 | for name in lookup.keys(): |
---|
51 | data = out_data[name] |
---|
52 | data_type,newname = lookup.get(name,(None,None)) |
---|
53 | if data_type <> None: |
---|
54 | data.name = newname |
---|
55 | data.info = info |
---|
56 | out_data[name] = data |
---|
57 | else: |
---|
58 | print >> stdout,'no output matching %s in exec after hook for rgGLM' % name |
---|
59 | app.model.context.flush() |
---|