@@ -13,6 +13,7 @@ def run_intersect():
13
13
args = parse_args ()
14
14
15
15
# Process & sort reference variants
16
+ logger .info ("Reading & sorting REFERENCE variants: {}" .format (args .reference ))
16
17
with xopen ('reference_variants.txt' , 'wt' ) as outf :
17
18
outf .write ('CHR:POS:A0:A1\t ID_REF\t REF_REF\t IS_INDEL\t STRANDAMB\t IS_MA_REF\n ' )
18
19
ref_heap = []
@@ -31,6 +32,7 @@ def run_intersect():
31
32
heapq .heappush (ref_heap , ([key , v ['ID' ], v ['REF' ]],[IS_INDEL , STRANDAMB , IS_MA_REF ]))
32
33
33
34
# Output the sorted reference variants
35
+ logger .info ("Outputting REFERENCE variants -> reference_variants.txt" )
34
36
n_ref = len (ref_heap )
35
37
for i in range (n_ref ):
36
38
popped = heapq .heappop (ref_heap )
@@ -43,6 +45,7 @@ def run_intersect():
43
45
outf .write ('CHR:POS:A0:A1\t ID_TARGET\t REF_TARGET\t IS_MA_TARGET\t ALT_FREQ\t F_MISS_DOSAGE\n ' )
44
46
target_heap = []
45
47
for path in args .target :
48
+ logger .info ("Reading & sorting TARGET variants: {}" .format (path ))
46
49
pvar = read_var_general (path , chrom = None ) # essential not to filter if it is target (messes up common line indexing)
47
50
48
51
loc_afreq = path .replace ('.pvar.zst' , '.afreq.gz' )
@@ -68,13 +71,15 @@ def run_intersect():
68
71
heapq .heappush (target_heap , ([key , v ['ID' ], v ['REF' ]], [IS_MA_TARGET , ALT_FREQS [i ],F_MISS_DOSAGE ]))
69
72
70
73
# Output the sorted reference variants
74
+ logger .info ("Outputting TARGET variants -> target_variants.txt" )
71
75
n_target = len (target_heap )
72
76
for i in range (n_target ):
73
77
popped = heapq .heappop (target_heap )
74
78
outf .write ('\t ' .join ([str (x ) for x in popped [0 ] + popped [1 ]]) + '\n ' )
75
79
del target_heap
76
80
77
81
# Merge matched variants on sorted files
82
+ logger .info ("Joining & outputting matched variants -> matched_variants.txt" )
78
83
n_matched = 0
79
84
with open ('matched_variants.txt' , 'w' ) as csvfile :
80
85
for vmatch in sorted_join_variants ('reference_variants.txt' , 'target_variants.txt' ):
@@ -86,7 +91,8 @@ def run_intersect():
86
91
writer .writerow (vmatch )
87
92
88
93
# Output counts
89
- with open ('intersect_counts_${}.txt' .format (chrom ), 'w' ) as outf :
94
+ logger .info ("Outputting variant counts -> intersect_counts_$.txt" )
95
+ with open ('intersect_counts_{}.txt' .format (chrom ), 'w' ) as outf :
90
96
outf .write ('\n ' .join (map (str , [n_target , n_ref , n_matched ])))
91
97
92
98
0 commit comments