get_MNV

Anotación de variantes a nivel de codón

Un VCF enumera bases.
get_MNV lee codones.

Dos sustituciones en un mismo codón dan un aminoácido, no dos. get_MNV traduce cada codón entero, sitúa cada indel en su gen y, con un BAM o un CRAM, cuenta las lecturas que llevan los cambios juntos.

Entra
un VCF, un BCF o una tabla de iVar, un FASTA, un GFF o una tabla de genes y, si quieres, un BAM o un CRAM
Sale
un TSV, un VCF con ANN y un informe que se abre sin conexión
Figura 1

4 de 4 · El codón entero

example/G35894.var.snp.vcf

104941CT

104942CG

104944AG

Rv0095c, como lo lee el gen hebra negativa: las posiciones bajan

codón 91 · Val1 cambio

GCC Ala · una fila SNP

codón 92 · Gly2 cambios

104942 solaCGGArg

104941 solaGAGGlu

las dos, una moléculaCAGGln

codón 93 · Hissin cambios

  1. El VCF enumera tres sustituciones, un registro cada una, escritas sobre la hebra directa de la referencia.
  2. Agrupadas por codón. El gen va en la hebra negativa, así que C>T en 104941 es G>A en el gen. 104941 y 104942 comparten el codón 92; 104944 cae sola en el codón 91.
  3. Base a base, el codón 92 da Arg y Glu. Es lo que informa un anotador que lee base a base: el propio ANN de snpEff de la entrada dice p.Gly92Arg y p.Gly92Glu.
  4. El codón entero da Gln: el aminoácido que lleva la proteína cuando los dos cambios están en la misma molécula, y eso un BAM lo confirma lectura a lectura. get_MNV lo escribe como una fila SNP/MNV, p.Gly92Gln, con las dos lecturas sueltas al lado.
Rv0095c en la muestra de M. tuberculosis que trae get_MNV. Cada posición, base y aminoácido de arriba sale de ejecutarlo sobre example/G35894.var.snp.vcf.

Pruébalo: un codón, dos lecturas

Cambia cualquier base. Cada cambio se lee por separado, como lo lee un anotador base a base, y luego todos juntos, como lee el codón get_MNV.

El script que lo hace interactivo no se ha ejecutado. Aquí está el primer ejemplo, resuelto.

Leído comoCodónAminoácido
ReferenciaCGTArg
Posición 1 sola, C>TTGTCys missense
Posición 2 sola, G>CCCTPro missense
Las dos, como lo lee get_MNVTCTSer missense

Base a base, este codón da Cys y Pro. Leído entero da Ser, que no nombra ninguna de las dos.

Traducido con el código bacteriano (tabla 11), el que usa get_MNV por defecto; admite nueve tablas del NCBI. Es un codón dentro de un gen: el primer codón de un gen se lee, en cambio, como iniciador.

Qué hace con un VCF

Los pasos 1 a 3 no necesitan lecturas. Un BAM o un CRAM solo añade el paso 4, que convierte "estos dos cambios están en un codón" en "estos dos cambios están en una molécula".

  1. 1

    Descomponer

    El REF y el ALT de cada registro en los cambios que contienen: SNV, MNV, inserciones, deleciones, delins.

  2. 2

    Situar

    Cada cambio en su gen y su codón, desde un GFF o una tabla de genes, en cualquier hebra y entre exones.

  3. 3

    Traducir

    El codón entero, con uno de nueve códigos genéticos del NCBI, y cada indel contra la proteína.

  4. 4

    Contar

    Con lecturas: cuántas llevan cada cambio, en qué hebra, y si los cambios viajan juntos.

  5. 5

    Escribir

    Un TSV, un VCF con ANN, BCF si se pide y un informe que se abre sin conexión.

Cómo distingue get_MNV una molécula de dos · Indels y haplotipos locales

Instalación

Un solo binario, sin dependencias de C, en macOS, Linux y Windows. Una aplicación de escritorio hace lo mismo arrastrando y soltando.

Bioconda

conda install -c bioconda get_mnv

Desde el código fuente

git clone https://github.com/PathoGenOmics-Lab/get_MNV.git
cd get_MNV
cargo install --path .

Rust 1.91 o posterior.

Aplicación de escritorio

Versiones para macOS, Linux y Windows en la página de versiones, con un tutorial guiado.

No está firmada con un certificado de Apple: la primera vez, clic derecho sobre la aplicación y Abrir.

Comprueba lo que has descargado

Cada versión trae un fichero SHA256SUMS que cubre todos sus ficheros. Descárgalo junto al que quieras y compruébalos juntos; cada fichero que encuentra imprime OK.

sha256sum --ignore-missing -c SHA256SUMS

En macOS, shasum -a 256 --ignore-missing -c SHA256SUMS hace lo mismo.

Tu primera ejecución

El repositorio trae una muestra de M. tuberculosis: un VCF, su referencia y una tabla de genes. Desde un clon:

get_mnv \
  --vcf example/G35894.var.snp.vcf \
  --fasta example/MTB_ancestor.fas \
  --genes example/anot_genes.txt \
  --both --output-dir out \
  --report report.html
  • Entran 950 registros y salen 941 filas: 797 SNP, 10 codones SNP/MNV y 134 intergénicas
  • out/G35894.var.snp.MNV.tsv y out/G35894.var.snp.MNV.vcf
  • report.html, el informe de ejemplo

La misma ejecución, línea a línea · Recetas habituales · Todas las opciones

Qué obtienes

El codón 92 de Rv0095c de la figura 1, en cada una de las tres salidas.

TSV una fila por codón o indel

Positions
104941, 104942
AA Changes
Gly92Gln
SNP AA Changes
Gly92Glu, Gly92Arg
Variant Type
SNP/MNV
HGVS c.
c.[274G>C;275G>A]
DBS Class
CC>TG

VCF cada base, y el codón

104941  C   T   …AA=Gly92Glu…
104942  C   G   …AA=Gly92Arg…
104941  CC  TG  …AA=Gly92Gln;…
  ANN=TG|missense_variant|MODERATE|
  Rv0095c_Rv0095c|…|p.Gly92Gln|
  …|INFO_COMPOUND_ANNOTATION

ANN va en el formato de snpEff, así que lo lee bcftools +split-vep.

Informe un HTML, sin servidor

El informe de ejemplo: recuentos, consecuencias, espectros mutacionales y la tabla de variantes El informe de ejemplo: recuentos, consecuencias, espectros mutacionales y la tabla de variantes Abre el informe de ejemplo

Todas las columnas y claves INFO