Skip to content

Commit 75c2efb

Browse files
committed
Basic implementations done for dropping full TCS file.
1 parent 4e3c653 commit 75c2efb

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

BAM_to_TCS.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

184195
if __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

Comments
 (0)