annotate test-data/util/shrink_tabix.py @ 3:2c68e29c3527 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit f7bdf08922aaf4119aefe7041e754a69cf64aebd
author iuc
date Wed, 13 Jul 2022 15:34:53 +0000
parents 3123ce7acd0e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
1 from __future__ import print_function
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
2
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
3 import argparse
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
4
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
5 import pysam
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
6
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
7
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
8 def main(infile, ofile, region):
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
9 print(infile, '->', ofile)
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
10 with pysam.Tabixfile(infile) as i:
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
11 fformat = i.format.lower()
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
12 if fformat == 'sam':
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
13 fformat = 'bed'
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
14 if ofile[-3:] == '.gz':
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
15 ofile = ofile[:-3]
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
16 with open(ofile, 'w') as o:
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
17 try:
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
18 region_it = i.fetch(region=region)
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
19 except ValueError:
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
20 region_it = i.fetch(region='chr' + region)
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
21 for line in i.header:
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
22 o.write(line + '\n')
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
23 for line in region_it:
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
24 o.write(str(line) + '\n')
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
25 pysam.tabix_index(ofile, preset=fformat, force=True)
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
26
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
27
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
28 if __name__ == '__main__':
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
29 p = argparse.ArgumentParser()
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
30 p.add_argument('infile')
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
31 p.add_argument(
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
32 '-r', '--region',
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
33 required=True,
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
34 help='the region of the input file to rewrite'
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
35 )
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
36 p.add_argument(
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
37 '-o', '--ofile',
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
38 required=True,
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
39 help="the name of the output file"
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
40 )
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
41 args = vars(p.parse_args())
3123ce7acd0e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gemini commit 62ed732cba355e695181924a8ed4cce49ca21c59
iuc
parents:
diff changeset
42 main(**args)