Artykuł metodologiczny

Zastosowanie nienadzorowanej analizy czynników multiomicznych w celu odkrycia wzorców zmienności i procesów molekularnych związanych z chorobami sercowo-naczyniowymi

DOI:

10.3791/66659

20 września 2024

W tym artykule

Podsumowanie

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

Prezentujemy elastyczny, rozszerzalny przepływ pracy oparty na laboratorium Jupyter do nienadzorowanej analizy złożonych zestawów danych multi-omicznych, który łączy różne etapy wstępnego przetwarzania, oszacowanie modelu analizy czynnikowej multi-omicznej i kilka dalszych analiz.

Streszczenie

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

Mechanizmy choroby są zazwyczaj skomplikowane i regulowane przez interakcję kilku różnych procesów molekularnych. Złożone, wielowymiarowe zestawy danych są cennym zasobem do generowania większej ilości informacji na temat tych procesów, ale analiza takich zestawów danych może być trudna ze względu na dużą wymiarowość wynikającą na przykład z różnych stanów chorobowych, punktów czasowych i omiki rejestrującej proces w różnych rozdzielczościach.

Tutaj prezentujemy podejście do analizy i eksploracji tak złożonego zestawu danych multiomicznych w sposób nienadzorowany, stosując multi-omiczną analizę czynnikową (MOFA) do zestawu danych wygenerowanych z próbek krwi, które rejestrują odpowiedź immunologiczną w ostrych i przewlekłych zespołach wieńcowych. Zestaw danych składa się z kilku testów o różnych rozdzielczościach, w tym danych cytokin na poziomie próbki, proteomiki osocza i sekwencji pierwszych neutrofili oraz danych sekwencyjnych RNA pojedynczej komórki (scRNA-seq). Dodatkową komplikacją jest pomiar kilku różnych punktów czasowych dla każdego pacjenta i kilku podgrup pacjentów.

Procedura analizy przedstawia sposób integracji i analizy danych w kilku krokach: (1) Wstępne przetwarzanie i harmonizacja danych, (2) Szacowanie modelu MOFA, (3) Dalsza analiza. W kroku 1 opisano, jak przetwarzać cechy różnych typów danych, odfiltrowywać obiekty o niskiej jakości i normalizować je w celu zharmonizowania ich rozkładów na potrzeby dalszej analizy. Krok 2 pokazuje, jak zastosować model MOFA i zbadać główne źródła wariancji w zestawie danych we wszystkich parametrach omicznych i cechach. W kroku 3 przedstawiono kilka strategii dalszej analizy przechwyconych wzorców, łącząc je z warunkami chorobowymi i potencjalnymi procesami molekularnymi rządzącymi tymi stanami.

Ogólnie rzecz biorąc, prezentujemy przepływ pracy do eksploracji danych bez nadzoru w złożonych zbiorach danych multi-omicznych, aby umożliwić identyfikację głównych osi zmienności składających się z różnych cech molekularnych, które mogą być również zastosowane w innych kontekstach i zbiorach danych multi-omicznych (w tym innych testach przedstawionych w przykładowym przypadku użycia).

Wprowadzenie

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

Mechanizmy choroby są zazwyczaj skomplikowane i regulowane przez interakcję kilku różnych procesów molekularnych. Rozszyfrowanie złożonych mechanizmów molekularnych, które prowadzą do określonych chorób lub rządzą ewolucją choroby, jest zadaniem o dużym znaczeniu medycznym, ponieważ może ujawnić nowe informacje na temat zrozumienia i leczenia chorób.

Najnowsze osiągnięcia technologiczne umożliwiają jednoczesne mierzenie tych procesów w wyższej rozdzielczości (np. na poziomie pojedynczej komórki) i na różnych warstwach biologicznych (np. DNA, mRNA, dostępność chromatyny, metylacja DNA, proteomika). Prowadzi to do coraz częstszego generowania dużych, wielowymiarowych zbiorów danych biologicznych, które mogą być wspólnie analizowane w celu uzyskania większej ilości informacji na temat procesów leżących u ich podstaw. Jednocześnie łączenie i analizowanie różnych źródeł danych w biologicznie znaczący sposób pozostaje trudnym zadaniem1.

Różne ograniczenia technologiczne, szumy i zakresy zmienności między różnymi rodzajami omiki stanowią jedno wyzwanie. Na przykład dane dotyczące sekwencjonowania RNA pojedynczej komórki (scRNA-seq) są bardzo rzadkie i często mają na nie wpływ duże efekty techniczne lub wsadowe. Ponadto przestrzeń cech jest często bardzo duża, obejmująca kilka tysięcy mierzonych genów lub białek, podczas gdy rozmiary próbek są ograniczone. Jest to dodatkowo skomplikowane ze względu na złożone projekty, które mogą obejmować kilka stanów chorobowych, czynników zakłócających, punktów czasowych i rozdzielczości. Na przykład w przedstawionym przypadku użycia różne typy danych były dostępne zarówno na poziomie pojedynczej komórki, jak i próbki (masowo). Poza tym dane mogą być niekompletne, a nie wszystkie pomiary mogą być dostępne dla wszystkich analizowanych obiektów.

Ze względu na te wyzwania, różne rodzaje omiki i zawarte w nich funkcje są nadal często analizowane tylko osobno2 nawet jeśli przeprowadzenie zintegrowanej analizy nie tylko nie zapewni pełnego obrazu procesu, ale także biologiczne i techniczne odgłosy z jednej omiki mogą być również kompensowane przez inne omiki3,4. Zaproponowano kilka różnych metod przeprowadzania zintegrowanej analizy danych multiomicznych, w tym metody bayesowskie, metody sieciowe5,6, multimodalne głębokie uczenie7 oraz metody redukcji wymiarowości poprzez faktoryzację macierzy8,9. W tym ostatnim przypadku wyniki dużego badania porównawczego10 wykazały, że metoda MOFA9 (analiza czynników multiomicznych) jest jednym z lepiej dopasowanych narzędzi, gdy dane powinny być powiązane z adnotacjami klinicznymi.

Szczególnie w złożonych warunkach, nienadzorowane metody faktoryzacji macierzy są użytecznym podejściem do zmniejszania złożoności i wyodrębniania współdzielonych i uzupełniających sygnałów z różnych źródeł danych i funkcji. Dekomponując złożoną przestrzeń na reprezentacje utajone niższej rangi, można szybko zbadać główne źródła wariancji w danych i powiązać je ze znanymi współzmiennymi. W przypadku, gdy ten sam wzorzec zmienności jest wspólny dla wielu cech (np. genów lub białek), można go zagregować do kilku czynników, podczas gdy szum jest redukowany. Regularyzacja może być wykorzystana do zwiększenia rzadkości współczynników modelu, co sprawia, że podejście to dobrze sprawdza się w ustawieniach, w których przestrzeń cech jest duża, a liczba próbek jest ograniczona9.

Ten protokół przedstawia elastyczny przepływ pracy, który wykorzystuje model MOFA do pokazania, jak szybko eksplorować złożony zbiór danych multiomicznych i wyodrębnić główne wzorce zmienności, które charakteryzują ten zbiór danych. Przepływ pracy składa się z trzech głównych kroków. W pierwszym etapie, Wstępne przetwarzanie i harmonizacja danych, przedstawiono różne strategie wstępnego przetwarzania danych w oparciu o różne typy danych wejściowych (scRNA-seq, proteomika, cytokina, dane kliniczne). Protokół szczegółowo opisuje, w jaki sposób przetwarzać cechy różnych wejściowych zestawów danych, odfiltrowywać funkcje niskiej jakości i normalizować je w celu zharmonizowania ich rozkładów. Pokazujemy również, w jaki sposób te decyzje dotyczące wstępnego przetwarzania mogą wpłynąć na dalsze wyniki. W drugim kroku do danych stosuje się model MOFA, a uzyskaną dekompozycję wariancji można wykorzystać do oceny integracji różnych zestawów danych. Trzeci krok pokazuje, jak połączyć wychwycone czynniki ze współzmiennymi i odkryć programy molekularne, które definiują te czynniki. Dzięki przedstawionemu przepływowi pracy byliśmy w stanie wyodrębnić kilka utajonych czynników związanych ze współzmiennymi klinicznymi w zbiorze danych pacjentów cierpiących na zespoły wieńcowe i zidentyfikować potencjalne wielokomórkowe programy odpornościowe z poprzedniego projektu11. Użyjemy tutaj tego zestawu danych, ale protokół można łatwo zastosować w innych kontekstach, w tym w innych systemach omicznych.

Zbiór danych składa się z próbek od pacjentów ze stabilnymi przewlekłymi zespołami wieńcowymi (CCS), ostrymi zespołami wieńcowymi (ACS) oraz grupy kontrolnej ze zdrowymi chorobami wieńcowymi (bez CCS) (Rysunek 1). OZW jest spowodowane pęknięciem blaszki miażdżycowej w istniejącym wcześniej CCS, co prowadzi do ostrego zaburzenia przepływu krwi do mięśnia sercowego, a następnie do niedokrwiennego uszkodzenia serca. Uraz ten powoduje reakcję zapalną układu odpornościowego, po której następuje faza naprawcza, która trwa do kilku dni po ostrym zdarzeniu12. Aby móc scharakteryzować tę odpowiedź immunologiczną u pacjentów z OZW, próbki krwi pobrano w czterech różnych punktach czasowych: ostrym (TP1); po rekanalizacji (14 [± 8] h) (TP2); 60 [± 12] h później (TP3); przed wypisem (6.5 [±1.5] dni) (TP4) (Rysunek 1A). W przypadku CCS i pacjentów ze zdrowymi chorobami wieńcowymi dostępny był tylko jeden punkt czasowy - (TP0). Dla wszystkich pacjentów i punktów czasowych zmierzono różne testy na podstawie próbek krwi: kliniczne markery stanu zapalnego (CK), CK-MB, Troponina, białko C-reaktywne (CRP)), sekwencja scRNA komórek jednojądrzastych krwi obwodowej (PBMCs), analiza cytokin, proteomika osocza i dane prime-seq13 neutrofili.

figure-introduction-1
Rysunek 1: Wieloomiczny zestaw danych wejściowych zawału mięśnia sercowego. Wejściowy zestaw danych: Analizowane dane obejmują próbki krwi od pacjentów (n = 62) z ostrym zespołem wieńcowym (OZW), przewlekłymi zespołami wieńcowymi (CCS) i pacjentów ze zdrowymi chorobami wieńcowymi (bez CCS). W przypadku pacjentów z OZW próbki krwi uwzględniono w czterech różnych punktach czasowych (TP1-4), a u pacjentów z CCS i bez CCS w jednym punkcie czasowym (TP0). Każda kombinacja pacjenta i punktu czasowego jest traktowana w analizie jako oddzielna próbka. Na próbkach mierzono różne testy omiczne: kliniczne badania krwi (n = 125), sekwencja scRNA (n = 121), proteomika osocza (n = 119), test cytokin (n = 127) i sekwencja neutrofili (n = 121). Następnie opisany protokół został zastosowany do zintegrowania danych ze wszystkich omików i zbadania ich przy użyciu modelu MOFA oraz dalszej analizy (analiza czynnikowa, wzbogacanie ścieżek). Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

Jako dane wejściowe do przepływu pracy, jak to tutaj przedstawiono, pobieramy surowe zliczenia z danych sekwencyjnych scRNA po przetworzeniu za pomocą cellrangera i kontroli jakości (QC), jak na przykład opisano w samouczku wstępnego przetwarzania scanpy14. Do adnotacji typu komórki użyliśmy zautomatyzowanego potoku Azimuth15. Liczby są następnie agregowane na poziomie próbki dla każdego typu komórki, biorąc średnią ze wszystkich komórek dla każdej próbki i typu komórki (agregacja pseudozbiorcza). Proteomika osocza jest uwzględniona jako intensywności znormalizowane i skoncentrowane na medianie, a dla neutrofili bierzemy liczbę eksonów umi unique molecular identifier (UMI) z sekwencji pierwszej. Jeśli chodzi o cytokiny i wartości kliniczne, nie zastosowano wcześniejszego przetwarzania wstępnego. Dalsze szczegóły na temat generowania danych (eksperymentalnych) znajdują się w odpowiednim manuskrypcie11. Ponieważ przedstawione tutaj wyniki opierają się na użyciu automatycznej adnotacji azymutalnej dla typów komórek w danych sekwencyjnych scRNA, w porównaniu ze strategią opartą na markerach, która została zastosowana w cytowanej publikacji, przedstawione tutaj wyniki są podobne, ale nie dokładnie takie same, jak przedstawione w publikacji. W manuskrypcie można wykazać, że strategia adnotacji typu komórki nie zmienia głównych wzorców i biologicznych interpretacji analizy, ale niewielkie zmiany w dokładnych wartościach wynikających z modelu mogą się różnić. Ogólnie rzecz biorąc, dane wejściowe były złożonym, wielowymiarowym zbiorem danych obejmującym różne punkty czasowe i poziomy pomiarów (pojedyncze komórki vs. masa) ponad 10 000 różnych cech (geny, białka, wartości kliniczne). Wykazano, że ścisła strategia wstępnego przetwarzania i harmonizacji danych, po której następuje analiza MOFA, jest użytecznym i szybkim narzędziem do eksploracji danych i wyodrębniania odpowiedniego programu immunologicznego. Każdy punkt czasowy i kombinacja pacjenta jest traktowana jako niezależna próbka w analizie MOFA. Każdy typ danych i typ komórki jest traktowany jako osobny widok w analizie MOFA.

Ten protokół zawiera instrukcje dotyczące przygotowania danych wejściowych do przepływu pracy, wykonywania różnych kroków przepływu pracy, dostosowywania konfiguracji, interpretacji wynikowych liczb i iteracyjnego dostosowywania konfiguracji na podstawie interpretacji. Przegląd różnych etapów protokołu, wymaganych wejściowych zestawów danych na każdym kroku oraz wynikowych liczb i zestawów danych jest podany przez techniczny przegląd przepływu pracy (Rysunek 2).

figure-introduction-2
Rysunek 2: Przegląd technicznego przepływu pracy. Zarys przepływu pracy na potrzeby analizy zbioru danych multiomicznych. Poszczególne elementy są wyróżnione różnymi kolorami i symbolami. Notesy Jupyter Notebook należące do kroku Wstępne przetwarzanie i harmonizacja danych (1) są oznaczone kolorem niebieskim. Notesy Jupyter należące do kroku "Model MOFA" (2) są pokolorowane na pomarańczowo. Notesy Jupyter Notebook należące do kroku "Dalsza analiza" (3) są pokolorowane na zielono. Jeden Jupyter Notebook, który ma być używany do porównywania wyników, jest pokolorowany na żółto. Pliki konfiguracyjne, w których można modyfikować parametry wykonywania przepływu pracy, są podświetlone na fioletowo. Wejściowe zestawy danych, które są wymagane do uruchomienia przepływu pracy, są oznaczone symbolem zestawu danych i wyróżnione kolorem szarym. Wszystkie dane wyjściowe figur, które są generowane podczas wykonywania przepływu pracy, są oznaczone symbolem szkła powiększającego. Zestawy danych wygenerowane podczas wykonywania przepływu pracy są oznaczone jako tabele. Ogólnie rzecz biorąc, przepływ pracy jest wykonywany sekwencyjnie: (1) Wstępne przetwarzanie i harmonizacja danych składa się z dwóch etapów: pierwszego generowania tabeli pseudozbiorczej na podstawie danych wejściowych scRNA-seq (01_Prepare_Pseudobulk), a następnie integracji i normalizacji tych danych wraz ze wszystkimi innymi danymi wejściowymi na poziomie próbki (masowo) (02_Integrate_and_Normalize_Data). W ramach tego kroku za pomocą plików konfiguracyjnych możliwe jest skonfigurowanie dla każdego zbioru danych osobno, które ze wskazanych kroków wstępnego przetwarzania i normalizacji (np. Filtr próbki) powinny zostać zastosowane. (2) "Model MOFA": uruchamia model MOFA na danych wejściowych wygenerowanych w pierwszym kroku z konfiguracjami określonymi w pliku konfiguracyjnym (03_MOFA_configs.csv) (3) "Dalsza analiza": składa się z trzech różnych notatników, które mogą być uruchamiane niezależnie od siebie w celu uzyskania wglądu w wygenerowane wyniki MOFA i powiązania ich z przykładowymi metadanymi (współzmiennymi) dostarczonymi jako dane wejściowe za pośrednictwem pliku "Sample Meta Data.csv". (4) "Porównanie modeli": oznacza mały odrębny krok, który można wykorzystać do porównania różnych modeli wygenerowanych w kroku 2. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

Przepływ pracy składa się z kilku Jupyter Notebooks napisanych w R i Pythonie (znajomość języka R i Python nie jest wymagana do uruchomienia przepływu pracy, ale może być pomocna w przypadku pojawienia się błędów). W różnych krokach protokołu parametry są zmieniane za pomocą plików konfiguracyjnych (pliki '.csv' zawierające przyrostek '_Configs' w nazwie). W ramach protokołu nakreślamy tylko parametry, które należy zmienić, zaczynając od konfiguracji domyślnej.

Kilka innych parametrów może również zostać zmienionych, na przykład w celu dostosowania przetwarzania wstępnego. Dokumentacja tych parametrów i objaśnienia znajdują się w pliku "Documentation_Config_Parameter", który znajduje się w pobranym repozytorium.

Protokół

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

1. Przygotowania: Instalacja techniczna i instalacja

UWAGA: Aby uruchomić ten program, zainstaluj na urządzeniu wget, git i Apptainer. Przewodnik po instalacji Apptainera na różnych systemach (Linux, Windows, Mac) znajduje się tutaj: https://apptainer.org/docs/admin/main/installation.html. Informacje o instalacji git można znaleźć tutaj: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git. W zależności od rozmiaru różnych wejściowych zestawów danych zaleca się uruchomienie przepływu pracy na odpowiednim komputerze (16 procesorów, 64 GB pamięci). Test dymu z podanymi przykładowymi danymi można wykonać na komputerze lokalnym. Instrukcje i oczekiwane dane wyjściowe z uruchomienia protokołu na przykładowych danych są podane w pliku uzupełniającym 1. Zapoznaj się z dodatkowym plikiem wideo 1, aby zapoznać się z ważnymi krokami protokołu, które są wykonywane na zestawie danych opisanym powyżej.

  1. Otwórz konsolę i wybierz lub utwórz folder, w którym będzie przechowywany cały kod analizy i dane wyjściowe. Przejdź do folderu, wpisując polecenie: cd path_to_folder w terminalu.
  2. Pobierz lub sklonuj repozytorium kodu z Github (https://github.com/heiniglab/mofa_workflow) lub wpisując git clone https://github.com/heiniglab/mofa_workflow.git w oknie terminala.
  3. Pobierz obraz zawierający wszystkie wymagane instalacje z Zenodo, wpisując wget https://zenodo.org/records/11192947/files/mofa_image.sif w oknie terminala.
  4. Wygeneruj folder, w którym będą przechowywane wszystkie dane wynikowe, wpisując wyniki mkdir w oknie terminala.
  5. Wygeneruj folder, do którego zostaną dodane wszystkie dane wejściowe, które mają być użyte w analizie, wpisując mkdir input_data w oknie terminala.
  6. Uruchom kontener, który uruchomi sesję JupyterLab, wpisując następujące polecenie w terminalu: apptainer run mofa_image.sif. Skopiuj adres URL zwrócony przez polecenie do przeglądarki, co otworzy sesję Jupyter-lab (więcej informacji na temat Jupyter-lab można znaleźć w dokumentacji oprogramowania16).
    UWAGA: Gdy przepływ pracy jest wykonywany lokalnie na laptopie, zaleca się użycie zamiast tego polecenia apptainer exec mofa_image.sif jupyter-lab, które bezpośrednio zwróci lokalny adres hosta. W przypadku, gdy kontener jest uruchamiany w klastrowym środowisku obliczeniowym, może być konieczne skonfigurowanie przekierowania portów, co można wykonać za pomocą ssh.

2. Inicjalizacja i przygotowanie danych

  1. W sesji Jupyter-Lab użyj menu nawigacji po lewej stronie. Przejdź do folderu input_data, klikając dwukrotnie input_data.
  2. Skopiuj wszystkie zestawy danych, które będą używane jako dane wejściowe do analizy, do katalogu input_data za pomocą funkcji Drag&Drop. Przeciągnij plik z folderu, w którym się aktualnie znajduje, i upuść go w sesji Jupyter-lab w obszarze poniżej folderu input_data.
    UWAGA: Wszystkie zestawy danych muszą być w formacie .csv lub .h5ad (w przypadku danych jednokomórkowych). Wszystkie pliki .csv muszą zawierać pasującą kolumnę sample_id (we wszystkich zestawach danych należy używać identycznych identyfikatorów). Wszystkie inne kolumny będą używane jako obiekty. W pliku h5ad- adnotacja komórki musi zawierać dwa identyfikatory określające sample_id i cluster_id. Będą one używane do agregacji i dopasowywania. Zestawy danych omicznych w innych formatach muszą zostać przekonwertowane na określony format .csv przed użyciem (Rysunek 3). Zestawy danych scRNA-seq podane w formacie .h5seurat mogą zostać przekonwertowane na .h5ad wykonując Jupyter-notebook: 00_Data_Conversion.ipynb.
  3. Przejdź do folderu konfiguracji, klikając symbol folderu, a następnie klikając dwukrotnie foldery mofa_workflow, skrypty i konfiguracje. W folderze otwórz plik Data_configs.csv, klikając go dwukrotnie.
  4. W kolumnie wartość dodaj ścieżki do folderów input_data (data_path) i wyników (result_path). Dodaj nazwę, która zostanie dodana jako rozszerzenie pliku do wszystkich zapisanych plików w kolumnie wartości dla configuration_name (ten protokół był używany MI_v1 [Zawał mięśnia sercowego wersja 1]) (Rysunek 4).
  5. Zapisz zmiany, klikając Plik > Zapisz plik CSV w menu u góry.
  6. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu skryptów, klikając skrypty. Otwórz notes inicjalizacji, klikając dwukrotnie plik 00_Configuration_Update.ipynb. Uruchom skrypt, klikając przycisk Uruchom ponownie jądro i uruchom wszystkie komórki u góry, a następnie klikając Uruchom ponownie w wyskakującym okienku (Rysunek 5).

figure-protocol-1
Rysunek 3: Wprowadzanie i konfiguracja danych. Aby można było wykonać przepływ pracy, wszystkie dane muszą być przechowywane w określonym folderze input_data. Dla każdego wejściowego zbioru danych należy dostarczyć oddzielny plik. Dane z jednej komórki powinny być podane jako .h5ad zawierające adnotację komórki na cluster_id (wynikającą np. z poprzednich etapów adnotacji typu komórka) i kolumnę sample_id (jednoznacznie identyfikującą każdą oddzielną próbkę, która powinna być analizowana). Wszystkie inne wejściowe zbiory danych powinny być podane w formacie ".csv", w tym jedna kolumna określająca sample_id (dopasowana do odpowiedniej kolumny danych jednokomórkowych) oraz cechy, które mają być wykorzystane w analizie MOFA we wszystkich pozostałych kolumnach. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-protocol-2
Rysunek 4: Pliki konfiguracyjne Jupyter-lab. Podczas wykonywania przepływu pracy zmiany parametrów (np. dostosowanie opcji filtrowania itp.) są określane za pomocą plików konfiguracyjnych ".csv". W sklonowanym repozytorium znajdują się domyślne pliki konfiguracyjne dla każdego kroku. Można je edytować bezpośrednio w konsoli jupyter-lab, podobnie jak w arkuszu kalkulacyjnym. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-protocol-3
Rysunek 5: Skrypty Jupyter-notebooks. Kompletny przepływ pracy składa się z serii notesów Jupyter, które będą wykonywane sekwencyjnie po zmodyfikowaniu odpowiednich plików konfiguracyjnych. Klikając dwukrotnie notatnik Jupyter po lewej stronie, odpowiedni plik zostanie otwarty po prawej stronie. Pełne wykonanie pliku można rozpocząć za pomocą przycisku podświetlonego u góry. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

3. Wstępne przetwarzanie i harmonizacja danych

  1. Przetwarzanie wstępne — konwertowanie danych sc na pseudobulk.
    UWAGA: Ten krok należy wykonać tylko wtedy, gdy w analizie używane są dane jednokomórkowe.
    1. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu konfiguracji, klikając dwukrotnie konfigurację. Otwórz plik 01_Preprocessing_SC_Data.csv, klikając dwukrotnie. Sprawdź automatycznie wypełnione wartości w pliku i, jeśli to konieczne, dostosuj wartości w kolumnie data_name tak, aby odpowiadały nazwom plików jednokomórkowych zestawów danych w folderze input_data, który będzie używany do analizy.
      UWAGA: Domyślnie wszystkie nazwy plików .h5ad w folderze danych wejściowych zostaną dodane do pliku konfiguracyjnego w skrypcie inicjującym. Jeśli niektóre zestawy danych nie powinny być używane do analizy, można je usunąć w tym miejscu.
    2. Zapisz wprowadzone zmiany, klikając Plik > Zapisz plik CSV w menu u góry.
    3. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu skryptów, klikając skrypty. Otwórz notes 01_Prepare_Pseudobulk.ipynb, klikając go dwukrotnie. Uruchom skrypt, klikając przycisk Uruchom ponownie jądro i uruchom wszystkie komórki u góry, a następnie klikając Uruchom ponownie w wyskakującym okienku.
    4. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu z figurami, klikając dwukrotnie najpierw figury, a następnie 01_figures. Otwórz nowo wygenerowaną FIG01_Amount_of_Cells_overview działki, klikając ją dwukrotnie.
      UWAGA: Wykonanie notesu może potrwać kilka minut. Po pomyślnym wykonaniu notesu pojawi się wyskakujące okienko, a plik FIG01_Amount_of_Cells_Overview zostanie zaktualizowany przez notes lub wygenerowany na nowo. Kolumna Ostatnia modyfikacja może wskazywać, kiedy plik został wygenerowany, aby ocenić, czy jest to nowy, czy stary plik.
    5. Zbadaj wykres, aby zidentyfikować klastry typów komórek z bardzo małą liczbą komórek w próbce. Zanotuj nazwy tych cluster_ids aby wykluczyć je w kolejnych krokach (Rysunek 6).
    6. Użyj menu nawigacyjnego po lewej stronie, aby wrócić do folderu konfiguracji, klikając ..., a następnie klikając dwukrotnie konfiguracje. Otwórz plik 02_Preprocessing_Configs_SC.csv, klikając go dwukrotnie.
    7. Sprawdź wartości w kolumnach configuration_name i data_name i dostosuj je w razie potrzeby.
      UWAGA: W skrypcie inicjalizacyjnym wartości te są wstępnie wypełnione wszystkimi nazwami plików .h5ad w folderze danych wejściowych oraz wartością configuration_name ustawioną wcześniej w pliku Data_Configs.csv. W przypadku, gdy pliki powinny zostać wyłączone z analizy lub należy użyć innego rozszerzenia nazw plików, można to dostosować tutaj.
    8. Dostosuj wartość w kolumnie cell_type_exclusion i dodaj wszystkie cluster_id, które zostały zidentyfikowane do wykluczenia w poprzednim kroku, oddzielając je znakiem ",".
    9. Zapisz zmiany, klikając Plik > Zapisz plik CSV na pasku nawigacyjnym u góry.
  2. Przetwarzanie wstępne — harmonizacja i integracja innych źródeł danych omicznych.
    1. Otwórz plik 02_Preprocessing_Configs.csv, klikając go dwukrotnie i dostosuj konfigurację przetwarzania wstępnego dla każdego z zestawów danych, które zostaną uwzględnione i są przechowywane w folderze data_input (jeden wiersz na zestaw danych).
    2. Sprawdź wartości w kolumnach configuration_name i data_name i dostosuj je w razie potrzeby.
    3. Dostosuj odpowiednio pozostałe parametry w kolumnach, w zależności od tego, które kroki przetwarzania wstępnego mają zostać zastosowane.
      UWAGA: Wartości domyślne są dodawane dla każdego zestawu danych znajdującego się w folderze input_dataset, ale nie są specyficzne dla pojedynczych typów danych danych. Dlatego konieczne będą korekty. Szczegółowa dokumentacja parametrów znajduje się w pliku Documentation_Config_Parameter.doc.
    4. Zapisz zmiany, klikając Plik > Zapisz plik CSV.
    5. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu skryptów, klikając skrypty. Otwórz notes 02_Integrate_and_Normalized_Data_Sources.ipynb, klikając go dwukrotnie. Uruchom skrypt, klikając przycisk Uruchom ponownie jądro i uruchom wszystkie komórki u góry, a następnie klikając Uruchom ponownie w wyskakującym okienku.
    6. Użyj menu nawigacyjnego po lewej stronie, aby przejść do wygenerowanego folderu 02_results, klikając symbol folderu, a następnie klikając dwukrotnie wyniki i 02_results. Sprawdź, czy zawiera plik 02_Combined_data_'configuration_name'_Integrated.csv zawierający połączony wstępnie przetworzony plik wejściowy danych.

figure-protocol-4
Rysunek 6: Wstępne przetwarzanie i harmonizacja danych. Jednym z wyników kroku "01_Prepare_Pseudobulk" jest wykres "Fig01_Amount_of_Cells_Overview". W tym miejscu dla każdej cluster_id (oś y wskazująca typ komórki z poprzednich etapów adnotacji typu komórki) podana jest liczba komórek w próbce ("sample_id"). W ramach przedstawionych wyników typy komórek z małą liczbą komórek w próbce są wyłączone z późniejszej analizy (wskazanej przekreśleniem). Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

4. Uruchamianie MOFA

  1. W Jupyter-Lab użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu konfiguracji, klikając symbol folderu, a następnie klikając dwukrotnie mofa_workflow, a następnie klikając dwukrotnie skrypty i konfiguracje. Otwórz plik 03_MOFA_Configs.csv, klikając go dwukrotnie.
  2. Sprawdź wpisy w kolumnach configuration_name i mofa_result_name oraz dostosuj wpisy, jeśli mają być używane nazwy alternatywne.
    UWAGA: mofa_result_name zostanie dołączony jako rozszerzenie pliku do wszystkich plików wynikowych wygenerowanych na podstawie MOFA. Może się ona różnić od wartości configuration_name, ponieważ różne konfiguracje MOFA mogą być uruchamiane z tymi samymi danymi wejściowymi (ten protokół używa MI_v1_MOFA).
  3. Wprowadź ilość czynników, które mają być oszacowane w modelu MOFA (kolumna amount_of_factors) i określ, czy ma być stosowane ważenie i skalowanie (kolumny weighting_of_views i scale_views), dostosowując wartości w pliku.
  4. Zapisz zmiany, klikając Plik > Zapisz plik CSV.
  5. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu skryptów, klikając "skrypty". Otwórz notes 03_Run_MOFA.ipynb, klikając dwukrotnie plik. Uruchom skrypt, klikając przycisk Uruchom ponownie jądro i uruchom wszystkie komórki u góry i klikając Uruchom ponownie w wyskakującym okienku.
  6. Przejdź do folderu 03_figures, klikając dwukrotnie rysunki, a następnie 03_figures. Otwórz wygenerowany wykres FIG03_Overview_Variance_Decomposition_'mofa_result_name i zbadaj wynik modelu (Rysunek 7A).
  7. Użyj menu nawigacyjnego po lewej stronie, aby przejść do wygenerowanego folderu 03_results, klikając symbol folderu, a następnie klikając dwukrotnie wyniki i 03_results. Sprawdź, czy zawiera plik wartości czynnika próbki 03_Factor_Data_'mofa_result_name'.csv oraz plik wagi czynnika elementu 03_Weight_Data_'mofa_result_name'.csv.

5. Dalsza analiza

  1. Interpretacja czynnikowa.
    1. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu input_data, klikając symbol folderu, a następnie klikając dwukrotnie input_data.
    2. Przygotuj plik .csv (Prepared_Sample_Meta_Data.csv), który zawiera wszystkie metadane (współzmienne) próbek, które będą analizowane w połączeniu z wygenerowanymi czynnikami. Skopiuj plik do folderu input_data, korzystając z funkcji Przeciągnij i upuść, upuszczając plik w przeglądzie folderów folderu input_data folder.
      UWAGA: Musi zawierać kolumnę sample_id do dopasowania go do poprzednio używanych danych oraz kolejne kolumny dla każdej cechy, która powinna być analizowana.
    3. W Jupyter-Lab użyj menu nawigacyjnego po lewej stronie, aby wrócić do folderu konfiguracji, klikając symbol folderu, a następnie klikając dwukrotnie mofa_workflow, a następnie skrypty i konfigurację. Otwórz plik 04_Factor_Analysis.csv, klikając go dwukrotnie.
    4. Sprawdź, czy wpisy dla configuration_name i mofa_result_name zawierają nazwy konfiguracji i wyników MOFA, które będą analizowane w skrypcie i dostosuj je w razie potrzeby.
    5. W kolumnie numeric_covariates dodaj nazwy wszystkich kolumn numerycznych w pliku Prepared_Sample_Meta_Data.csv, które będą badane w odniesieniu do czynników MOFA, oddzielonych przecinkami (ten protokół używa CRP,CK).
    6. W kolumnie categorical_covariates' dodaj nazwy wszystkich kolumn kategorii w pliku Prepared_Sample_Meta_Data.csv, które będą badane w odniesieniu do czynników MOFA, oddzielając je przecinkami (ten protokół używa pomiaru).
    7. Zapisz zmiany, klikając Plik > Zapisz plik CSV.
    8. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu "skrypty", klikając skrypty. Otwórz notes 04_Downstream_Factor_Analysis.ipynb, klikając go dwukrotnie. Wykonaj skrypt, klikając przycisk Uruchom ponownie jądro i uruchom wszystkie komórki u góry, a następnie klikając ponownie w wyskakującym okienku.
    9. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu 04_figures, klikając dwukrotnie rysunki, a następnie 04_figures. Otwórz wygenerowane wykresy, klikając je dwukrotnie i zbadaj czynniki pod kątem interesujących wzorców i skojarzeń: FIG04_Factor_Association_with_numeric_features_
      'mofa_result_name.pdf (Rysunek 7B
      ). FIG04_Factor_Association_
      with_categorical_features_'mofa_result_name.pdf (Rysunek 7C). FIG04_Top_Feature_Overview_per_Factor _'mofa_result_name.pdf (Rysunek 8A).
  2. Analiza cech
    1. Użyj menu nawigacyjnego po lewej stronie, aby wrócić do folderu konfiguracji, klikając ..., a następnie klikając dwukrotnie konfiguracje. Otwórz plik 05_Feature_Analysis_Configs.csv, klikając go dwukrotnie.
    2. Sprawdź, czy wpisy w kolumnach configuration_name i mofa_result_name odpowiadają nazwom konfiguracji i wygenerowanemu wynikowi MOFA, które zostaną użyte do dalszej analizy, i dostosuj je w razie potrzeby.
    3. W kolumnie czynnik dodaj czynnik, dla którego najważniejsze obiekty zostaną wykreślone w następnym skrypcie.
    4. W kolumnie faceting_variable dodaj nazwę kolumny kategorii w Prepared_Sample_Meta_Data.csv która będzie używana do grupowania próbek na wykresie (ten protokół używa pomiaru)
    5. Zapisz zmiany, klikając Plik > Zapisz plik CSV.
    6. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu skryptów, klikając skrypty. Otwórz notes 05_Downstream_Investigate_Features_Heatmap.ipynb, klikając go dwukrotnie. Uruchom skrypt, klikając przycisk Uruchom ponownie jądro i uruchom wszystkie komórki u góry, a następnie klikając Uruchom ponownie w wyskakującym okienku.
    7. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu 05_figures, klikając dwukrotnie najpierw rysunki, a następnie 05_figures. Otwórz i zbadaj wygenerowaną działkę FIG05_Heatmap_Feature_Overview__ 'mofa_result_name'.pdf, klikając dwukrotnie plik (Rysunek 8B).
      UWAGA: W zależności od liczby obiektów, które zostaną wyświetlone na wykresie, może być konieczne dostosowanie parametrów plot_width i plot_height w obrębie 05_Feature_Analysis_Configs.csv oraz ponowne uruchomienie skryptu, aby upewnić się, że wszystko mieści się na wykresie.
  3. Analiza ścieżek
    1. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu input_data, klikając symbol folderu, a następnie klikając dwukrotnie input_data.
    2. Przygotuj plik .csv (Prepared_Pathway_Data.csv) zawierający listę ścieżek, które zostaną przetestowane pod kątem wzbogacenia. Skopiuj plik do folderu input_data za pomocą funkcji Przeciągnij i upuść, upuszczając plik w przeglądzie folderów folderu input_data folder.
      UWAGA: Musi zawierać trzy kolumny: ID (unikalny identyfikator szlaku), gen (geny podane przez ich nazwę genu (SYMBOL) należące do szlaku, jeden wiersz na gen), pathway_name (nazwa/tekstowy opis szlaków).
    3. W sesji Jupyter-Lab użyj menu nawigacji po lewej stronie, aby przejść do folderu konfiguracji, klikając pozycję ..., a następnie klikając dwukrotnie konfiguracje. Otwórz plik 06_Pathway_Configs.csv, klikając go dwukrotnie.
    4. Sprawdź wpis w kolumnie mofa_result_name i upewnij się, że odpowiada on nazwie wygenerowanego wyniku MOFA, który zostanie użyty do obliczenia wzbogacenia ścieżki.
    5. Sprawdź wpis w kolumnie types (typy) i usuń wpisy w kolumnie types, które nie zawierają cech pasujących do kolumny gene w pliku Prepared_Pathway_Data.csv.
      UWAGA: Domyślnie wszystkie różne widoki, które były używane w modelu MOFA, są dodawane do tego pliku podczas wykonywania przepływu pracy. W przypadku, gdy istnieją widoki, które nie zawierają cech pasujących do co najmniej jednej ścieżki, należy je usunąć; W przeciwnym razie wykonanie zakończy się niepowodzeniem. Przykładem może być plik ścieżki zawierający tylko adnotacje ścieżek dla genów, ale istnieje widok zawierający nazwy białek.
    6. Zapisz zmiany, klikając Plik > Zapisz plik CSV.
    7. Użyj menu nawigacyjnego, aby przejść do folderu skryptów, klikając skrypty. Otwórz notes 06_Downstream_Pathways.ipynb, klikając go dwukrotnie. Wykonaj skrypt, klikając przycisk Uruchom ponownie jądro i uruchom wszystkie komórki u góry, a następnie klikając Uruchom ponownie w wyskakującym okienku.
    8. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu 06_figures, najpierw klikając dwukrotnie rysunki, a następnie 06_figures. Otwórz wygenerowany wykres FIG06_Pathways_and_Genes_ 'mofa_result_name, klikając go dwukrotnie i zbadaj wizualizowane ścieżki (Rysunek 8C).
      UWAGA: Sposób wyboru wizualizowanych ścieżek można skonfigurować za pomocą pliku konfiguracyjnego. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją parametrów.
    9. Użyj menu nawigacyjnego po lewej stronie, aby przejść do wygenerowanego folderu 06_results, klikając symbol folderu, a następnie klikając dwukrotnie wyniki i 06_results. Sprawdź, czy zawiera plik zawierający wzbogacone ścieżki 06_Pathway_enrichment__'mofa_result_name'.

6. Porównanie różnych konfiguracji i wersji (Rysunek uzupełniający 1, Rysunek uzupełniający 2, Rysunek uzupełniający 3, Rysunek uzupełniający 4)

  1. Aby porównać efekt używania różnych parametrów/konfiguracji w całym przepływie pracy, uruchom ponownie sekcje 3-5, modyfikując parametry w plikach konfiguracyjnych i używając różnych identyfikatorów configuration_name i mofa_result_name.
    UWAGA: Nowe wyniki będą przechowywane pod tymi nazwami, które będą używane do porównywania różnych przebiegów.
  2. W Jupyter-Lab użyj menu nawigacji po lewej stronie, aby przejść do folderu konfiguracji. Otwórz plik 07_Comparison_Configs.csv, klikając go dwukrotnie.
  3. W kolumnie mofa_result_name dodaj nazwy wszystkich poprzednich przebiegów MOFA, które będą porównywane (po jednym wierszu na nazwę/konfigurację, np. MI_v1_MOFA, MI_v2_MOFA).
  4. W kolumnie compare_factors dodaj czynniki, które będą porównywane między modelami. Domyślnie jest to Czynnik1,Czynnik2,Czynnik3. (Rysunek uzupełniający 2A).
    UWAGA: W tym skrypcie wartości cech i współczynników różnych modeli zostaną porównane poprzez ich korelację. Działa to tylko w przypadku modeli opartych na tych samych próbkach (oznaczonych przez sample_id) i tym samym zestawie funkcji. W przypadku, gdy próbki lub funkcje nie są zgodne między porównywanymi wersjami, zostaną one wyłączone z porównania.
  5. Zapisz zmiany, klikając Plik > Zapisz plik CSV.
  6. Użyj menu po lewej stronie, aby przejść do folderu skryptów, klikając skrypty. Otwórz notes 07_Compare_Models.ipynb, klikając go dwukrotnie. Uruchom skrypt, klikając przycisk Uruchom ponownie jądro i uruchom wszystkie komórki, a następnie klikając Uruchom ponownie w wyskakującym okienku.
  7. Użyj menu po lewej stronie, aby przejść do folderu 06_figures, klikając dwukrotnie najpierw rysunki, a następnie 06_figures. Otwórz wygenerowane wykresy, klikając dwukrotnie pliki, aby przeanalizować podobieństwo różnych wersji:
    FIG07_Variance_Model_Comparison.pdf (Rysunek uzupełniający 2B)
    FIG07_Factor_Correlations.pdf
    (Rysunek uzupełniający 2C)
    FIG07_Feature_Correlations.pdf
    (Rysunek uzupełniający 3C)

