Mercurial > repos > xuebing > sharplabtool
comparison tools/rgenetics/rgGTOOL.py @ 0:9071e359b9a3
Uploaded
author | xuebing |
---|---|
date | Fri, 09 Mar 2012 19:37:19 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:9071e359b9a3 |
---|---|
1 #!/usr/local/bin/python | |
2 # hack to run and process a linkage format file into | |
3 # the format used by Marchini's SNPTEST imputed case control association | |
4 # expects args as | |
5 # rgGTOOL.py $i $o $discrete $logf $outdir | |
6 # ross lazarus | |
7 | |
8 import sys,math,shutil,subprocess,os,time | |
9 from os.path import abspath | |
10 imagedir = '/static/rg' # if needed for images | |
11 myversion = 'V000.1 August 2007' | |
12 | |
13 def timenow(): | |
14 """return current time as a string | |
15 """ | |
16 return time.strftime('%d/%m/%Y %H:%M:%S', time.localtime(time.time())) | |
17 | |
18 | |
19 | |
20 if __name__ == "__main__": | |
21 if len(sys.argv) < 6: | |
22 s = 'rgGTOOL.py needs 5 params - got %s \n' % (sys.argv) | |
23 sys.stderr.write(s) # print >>,s would probably also work? | |
24 sys.exit(0) | |
25 print 'Rgenetics %s http://rgenetics.org SNPTEST Tools, rgGTOOL.py starting at %s' % (myversion,timenow()) | |
26 pname = sys.argv[1] | |
27 lpedname = pname.split('.ped')[0] # get file name part | |
28 outname = sys.argv[2] | |
29 discrete = sys.argv[3] | |
30 logf = sys.argv[4] | |
31 outdir = sys.argv[5] | |
32 cdir = os.getcwd() | |
33 me = sys.argv[0] | |
34 mypath = abspath(os.path.join(cdir,me)) # get abs path to this python script | |
35 shpath = abspath(os.path.sep.join(mypath.split(os.path.sep)[:-1])) | |
36 alogf = abspath(os.path.join(cdir,logf)) # absolute paths | |
37 apedf = abspath(os.path.join(cdir,'%s.ped' % lpedname)) # absolute paths | |
38 amapf = abspath(os.path.join(cdir,'%s.map' % lpedname)) # absolute paths | |
39 outg = abspath(os.path.join(outdir,'%s.gen' % outname)) # absolute paths | |
40 outs = abspath(os.path.join(outdir,'%s.sample' % outname)) # absolute paths | |
41 workdir = abspath(os.path.sep.join(mypath.split(os.path.sep)[:-1])) # trim end off './database/files/foo.dat' | |
42 os.chdir(workdir) | |
43 tlogname = '%s.logtemp' % outname | |
44 sto = file(tlogname,'w') | |
45 sto.write('rgGTOOL.py: called with %s\n' % (sys.argv)) | |
46 exme = 'gtool' | |
47 vcl = [exme,'-P','--ped',apedf,'--map',amapf,'--discrete_phenotype',discrete,'--og',outg,'--os',outs] | |
48 #'/usr/local/bin/plink','/usr/local/bin/plink',pc1,pc2,pc3) | |
49 #os.spawnv(os.P_WAIT,plink,vcl) | |
50 p=subprocess.Popen(' '.join(vcl),shell=True,stdout=sto) | |
51 retval = p.wait() | |
52 sto.write('rgGTOOL.py after calling %s: vcl=%s\n' % (exme,vcl)) | |
53 sto.close() | |
54 shutil.move(tlogname,alogf) | |
55 os.chdir(cdir) | |
56 | |
57 | |
58 |