CBS Pan-core plot

Pan- and core-genome plot

Mediante el programa pancoreplot de CMG Biotools podemos calcular tanto el pangenoma como el genoma núcleo y graficarlos. Considera que dos genes son ortólogos si tienen más del 50% se similitud en al menos el 50% de su longitud de aminoácidos.

Primero tenemos que hacer un archivo con el nombre del genoma y el nombre del archivo; usaremos los archivos multifasta de CDS de aminoácidos (.fsa) generados con Prodigal.

Extracción de CDS

$prodigal -i file.fasta -a file.fsa

En caso de tener varios archivos de genomas en formato fasta a convertir, podemos procesarlos todos:

$ for f in *.fasta; do prodigal -i $f -a $f.fsa; done

Hay que tener cuidado, por que este loop creará las nuevos archivos con la primer (.fasta) y luego la segunda extensión (.fsa), por lo que quedará cada archivo como file.fasta.fsa. Para eliminar esta extensión intermedia podemos usar el comando rename:

$ rename 's/.fasta//' *.fsa

Creación archivo pancore-list

El archivo debe contener dos columnas separadas por tabuladores, la primera es el nombre que queremos darle al genoma o cepa y la segunda columna el nombre del archivo generado con prodigal (.fsa). Este archivo lo podemos crear con cualquier editor de texto y lo llamaremos pancore.list.

Ejemplo:

file1    file1.fsa
file2    file2.fsa
fileN    fileN.fsa

Podemos también crear este archivo con comandos:

$ ls -1 *.fsa > names
$ paste names names | sed 's/.fsa//' > pancore.list
$ rm names

El primer comando enlista todos los archivos terminados en .fsa y lo salva en un documento llamado names

El segundo, junta lado a lado las dos listas (paste names names) y a la primera le borra la terminación .fsa (sed 's/.fsa//')

Pancoreplot

Una vez teniendo los archivos con extensión .fsa y el archivo pancore.list, estamos listos para generar el pan-core genoma:

$ pancoreplot pancore.list -cpu 4 -keep blastOutPut > pancore.ps

Este proceso puede durar horas, por lo que se recomienda correrlo en screen (mas info de screen aquí).

Ejemplo de pancoreplot con seis genomas de Serratia liquefaciens.

Los datos generado se guardan en el archivo blastOutPut/tbl

Pangenome tree

Podemos crear un árbol filogenético con los genes presentes en todos los genomas (core genome). Para esto usaremos los datos guardados en el directorio creado en el paso anterior (blastOutPut/):

$ pancoreplot_tree blastOutPut > core_tree.ps

Ejemplo de dendrograma generado con el core genome de seis genomas de Serratia liquefaciens.

Subsets

Otro análisis importante es obtener sets de genes a partir de los genomas analizados. Esto puede ser útil para obtener los genes presentes en solo un genoma y no en los otros, o en un set de genomas, en todos los genomas (core), etc. Debido a que ya se obtuvo el pangenoma así como los genes en cada uno de los genomas, la extracción de ciertos genes (set) es relativamente fácil.

Ejemplos

Extraer el core genome de los primero tres genomas (enlistados en el archivo pancore.list):

$ pancoreplot_subsets -i 1:3 blastOutPut > core_1-3.fsa

-i "intersección" entre genomas, en este caso de el 1, 2 y 3.

blastOutPut directorio donde se salvo el pangenoma (ver arriba)

core_1-3.fsa archivo de salida

Para extraer los genes que solo están en el genoma WMG002 (ver Figura pancoreplot) podemos ejecutar:

$ pancoreplot_subsets -i 6 -c 1:5 blastOutPut > unique_genes.fsa

-i "intersección" entre genomas, genes compartidos en éstos genomas, como solo ponemos el genoma 6 (de la lista generado en el archivo pancore.list), tomará todos los genes de éste genoma.

-c "complentary", todos los genes de los genomas 1 al 5 (1:5), el resultado será solo los que existan en el genoma 6.

Mas ejemplos y una explicación en Pancore subsets.