Obsah:

Projekt BME 60B Sandbox: 6 kroků
Projekt BME 60B Sandbox: 6 kroků

Video: Projekt BME 60B Sandbox: 6 kroků

Video: Projekt BME 60B Sandbox: 6 kroků
Video: BME Sandbox Project 2024, Červenec
Anonim
Projekt sandboxu BME 60B
Projekt sandboxu BME 60B

Náš projekt Sandbox má za cíl pomoci výzkumníkům v biologickém poli analyzovat vzorky buněk a zjistit podmínky jejich buněk. Poté, co uživatel zadá obrázek svého vzorku buňky, náš kód obrázek zpracuje, aby byl připraven k počítání buněk převedením obrázku na stupně šedi a binární. Kód využívá prahování k odstranění přebytečných informací, které se netýkají skutečných buněk, aby bylo možné přesně najít masy buněk. Po spočítání počtu buněk v obrázku náš kód udává velikost obrázku v pixelech a poté vyhledá rozložení oblasti buněk vynesením počtu buněk proti ploše buněk, aby měl uživatel k dispozici soutok, což je procento povrchu kultivační misky, která je pokryta sledovanými buňkami. Na základě soutoku může výzkumník určit, zda by buňky měly být pasážovány; pasážování buněk znamená prodloužení života nebo počtu buněk nebo mikroorganismů přenesením části kultury do čerstvého růstového média a je užitečné, když buňky rostou příliš velké nebo jim dochází jídlo. Po spuštění kódu a zpracování obrázku se uživatel může rozhodnout, zda výsledky přijme nebo odmítne, a v případě potřeby přistoupí k úpravě prahové hodnoty pro lepší načítání dat.

Krok 1: Vyberte a nakonfigurujte obrázek pro analýzu

Vyberte a nakonfigurujte obrázek pro analýzu
Vyberte a nakonfigurujte obrázek pro analýzu

Prvním krokem v našem kódu je vybrat příslušný obrázek a nakonfigurovat jej pro analýzu v Matlabu. Jsme schopni vybrat obrázek pomocí funkce uigetfile, která nám umožňuje uchopit jakýkoli soubor a vložit jej do programu. Poté pomocí imread přečteme obrázek a nakonfigurujeme jej pro analýzu v Matlabu. Vybraný obrázek se poté zobrazí na dílčí zápletce.

Krok 2: Prah a GUI

Prah a GUI
Prah a GUI
Prah a GUI
Prah a GUI

Na samém začátku kódu je vybrán obrázek pomocí „uigetfile“a poté definován tento obrázek pomocí proměnné. Proměnná pak bude použita k identifikaci kódu při spuštění jiné analýzy. Na obrázku je vytvořen subplot 2x2. Na pozici 1 se zobrazí původní obrázek. V další části kódu se odehrávají úpravy prahových hodnot. Zpočátku se používá výchozí hodnota prahové hodnoty 0,6, která se zobrazuje v poloze 2 podplochy. Pomocí příkazu if se pak určí, zda chce uživatel prahovou hodnotu ponechat nebo upravit. Uživatel pak může nastavit práh pomocí grafického uživatelského rozhraní, které obsahuje obrázek za různých prahových podmínek, posuvník a tlačítko pro uložení. Jakmile je prahová hodnota nastavena, uživatel kliknutím na tlačítko Uložit uloží obrázek a bude uložen v souborech MATLAB uživatelů jako soubor-p.webp

Krok 3: Vykreslení obrysů a distribuce buněk

Vykreslování obrysů a distribuce buněk
Vykreslování obrysů a distribuce buněk
Vykreslování obrysů a distribuce buněk
Vykreslování obrysů a distribuce buněk

Další část kódu vykresluje obrysy. Existuje smyčka, ve které jsou buňky uzavřeny červeným obvodem, a buňky, které jsou v horní části jiné buňky, jsou vyznačeny zeleně. Obrysový obrázek se pak zobrazí v pozici 3 s interaktivní čárou vzdálenosti. Tento řádek určí počet pixelů v linii upravený uživatelem pro převodník pixelů na milimetry. Faktor vzdálenosti se pak vynásobí plochou určenou rekvizitami regionu a plocha se nyní vyjádří v milimetrech na druhou. Data jsou poté vykreslena pomocí histogramu, aby bylo vidět rozložení buněk podle jeho oblasti. Tento histogram se poté zobrazí na pozici 4.

