Vengo de una ciencia de la computación. antecedentes, pero ahora estoy haciendo genómica.¿La mejor manera de organizar proyectos de bioinformática?
Mis proyectos incluyen una gran cantidad de bioinformática que implica típicamente: alineación de secuencias, comparación de superposición, etc. entre secuencias y diversas características de anotación genómica, de diferentes clases de muestras biológicas, datos de curso de tiempo, microarray, secuenciación de alto rendimiento ("next-generation" sequencing, aunque es la generación actual en realidad) datos, este tipo de cosas.
El flujo de trabajo con este tipo de análisis es bastante diferente de lo que experimenté durante mis estudios de informática: ningún UML y objetos cuidadosamente diseñados que brillan con elegancia sublime, sin gestión de versiones, sin documentación adecuada (a menudo sin documentación) no hay ingeniería de software en absoluto.
En su lugar, lo que hace todo el mundo en este campo es la piratería a cabo una Perl script o AWK -una sola línea después de la otra, por lo general para el uso de una sola vez.
Creo que la razón es que los datos de entrada y los formatos cambian tan rápido, las preguntas deben responderse tan pronto (¡plazos!) Que parece que no hay tiempo para la organización del proyecto.
Un ejemplo para ilustrar esto: Digamos que desea escribir un raytracer. Probablemente pondría mucho esfuerzo en la ingeniería de software primero. Luego, programémoslo, finalmente en una forma altamente optimizada. Debido a que utilizaría el raytracer innumerables veces con diferentes datos de entrada y haría cambios en el código fuente durante los próximos años. Entonces, una buena ingeniería de software es primordial cuando se codifica un raytracer serio desde cero. Pero imagina que quieres escribir un raytracer, donde ya sabes que lo usarás para rastrear una sola imagen. Y esa imagen es de una esfera reflectante sobre un piso a cuadros. En este caso, lo piratearías de alguna manera. La bioinformática es como el último caso solamente.
Se termina con el árbol de directorios con la misma información en diferentes formatos hasta que haya alcanzado un determinado formato necesario para el siguiente paso, y docenas de archivos con nombres como "tmp_SNP_cancer_34521_unique_IDs_not_Chimp.csv" en el que no tiene la idea más leve un día después de por qué creó este archivo y qué es exactamente.
Por un tiempo estaba usando MySQL lo que me ayudó, pero ahora la velocidad con la que se generan nuevos datos y los formatos de cambios es tal que no es posible hacer un diseño de base de datos adecuado.
Conozco una publicación única que trata estos temas (Noble, W. S. (2009, julio). Una guía rápida para organizar proyectos de biología computacional. PLoS Comput Biol 5 (7), e1000424 +). Las sumas autor del gol bastante bien:
El núcleo principio rector es simple: alguien no familiarizado con su proyecto debe ser capaz de mirar a sus archivos de computadora y entender en detalle lo que hizo y por qué.
¡Bueno, eso es lo que quiero, también! Pero sigo las mismas prácticas que ese autor, y creo que es absolutamente insuficiente.
Documentar todos y cada uno de los comandos que emite en Bash, comentándolo exactamente por qué lo hizo, etc., es simplemente tedioso y propenso a errores. Los pasos durante el flujo de trabajo son muy finos.Incluso si lo hace, puede ser una tarea extremadamente tediosa averiguar para qué era cada archivo, y en qué momento se interrumpió un flujo de trabajo particular, y por qué motivo, y dónde continuó.
(No estoy usando la palabra "flujo de trabajo" en el sentido de Taverna, me refiero solo a los pasos, comandos y programas que elige ejecutar para alcanzar un objetivo en particular).
¿Cómo organiza sus proyectos de bioinformática?
Mi pregunta es: ¿cómo hacer que * * => Wiki de la Comunidad – fredley
excelente pregunta . No he encontrado una respuesta satisfactoria para esto yo mismo. ¡Espero las respuestas! – pufferfish