PRÁCTICO – ANOTACIÓN DE GENOMA BACTERIANO GENÓMICA 2024¶
Introducción¶
Después de ensamblar el genoma, el próximo reto consiste en identificar los distintos componentes del genoma (regiones codificantes, secuencias repetidas, motivos, etc), proceso conocido como anotación. La anotación de genomas comprende dos etapas fundamentales: la anotación estructural (predicción de regiones codificantes) y la anotación funcional (asignación de información biológica a los genes previamente predichos). Los métodos para la anotación estructural en un genoma se dividen en dos categorías: métodos ab initio o de novo, y métodos basados en homología. Los métodos ab initio utilizan algoritmos estadísticos o de reconocimiento de patrones para determinar si la secuencia de interés es codificante o no, mediante la detección de patrones o motivos específicos en la secuencia. Por otro lado, los métodos basados en homología identifican zonas de alta similitud en bases de datos para reconocer las regiones codificantes. Sin embargo, estos métodos son menos exitosos en la identificación de nuevos genes y en organismos no modelo, ya que las bases de datos están sesgadas hacia los genes altamente expresados en los organismos más estudiados. Para la anotación funcional, también se emplean distintos métodos. La función de un gen se puede inferir mediante la búsqueda de secuencias homólogas en bases de datos, empleando algoritmos de alineamiento local, como BLAST. Esta asignación se realiza tomando como base la premisa de que genes con secuencias compartidas, también comparten su función. Otra metodología empleada es la búsqueda de motivos y dominios funcionales. Aunque un dominio funcional no permite asignar un nombre directamente al gen, sí puede dar una idea de la familia génica a la que pertenece el gen, o indicar el grupo de procesos en los que pueda estar involucrado.
La anotación de un genoma completo es el proceso basado en identificar características de interés en un conjunto de secuencias de ADN genómico y etiquetarlas con información útil. Como mínimo, esto debería incluir las coordenadas de las regiones codificantes predichas y sus supuestos productos, pero es conveniente ir un poco más allá de esto, hacia los ARN no codificantes, los péptidos señal, genes ARNr y ARNt, etc. Existen anotadores más poderosos, como Ensembl (Aken, B.L. et al. , 2016), para genomas ensamblados públicos de vertebrados. No es el objetivo de este práctico, nosotros nos vamos a centrar en las opciones que existen para genomas bacterianos. Existen varios servidores de anotación online:
- El NCBI provee de un servicio vía email, Prokaryotic Genomes Automatic Annotation Pipeline, dando una respuesta en cuestión de días.
- RAST es un servicio web para anotación de genomas de bacterias o arqueas teniendo resultados en un día (Aziz et al. , 2008).
Estas herramientas son valiosas, pero no son útiles cuando el rendimiento o la privacidad son críticos.
PROKKA es una herramienta de software para anotar rápidamente genomas bacterianos pequeños, virales y de arqueas, y producir archivos de salida que cumplan con los estándares básicos de anotación (Seemann, T. 2014). Es fácilmente instalable en cualquier sistema Unix. Un genoma bacteriano típico se puede anotar en ∼10 min en una computadora de escritorio de cuatro núcleos. Prokka se basa en herramientas de predicción externas para identificar las coordenadas de las características genómicas dentro de contigs/scaffolds (Tabla 1).
TABLA 1
Tool (Reference) | Feature predicted |
---|---|
Prodigal (Hyatt, 2010) | Coding Sequence (CDS) |
RNAmmer (Lagesen et al., 2007) | Ribosomal RNA Genes (rRNAs) |
Aragorn (Laslett and Canback, 2004) | Transfer RNA Genes (tRNAs) |
SignalP (Petersen et al., 2011) | Signal Leader Peptides |
Infernal (Kolbe and Eddy, 2011) | Non-coding RNAs (ncRNAs) |
Los genes que codifican para proteínas son anotados en dos etapas. Prodigal identifica las coordenadas de los genes candidatos, pero no describe el posible producto génico. La forma tradicional de predecir para qué codifica un gen es compararlo con una base de datos de secuencias conocidas, generalmente a nivel de secuencia de proteínas y transferir la anotación de la mejor coincidencia significativa. PROKKA utiliza este método, pero de manera jerárquica, comenzando con una base de datos confiable más pequeña, pasando a bases de datos de tamaño medio pero específicas de dominio y finalmente a modelos curados de familias de proteínas. Dentro de las bases de datos que incluye, se encuentran:
- UniProtKB/Swiss-Prot (Apweiler et al. , 2004) posee secuencias de proteínas reales o evidencia de transcriptos, que cubren >50% del core de genes en la mayoría de los genomas.
- Existe una opción que puede proporcionar el usuario con datasets curadas con alto nivel de fidelidad y será usada por el programa como primera fuente de anotación.
- RefSeq: NCBI Reference Sequence Database. Incluye un conjunto de secuencias de referencia bien anotadas que involucra información a nivel genómico, transcriptómico y proteómico.
- Una serie de bases de datos con modelos basados en HMM, que incluyen Pfam (Punta et al., 2012) y TIGRFAM (Haft et al., 2013). Esto se realiza utilizando hmmscan del paquete HMMER 3.1 (Eddy, 2011).
Si no se logran encontrar coincidencias, el programa etiqueta como ‘hypothetical protein’.
INSTALACIÓN
Bioconda
conda install -c conda-forge -c bioconda -c defaults prokka
Ubuntu
sudo apt-get install libdatetime-perl libxml-simple-perl libdigest-md5-perl git default-jre bioperl
sudo cpan Bio::Perl git clone https://github.com/tseemann/prokka.git
$HOME/prokka $HOME/prokka/bin/prokka --setupdb
PROKKA ya se encuentra instalada en Torito, ustedes NO van a tener que instalarlo.
CORRIDA
Activar el ambiente para correr PROKKA
conda activate /home/estudiantes/miniforge3/envs/PROKKA_env
Input
PROKKA espera secuencias genómicas de ADN previamente ensambladas en formato FASTA (contigs.fa/scaffolds.fa)
Este es el único parámetro obligatorio para que funcione el programa.
prokka contigs.fa
PROKKA genera 10 archivos de salida, por lo que es útil crear un directorio de salida. Además, se pueden confeccionar los nombres de los outputs. Por defecto el programa agrega PROKKA como sufijo para todos los archivos.
prokka --outdir anotacion_PROKKA --prefix Ecoli-k12 contigs.fa
Si contamos con un genoma de referencia de buena calidad y se desea garantizar que la denominación de genes sea coherente, se lo podemos agregar al programa. En este caso, el programa va a darle prioridad a ese archivo para hacer la anotación. Es muy útil cuando algunas especies usan terminología específica que a menudo se perderá si se basa directamente en la base de datos UniProtKB/Swiss-Prot predeterminada incluida en PROKKA. Si contamos con algún archivo Genbank o de proteínas (FASTA, .aa) que queremos usar como prioritario en la anotación, utilizamos la misma opción:
--proteins myfile.gbk
Se recomienda el uso de Genbank en lugar de FASTA, porque proporcionará anotaciones /gene y /EC_number que un archivo.fa típico no proporcionará, a menos que lo hayan formateado especialmente para PROKKA.
Desde su carpeta personal, corran:
prokka --outdir anotación-velvet-Ref --prefix Ecoli-k12-RefVelvet --proteins /media/Disco10/curso_genomica/estudiantes/2024/DATA/Ensamblado_DATA/E_coli_Reference_Genome/GCF_000005845.2_ASM584v2_protein.faa ../Assembly_velvet/contigs.fa
También deben realizar la anotación para los ensamblados con Canu:
prokka --outdir anotación-canuRaw-Ref --prefix Ecoli-k12canuRaw-Ref --proteins /media/Disco10/curso_genomica estudiantes/2024/DATA/Ensamblado_DATA/E_coli_Reference_Genome/GCF_000005845.2_ASM584v2_protein.faa ../Assembly_canu_Pacbio/ecolipacbio.contigs.fasta
Realicen las anotaciones para el resto de los ensamblados. RECUERDEN extraer el contig mas largo del ensamblado PacbioHIFI y los contigs necesarios de Nanopore para hacer sus anotaciones.
Outputs
PROKKA genera 10 archivos de salida, como se dijo anteriormente, con un prefijo común, que puede ser modificable (Tabla 2).
TABLA 2
Descripción de los archivos de salida de PROKKA
Extension | Description |
---|---|
.gff | This is the master annotation in GFF3 format, containing both sequences and annotations. It can be viewed directly in Artemis or IGV. |
.gbk | This is a standard Genbank file derived from the master .gff. If the input to prokka was a multi-FASTA, then this will be a multi-Genbank, with one record for each sequence. |
.fna | Nucleotide FASTA file of the input contig sequences. |
.faa | Protein FASTA file of the translated CDS sequences. |
.ffn | Nucleotide FASTA file of all the prediction transcripts (CDS, rRNA, tRNA, tmRNA, misc_RNA). |
.sqn | An ASN1 format "Sequin" file for submission to Genbank. It needs to be edited to set the correct taxonomy, authors, related publication etc. |
.fsa | Nucleotide FASTA file of the input contig sequences, used by "tbl2asn" to create the .sqn file. It is mostly the same as the .fna file, but with extra Sequin tags in the sequence description lines. |
.tbl | Feature Table file, used by "tbl2asn" to create the .sqn file. |
.err | Unacceptable annotations - the NCBI discrepancy report. |
.log | Contains all the output that Prokka produced during its run. This is a record of what settings you used, even if the --quiet option was enabled. |
.txt | Statistics relating to the annotated features found. |
.tsv | Tab-separated file of all features: locus_tag, ftype, len_bp, gene, EC_number, COG, product. |
PREGUNTAS
¿Son iguales la anotación del ensamblado de Velvet (reads cortos) y los de Canu (reads largos)? ¿Si tuviera que elegir una anotación para trabajar cual utilizaría? ¿Por qué? Sabiendo que el genoma de referencia para E. coli k-12 cuenta con 4.242 proteínas, ¿cuál consideran es la causa de la diferencia entre la anotación de la referencia y la obtenida para el ensamblado de Canu?
Ahora que contamos con una anotación, vamos a poder realizar una mejor visualización de nuestro ensamblado previo.
IGV: Integrative Genomics Viewer. https://software.broadinstitute.org/software/igv/
Artemis http://sanger-pathogens.github.io/Artemis/Artemis/
Estas son herramientas de visualización de alto rendimiento para la exploración interactiva de grandes conjuntos de datos genómicos integrados. Admiten una amplia variedad de tipos de datos, incluidos datos de secuencia basados en matrices y de NGS así como anotaciones genómicas.
Podemos utilizar IGV o Artemis como veníamos utilizando. En esta oportunidad no vamos a utilizar la herramienta de comparación ACT sino la de visualización.
Antes de cargar el archivo .gff en Artemis vamos a limpiarlo para lograr visualizar mejor los nombres de los genes.
cleanGFF input.gff output.gff
art
Se debe ingresar el ensamblado (archivo de scaffolds) en Open file ... Luego ingresamos el archivo de anotación (.gff) en File → Read And Entry ...
Desde IGV:
Para cargar el ensamblado: Genome → Load Genome from File... Para cargar la anotación: File → Load from File...
Validación de la anotación
Una de las formas para evaluar las predicciones es utilizando la herramienta BUSCO (Benchmarking Universal Single-Copy Orthologs) (Felipe A Simão, 2015). Este utiliza un script en Python para buscar la presencia de genes ortólogos universales de copia única pertenecientes al grupo de organismos de interés, en nuestro caso utilizaremos la base de datos de procariotas. Esta herramiente brinda información para evaluar la calidad y completitud del ensamblado y anotación.
run_BUSCO.py -i PROKKA_07292019.faa -l ../../../enterobacteriales_odb9 -m prot -o busco_Ecoli -c 10
-c 10
Nº threads.-i SEQUENCE_FILE
En este caso un FASTA de proteínas (AA sequence, .faa file).-l LINEAGE
Path para la carpeta donde se encuentra el linaje del organismo en cuestión, Dataset descargado de BUSCO.-m prot
El modo de análisis que estas utilizando. En este caso a nivel de proteínas.-o OUTPUT_NAME
Nombre de la carpeta de salida.
Se obtienen reportes de este estilo:
BUSCO Category | Count |
---|---|
Complete BUSCOs (C) | 414 |
Complete and single-copy BUSCOs (S) | 413 |
Complete and duplicated BUSCOs (D) | 1 |
Fragmented BUSCOs (F) | 7 |
Missing BUSCOs (M) | 31 |
Total BUSCO groups searched | 452 |
Otra de las estrategias que se pueden hacer para validar la anotación obtenida es haciendo una comparación con el genoma de referencia. Para ello se puede realizar un BLASTp recíproco entre el archivo de proteínas producto de la anotación y el archivo de proteínas de la referencia. Este sería un esquema a modo de ejemplo de cómo se verían representados los resultados.