@@ -84,6 +84,15 @@ def TCSwriter(bamfile_name, fasta_d, minqual, mincov):
8484 elif sorted ([int (x ) for x in covs ])[- 2 ] <= (ceil (tcov * 0.2 )):
8585 keepline = False
8686
87+ # Discard low quality variants:
88+ elif sorted (quals )[- 2 ] < minqual :
89+ keepline = False
90+
91+ #Discard positions with excess gaps:
92+ elif covs [- 1 ]// 2 >= tcov :
93+ keepline = False
94+
95+
8796 # Define reference base (AKA "B") and qual (AKA "Q")
8897
8998 refbase = fasta_d [refs ][position ]
@@ -124,6 +133,8 @@ def TCSwriter(bamfile_name, fasta_d, minqual, mincov):
124133 # Qualities
125134 TCS_line += " | "
126135 for q in quals :
136+ if q == 0 :
137+ q = "--"
127138 TCS_line += " " * (2 - len (str (q )))
128139 TCS_line += str (q ) + " "
129140 # Discard all tags (not necessary for 4Pipe4 anyway)
@@ -145,7 +156,7 @@ def covs_and_quals(bases):
145156 if len (bases [i ]) > 0 :
146157 quals .append (QualityCalc (bases [i ]))
147158 else :
148- quals .append ("--" )
159+ quals .append (0 )
149160
150161 return covs , quals
151162
@@ -177,11 +188,11 @@ def QualityCalc(quals):
177188 return qual
178189
179190
180- def RunModule (bamfile_name , padded_fasta_name ):
191+ def RunModule (bamfile_name , padded_fasta_name , minqual , mincov ):
181192 """Run the module."""
182- TCSwriter (bamfile_name , FASTA_parser (padded_fasta_name ))
193+ TCSwriter (bamfile_name , FASTA_parser (padded_fasta_name ), minqual , mincov )
183194
184195if __name__ == "__main__" :
185- # Usage: python3 BAM_to_TCS.py file.bam file_out.padded.fasta
196+ # Usage: python3 BAM_to_TCS.py file.bam file_out.padded.fasta minqual mincov
186197 from sys import argv
187- RunModule (argv [1 ], argv [2 ])
198+ RunModule (argv [1 ], argv [2 ], argv [ 3 ], argv [ 4 ] )
0 commit comments