Taula de continguts:

Projecte Sandbox BME 60B: 6 passos
Projecte Sandbox BME 60B: 6 passos

Vídeo: Projecte Sandbox BME 60B: 6 passos

Vídeo: Projecte Sandbox BME 60B: 6 passos
Vídeo: APIs para Open Banking - Fabio Rosato | Sensedia 2024, Desembre
Anonim
Projecte BME 60B Sandbox
Projecte BME 60B Sandbox

El nostre Projecte Sandbox té com a objectiu ajudar els investigadors del camp biològic a analitzar mostres de cèl·lules i conèixer les condicions de les seves cèl·lules. Després que l'usuari introdueixi una imatge de la seva mostra de cel·la, el nostre codi processa la imatge per preparar-la per al recompte de cel·les convertint la imatge a escala de grisos i binària. El codi utilitza llindars per eliminar l’excés d’informació que no pertany a les cel·les reals per tal de trobar amb precisió les masses cel·lulars. Després de comptar el nombre de cel·les de la imatge, el nostre codi dóna la mida del píxel de la imatge i, a continuació, troba la distribució de l'àrea de la cel·la traçant el nombre de cel·les en comparació amb l'àrea de cel·les per tal de donar a l'usuari la confluència, que és la percentatge de la superfície d’un plat de cultiu que està cobert per les cèl·lules d’interès. Basant-se en la confluència, l’investigador pot determinar si s’han de passar les cèl·lules o no; el pas de cèl·lules es refereix a ampliar la vida o el nombre de cèl·lules o microorganismes mitjançant la transferència de part del cultiu a un nou medi de creixement, i és útil quan les cèl·lules creixen massa o es queden sense menjar. Després d’executar el codi i processar la imatge, l’usuari pot decidir si accepta o rebutja els resultats i procedir a ajustar el llindar per obtenir una millor recuperació de les dades si cal.

Pas 1: seleccioneu i configureu la imatge per a l'anàlisi

Seleccioneu i configureu la imatge per a l'anàlisi
Seleccioneu i configureu la imatge per a l'anàlisi

El primer pas del nostre codi és seleccionar la imatge adequada i configurar-la per analitzar-la a Matlab. Podem seleccionar la imatge mitjançant la funció uigetfile que ens permet agafar qualsevol fitxer i inserir-lo al programa. Després, amb imread, llegim la imatge i la configurem per analitzar-la a Matlab. La imatge seleccionada es mostra a continuació en una subtrama.

Pas 2: llindar i GUI

Llindar i GUI
Llindar i GUI
Llindar i GUI
Llindar i GUI

Al principi del codi, es tria una imatge amb "uigetfile" i després es defineix aquesta imatge amb una variable. La variable s'utilitzarà per identificar el codi quan s'executin diferents anàlisis. A la figura es crea una subtrama 2x2. A la posició 1, es mostrarà la imatge original. La següent secció del codi és on tenen lloc els ajustos dels llindars. Inicialment s’utilitza un valor per defecte d’un llindar de 0,6 i es mostra a la posició 2 de la subtrama. A continuació, s’utilitza una sentència if per determinar si l’usuari vol mantenir el llindar o ajustar-lo. L'usuari pot ajustar el llindar mitjançant una interfície gràfica d'usuari que inclou la imatge en diferents condicions de llindar, el control lliscant i un botó de desar. Un cop establert el llindar, l'usuari farà clic al botó Desa per desar la imatge i s'emmagatzemarà als fitxers MATLAB dels usuaris com a-p.webp

Pas 3: traçat de contorns i distribució de cel·les

Representació de contorns i distribució cel·lular
Representació de contorns i distribució cel·lular
Representació de contorns i distribució cel·lular
Representació de contorns i distribució cel·lular

La següent part del codi representa els contorns. Hi ha un bucle en què les cel·les estan tancades per un perímetre vermell i les cel·les que es troben a la part superior d’una altra cel·la es perfilen en verd. La imatge esbossada es mostra a la posició 3 amb una línia de distància interactiva. Aquesta línia determinarà el nombre de píxels del traç ajustat per l'usuari per a un convertidor de píxels a mil·límetres. El factor de distància es multiplica a continuació, l'àrea determinada pels punts de la regió i l'àrea ara s'expressa en mil·límetres al quadrat. Les dades es representen a continuació mitjançant un histograma per veure la distribució de les cèl·lules per la seva àrea. Aquest histograma es mostrarà a la posició 4.

Pas 4: converteix la imatge de la cel·la

Converteix la imatge de la cel·la
Converteix la imatge de la cel·la

En aquest pas vam agafar la imatge en escala de grisos i la vam binaritzar, filtrar i invertir. La realització d’aquestes funcions a la imatge va eliminar els píxels sorollosos que es podien confondre amb les cel·les i va fer que la imatge fos més suau i suau al voltant de les vores de la cel·la. Això es va fer per extreure les cel·les de la imatge com a "blobs" que es distingien per intensitat del fons. Els "Blobs" eren imatges en blanc d'alta intensitat i el fons era negre. Si se’ns permetés una mica més de temps, hauríem utilitzat una conversió d’imatges Blob diferent en lloc de la funció imbinarize per ser més exactes i adequats a les nostres imatges, però necessitaríem més temps per investigar i implementar la funció.

Pas 5: Compteu les cel·les i calculeu la confluència cel·lular

Compteu les cel·les i calculeu la confluència cel·lular
Compteu les cel·les i calculeu la confluència cel·lular

En aquest pas del codi, preteníem comptar el nombre de cel·les que hi havia a la imatge. Hem utilitzat principalment la funció regionalprops per calcular les àrees dels blobs i, si es calculava que l’àrea es trobava en el límit desitjat, es representaria en una subtrama. Els límits es van establir per eliminar petits píxels sorollosos o grans intensitats que no eren cel·les. El comptador de cel·les comptava llavors els centroides que es dibuixaven i els afegia al comptador del bucle for. Un cop determinades les àrees de les cèl·lules, vam poder calcular la confluència. La principal importància d’aquest pas en el codi era trobar la confluència de les cel·les i això era fonamental per al nostre objectiu final del codi. Ho vam fer calculant resumint els píxels (suma (allAreas)) de cada blob i dividint-lo pel valor total de píxels de la imatge (numel (img)). Aquesta proporció ens donaria la confluència i si es va determinar que era superior al 80% del que és hora que l'investigador passi les cèl·lules. Teníem com a objectiu ser el més precisos i precisos possibles, però amb el temps limitat, de manera que es va produir una imprecisió. Si el temps ens ho permetés, hauríem buscat maneres de fer el recompte de blobs més precís, com ara més tècniques de filtratge i / o una transformació de Hough, ja que encara no s’ha fet prou investigació per provar aquesta tècnica de filtratge.

Pas 6: rodonesa de les cèl·lules

Rotunditat de les cèl·lules
Rotunditat de les cèl·lules
Rotunditat de les cèl·lules
Rotunditat de les cèl·lules

Abans de poder mesurar la rodonesa del blob en una imatge, hem de convertir RGB a escala de grisos, binaritzar, invertir i filtrar la imatge. Una tècnica de filtratge utilitza la funció bwareaopen, que filtra la imatge d’interès i elimina les especificacions o píxels massa petits que no representin la mida d’una cel·la. Es crea un element estructurant amb forma de disc i veïnatge de 2 i s’utilitza per omplir qualsevol buit al fons o a les cel·les. A continuació, fem servir la funció bwboundaries que rastreja blobs i la guarda en una matriu. A continuació, etiquetem la imatge amb diferents colors perquè es converteixi en una imatge més clara. A continuació, mitjançant un bucle for que s'executa segons el nombre d'objectes i forats que es troben a la imatge, estableix un límit al voltant dels blobs corresponents a aquesta matriu. Un cop finalitzat aquest bucle, comença un altre bucle, de nou segons el nombre d'objectes i forats que es troben a la imatge. Aquesta vegada fem servir la funció regionprops que reuneix certes propietats com l'àrea de la matriu i emmagatzema la informació que conté el nombre d'objectes i forats. Mitjançant aquesta informació, calculem l’àrea i el perímetre d’aquests objectes mitjançant la forma del centreide. Es fixa un llindar per comparar els resultats un cop calculem la unitat mètrica d’un objecte circular i representem aquesta mesura com a text al costat dels centroides calculats. El codi final mostrarà la rodonesa de les diferents cel·les que es troben a la imatge i els valors propers al valor seran més rodons que altres. Un valor d’1 implica que la cèl·lula és perfectament rodona i que es troba en bones condicions per passar-la.

Recomanat: