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.