Artykuł metodologiczny

Metoda rekonstrukcji 3D i analizy w wirtualnej rzeczywistości komórek glejowych i neuronalnych

DOI:

10.3791/59444

28 września 2019

W tym artykule

Podsumowanie

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Opisany potok jest przeznaczony do segmentacji zestawów danych mikroskopii elektronowej większych niż gigabajty, w celu wyodrębnienia morfologii całych komórek. Po zrekonstruowaniu komórek w 3D, dostosowane do indywidualnych potrzeb oprogramowanie może być wykorzystane do przeprowadzenia analizy jakościowej i ilościowej bezpośrednio w 3D, wykorzystując również rzeczywistość wirtualną do pokonania okluzji widoku.

Streszczenie

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Seryjne cięcie i późniejsze obrazowanie tkanki biologicznej w wysokiej rozdzielczości za pomocą mikroskopii elektronowej (EM) pozwalają na segmentację i rekonstrukcję obrazowanych stosów o wysokiej rozdzielczości w celu ujawnienia ultrastrukturalnych wzorców, których nie można było rozwiązać za pomocą obrazów 2D. Rzeczywiście, to ostatnie może prowadzić do błędnej interpretacji morfologii, jak w przypadku mitochondriów; Wykorzystanie modeli 3D jest zatem coraz powszechniejsze i stosowane do formułowania hipotez funkcjonalnych opartych na morfologii. Do tej pory wykorzystanie modeli 3D generowanych ze stosów obrazów świetlnych lub elektronowych sprawia, że oceny jakościowe, wizualne, a także kwantyfikacja są wygodniejsze do wykonywania bezpośrednio w 3D. Ponieważ modele te są często niezwykle złożone, ważne jest również, aby skonfigurować środowisko rzeczywistości wirtualnej, aby przezwyciężyć okluzję i w pełni wykorzystać strukturę 3D. Tutaj szczegółowo opisano przewodnik krok po kroku od segmentacji obrazu do rekonstrukcji i analizy.

Wprowadzenie

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Pierwszy proponowany model dla zestawu mikroskopii elektronowej umożliwiającego zautomatyzowane seryjne przekroje i obrazowanie pochodzi z 1981 roku1; rozpowszechnienie takich zautomatyzowanych, ulepszonych ustawień do obrazowania dużych próbek za pomocą EM wzrosło w ciągu ostatnich dziesięciu lat2,3, a prace prezentujące imponujące gęste rekonstrukcje lub pełne morfologie natychmiast nastąpiły4,5,6,7,8,9,10.

Produkcja dużych zbiorów danych wiązała się z potrzebą ulepszenia potoków do segmentacji obrazów. Narzędzia programowe do ręcznej segmentacji odcinków szeregowych, takie jak RECONSTRUCT i TrakEM211,12, zostały zaprojektowane do transmisyjnej mikroskopii elektronowej (TEM). Ponieważ cały proces może być niezwykle czasochłonny, narzędzia te nie są odpowiednie w przypadku tysięcy seryjnych mikrofotografii, które mogą być automatycznie generowane za pomocą najnowocześniejszych, zautomatyzowanych technik przekrojów szeregowych EM (3DEM), takich jak skaningowa mikroskopia elektronowa z blokową powierzchnią czołową (SBEM)3 lub mikroskopia elektronowa ze skaningową wiązką jonów (FIB-SEM)2. Z tego powodu naukowcy dołożyli starań, aby opracować narzędzia półautomatyczne, a także w pełni zautomatyzowane, aby poprawić wydajność segmentacji. W pełni zautomatyzowane narzędzia, oparte na uczeniu maszynowym13 lub najnowocześniejsze, nieprzeszkolone algorytmy klasyfikacji pikseli14, są ulepszane, aby mogły być używane przez większą społeczność; Niemniej jednak segmentacja wciąż jest daleka od bycia w pełni wiarygodną, a wiele prac nadal opiera się na pracy ręcznej, która jest nieefektywna pod względem czasu segmentacji, ale nadal zapewnia pełną niezawodność. Półautomatyczne narzędzia, takie jak ilastik15, stanowią lepszy kompromis, ponieważ zapewniają natychmiastowy odczyt segmentacji, który można do pewnego stopnia skorygować, chociaż nie zapewnia to rzeczywistych ram korekty, i można je zintegrować za pomocą TrakEM2 równolegle16.

Segmentacja na dużą skalę jest, jak dotąd, głównie ograniczona do konektomiki; dlatego informatycy są najbardziej zainteresowani dostarczaniem ram do zintegrowanych wizualizacji dużych, opatrzonych adnotacjami zestawów danych i analizowania wzorców połączeń wynikających z obecności 17,18. Niemniej jednak dokładne rekonstrukcje 3D mogą być wykorzystywane do ilościowych analiz morfometrycznych, a nie do jakościowych ocen struktur 3D. Narzędzia takie jak NeuroMorph19,20 i glycogen analysis10 zostały opracowane do wykonywania pomiarów na rekonstrukcjach 3D długości, powierzchni i objętości oraz rozkładu punktów zmętnienia, całkowicie odrzucając oryginalny stos EM8,10. Astrocyty stanowią interesujące studium przypadku, ponieważ brak wizualnych wskazówek lub powtarzających się wzorców strukturalnych daje badaczom wskazówkę co do funkcji poszczególnych jednostek strukturalnych, a w konsekwencji brak odpowiedniej ontologii procesów astrocytowych21, utrudniają projektowanie narzędzi analitycznych. Jedną z ostatnich prób była klasa Abstractocyte22, która umożliwia wizualną eksplorację procesów astrocytarnych i wnioskowanie o jakościowych związkach między procesami astrocytowymi a neurytami.

