Skip to content

Commit a0a26aa

Browse files
committed
fix a bug with --refine-aln
1 parent c5a8187 commit a0a26aa

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/assign_hap.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1410,6 +1410,11 @@ int phased_snv_is_somatic(const call_var_opt_t *opt, bam_chunk_t *chunk, int var
14101410
}
14111411

14121412
if (aux_info->hap_alt_dp < opt->min_somatic_alt_dp) return 0;
1413+
// for ONT, require at least 1 alt read from both strands
1414+
if (opt->is_ont) {
1415+
if (aux_info->hap_alt_for_cov == 0) return 0;
1416+
if (aux_info->hap_alt_rev_cov == 0) return 0;
1417+
}
14131418
if (aux_info->min_dis_to_var < opt->min_somatic_dis_to_var) return 0;
14141419
// if (median_int(aux_info->alt_quals, aux_info->hap_alt_dp) < 27) return 0;
14151420
if (median_int(aux_info->alt_quals, aux_info->hap_alt_dp) < chunk->median_qual) return 0;
@@ -1437,6 +1442,11 @@ int no_phase_snv_is_somatic(const call_var_opt_t *opt, bam_chunk_t *chunk, int v
14371442
}
14381443

14391444
if (aux_info->hap_alt_dp < opt->min_somatic_alt_dp) return 0;
1445+
// for ONT, require at least 1 alt read from both strands
1446+
if (opt->is_ont) {
1447+
if (aux_info->hap_alt_for_cov == 0) return 0;
1448+
if (aux_info->hap_alt_rev_cov == 0) return 0;
1449+
}
14401450
if (aux_info->min_dis_to_var < opt->min_somatic_dis_to_var) return 0;
14411451
if (median_int(aux_info->alt_quals, aux_info->hap_alt_dp) < chunk->third_quar_qual) return 0;
14421452
if (median_int(aux_info->win_low_qual, aux_info->hap_alt_dp) < chunk->median_qual) return 0;

src/bam_utils.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ struct call_var_io_aux_t;
9898
// static inline int double_check_digar(digar_t *digar) {
9999
static inline int double_check_digar(digar1_t *digars, int n_digar) {
100100
if (n_digar == 0) return 0;
101-
for (int i = n_digar-2; i > 0; --i) {
101+
for (int i = n_digar-1; i > 0; --i) {
102102
int qi, last_i = i-1; int last_qi = digars[last_i].qi;
103103
if (digars[last_i].type == BAM_CEQUAL ||
104104
digars[last_i].type == BAM_CMATCH ||

0 commit comments

Comments
 (0)