Filogenómica 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.
Preparación de archivos
Es importante que los archivos fasta cumplan las siguientes características:
El nombre del archivo solo debe llevar caracteres alfanuméricos
De ser necesario, solo pueden llevar guion bajo en el nombre, no puntos ni guión medio.
La terminación del archivo debe ser .fa
Los nombre NO deben empezar con un número
Los nombres de las secuencias deben ser cortos, sin espacios y solo con caracteres alfanuméricos y cuando mucho guión bajo.
Set de datos
Si quieres seguir los pasos aquí descritos con el mismo set de datos, cepas de E. coli, puedes descargar el set de datos de aquí. Los genomas del set son los siguientes:
DH10B (= K12), 1 cromosoma. CP0000948
0157:H7 str. TW14359, 1 cromosoma 1 plásmido. CP001368
DH1, 1 cromosoma. CP001637
Una vez descargados de aquí, los puedes descomprimir en la carpeta en la que se vaya a trabajar y en donde solo estén ellos:
$ tar xzf ecoli.tar.gz
Análisis
Activar anvio, si aún todavía no tenemos conda en nuestro PATH:
$ source /opt/miniconda/etc/profile.d/conda.sh
Si usaremos la cuenta común en CONDA (recomendada):
$ conda activate anvio-7
NOTA. Para todos los pasos, podemos seleccionar el número de CPU a utilizar modificando el flag -T o --num-threads procurar no abusar de esta valor, 8 núcleos es suficiente.
Bases de datos
Generar una base de datos para cada genoma.
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 anvio, pero puede ser cualquier nombre útil:
$ screen -S anvio
Una vez que se activa esta sesión podemos ya ejecutar el comando anterior pero teniendo cuidado de activar anvio primero, si es que no lo hicimos ya antes:
$ conda activate anvio-7
Para cada genoma, tenemos que hacer los siguientes pasos:
$ anvi-gen-contigs-database -f fastafile.fa -n PROJECT -o fastafile.db
$ anvi-run-hmms -c fastafile.db -T 4
$ anvi-run-ncbi-cogs -c fastafile.db -T 4
Si solo hemos hecho una sesión entonces no hace falta poner el nombre de la sesión, solo screen -r. Más información de screen aquí.
Listado de genomas
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.
Single Copy Genes
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
Árbol filogenético
Crear un árbol filogenético con los SCG
$ anvi-gen-phylogenomic-tree -f concatenated-proteins.fa -o phylogenomic-tree.txt
Pangenoma
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 4
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.
Average Nucleotide Identitity (ANI)
Hacer un análisis de ANI
$ anvi-compute-genome-similarity -e genome.list --program pyANI -o ANI -p PANGENOME/PANGENOME-PAN.db -T 4 --just-do-it
Podemos usar el programa pyANI para genomas muy cercanos, mejor resolución, o fastANI, que es más rápido pero menos sensible.
Por último podemos agregar información para que también aparezca en el pangenoma, esta información debe ir en una un archivo de texto separado por tabuladores (NO usar Word), por ejemplo:
sample year country source
DH1 1983 USA Human
DH10B 1960 USA Unknown
Ec0157 2006 USA Clinical
La primer línea debe empezar con sample y ésta columna debe tener los nombre idénticos a los archivos fasta usados al principio pero sin la extensión. Las siguientes columnas pueden ser los datos que se quiera, pero tratando de no mezclar palabras con números. Podemos nombrar a esta tabla data_for_layers.tsv por ejemplo.
El comando para incorporarla a la base de datos genera de anvio sería:
$ anvi-import-misc-data data_for_layers.tsv -p PANGENOME/PANGENOME-PAN.db --target-data-table layers
SCRIPT anvi-phylogenomics.v7.0.0.sh
Como es costumbre ya, tenemos un script que realiza todos estos pasos, solo hay que tener un directorio con los genomas en formato fasta con la terminación .fa, solo hay que llamarlo y listo:
$ anvi-phylogenomics
Se recomienda también iniciar una sesión de screen antes de hacer al análisis, ya que puede durar horas y es probable que la terminal se desconecte, aunque sí ésto pasa, de todos modos puede seguir el análisis pero no es totalmente seguro. Más información de screen aquí.
$ screen -S anvio
El nombre de la sesión, en este ejemplo anvio, puede ser el que queramos. Para salir de la sesión de screen hay que teclar conjuntamente las teclas Ctrl A D y el análisis continua, para reanudar la sesión y ver como va, teclear screen -r. Si hay varias sesiones de screen, podemos enlistarlas con screen -ls
Todo el análisis con este script y el set de datos anteriormente descrito con tres genomas de E. coli puede tardar 1:45 horas.
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 (Fig. 1):
$ anvi-display-pan -p PANGENOME/PANGENOME-PAN.db -g PANGENOME-GENOMES.db
Árbol filogenético de tres cepas de E. coli
Figura 1. Pangenoma de tres cepas de E. coli. Se observa el índice de similitud ANI (cuadros rojos), el dendrograma filogenético (arriba de los cuadros rojos) y los genes únicos para cada genoma.