Pasos de Anvi'o

Una vez teniendo los contigs de todas las muestras, empieza el proceso de Anvi'o que puede ser bastante largo. Para simplificar, tenemos un script (metagenomic_workflow.v0.6.0.sh) the realiza todos los pasos necesarios esenciales para tener una gráfica interactiva de Anvi'o lista para análisis.

Activación Anvi'o

Primero tenemos que activar el ambiente virtual de Anvio que está instalado en CONDA:

$ source /opt/miniconda/etc/profile.d/conda.sh

$ conda activate /opt/miniconda2/envs/anvio-7

Notar que ahora antes del prompt debe aparecer (anvio7)$  que nos señala que ya estamos en el virtual environment de Anvi'o, versión 7.0 en este caso.

Mapping

El siguiente paso implica mapear cada una de las secuencias a los contigs previamente generados para cada muestra. 

1. Primero necesitamos crear un índice de los contigs con bowtie:

$ bowtie2-build contigs.fa contigs

2. Después ya mapear:

$ bowtie2 --threads N -x contigs -r sample1.fna -S sample1.sam

o si tenemos fastq pareados:

$ bowtie2 --threads N -x contigs -1 Sample1.R1.fastq -2 Sample1.R2.fastq -S sample1.sam

en --threads hay que especificar cuantos núcleos se usarán, se pueden poner 8; -r es el nombre de la muestra que se va a mapear y la salida (-S) el mismo nombre pero con terminación .sam

3. Convertir de formato sam a bam:

$ samtools view -F 4 -bS sample1.sam -o sample1_raw.bam

4. Inicializar los archivo bam con Anvi'o:

(anvio7)$ anvi-init-bam sample1_raw.bam -T 8 -o sample1.bam

Nota: Es necesario repetir del paso 2 al 4 para cada muestra que tengamos.

5. Limpieza de archivos innecesarios:

$ rm sample1.sam sample1_raw.bam

Database

Ahora tenemos que crear una base de datos de los contigs:

(anvio7)$ anvi-gen-contigs-database -f contigs.fa -o contigs.db -n PROJECT -T 8

(El flag -T es lo mismo que usar --num-threads, tratemos de usar el número de núcleos del servidor con cuidado para no saturarlo). Con -n daremos un nombre a un proyecto. 

Posteriormente es buena idea buscar hidden Markov models (hmm) en nuestros contigs:

(anvio7)$ anvi-run-hmms -c contigs.db --num-threads 8

Taxonomía

El siguiente paso es asignarle una taxonomía a cada gen encontrado en los contigs, primero tenemos que generar un archivo con los genes encontrados durante la creación de la base de datos:

(anvio7)$ anvi-get-sequences-for-gene-calls -c contigs.db -o gene-calls.fa

Luego buscar estos genes a que taxon pertenecen con Centrifuge:

$ centrifuge -f -x /dbs/centrifuge/p_compressed+h+v gene-calls.fa -S centrifuge_hits.tsv

o mejor aún, con kaiju, considerar que para Kaiju tenemos varias bases de datos, la mas completa, y que tarda mas (una media hora), es la que tienen secuencias de bacterias, virus, arqueas, y micro eucariontes (protistas), aquí probaremos con la más rápida (progenomes):

$ /opt/kaiju-v1.9.0-linux-x86_64-static/kaiju -t /dbs/kaiju_dbs/progenomes_2021-03-02/nodes.dmp -f /dbs/kaiju_dbs/progenomes_2021-03-02/kaiju_db_progenomes.fmi -i gene-calls.fa -o gene-calls.out -v -z 8

Ya que tenemos la clasificación, vamos a añadirle la taxonomía:

$ /opt/kaiju-v1.9.0-linux-x86_64-static/kaiju-addTaxonNames -i gene-calls.out -t /dbs/kaiju_dbs/progenomes_2021-03-02/nodes.dmp -n /dbs/kaiju_dbs/progenomes_2021-03-02/names.dmp -o gene-calls.tax -r superkingdom,phylum,order,class,family,genus,species

Y finalmente importar los datos a nuestra base de datos de los contigs:

(anvio7)$ anvi-import-taxonomy-for-genes -c contigs.db -i gene-calls.tax -c contigs.db -p kaiju --just-do-it

Cuando se quiera reconstruir genomas a partir de metagenomas (MAG, por sus siglas en inglés), será necesario poder evaluar que tan bien o completos son estos MAGs, para esto debemos obtener los genes qye deben estar presentes en genomas completos:

$ anvi-run-hmms -c contigs.db -T 8

Y también obtener la toxonomía de los Genes Unicopia (Single Copy Genes, SCG):

$ anvi-run-scg-taxonomy -c contigs.db -T 8 -P 4

Funciones

Ahora necesitamos anotar funciones a los genes, para lo cual usamos la base de datos COGS de NCBI

(anvio7)$ anvi-run-ncbi-cogs -c contigs.db --num-threads 8 --cog-data-dir /dbs/anvio_dbs/anvio6/COG/

Rutas metabólicas

También se pueden reconstruir rutas metabólicas con Anvio, por ser todavía un programa experimental, por ahora lo realizaremos aparte; éste procedimiento se puede consultar aquí.

Profile

Teniendo ya todos los datos, debemos crear un perfil para cada muestra:

Una sola muestra

(anvio7)$ anvi-profile -i sample1.bam -c contigs.db --output-dir SAMPLE_NAME* --sample-name NAME -T 8 --cluster-contigs

Mas de una muestra

(anvio7)$ anvi-profile -i sample1.bam -c contigs.db --output-dir SAMPLE_NAME* --sample-name NAME -T 8

Debemos juntar todos los perfiles de las muestras en una sola base de datos de éstos:

(anvio7)$ anvi-merge samples/*/PROFILE.db -o SAMPLES-MERGED -c contigs.db --sample-name NAME

* Se recomienda usar el nombre de la muestra para crear el directorio de salida de cada perfil.

Metadata

Ya por último podemos opcionalmente importar a la base de datos información de las muestras; esta info debe estar en un archivo delimitado por tabuladores.

(anvio7)$ anvi-import-misc-data additional_data.txt -p SAMPLES-MERGED/PROFILE.db  --target-data-table layers

Este archivo debe tener en la primer columna el nombre de las muestras exactamente igual que como se usaron en los fastq, la primer línea debe tener el nombre de la columna:

SAMPLE  SHRIMP TREATMENT

S04 04 Soy

C08 08 Control

P08 08 Chicken

P18 18 Chicken

S19 19 Soy

Panel Interactivo Anvio

Con la información generada, ya podemos lanzar anvio en el navegador para empezar el análisis:

(anvio7)$ anvi-interactive -p SAMPLES-MERGED/PROFILE.db -c contigs.db

Si queremos tener la clasificación taxonómica, en caso de haberla realizado anteriormente: 

(anvio7)$ anvi-interactive -p SAMPLES-MERGED/PROFILE.db -c contigs.db --taxonomic-level t_species

Y si queremos ver los MAGs encontrados:

(anvio7)$ anvi-interactive -p SAMPLES-MERGED/PROFILE.db -c contigs.db --collection-name CONCOCT --taxonomic-level t_species