Niemniej jednak, wygoda obrazowania tkanki wyciętej pod EM wynika z faktu, że ilość informacji ukrytych w nienaruszonych próbkach mózgu jest ogromna, a interpretacja obrazów z pojedynczych sekcji może rozwiązać ten problem. Zagęszczenie struktur w mózgu jest tak duże, że rekonstrukcje 3D nawet kilku obiektów widocznych na raz uniemożliwiłyby ich wizualne rozróżnienie. Z tego powodu niedawno zaproponowaliśmy wykorzystanie wirtualnej rzeczywistości (VR) jako ulepszonej metody obserwacji złożonych struktur. Skupiamy się na astrocytes23, aby przezwyciężyć okluzję (czyli blokowanie widoczności interesującego obiektu przez drugi, w przestrzeni 3D) i ułatwić jakościowe oceny rekonstrukcji, w tym korektę, a także kwantyfikację cech za pomocą liczby punktów w przestrzeni. Niedawno połączyliśmy eksplorację wizualną VR z wykorzystaniem GLAM (glycogen-derived mleczan absorption model), techniki wizualizacji mapy prawdopodobieństwa przepływu mleczanu przez neuryty, traktując granulki glikogenu jako ciała emitujące światło23; w szczególności wykorzystaliśmy VR do ilościowego określenia szczytów świetlnych wytwarzanych przez GLAM.

Protokół

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

1. Przetwarzanie obrazu za pomocą Fidżi

  1. Otwórz stos obrazów, przeciągając i upuszczając plik natywny z mikroskopu zawierającego stos lub przeciągając i upuszczając folder zawierający cały stos obrazów do okna oprogramowania.
    nuta: Fidżi jest w stanie automatycznie rozpoznawać wszystkie standardowe formaty obrazów, takie jak .jpg, .tif i .png, a także zastrzeżone formaty plików od dostawców mikroskopów. Chociaż poniższy protokół został zoptymalizowany pod kątem stosów obrazów z 3DEM, te kroki mogą być również używane w przypadku zestawów danych mikroskopii świetlnej.
  2. Po otwarciu stosu przejdź do Właściwości > obrazu, aby upewnić się, że rozmiar woksela został odczytany z metadanych. Jeśli nie, można go wprowadzić ręcznie.
  3. Upewnij się, że przekształciłeś obraz na 8-bitowy. Kliknij Typ > obrazu i wybierz 8-bitowy.
  4. Jeśli oryginalny stos znajdował się w różnych sekwencyjnych plikach/folderach, użyj narzędzia Konkatenuj, aby scalić je w jeden stos, wybierając opcję Stosy obrazów > > Narzędzia > Konkatenuj.
  5. Zapisz stos, wybierając pozycję Plik > Zapisz jako. Zostanie on zapisany jako pojedynczy plik .tif i może być używany jako kopia zapasowa oraz do dalszego przetwarzania.
  6. Jeśli oryginalny stos został pozyskany jako różne płytki, zastosuj zszywanie w TrakEM2.
    1. Utwórz nowy projekt TrakEM2 przy użyciu polecenia Nowy > TrakEM2 (pusty).
    2. W graficznym interfejsie użytkownika (GUI) rzutni zaimportuj stosy, klikając prawym przyciskiem myszy > Importuj > Importuj stos, a następnie zaimportuj wszystkie kafelki otwarte w głównym graficznym interfejsie użytkownika Fidżi. Upewnij się, że zmieniłeś rozmiar płótna, aby zmieścił się w całym stosie, klikając prawym przyciskiem myszy > Wyświetl > Zmień rozmiar płótna/zestawu warstw i wybierz rozmiar piksela y/x w zależności od ostatecznego rozmiaru montażu.
      >nuta: Na przykład, jeśli montaż ma zostać sfinalizowany przy użyciu czterech kafelków o wymiarach 4 096 x 4 096 pikseli, rozmiar płótna powinien wynosić co najmniej 8 192 x 8 192 pikseli. Zastanów się, czy nie powiększyć go nieco i przyciąć później.
    3. Nakładaj na siebie wspólne części poszczególnych kafelków, przeciągając je i upuszczając na zestawie warstw. Użyj suwaka w lewym górnym rogu, aby zmodyfikować przezroczystość, aby ułatwić nakładanie.
    4. Zmontuj i wyrównaj stosy, klikając prawym przyciskiem myszy > Wyrównaj, a następnie wybierz jedną z opcji (patrz uwaga poniżej).
      >nuta: SBEM lub FIB-SEM są zwykle już dobrze wyrównane, ale mogą wystąpić niewielkie niewspółosiowości. Wyrównaj warstwy to zautomatyzowany potok do wyrównania z; Montaż wielu warstw to zautomatyzowany potok do wyrównywania płytek na każdym stosie z, dla całej objętości; Wyrównaj mozaikę wielowarstwową łączy dwie poprzednie opcje. Ta operacja jest czasochłonna i zależy od pamięci o dostępie swobodnym (RAM) maszyny. Rozważ użycie wysokiej klasy komputera i pozwól mu działać przez godziny/dni, w zależności od rozmiaru stosu.
    5. Na koniec wyeksportuj stosy obrazów i zapisz je za pomocą kliknięcia prawym przyciskiem myszy > Utwórz płaski obraz, a następnie upewnij się, że wybrałeś przedostatni obraz z menu rozwijanych Początek i Koniec.
    6. Korzystając z wbudowanych funkcji TrakEM2, w razie potrzeby podziel na segmenty interesujące Cię struktury.
      1. W graficznym interfejsie użytkownika TrakEM2 kliknij prawym przyciskiem myszy opcję Wszystko w oknie Szablon i wybierz Dodaj nową > Area_list podrzędną.
      2. Przeciągnij i upuść Anything na wierzch folderu w obszarze Project Objects, a pojawi się tam jedno Anything.
      3. Przeciągnij i upuść listę Obszar z szablonu do listy Wszystko znajdującej się w obszarze Obiekty projektu.
      4. W rzutni stosu obrazów wybierz spację Z za pomocą kursora. Pojawi się lista obszarów z unikalnym numerem identyfikacyjnym. Wybierz narzędzie pędzla na górze (w prawym dolnym rogu) i użyj myszy, aby podzielić strukturę na segmenty, wypełniając jej cytozol na całym stosie z.
      5. Wyeksportuj maskę podzieloną na segmenty, która ma być używana w ilastik jako ziarno do rzeźbienia, klikając prawym przyciskiem myszy obiekt Lista obszarów na liście przestrzeni Z lub maskę w rzutni, a następnie wybierz opcję Eksportuj > listy obszarów jako etykiety (tif).
  7. W zależności od rozdzielczości potrzebnej do dalszych rekonstrukcji, jeśli to możliwe, zmniejsz rozmiar piksela stosu obrazów poprzez próbkowanie w dół, biorąc pod uwagę wymagania pamięci oprogramowania, które będzie używane do segmentacji i rekonstrukcji. Użyj obrazu > dostosuj > rozmiar.
    >UWAGA: ilastik dobrze radzi sobie ze stosami do 500 pikseli na xy. Ponadto próbkowanie w dół zmniejszy rozdzielczość stosu; Dlatego weź pod uwagę minimalny rozmiar, przy którym obiekt nadal wydaje się rozpoznawalny, a tym samym może być podzielony na segmenty.
  8. Aby zwiększyć kontrast i wspomóc segmentację, można zastosować filtr Maska wyostrzająca, aby membrany były wyraźniejsze. Użyj opcji Process > Filter > Unsharp Mask (Filtr wyostrzający).
  9. Eksportuj stos obrazów jako pojedyncze obrazy do dalszego przetwarzania w oprogramowaniu do segmentacji (np. ilastik), używając File > Zapisz jako... > Sekwencja obrazów i wybierz .tif format.

