Home » Analizar un ensamblado de-novo

Analizar un ensamblado de-novo

Cada estudiante dispone de un genoma ensamblado mediante el programa Spades

(vease Ensamblando un genoma para mas información)

 

Objetivos:

  • Determinar la calidad del ensamblado
  • Determinar la especie (cepa)
  • Predecir todos los genes codificantes
  • Anotar los genes predichos
  • Determinar la presencia de ciertos genes que provocan resitencia a anitbiotiocos

Calidad del ensamblado

Número de contigs

Paso1: filtrar las lineas que contiene ‘>’

grep '>' /home/biocomp/bioinfo_genomas/26.fa

Paso2: contar el número de lineas

wc -l 26.fa

Paso3: juntar los dos comandos

grep '>' /home/biocomp/bioinfo_genomas/26.fa | wc -l 

Número de contigs más largos que un umbral dado

contigs más largos que 1000nt

awk -v RS='>' '{ split($0,f,"_"); if (f[4] > 1000) print ">" $0; }' a26.fa 

reenviar la salida a pantalla a un fichero (mediant el operados >):

awk -v RS='>' '{ split($0,f,"_"); if (f[4] > 1000) print ">" $0; }' a26.fa > a26_1000.fa

¿Que es awk?

“Dentro de las herramientas del sistema UNIX awk es equivalente a una navaja del ejercito suizo, que es útil para modificar archivos, buscar y tranformar bases de datos, generare informes simples y otras muchas cosas.”

Jesús Alberto Vidal Cortés,
Introducción en awk

desglose del comando:

-v RS=’>’ se lee la entrada en bloques comprendidos entre el caracter ‘>’
$0 la variable que contiene la información del bloque (String – cadena de caracteres). En este caso, el encabezado (menos la ‘>’) y la secuencia
split($0,f,”_”)

NODE_244_length_1010_cov_1.952840

Cortar la cadena de caracteres en un patron dado, ‘_’ en este caso. El resultado es una lista con las subcadenas accesibles a traves de diferentes indices

  • 1-> NODE
  • 2 -> 244
  • 3 -> length
  • 4 -> 1010
  • 5 -> cov
  • 6 -> 1.952840 (y toda la secuencia)
print “>” $0;

print escribe  una cadena de caracteres en la pantalla. En este caso, la cadena consiste en juntando ‘>’ con lo almazenado en $0

> 26_1000.fa

redirigir la salida a pantalla a un fichero

 

Cuestiones

  • ¿Como podemos obtener todas las longitudes en la salida?
  • ¿Como podemos extraer una secuencia (scaffold) en formato fasta?
  • Analizar la variación en el G+C a lo largo del contig mas largo
  • ¿Podemos determinar el orden real de los contigs en el genoma?

Determinar los genes codificantes

La anotación de genes codificantes se basa en la predicción de genes en procariotas que carecen de intrones

Primero usaremos GeneMarkS-2 para predecir los genes un el ensamblado mediante el fichero con contigs >= 1000nt

Marcamos las opciones como en la siguiente imagen:

Obtenemos 3 ficheros de salida:

  • la anotación de las regiones CDS en formato gff3
  • Las secuencias de las regiones codificantes
  • Las CDSs traducidas

 

Anotar los genes predichos

Existen diferentes programas:

 

Usaremos el programa blastkoala que emplea Blast para asignar la secuencia del gen predicho (anónima) a una secuencia de la base de datos KEGG.

Analizar la salida del blastkoala

  • Determinar el % de genes predichos asingados a una entrada de KEGG
  • ¿Es posible asignar genes predichos sin entrada en KEGG mediante Blast?

Cuestiones

¿Como podemos ‘mejorar’ la tasa de genes asignados?

Solución

  • Intentar usar Blast con la base de datos nr

Problema:

  • Mediante el servicio web del Blast tendriamos que enviar cientos de secuencias manualmente, lo cual es inviable

Solución

Usar una versión local con una base de datos ‘customizada

  1. Detectar la especie/cepa mediant Blast
  2. Descargar las secuencias de la CDS y proteinas
  3. Generar la base de datos local
  4. Ejecutar una búsqueda local

Resultados:

  1. Un posible genoma de referencia podría ser Staphylococcus aureus strain RJ1267

  2. Send to –> coding sequences –> fichero–> CP047321_RJ1267.txt
  3. Usar el programa de EMBOSS transeq para traducir las CDS (o la opción de guardar los CDS como ‘FASTA Protein’)
  4. Generar la base de datos
makeblastdb -in CP047321_RJ1267.txt -parse_seqids -title "CP047321_RJ1267" -out CP047321_RJ1267 -dbtype nucl

makeblastdb -in CP047321_RJ1267_prot.txt -parse_seqids -title "CP047321_RJ1267" -out CP047321_RJ1267 -dbtype prot 


5. Ejecutar un Blast local

Suponemos que la salida del GeneMarkS-2 se llama gms2_a26.faa (secuencias de aminoacídicas) y gms2_a26.fnn

blastp -query gms2_a26.faa -db CP047321_RJ1267 -max_target_seqs 1 -outfmt 6 -evalue 1E-5 -out gms2_a26_blastp.txt
blastn -query gms2_a26.fnn -db CP047321_RJ1267 -max_target_seqs 1 -outfmt 6 -perc_identity 90 -evalue 1E-10 -out gms2_a26_blastn.txt

Véase la explicación del fichero de salida

Preguntas:

  • ¿Cuantos genes predichos podemos anotar?
  • Para cuantos genes predichos:
    • ¿La anotación y el gen predicho tienen igual longitud?
    • ¿El gen predicho alinea por encima del 90% (-qcov_hsp_perc)?
  • Explorar la salida: -outfmt “6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore qlen qcovs”
  • ¿Cuantos genes no hemos podido asignar?
  • ¿Como podemos lograr que en la tabla de salida salga el nombre del gen?

Obtener una lista con genes predichos no asignados

Paso1: obtener una lista con los genes predichos:
grep '>' gms2_a26.fnn | cut -f 1 -d ' ' | sed 's/>//g' > genes_predichos.txt
Paso2: obtener una lista con los genes asignados
cut -f 1 gms2_a26_blastn.txt > genes_asignados.txt
Paso 3: comparar los dos listas
diff -y genes_predichos.txt genes_asignados.txt

Detectar la presencia de genes de resistencia a antibioticos

 

Detectar genes no-codificantes

Una detección exhaustiva podemos llevar a cabo mediante Infernal (véase predicción de genes

cmscan --rfam --cut_ga --nohmmonly --tblout mrum-genome.tblout --fmt 2 --clanin /home/biocomp/RFAM/Rfam.clanin /home/biocomp/RFAM/Rfam.cm /home/biocomp/bioinfo_genomas/26_1000.fa


Pero tambien existe la posibilidad de buscar la secuencia, pero ejemplo del gen del ARN ribosómico en el ensamblado

Otras cuestiones de interés

¿Como de buena es la predicción de genes? –> bondad predicción de genes