Mercurial > repos > nick > minor_variant_boxplot
comparison hetbox.py @ 4:dfa2e75da6aa draft
fixed script typo
| author | nick |
|---|---|
| date | Thu, 30 May 2013 15:41:27 -0400 |
| parents | 3a1ce69571e5 |
| children | 99cda2ff12b8 |
comparison
equal
deleted
inserted
replaced
| 3:e9c34ef993d6 | 4:dfa2e75da6aa |
|---|---|
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # New in this version: | 2 # New in this version: |
| 3 # - handle commented-out header lines | 3 # - option to generate report is triggered simply by including report filename |
| 4 # - did everything through the Rpy2 interface instead of inline R code | 4 # as third argument |
| 5 | 5 |
| 6 import os,sys,numpy | 6 import os,sys,numpy |
| 7 from rpy2.robjects import Formula | 7 from rpy2.robjects import Formula |
| 8 from rpy2.robjects.packages import importr | 8 from rpy2.robjects.packages import importr |
| 9 from rpy2 import robjects | 9 from rpy2 import robjects |
| 11 def fail(message): | 11 def fail(message): |
| 12 sys.stderr.write(message+'\n') | 12 sys.stderr.write(message+'\n') |
| 13 sys.exit(1) | 13 sys.exit(1) |
| 14 | 14 |
| 15 args = sys.argv[1:] | 15 args = sys.argv[1:] |
| 16 if '-r' in args: | |
| 17 make_report = True | |
| 18 else: | |
| 19 make_report = False | |
| 20 if len(args) >= 1: | 16 if len(args) >= 1: |
| 21 infile = args[0] | 17 infile = args[0] |
| 22 else: | 18 else: |
| 23 fail('Error: No input filename provided (as argument 1).') | 19 fail('Error: No input filename provided (as argument 1).') |
| 24 if len(args) >= 2: | 20 if len(args) >= 2: |
| 25 outfile = args[1] | 21 outfile = args[1] |
| 26 else: | 22 else: |
| 27 fail('Error: No output filename provided (as argument 2).') | 23 fail('Error: No output filename provided (as argument 2).') |
| 28 if len(args) >= 3: | 24 if len(args) >= 3: |
| 29 report = args[2] | 25 report = args[2] |
| 30 elif make_report: | 26 else: |
| 31 fail('Error: No output report filename provided (as argument 3).') | 27 report = '' |
| 32 | 28 |
| 33 # Check input file | 29 # Check input file |
| 34 if not os.path.exists(infile): | 30 if not os.path.exists(infile): |
| 35 fail('Error: Input file '+infile+' could not be found.') | 31 fail('Error: Input file '+infile+' could not be found.') |
| 36 with open(infile, 'r') as lines: | 32 with open(infile, 'r') as lines: |
| 87 graphlabels = base.names(table) | 83 graphlabels = base.names(table) |
| 88 kwargs3 = {'pos':"0", 'las':"2", 'cex.axis':"1"} | 84 kwargs3 = {'pos':"0", 'las':"2", 'cex.axis':"1"} |
| 89 graphics.axis(1, at=range(1, len(graphlabels)+1, 1), labels=graphlabels, **kwargs3) | 85 graphics.axis(1, at=range(1, len(graphlabels)+1, 1), labels=graphlabels, **kwargs3) |
| 90 grdevices.dev_off() | 86 grdevices.dev_off() |
| 91 | 87 |
| 92 if not make_report: | 88 if not report: |
| 93 sys.exit(0) | 89 sys.exit(0) |
| 94 | 90 |
| 95 | 91 |
| 96 #################################### | 92 #################################### |
| 97 # GENERATE REPORT | 93 # GENERATE REPORT |
| 104 # MAD <= 2.0 fail | 100 # MAD <= 2.0 fail |
| 105 # MAD > 2.0 pass | 101 # MAD > 2.0 pass |
| 106 ################################### | 102 ################################### |
| 107 | 103 |
| 108 SAMPLES=[] | 104 SAMPLES=[] |
| 109 for i in range(len(tab)): | 105 for i in range(len(table)): |
| 110 SAMPLES.append(base.names(tab)[i]) | 106 SAMPLES.append(base.names(table)[i]) |
| 111 | 107 |
| 112 def boxstats(data,sample): | 108 def boxstats(data,sample): |
| 113 VALUES = [100*float(x.strip().split('\t')[11]) for x in list(open(data)) if x.strip().split('\t')[0]==sample] | 109 VALUES = [100*float(x.strip().split('\t')[11]) for x in list(open(data)) if x.strip().split('\t')[0]==sample] |
| 114 NoHET = len(VALUES) | 110 NoHET = len(VALUES) |
| 115 MEDIAN = numpy.median(VALUES) | 111 MEDIAN = numpy.median(VALUES) |