2. Segmentacja (półautomatyczna) i rekonstrukcja za pomocą ilastik 1.3.2

  1. W głównym graficznym interfejsie użytkownika ilastik wybierz moduł Carving.
  2. Załaduj stos obrazów za pomocą polecenia Dodaj nowy > Dodaj pojedynczy wolumin 3D/4D z sekwencji.
  3. Wybierz opcję Cały katalog i wybierz folder zawierający stos obrazów zapisany jako pojedyncze pliki. U dołu nowego okna, w którym znajdują się opcje ładowania obrazów, upewnij się, że wybrano Z.
  4. W kolejnych krokach wszystkie operacje i przyciski można znaleźć po lewej stronie głównego graficznego interfejsu użytkownika. Na karcie Przetwarzanie wstępne użyj już zaznaczonych opcji standardowych. Użyj jasnych linii (filtry grzbietowe) i utrzymuj skalę filtra na poziomie 1.600. Ten parametr można później zmodyfikować.
  5. Po zakończeniu przetwarzania wstępnego wybierz następną stronę z menu rozwijanego modułu Etykietowanie. Domyślnie obecny jest jeden obiekt i jedno tło.
  6. Wybierz ziarno obiektu, klikając na nie, i narysuj linię na szczycie interesującej Cię struktury, a następnie wybierz ziarno tła i narysuj jedną lub wiele linii na zewnątrz obiektu, który ma zostać zrekonstruowany. Następnie kliknij Segment i czekaj.
    UWAGA:
    W zależności od mocy komputera i wielkości stosu, segmentacja może trwać od kilku sekund do kilku godzin. Gdy to zrobisz, na górze segmentowanej struktury powinna pojawić się półprzezroczysta maska podkreślająca segmentację.
    1. Przewiń stos, aby sprawdzić segmentację. Segmentacja może nie być dokładna i nie podążać dokładnie za strukturą zainteresowania lub z niej wynikać. Skoryguj wszelkie rozlania, umieszczając ziarno tła na rozlanej segmentacji i dodaj ziarno obiektu na niezrekonstruowany segment interesującego Cię obiektu.
    2. Jeśli segmentacja nadal nie jest poprawna, spróbuj zmodyfikować ją za pomocą parametru Odchylenie, który zwiększy lub zmniejszy liczbę niepewnych sklasyfikowanych pikseli zgodnie z akceptacją. Jego wartość to domyślnie 0,95; Zmniejsz go, aby ograniczyć rozprzestrzenianie się (zwykle do nie mniej niż 0,9) lub zwiększyj, jeśli segmentacja jest zbyt konserwatywna (do 1).
    3. Inną możliwością jest powrót do kroku 2.4 (poprzez kliknięcie na Przetwarzanie wstępne) i zmodyfikowanie rozmiaru filtra; zwiększenie wartości (np. do 2) zminimalizuje efekty przypominające szum soli i pieprzu, ale także sprawi, że membrany będą bardziej rozmyte, a mniejsze szczegóły trudniejsze do wykrycia. Może to ograniczyć rozprzestrzenianie się wirusa.
  7. Powtórz tyle, ile to konieczne, o ile wszystkie pożądane obiekty zostały podzielone na segmenty. Po zakończeniu obiektu kliknij Zapisz bieżący obiekt poniżej segmentu. Pojawią się dwa nowe nasiona, aby rozpocząć segmentację nowego obiektu.
  8. Wyodrębnij siatki powierzchniowe od razu jako pliki .obj, klikając Eksportuj wszystkie siatki.
  9. Jeśli potrzebna jest dalsza korekta, segmentację można wyodrębnić jako maski binarne. Wybierz maskę, aby ją wyeksportować, klikając przycisk Przeglądaj obiekty; następnie kliknij prawym przyciskiem myszy Segmentacja > Eksportuj, a następnie w obszarze Informacje o pliku wyjściowym wybierz sekwencję tif jako format.

3. Korekta/Segmentacja (ręczna) w TrakEM2 (Fidżi)

  1. Załaduj stos obrazów i utwórz nowy projekt TrekEM2 zgodnie z krokiem 1.6.1.
  2. Zaimportuj maski, które wymagają korekty, korzystając z opcji Importuj etykiety jako listy obszarów, dostępnej w tym samym menu importu, które jest używane do importowania stosu obrazów.
  3. Zaznacz listę obszarów zaimportowaną w przestrzeni Z i użyj narzędzia Pędzel, aby przejrzeć segmentację.
  4. Wizualizuj model w 3D, klikając prawym przyciskiem myszy Lista obszarów > Pokaż w 3D. W następnym oknie z prośbą o ponowne próbkowanie liczby, wyższa wartość wygeneruje siatkę o niższej rozdzielczości.
    nuta: W zależności od rozmiaru obiektu rozważ użycie wartości od 4 do 6, co zwykle daje najlepszy kompromis między rozdzielczością a szczegółowością morfologiczną.
  5. Wyeksportuj siatkę 3D jako .obj czoła fali, wybierając z menu Plik > Eksportuj powierzchnie > Czoło fali.

