La búsqueda global no está activada.
Salta al contenido principal
Foro

Foro de debate módulo 2

Lenguajes de programación en Bioinformática / Programming languages in Bioinformatics

Lenguajes de programación en Bioinformática / Programming languages in Bioinformatics

de Pedro Carmona - Número de respuestas: 9

Hola !

Durante este módulo aprenderemos algunos de los análisis que se realizan en datos -ómicos (concretamente en transcriptoma). Para ello, los ejecutaremos utilizando el lenguaje R, que es uno de los más utilizados en el campo de la bioinformática. No obstante, también es muy común el uso de otros lenguajes como Python.

Nos gustaría que compartierais vuestras opiniones sobre los lenguajes de programación en bioinformática. ¿Creéis que alguno es más recomendable en particular? ¿Para qué tipos de problemas consideráis que es más adecuado uno u otro?

-----------

During this module we will learn some of the analyses that are performed on -omics data (specifically on transcriptome). To do so, we will run them using the R language, which is one of the most widely used in the field of bioinformatics. However, it is also very common to use other languages such as Python.

We would like you to share your opinions about programming languages in bioinformatics: Do you think that any of them is more recommendable in particular? For which types of problems do you consider that one or the other is more suitable?

En respuesta a Pedro Carmona

Re: Lenguajes de programación en Bioinformática / Programming languages in Bioinformatics

de Diego Herrera Ochoa -
Buenas, soy Diego Herrera Ochoa y, por lo que he estado leyendo en diversos sitios web, R es un programa pensado mas en estadística y visualización, mientras que python es mas potente para manipular y transformar datos y especialmente en desarrollar modelos de machine learning. Aunque hay que resaltar que ambos lenguajes sirven para estas tareas. Aprovecho este mensaje para preguntar sobre que grado de conocimiento es necesario de estos lenguajes para emplear el machine learning en investigación científica. Tengo nociones básica en python, pero no se si son suficientes. ¿Existe algún curso online que permite formarte en R y/o python para su uso en investigación? Gracias
En respuesta a Diego Herrera Ochoa

Re: Lenguajes de programación en Bioinformática / Programming languages in Bioinformatics

de Pedro Carmona -
Hola Diego
Hay muchos recursos online, tanto textos como cursos de acceso abierto. Diferentes editoriales tienen con buenos textos, pero por mencionar alguna, los libros de O'Really son temáticos y tienen un nivel adecuado para empezar, incluyen el código para ejecutar los diferentes métodos. Muchos los puedes encontrar online. Uno más avanzado que también está disponible por la editorial, con explicación de los métodos y el código en R es "An Introduction to Statistical Learning with Applications in R". Lo puedes consultar en https://link.springer.com/book/10.1007/978-1-0716-1418-1

Animo al resto de tus compañeros a compartir sus impresiones y si tienen alguna recomendación en este aspecto
--------------------------
Hi Diego
There are many online resources, both texts and open access courses.
There are different publishers with good texts, but to name a few, the books from O'Really publishers are thematic and have an adequate level to start with, they include the code to run the different methods. Many can be found online. A more advanced one that is also available from the publisher, with explanation of the methods and code in R is.
“An Introduction to Statistical Learning with Applications in R”. You can check it out at https://link.springer.com/book/10.1007/978-1-0716-1418-1

I encourage the rest of your colleagues to share their impressions and if they have any recommendations in this regard.
En respuesta a Pedro Carmona

Re: Lenguajes de programación en Bioinformática / Programming languages in Bioinformatics

de José Barberá García -
Hola,
Para interpretar y visualizar los datos a nivel estadístico R siempre me ha sido una buena opción, lo único que pienso que R no es un código muy eficiente a la hora de tratar grandes cantidades de datos, ya que desde mi experiencia tarda más en realizar los cálculos correspondientes, esto hace que una gran masa de cálculos aumente el tiempo de espera mucho tiempo, ya que los paquetes a utilizar y todo tienen funcionalidades que en ese momento no te son de utilidad pero aun asi los ejecuta. Fortran o lenguajes como Phython para mí son buenas alternativas. (Ejemplo real personal, Fortran me tardo 24 horas, R me tardo 2 días) ¿Pensáis que es así o es simplemente mala experiencia mía?.
En respuesta a José Barberá García

Re: Lenguajes de programación en Bioinformática / Programming languages in Bioinformatics

de Pedro Carmona -
Hola José
Efectivamente, uno de los puntos débiles de R es la gestión de la memoria que hace ya que en no es eficiente en comparación con otros lenguajes. Esto hace que trabajar con grandes conjuntos de datos en el entorno habitual sea problemático necesitando buscar soluciones para poder ser procesados con R.
En muchos procesos de análisis en bioinformática con volúmenes grandes de datos, como en datos de NGS, se suele hacer uso de varios lenguajes, haciendo parte de los procesos más costosos en Python y los análisis posteriores, una vez los datos están procesados, en R.
---------
Hi José
Indeed, one of the weaknesses of R is its memory management, which is not efficient compared to other languages. This makes working with large data sets in the usual environment problematic, requiring solutions to be found in order to be able to process them with R.
In many analysis processes in bioinformatics with large volumes of data, such as NGS data, several languages are often used, with some of the most expensive processes being done in Python and the subsequent analysis, once the data is processed, in R.
En respuesta a Pedro Carmona

