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 |
