Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions porechop/adapters.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ def __init__(self, name, start_sequence=None, end_sequence=None, both_ends_seque
self.start_sequence = both_ends_sequence
self.end_sequence = both_ends_sequence
self.best_start_score, self.best_end_score = 0.0, 0.0
self.sum_start_scores, self.sum_end_scores = 0.0, 0.0

def best_start_or_end_score(self):
return max(self.best_start_score, self.best_end_score)
Expand Down
2 changes: 2 additions & 0 deletions porechop/nanopore_read.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,11 +157,13 @@ def align_adapter_set(self, adapter_set, end_size, scoring_scheme_vals):
score, _, _, _ = align_adapter(read_seq_start, adapter_set.start_sequence[1],
scoring_scheme_vals)
adapter_set.best_start_score = max(adapter_set.best_start_score, score)
adapter_set.sum_start_scores += score
if adapter_set.end_sequence:
read_seq_end = self.seq[-end_size:]
score, _, _, _ = align_adapter(read_seq_end, adapter_set.end_sequence[1],
scoring_scheme_vals)
adapter_set.best_end_score = max(adapter_set.best_end_score, score)
adapter_set.sum_end_scores += score

def find_start_trim(self, adapters, end_size, extra_trim_size, end_threshold,
scoring_scheme_vals, min_trim_size, check_barcodes, forward_or_reverse):
Expand Down
12 changes: 6 additions & 6 deletions porechop/porechop.py
Original file line number Diff line number Diff line change
Expand Up @@ -338,13 +338,13 @@ def choose_barcoding_kit(adapter_sets, verbosity, print_dest):
for adapter_set in adapter_sets:
if 'barcode' in adapter_set.name.lower():
if '(forward)' in adapter_set.name.lower():
forward_start_or_end += adapter_set.best_start_or_end_score()
forward_start_and_end += adapter_set.best_start_score
forward_start_and_end += adapter_set.best_end_score
forward_start_or_end += max(adapter_set.sum_start_scores, adapter_set.sum_end_scores)
forward_start_and_end += adapter_set.sum_start_scores
forward_start_and_end += adapter_set.sum_end_scores
elif '(reverse)' in adapter_set.name.lower():
reverse_start_or_end += adapter_set.best_start_or_end_score()
reverse_start_and_end += adapter_set.best_start_score
reverse_start_and_end += adapter_set.best_end_score
reverse_start_or_end += max(adapter_set.sum_start_scores, adapter_set.sum_end_scores)
reverse_start_and_end += adapter_set.sum_start_scores
reverse_start_and_end += adapter_set.sum_end_scores

if forward_start_or_end == 0 and reverse_start_or_end == 0:
sys.exit('Error: no barcodes were found, so Porechop cannot perform barcode demultiplexing')
Expand Down