7. Rozszerzanie przepływu pracy: Dodawanie innych parametrów i konfiguracji

UWAGA: Oprócz parametrów, które są obecnie konfigurowalne w plikach konfiguracyjnych, mogą być zawarte inne korekty w kodzie lub inne parametry. Na przykład sam model MOFA oferuje kilka innych parametrów treningowych17, które można modyfikować bezpośrednio w kodzie lub dostosowywać za pomocą plików konfiguracyjnych. W następnej sekcji protokołu przedstawiono przykład, jak to zrobić dla dodatkowych parametrów trenowania modelu MOFA. W tej części wymagana jest znajomość programowania w języku R.

  1. W Jupyter-Lab użyj menu nawigacji po lewej stronie, aby przejść do folderu skryptów. Otwórz notes 03_Run_MOFA.ipynb, klikając go dwukrotnie.
  2. Kliknij kartę Spis treści po lewej stronie, a następnie przejdź do podsekcji 4.3 Ustawianie opcji trenowania MOFA i uruchom szkolenie modelu, klikając go. Przewiń w dół, aby wyświetlić wydrukowane dane wyjściowe modelu MOFA z konfigurowalnymi parametrami w notesie.
  3. W pętli R for w kodzie poniżej nagłówka ustawiane są wszystkie dane, model i opcje trenowania MOFA. Poniżej wiersza model_opts$num_factors = mofa_configs$amount_of_factors[i] dodaj kolejny wiersz z kodem poniżej
    model_opts$prawdopodobieństwa['data_type'] = 'poisson'.
    UWAGA: Spowoduje to zmianę rozkładu, który model przyjmuje jako dane wejściowe dla widoku określonego przez nazwę data_type dla wszystkich przebiegów MOFA. Podczas określania poissona dla typu danych model będzie działał tylko wtedy, gdy cechy dla tego typu danych są liczbami całkowitymi (np. liczba odczytów z sekwencji RNA). Aby uzyskać więcej informacji na temat danych MOFA, trenowania i opcji modelu, można również zapoznać się z samouczkami i dokumentacją MOFA17.
  4. Zapisz zmiany w notatniku, klikając przycisk Zapisz u góry.
  5. Aby przekazać nowe parametry za pośrednictwem .csv plików konfiguracyjnych, skorzystaj z nawigacji po lewej stronie, aby przejść do folderu konfiguracji, klikając dwukrotnie konfiguracje i otworzyć plik 03_MOFA_Configs.csv, klikając dwukrotnie.
    1. Dodaj nową kolumnę określającą nazwę parametru, np. number_iterations i wprowadź wartość, np. 1000. Zapisz zmiany, klikając Plik > Zapisz plik CSV.
    2. Użyj menu nawigacyjnego, aby poruszać się po folderze skryptów, klikając skrypty. Otwórz notes 03_Run_Mofa.ipynb, klikając go dwukrotnie. Kliknij kartę Spis treści po lewej stronie, a następnie przejdź do podsekcji 4.3 Ustawianie opcji trenowania MOFA i uruchom szkolenie modelu, klikając go.
    3. Zamień wiersz train_opts$maxiter = 50000 na train_opts$maxiter = mofa_configs$column_name[i] (gdy nazwa dodanej kolumny to number_of_iterations to train_opts$maxiter = mofa_configs$number_of_iterations[i]).
      UWAGA: Plik konfiguracyjny 03_MOFA_Configs.csv w tym notesie jest odczytywany na początku notesu (podsekcja: Wymagania wstępne Konfiguracje i parametry) jako mofa_config data.frame w sesji i dlatego w tym wierszu kodu ten obiekt i odpowiadająca mu nowo wygenerowana kolumna są przywoływane. Ponieważ wiele konfiguracji może być uruchamianych w tym samym czasie, i identyfikuje wiersz data.frame, ponieważ oszacowanie modelu jest uruchamiane w pętli for we wszystkich różnych wierszach w pliku .csv. Zasada wczytywania w pliku konfiguracyjnym na początku notebooka w sekcji "Wymagania wstępne Konfiguracje i parametry" jest taka sama dla wszystkich notebooków, a dalsze modyfikacje można wprowadzać w ten sposób.
    4. Zapisz zmiany w notatniku, klikając przycisk Zapisz.

Wyniki

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

Po pomyślnym wykonaniu przepływu pracy, generowanych jest kilka tabel i rysunków, jak wskazano w Rysunek 2. Rysunki są umieszczane w folderze /figures (Rysunek 6, Rysunek 7, Rysunek 8, Rysunek uzupełniający 1, Rysunek uzupełniający 2, Rysunek uzupełniający 3, Rysunek uzupełniający 4), a tabele zostaną umieszczone w określonym folderze /results.

W przypadku, gdy wykonanie przepływu pracy nie powiedzie się, może to być głównie spowodowane: błędami technicznymi spowodowanymi, na przykład, niewystarczającą ilością pamięci (szczególnie w pierwszym kroku, gdzie ładowany jest duży zestaw danych jednokomórkowych), nieprawidłowo sformatowanymi danymi (np. niepasującymi kolumnami sample_id między zestawami danych) lub nieprawidłowymi specyfikacjami w plikach konfiguracyjnych (np. wykluczeniem wielu funkcji). W takim przypadku zwykle podczas wykonywania pojawi się komunikat o błędzie w skrypcie Jupyter-notebook i nie zostaną wygenerowane żadne wykresy i dane. Zaleca się używanie domyślnych plików konfiguracyjnych wygenerowanych podczas wykonywania skryptu i modyfikowanie tylko określonych parametrów zgodnie z opisem w protokole.

Pomyślne wykonanie jest sygnalizowane przez wygenerowanie wynikowych wykresów i tabel, a każdy krok ujawni dodatkowe informacje o danych i głównych wzorcach wariancji z nimi związanych. Jednak niekoniecznie każde wykonanie przyniesie biologicznie użyteczne i możliwe do zinterpretowania wyniki. Często dane charakteryzują się dużymi efektami technicznymi i różnymi rozkładami, które muszą być uwzględnione w kroku "Wstępne przetwarzanie i harmonizacja danych" lub w modelu "MOFA9 Model' (który umożliwia również określenie różnych rozkładów dla typów danych wejściowych), aby móc wyodrębnić zmienność danych, która odzwierciedla podstawowe procesy biologiczne.

W ramach prezentowanego przepływu pracy, różne zestawy danych multiomicznych mogą być używane jako dane wejściowe. Obecnie przepływ pracy akceptuje popularny format pliku .h5ad dla danych jednokomórkowych i bardzo ogólny format pliku .csv dla wszystkich innych zestawów danych jako dane wejściowe (Rysunek 3). Często zdarza się, że różne zestawy danych omicznych mają bardzo różne formaty plików. Aby nie ograniczać wykonywania przepływu pracy do określonych formatów plików, .csv jest używany jako format bardzo ogólny. W związku z tym wszystkie rodzaje różnych zestawów danych omicznych mogą być używane jako dane wejściowe dla przepływu pracy, ale muszą być konwertowane do odpowiedniego formatu .csv, jak wskazano w Rysunek 3 przed użyciem w tym przepływie pracy. Można to przygotować za pomocą arkusza kalkulacyjnego lub specjalnego oprogramowania omicznego. Aby wstępnie przetworzyć różne zestawy danych omicznych, w przepływie pracy dostępnych jest kilka opcji, które umożliwiają zastosowanie różnych kroków wstępnego przetwarzania i normalizacji (np. dostosowanie rozmiaru biblioteki, transformacja logarytmu, normalizacja kwantylu próbki) na różnych wejściowych zestawach danych poprzez skonfigurowanie pliku 02_Pre_Processing_Configs.csv i pliku 02_Pre_Processing_Configs_SC.csv (Rysunek 2). Niemniej jednak dostępne tutaj opcje opierają się głównie na konkretnych danych wejściowych dostępnych w przedstawionym tutaj zbiorze danych (scRNA-seq, test cytokin, proteomika, prime-seq). W przypadku użycia innych typów omicznych/danych może być konieczne zastosowanie dodatkowych kroków normalizacji specyficznych dla omiku zgodnie z istniejącymi najlepszymi praktykami. W takim przypadku dane mogą zostać przekazane do przepływu pracy w już wstępnie przetworzonej formie i zostaną zintegrowane z innymi zestawami danych bez konieczności stosowania dalszych kroków przetwarzania wstępnego. W wielu przypadkach zastosowanie kroku normalizacji kwantylu według cech jest przydatne w dostosowaniu rozkładu wszystkich typów danych do rozkładu normalnego i umożliwieniu dalszej analizy między różnymi cechami wejściowymi bardziej porównywalnej i zgodnej ze specyfikacją modelu szumu Gaussa.