4. 3D Analiza

  1. Otwórz Blendera. Aby wykonać poniższe czynności, zainstaluj zestaw narzędzi NeuroMorph (dostępny pod adresem https://neuromorph.epfl.ch/index.html) oraz zestaw narzędzi do analizy glikogenu (dostępny pod adresem https://github.com/daniJb/glyco-analysis).
    1. Zaimportuj obiekty za pomocą importu wsadowego NeuroMorph, klikając opcję Importuj obiekty w menu Scena, aby zaimportować wiele obiektów jednocześnie. Upewnij się, że aktywowałeś opcję Użyj remesh i Gładkie cieniowanie.
      nuta: Nie zaleca się klikania przycisku Finalizuj ponowne tworzenie siatki, jeśli nie ma pewności co do początkowego rozmiaru obiektu. Importowanie głębokości drzewa o wartości 7 (domyślnie) jest zwykle dobre dla zachowania akceptowalnej rozdzielczości i morfologii obiektu.
    2. Wybierz interesujący Cię obiekt z konspektu i zmodyfikuj głębokość drzewa funkcji remesh w menu Modyfikatory iteracyjnie, aby zminimalizować liczbę wierzchołków i uniknąć utraty szczegółów w rozdzielczości i poprawnej morfologii. Podczas zmiany głębokości octree siatka na głównym graficznym interfejsie użytkownika zmieni się odpowiednio. Po zakończeniu kliknij Zastosuj, aby sfinalizować proces.
      nuta: Wartości około 4 są zwykle dobre dla małych obiektów (takich jak gęstości postsynaptyczne), wartości około 7 dla większych (takich jak długie aksony lub dendryty), a wartości około 8 lub 9 dla pełnych morfologii komórkowych, w których należy zachować szczegóły o różnych rozdzielczościach.
    3. Użyj narzędzia do nakładania obrazów Interakcje ze stosem obrazów w lewym panelu, w menu NeuroMorph, aby załadować stos obrazów. Upewnij się, że wpisałeś fizyczny rozmiar stosu obrazów dla x, y i x (w mikronach lub nanometrach, w zależności od jednostek siatki) i wybierz ścieżkę stosu, klikając Source_Z. X i Y są płaszczyznami ortogonalnymi; Są one opcjonalne i zostaną załadowane tylko wtedy, gdy użytkownik wstawi prawidłową ścieżkę.
    4. Następnie wybierz siatkę w rzutni, klikając ją prawym przyciskiem myszy, wejdź w tryb edycji, naciskając Tab, wybierz jeden (lub więcej) wierzchołków za pomocą prawego przycisku myszy, a na koniec kliknij Pokaż obraz w wierzchołku. Jedna (lub więcej) płaszczyzny cięcia z mikrografią pojawi się nałożona na wierzch siatki.
    5. Wybierz płaszczyznę cięcia, klikając ją prawym przyciskiem myszy, naciśnij Ctrl + Y i przewiń nad modelem 3D za pomocą przewijania myszy. Może to być również wykorzystane jako metoda korekty.
    6. Narzędzia pomiarowe służą do ilościowego określania powierzchni powierzchni, objętości i długości. Operacje te są bardziej szczegółowo udokumentowane przez Jorstad et al.19 oraz na stronie internetowej NeuroMorph24.
    7. Użyj narzędzia do analizy glikogenu, aby określić ilościowo bliskość glikogenu w kierunku kolców i boutonów. Operacje są bardziej szczegółowo udokumentowane w poprzedniej publikacji10 oraz w repozytorium analiz glikogenu25.
  2. Uruchom polecenie GLAM23. Kod, plik wykonywalny i niektóre pliki testowe są dostępne w repozytorium GLAM26.
    1. Przygotuj dwa pliki geometryczne w formacie .ply: jeden plik źródłowy zawierający granulki glikogenu i jeden plik docelowy zawierający powierzchnie morfologiczne.
    2. Przygotuj trzy pliki map kolorów .ascii (każdy wiersz zawiera t_norm(0..1) R(0..255) G(0..255) B(0..255)) do reprezentowania lokalnych wartości absorpcji, wartości szczytowych i średnich wartości absorpcji.
    3. Wykonaj skrypt C++ GLAM z plikami geometrii (krok 4.2.1) i plikami map kolorów (krok 4.2.2), ustawiając promień wpływu (w mikronach), maksymalną oczekiwaną wartość absorpcji i znormalizowany próg grupowania pików absorpcji. Aby uzyskać informacje o innych parametrach, wykonaj skrypt z opcją -help.
    4. Wyeksportuj wyniki jako pliki .ply lub .obj: obiekty docelowe odwzorowane kolorami z wartościami GLAM, znaczniki pików absorpcji reprezentowane jako kule oznaczone kolorami oraz obiekty docelowe oznaczone kolorami w odniesieniu do średniej wartości absorpcji.
  3. Otwarta interakcja z danymi VR. Kod wykonywalny VR Data Interact jest dostępny w publicznym repozytorium27.
    1. Zaimportuj siatki do wizualizacji, postępując zgodnie z instrukcjami w menu VR. Upewnij się, że zaimportowałeś pliki .obj obliczone w kroku 4.2.1, na wypadek, gdyby potrzebna była analiza GLAM.

Wyniki

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Korzystając z procedury przedstawionej powyżej, pokazujemy wyniki na dwóch stosach obrazów o różnych rozmiarach, aby pokazać, jak elastyczność narzędzi umożliwia skalowanie procedury do większych zbiorów danych. W tym przypadku dwa zestawy danych 3DEM to (i) szczur P14, kora somatosensoryczna, warstwa VI, 100 μm x 100 μm x 76,4 μm4 i (ii) szczur P60, hipokamp CA1, 7,07 μm x 6,75 μm x 4,73 μm10.

Kroki wstępnego przetwarzania (Rysunek 1) mogą być wykonywane w ten sam sposób dla obu zestawów danych, biorąc pod uwagę, że większy zbiór danych, taki jak pierwszy stos, który ma 25 GB, wymaga bardziej wydajnego sprzętu do obsługi wizualizacji i przetwarzania dużych danych. Drugi stos to tylko 1 GB, z idealnie izotropowym rozmiarem wokseli.

Rozmiar danych może nie być bezpośrednio związany z polem widzenia (FOV), a nie z rozdzielczością samego stosu, która zależy od maksymalnego rozmiaru piksela czujnika mikroskopu i powiększenia stosu. W każdym razie, logicznie rzecz biorąc, większe pola widzenia prawdopodobnie zajmą więcej przestrzeni fizycznej w porównaniu z mniejszymi polami widzenia, jeśli zostaną uzyskane w tej samej rozdzielczości.

Po zaimportowaniu stosu obrazów, jak wskazano w sekcji 1 protokołu, w oprogramowaniu Fidżi (Rysunek 1A), naukowej wersji ImageJ12, ważnym punktem jest upewnienie się, że format obrazu jest 8-bitowy (Rysunek 1B)). Dzieje się tak dlatego, że wiele różnych firm zajmujących się mikroskopią generuje swój zastrzeżony format plików w 16-bitowym formacie do przechowywania metadanych istotnych dla informacji o procesie pozyskiwania (tj. rozmiar piksela, grubość, prąd/napięcie wiązki elektronów, ciśnienie w komorze) wraz ze stosem obrazów. Takie dostosowania pozwalają naukowcom zaoszczędzić pamięć, ponieważ dodatkowe 8-bitowe metadane nie mają wpływu na obrazy. Drugim ważnym parametrem, który należy sprawdzić, jest wielkość woksela, która następnie pozwala na wykonanie rekonstrukcji po segmentacji w odpowiedniej skali (mikrometry lub nanometry; Rysunek 1B).

