Forum *CreV* Strona Główna
POMOC Rejestracja SzukajFAQ Zaloguj
Ekstrakcja cech obrazowania komórek i klasteryzacja morfolog

 
Odpowiedz do tematu    Forum *CreV* Strona Główna » spambox Zobacz poprzedni temat
Zobacz następny temat
Ekstrakcja cech obrazowania komórek i klasteryzacja morfolog
Autor Wiadomość
ayshakhatun9365
Rekrut


Dołączył: 12 Lis 2024
Posty: 1

Post Ekstrakcja cech obrazowania komórek i klasteryzacja morfolog Odpowiedz z cytatem
VISTA-2D to nowy podstawowy model firmy NVIDIA, który umożliwia szybkie i dokładne wykonywanie segmentacji komórek, co jest podstawowym zadaniem w procesach obrazowania komórek i omiki przestrzennej, mającym kluczowe znaczenie dla dokładności wszystkich dalszych zadań.

Model VISTA-2D wykorzystuje koder obrazu do tworzenia osadzeń obrazu, które następnie może przekształcić w maski segmentacji (rysunek 1). Osadzenia muszą zawierać informacje o morfologii każdej komórki.

Diagram przedstawia dane wejściowe wykorzystane do trenowania Vista2D, architekturę modelu Vista2D oraz mapy segmentacji wyjściowej.
Rysunek 1. Architektura sieci VISTA-2D
Gdyby możliwe było wygenerowanie osadzenia dla każdej segmentacji komórki, wówczas można by uruchomić klasterowanie dla wszystkich osadzeń, a także zastosować metodę automatycznego grupowania komórek o podobnej morfologii.

W tym poście szczegółowo przeprowadzę Cię przez towarzyszący notatnik Jupyter, aby pokazać, jak można używać tych narzędzi do segmentowania komórek i wyodrębniania ich cech przestrzennych za pomocą VISTA-2D, a następnie grupowania tych cech komórek za pomocą RAPIDS . Tworzy to zautomatyzowany kanał do szybkiej klasyfikacji typów komórek.

Wymagania wstępne
Aby skorzystać z tego samouczka, będziesz potrzebować następujących zasobów:

Podstawowa znajomość Pythona, Jupyter i Dockera
Wersja Dockera 19.03+
Uruchomienie notatnika
Kod tego notatnika Jupyter znajduje się w repozytorium GitHub /clara-parabricks-workflows/vista2d_rapids_clustering i działa w kontenerze PyTorch Docker z NGC . Notatnik został zbudowany przy użyciu 24:03-py3znacznika dla tego kontenera. Uruchom kontener przy użyciu następującego polecenia:

docker run --rm -it \
-v /path/to/this/repo/:/workspace \
-p 8888:8888 \
--gpus all \
nvcr.io/nvidia/pytorch:24.03-py3 \
/bin/bash
To polecenie inicjuje następujące działania:

Uruchamia kontener Docker.
Montuje folder repozytorium w kontenerze.
Mapuje port 8888 na komputerze hosta na port 8888 w Dockerze.
Przypisuje wszystkie dostępne procesory GPU do kontenera.
Uruchamia kontener Lista adresów e-mail branżowych PyTorch.
Zwraca terminal.
Następnie będziesz potrzebować kilku dodatkowych pakietów Pythona, które znajdziesz w requirements.txt.

fastremap
tifffile
monai
plotly
Te pakiety są głównie przeznaczone do funkcji pomocniczych i wykresów, co staje się bardziej oczywiste w dalszej części tego wpisu. Na razie można je zainstalować na szczycie kontenera Docker:

pip install -r requirements.txt
Następnie uruchom notatnik:

jupyter notebook
Serwer notebooka jest teraz uruchomiony i można uzyskać do niego dostęp za pomocą przeglądarki internetowej, albo na tym samym komputerze, na którym uruchomiony jest serwer, albo na osobnym komputerze.

W przeglądarce wpisz adres IP komputera, na którym uruchomiony jest serwer, a następnie port 8888:

<ip-address>/8888
Teraz notatnik jest gotowy do uruchomienia. Aby uzyskać więcej informacji, zobacz repozytorium GitHub /clara-parabricks-workflows/vista2d_rapids_clustering .



Segmentacja komórek i ekstrakcja cech za pomocą VISTA-2D
Pierwsza połowa notatnika wykorzystuje dane z Live Cell w połączeniu z VISTA-2D do segmentacji komórek w obrazie i wyodrębniania cech za pomocą warstwy kodującej z samego modelu VISTA-2D.

Najpierw należy załadować punkt kontrolny modelu VISTA-2D, ponieważ ten notatnik nie koncentruje się na trenowaniu modelu, lecz na wykorzystaniu go w celu ekstrakcji cech.

model_ckpt = "cell_vista_segmentation/results/model.pt"
Następnie załaduj funkcje pomocnicze, które zapobiegną temu, aby główny notatnik był zbyt długi.

from segmentation import segment_cells, plot_segmentation, feature_extract
Następne sekcje oferują więcej informacji o tym, co robią te funkcje pomocnicze. Wszystkie można znaleźć w segmentation.py.

segmenty_komórek
Ta funkcja pobiera obraz komórki i przepuszcza go przez VISTA-2D od początku do końca. W rezultacie powstają dwa dodatkowe obrazy, jeden dla pełnej segmentacji i jeden z każdą komórką oznaczoną od 1 do liczby komórek znalezionych na obrazie (określanych w notatniku jako pred_mask). Umożliwia to indywidualne indeksowanie komórek w celu późniejszej ekstrakcji cech.

img_path="example_livecell_image.tif"
patch, segmentation, pred_mask = segment_cells(img_path, model_ckpt)
segmentacja_działki
Ta funkcja pobiera dane wyjściowe segment_cellsi wyświetla obrazy, aby można je było wizualnie zweryfikować pod kątem dokładności w maskach segmentacji i predykcji. Rysunek 2 pokazuje przykład, jak powinien wyglądać wynik, używając obrazu komórki dostarczonego w notatniku.

plot_segmentation(patch, segmentation, pred_mask)
Oryginalny obraz komórki w kolorze szarym.a) Oryginalny obraz komórki
Segmentacja wszystkich komórek tła, na żółtym tle.b) Segmentacje
Osobne maski dla każdej komórki.c) Maski indywidualne
Rysunek 2. Wyniki segmentacji VISTA-2D
Alt: Trzy obrazy pokazują wynik segmentacji VISTA-2D: oryginalny obraz komórki, segmentacja wszystkich komórek z tła oraz indywidualne maski dla każdej komórki.

ekstrakt_funkcji
Ta funkcja bierze każdą indywidualną segmentację komórki i generuje wektor cech. Każda komórka jest zawarta w kwadratowej masce przyciętej tak, aby pasowała tylko do jednej komórki i otaczającego ją tła. Używa pierwszej połowy modelu VISTA-2D jako kodera do generowania tych wektorów cech.

Pomysł polega na tym, że powstały wektor zawiera wszystkie informacje potrzebne do segmentacji komórek, a zatem musi również zawierać informacje o morfologii każdej komórki. Informacje te, jako wektor, można łatwo podłączyć do algorytmu klastrowania. Komórki o podobnej morfologii powinny mieć podobne wektory cech i zostać przypisane do podobnych klastrów.

cell_features = feature_extract(pred_mask, patch, model_ckpt)
W rezultacie powstaje macierz zawierająca num_cellswiersze i 1024kolumny, których długość jest równa długości wektora kodującego dla każdej komórki.

Teraz, gdy masz już wektory cech dla każdej komórki, czas poddać je wszystkie algorytmowi klasteryzacji przy użyciu RAPIDS.

Klastrowanie z RAPIDS
RAPIDS to biblioteka uczenia maszynowego akcelerowana przez GPU z dopasowanymi interfejsami API do powszechnie używanych bibliotek Python data science, takich jak pandas i sci-kit learn. W tym notatniku używasz tylko części RAPIDS dotyczących redukcji funkcji i klastrowania , ale dostępnych jest wiele innych ofert.

from cuml import TruncatedSVD, DBSCAN
Skrócony SVD
Wektory cech, które otrzymujesz z VISTA-2D, mają długość 1024. Jednakże, ponieważ masz tylko około 80 komórek na obrazie, nie ma sensu tworzyć klastrów z tak wieloma cechami.

Możesz użyć algorytmów redukcji wymiarowości, aby zmniejszyć długość tych osadzeń, minimalizując jednocześnie utratę informacji. W tym notatniku użyj algorytmu Truncated SVD , aby zmniejszyć wymiary z 1024do 3. Ułatwia to również wykreślanie klastrów, ponieważ możesz wizualizować klastry w przestrzeni 3D.