Podczas wykonywania przepływu pracy generowanych jest kilka wykresów i wyników, które wspierają proces integracji danych i późniejszej biologicznej interpretacji. W przypadku danych sekwencyjnych scRNA, wykres w FIG01_Amount_of_Cells_Overview (Rysunek 6) wskazuje, które typy komórek mogą zawierać zbyt mało komórek na próbkę i typ komórki, aby wiarygodnie zmierzyć sygnał ekspresji genu Ponieważ w przypadku kolejnych analiz średnia wartość dla wszystkich komórek typu komórki na próbkę jest używana jako oszacowanie ekspresji (podejście psedobulk-). W tym przypadku użycia wykluczamy typy komórek, które mają mniej niż trzy komórki w większości próbek.

Wykres dekompozycji wariancji FIG03_Overview_Variance_Decomposition (Rysunek 7, Rysunek uzupełniający 1) może wskazywać, jak dobrze integrują się różne źródła danych i jaka część wariancji w różnych źródłach danych jest wspólna i unikalna dla każdego źródła danych. Na przykład testowanie różnych strategii przetwarzania wstępnego na używanym tutaj zestawie danych pokazuje na przykład, że usunięcie kroku normalizacji kwantylu według cech z przetwarzania wstępnego prowadzi do czynników utajonych, które są bardziej skoncentrowane na określonych widokach danych i ogranicza integrację danych proteomicznych z innymi źródłami danych. Można to zaobserwować w zmniejszonej ilości wyjaśnionej wariancji (rysunek uzupełniający 1B). Uruchomienie modelu MOFA bez filtrowania cech lub bez normalizacji prowadzi do mniejszej współużytkowanej wariancji między różnymi widokami przechwyconymi przez czynniki utajone (rysunek uzupełniający 1C). Wskazuje to, że czynniki ukryte odzwierciedlają głównie skutki techniczne specyficzne dla danego typu danych. Poza tym model MOFA9 może również zwracać ostrzeżenia w przypadku źle przetworzonych danych. Przykład takiego ostrzeżenia pokazano na rysunku uzupełniającym 1 dla alternatywnych konfiguracji przetwarzania wstępnego MI_v2 i MI_v3 (konkretne przykładowe pliki konfiguracyjne są przechowywane w sklonowanym repozytorium GitHub w folderze config_examples).

Dodatkowo, po uruchomieniu modelu MOFA, wyniki mogą być oceniane w kilku dalszych analizach, poprzez powiązanie czynnika ze znanymi biologicznymi meta-informacjami o próbkach, a także technicznymi i innymi zakłócającymi zmiennymi (04_Downstream_Factor_Analysis), aby zidentyfikować prawdopodobną przyczynę zmienności uchwyconej przez czynniki. Na przykład, jeśli jeden z czynników modeli MOFA jest silnie powiązany z jedną z technicznych zmiennych współzmiennych (takich jak informacje o partii), może to wskazywać, że czynnik ten obejmuje raczej zmienność techniczną w danych, a nie zmienność biologiczną.

Aby zawęzić interpretację biologiczną w dalszej części analizy, przedstawiono tutaj kilka ustaleń opartych na wejściowym zbiorze danych (bardziej szczegółową interpretację można znaleźć w oryginalnej publikacji11). W pierwszym kroku mogliśmy zaobserwować, że przy zastosowanej strategii przetwarzania wstępnego znajdujemy kilka czynników, które rejestrują wariancję w wielu typach komórek, ale także w innych typach danych omicznych (Rysunek 7A). Na przykład czynnik 2 wychwytuje wariancję w klinicznych cechach wejściowych i w kilku typach komórek zestawu danych scRNA-seq. Powiązanie pierwszych trzech czynników z odpowiednimi współzmiennymi klinicznymi, takimi jak "CRP" i "CK" (Figura 7B) i zbadanie różnic w wartościach czynników dla różnych podgrup pacjentów: "Kontrola (w tym CCS i bez CCS) vs. "ACS" mierzona w różnych punktach czasowych (TP1-TP4) (Rysunek 7C), stwierdzamy również, że Czynnik2 wiąże się w znacznym stopniu z wartością "CK", a Czynnik3 z wartością "CRP". Jednocześnie próbki "ACS" w TP1 i TP2 (które odzwierciedlają ostrą fazę odpowiedzi immunologicznej na zawał mięśnia sercowego (MI)) wykazują wzrost wartości czynników w porównaniu z próbkami "kontrolnymi" i późniejszymi próbkami punktu czasowego (TP3/TP4). CK jest znanym markerem uszkodzenia mięśnia sercowego i zwykle charakteryzuje się zwiększonymi wartościami w TP1 / TP2, podobnie jak wzorzec uchwycony przez Factor2.

Aby wygenerować wgląd w procesy biologiczne kształtujące Czynnik2, oceniamy najważniejsze cechy czynnika, patrząc na tabelę wag cech wygenerowaną przez model (03_Weight_Data.csv). Analizując górny 1% cech o najwyższych bezwzględnych wagach czynnika, znajdujemy głównie CD4. TCM oraz CD14. Cechy monopochodne są nadreprezentowane w porównaniu z ich ogólną liczbą cech wejściowych (Rysunek 8A), co wskazuje, że te typy komórek są bardzo istotne w procesie zapalnym po MI (UWAGA: w przypadku, gdy w przetwarzaniu wstępnym nie zastosowano normalizacji kwantylowej pod względem cech, różne rozkłady cech mogą również wpływać na ten wynik, a ocena powinna być wykonywana oddzielnie według typu danych). Analiza najwyżej ocenianych funkcji CD4. Typ komórki TCM na czynniku, znajdujemy kilka interesujących genów, takich jak EIF3E18 wymagany do silnej aktywacji komórek T i HMGB119, który promuje ekspansję i aktywację limfocytów T (Figura 8B). Następnie przeprowadzamy analizę wzbogacania szlaków przy użyciu szlaków immunologicznych z bazy danych REACTOME20 jako zestawu ścieżek (Prepared_Pathway_Data.csv). Znaleźliśmy wzbogacenie dla kilku szlaków "interleukiny", w tym sygnalizacji "interleukiny-6". Do tego wyniku przyczyniły się poziomy ekspresji kilku genów w różnych typach komórek danych scRNA-seq oraz wartości cytokin "IL6" mierzone za pomocą testu cytokin (Figura 8C). Identyfikacja tych wspólnych wzorców w różnych typach danych podkreśla wartość dodaną zintegrowanej analizy. Ogólnie rzecz biorąc, podejście to może również zidentyfikować kilka innych czynników, które odzwierciedlają stan choroby lub wiążą się z wynikiem leczenia i leżącymi u jego podstaw wielokomórkowymi programami odpornościowymi, jak opisano bardziej szczegółowo w odpowiedniej publikacji11.

Aby jeszcze bardziej podkreślić zalety zintegrowanych analiz w wielu rodzajach omicznych, ten sam przepływ pracy został również uruchomiony tylko z uwzględnieniem danych wejściowych proteomiki (Rysunek uzupełniający 4). Analizując otrzymane czynniki, znajdujemy, podobnie jak w analizie zintegrowanej, czynnik (Czynnik1), który jest silnie skorelowany z wartością "CRP". Wzorzec ten opisuje główne źródło zmienności w danych proteomicznych i jest również zgodny z niektórymi zmianami w innych zestawach danych, które zostały uchwycone przez "Czynnik3" w zintegrowanej analizie (Rysunek 7C). Jednak podobny wzorzec, jak wskazano w Factor2, który ujmuje przebieg zapalenia w czasie w zintegrowanej analizie, nie może być zidentyfikowany wyłącznie na podstawie danych proteomicznych.

Wprowadzony przepływ pracy i model MOFA9 są wysoce konfigurowalne z wieloma regulowanymi parametrami. Dlatego ważne jest, aby wizualizować i systematycznie porównywać wyniki uzyskiwane przez różne konfiguracje. Aby ułatwić to zadanie, końcowym wyjściem, które może zostać wygenerowane przez przepływ pracy, jest porównanie różnych nazwanych przebiegów potoku z różnymi parametrami w przetwarzaniu wstępnym i szacowaniu modelu. Na przykład model MOFA może być szacowany za pomocą różnej liczby czynników utajonych (rysunek uzupełniający 2A) lub widoki z mniejszą liczbą cech mogą być ważone (rysunek uzupełniający 3A). Skonfigurowanie i uruchomienie ostatniego skryptu przepływu pracy "07_Compare_Models" powoduje utworzenie kilku wykresów w celu oceny podobieństwa między różnymi przebiegami potoku. FIG07_Variance_Model_Comparison (Rysunek uzupełniający 2B, Rysunek uzupełniający 3B) przedstawia porównanie całkowitej wyjaśnionej wariancji dla każdego widoku dla różnych przebiegów. Korelacja wartości współczynników i wag współczynników cech między różnymi przebiegami może wskazywać, jak bardzo zmieniają się wyniki podczas modyfikowania określonego parametru (rysunek uzupełniający 2C, rysunek uzupełniający 3C). W tym przypadku modyfikacja liczby czynników powoduje tylko niewielkie zmiany w szacowanych wartościach czynników i wagach cech (rysunek uzupełniający 2C). Modyfikacja wagi widoku danych skutkuje znacznie większą wyjaśnioną wariancją w widokach o mniejszej liczbie cech, np. w widoku "klinicznym" (rysunek uzupełniający 3B). Niemniej jednak istotne cechy w ramach pierwszych trzech czynników są nadal silnie skorelowane z tymi, które wywnioskowano za pomocą wersji nieważonej (rysunek uzupełniający 3C).