Krok 4: Převod obrázku buňky

Převést obrázek buňky
Převést obrázek buňky

V tomto kroku jsme pořídili obraz ve stupních šedi a binarizovali jsme, filtrovali a převraceli. Provedením těchto funkcí na obrázku byly odstraněny hlučné pixely, které by mohly být zaměněny za buňky, a obraz byl kolem okrajů buněk hladší a měkčí. To bylo provedeno k extrakci buněk v obrázku jako rozlišitelných „blobů“, které se lišily intenzitou od pozadí. „Blobs“byly bílé obrazy s vysokou intenzitou a pozadí bylo černé. Pokud je to dovoleno o něco více času, použili bychom místo funkce imbinarize jinou konverzi obrázku Blob, abychom byli přesnější a vhodnější pro naše obrázky, ale potřebovali jsme více času na výzkum a implementaci funkce.

Krok 5: Spočítat buňky a vypočítat soutok buněk

Spočítat buňky a vypočítat soutok buněk
Spočítat buňky a vypočítat soutok buněk

V tomto kroku kódu jsme si dali za cíl spočítat počet buněk, které byly na obrázku. K výpočtu ploch blobů jsme primárně použili funkci regionprops a pokud by byla plocha vypočítána tak, aby byla v naší požadované hranici, byla by vykreslena na subplot. Hranice byly nastaveny tak, aby byly odstraněny malé hlučné pixely nebo velké intenzity, které nebyly buňkami. Čítač buněk by pak spočítal centroidy, které byly poté vykresleny, a přidal je do čítače ve smyčce for. Jakmile byly určeny oblasti buněk, byli jsme schopni vypočítat soutok. Hlavním významem tohoto kroku v kódu bylo nalezení soutoku buněk a to bylo klíčové pro náš konečný cíl kódu. Udělali jsme to tak, že jsme spočítali součet pixelů (součet (allAreas)) v každém blobu a poté jej vydělili celkovou hodnotou pixelu obrázku (numel (img)). Tento poměr by nám poskytl soutok a kdyby byl stanoven na více než 80%, než je čas, aby byly buňky pasažovány výzkumníkem. Naším cílem bylo být co nejpřesnější a nejpřesnější, ale s omezeným časem, aby docházelo k nepřesnostem. Pokud by to čas dovolil, hledali bychom způsoby, jak zpřesnit počítání blobů, jako je více filtračních technik a/nebo Houghova transformace, protože dosud nebyl proveden dostatečný výzkum k vyzkoušení této filtrační techniky

Krok 6: Kruhovitost buněk

Kulatost buněk
Kulatost buněk
Kulatost buněk
Kulatost buněk

Než budeme moci změřit kulatost objektů blob v obrázku, musíme převést z RGB na stupně šedi, binarizovat, invertovat a filtrovat obrázek. Technika filtrování používá funkci bwareaopen, která filtruje požadovaný obrázek a odstraní všechny příliš malé specifikace nebo pixely, které nepředstavují velikost buňky. Je vytvořen strukturní prvek s tvarem disku a sousedstvím 2 a používá se k vyplnění mezer na pozadí nebo v buňkách. Poté použijeme funkci bwboundaries, která sleduje objekty blob a ukládá je do matice. Poté obrázek označíme pomocí různých barev, aby se stal jasnějším vizuálem. Dále pomocí smyčky for, která běží podle počtu objektů a děr nalezených na obrázku, nastaví hranici kolem blobů odpovídajících tomuto poli. Jakmile tato smyčka skončí, začne další smyčka, opět podle počtu objektů a děr nalezených na obrázku. Tentokrát používáme funkci regionprops, která shromažďuje určité vlastnosti jako oblast z pole a ukládá informace obsahující počet objektů a děr. Pomocí těchto informací vypočítáme plochu a obvod těchto objektů pomocí tvaru těžiště. Prah je nastaven, aby bylo možné porovnat výsledky, jakmile vypočítáme metrickou jednotku kruhového objektu a vykreslíme toto měření jako text vedle vypočtených centroidů. Konečný kód zobrazí zaoblení různých buněk nalezených na obrázku a všechny hodnoty blízké hodnotě jedna budou kulatější než ostatní. Hodnota 1 znamená, že buňka je dokonale kulatá a je v dobrém stavu k průchodu.

Doporučuje: