5
|
1 #!/usr/bin/env python
|
|
2 import os
|
|
3 import sys
|
|
4 import subprocess
|
|
5
|
|
6 DATASETS = [
|
|
7 'artificial',
|
|
8 'artificial-samples',
|
|
9 'artificial-nofilt',
|
|
10 'real',
|
|
11 'real-mit',
|
|
12 'real-mit-s',
|
|
13 'real-nofilt',
|
|
14 ]
|
|
15 IN_EXT = '.vcf.in'
|
|
16 OUT_EXT = '.csv.out'
|
|
17 ARGS_KEY = '##comment="ARGS='
|
|
18
|
|
19 def main():
|
|
20
|
|
21 test_dir = os.path.dirname(os.path.relpath(sys.argv[0]))
|
|
22 if test_dir:
|
|
23 test_dir += os.sep
|
|
24
|
|
25 for dataset in DATASETS:
|
|
26 infile = test_dir+dataset+IN_EXT
|
|
27 outfile = test_dir+dataset+OUT_EXT
|
|
28
|
|
29 if not os.path.exists(infile):
|
|
30 sys.stderr.write("Error: file not found: "+infile+"\n")
|
|
31 continue
|
|
32 if not os.path.exists(outfile):
|
|
33 sys.stderr.write("Error: file not found: "+outfile+"\n")
|
|
34 continue
|
|
35
|
|
36 options = read_options(infile)
|
|
37 script_cmd = 'allele-counts.py '+options+' -i '+infile
|
|
38 bash_cmd = 'diff '+outfile+' <('+script_cmd+')'
|
|
39 # print infile+":"
|
|
40 print script_cmd
|
|
41 subprocess.call(['bash', '-c', bash_cmd])
|
|
42
|
|
43
|
|
44 def read_options(infile):
|
|
45 with open(infile, 'r') as infilehandle:
|
|
46 for line in infilehandle:
|
|
47 line.strip()
|
|
48 if ARGS_KEY == line[:len(ARGS_KEY)]:
|
|
49 return line[len(ARGS_KEY):-2]
|
|
50 return ''
|
|
51
|
|
52
|
|
53 if __name__ == '__main__':
|
|
54 main() |