ngsfilter: now checking primer length (fixes #75)
This commit is contained in:
@ -172,6 +172,13 @@ cdef read_info_view(info_view, max_errors=2, verbose=False, not_aligned=False):
|
|||||||
primer_list = []
|
primer_list = []
|
||||||
i=0
|
i=0
|
||||||
for p in info_view:
|
for p in info_view:
|
||||||
|
|
||||||
|
# Check primer length: should not be longer than 32, the max allowed by the apat lib
|
||||||
|
if len(p[b'forward_primer']) > 32:
|
||||||
|
raise RollbackException("Error: primers can not be longer than 32bp, rollbacking views")
|
||||||
|
if len(p[b'reverse_primer']) > 32:
|
||||||
|
raise RollbackException("Error: primers can not be longer than 32bp, rollbacking views")
|
||||||
|
|
||||||
forward=Primer(p[b'forward_primer'],
|
forward=Primer(p[b'forward_primer'],
|
||||||
len(p[b'forward_tag']) if (b'forward_tag' in p and p[b'forward_tag']!=None) else None,
|
len(p[b'forward_tag']) if (b'forward_tag' in p and p[b'forward_tag']!=None) else None,
|
||||||
True,
|
True,
|
||||||
@ -594,7 +601,13 @@ def run(config):
|
|||||||
pb = ProgressBar(entries_len, config, seconde=5)
|
pb = ProgressBar(entries_len, config, seconde=5)
|
||||||
|
|
||||||
# Check and store primers and tags
|
# Check and store primers and tags
|
||||||
infos, primer_list = read_info_view(info_view, max_errors=config['ngsfilter']['error'], verbose=False, not_aligned=not_aligned) # TODO obi verbose option
|
try:
|
||||||
|
infos, primer_list = read_info_view(info_view, max_errors=config['ngsfilter']['error'], verbose=False, not_aligned=not_aligned) # TODO obi verbose option
|
||||||
|
except RollbackException, e:
|
||||||
|
if unidentified is not None:
|
||||||
|
raise RollbackException("obi ngsfilter error, rollbacking views: "+str(e), o_view, unidentified)
|
||||||
|
else:
|
||||||
|
raise RollbackException("obi ngsfilter error, rollbacking view: "+str(e), o_view)
|
||||||
|
|
||||||
aligner = Primer_search(primer_list, config['ngsfilter']['error'])
|
aligner = Primer_search(primer_list, config['ngsfilter']['error'])
|
||||||
|
|
||||||
@ -652,11 +665,11 @@ def run(config):
|
|||||||
#print("\n\nOutput view:\n````````````", file=sys.stderr)
|
#print("\n\nOutput view:\n````````````", file=sys.stderr)
|
||||||
#print(repr(o_view), file=sys.stderr)
|
#print(repr(o_view), file=sys.stderr)
|
||||||
|
|
||||||
input[0].close()
|
input[0].close(force=True)
|
||||||
output[0].close()
|
output[0].close(force=True)
|
||||||
info_input[0].close()
|
info_input[0].close(force=True)
|
||||||
if unidentified is not None:
|
if unidentified is not None:
|
||||||
unidentified_input[0].close()
|
unidentified_input[0].close(force=True)
|
||||||
aligner.free()
|
aligner.free()
|
||||||
|
|
||||||
logger("info", "Done.")
|
logger("info", "Done.")
|
||||||
|
Reference in New Issue
Block a user