Pregunta:
Transferencia de características genómicas en nuevas coordenadas
BioNaab
2017-11-22 16:43:48 UTC
view on stackexchange narkive permalink

Tengo un genoma eucariota para el que se obtuvo recientemente una secuencia actualizada para un cromosoma. Quiero mapear las lecturas de RNAseq en el genoma (y realizar otros análisis posteriores) y me gustaría usar la información más actualizada posible (por lo tanto, la secuencia "nueva" de ese cromosoma).

Sin embargo, antes de realizar el mapeo de lectura, me gustaría actualizar la anotación de mi genoma (GFF3) para que coincida con las 'nuevas' coordenadas de este cromosoma.

Básicamente, me gustaría transferir información del GFF3 de 'coordenadas antiguas' para obtener un GFF3 de 'coordenadas nuevas' y, si es posible, conservar toda la información / jerarquía del archivo (gen, ARNm, exón, etc.).

  gen fuente chrXX 222 5942. -. ID = gene_1; Nombre = gene_1; longitud = 5720chrXX fuente mRNA 222 5942. -. ID = gene_1.1; Parent = gene_1; Name = gene_1.1; length = 5720chrXX fuente exón 222 5794. -. ID = gene_1.1.2; Parent = gene_1.1chrXX fuente exón 5889 5942. -. ID = gene_1.1.1; Parent = gene_1.1chrXX fuente CDS 222 5794. - 1 ID = CDS: gene_1.1.2; Parent = gene_1.1; Name = gene_1.1chrXX fuente CDS 5889 5942. - 0 ID = CDS: gene_1.1.1; Parent = gene_1.1; Name = gene_1.1  

... debe actualizarse a ...

  gen fuente chrXX 333 6053. -. ID = gene_1; Nombre = gene_1; longitud = 5720chrXX fuente mRNA 333 6053. -. ID = gene_1.1; Parent = gene_1; Name = gene_1.1; length = 5720chrXX fuente exón 333 5905. -. ID = gene_1.1.2; Parent = gene_1.1chrXX fuente exón 6000 6053. -. ID = gene_1.1.1; Parent = gene_1.1chrXX fuente CDS 333 5905. - 1 ID = CDS: gene_1.1.2; Parent = gene_1.1; Name = gene_1.1chrXX fuente CDS 6000 6053. - 0 ID = CDS: gene_1.1.1; Parent = gene_1.1; Name = gene_1.1  

El enfoque que probé (pero no estoy seguro es la forma de hacerlo):

  1. Extraiga la secuencia de todas las características que se actualizarán a fasta ( bedtools getfasta )
  2. Asigne estas secuencias al genoma con el cromosoma actualizado ( gmap con --nosplicing ya que las secuencias que estamos mapeando corresponden a regiones genómicas).
  3. Cree el archivo GFF3 actualizado. Al hacer eso, aplico una regla complementaria: si una característica se mapeó en otro cromosoma, pero también hubo otra alineación en el cromosoma actualizado, priorice la que corresponde al mismo cromosoma (actualizado).

¿Cuál sería la forma correcta de hacer tal cosa? ¡Cualquier sugerencia de métodos / herramientas es bienvenida!

Sugeriría pegar el código completo utilizado para cada paso, para que la gente pueda asesorarlo mejor.
Dos respuestas:
heathobrien
2017-11-22 17:42:11 UTC
view on stackexchange narkive permalink

Creo que la forma estándar de hacer esto es crear un archivo de cadena y luego usarlo para hacer un liftOver de las anotaciones:

  mkdir pslfor i en ../ci3/rm/masked/*.masked; do blat ../ci2.2bit $ i -tileSize = 12 -fastMap -minIdentity = 98 psl / `basename $ i .fa.masked`.psl -noHead -minScore = 100; hecho  

Traducir archivos psl a cadenas en la cadena de directorios:

  mkdir chainfor i en psl / *. psl; hacer axtChain -linearGap = medium -psl $ i ../ci2.2bit ../ci3/ci3.2bit chain / `basename $ i .psl`.chain; done  

Fusionar cadenas cortas en cadenas más largas en el directorio chainMerge:

  mkdir chainMergechainMergeSort chain / *. chain | chainSplit chainMerge stdin -lump = 50  

concat y ordena las cadenas:

  cat chainMerge / *. chain > all.chainchainOrdenar todo.chain all.sorted .chain  

Necesita información sobre los tamaños de los cromosomas para la compensación:

  twoBitInfo ../ci3/ci3.2bit ci3.chromInfotwoBitInfo ../ci2.2bit ci2 .chromInfo  

Netting: identifica regiones alineables de cadenas:

  mkdir netchainNet all.sorted.chain ci2.chromInfo ci3.chromInfo net / all.net / dev / null  

Finalmente, seleccione las regiones alineables correctas usando las redes, creando un archivo "liftOver":

  netChainSubset net / all.net all. cadena ci2ToCi3.liftOver  

Ejecute liftOver:

  CrossMapy.py bed ci2ToCi3.liftOver test.hg18.bed  
Gracias por la respuesta rápida, la probaremos y reportaremos.
holmrenser
2017-11-30 14:07:51 UTC
view on stackexchange narkive permalink

Además de la respuesta de heathobrien, puede echar un vistazo a RATT: herramienta de transferencia rápida de anotaciones. El enfoque es esencialmente el mismo, solo que utiliza enfoques más modernos para, por ejemplo, alineaciones del genoma completo. Utiliza nucmer, que cuando usa la última versión (4.0) le permite hacer alineaciones del genoma completo usando computación paralela.

¿Hay algún recurso que muestre cómo hacer esto? La documentación parece realmente no fácil de usar.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...