Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

nonsense mutations from DBS across two codons misclassified as nonsynonymous?

Aberta
#84 0 comentários 0 reações 0 responsáveis Ver no GitHub

@jmg421 já está trabalhando nisso.

Desde 30/6/2026.

  • #96 de @jmg421 — aberto

Avaliação

Dificuldade
1/5
Tempo estimado
Menos de uma hora
Facilidade para iniciantes
55/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
r
Domínio
bioinformatics

Direção de pesquisa

Comece em methods-predictCoding.R na linha 184 e reproduza a substituição de dibase relatada usando predictCoding com os exemplos da issue. Verifique como CONSEQUENCE é atribuído quando VARAA contém um stop junto com outro aminoácido; a tarefa estará concluída quando essas variantes forem classificadas como nonsense e o caso existente de stop em um único códon continuar correto.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Hi!
VariantAnnotation is a great package and I enjoy depending on it in my own package, thanks for that!

I'm looking at adding support for dibase substitutions, and seems there might be a little bug in the annotation there.

From

coding = VariantAnnotation::predictCoding(vcf, txdb, seqSource = fafile)

on a few hundred variants, I saw a few dibase variants that affected two amino acids, where one of them turned into stop, but CONSEQUENCE (incorrectly I think) classified it as a nonsynomous variant:

> coding[3,]
GRanges object with 1 range and 16 metadata columns:
      seqnames            ranges strand |            REF             ALT
         <Rle>         <IRanges>  <Rle> | <DNAStringSet> <CharacterList>
  [1]        1 27877576-27877577      - |             GG              AA
           QUAL      FILTER      varAllele    CDSLOC    PROTEINLOC   QUERYID
      <numeric> <character> <DNAStringSet> <IRanges> <IntegerList> <integer>
  [1]        40        PASS             TT 1050-1051       350,351        12
             TXID         CDSID      GENEID   CONSEQUENCE       REFCODON
      <character> <IntegerList> <character>      <factor> <DNAStringSet>
  [1]        4786   14376,14377       27245 nonsynonymous         CCCCAG
            VARCODON         REFAA         VARAA
      <DNAStringSet> <AAStringSet> <AAStringSet>
  [1]         CCTTAG            PQ            P*
  -------
  seqinfo: 93 sequences from an unspecified genome

While DBS that stayed in one codon were (correctly) annotated as nonsense.

> coding[coding$CONSEQUENCE=='nonsense',][1,]
GRanges object with 1 range and 16 metadata columns:
      seqnames              ranges strand |            REF             ALT
         <Rle>           <IRanges>  <Rle> | <DNAStringSet> <CharacterList>
  [1]        3 164739107-164739108      - |             AT              TA
           QUAL      FILTER      varAllele    CDSLOC    PROTEINLOC   QUERYID
      <numeric> <character> <DNAStringSet> <IRanges> <IntegerList> <integer>
  [1]        40        PASS             TA 3163-3164          1055        69
             TXID         CDSID      GENEID CONSEQUENCE       REFCODON
      <character> <IntegerList> <character>    <factor> <DNAStringSet>
  [1]       16983         52835        6476    nonsense            ATA
            VARCODON         REFAA         VARAA
      <DNAStringSet> <AAStringSet> <AAStringSet>
  [1]            TAA             I             *
  -------
  seqinfo: 93 sequences from an unspecified genome

Seems it's checking if VARAA is identical to "*", while it really should check if it contains "*", as that is enough to truncate the protein.
Line 184 of methods-predictCoding.R

    consequence[nonsynonymous & (as.character(varAA) %in% "*")] <- "nonsense" 

Possibly should be something along the lines of

    consequence[nonsynonymous & grepl("\\*", as.character(varAA))] <- "nonsense" 

I'm adding a quick fix for it in my code

coding = VariantAnnotation::predictCoding(vcf, txdb, seqSource = fafile)
coding$CONSEQUENCE[grepl("\\*", as.character(coding$VARAA))] = 'nonsense'

so no hurry for me.

Linguagem predominante
R
Estrelas
32
Forks
21
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de Bioconductor/VariantAnnotation

Todas as issues de Bioconductor/VariantAnnotation

Issues semelhantes

Mais issues de R

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.