Git y Github son repositorios de código que se están volviendo cada vez más importantes en las ciencias de la vida, incluida la ciencia de las plantas. ¿No está seguro de qué son Git y Github y por qué hay un animal fantástico (Octocat) como imagen de encabezado de esta publicación en un blog botánico? Siga leyendo con esta conversación con Tjelvar Olsson, gerente de computación científica en el Centro John Innes.

Calle Ian: Las menciones de GitHub ocurren cada vez más entre los científicos. Para aquellos que no saben (como yo), ¿qué es?

Tjelvar Olsson: GitHub es un servicio basado en la nube para alojar código fuente de software de código abierto. Es uno de los sitios más populares para este propósito.

ES: ¡Está bien! ¿Qué importancia tiene el alojamiento de código fuente para los biólogos?

A: Dos razones principales: primero, la biología se está volviendo cada vez más impulsada por los datos. La secuenciación, la bioimagen y otras técnicas están generando grandes cantidades de datos. La extracción de conocimientos biológicos a partir de esos datos a menudo requiere un análisis de datos con guiones y programas informáticos. Por lo tanto, el código fuente de estas herramientas de análisis de datos es directamente relevante para los biólogos. En segundo lugar, la ciencia tiene que ver con la reproducibilidad. Al dar acceso al código fuente, la investigación se vuelve más (fácilmente) reproducible.

ES: Sí, reproducibilidad en la ciencia es un gran problema y un tema bastante espinoso.

A: Sí, lo es. Un gran problema con las secuencias de comandos y la programación es que es muy fácil cometer errores. A veces, esto simplemente rompe el guión para que ya no funcione, pero a veces hay fallas fundamentales que dan resultados engañosos. En este último caso, es necesario conocer el código exacto utilizado para producir los resultados.

ES: ¿Cómo podemos acceder al código de otras personas?

A: Bueno, ese es el primer problema que resuelve Github: permite que las personas compartan su código con el mundo.

ES: ¿Resuelve eso el problema de saber cómo se produjeron los resultados?

A: No necesariamente. Supongamos que he usado uno de mis scripts para analizar algunos datos. Esos datos se utilizan luego en un manuscrito. Sin embargo, escribir suele ser laborioso y requiere tiempo. Mientras tanto, tengo una idea inteligente que quiero probar. Así que edito mi guión y experimento un poco. En ese momento, los datos generados para el manuscrito no están sincronizados con el código fuente de mi script y, si no estoy usando el control de versiones, estoy en un gran problema.

ES: Entonces, ¿el control de versiones se trata de rastrear los cambios en el código fuente?

A: Así es. Debido a que la industria del software se ha enfrentado a estos problemas de reproducibilidad durante mucho tiempo, aunque en un contexto ligeramente diferente, se han desarrollado herramientas para aliviar el problema. El control de versiones es una de estas herramientas. Puede considerarlo como un botón infinito de "deshacer" que le permite volver a versiones anteriores de su código.

ES: Como Google Docs, que guarda historias completas de un documento. ¿Entonces GitHub es una herramienta de control de versiones?

A: Un poco. La herramienta de control de versiones en cuestión en realidad se llama Git. Git fue desarrollado por Linux Torvalds, la persona que creó Linux, el sistema operativo en el que se ejecuta la mayoría del software de bioinformática. Git es uno de los programas de control de versiones más populares, lo que significa que lo utilizan muchos proyectos de código abierto y empresas de software. Entonces, si usted es un científico que desea adquirir una valiosa habilidad transferible, vale la pena aprender a usarla.

ES: ¿Cómo encajan Git y GitHub?

A: Git es un medio para mantener su código fuente bajo control de versiones en lo que se llama un "repositorio", básicamente un directorio con archivos. GitHub te permite alojar tu repositorio en línea, dando acceso al código fuente y todas las instantáneas almacenadas en su historial, es decir, todas las versiones del código.

ES: Esto suena un poco complicado. ¿Es difícil aprender y usar Git/GitHub?

A: No, en realidad es muy fácil. Solo necesita un puñado de comandos para comenzar. De acuerdo, debe poder usar la línea de comando, pero si está ejecutando y/o creando scripts de análisis de datos, es poco probable que sea nuevo para usted.

ES: ¿Cuánto cuesta usar Git y GitHub?

A: Git es un software de código abierto, por lo que es gratuito. Si está utilizando una Mac, probablemente ya esté instalada en su computadora. GitHub también es gratis si comparte su código con el mundo. ¡De eso se trata todo esto! Alojar sus scripts en GitHub también es una forma ideal de hacer una copia de seguridad de su código.

ES: ¿Puedo hacer una copia de seguridad de mis datos en GitHub también?

A: No, no deberías hacer eso. GitHub se trata de compartir y colaborar en su código. No es un repositorio de datos. De hecho, no le permitirá cargar archivos de más de 100 MB.

ES: De acuerdo, entonces GitHub se trata de código fuente y no de datos. Sin embargo, acabas de mencionar que GitHub se trata de colaboración. ¿Puede explicar más?

A: Por supuesto. Hasta ahora hemos estado hablando de reproducibilidad porque es una gran preocupación para los científicos y es uno de los problemas que resuelve Git. Sin embargo, las personas que desarrollan software también tienen el problema de colaborar en el código. Si dos personas editan el mismo archivo, ¿cómo se pueden fusionar esos cambios? Es análogo al problema al que se enfrenta el autor principal al tratar de incorporar los cambios dispares proporcionados por sus colaboradores. Git proporciona herramientas para resolver este tipo de problemas y GitHub proporciona un medio fácil para que las personas colaboren en el mismo proyecto al brindarles acceso al repositorio de Git dondequiera que tengan una conexión a Internet.

ES: Todo esto suena genial. ¿Cuáles son algunos buenos recursos para aprender sobre Git?

A: Hay un buen artículo de John D. Blischak, Emily R. Davenport y Greg Wilson en PLOS Computational Biology llamado "Una introducción rápida al control de versiones con Git y GitHub" (10.1371/diario.pcbi.1004668). También hay un curso gratuito de Git en línea sobre Codecademy (Aprende Git). Mi libro, Guía del biólogo a la Computación tiene capítulos tanto en Git (Seguimiento de su trabajo) y GitHub (Colaborando en proyectos). ¡Feliz codificación!

Tjelvar Olsson es un biólogo que se ha pasado a la informática.

Estudió su licenciatura y doctorado en bioquímica. Durante su doctorado, se vio obligado a cambiar su enfoque del trabajo de laboratorio al análisis computacional de datos. Este proceso se guió en gran medida por ensayo y error y fue bastante arduo. En aquel entonces, no existían muchos recursos para ayudar a los biólogos a aprender informática.

Tras su doctorado, quiso profundizar en el desarrollo de software profesional (y la química) y consiguió un puesto como científico de aplicaciones en el Centro de Datos Cristalográficos de Cambridge, donde trabajó en proyectos de desarrollo de software y bases de datos para la industria farmacéutica. Durante este tiempo, tuvo la suerte de trabajar con personas excelentes y aprendió mucho sobre programación, buenas prácticas de programación y procesos de desarrollo de software.

Tras seis años, la atracción por la biología y la academia se volvió insoportable y consiguió un trabajo como director de laboratorio de informática científica en el Centro John Innes. En el JIC, dedica gran parte de su tiempo al desarrollo de software científico y a la automatización de servicios científicos.