Vaa3D
Vaa3D (po chińsku „挖三维”) to pakiet oprogramowania do wizualizacji i analizy Open Source, stworzony głównie przez Hanchuana Penga i jego zespół z Janelia Research Campus , HHMI i Allen Institute for Brain Science . Oprogramowanie wykonuje renderowanie 3D, 4D i 5D oraz analizę bardzo dużych zestawów danych obrazowych, zwłaszcza tych generowanych różnymi nowoczesnymi mikroskopowymi , oraz powiązanych obiektów powierzchniowych 3D. To oprogramowanie było używane w kilku dużych neuronaukowych i wielu zastosowaniach w innych domenach. W niedawnym Nature Methods artykuł przeglądowy, był postrzegany jako jeden z wiodących pakietów oprogramowania typu open source w powiązanych dziedzinach badawczych. Ponadto badania z wykorzystaniem tego oprogramowania zostały nagrodzone Nagrodą Cozzarelli 2012 od Narodowej Akademii Nauk .
kreacja
Vaa3D powstał w 2007 roku, aby zająć się wielkoskalowym projektem mapowania mózgu w Janelia Farm Instytutu Medycznego Howarda Hughesa . Początkowym celem była szybka wizualizacja dowolnego z dziesiątek tysięcy dużych z mikroskopu skaningowego 3D mózgów muszek owocowych, każdy o objętości kilku gigabajtów. Renderowanie 3D niskiego poziomu OpenGL zostało opracowane w celu zapewnienia bezpośredniego renderowania wielowymiarowych stosów obrazów. C/ C++ i Qt zostały użyte do zapewnienia zgodności między platformami, dzięki czemu oprogramowanie może działać na komputerach Mac, Linux i Windows. Silne funkcje do synchronizacji wielu wyrenderowanych widoków 2D/3D/4D/5D, generowania globalnych i lokalnych przeglądarek 3D oraz wirtualnego palca pozwalają Vaa3D usprawnić szereg operacji dla skomplikowanych zadań związanych z nauką o mózgu, na przykład porównywanie mózgów i rekonstrukcja neuronów . Vaa3D zapewnia również rozszerzalny wtyczek , który obecnie obsługuje dziesiątki wtyczek open source dostarczonych przez naukowców z całego świata.
Wizualizacja 3D danych obrazu 3D, 4D i 5D
Vaa3D jest w stanie szybko renderować dane 3D, 4D i 5D (X, Y, Z, kolor, czas). Renderowanie wolumenowe jest zazwyczaj w skali kilku gigabajtów i może być rozszerzone do skali terabajtów na zestaw obrazów. Wizualizacja jest wykonywana szybko dzięki bezpośredniemu użyciu OpenGL.
Vaa3D radzi sobie z problemem wizualizacji dużych danych za pomocą kilku technik. Jednym ze sposobów jest połączenie zarówno zsynchronizowanego, jak i asynchronicznego renderowania danych, które wyświetla dane w pełnej rozdzielczości tylko wtedy, gdy obracanie lub inne dynamiczne wyświetlanie danych jest wstrzymane, a poza tym wyświetla tylko zgrubny obraz.
Alternatywną metodą zastosowaną w Vaa3D jest połączenie globalnych i lokalnych przeglądarek 3D. Globalna przeglądarka 3D opcjonalnie wyświetla tylko zmniejszony obraz, podczas gdy lokalna przeglądarka 3D wyświetla obraz w pełnej rozdzielczości, ale tylko w niektórych obszarach lokalnych. Intuicyjna nawigacja 3D odbywa się poprzez określenie obszaru zainteresowania 3D za pomocą techniki wirtualnego palca, a następnie wygenerowanie w czasie rzeczywistym określonej lokalnej przeglądarki 3D dla takiego obszaru zainteresowania.
Szybka interakcja człowiek-maszyna 3D, wirtualny palec i WYSIWYG 3D
Wizualizacja 3D stosu obrazów jest zasadniczo pasywnym procesem obserwacji danych. Połączenie aktywnego sposobu szybkiego wprowadzania preferencji użytkownika dotyczących określonych lokalizacji znacznie zwiększa efektywność eksploracji zawartości obrazu 3D lub wielowymiarowego. Niemniej jednak „eksplorowanie treści obrazu 3D” wymaga od użytkownika możliwości skutecznej interakcji i ilościowego profilowania wzorców obiektów obrazu za pomocą graficznego interfejsu użytkownika narzędzi do wizualizacji obrazów 3D. Wirtualny Palec, czyli 3D- WYSIWYG („What You See in 2D is What You Get in 3D”) umożliwia wydajne generowanie i wykorzystywanie informacji o lokalizacji 3D na podstawie danych 2D wprowadzonych przez użytkownika na typowym wyświetlaczu 2D lub urządzeniach dotykowych.
Technika wirtualnego palca odwzorowuje zidentyfikowane dane wprowadzone przez użytkownika 2D za pośrednictwem urządzeń wyświetlających 2D, takich jak ekran komputera, z powrotem do objętościowej przestrzeni 3D obrazu. Matematycznie jest to często trudny problem odwrotny. Jednak wykorzystując informacje o przestrzennej rzadkości i ciągłości w wielu zestawach danych obrazu 3D, ten odwrotny problem można dobrze rozwiązać, jak pokazano w niedawnym artykule.
Technologia wirtualnego palca Vaa3D umożliwia natychmiastową i przypadkową eksplorację złożonej zawartości obrazu 3D, podobnie jak przy użyciu prawdziwych palców eksploracja prawdziwego świata 3D za pomocą jednego kliknięcia lub pociągnięcia w celu zlokalizowania obiektów 3D. Został wykorzystany do zwiększenia wydajności pozyskiwania danych obrazu, wizualizacji, zarządzania, adnotacji, analizy i wykorzystania danych obrazu w eksperymentach w czasie rzeczywistym, takich jak mikrochirurgia.
Renderowanie obiektów powierzchniowych
Vaa3D wyświetla trzy główne typy powierzchni 3D:
- Chmura punktów: zestaw sferycznych obiektów 3D, z których każdy ma inny kolor, typ, rozmiar i inne właściwości. Jest to często używane do modelowania populacji komórek lub podobnych obiektów podobnych do cząstek.
- Dane relacyjne (wykres, sieć rurowa): każdy węzeł na wykresie ma określony rozmiar i typ oraz jest połączony z innymi węzłami. Jest to często używane do modelowania morfologii neuronów, topologii sieci itp.
- Nieregularne obiekty powierzchniowe: Każda powierzchnia 3D ma nieregularny kształt i jest modelowana przy użyciu skomplikowanej siatki powierzchni.
Te powierzchniowe obiekty 3D są często ułożone jako „zestawy”. Vaa3D może wyświetlać wiele zestawów dowolnych z tych obiektów powierzchniowych, które można również nakładać na dane wokseli obrazu przy użyciu różnych relacji nakładania. Cechy te są przydatne do kolokalizacji, kwantyfikacji, porównania i do innych celów.
Aplikacje
Oprogramowanie było używane w wielu zastosowaniach, takich jak poniższe przykłady.
Rekonstrukcja i kwantyfikacja neuronów
Vaa3D zapewnia pakiet Vaa3D-Neuron do rekonstrukcji, oceny ilościowej i porównania morfologii 3D pojedynczych neuronów wielu gatunków.
Vaa3D-Neuron umożliwia kilka sposobów śledzenia neuronów.
- Ręczne śledzenie: użytkownik może użyć wirtualnego palca 3D do ręcznej rekonstrukcji lub szybkiej edycji struktury neuronu w 3D.
- Półautomatyczne śledzenie: użytkownik może określić niektóre kluczowe punkty końcowe, do których musi dotrzeć śledzenie neuronów, a następnie poprosić Vaa3D o automatyczne zakończenie rekonstrukcji 3D. Użytkownik może następnie ręcznie edytować rekonstrukcję 3D.
- W pełni automatyczne śledzenie: użytkownik może użyć bardzo szybkiego narzędzia All-Path-Pruning 1 lub All-Path-Pruning 2 do automatycznego śledzenia całego neuronu w 3D oraz użyć narzędzia NeuronCrawler do śledzenia bardzo dużego stosu obrazów (dziesiątki gigabajtów na zestaw danych neuronu ). Użytkownik może również korzystać z kilku innych automatycznych algorytmów śledzenia neuronów przeniesionych do Vaa3D, w tym FarSight Snake Tracing, śledzenie NeuTube (dopasowywanie rur) i śledzenie oparte na rozbłysku promieni MOST. Metody opakowujące, takie jak UltraTracer, które rozszerzają dowolne z tych podstawowych znaczników do dowolnie dużych wielowymiarowych objętości obrazu, również zostały opracowane i zintegrowane z Vaa3D.
Analiza pojedynczych komórek dla C. elegans , muszki owocowej i myszy
Narzędzie Vaa3D zostało użyte do wyodrębnienia pojedynczych komórek z kilku badań nicienia C. elegans , muszki owocowej , myszy i innych gatunków. Podstawowymi funkcjami, które wykorzystano, była segmentacja obrazu 3D w celu wyodrębnienia i ilościowego określenia poziomów ekspresji genów w pojedynczych komórkach oraz szybkie zliczanie komórek w określonych obszarach mózgu. Vaa3D zapewnia również metody dodawania adnotacji do tych komórek i identyfikowania ich nazw.
Vaa3D zapewnia również algorytm SRS (Simultaneous Segmentation and Recognition) do trójwymiarowej segmentacji skomplikowanych komórek, które często się stykają. Dokonano tego poprzez adaptacyjne mapowanie predefiniowanego „atlasu” (mapy układu niektórych komórek) na obraz iteracyjnie przy użyciu algorytmu maksymalizacji oczekiwań aż do konwergencji. Wykazano, że SRS zmniejsza błędy nadmiernej i niedostatecznej segmentacji w porównaniu do zwykle stosowanej metody segmentacji działów wodnych.
Mapowanie mózgu i rejestracja obrazu 3D
Vaa3D był używany w kilku projektach mapowania mózgu , zarówno pod względem wyrównania wzorców (rejestracji), jak i analizy opartej na multipleksowaniu.
- Wyrównywanie i rejestracja wzorców: Vaa3D zapewnia szereg wtyczek i funkcji do wyrównywania wzorców obrazu 3D, a następnie synchronizowania wyświetlania 3D tych wyrównanych wzorców.
- Analiza oparta na multipleksowaniu: Vaa3D zawiera Atlas wzorców, który wyświetla serię wyrównanych wzorców obrazu w arkuszu kalkulacyjnym, za pomocą którego podzbiory tych wzorców można kolorować na różne sposoby i łączyć ze sobą w celu analizy kolokalizacji.
Rozszerzenia
Vaa3D można rozszerzyć za pomocą interfejsu wtyczki. Kreator o nazwie „Plugin Creator” służy do generowania podstawowego szablonu nowej wtyczki.
Obecnie wydawane są następujące główne kategorie wtyczek.
- Kreator kreatora wtyczek
- Zarządzanie kanałami kolorów
- Dane we/wy i konwersja
- Pokolenie Atlasa
- Aplikacje C.elegans
- Liczenie komórek (oparte na uczeniu maszynowym lub segmentacji obrazu)
- Filtry obrazu
- Geometria obrazu
- Rejestracja obrazu
- Segmentacja obrazu
- Łączenie obrazów i wizualizacja dużych obrazów
- Generacja filmów
- Śledzenie neuronów
- Zestaw narzędzi neuronowych
- Zestaw narzędzi do synchronizacji
- Narzędzia FlyWorkstation (dla stacji roboczej Janelia Farm Fly)
Vaa3D został również rozszerzony o obsługę ITK, Matlab , Bioformats, OpenCV i inne powszechnie używane oprogramowanie. Jedno rozszerzenie, zwane Vaa3D-TeraFly, służy do wizualizacji terabajtów danych obrazu przy użyciu szczegółowego widoku danych w stylu Google-Earth.