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
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- rust
- Área
- bioinformatics, cli
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Rust
- Estrellas
- 274
- Forks
- 33
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de nanoporetech/modkit
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
nanoporetech/modkit#520 · 2 comentarios ·
-
Samtools code for modkit repairAbiertodocumentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
nanoporetech/modkit#336 · 1 comentario ·
-
modkit probability thresholdAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
nanoporetech/modkit#723 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 66/100
nanoporetech/modkit#721 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
nanoporetech/modkit#719 ·
Todos los issues de nanoporetech/modkit
Issues similares
-
`categorize_command` has no `uv` arm, so every `rtk uv …` row counts as `other` in the ecosystem mixAbiertoarea:api bug good first issue priority:low
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
rtk-ai/rtk#4316 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 92/100
Los mantenedores suelen responder en 1 día
-
area/cli kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
good first issue open-endedness: low type: new feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100