Dzięki wygenerowanym plikom wyjściowym modelu .csv w folderze wyników (np. szacowanym czynnikom i wagom cech), można przeprowadzić dalsze indywidualne analizy. Cały kod i niezbędne pliki konfiguracyjne (w tym dokumentacja) są dostępne na GitHub pod adresem https://github.com/heiniglab/mofa_workflow. Obraz osobliwości, który został utworzony w celu umożliwienia łatwej instalacji wymaganych pakietów conda do analizy, można pobrać z https://doi.org/10.5281/zenodo.10815146. Mały przykładowy zestaw danych, który może być użyty do przeprowadzenia wstępnego testu potoku, można również pobrać z tego samego rekordu zenodo.

figure-results-1
Rysunek 7: Analiza danych wyjściowych MOFA. Po uruchomieniu modelu MOFA (03_Run_MOFA.ipynb) i dalszej analizie wartości czynników (04_Downstream_Factor_Analysis.ipynb) generowanych jest kilka wykresów: (A) FIG03_Overview_Variance_Decomposition: zwraca wizualizację wyjaśnionej wariancji szacowanych czynników MOFA w różnych widokach. Mapa cieplna (po lewej): pokazuje procent całkowitej wariancji widoku przechwyconego przez czynnik dla każdego widoku. Wykres słupkowy (po prawej): pokazuje łączną wartość procentową wariancji, która jest przechwytywana przez wszystkie czynniki dla każdego widoku. (B) FIG04_Factor_Association_Numerical_Features: pokazuje korelację Pearsona wartości czynników z wybranymi współzmiennymi liczbowymi próby, w tym przypadku: zmiennymi klinicznymi (CRP, CK). (C) FIG04_Factor_Association_Categorical_Features: pokazuje różnicę w wartościach czynników dla współzmiennych próbki kategorycznej jako wykres pudełkowy. W tym miejscu porównywane są wartości czynników 1-3 dla każdego punktu czasowego pacjentów z OZW i grupą kontrolną. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-results-2
Rysunek 8: Analiza cech MOFA. Po przeprowadzeniu dalszych analiz (04_Downstream_Factor_Analysis.ipynb, 05_Downstream_Investigate_Features.ipynb) generowanych jest kilka wykresów. Wszystkie wykresy tutaj wizualizują współczynnik MOFA 2: (A) FIG04_Top_Feature_Overview_per_Factor: Mapa cieplna (po lewej) pokazuje dla każdego widoku procent wariancji, który jest uchwycony przez wybrany czynnik. Wykresy słupkowe (po prawej) wskazują znaczenie cech różnych widoków dla czynnika. Po lewej stronie podana jest łączna liczba obiektów określonego widoku w obrębie 1% najwyższych wskaźników w widokach współczynnika. Po prawej stronie podana jest wartość procentowa, która dzieli łączną liczbę wśród 1% najlepszych przez łączną liczbę obiektów tego widoku. (B) FIG05_Heatmap_Feature_Overview: Mapa termiczna (po lewej) pokazuje dla najwyższej rangi 1% funkcji CD4. Typ komórki TCM: znormalizowane wartości ekspresji każdej próbki, porównujące pacjentów z grupy "kontrolnej" (CCS i bez CCS) z różnymi punktami czasowymi dla pacjentów z "OZW". Wykres słupkowy (po prawej) pokazuje wagę obiektów. Kierunek znaku wagi jest wskazany przed po lewej stronie przed nazwami typów komórek: "+" waga czynnika dodatniego; '-' waga czynnika ujemnego. (C) FIG06_Pathway_and_Genes: pokazuje wagę najwyższych 25% genów w rankingu dla czynnika, który należy do wzbogaconych szlaków interleukiny. Na mapie cieplnej u góry są one uśredniane w różnych widokach, a na mapie cieplnej u dołu są wyświetlane dla każdego widoku. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

Rysunek uzupełniający 1: Efekty harmonizacji danych. Na rysunku przedstawiono FIG03_Overview_Variance_Decomposition dla kilku różnych konfiguracji wstępnego przetwarzania danych: wizualizacja wyjaśnionej wariancji szacowanych czynników MOFA w różnych widokach. Mapa cieplna (po lewej): pokazuje dla każdego widoku procent całkowitej wariancji widoku, który jest przechwytywany przez czynnik. Wykres słupkowy (po prawej): pokazuje dla każdego widoku łączną wartość procentową wariancji, która jest przechwytywana przez wszystkie czynniki. (A) Konfigurację ("MI_v1"), na podstawie której przeanalizowano dalsze wyniki biologiczne na poprzednich rysunkach (parametry ustawione jak w domyślnych plikach konfiguracyjnych w sklonowanym repozytorium). (B) Ta sama konfiguracja przetwarzania wstępnego, co w 'MI_v1' z modyfikacją polegającą na tym, że nie jest stosowana normalizacja kwantylowa pod względem cech (parametry ustawiane jak w przykładowych plikach konfiguracyjnych w folderze 'config_examples' repozytorium). Zrzut ekranu z ostrzeżeniem wyjściowym modelu MOFA dla tej konfiguracji został dodany do poniższego wykresu. (C) Wynikowa dekompozycja wariancji, gdy nie są stosowane żadne etapy wstępnego przetwarzania, a wszystkie dane są używane jako dane wejściowe bez żadnego wstępnego przetwarzania lub filtrowania cech (parametry ustawione jak w przykładowym pliku konfiguracyjnym w folderze "config_examples" repozytorium). Zrzut ekranu z ostrzeżeniem wyjściowym modelu MOFA dla tej konfiguracji został dodany do poniższego wykresu. Kliknij tutaj, aby pobrać ten plik.

Rysunek uzupełniający 2: Konfiguracja MOFA - Wpływ wielkości czynnika. Wynikowe figury są generowane przez skrypt "07_Compare_Models.ipynb" przy użyciu kilku różnych konfiguracji w celu uruchomienia modelu MOFA. (A) '03_MOFA_configs.csv': Przykład różnych konfiguracji używanych do uruchomienia skryptu '03_Run_MOFA.ipynb' określający kilka różnych czynników (10,15,20,25). '07_Comparison_configs.csv': Przykład określenia pliku wejściowego konfiguracji do wykonania skryptu '07_Compare_Models.ipynb'. (B) "FIG07_Variance_Model_Comparison" przedstawiające całkowitą wyjaśnioną wariancję dla każdego widoku (oś y) dla różnych modeli we wszystkich czynnikach określonych w modelu. C) "FIG07_Factor_Correlations" przedstawiające korelację wartości próbek czynnikowych między różnymi konfiguracjami. Kliknij tutaj, aby pobrać ten plik.

Rysunek uzupełniający 3: Konfiguracja MOFA - Wpływ ważenia widoków. Wynikowe figury są generowane przez skrypt "07_Compare_Models.ipynb" przy użyciu kilku różnych konfiguracji w celu uruchomienia modelu MOFA. (A) '03_MOFA_configs.csv': Przykład różnych konfiguracji używanych do uruchomienia skryptu '03_Run_MOFA.ipynb', określając parametr 'weighting_of_views' jako "TRUE" (MI_v1_MOFA_weighted) lub 'FALSE' (MI_v1_MOFA). '07_Comparison_configs.csv': Przykład określenia pliku wejściowego konfiguracji do wykonania skryptu '07_Compare_Models.ipynb'. (B) "FIG07_Variance_Model_Comparison" przedstawiające całkowitą wyjaśnioną wariancję dla każdego widoku (oś y) dla różnych modeli we wszystkich czynnikach określonych w modelu. (C) "FIG07_Feature_Correlations" przedstawiające korelację wag współczynników cech między różnymi konfiguracjami. Kliknij tutaj, aby pobrać ten plik.

Rysunek uzupełniający 4: Efekt integracji multiomicznej - przy użyciu tylko danych proteomicznych. Wynikowe wzorce uchwycone przez czynniki utajone, gdy jako dane wejściowe są używane tylko jako dane proteomiczne. (A) FIG04_Factor_Association_Numerical_Features: Korelacja Pearsona wartości czynników ze zmiennymi klinicznymi (CRP, CK). (B) FIG04_Factor_Association_Categorical_Features: Porównanie wartości czynników na wykresie pudełkowym każdego punktu czasowego pacjentów z OZW i grupą kontrolną. Kliknij tutaj, aby pobrać ten plik.

Plik uzupełniający 1: Supplementary_File_
Running_Pipeline_with_Exemplary_Data.
Opisy sposobu uruchamiania potoku na przykładowych danych i oczekiwanych danych wyjściowych znajdują się w dodatkowo dostarczonym pliku uzupełniającym. Kliknij tutaj, aby pobrać ten plik.

Dodatkowy plik wideo 1: Zrzut ekranu z protokołu. Kliknij tutaj, aby pobrać ten plik.

Dyskusja

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

Dzięki przedstawionemu protokołowi przedstawiono modułowy i rozszerzalny przepływ pracy oparty na Jupyter-notebook, którego można użyć do szybkiego eksplorowania złożonego zestawu danych multiomicznych. Główne części przepływu pracy składają się ze wstępnego przetwarzania i harmonizacji danych (oferującej różne standardowe kroki filtrowania i normalizacji danych), estymacji modelu MOFA9 oraz przykładowej analizy końcowej. Jednym z głównych kluczowych etapów jest wstępne przetworzenie, integracja i harmonizacja różnych zestawów danych omicznych. W tym miejscu przedstawiamy strategię dla zestawu danych, który obejmuje dane scRNA-seq, masowe RNA prime-seq, test cytokin, proteomikę osocza i wartości kliniczne, co zaowocowało zintegrowanym i zharmonizowanym zestawem danych, który można wykorzystać do identyfikacji odpowiednich procesów biologicznych w MI11. W przypadku gdy inne zbiory danych omicznych wymagają dodatkowych strategii wstępnego przetwarzania danych, należy je wykonać przed analizą MOFA. Wstępnie przetworzone dane mogą być następnie wykorzystane jako dane wejściowe do bieżącego przepływu pracy. Wyniki modelu można wykorzystać do oceny jakości integracji różnych zbiorów danych oraz efektów wstępnego przetwarzania w celu zidentyfikowania potencjalnych skutków technicznych. Na przykład można zacząć od zastosowania tylko minimalnej liczby etapów wstępnego przetwarzania i normalizacji, a następnie ocenić efekt dalszej normalizacji. W tym zastosowaniu zaobserwowano, że dodanie "normalizacji kwantyli opartej na cechach" prowadzi do lepszej integracji proteomiki z pozostałymi testami.

