{"id":48,"date":"2023-09-01T12:24:26","date_gmt":"2023-09-01T10:24:26","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/?page_id=48"},"modified":"2023-10-13T11:10:20","modified_gmt":"2023-10-13T09:10:20","slug":"introduccion","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/es\/","title":{"rendered":"Introducci\u00f3n"},"content":{"rendered":"<p>A medida que la cantidad de datos en el \u00e1rea de ciencias de la vida y en otras \u00e1reas del conocimiento aumenta exponencialmente, surge la necesidad de estructurar y manejar sistem\u00e1ticamente la informaci\u00f3n adquirida. Que los datos que manejamos sigan los principios <a href=\"javascript:void(0);\" class=\"tooltip\" data-toggle=\"popover\" data-placement=\"bottom\" data-content=\"En 2016 se establecieron las gu\u00edas de buenas pr\u00e1cticas del manejo de datos, para lo que se nombr\u00f3 los principios FAIR [1]. FAIR, del ingl\u00e9s <em>Findable, Accessible, Interoperable y Reusable<\/em>.<br> \r\n\r\n\u2022\tFindable: los datos y metadatos (informaci\u00f3n sobre los datos) deben ser f\u00e1cilmente encontrables tanto por humanos como por m\u00e1quinas.<br>\r\n\u2022\tAccessible: se debe saber c\u00f3mo se puede acceder a estos datos, incluyendo procesos de identificaci\u00f3n y autentificaci\u00f3n.<br>\r\n\u2022\tInteroperable: muchas veces los datos deben integrarse con otros datos o aplicaciones para su almacenamiento, procesamiento y an\u00e1lisis.<br>\r\n\u2022\tReusable: tanto los datos como los metadatos deben estar bien descritos por si los resultados deben ser replicados o reanalizados utilizando otros par\u00e1metros.\r\n\" data-placement=\"top\" data-html=\"true\" >FAIR<\/a>\r\n\r\n es fundamental para la correcta manipulaci\u00f3n de los datos y de su trazabilidad a lo largo del ciclo de vida del dato. Adem\u00e1s, hay dos procesos fundamentales, los cuales estudiaremos en los pr\u00f3ximos temas, que son la escalabilidad y la reproducibilidad.<\/p>\n<p>Tradicionalmente, a fin de minimizar el n\u00famero de pasos manuales que se llevan a cabo en un an\u00e1lisis, los procesos se han unido program\u00e1ticamente en los denominados <em>pipelines<\/em>. Esta concatenaci\u00f3n de procesos normalmente se estructura en archivos (<em>scripts<\/em>). Este tipo de automatizaci\u00f3n normalmente conlleva una elevada dependencia en las versiones del programario instaladas y en la arquitectura local del ordenador en el que se procesa.<\/p>\n<p>Como seguramente ya os habr\u00e9is dado cuenta, lenguajes de programaci\u00f3n como Python, <em>bash<\/em>, R, etc. ejecutan lo que se denominan paquetes. Los paquetes pueden contener programas que pueden ser utilizados para poder procesar los datos a analizar. Un paquete por s\u00ed solo normalmente no tiene todo el c\u00f3digo necesario para realizar sus funciones y necesita de otros a fin de ejecutarlas. De esta forma se reutiliza c\u00f3digo, minimizando el tiempo de desarrollo de un paquete y creando herramientas m\u00e1s robustas. Para poder gestionar las dependencias que un paquete tiene sobre otros aparecieron los gestores de paquetes (<em>apt, yum, Home Brew, pip<\/em>\u2026).<\/p>\n<p>En el proceso de utilizaci\u00f3n y actualizaci\u00f3n de los paquetes nos podemos encontrar con diversas dificultades. Durante el desarrollo de un paquete es posible que una funci\u00f3n se vea modificada, alterando los datos de entrada o salida, o eliminada en una versi\u00f3n m\u00e1s reciente del paquete. En el momento en que distintos paquetes dependen de esta funci\u00f3n se pueden producir problemas de compatibilidad y no es suficiente saber que un paquete depende de otro sino tambi\u00e9n si depende de una versi\u00f3n en espec\u00edfico. La actualizaci\u00f3n de un paquete puede representar que otro paquete ya no funcione. Eso conllevar\u00eda la necesidad de instalar dos versiones distintas del mismo software, hecho que muchas veces no es posible. Otra problem\u00e1tica asociada a las versiones de los paquetes es la reproducibilidad de resultados en sistemas distintos. Dos ordenadores podr\u00edan tener instalados los mismos paquetes y sus dependencias, pero con versiones distintas, produciendo resultados diferentes. En proyectos multic\u00e9ntricos a veces es necesario ejecutar los mismos procesos en cada una de las instituciones implicadas, con la seguridad de que no habr\u00e1 variabilidad en los resultados debido al procesamiento de los datos.<\/p>\n<p>As\u00ed, debemos controlar:<\/p>\n<ul>\n<li>La utilizaci\u00f3n de los mismos paquetes y de sus dependencias.<\/li>\n<li>La implementaci\u00f3n en otros entornos computacionales evitando que la configuraci\u00f3n local altere el resultado final.<\/li>\n<\/ul>\n<p>Para mantener una configuraci\u00f3n estable y aplicable a diferentes infraestructuras computacionales, fundamentalmente hay dos estrategias a seguir: la creaci\u00f3n de entornos fijos y\/o la creaci\u00f3n de contenedores.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A medida que la cantidad de datos en el \u00e1rea de ciencias de la vida y en otras \u00e1reas del conocimiento aumenta exponencialmente, surge la necesidad de estructurar y manejar sistem\u00e1ticamente la informaci\u00f3n adquirida. Que los datos que manejamos sigan los principios es fundamental para la correcta manipulaci\u00f3n de los datos y de su trazabilidad [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/es\/wp-json\/wp\/v2\/pages\/48"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/es\/wp-json\/wp\/v2\/comments?post=48"}],"version-history":[{"count":7,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/es\/wp-json\/wp\/v2\/pages\/48\/revisions"}],"predecessor-version":[{"id":318,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/es\/wp-json\/wp\/v2\/pages\/48\/revisions\/318"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/es\/wp-json\/wp\/v2\/media?parent=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}