Stosy mogą wymagać ponownego wyrównania i/lub zszycia, jeśli zostały zdobyte za pomocą kafelkowania; te operacje można wykonać w TrakEM2 (Rysunek 2A), chociaż jeśli chodzi o wyrównanie, zautomatyzowane techniki 3DEM, takie jak FIB-SEM lub 3View, są zazwyczaj dobrze wyrównane.

Ostatni krok wymaga filtrowania i, ewentualnie, próbkowania w dół stosu, w zależności od tego, które obiekty wymagają rekonstrukcji i czy próbkowanie w dół wpływa na rozpoznawanie cech, które można zrekonstruować. Na przykład, w przypadku większego stosu (kory somatosensorycznej szczurów P14) nie było możliwe obniżenie rozdzielczości na korzyść wydajności rekonstrukcji, podczas gdy w przypadku mniejszego stosu (hipokampa CA1 szczurów P60) było to możliwe, ponieważ rozdzielczość była znacznie wyższa niż to, co było potrzebne do rekonstrukcji najmniejszych obiektów. Wreszcie, użycie maski wyostrzającej zwiększa różnicę między membranami a tłem, co sprzyja rekonstrukcjom oprogramowania takiego jak ilastik, które wykorzystuje gradienty do wstępnej oceny granic.

Po przetworzeniu obrazu, rekonstrukcję można przeprowadzić ręcznie za pomocą TrakEM2 lub półautomatycznie za pomocą ilastik (Rysunek 2C). Zestaw danych, taki jak mniejszy wymieniony tutaj (ii), który może być próbkowany w dół, aby zmieścić się w pamięci, może być w pełni podzielony na segmenty za pomocą ilastik (Rysunek 2B) w celu uzyskania gęstej rekonstrukcji. W przypadku pierwszego zestawu danych wymienionego tutaj (i) udało nam się załadować i wstępnie przetworzyć cały zbiór danych za pomocą stacji roboczej Linux z 500 GB pamięci RAM. Rzadką segmentację 16 pełnych morfologii uzyskano za pomocą hybrydowego potoku, poprzez wyodrębnienie zgrubnej segmentacji, która została ręcznie sprawdzona przy użyciu TrakEM2.

Analiza 3D takich cech jak powierzchnia, objętości lub rozkład wewnątrzkomórkowego glikogenu może być przeprowadzona w środowisku Blendera (Rysunek 3) przy użyciu niestandardowych kodów, takich jak NeuroMorph19 lub analiza glikogenu10.

W przypadku zestawów danych zawierających również granulki glikogenu, analizę ich rozkładu można przeprowadzić za pomocą GLAM, kodu C++, który generuje mapy kolorów z obszarem wpływu bezpośrednio na siatce.

Wreszcie, takie złożone zestawy danych mogą być wizualizowane i analizowane za pomocą VR, co okazało się przydatne do analizy zestawów danych z określonym widokiem okludowanym (Rysunek 4). Na przykład, piki wywnioskowane z map GLAM były łatwo wywnioskowane wizualnie z dendrytów w drugim omawianym tutaj zestawie danych.

figure-results-1
Rysunek 1: Przetwarzanie obrazu i przygotowanie do segmentacji obrazu. (a) Główny graficzny interfejs użytkownika Fidżi. (b) Przykład skumulowanych obrazów ze zbioru danych (i) omówionych w reprezentatywnych wynikach. Panel po prawej stronie pokazuje właściwości pozwalające użytkownikowi ustawić rozmiar woksela. (c) Przykład operacji filtrowania i zmiany rozmiaru zastosowanej do pojedynczego obrazu. Panele po prawej stronie pokazują powiększenia od środka obrazu. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-results-2
Rysunek 2: Segmentacja i rekonstrukcja za pomocą TrakEM2 i ilastik. (a) Graficzny interfejs użytkownika TrakEM2 z obiektami ręcznie podzielonymi na segmenty (na czerwono). (b) Maska wyeksportowana z panelu a może być użyta jako dane wejściowe (zalążek) dla (c) półautomatycznej segmentacji (rzeźbienia). Z ilastik maski (czerwone) można dalej eksportować do TrakEM2 w celu ręcznej korekty. (d) Maski można następnie eksportować jako trójkątne siatki 3D, aby odsłonić zrekonstruowane struktury. W tym przykładzie cztery neurony, astrocyty, mikroglej i perycyty ze zbioru danych (i) (omówione w reprezentatywnych wynikach) zostały zrekonstruowane przy użyciu tego procesu. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-results-3
Rysunek 3: Analiza 3D zrekonstruowanych morfologii przy użyciu niestandardowych narzędzi. (a) Izotropowa zobrazowana objętość ze zbioru danych FIB-SEM (ii) (jak omówiono w reprezentatywnych wynikach). (b) Gęsta rekonstrukcja z panelu a. Szary = aksony; zielony = proces astrocytowy; niebieski = dendryty. c) Mikrografika przedstawiająca przykłady celów do oznaczania ilościowego, takich jak synapsy (i)) i granulki glikogenu astrocytarnego (zbiór danych (ii)) w odpowiednich powiększeniach. (d) Maska z panelu c pokazująca rozkład granulek glikogenu wokół synaps. (e) Kwantyfikacja rozkładu glikogenu na podstawie zestawu danych z panelu c, przy użyciu zestawu narzędzi do analizy glikogenu z Blendera. Paski błędów wskazują błędy standardowe. N = 4,145 granulek glikogenu. (f) Ilustracja graficzna wizualizacji wejściowej i wyjściowej GLAM. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-results-4
Rysunek 4: Analiza w VR. (a) Użytkownik noszący gogle VR podczas pracy nad (b) gęstą rekonstrukcją ze zbioru danych FIB-SEM (ii) (jak omówiono w reprezentatywnych wynikach). (c) Immersyjna scena VR z podzbioru neurytów z panelu b. Zielony laser wskazuje na szczyt GLAM. d) Przykład analizy na podstawie liczby szczytów GLAM w VR. N = 3 myszy na każdy pasek. Analiza FIB-SEM z poprzedniej publikacji28. Paski błędów wskazują błędy standardowe; *p < 0.1, jednokierunkowa ANOVA. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

