Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Bug in modkit v0.6.4:"fail" column in "modkit extract calls" output may use MM tag when matching --filter-threshold, G-h and G-m are not recognized as C

Aperta
#717 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
rust

Direzione di ricerca

Start by reproducing the documented modkit extract calls command with the reverse-strand row described in the issue. Trace how --filter-threshold C:0.7 compares the canonical and modified primary bases when interpreting MM tags. Done means G-h and G-m calls are recognized as C and rows with call_prob below the C threshold have fail = true.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug troubleshooting

Command used:
modkit extract calls pure_duplex_mapped.bam duplex_read_mods.tsv.gz
--reference /path/to/GRCm39.primary_assembly.genome.fa
--mapped-only
--filter-threshold C:0.7
--mod-threshold m:0.8
--mod-threshold h:0.9
--bgzf
-t 18
--io-threads 4
--out-threads 4
--log modkit_extract_stats.log

According to the documented threshold logic (see "Threshold examples" in the modkit book, which uses this exact command as its worked example), a call with call_code = - (canonical) and call_prob = 0.36 should be flagged as failed, since 0.36 is below the specified --filter-threshold C:0.7.

However, in my output I'm seeing rows like this where fail = false despite call_prob being well below the threshold:

call_code = -
call_prob = 0.36
canonical_base = G
modified_primary_base = C
fail = false

The key detail is that this row comes from a read aligned to the negative strand. Because the BAM SEQ field is reverse-complemented for reverse-strand alignments, canonical_base (which reflects the literal SEQ-orientation base) shows G, while modified_primary_base (the semantically correct primary base carrying the modification, accounting for the MM tag's strand indicator) correctly shows C.

Lingua principale
Rust
Stelle
274
Fork
33
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di nanoporetech/modkit

Tutte le issue di nanoporetech/modkit

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.