Mercurial > repos > iuc > gemini_stats
annotate test-data/util/shrink_simple_tab.py @ 4:cdd90678004a draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
| author | iuc | 
|---|---|
| date | Fri, 14 Dec 2018 12:47:19 -0500 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 
4
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
1 from __future__ import print_function | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
2 | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
3 import argparse | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
4 from functools import partial | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
5 | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
6 | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
7 def keep_line(line, pos_cols, region): | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
8 fields = line.rstrip().split(b'\t') | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
9 if fields[pos_cols[0]] == region[0]: # same chromosome | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
10 if ( | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
11 region[1] < int(fields[pos_cols[1]]) < region[2] | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
12 ) or ( | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
13 region[1] < int(fields[pos_cols[2]]) < region[2] | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
14 ): | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
15 return True | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
16 | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
17 | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
18 def main(infile, ofile, num_header_lines): | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
19 print(infile, '->', ofile) | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
20 with open(infile, 'rb') as i: | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
21 with open(ofile, 'wb') as o: | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
22 # copy header lines | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
23 for c in range(num_header_lines): | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
24 o.write(next(i)) | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
25 for line in i: | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
26 if keep_line(line): | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
27 o.write(line) | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
28 | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
29 | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
30 if __name__ == '__main__': | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
31 p = argparse.ArgumentParser() | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
32 p.add_argument('infile') | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
33 p.add_argument( | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
34 '-r', '--region', | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
35 required=True, | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
36 help='the region of the input file to rewrite' | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
37 ) | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
38 p.add_argument( | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
39 '-o', '--ofile', | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
40 required=True, | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
41 help="the name of the output file" | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
42 ) | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
43 p.add_argument( | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
44 '-c', '--cols', | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
45 nargs=3, type=int, required=True, | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
46 help="the columns of the input file specifying chrom, start and stop, " | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
47 "respectively" | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
48 ) | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
49 p.add_argument( | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
50 '-n', '--num-header-lines', | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
51 type=int, default=0, | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
52 help='the number of header lines present in the input; These will ' | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
53 'always be copied over to the new file.' | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
54 ) | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
55 args = vars(p.parse_args()) | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
56 | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
57 chrom, reg = args['region'].split(':') | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
58 region = [chrom.encode()] + [int(x) for x in reg.split('-')] | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
59 keep_line = partial(keep_line, pos_cols=args['cols'], region=region) | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
60 | 
| 
 
cdd90678004a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 283362494058ed64143b1f27afb447b8a1cb4313
 
iuc 
parents:  
diff
changeset
 | 
61 main(args['infile'], args['ofile'], args['num_header_lines']) | 