Dyskusja

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Przedstawiona tutaj metoda jest przydatnym przewodnikiem krok po kroku dotyczącym segmentacji i rekonstrukcji 3D wieloskalowego zestawu danych EM, niezależnie od tego, czy pochodzą one z technik obrazowania o wysokiej rozdzielczości, takich jak FIB-SEM, czy innych zautomatyzowanych technik cięcia szeregowego i obrazowania. FIB-SEM ma tę zaletę, że potencjalnie osiąga idealną izotropię w rozmiarze woksela poprzez cięcie odcinków tak cienkich, jak 5 nm za pomocą skupionej wiązki jonów, jego pole widzenia może być ograniczone do 15-20 μm ze względu na artefakty boczne, które są prawdopodobnie spowodowane osadzaniem się przeciętej tkanki, jeśli pole widzenia przekracza tę wartość. Takich artefaktów można uniknąć, stosując inne techniki, takie jak SBEM, która wykorzystuje diamentowy nóż do wycinania seryjnych sekcji wewnątrz komory mikroskopu. W tym ostatnim przypadku rozdzielczość z może wynosić w najlepszym razie około 20 nm (zwykle 50 nm), ale pole widzenia może być większe, chociaż rozdzielczość pikseli powinna być zagrożona dla rozległego obszaru zainteresowania. Jednym z rozwiązań pozwalających przezwyciężyć takie ograniczenia (powiększenie vs. pole widzenia) jest podzielenie obszaru zainteresowania na kafelkach i uzyskanie każdej z nich w wyższej rozdzielczości. Pokazaliśmy tutaj wyniki zarówno ze zbioru danych stosu SBEM (i) w wynikach reprezentatywnych, jak i zestawu danych stosu FIB-SEM (ii) w wynikach reprezentatywnych.

Ponieważ generowanie coraz większych zbiorów danych staje się coraz bardziej powszechne, wysiłki zmierzające do stworzenia narzędzi do klasyfikacji pikseli i automatycznej segmentacji obrazów mnożą się; Niemniej jednak do tej pory żadne oprogramowanie nie wykazało niezawodności porównywalnej z korektą wykonywaną przez człowieka, która dlatego jest nadal konieczna, bez względu na to, jak czasochłonna jest. Ogólnie rzecz biorąc, mniejsze zestawy danych, które można próbkować w dół, jak w przypadku zestawu danych (ii), mogą być gęsto zrekonstruowane przez jednego, doświadczonego użytkownika w ciągu tygodnia, wliczając w to czas korekty.

Prezentowany tutaj protokół obejmuje w szczególności użycie trzech programów: Fiji (wersja 2.0.0-rc-65/1.65b), ilastik (wersja 1.3.2 rc2) i Blender (2.79), które są programami typu open source i wieloplatformowymi i można je pobrać za darmo. Fiji to wydanie ImageJ, zasilane przez wtyczki do biologicznej analizy obrazu. Ma solidną architekturę oprogramowania i jest sugerowany, ponieważ jest to powszechna platforma dla naukowców zajmujących się naukami przyrodniczymi i zawiera TrakEM2, jedną z pierwszych i najczęściej używanych wtyczek do segmentacji obrazów. Jednym z problemów, z którymi ostatnio boryka się wielu użytkowników, jest przejście z Javy 6 do Javy 8, co powoduje problemy ze zgodnością; dlatego zalecamy powstrzymanie się od aktualizacji do wersji Java 8, jeśli to możliwe, aby Fidżi działało poprawnie. ilastik to potężne oprogramowanie zapewniające szereg ram do klasyfikacji pikseli, z których każdy jest udokumentowany i wyjaśniony na ich stronie internetowej. Moduł rzeźbiarski używany do półautomatycznej segmentacji stosów EM jest wygodny, ponieważ oszczędza dużo czasu, pozwalając naukowcom skrócić czas poświęcany na pracę ręczną z miesięcy do dni dla doświadczonego użytkownika, ponieważ za pomocą jednego kliknięcia cały neuryt może zostać podzielony na segmenty w ciągu kilku sekund. Etap wstępnego przetwarzania jest bardzo intensywny z punktu widzenia sprzętu, a bardzo duże zestawy danych, takie jak prezentowany tutaj stos SBEM, który miał 26 GB, wymagają szczególnych strategii, aby zmieścić się w pamięci, biorąc pod uwagę, że można uzyskać duży zestaw danych, ponieważ nie można naruszyć pola widzenia i rozdzielczości. W związku z tym próbkowanie w dół może nie być odpowiednim rozwiązaniem w tym przypadku. Najnowsza wersja oprogramowania może wykonać wstępne przetwarzanie w ciągu kilku godzin za pomocą potężnej stacji roboczej Linux, ale segmentacja zajęłaby kilka minut, a przewijanie stosu nadal byłoby stosunkowo powolne. Nadal używamy tej metody do pierwszej, zgrubnej segmentacji i sprawdzamy ją za pomocą TrakEM2. Wreszcie, Blender to oprogramowanie do modelowania 3D, z potężnym silnikiem renderowania 3D, który można dostosować za pomocą skryptów Pythona, które można osadzić w głównym graficznym interfejsie użytkownika jako dodatki, takie jak NeuroMorph i analiza glikogenu. Elastyczność tego oprogramowania ma tę wadę, że w przeciwieństwie na przykład do Fidżi nie jest ono przeznaczone do wizualizacji online dużych zbiorów danych; w związku z tym wizualizacja i nawigowanie po dużych siatkach (przekraczających 1 GB) może być powolne i niewydajne. Z tego powodu zawsze zaleca się wybieranie technik, które zmniejszają złożoność siatki, ale uważają, aby nie zakłócić pierwotnej morfologii interesującej struktury. Przydatna jest funkcja remesh, która jest wbudowaną funkcją narzędzia do importu wsadowego NeuroMorph. Problem z tą funkcją polega na tym, że w zależności od liczby wierzchołków oryginalnej siatki, wartość głębokości drzewa, która jest związana z ostateczną rozdzielczością, powinna być odpowiednio modyfikowana. Małe obiekty mogą być siatkowane z małą głębokością drzewa (np. 4), ale ta sama wartość może zakłócić morfologię większych obiektów, które wymagają większych wartości (w najlepszym przypadku 6 do 8 lub nawet 9 dla bardzo dużej siatki, takiej jak pełna komórka). Wskazane jest, aby proces ten był iteracyjny i testował różne głębokości drzewa, jeśli rozmiar obiektu nie jest jasny.

