Buenas prácticas en la bioinformática
Bioinformática se conforma de la computación, biológica, matemáticas y estadística
La bioinformática, en relación con la genética y la genómica 🔬, es una subdisciplina científica que implica el uso de ciencias informáticas 📈 para recopilar, almacenar, analizar y diseminar datos biológicos, como secuencias de ADN y aminoácidos o anotaciones sobre esas secuencias NIH, 2023.
Uno de sus objetivos es: Aumentar el entendimiento de la salud y la enfermedad, en ciertos casos, se usan para proveer mejor atención médica NIH, 2023.
NIH: National Human Genome Research Institute
Objetivo de este mini curso: 📌
Hacia una biología computacional más reproducible, transparente y colaborativa 💜
“Los hechos individuales no reproducibles no tienen ninguna importancia para la ciencia”
Karl Popper
Más información aquí.
Escribiendo un buen software
Un algoritmo nos permite resolver un problema ⭐
Un algoritmo es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos.
Definido: si se sigue dos veces, se obtiene el mismo resultado. Es reproducible.
Preciso: implica el orden de realización de cada uno de los pasos.
Finito: Tiene un numero determinado de pasos, implica que tiene un fin.
Un algoritmo podemos definirlo como un programa o software.
Para escribir un buen software necesitas:
Escribir código mantenible (maintainable code), usar control de versiones (version control) y rastreadores de problemas (issue trackers), revisiones de código (code reviews), pruebas unitarias (unit testing) y automatización de tareas (task automation).
Wilson, et al. 2014. PLOS Biology
Con el fin de previnir retracciones.
Más información en Best Practices for Scientific Computing - The Carpentries.
Código reproducible 🌟
Contenedores ⚡
Se puede almacenar todo el workflow, archivos, generando codigo reproducible y cooperativo.
Minicurso del uso de Docker.
Crear pipelines completos 🌀
Pasos para escribir un buen software
Análisis del problema / Definir el problema
Diseño del algoritmo / Diseño del programa
Codificación / Escribir el código
Compilación y ejecución del programa
Verificación / Realizar pruebas
Depuración / Detectar los errores y corregirlos
Programacion defensiva
- Documentación
Puntos claves para buenas practicas en bioinfo ⭐
Escriba programas para personas, no para computadoras (Documenta qué hace y por qué). - Se coherente en la nomenclatura, indentación y otros aspectos del estilo.
Divide los programas en *funciones cortas de un solo propósito. 💻 📚
No repitas tu código. Crea pasos reproducibles o que se repitan por si solas. ➰
Planifique los errores (Programacion defensiva) 🚩
Optimice el software sólo después de que funcione correctamente. - Si funciona no lo modifiques, simplificalo.
Colaborar - Busque siempre bibliotecas de software bien mantenidas que hagan lo que necesita. 👥