annotate ivar_variants_to_vcf.py @ 7:d1459d85ff18 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 80ad6146e8852fb04fbdbe7b14ab120eee605e3a"
author iuc
date Fri, 11 Jun 2021 15:44:02 +0000
parents 3bc2ef3d4a17
children 17f911830a8c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
1 #!/usr/bin/env python
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
2 import argparse
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
3 import errno
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
4 import os
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
5 import re
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
6 import sys
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
7
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
8
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
9 def parse_args(args=None):
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
10 Description = "Convert iVar variants tsv file to vcf format."
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
11 Epilog = """Example usage: python ivar_variants_to_vcf.py <FILE_IN> <FILE_OUT>"""
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
12
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
13 parser = argparse.ArgumentParser(description=Description, epilog=Epilog)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
14 parser.add_argument("FILE_IN", help="Input tsv file.")
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
15 parser.add_argument("FILE_OUT", help="Full path to output vcf file.")
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
16 parser.add_argument(
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
17 "-po",
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
18 "--pass_only",
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
19 dest="PASS_ONLY",
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
20 help="Only output variants that PASS all filters.",
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
21 action="store_true",
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
22 )
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
23
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
24 return parser.parse_args(args)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
25
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
26
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
27 def make_dir(path):
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
28 if not len(path) == 0:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
29 try:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
30 os.makedirs(path)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
31 except OSError as exception:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
32 if exception.errno != errno.EEXIST:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
33 raise
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
34
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
35
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
36 def info_line(info_keys, kv):
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
37 info_strings = []
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
38 for key in info_keys:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
39 if key not in kv:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
40 raise KeyError(
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
41 'Expected key {} missing from INFO field key value pairs'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
42 .format(key)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
43 )
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
44 if kv[key] is False:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
45 # a FLAG element, which should not be set
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
46 continue
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
47 if kv[key] is True:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
48 # a FLAG element => write the key only
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
49 info_strings.append(key)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
50 else:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
51 info_strings.append('{}={}'.format(key, kv[key]))
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
52 return ';'.join(info_strings)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
53
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
54
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
55 def ivar_variants_to_vcf(FileIn, FileOut, passOnly=False):
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
56 filename = os.path.splitext(FileIn)[0]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
57 header = (
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
58 "##fileformat=VCFv4.2\n"
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
59 "##source=iVar\n"
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
60 '##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">\n'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
61 '##INFO=<ID=REF_DP,Number=1,Type=Integer,Description="Depth of reference base">\n'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
62 '##INFO=<ID=REF_RV,Number=1,Type=Integer,Description="Depth of reference base on reverse reads">\n'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
63 '##INFO=<ID=REF_QUAL,Number=1,Type=Integer,Description="Mean quality of reference base">\n'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
64 '##INFO=<ID=ALT_DP,Number=1,Type=Integer,Description="Depth of alternate base">\n'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
65 '##INFO=<ID=ALT_RV,Number=1,Type=Integer,Description="Deapth of alternate base on reverse reads">\n'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
66 '##INFO=<ID=ALT_QUAL,Number=1,Type=Integer,Description="Mean quality of alternate base">\n'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
67 '##INFO=<ID=AF,Number=1,Type=Float,Description="Frequency of alternate base">\n'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
68 '##INFO=<ID=INDEL,Number=0,Type=Flag,Description="Indicates that the variant is an INDEL.">\n'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
69 '##FILTER=<ID=PASS,Description="Result of p-value <= 0.05">\n'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
70 '##FILTER=<ID=FAIL,Description="Result of p-value > 0.05">\n'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
71 )
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
72 info_keys = [
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
73 re.match(r'##INFO=<ID=([^,]+),', line).group(1)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
74 for line in header.splitlines()
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
75 if line.startswith('##INFO=')
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
76 ]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
77 header += (
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
78 "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n"
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
79 )
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
80
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
81 vars_seen = set()
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
82 varCountDict = {"SNP": 0, "INS": 0, "DEL": 0}
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
83 OutDir = os.path.dirname(FileOut)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
84 make_dir(OutDir)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
85 with open(FileIn) as f, open(FileOut, "w") as fout:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
86 fout.write(header)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
87 for line in f:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
88 if line.startswith("REGION"):
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
89 continue
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
90
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
91 line = line.split("\t")
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
92 CHROM = line[0]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
93 POS = line[1]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
94 ID = "."
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
95 REF = line[2]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
96 ALT = line[3]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
97 if ALT[0] == "+":
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
98 ALT = REF + ALT[1:]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
99 var_type = "INS"
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
100 elif ALT[0] == "-":
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
101 REF += ALT[1:]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
102 ALT = line[2]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
103 var_type = "DEL"
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
104 else:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
105 var_type = "SNP"
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
106 QUAL = "."
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
107 pass_test = line[13]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
108 if pass_test == "TRUE":
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
109 FILTER = "PASS"
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
110 else:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
111 FILTER = "FAIL"
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
112
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
113 if (passOnly and FILTER != "PASS"):
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
114 continue
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
115 var = (CHROM, POS, REF, ALT)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
116 if var in vars_seen:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
117 continue
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
118
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
119 info_elements = {
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
120 'DP': line[11],
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
121 'REF_DP': line[4],
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
122 'REF_RV': line[5],
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
123 'REF_QUAL': line[6],
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
124 'ALT_DP': line[7],
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
125 'ALT_RV': line[8],
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
126 'ALT_QUAL': line[9],
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
127 'AF': line[10]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
128 }
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
129 if var_type in ['INS', 'DEL']:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
130 # add INDEL FLAG
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
131 info_elements['INDEL'] = True
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
132 else:
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
133 info_elements['INDEL'] = False
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
134 INFO = info_line(info_keys, info_elements)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
135
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
136 vars_seen.add(var)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
137 varCountDict[var_type] += 1
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
138 fout.write(
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
139 '\t'.join(
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
140 [CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
141 ) + '\n'
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
142 )
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
143
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
144 # Print variant counts to pass to MultiQC
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
145 varCountList = [(k, str(v)) for k, v in sorted(varCountDict.items())]
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
146 print("\t".join(["sample"] + [x[0] for x in varCountList]))
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
147 print("\t".join([filename] + [x[1] for x in varCountList]))
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
148
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
149
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
150 def main(args=None):
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
151 args = parse_args(args)
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
152 ivar_variants_to_vcf(
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
153 args.FILE_IN, args.FILE_OUT, args.PASS_ONLY
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
154 )
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
155
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
156
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
157 if __name__ == "__main__":
3bc2ef3d4a17 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 847ec10cd36ea4f3cd4c257d5742f0fb401e364e"
iuc
parents:
diff changeset
158 sys.exit(main())