La calidad de los biofármacos se ve influenciada por numerosos factores. Comprender estos factores es fundamental para ofrecer productos de la más alta calidad a los pacientes y para cumplir con las normativas vigentes. JMP es fácil de usar para la exploración de datos. Sin embargo, las correlaciones dentro de conjuntos de datos grandes o entre ellos suelen ser complejas, lo que requiere herramientas que no están disponibles en el entorno estándar de JMP.
Por otro lado, las capacidades de aprendizaje automático de Python ofrecen soluciones para casi cualquier problema de ciencia de datos. Desafortunadamente, usar código Python suele ser difícil para muchos expertos en la materia. Para abordar esta dificultad, mostramos cómo incorporar Python para resolver problemas de aprendizaje automático como alternativa a las funciones extendidas de JMP Pro.
Utilizamos JMP Journals para guiar al usuario a través de un flujo de trabajo de aprendizaje automático. Los pasos de visualización de datos, como la interpolación y otras medidas de limpieza, se realizan con JMP. La aplicación de algoritmos de aprendizaje automático y la validación se llevan a cabo con Python mediante pipelines de Scikit-learn. Finalmente, la visualización de los resultados se realiza nuevamente con JMP para permitir al usuario una adaptación sencilla de los gráficos.
Mostramos cómo se puede utilizar esta herramienta para identificar los factores que tienen mayor impacto en un determinado parámetro de salida.
Hoy quisiera aprovechar la oportunidad para hablarles sobre la integración de Python y JMP para utilizar las capacidades de exploración de datos de JMP y las capacidades de aprendizaje automático de Python. Pero antes, les explicaré por qué queremos hacerlo.
Trabajo para Rentschler Biopharma, donde producimos biofármacos mediante CDMO. Nuestro objetivo es, por supuesto, comprender y mejorar los procesos de producción. Para ello, primero debemos comprender el proceso y así podremos ofrecer la mejor calidad posible.
Si pensamos en un proceso de producción típico o en una etapa del proceso, aquí a la izquierda vemos una columna de cromatografía. Este es un paso habitual que realizamos para purificar cualquier proteína. Conocemos varios factores que influyen en esta etapa del proceso, como la densidad de carga, la velocidad de flujo, el pH o la temperatura.
Además, por supuesto, todo proceso de producción consta de muchos de estos pasos. Por ejemplo, un biorreactor, una filtración, varias etapas de cromatografía o una diafiltración. Cada paso del proceso está influenciado por numerosos factores.
Durante la caracterización de procesos, es decir, al inicio de cualquier proyecto de desarrollo, solemos utilizar el diseño de experimentos. Por ejemplo, variamos la velocidad de flujo, el pH y la densidad de carga para observar cómo interactúan y cómo, individualmente o en conjunto, influyen en la calidad del producto. Esto constituye un excelente punto de partida para una campaña de calificación de procesos o para iniciar un proceso comercial.
Sin embargo, después de un tiempo, habrás generado una gran cantidad de datos de una producción comercial. Si bien se trata de datos aleatorios, ilustran brevemente lo que sucedería al generar tan solo 100 lotes, obteniendo así una variedad de datos sobre la calidad del producto. Tu objetivo sería comprender cómo se ve afectada la calidad del producto por algún factor o quizás por algún aspecto que hayas pasado por alto en la caracterización del proceso. Para ello, el aprendizaje automático es una herramienta ideal.
Sin embargo, la mayoría de las pymes, los expertos que comprenden el proceso, no están familiarizados con el aprendizaje automático ni necesariamente se sienten cómodos escribiendo código. Por otro lado, los informáticos a menudo desconocen los procesos biológicos, lo que puede dar lugar a predicciones bastante extrañas.
La idea es utilizar JMP, que es fácil de usar para las PYMES, para sacar el máximo provecho de los datos y usar el aprendizaje automático sin que nadie se dé cuenta del código que hay detrás.
Para ello, utilizo un cuaderno JMP, que es fácil de usar y que les mostraré en unos minutos. En cuanto al flujo de trabajo, usamos JMP para algunos pasos del proceso y, en segundo plano, Python para otros procesos, pero el usuario nunca verá código Python.
Por ejemplo, en JMP, se exploran los datos, se limpian, se escalan o se crean características; todos estos son pasos típicos que consumen la mayor parte del tiempo de cualquier científico de aprendizaje automático.
Posteriormente, estos datos se transfieren directamente a Python, donde se realizan tareas típicas de aprendizaje automático, como la selección de modelos o el ajuste de hiperparámetros. Luego, los datos regresan a JMP para su visualización. Finalmente, si se desea generar un informe a partir de estos datos, Python también puede hacerlo fácilmente sin que el usuario tenga que escribirlo manualmente.
Una idea sería, por ejemplo, que al considerar el escalado de parámetros, un algoritmo de aprendizaje automático preferiría que todo estuviera en la misma escala; de lo contrario, un factor podría dominar el modelo. Por supuesto, esto depende del algoritmo que se utilice. Pero la idea general es que el escalado ayuda, que todo es comparable y que ningún factor obtiene una ventaja indebida en el modelo.
Para ello, utilizamos el diario JMP, que les mostraré ahora. Este diario tiene este aspecto. Partimos de datos iniciales, ya sean datos de calidad del producto o una tabla de ejemplo con datos aleatorios.
Lo que verás con frecuencia es que no todos los tipos de datos son correctos. Por ejemplo, aquí, las tres primeras columnas son datos categóricos. Quizás quieras convertirlos a datos numéricos para tu algoritmo. Por otro lado, puede que tengas factores que ahora son continuos, pero te gustaría convertirlos a categóricos. Esto también se puede hacer fácilmente.
Luego, algo que también sucede con frecuencia, es posible que falten algunos datos. Como puedes ver en la columna de pH, faltan algunos datos. Entonces te preguntarás: ¿cómo puedo solucionarlo? Puedes completarlos fácilmente. Puedes completarlos con predicciones, pero digamos que los completamos de forma muy sencilla con la media o la mediana de nuestros valores. Tomemos la media. Se completa automáticamente.
Finalmente, llegamos a un enfoque de escalado. Veamos, quieres escalar esto en el mismo eje. Es la estandarización. Tienes estos factores aquí. Quieres ejecutar eso con codificación one-hot. También solo tienes que hacer clic. Luego podrías tener otros factores que sean logarítmicos. La misma idea. Simplemente haces una transformación lognormal y alguna concentración que también podrías querer escalar.
Al final, por supuesto, todavía tienes la columna de resultados y muchas columnas transformadas que puedes usar para cualquier modelo. Luego puedes revisarlas y pasárselas a Python. Simplemente encontrarías lo que deseas predecir. Puedes ver que quizás Elastic Net sea decente, o que la regresión sea la mejor. Usemos ambas para ver si hay alguna diferencia. Luego puedes usar algunos ajustes de hiperparámetros en segundo plano y ver cómo podrían funcionar. Esto, por supuesto, requiere un poco más de trabajo para la computadora.
Con estos dos modelos, se puede observar que ambos identifican tres factores que influyen en la predicción de la columna final, como el pH A, el tiempo u otro factor. En esencia, ambos modelos hacen lo mismo, lo cual es muy útil. Estos serían los tres factores que podrían interesarle y que le gustaría investigar. Dicho esto, también me gustaría agradecerle su atención.