Kolejną dużą częścią przepływu pracy jest estymacja modelu MOFA9 na danych, które są agregowane na poziomie próby. Istnieją inne rozszerzenia modelu MOFA, takie jak
MOFA+21 (w szczególności dla danych jednokomórkowych), MEFISTO22 (w szczególności dla danych zawierających składnik czasowy) i MuVI23 (integracja wiedzy dziedzinowej w podejściu opartym na analizie czynnikowej). Są to bardzo przydatne rozszerzenia metody dla określonych typów zestawów danych lub ustawień, ale ich stosowanie wiąże się z określonymi wymaganiami. Na przykład użycie MOFA+21 specjalnie dla danych jednokomórkowych w naszym przypadku oznaczałoby, że nie można łatwo wykorzystać innych dostępnych danych omicznych na poziomie próby. Zastosowanie metody MEFISTO22 umożliwia szczegółowe modelowanie przebiegu czasu, ale nie ma zastosowania w warunkach, w których nie jest dostępnych wiele punktów czasowych lub, w naszym przypadku, w przypadku łączenia próbek "kontrolnych", które mają pomiary tylko w jednym punkcie czasowym, z danymi czasowo-rozdzielczymi próbek "ACS". Dlatego w tym bardzo ogólnym przepływie pracy decydujemy się na użycie metody MOFA9, ponieważ jest to najbardziej elastyczna metoda szybkiego eksplorowania wszelkiego rodzaju zbiorów danych bez zbyt wielu wymagań. Warto zauważyć, że wstępnie przetworzone dane wygenerowane w przepływie pracy mogą być alternatywnie analizowane za pomocą tych metod lub bieżące skrypty mogą być rozszerzone w celu zintegrowania tych metod, jeśli zestaw danych jest zgodny z wymaganiami metod. Aby uzyskać dodatkowe przypadki użycia, samouczki i dokumentację, zapoznaj się z repozytorium GitHub programistów MOFA24.

W porównaniu z jeszcze bardziej ogólnymi metodami redukcji wymiarowości, takimi jak analiza głównych składowych (PCA), model MOFA9 oferuje kilka zalet, zwłaszcza w środowisku multiomicznym. Na przykład dekompozycję wariancji można łatwo analizować dla każdego widoku wejściowego, a wagi można przypisać do różnych widoków, aby uwzględnić różną liczbę obiektów. Model zachęca do rzadkości, co zwiększa możliwość interpretacji wyników. Ponadto nie trzeba wykluczać próbek, w których brakuje danych w jednej z omików, a model implementuje niektóre funkcje, aby skupić się na uczeniu się rzadkich wag czynników cech. Ponadto model MOFA oferuje kilka ustawień do integracji danych charakteryzujących się różnymi rozkładami (modelowanie prawdopodobieństw "Gaussa", "Bernoulliego" lub "Poissona"). W tym przepływie pracy integrujemy tylko dane ciągłe, które normalizujemy tak, aby były zgodne z rozkładem "Gaussa", ale istniejący kod można również rozszerzyć w celu zintegrowania innych typów danych, jeśli zajdzie taka potrzeba. Istnieją inne metody oparte na dekompozycji, takie jak scITD25, szczególnie dla danych sekwencyjnych scRNA, ale mają one to ograniczenie, że nie są przeznaczone do pracy z innymi amikami.

Prezentowany przepływ pracy przedstawia protokół nienadzorowanej eksploracji dużych i złożonych zbiorów danych multiomicznych w celu zidentyfikowania potencjalnych procesów biologicznych i innych cech, które napędzają zmienność danych. Może być stosowany w prawie każdym środowisku, w którym należy zbadać różnice w danych, np. spowodowane chorobą lub innymi zaburzeniami biologicznymi lub technicznymi. Uzyskane w ten sposób dalsze analizy i zestawy cech wpływające na wariancję w różnych omikach mogą ujawnić istotne procesy biologiczne, które należy dokładniej zbadać w konkretnym kontekście. Na przykład w kontekście choroby może to umożliwić identyfikację nowych markerów diagnostycznych lub celów leczenia.

Oświadczenia

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

Autorzy deklarują brak konfliktu interesów.

Podziękowania

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

C.L. jest wspierany przez Stowarzyszenie Helmholtza w ramach wspólnej szkoły badawczej "Munich School for Data Science - MUDS".

Materiały

Lista materiałów użytych w tym artykule
NazwaFirmaNumer katalogowyKomentarze
ApptainerNANA https://apptainer.org/docs/admin/main/installation.html
Serwer obliczeniowy lub stacja robocza lub chmura  (Środowisko Linux, Mac lub Windows).
W zależności od rozmiaru różnych wejściowych zestawów danych zalecamy uruchomienie przepływu pracy na odpowiedniej maszynie (w naszych ustawieniach używamy: 16 CPU, 64 GB pamięci)
Dowolny producent16 procesorów, 64 GB pamięciDuża pamięć jest wymagana tylko do przetwarzania surowych danych z pojedynczej komórki. Po wstępnym przetworzeniu późniejsze kroki analizy można również wykonać na zwykłych komputerach stacjonarnych lub laptopach
gitNANAhttps://git-scm.com/book/en/v2/Getting-Started-Installing-Git
GitHubGitHubNA, https://github.com/heiniglab/mofa_workflow
: ,

Bibliografia

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Lähnemann, D., et al. Eleven grand challenges in single-cell data science. Genome Biol. 21 (1), 31(2020).
  2. Colomé-Tatché, M., Theis, F. J. Statistical single cell multi-omics integration. Curr Opin Syst Biol. 7, 54-59 (2018).
  3. Hawe, J., Theis, F., Heinig, M. Inferring interaction networks from multi-omics data. Front Genet. 10, 535(2019).
  4. Hawe, J. S., et al. Network reconstruction for trans acting genetic loci using multi-omics data and prior information. Genome Med. 14 (1), 125(2022).
  5. Koh, H. W. L., Fermin, D., Vogel, C., Choi, K. P., Ewing, R. M., Choi, H. iOmicsPASS: network-based integration of multiomics data for predictive subnetwork discovery. NPJ Syst Biol Appl. 5, 22(2019).
  6. Ogris, C., Hu, Y., Arloth, J., Müller, N. S. Versatile knowledge guided network inference method for prioritizing key regulatory factors in multi-omics data. Sci Rep. 11, 6806(2021).
  7. Lee, C., vander Schaar, M. A variational information bottleneck approach to multi-omics data integration. Proceedings of The 24th International Conference on Artificial Intelligence and Statistics. 130, 1513-1521 (2021).
  8. Singh, A., et al. DIABLO: an integrative approach for identifying key molecular drivers from multi-omics assays. Bioinformatics. 35 (17), 3055-3062 (2019).
  9. Argelaguet, R., et al. Multi-omics factor analysis-a framework for unsupervised integration of multi-omics data sets. Mol Syst Biol. 14 (6), e8124(2018).
  10. Cantini, L., et al. Benchmarking joint multi-omics dimensionality reduction approaches for the study of cancer. Nature Commun. 12 (1), 124(2021).
  11. Pekayvaz, K., et al. Multiomic analyses uncover immunological signatures in acute and chronic coronary syndromes. Nature Medicine. 30 (6), 1696-1710 (2024).
  12. Swirski, F. K., Nahrendorf, M. Cardioimmunology: the immune system in cardiac homeostasis and disease. Nat Rev Immunol. 18 (12), 733-744 (2018).
  13. Janjic, A., et al. Prime-seq, efficient and powerful bulk RNA sequencing. Genome Biol. 23 (1), 88(2022).
  14. Wolf, F. A., Angerer, P., Theis, F. J. SCANPY: large-scale single-cell gene expression data analysis. Genome Biol. 19 (1), 15(2018).
  15. Cao, Y., et al. Integrated analysis of multimodal single-cell data with structural similarity. Nucleic Acids Res. 50 (21), e121(2022).
  16. Get Started - JupyterLab 4.1.0a4 documentation. , Available from: https://jupyterlab.readthedocs.io/en/latest/getting_started/overview.html (2024).
  17. MOFA2: training a model in R. , Available from: https://raw.githack.com/bioFAM/MOFA2_tutorials/master/R_tutorials/getting_started_R.html (2020).
  18. De Silva, D., et al. Robust T cell activation requires an eIF3-driven burst in T cell receptor translation. eLife. 10, e74272(2021).
  19. Li, G., Liang, X., Lotze, M. HMGB1: The central cytokine for all lymphoid cells. Front Immunol. 4, 68(2013).
  20. Jassal, B., et al. The reactome pathway knowledgebase. Nucleic Acids Res. 48 (D1), D498-D503 (2020).
  21. Argelaguet, R., et al. MOFA+: a statistical framework for comprehensive integration of multimodal single-cell data. Genome Biol. 21 (1), 111(2020).
  22. Velten, B., et al. Identifying temporal and spatial patterns of variation from multimodal data using MEFISTO. Nat Methods. 19 (2), 179-186 (2022).
  23. Qoku, A., Buettner, F. Encoding domain knowledge in multi-view latent variable models: A Bayesian approach with structured sparsity. Proceedings of The 26th International Conference on Artificial Intelligence and Statistics. 206, 11545-11562 (2022).
  24. Multi-Omics Factor Analysis. MOFA. , Available from: https://biofam.github.io/MOFA2/ (2024).
  25. Mitchel, J., et al. Tensor decomposition reveals coordinated multicellular patterns of transcriptional variation that distinguish and stratify disease individuals. bioRxiv. , (2023).

Przedruki i uprawnienia

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

Poproś o pozwolenie

Tagi

Multi Omic Factor AnalysisUnsupervised Data IntegrationCardiovascular DiseaseSingle Cell RNA SeqMulti Omics WorkflowImmune Response ProfilingMolecular Process DiscoveryPlasma ProteomicsCytokine Data AnalysisDownstream Factor Analysis

Powiązane artykuły