dim_red_model = TruncatedSVD(n_components=3)
X = dim_red_model.fit_transform(cell_features)
W rezultacie powstaje nowa macierz wektorów cech, Xktóra ma teraz rozmiar [num_cells, 3]zamiast oryginalnych wektorów w cell_features, które miały rozmiar [num_cells, 1024].

Skanowanie DBSCAN
W RAPIDS dostępnych jest wiele algorytmów klastrowania. W tym notebooku wybrałem DBSCAN . Tutaj ustawiasz eps (maksymalna odległość między dwoma punktami) na , 0.003a minimalną liczbę próbek dozwolonych do utworzenia klastra jako 2.

model = DBSCAN(eps=0.003, min_samples=2)
labels = model.fit_predict(X)
Uruchomienie fit_predictteraz daje etykietę klastra dla każdej komórki na obrazie. Jeśli przekonwertujesz listę etykiet na słownik etykiet, łatwiej będzie zobaczyć, które komórki zostały przypisane do których klastrów.

# Background is 0, so cell IDs start at 1
labels_dict = {x:np.add(np.where(labels==x),1) for x in np.unique(labels)}

# Label -1 means "data was too noisy" so we remove it
labels_dict.pop(-1)
labels_dict
Na koniec możesz użyć Plotly do skonfigurowania interaktywnego wykresu 3D pokazującego, gdzie została zgrupowana każda komórka.

plotly.offline.iplot(plot_figure)
Trójwymiarowy wykres punktowy, na którym każdy kolor reprezentuje inny klaster znaleziony przez RAPIDS.
Rysunek 3. Interaktywny diagram 3D, który powstaje na podstawie wykresu wektorów cech klastrowanych
Wniosek
W tym poście pokazałem, jak można użyć modelu VISTA-2D do segmentacji komórek w obrazie i wyodrębnienia wektorów cech z każdej z tych segmentowanych komórek. Pokazałem również, jak użyć RAPIDS do uruchomienia klastrowania na tych wektorach.

Więcej informacji znajdziesz w następujących zasobach:

/vista2d_rapids_clustering Notatnik Jupyter na GitHub
Rozwój segmentacji komórek i analizy morfologii dzięki modelowi NVIDIA AI Foundation Model VISTA-2D
Informacje na temat redukcji wymiarowości i klastrowania można znaleźć w dokumentacji RAPIDS w dokumencie API Reference
Powiązane zasoby
Kurs DLI: Deep Learning dla inspekcji przemysłowych
Kurs DLI: Klasyfikacja obrazów z TensorFlow: Klasyfikacja statusu chromosomu 1p19q Radiomics?€?
Sesja GTC: Komputerowe widzenie w medycynie genomicznej chorób rzadkich
Sesja GTC: Pierwsze w historii obrazowanie całego transkryptomu tkanek przy użyciu CosMx-SMI: zbiór danych o największej gęstości, jaki kiedykolwiek zebrano
Sesja GTC: MIM-CyCIF: Modelowanie obrazowania maskowanego w celu zwiększenia cyklicznej immunofluorescencji (CyCIF) z redukcją panelu i imputacją
Kontenery NGC: Relion
Omówić (1)

Gary jest architektem rozwiązań w NVIDIA w zespole Professional Visualizations, pracującym w Media and Entertainment. Dołączył do NVIDIA w 2017 roku po ukończeniu MIT ze stopniem naukowym z informatyki i neuronauki. Rola Gary'ego obejmuje bezpośrednią współpracę z klientami w celu tworzenia aplikacji wykorzystujących głębokie uczenie się do efektów wizualnych, w tym przetwarzania obrazu, lokomocji postaci i szacowania pozy.

_________________
Lista adresów e-mail branżowych
Wto Lis 12, 2024 04:36 Ogląda profil użytkownika Wyślij prywatną wiadomość
Reklama







Wto Lis 12, 2024 04:36
Wyświetl posty z ostatnich:    
Odpowiedz do tematu    Forum *CreV* Strona Główna » spambox Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1
Skocz do: 
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

*CreV*  

To forum działa w systemie phorum.pl
Masz pomysł na forum? Załóż forum za darmo!
Forum narusza regulamin? Powiadom nas o tym!
Powered by Active24, phpBB © phpBB Group
Design by Freestyle XL / Flowers Online