[2] | 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 | |
---|