Filogenómica y Pangenoma con Anvio

Anvi'o también puede realizar filogenómica y pangenomas de una manera sencilla pero muy potente. Una descripción más detallada se encuentra aquí.

Primero tenemos que tener obviamente los genomas a analizar en formato fasta, usaremos el set de datos que contiene 3 genomas de E. coli; los cuales los podemos decargar de aqui, descomprimir y usar los archivos .fasta

NOTA. Comandos actualizados para anvio 6

Preparación de archivos

Es importante que los archivos fasta cumplas los siguientes requisitos:

Análisis

Generar una base de datos para cada genoma, como tenemos varios genomas a procesar podemos hacer un for loop. Este script checa los archivos fasta para ver si cumplen las características antes señaladas y si no los reformatea (anvi-script-reformat-fasta), crea la base de datos (anvi-gen-contigs-database) y busca genes housekeeping (anvi-run-hmms).

Este proceso puede durar horas y por lo tanto no sería raro que la terminal se desconectara antes de terminar, para evitar esto hay varias opciones, una buena es usar el comando de linux screen

Primero hay que crear una nueva "sesión" con screen que la llamaremos contigs2dbs, pero puede ser cualquier nombre útil:

$ screen -S contigs2dbs

Una vez que se activa esta sesión podemos ya ejecutar el comando anterior pero teniendo cuidado de activar anvio primero:

$ conda activate anvio6

$ for f in *.fa; do anvi-script-FASTA-to-contigs-db $f; done

Una vez corriendo podemos "desconectarnos" de la sesión y volver a la sesión de terminal anterior presionando al mismo tiempo las teclas Ctrl a d :

$ Ctrl a d

Para volverse a conectar a la sesión y ver como va el análisis:

$ screen -r contigs2dbs

Si solo hemos hecho una sesión entonces no hace falta poner el nombre de la sesión, solo screen -r

Al terminar el paso anterior, que puede durar horas, habrá que generar un listado de los genomas para usar con los siguientes pasos de anvio.

Generar un archivo con los nombres de los genomas y la ruta a los archivos de la base de datos a la que pertenecen

$ ls -1 *.fa > names.tmp

$ ls -1 *.db > dbs.tmp

$ paste names.tmp dbs.tmp > genome.list

$ rm *.tmp

$ sed -i 's/.fa//g' genome.list

$ sed -i '1i name\tcontigs_db_path' genome.list

El archivo de salida, genome.list, debe tener la siguiente estructura:

name          contigs_db_path

CP001368_0157 CP001368_0157.db

DH10B         DH10B.db

DH1           DH1.db

La primer columna (name) podemos cambiarla al nombre que deseemos, pero la segunda columna no. Para los nombres de la primer columna NO usar nombres que empiecen con número! La separación entre columnas es con tabuladores.

Opcionalmente (no disponible en la imagen virtual anvio6VM) podemos añadirle funciones a los genes de cada genoma, para lo cual usamos la base de datos COGS de NCBI, además de otras anotaciones: 

for g in *.db

do

    anvi-run-hmms -c $g --num-threads 4

    anvi-run-ncbi-cogs -c $g --num-threads 4

    anvi-scan-trnas -c $g --num-threads 4

    anvi-run-scg-taxonomy -c $g --num-threads 4

done

Obtener los Single Copy Genes (SCG) para el análisis filogenético, checar si anvio está activado aún, si no, volver a activarlo.

$ anvi-get-sequences-for-hmm-hits --external-genomes genome.list -o concatenated-proteins.fa --hmm-source Bacteria_71 --return-best-hit --get-aa-sequences --concatenate

Crear un árbol filogenético con los SCG

$ anvi-gen-phylogenomic-tree -f concatenated-proteins.fa -o phylogenomic-tree.txt

Podemos también obtener el pangenoma:

$ anvi-gen-genomes-storage -e genome.list -o PANGENOME-GENOMES.db

$ anvi-pan-genome -g PANGENOME-GENOMES.db -n PANGENOME -T 8

Si se colaron archivos con nombre no aptos, ver arriba, aquí es donde se botará el proceso con un error. El segundo comando puede tardar bastante en completarse.

Opcionalmente (no disponible en la imagen virtual anvio6VM) podemos hacer un análisis de Average Nucleotide Identitity (ANI)

$ anvi-compute-genome-similarity -e genome.list --program pyANI -o ANI -p PANGENOME/PANGENOME-PAN.db -T 8

Visualización

Para visualizar el árbol filogenético:

$ anvi-interactive -t phylogenomic-tree.txt -p profile.db --title 'tree 1' --manual

El árbol se puede visualizar en cualquier programa que lea dendrogramas en formato newick 

Para visualizar el pangenoma:

$ anvi-display-pan -p PANGENOME/PANGENOME-PAN.db -g PANGENOME-GENOMES.db

Árbol filogenético de tres cepas de E. coli

Pangenoma de tres cepas de E. coli