¿Cuáles son algunas estructuras de datos que debería conocer alguien involucrado en bioinformática? Supongo que se supone que cualquiera debe saber sobre listas, hashes, árboles equilibrados, etc., pero espero que haya estructuras de datos específicas de dominio. ¿Hay algún libro dedicado a este tema?Estructuras de datos para bioinformática
Respuesta
La estructura de datos más fundamental utilizada en bioinformática es la cadena. También hay toda una gama de estructuras de datos diferentes que representan cadenas. Y los algoritmos como la coincidencia de cadenas se basan en estructuras de representación/datos eficientes.
Un trabajo exhaustivo sobre este tema es de Dan Gusfield Algorithms on Strings, Trees and Sequences
Una gran cantidad de libros de introducción en la bioinformática cubrirá algunas de las estructuras básicas que tendría que utilizar. No estoy seguro de cuál es el libro de texto estándar, pero estoy seguro de que puedes encontrarlo. Podría ser útil examinar algunos de los libros específicos de idioma:
Elegí los dos como ejemplos porque están publicados por O'Reilly, que, en mi experiencia, publica libros de buena calidad.
Ocurre que tengo el libro de Python en mi disco duro, y una gran parte habla sobre el procesamiento de cadenas para bioinformática usando Python. No parece que la bioinformática utilice estructuras de datos especiales sofisticadas, solo las existentes.
Muchos proyectos en bioinformática implican la combinación de información de diferentes fuentes semiestructuradas. RDF y ontologías son esenciales para mucho de esto. Ver, por ejemplo, el proyecto bio2RDF. http://bio2rdf.org/. Una buena comprensión de los identificadores es valiosa.
Gran parte de la bioinformática es exploratoria y, a menudo, se utilizan herramientas livianas y rápidas. Consulte las herramientas de flujo de trabajo, como Taverna, donde el recurso principal suele ser un conjunto de servicios web, por lo que HTTP/REST son comunes.
Las estructuras de datos hash espacial (kd-tree), por ejemplo, se utilizan a menudo para consultas vecinas más cercanas de vectores de características arbitrarias, así como análisis de estructura de proteínas 3d.
El mejor libro para su $$ es Understanding Bioinformatics by Zvelebil porque cubre todo, desde el análisis de secuencias hasta la comparación de estructuras.
Además de conocimientos básicos de las estructuras que usted ha mencionado, suffix trees (y sufijo arrays), de Bruijn graphs y interval graphs se utilizan ampliamente. The Handbook of Computational Molecular Biology está muy bien escrito. Nunca lo he leído todo, pero lo he usado como referencia.
También recomiendo altamente este libro, http://www.comp.nus.edu.sg/~ksung/algo_in_bioinfo/
Y más recientemente, pitón se utiliza con mucha más frecuencia en bioinformática que Perl. Así que realmente sugiero que comiences con Python, es ampliamente utilizado en mis proyectos.
Cualquiera que sea su experiencia matemática o computacional, es probable que encuentre una aplicación en biología computacional.Si no, haga esta otra pregunta de stackoverflow y se lo ayudará: o)
Como se menciona en las otras respuestas, las comparaciones de cadenas y el descubrimiento de patrones en datos unidimensionales son algo intemporales, ya que las secuencias son muy fáciles de obtener. Con un renovado interés en la informática médica, aunque también tiene un análisis de imagen bidimensional o tridimensional que ejecuta, p. contra datos genómicos. Con la bioquímica molecular también tiene búsquedas de patrones en superficies 3D y simulaciones moleculares. Para estudiar los efectos de los medicamentos, trabajará con redes de genes y comparará los tejidos. Se aplican desafíos típicos para big data e integración de información. Y luego, necesita descripciones estadísticas de la probabilidad de un patrón o la asociación clínica de cualquier característica identificada para ser encontrada por casualidad.
- 1. C# estructuras de datos
- 2. Delphi estructuras de datos
- 3. Estructuras de datos pregunta
- 4. ¿Estructuras de datos espaciales para mover objetos?
- 5. Estructuras de datos en lisp
- 6. Erlang estructuras de datos persistentes
- 7. Estructuras de datos complejas Redis
- 8. Estructuras de datos en Python
- 9. Algoritmos y estructuras de datos
- 10. Estructuras de datos Trie - Java
- 11. ¿Pruebas de unidades de referencia para estructuras de datos comunes?
- 12. Uso de macros en C para definir estructuras de datos
- 13. Método de filtro para estructuras de datos C++
- 14. ¿La mejor manera de organizar proyectos de bioinformática?
- 15. estructuras de datos cíclicos inmutables Generación de
- 16. Comparaciones de complejidad entre estructuras de datos
- 17. biblioteca de estructuras de datos de JavaScript
- 18. ¿cómo puedo convertir estructuras de datos ruby a estructuras de datos javascript con .js.erb?
- 19. Bibliotecas para estructuras de datos estrictas en Haskell
- 20. ¿Alguna recomendación para estructuras de datos profundas con Backbone?
- 21. Principales estructuras de datos de JavaScript
- 22. Definición de estructuras de datos recursivas
- 23. Algoritmo de mosaico/Estructuras de datos?
- 24. ¿Cómo comparo dos estructuras de datos complejas?
- 25. Guardar estructuras de datos en C#
- 26. Estructuras de datos importantes en la búsqueda
- 27. Estructuras de datos espaciales en C
- 28. Diferentes estructuras de datos y Complejidades
- 29. Estructuras de datos equivalentes de contenedores STL
- 30. Estructuras de datos de última generación
De acuerdo. El libro de Gusfield es muy completo. – awesomo