Jak wspomniano wcześniej, jednym z aspektów, który należy wziąć pod uwagę, jest moc obliczeniowa, która ma być przeznaczona na rekonstrukcję i analizę, w odniesieniu do używanego oprogramowania. Wszystkie operacje pokazane w reprezentatywnych wynikach tego manuskryptu zostały wykonane przy użyciu komputera MacPro, wyposażonego w kartę graficzną AMD FirePro D500, 64 GB pamięci RAM i procesor Intel Xeon E5 z 8 rdzeniami. Fidżi ma dobrą architekturę oprogramowania do obsługi dużych zbiorów danych; dlatego zaleca się korzystanie z laptopa o dobrej wydajności sprzętowej, takiego jak MacBook Pro z procesorem Intel i7 2,5 GHz i 16 GB pamięci RAM. Oprogramowanie ilastik jest bardziej wymagające pod względem zasobów sprzętowych, w szczególności na etapie wstępnego przetwarzania. Chociaż próbkowanie w dół stosu obrazów jest dobrą sztuczką w celu ograniczenia żądań sprzętowych z oprogramowania i pozwala użytkownikowi na przetworzenie stosu za pomocą laptopa (zazwyczaj, jeśli ma on mniej niż 500 pikseli w x,y,z), sugerujemy użycie wysokiej klasy komputera do płynnego uruchamiania tego oprogramowania. Korzystamy ze stacji roboczej wyposażonej w procesor Intel Xeon Gold 6150 z 16 rdzeniami i 500 GB pamięci RAM.

Po uzyskaniu dokładnej rekonstrukcji 3D naukowcy mogą odrzucić oryginalne mikrofotografie i pracować bezpośrednio na modelach 3D, aby wyodrębnić przydatne dane morfometryczne w celu porównania komórek tego samego typu, a także różnych typów komórek, a także skorzystać z VR do jakościowej i ilościowej oceny morfologii. W szczególności zastosowanie tego ostatniego okazało się korzystne w przypadku analiz gęstych lub złożonych morfologii, które prezentują okluzję wzrokową (tj. zablokowanie widoku obiektu zainteresowania w przestrzeni 3D przez drugi obiekt umieszczony między obserwatorem a pierwszym obiektem), co utrudnia ich przedstawienie i analizę w 3D. W przedstawionym przykładzie doświadczony użytkownik potrzebował około 4 nienastępujących po sobie godzin, aby obserwować zestawy danych i liczyć obiekty. Czas poświęcony na analizę VR może się różnić, ponieważ aspekty takie jak choroba VR (która może być do pewnego stopnia związana z chorobą lokomocyjną) mogą mieć negatywny wpływ na wrażenia użytkownika; w takim przypadku użytkownik może preferować inne narzędzia analityczne i ograniczyć swój czas poświęcony na VR.

Wreszcie, wszystkie te kroki można zastosować do innych technik mikroskopowych i innych niż EM, które generują stosy obrazów. EM generuje obrazy, które są na ogół trudne w obsłudze i segmentacji, w porównaniu na przykład z mikroskopią fluorescencyjną, gdzie często trzeba zająć się czymś porównywalnym z maską binarną (sygnał kontra czarne tło), co w zasadzie można łatwo renderować w 3D w celu dalszego przetwarzania.

Oświadczenia

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Autorzy nie mają nic do ujawnienia.

Podziękowania

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Ta praca była wspierana przez King Abdullah University of Science and Technology (KAUST) Competitive Research Grants (CRG) grant "KAUST-BBP Alliance for Integrative Modelling of Brain Energy Metabolism" dla P.J.M.

Materiały

Lista materiałów użytych w tym artykule
NazwaFirmaNumer katalogowyKomentarze
FijiOpen Source2.0.0-rc-65/1.65bEdytor przetwarzania obrazów Open Source
www.fiji.sc
iLastikOpen Source 1.3.2 Narzędzie dosegmentacji obrazu rc2
www.ilastik.org
BlenderBlender Foundation2.79Oprogramowanie do modelowania 3D Open Source
www.blender.org
Zestaw słuchawkowy HTC ViveHTCVive / Vive ProVirtual Reality (VR) Zestaw słuchawkowy montowany na głowie
www.vive.com
NeuromorphOpen Source---Kolekcja dodatków do Blendera do analizy 3D
neuromorph.epfl.ch
Glycogen AnalysisOpen Source---Blender Dodatek do analizy Glycogen
https://github.com/daniJb/glyco-analysis
GLAMOpen Source---C++ Kod do generowania map GLAM
https://github.com/magus74/GLAM

