Esta es mi primera entrada de una sección que va a servir como portfolio de estos años de tesis doctoral, por lo que cualquier avance o cuestión que sea relevante va a aparecer por estos lares. Es por ello que he querido estrenar El pequeño BoB con la Open Science, en concreto con la parte que le toca a los datos y códigos. ¿Por qué? Porque en estos primeros compases académicos en los que he tenido oportunidad de hacerlo siempre he querido compartir todo pero el desorden de códigos y datos me ha echado atrás (¿a quién le va a servir datos.csv, datos_final.csv, datos_final_1.csv…?). De esta forma, el plantearme seguir esta filosofía también supone una oportunidad para mantener un mayor orden en mis actuales y futuros análisis.

La difusión de los resultados de investigación de manera abierta no es algo baladí, pues puede afectar positivamente incluso a la visibilidad de quienes opten por hacerlo . Al respecto, actualmente existen varios desafíos y recomendaciones para fomentarlo y hacerlo de la manera más idónea, pues aún queda mucho camino por recorrer . Pero vamos a centrarnos. Como ya he dicho, aquí voy a ocuparme de todo lo concerniente al análisis de datos, ya que tanto los datasets publicados bajo una licencia libre como las herramientas para trabajar con ellos y que faciliten su difusión y reproducibilidad son cada vez más numerosas, siendo ya pocas las excusas para no compartir el flujo de trabajo al completo y ahorrar tiempo a otras personas interesadas en tu trabajo o una parte concreta del mismo. Destacar además que la Comisión Europea recientemente publicó el informe “Indicator frameworks for fostering open knowledge practices in science and scholarship“, llevado a cabo por un grupo de expertos en Open Science y en el que precisamente recogen está disponibilidad como un “indicador prometedor” para la evaluación.

La particularidad que he venido a contar hoy es que además de ello actualmente es posible dar un paso más allá y generar todo un entorno virtual en el que no solo se muestra el análisis realizado al completo sino que permite ejecutar línea a línea el código o jugar con el desde cualquier navegador de misma forma que si lo hiciésemos en nuestro ordenador. Esto es posible gracias a una tripleta formada de repositorios abiertos en los que alojar tanto los datos como los diferentes códigos y un servidor que permita ejecutar todo ello. La ventaja está en que cualquier persona puede replicar el análisis al completo incluido en el código sin ningún requisito más que la conexión a internet, sin ocupar espacio ni, lo que es peor, estar pendiente de dependencias, versiones y cualquier tipo de incompatibilidad.

101 Innovations in Scholarly Communication. Fuente: https://101innovations.wordpress.com/

Por ello he creado una pequeña prueba a modo de guión con un conjunto muy pequeño de datos que usamos recientemente para ilustrar las posibilidades de WorldCat Identities . Este proceso está dividido en los sigueinte pasos:

1. El código (Jupyter notebook)

En primer lugar es necesario hablar de Jupyter, un entorno de programación web que soporta diferentes lenguajes de programación–sin ir más lejos su nombre proviene de Julia, Python y R–y cuya razón de ser es fomentar la accesibilidad y difusión de los códigos aquí generados, en especial en la Ciencia de Datos . Su punto fuerte para ello está en los notebook, documentos que permiten compartir el código bajo estándares abiertos y de manera visual e interactiva. Por lo que el paso inicial se encuentra en trabajar en Jupyter (en mi caso a través de Anaconda) bajo alguno de los numerosos lenguajes de programación que abarca (aquí con Python), obteniendo en última instancia un notebook en el que se combinan los códigos de Python y explicaciones con Markdown para mostrar de manera detallada todos los pasos realizados y los resultados obtenidos. Cabe destacar que este archivo puede ser también exportado, entre otros, a formato HTML. Si quieres empezar a trabajar con Jupyter y sus notebook aquí tienes un tutorial.

A continuación puedes ver un ejemplo de un Jupyter notebook que muestra la lectura de un fichero csv y que gracias a su formato HTML puede incrustarse en cualquier sitio con mucha facilidad:

2. Los repositorios (GitHub y Zenodo)

Ahora bien, una vez tenemos nuestro notebook listo toca alojar este, todos los datos y demás códigos involucrados en el análisis en GitHub (en mi caso están en esta branch). Como también he querido poner estos datos disponibles en Zenodo el paso que hay que dar es, una vez hecho lo anterior, vincular desde los ajustes de Zenodo tu cuenta de GitHub, seleccionando a continuación el repositorio en cuestión. Aquí tienes un tutorial muy detallado que explica cómo realizar dicha vinculación. Como recomendación decir que antes de pasar a Zenodo te asegures de que todo funciona correctamente para evitar acumular versiones de manera innecesaria (sí, ha sido mi caso con la versión 1.0).

3. El entorno virtual (Binder)

Por último, para la generación del entorno se utiliza Binder, cuyos sus servidores ponen a tu disposición una sesión con Jupyter/JupyterLab con todo nuestro entorno cargado para usarlo de igual forma que yo lo he hecho al realizar la notebook en mi ordenador. Para hacerlo solo hay que preparar una URL en la que le indiquemos dónde está nuestro repositorio con todo listo. Esto puede hacerse de una forma muy sencilla con un formulario desde su página principal o, si ya estás familiarizado, escribiéndola por tu cuenta. El requisito mínimo en cualquier caso es la ruta de GitHub o el DOI de Zenodo– ofrece compatibilidad con más repositorios –. Estas serían ambas:

Un vez entres en una de ellas y Binder cargue el entorno podrás ir ejecutando cada línea del código, pudiendo usarlo a tu gusto, como si te dejase mi ordenador con mi sesión local de Jupyter.

Como conclusión, quiero animaros a usar estas herramientas, las cuales ofrecen sin lugar a dudas un giro de tuerca a la difusión y reproducibilidad de vuestros códigos. Aún queda trabajo por delante para las Jupypter notebook, pero una vez has conseguido familiarizarte con ellas los resultados vistos te animarán a seguir profundizando en ellas.

Referencias

Perkel, J. M. (2018). Why Jupyter is data scientists’ computational notebook of choice. Nature, 563(7729), 145–146. Scopus. https://doi.org/10.1038/d41586-018-07196-1 Cite
McKiernan, E. C., Bourne, P. E., Brown, C. T., Buck, S., Kenall, A., Lin, J., McDougall, D., Nosek, B. A., Ram, K., Soderberg, C. K., Spies, J. R., Thaney, K., Updegrove, A., Woo, K. H., & Yarkoni, T. (2016). How open science helps researchers succeed. ELife, 5, e16800. https://doi.org/10.7554/eLife.16800 Cite
Torres-Salinas, D., & Arroyo-Machado, W. (2019). Library Catalog Analysis and Library Holdings Counts: origins, methodological issues and application to the field of Informetrics. Cite
Allen, C., & Mehler, D. M. A. (2019). Open science challenges, benefits and tips in early career and beyond. PLOS Biology, 17(5), e3000246. https://doi.org/10.1371/journal.pbio.3000246 Cite

Deja un comentario

Deja un comentario

A %d blogueros les gusta esto: