root/galaxy-central/tools/rgenetics/rgPedSub_code.py

リビジョン 2, 2.9 KB (コミッタ: hatakeyama, 14 年 前)

import galaxy-central

行番号 
1from galaxy import app
2import galaxy.util,string,os,glob,time
3
4#Provides Upload tool with access to list of available builds
5
6builds = []
7#Read build names and keys from galaxy.util
8for dbkey, build_name in galaxy.util.dbnames:
9    builds.append((build_name,dbkey,False))
10
11def timenow():
12    """return current time as a string
13    """
14    return time.strftime('%d/%m/%Y %H:%M:%S', time.localtime(time.time()))
15
16
17#Return available builds
18def get_available_builds(defval='hg18'):
19    for i,x in enumerate(builds):
20        if x[1] == defval:
21           x = list(x)
22           x[2] = True
23           builds[i] = tuple(x)
24    return builds
25
26#return available datasets for build
27def get_available_data( file_type_dir, build='hg18' ):
28    #we need to allow switching of builds, and properly set in post run hook
29    import_files = [] # [('Use the History file chosen below','',False),]
30    flist = glob.glob(os.path.join(librepos,file_type_dir,'*.ped')) 
31    flist = [os.path.splitext(x)[0] for x in flist] # get unique filenames
32    flist = list(set(flist)) # remove dupes 
33    flist.sort()
34    for i, data in enumerate( flist ):
35        #import_files.append( (os.path.split(data)[-1], os.path.split(data)[-1], False) )
36        import_files.append((os.path.split(data)[-1],data, False) )
37    if len(import_files) < 1:
38        import_files.append(('No %s data available - please choose a History file instead'
39                             % file_type_dir,'',True))
40    return import_files
41
42def get_available_outexts(uid):
43    userId = uid
44    print 'userId=',userId
45    flib = os.path.join(librepos,userId,'fped')
46    plib = os.path.join(librepos,userId,'lped')
47    e = [('Fbat style (header row has marker names)',flib,False),('Linkage style (separate .map file)',plib,True)]
48    return e
49
50def getcols(fname="/usr/local/galaxy/data/camp2007/camp2007.xls"):
51   """return column names other than chr offset as a select list"""
52   head = open(fname,'r').next()
53   c = head.strip().split()
54   res = [(cname,'%d' % n,False) for n,cname in enumerate(c)]
55   for i in range(4):
56     x,y,z = res[i]
57     res[i] = (x,y,True) # set first couple as selected
58   return res
59
60
61def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr):
62    """from rgConvert_code
63    """
64    name,data = out_data.items()[0]
65    iname,idata = inp_data.items()[0]
66    basename = idata.metadata.base_name
67    title = param_dict.get( 'title', 'Lped Subset' )
68    title = title.encode() # make str - unicode is evil here
69    killme = string.punctuation + string.whitespace
70    trantab = string.maketrans(killme,'_'*len(killme))
71    title = title.translate(trantab)
72    info = '%s filtered by rgPedSub.py at %s' % (title,timenow())
73    data.file_name = data.file_name
74    data.metadata.base_name = basename
75    data.name = '%s.lped' % title
76    data.info = info
77    app.model.context.flush()
78
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。