Re: Lenguajes de programación en Bioinformática / Programming languages in Bioinformatics

de María Isabel Aranda Olmedo -
Hola. Para mí este Módulo está siendo un gran reto y muy provechoso. Aunque he utilizado Qiime (escrito en Python y ejecutado en Linux) para estudios de diversidad microbiana, no estoy familiarizada con estos lenguajes de programación. Aun así, me he atrevido a usar Google Colab y ¡todo ha ido sobre ruedas! Estoy muy motivada sonrisa
Con respecto a la pregunta que formulas en este hilo, he estado buscando información (aún no tengo un criterio basado en mi propia experiencia).
Entiendo que Python es un lenguaje muy completo y generalizado y R es un lenguaje más restringido a círculos académicos y de I+D. Por facilidad de uso, R puede considerarse más amigable (sobre todo si se parte de cero idea de programación). Por ejemplo, la limpieza de datos con el paquete DPLYR de R es más fácil que la limpieza de datos con Pandas, la librería de Python (porque en esta última no hay interfaz gráfica). Además, con R se puede empezar por aprender comandos y hacer "cositas" útiles aunque no se sepa inicialmente programación. En cuanto a la estadística, muchos dicen que es mejor R pero, en realidad, no es por lo que permite hacer (ya que Python tiene librerías que hacen tareas semejantes). El verdadero motivo es que la alta calidad de los paquetes de estadística de R está garantizada por el hecho de que son mantenidos por investigadores reconocidos y cuyos resultados están contrastados y publicados en revistas científicas. Por el contrario, los paquetes de estadística de Python son de contribuyentes anónimos de la comunidad de código abierto y esto los hace menos confiables (por lo visto, ya ha supuesto más de un problema). En cuanto a la visualización, el paquete ggplot2 de R es más intuitivo que las librerías de visualización de Python.
Dicho todo esto, parece que al final, aunque R es más atractivo, es necesario aprender también Python, por lo extendido de su uso. La Ciencia de datos a gran escala y la inteligencia artificial están hechas en Python, y la mayoría de las empresas emplean Python (que genera dinero); la excepción está muchas veces en las empresas que hacen I+D (que usan R, porque están constituidas por profesionales de entornos académicos que ya usaban R).
En respuesta a María Isabel Aranda Olmedo

Re: Lenguajes de programación en Bioinformática / Programming languages in Bioinformatics

de Coral del Val Muñoz -

Hola Mari Angeles,

¡Excelente reflexión! Coincido en que R y Python no son excluyentes, sino complementarios. Cada uno destaca en áreas específicas, por lo que en la práctica muchas veces se combinan para aprovechar sus fortalezas.

Ventajas de R

  1. Capacidades estadísticas y modelado
  • R fue concebido inicialmente para análisis estadístico, lo que lo hace muy potente para modelado, pruebas de hipótesis y análisis exploratorio.
  • El respaldo académico y el escrutinio científico de muchos de sus paquetes (CRAN, Bioconductor) proveen un alto estándar de calidad.
Preprocesamiento y manipulación de datos con dplyr
  • La sintaxis de “verbos” como select(), filter(), mutate() o summarize() resulta muy intuitiva y expresiva.
  • Facilita la limpieza y transformación de datos sin requerir una carga conceptual de programación demasiado alta.
Visualizaciones con ggplot2
  • Permite crear gráficos de muy alta calidad (publicables) con una gramática de gráficos clara y coherente.
  • Su integración con dplyr y otros paquetes del “Tidyverse” agiliza mucho el flujo de trabajo.
Interpretabilidad en Machine Learning con DALEX
  • Paquetes como DALEX o su extensión DALEXtra facilitan la explicación de modelos tipo “caja negra” (random forest, gradient boosting, redes neuronales, etc.).
  • Funciones para calcular importancia de variables, gráficos de dependencia parcial e incluso explicaciones locales (ej. LIME) están muy bien documentadas y con fuerte respaldo académico.

Ventajas de Python

  1. Ecosistema de Machine Learning y Deep Learning
  • Librerías como scikit-learn (modelos clásicos de ML) y frameworks como TensorFlow o PyTorch (Deep Learning) lideran la industria.
  • Amplio soporte de la comunidad y documentación extensa.
Manipulación de datos con pandas
  • Aunque su sintaxis puede parecer más “verbosa” que la de dplyr, una vez que le agarras el truco es muy eficiente para grandes volúmenes de datos.
  • Su integración con NumPy, SciPy y el ecosistema de Python es muy sólida.
Entornos productivos e industriales
  • Python se usa ampliamente en empresas y startups que requieren integrar de forma sencilla sistemas de backend, web y análisis de datos.
  • La comunidad es enorme y la velocidad de desarrollo de nuevos paquetes es muy alta.

