Pregunta:
¿Cómo puedo crear mi propio archivo de asociación GO (gaf)?
Michael
2017-06-08 12:57:22 UTC
view on stackexchange narkive permalink

Esta pregunta se basa en una pregunta en BioStars publicada> hace 2 años por el usuario jack.

Describe un problema muy frecuente de generar anotaciones GO para organismos que no son modelo. . Si bien se basa en un formato específico y una aplicación única (Ontologizer), sería útil tener una descripción general del camino para acceder a un archivo GAF.

Tenga en cuenta que al formato de entrada le falta un poco de información esencial, como cómo se obtuvo. Por lo tanto, es difícil asignar un código de evidencia. Por lo tanto, supongamos que las asignaciones de términos de GO se realizaron de forma automática.


Quiero hacer el enriquecimiento genético usando Ontologizer sin un archivo de asociación predefinido (no es un organismo modelo).

He analizado un archivo con dos columnas para ese organismo como este:

  geneA GO: 0006950, GO: 0005737geneB GO: 0016020, GO: 0005524, GO: 0006468 , GO: 0005737, GO: 0004674, GO: 0006914, GO: 0016021, GO: 0015031geneC GO: 0003779, GO: 0006941, GO: 0005524, GO: 0003774, GO: 0005516, GO: 0005737, GO: 0005863geneD GO: 0005634 , GO: 0003677, GO: 0030154, GO: 0006350, GO: 0006355, GO: 0007275, GO: 0030528  

He descargado el archivo .ob del archivo de ontología Gen que contiene esta información (de aquí):

  !! GO ID (solo primario) y cadenas de texto de nombre. GO: 0000000 [tabulación] cadena de texto [tabulación] F | P | C! donde F = función molecular, P = proceso biológico, C = componente celular! GO: 0000001 herencia de mitocondrias PGO: 0000002 mantenimiento del genoma mitocondrial PGO: 0000003 reproducción PGO: 0000005 actividad de chaperona ribosomal FGO: 0000006 alta afinidad absorción de zinc actividad transportadora transmembrana FGO: 0000007 ión de zinc de baja afinidad actividad transportadora transmembrana FGO: 0000008 tiorredoxina FGO: 0000009 actividad alfa-1,6-manosiltransferasa FGO: 0000010 actividad trans-hexapreniltranstranstransferasa FGO: 0000011 herencia de vacuola P  

Lo que necesito como salida es un archivo .gaf en el siguiente formato (en el formato de los archivos aquí):

 ! gaf-version: 2.0! Project_name: Leishmania major GeneDB! URL: http://www.genedb.org/leish ! Correo electrónico de contacto: mb4@sanger.ac.uk GeneDB_Lmajor LmjF.36.4770 LmjF.36.4770 GO: 0003723 PMID: 22396527 ISO GeneDB: Tb927.10.10130 F complejo de unión a ARN mitocondrial 1 subunidad, putativo LmjF36.4770 taxón del gen Genejor LmjF36.4770 GeneDB 201_Lmajor: 3475Lmajor .36.4770 LmjF.36.4770 GO: 0044429 PMID: 20660476 Subunidad del complejo de unión 1 del ARN mitocondrial ISS C, supuesto taxón del gen LmjF36.4770: 347515 20100803 GeneDB_Lmajor GeneDB_Lmajor LmjF.36.4770 LmjTGNI: 0016.4765 Complejo de unión a ARN mitocondrial 1 subunidad, supuesto taxón del gen LmjF36.4770: 347515 20120910 GeneDB_Lmajor GeneDB_Lmajor LmjF.36.4770 LmjF.36.4770 GO: 0048255 PMID: 22396527 ISO GeneDB: Tb9 27.10.10130 P subunidad del complejo de unión al ARN mitocondrial 1, supuesto taxón del gen LmjF36.4770: 347515 20120910 GeneDB_Lmajor  

¿Cómo crear su propio archivo de asociación GO (gaf)?

Agregue algunas etiquetas para GO, organismo no modelo, gaf, análisis de sobrerrepresentación, etc. Solo usé una etiqueta aleatoria porque todavía no hay muchas etiquetas sensibles en la lista.
Modifiqué un poco la pregunta, agregué etiquetas y centré la pregunta en la creación del archivo en ese formato, si no está de acuerdo, simplemente revertir mis cambios
Agregué [etiqueta: ontología genética] y [etiqueta: gaf]. No estoy seguro de si una [etiqueta: análisis de representación excesiva] o una [etiqueta: análisis de enriquecimiento] sería más apropiada.
@Llopis: ¡Ojalá no haya sobrescrito accidentalmente tus cambios!
No tuve suerte, mi edición fue rechazada (o al menos no aparece): \
Si desea traer preguntas de otro sitio, [no se limite a copiarlas / pegarlas textualmente] (https://bioinformatics.meta.stackexchange.com/q/78/298). En su lugar, * pregúnteles de nuevo con sus propias palabras *. Y si copia, sería mejor poner el texto citado en un bloque de citas para indicar claramente que es una cita.
@terdon, lo siento, necesito adaptarme a las nuevas reglas;) Acepté las ediciones, sin embargo, no tengo tiempo para reescribir la pregunta con mis propias palabras, y no creo que sea estrictamente necesario. Incluso si eso puede parecer una contradicción con mi publicación anterior, no lo es en mi opinión, porque la pregunta es bastante antigua.
@Michael no, ¡no esperaba que reescribiera esto ahora! Pero hágalo la próxima vez. Ir por ahí simplemente pellizcando las preguntas textualmente de otros sitios no parece correcto. No, a menos que esté en condiciones de ofrecer aclaraciones o si este es un tema que también le afecta.
De hecho, puedo ofrecer una amplia aclaración para esta pregunta, estamos haciendo exactamente lo mismo, excepto que estamos usando InterproScan para asignar términos GO y no Blast2GO como probablemente se usó aquí. Tengo un script similar para convertir la salida IPS a GAF.
¡Decir ah! Solo ahora me di cuenta de que usted fue la persona que planteó por primera vez todo el problema de la copia de otros sitios como un problema :)
One responder:
terdon
2017-06-08 14:08:05 UTC
view on stackexchange narkive permalink

Aquí hay un script en Perl que puede hacer esto:

  #! / usr / bin / env perl use strict; use warnings; ## Cambiar esto a cualquier taxón con el que esté trabajando my $ taxon = 'taxon: 1000'; chomp (my $ date = `date +% Y% M% d`); my (% aspect,% gos); ## Lea el GO. terms_and_ids para obtener el aspecto (subontología) ## de cada término de GO. abra (my $ fh, $ ARGV [0]) o muera "Necesito un archivo GO.terms_and_ids como primer argumento: $! \ n"; while (< $ fh>) {siguiente if / ^! /; masticar my @fields = split (/ \ t /); ## $ aspecto {GO: 0000001} = 'P' $ aspecto {$ campos [0]} = $ campos [2];} cerrar ($ fh); ## Leer la lista de anotaciones genéticas abierto ($ fh, $ ARGV [1]) o muere "Necesita una lista de anotaciones de genes como segundo argumento: $! \ N"; while (< $ fh>) {chomp; my ($ gene, @terms) = split (/ [\ s,] + /); ## $ gos {geneA} = (go1, go2 ... goN) $ gos {$ gene} = [@terms];} close ($ fh); foreach my $ gene (keys (% gos)) {foreach my $ term (@ {$ gos {$ gene}}) {## Advertir y omitir si no hay ningún aspecto para este término if (! $ aspect {$ term}) {print STDERR "Término GO desconocido ($ term) para gen $ gene \ n "; siguiente; } ## Construye una línea pseudo GAF my @out = ('DB', $ gene, $ gene, '', $ term, 'PMID: foo', 'TAS', '', $ aspect {$ term}, $ gen, '', 'proteína', $ taxon, $ fecha, 'DB', '', ''); print join ("\ t", @out). "\norte"; }}  

