Merge branch '21543-lightning-subdir'
[lightning.git] / cwl / preprocess / cgivar / fix_vcf.py
1 # Copyright (C) The Lightning Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5 #!/usr/bin/env python
6
7 import sys
8
9 def is_header(line):
10     """Check if a line is header."""
11
12     return line.startswith('#')
13
14 def has_END(line):
15     """Check if a line has the 'END=' tag."""
16
17     return 'END=' in line
18
19 # FIELD index
20 # CHROM 0, POS 1, REF 3, QUAL 5, INFO 7, FORMAT 8, sample 9
21
22 def fix_END(line):
23
24     all_fields = line.split('\t')
25     INFO = all_fields[7]
26     INFO_fields = INFO.split(';')
27     for i, INFO_field in enumerate(INFO_fields):
28         if INFO_field.split('=')[0] == 'END':
29             INFO_fields[i] = INFO_fields[i].replace('.', '')
30
31     all_fields[7] = ';'.join(INFO_fields)
32     line = '\t'.join(all_fields)
33
34     return line
35
36 if __name__ == '__main__':
37     vcf = sys.argv[1]
38     with open(vcf) as g:
39         for line in g:
40             if is_header(line):
41                 print line.strip()
42             elif has_END(line):
43                 print fix_END(line).strip()
44             else:
45                 print line.strip()