¿Cuál elegir?

  • Investigación y prototipado estadístico: Muchos grupos académicos y de I+D prefieren R por la solidez de los paquetes estadísticos, la facilidad de creación de gráficos de calidad y la rápida comprobación de hipótesis.
  • Data Science industrial y escalabilidad: Python lleva la delantera en integración con plataformas, desarrollo web, deployment de modelos en producción y Deep Learning.

No es raro usar ambos lenguajes en un flujo de trabajo híbrido. Por ejemplo:

  • Realizar limpiezas de datos exploratorias y prototipos estadísticos en R (usando dplyr, ggplot2, DALEX, etc.).
  • Exportar conjuntos de datos depurados para entrenar redes neuronales o modelos de gran escala en Python (con PyTorch o TensorFlow).
  • Incluso existen librerías o extensiones (reticulate en R, por ejemplo) que permiten mezclar ambos lenguajes en un mismo entorno (RMarkdown, Jupyter Notebooks, etc.).
En conclusión, no hay por qué casarse con un solo lenguaje. Cada uno aporta soluciones potentes en ámbitos distintos y el valor real surge cuando sabemos escoger la mejor herramienta para cada tarea.
--------------------

Advantages of R

  1. Statistical Capabilities and Modeling
  • R was initially developed for statistical analysis, making it very powerful for modeling, hypothesis testing, and exploratory analysis.
  • The academic backing and scientific scrutiny of many of its packages (CRAN, Bioconductor) provide a high standard of quality.
Data Preprocessing and Manipulation with dplyr
  • The syntax of “verbs” like select(), filter(), mutate(), or summarize() is highly intuitive and expressive.
  • It facilitates data cleaning and transformation without requiring a heavy programming load.
Visualizations with ggplot2
  • Enables the creation of high-quality (publication-ready) plots using a clear and consistent grammar of graphics.
  • Its integration with dplyr and other “Tidyverse” packages greatly speeds up the workflow.
Machine Learning Interpretability with DALEX
  • Packages such as DALEX or its extension DALEXtra make it easier to explain “black box” models (random forest, gradient boosting, neural networks, etc.).
  • Functions to compute variable importance, partial dependence plots, and even local explanations (e.g., LIME) are well-documented and have strong academic support.

Advantages of Python

  1. Machine Learning and Deep Learning Ecosystem
  • Libraries like scikit-learn (classic ML models) and frameworks like TensorFlow or PyTorch (Deep Learning) lead the industry.
  • It has extensive community support and thorough documentation.
Data Manipulation with pandas
  • Although its syntax may seem more “verbose” than dplyr, once you get the hang of it, it’s highly efficient for large volumes of data.
  • It integrates solidly with NumPy, SciPy, and the broader Python ecosystem.
Production and Industrial Environments
  • Python is widely used in companies and startups that need to easily integrate backend systems, web applications, and data analysis.
  • The community is huge, and the pace of new package development is very high.

Which One Should You Choose?

  • Research and Statistical Prototyping: Many academic and R&D groups prefer R due to the robustness of its statistical packages, the ease of producing quality graphs, and rapid hypothesis testing.
  • Industrial Data Science and Scalability: Python takes the lead in platform integration, web development, model deployment in production, and Deep Learning.

It’s not uncommon to use both languages in a hybrid workflow. For example:

  • Perform exploratory data cleaning and statistical prototyping in R (using dplyr, ggplot2, DALEX, etc.).
  • Export cleaned datasets to train neural networks or large-scale models in Python (with PyTorch or TensorFlow).
  • There are even libraries or extensions (like reticulate in R) that allow mixing both languages in the same environment (RMarkdown, Jupyter Notebooks, etc.).
In conclusion, there’s no need to commit to just one language. Each provides powerful solutions in different domains, and real value emerges when we know how to choose the best tool for each task.
En respuesta a Pedro Carmona

Re: Lenguajes de programación en Bioinformática / Programming languages in Bioinformatics

de Dr.Asma sbaih -
Hello!

Both R and Python are widely used in bioinformatics. R excels in statistical analysis and visualization (e.g., Bioconductor for transcriptomics), while Python is better for machine learning, automation, and large-scale data handling. Many bioinformaticians use both, leveraging R for statistics and Python for AI-driven applications.

Best,
En respuesta a Dr.Asma sbaih

Re: Lenguajes de programación en Bioinformática / Programming languages in Bioinformatics

de Pedro Carmona -
Hola Asma
Sí, son buenos puntos los que comentas. En datos de NGS por ejemplo es frecuente combinar ambos en el flujo de trabajo, haciendo las más costosas computacionalmente en Python/shell script y una vez procesados los datos, los análisis posteriores y visualizaciones en R. Y para desarrollo de software, ¿Cuál creeis que es la mejor opción?
----
Hi Asma
Yes, those are good points you are commenting on. In NGS data for example it is common to combine both in the workflow, doing the more computationally expensive ones in Python/shell script and once the data is processed, the subsequent analyses and visualizations in R. And for software development, which do you think is the best option?