Bibliografia

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Leighton, S. B. SEM images of block faces, cut by a miniature microtome within the SEM - a technical note. Scanning Electron Microscopy. , 73-76 (1981).
  2. Knott, G., Marchman, H., Wall, D., Lich, B. Serial section scanning electron microscopy of adult brain tissue using focused ion beam milling. Journal of Neuroscience. 28, 2959-2964 (2008).
  3. Denk, W., Horstmann, H. Serial block-face scanning electron microscopy to reconstruct three-dimensional tissue nanostructure. PLOS Biology. 2, e329(2004).
  4. Coggan, J. S., et al. A Process for Digitizing and Simulating Biologically Realistic Oligocellular Networks Demonstrated for the Neuro-Glio-Vascular Ensemble. Frontiers in Neuroscience. 12, (2018).
  5. Tomassy, G. S., et al. Distinct Profiles of Myelin Distribution Along Single Axons of Pyramidal Neurons in the Neocortex. Science. 344, 319-324 (2014).
  6. Wanner, A. A., Genoud, C., Masudi, T., Siksou, L., Friedrich, R. W. Dense EM-based reconstruction of the interglomerular projectome in the zebrafish olfactory bulb. Nature Neuroscience. 19, 816-825 (2016).
  7. Kasthuri, N., et al. Saturated Reconstruction of a Volume of Neocortex. Cell. 162, 648-661 (2015).
  8. Calì, C., et al. The effects of aging on neuropil structure in mouse somatosensory cortex—A 3D electron microscopy analysis of layer 1. PLOS ONE. 13, e0198131(2018).
  9. Visual Analysis of Glycogen Derived Lactate Absorption in Dense and Sparse Surface Reconstructions of Rodent Brain Structures. Calì, C., Agus, M., Gagnon, N., Hadwiger, M., Magistretti, P. J. Eurographics Italian Chapter Conference 2017 – Smart Tools and Apps in computer Graphics, , Catania, Italy. (2017).
  10. Calì, C., et al. Three-dimensional immersive virtual reality for studying cellular compartments in 3D models from EM preparations of neural tissues. Journal of Comparative Neurology. 524, 23-38 (2016).
  11. Fiala, J. C. Reconstruct: a free editor for serial section microscopy. Journal of Microscopy. 218, 52-61 (2005).
  12. Cardona, A., et al. TrakEM2 software for neural circuit reconstruction. PLOS ONE. 7, e38011(2012).
  13. Januszewski, M., et al. High-precision automated reconstruction of neurons with flood-filling networks. Nature Methods. 1, (2018).
  14. Shahbazi, A., et al. Flexible Learning-Free Segmentation and Reconstruction of Neural Volumes. Scientific Reports. 8, 14247(2018).
  15. Sommer, C., Straehle, C., Köthe, U., Hamprecht, F. A. Ilastik: Interactive learning and segmentation toolkit. 2011 IEEE International Symposium on Biomedical Imaging: From Nano to Macro, Chicago, IL, , (2011).
  16. Holst, G., Berg, S., Kare, K., Magistretti, P., Calì, C. Adding large EM stack support. 2016 4th Saudi International Conference on Information Technology (Big Data Analysis) (KACSTIT), Riyadh, Saudi Arabia, , (2016).
  17. Beyer, J., et al. ConnectomeExplorer: query-guided visual analysis of large volumetric neuroscience data. IEEE Transactions on Visualization and Computer Graphics. 19, 2868-2877 (2013).
  18. Beyer, J., et al. Culling for Extreme-Scale Segmentation Volumes: A Hybrid Deterministic and Probabilistic Approach. IEEE Transactions on Visualization and Computer. , (2018).
  19. Jorstad, A., et al. NeuroMorph: A Toolset for the Morphometric Analysis and Visualization of 3D Models Derived from Electron Microscopy Image Stacks. Neuroinformatics. 13, 83-92 (2015).
  20. Jorstad, A., Blanc, J., Knott, G. NeuroMorph: A Software Toolset for 3D Analysis of Neurite Morphology and Connectivity. Frontiers in Neuroanatomy. 12, 59(2018).
  21. Calì, C. Astroglial anatomy in the times of connectomics. Journal of Translational Neuroscience. 2, 31-40 (2017).
  22. Mohammed, H., et al. Abstractocyte: A Visual Tool for Exploring Nanoscale Astroglial Cells. IEEE Transactions on Visualization and Computer Graphics. , (2017).
  23. Agus, M., et al. GLAM: Glycogen-derived Lactate Absorption Map for visual analysis of dense and sparse surface reconstructions of rodent brain structures on desktop systems and virtual environments. Computers & Graphics. 74, 85-98 (2018).
  24. École Polytechnique Fédérale de Lausanne. NeuroMorph Analysis and Visualization Toolset. , http://neuromorph.epfl.ch (2018).
  25. Boges, D. GitHub - daniJb/glycol-analysis: Glycogen_analysis.py is a python-blender API based script that performs analysis on a reconstructed module of glycogen data. , https://github.com/daniJb/glyco-analysis (2018).
  26. Agus, M. GitHub – magus74/GLAM: Glycogen Lactate Absorption Model. , https://github.com/magus74/GLAM (2019).
  27. Agus, M., et al. GLAM: Glycogen-derived Lactate Absorption Map for visual analysis of dense and sparse surface reconstructions of rodent brain structures on desktop systems and virtual environments. Dryad Digital Repository. , (2018).
  28. Calì, C., et al. Data from: The effects of aging on neuropil structure in mouse somatosensory cortex—A 3D electron microscopy analysis of layer 1. Dryad Digital Repository. , (2018).

Przedruki i uprawnienia

Poproś o pozwolenie na ponowne wykorzystanie tekstu lub ilustracji tego artykułu JoVE

Poproś o pozwolenie

Tagi

3D ReconstructionVirtual Reality AnalysisElectron MicroscopyImage SegmentationTrakEM2 SoftwareIlastik CarvingNeuro Morph ToolkitBlender VisualizationFocused Ion BeamGlial Neuronal Cells

Powiązane artykuły