Gráfico circular de genoma usando DNAplotter

¿Tienes un ensamble de genoma bacteriano y te gustaría representarlo como un genoma circular? Yo he utilizado DNAplotter, una herramienta java (multiplataforma) del Instituto Sanger bastante versátil y potente.

I. Pasos previos alternativos: Si el genoma está fragmentado recomiendo ordenarlo por sesgo de GC y por tamaño de los scaffolds siguiendo el siguiente pipeline:

En las siguientes líneas usaré un genoma descargado desde NCBI en el Bioproject PRJNA514341, ensamble GCA_013277805.1.

Archivo fasta: GCF_013277805.1_ASM1327780v1_genomic.fna
Archivo gff: .GCF_013277805.1_ASM1327780v1_genomic.gff

1. Ordenar scaffolds por tamaño en orden descendiente

sizeseq -sequences GCF_013277805.1_ASM1327780v1_genomic.fna -outseq GCF_013277805.1_ASM1327780v1_genomic.sorted1.fna -descending

2. Obtener los IDs de los scaffolds ordenados por GC_skew

gc_skew_sort.pl GCF_013277805.1_ASM1327780v1_genomic.sorted1.fna | sed 's/ .*//' > GCF_013277805.1_ASM1327780v1_genomic.sorted1.ids

3. Ordenar scaffolds ya ordenados por tamaño, esta vez por GC_skew

fastasort.pl GCF_013277805.1_ASM1327780v1_genomic.sorted1.fna GCF_013277805.1_ASM1327780v1_genomic.sorted1.ids > GCF_013277805.1_ASM1327780v1_genomic.sorted2.fna

II. Pipeline DNAPlotter (se puede instalar con Anaconda)

File -> open -> abrir archivo fasta del genoma ".fna o .fasta"
(en mi caso usaré el archivo procesado GCF_013277805.1_ASM1327780v1_genomic.sorted2.fna)

option -> track manager
-> 1rst track to "fasta_record" key -> apply
-> delete other tracks

File -> read in entry on separate track -> abrir archivo ".gff"
(en mi ejemplo: GCF_013277805.1_ASM1327780v1_genomic.gff)
track manager -> tack2 -> "gene" key, strand "forward", position "0.9", colour "blue" -> apply

La palabra llave o "key" del track se debe escojer según la información que contiene el GFF. Los genes puedes estar clasificados con diferentes llaves lo cual permite ordenar la información. Por ejemplo las palabras llaves pueden ser gene, CDS, tRNA, rRNA y muchas otras. Usando las palabras adecuadas se pueden graficar círculos con genes pertenecientes a distintas categorías. Recomiendo revisar el GFF en un editor de texto para ver todas las claves posibles (tercera columna).

Si usaste "Prodigal" para la predicción de genes entonces tu GFF sólo tendrá la llave CDS. Lo mismo ocurre con cualquier otro predictor de genes sólo que la llave puede ser distinta. Las llaves mas específicas provienen de un proceso de anotación funcional de los genes predichos lo cual es otra historia.

File -> read in entry on separate track -> .gff
(en mi ejemplo: GCF_013277805.1_ASM1327780v1_genomic.gff)
track manager -> tack2 -> "gene" key, strand "reverse", position "0.85", colour "red" -> apply

Graph -> GC plot -> Draw
Graph -> GC plot -> Options -> Height 0.3, Track 0.5, Below "1rst gray" Above "3th gray".

Graph -> GC Skew -> Graph
Graph -> GC Skew -> Options -> Height 0.3, Track 0.2

Options -> Tick marks -> Interval "500000", Minor "250000"

III. Extra: Instalación de Prodigal y DNAPlotter

Crear ambiente Anaconda con DNAPlotter y también con Prodigal

conda create -n dnaplotter -c bioconda -c conda-forge artemis prodigal
conda activate dnaplotter 
# conda deactivate dnaplotter 

Obtener predicción de genes desde el genoma y obtener el resultado en distintos formatos.

# Salida a GFF
prodigal -i genoma.sorted2.fa -o genoma.sorted2.gff -d genoma.sorted2.fna -a genoma.sorted2.faa -f gff

# Salida a GBK
prodigal -i genoma.sorted2.fa -o genoma.sorted2.gbk -d genoma.sorted2.fna -a genoma.sorted2.faa -f gbk

Ejecutar DNAPlotter

dnaplotter

11 comments on “Gráfico circular de genoma usando DNAplotter

  1. I want to say thanks so much to acknowledge your caring about the value of your content, and thus your readers. Nolan Escue

  2. Everything is very open with a very clear explanation of the challenges. It was truly informative. Your site is very useful. Thank you for sharing. Salvador Paa

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.