Logo
  • Source Code
  1. Introducción
  2. Buenas prácticas en la bioinformática
  • Introducción
    • Sobre nosotras
    • Resumen
    • Sobre los datos
    • Glosario
    • Buenas prácticas en la bioinformática
  • Figuras del artículo
    • Reprocesamiento de los datos
    • Reproducción de figuras
    • Figura 2
    • Figura 3
    • Figura 4
    • Figura 5
    • Retos y problemas con el código

On this page

  • Bioinformática se conforma de la computación, biológica, matemáticas y estadística
    • Objetivo de este mini curso: 📌
  • Escribiendo un buen software
    • Un algoritmo nos permite resolver un problema ⭐
    • Para escribir un buen software necesitas:
    • Código reproducible 🌟
      • Contenedores ⚡
      • Crear pipelines completos 🌀
    • Pasos para escribir un buen software
    • Puntos claves para buenas practicas en bioinfo ⭐

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 ⚡

  • Docker
  • Singularity
  • Apptainer

Se puede almacenar todo el workflow, archivos, generando codigo reproducible y cooperativo.

Minicurso del uso de Docker.

Crear pipelines completos 🌀

  • Nextflow
  • Snakemake

Pasos para escribir un buen software

  1. Análisis del problema / Definir el problema

  2. Diseño del algoritmo / Diseño del programa

  3. Codificación / Escribir el código

  4. Compilación y ejecución del programa

  5. Verificación / Realizar pruebas

  6. Depuración / Detectar los errores y corregirlos

Programacion defensiva

  1. Documentación


Puntos claves para buenas practicas en bioinfo ⭐

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

  2. Divide los programas en *funciones cortas de un solo propósito. 💻 📚

  3. No repitas tu código. Crea pasos reproducibles o que se repitan por si solas. ➰

  4. Planifique los errores (Programacion defensiva) 🚩

  5. Optimice el software sólo después de que funcione correctamente. - Si funciona no lo modifiques, simplificalo.

  6. Colaborar - Busque siempre bibliotecas de software bien mantenidas que hagan lo que necesita. 👥