• No se han encontrado resultados

4. Método propuesto

4.2. Desarrollo y herramienta

La herramienta desarrollada atravesó varias etapas. Se partió de un proto- tipo desarrollado en Python y luego de varias pruebas se decidió continuar el desarrollo en Java.

4.2.1. Phyton

El desarrollo en Python se realiza directamente abriendo la consola desde imageJ y almacenando un archivo de tipo script que contiene la herramienta. Es un modo muy simple para ir desarrollando y realizando pruebas sobre la funcionalidad de modo inmediato ya que es un lenguaje interpretado por lo tanto no requiere compilación previa.

4.2.2. Java

El desarrollo en Java comenzó creando un proyecto que utiliza como librería el código fuente de imageJ y se conguró de modo que al compilar se genera un archivo .jar que se utiliza luego como plugin en imageJ.

Personalmente se prerió desarrollar en este lenguaje por una cuestión de familiaridad en cuanto a manejar las diferentes interfaces de la herramienta. La interfaz gráca se divide en cinco clases principales las cuales permiten navegar entre dos modos: búsqueda de parámetros y conteos celulares. La estructura se muestra grácamente en la Figura 4.24.

Figura 4.24: Diagrama de clases referidas a la interfaz de la herramienta. 4.2.3. Herramienta

En base a los algoritmos y métodos presentados en las secciones anteriores de este capítulo, se seleccionó un conjunto de parámetros que puedan ser modi- cados por el usuario de la herramienta y en la interfaz de usuario de la misma, se incluyeron controles para poder manipular los valores de dichos parámetros. En la Figura 4.25 se presenta una impresión de pantalla de la interfaz de usua-

rio. El resto de los parámetros que no se observan en dicha Figura se almacenan como parámetros y constantes internas del código fuente.

Figura 4.25: Interfaz de la herramienta que permite congurar los parámetros previo al conteo.

4.2.4. Búsqueda de parámetros

Se implementó una opción en la herramienta que permite buscar los pará- metros más cercanos que logren un resultado óptimo basándose en un conteo que se haya realizado manualmente. Es útil para encontrar los parámetros más óptimos para todas las imágenes de un mismo experimento.

El algoritmo implementado para esta herramienta consiste en ir iterando sobre los rangos de parámetros ingresados por el usuario y a medida que se van realizando conteos se van almacenando los resultados.

Esta solución fue pensada para aquellos casos en los cuales no se encuentre un conteo que se asemeja al realizado manualmente, para que simplemente haga falta un conteo manual en una sola imagen perteneciente a un experimento y obtener así los parámetros óptimos para el experimento completo. Esto se basa en la hipótesis de que las diversas imágenes pertenecientes a un mismo experimento conservan mayormente una distribución de valores de intensidad uniforme entre sí. En base a las pruebas realizadas, presentadas en la Sección 4.1.2.1.1, se puede observar que la variabilidad de la intensidad debido al día del experimento hace que esta hipótesis sea falsa. De ese modo, el cientíco ejecuta la búsqueda de parámetros para la imagen contada manualmente por él y con los valores obtenidos realiza el conteo semi automático de la herramienta para el resto de las imágenes del experimento.

La búsqueda de parámetros ocurre principalmente en una clase que realiza la iteración sobre cada patrón de búsqueda. Un patrón de búsqueda es una combinación posible de umbrales para realizar un conteo, estos se encuentran entre los rangos ingresados mediante la interfaz de la aplicación.

Figura 4.26: Estructura de clases relacionada a la búsqueda de parámetros. 4.2.5. Citoplasmas

La herramienta también presenta una opción que permite contar los cito- plasmas presentes en los diferentes canales. Para lograr este objetivo se utilizó el mismo algoritmo para el conteo de núcleos positivos ante diferentes proteínas pero tomando el doble del área para abarcar la zona alrededor del núcleo.

Con tal de evitar conteos duplicados, es decir contar un citoplasma como positivo para un núcleo cuando en realidad se está contando una zona de un núcleo vecino se pondera cada píxel analizado según si pertenece a una célula ya visitada o no. En caso de ser un píxel perteneciente al área de otra célula ya

visitada se pondera como 0.5 puntos, en caso de no pertenecer se pondera como 1 punto.

La opción de contar citoplasmas es congurable en la interfaz de la herra- mienta, el usuario puede decidir si quiere o no realizar este conteo.

Figura 4.27: Áreas que se recorren para detectar núcleos y citoplasmas positivos. 4.2.6. Conteos simultáneos

El conteo de múltiples canales simultáneos se realiza al nalizar de un modo muy simple. Se recorre la tabla de resultados y por cada partícula se busca el elemento en la lista de regiones y se extrae la información de los conteos para cada canal (en cuales dio positivo y en cuales negativo).

Se realiza el conteo múltiple para todas las combinaciones posibles entre los canales de proteínas, es decir:

Falso para todos los canales de proteínas (canal 2,3 y 4). Verdadero para canal 2, falso para canales 3 y 4.

Verdadero para canal 2 y 3, falso para canal 4. Falso para canal 2 y 3, verdadero para canal 4. Verdadero para canal 2 y 4, falso para canal 3. Falso para canal 2, verdadero para canal 3 y 4. Verdadero para los canales 2, 3 y 4.

5. Resultados

Con el n de medir los resultados de la herramienta en cuanto a la ecacia para el conteo de núcleos propiamente dichos y de proteínas, tanto dentro del núcleo como en el citoplasma, se puso la misma a disposición de los expertos. Se seleccionó un conjunto de experimentos sobre los cuales aplicar la herramienta. El criterio de selección fue dado por las necesidades prácticas de los expertos, lo cual implicó que las imágenes disponibles fuesen muy heterogéneas debido a las diferencias entre experimentos. A medida que se fue desarrollando la herra- mienta se fue evaluando con diferentes conjuntos de datos que se presentan en las secciones siguientes. En la Sección 5.1 se presentan los resultados en cuanto a ecacia en el conteo. En la Sección 5.2 se describen otros resultados basán- dose en diferentes factores como tiempo de conteo y determinismo. Finalmente en la Sección 5.3 se presenta comparativamente los resultados de este trabajo con los de los enfoques basados en Deep Learning mencionados en la Sección 3.4.3, cuyo entrenamiento fue realizado mediante los resultados provenientes de la herramienta construida en este trabajo.

Documento similar