Hágalo ejecutable y ejecútelo con el archivo GO.terms_and_ids como primer argumento y la lista de anotaciones de genes como segundo. Usando el GO.terms_and_ids actual y las anotaciones de ejemplo en la pregunta, obtengo:

  $ foo.pl GO.terms_and_ids file.gos DB geneD geneD GO: 0005634 PMID: foo TAS C geneD taxón proteico: 1000 20170308 DB DB geneD geneD GO: 0003677 PMID: foo TAS F geneD taxón proteico: 1000 20170308 DB
DB geneD geneD GO: 0030154 PMID: foo TAS P geneD taxón proteico: 1000 20170308 DB Término GO desconocido (GO: 0006350) para el gen geneDDB geneD gene GO: 0006355 PMID: foo TAS P geneD taxón de proteínas: 1000 20170308 DB DB geneD geneD geneD GO : 0007275 PMID: foo TAS P genD taxón de proteínas: 1000 20170308 DB DB genD genD GO: 0030528 PMID: foo TAS F genD taxón de proteínas: 1000 20170308 DB DB genB genB GO: 0016020 PMID: foo TAS C genB taxón de proteínas: 1000 20170308 DB DB geneB geneB GO: 0005524 PMID: foo TAS F genB taxón proteico: 1000 20170308 DB DB geneB geneB GO: 0006468 PMID: foo TAS P geneB taxón proteico: 1000 20170308 DB DB geneB GO: 0005737 PMID: foo TAS C geneB taxón proteico : 1000 20170308 DB DB geneB geneB GO: 0004674 PMID: foo TAS Gen F taxón de proteína: 1000 20170308 DB DB genB genB GO: 0006914 PMID: foo TAS P genB taxón de proteína: 1000 20170308 DB DB genB genB GO: 0016021 PMID: foo TAS C genB taxón de proteína: 1000 20170308 DB DB genB geneB GO: 0015031 PMID: foo TAS P geneB taxón de proteínas: 1000 20170308 DB DB geneA geneA GO: 0006950 PMID: foo TAS P geneA taxón de proteínas: 1000 20170308 DB DB geneA geneA GO: 0005737 PMID: foo TAS C geneA taxón de proteínas: 1000 20170308 DB DB geneC geneC GO: 0003779 PMID: foo TAS F geneC taxón de proteínas: 1000 20170308 DB DB geneC geneC GO: 0006941 PMID: foo TAS P geneC taxón de proteínas: 1000 20170308 DB DB geneC geneC GO: 0005524 PMID: foo TAS F geneC taxón de proteínas: 1000 20170308 DB
DB geneC geneC GO: 0003774 PMID: foo TAS F geneC taxón proteico: 1000 20170308 DB DB geneC geneC GO: 0005516 PMID: foo TAS F geneC taxón proteico: 1000 20170308 DB DB geneC geneC GO: 0005737 PMID: foo TAS C geneC taxón proteico : 1000 20170308 DB DB geneC geneC GO: 0005863 PMID: foo TAS C geneC taxón de proteínas: 1000 20170308 DB 

Tenga en cuenta que este es un archivo pseudo-GAF ya que la mayoría de los campos están separados del nombre del gen, el término GO y la sub-ontología son falsos. Sin embargo, aún debería funcionar para lo que necesita.

Creo que el código de evidencia debería cambiarse a IEA, porque es poco probable que uno hubiera anotado manualmente los GO para un organismo no modelo.
@Michael,, realmente no hace ninguna diferencia, así que elegí TAS ya que estas son anotaciones proporcionadas por el OP. Pero claro, la IEA también funcionaría. El campo se ignorará en cualquier caso al hacer un análisis de enriquecimiento para que puedas poner lo que prefieras.
Claro, la IEA podría incluso ser descartada por algunas herramientas.


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...