[2] | 1 | from galaxy import app |
---|
| 2 | import galaxy.util,string,os,glob,time |
---|
| 3 | |
---|
| 4 | librepos = '/usr/local/galaxy/data/rg/library' |
---|
| 5 | myrepos = '/home/rerla/galaxy' |
---|
| 6 | |
---|
| 7 | |
---|
| 8 | #Provides Upload tool with access to list of available builds |
---|
| 9 | |
---|
| 10 | builds = [] |
---|
| 11 | #Read build names and keys from galaxy.util |
---|
| 12 | for dbkey, build_name in galaxy.util.dbnames: |
---|
| 13 | builds.append((build_name,dbkey,False)) |
---|
| 14 | |
---|
| 15 | def timenow(): |
---|
| 16 | """return current time as a string |
---|
| 17 | """ |
---|
| 18 | return time.strftime('%d/%m/%Y %H:%M:%S', time.localtime(time.time())) |
---|
| 19 | |
---|
| 20 | #Return available builds |
---|
| 21 | def get_available_builds(defval='hg18'): |
---|
| 22 | for i,x in enumerate(builds): |
---|
| 23 | if x[1] == defval: |
---|
| 24 | x = list(x) |
---|
| 25 | x[2] = True |
---|
| 26 | builds[i] = tuple(x) |
---|
| 27 | return builds |
---|
| 28 | |
---|
| 29 | #return available datasets for build |
---|
| 30 | def get_available_data( file_type_dir, build='hg18' ): |
---|
| 31 | #we need to allow switching of builds, and properly set in post run hook |
---|
| 32 | import_files = [('Use the History file chosen below','',True),] |
---|
| 33 | flist = glob.glob(os.path.join(librepos,file_type_dir,'*.ped')) |
---|
| 34 | maplist = glob.glob(os.path.join(librepos,file_type_dir,'*.map')) |
---|
| 35 | maplist = [os.path.splitext(x)[0] for x in maplist] # get unique filenames |
---|
| 36 | mapdict = dict(zip(maplist,maplist)) |
---|
| 37 | flist = [os.path.splitext(x)[0] for x in flist] # get unique filenames |
---|
| 38 | flist = list(set(flist)) # remove dupes |
---|
| 39 | flist = [x for x in flist if mapdict.get(x,None)] |
---|
| 40 | flist.sort() |
---|
| 41 | for i, data in enumerate( flist ): |
---|
| 42 | #import_files.append( (os.path.split(data)[-1], os.path.split(data)[-1], False) ) |
---|
| 43 | import_files.append((data,data, False) ) |
---|
| 44 | if len(import_files) < 1: |
---|
| 45 | import_files = [('No %s data available - please choose a History file below' |
---|
| 46 | % file_type_dir,'',True),] |
---|
| 47 | return import_files |
---|
| 48 | |
---|
| 49 | def get_available_outexts(uid): |
---|
| 50 | userId = uid |
---|
| 51 | print 'userId=',userId |
---|
| 52 | flib = os.path.join(librepos,userId,'fped') |
---|
| 53 | plib = os.path.join(librepos,userId,'lped') |
---|
| 54 | e = [('Fbat style (header row has marker names)',flib,False),('Linkage style (separate .map file)',plib,True)] |
---|
| 55 | return e |
---|
| 56 | |
---|
| 57 | def getcols(fname="/usr/local/galaxy/data/camp2007/camp2007.xls"): |
---|
| 58 | """return column names other than chr offset as a select list""" |
---|
| 59 | head = open(fname,'r').next() |
---|
| 60 | c = head.strip().split() |
---|
| 61 | res = [(cname,'%d' % n,False) for n,cname in enumerate(c)] |
---|
| 62 | for i in range(4): |
---|
| 63 | x,y,z = res[i] |
---|
| 64 | res[i] = (x,y,True) # set first couple as selected |
---|
| 65 | return res |
---|
| 66 | |
---|
| 67 | |
---|
| 68 | def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): |
---|
| 69 | """Sets the name of the html output file - that's all we need |
---|
| 70 | for a html file result set |
---|
| 71 | """ |
---|
| 72 | ts = '%s%s' % (string.punctuation,string.whitespace) |
---|
| 73 | ptran = string.maketrans(ts,'_'*len(ts)) |
---|
| 74 | job_name = param_dict.get( 'title', 'LD_Plot' ) |
---|
| 75 | job_name = job_name.encode().translate(ptran) |
---|
| 76 | ofname = 'out_file1' |
---|
| 77 | data = out_data[ofname] |
---|
| 78 | newname = job_name |
---|
| 79 | data.name = '%s.html' % newname |
---|
| 80 | info = '%s created by rgHaploView at %s' % (job_name,timenow()) |
---|
| 81 | out_data[ofname] = data |
---|
| 82 | app.model.context.flush() |
---|
| 83 | |
---|
| 84 | |
---|