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

2.6K wyświetleń

DOI:

10.3791/66659

20 września 2024

W tym artykule

Podsumowanie

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

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

Mechanizmy chorobowe są zazwyczaj złożone i sterowane przez oddziaływanie kilku odrębnych procesów molekularnych. Odczytanie złożonych mechanizmów molekularnych, które prowadzą do konkretnych schorzeń lub sterują ewolucją choroby, jest zadaniem o dużym znaczeniu medycznym, ponieważ może dostarczyć nowych informacji niezbędnych do zrozumienia i leczenia chorób.

Ostatnie postępy technologiczne umożliwiają pomiar tych procesów z wyższą rozdzielczością (np. na poziomie pojedynczych komórek) i na różnych poziomach biologicznych (np. DNA, mRNA, dostępność chromatyny, metylacja DNA, proteomika) w tym samym czasie. Prowadzi to do coraz większej ilości generowanych wielowymiarowych zbiorów danych biologicznych, które mogą być analizowane wspólnie w celu uzyskania głębszego wglądu w zachodzące procesy. Jednocześnie łączenie i analiza różnych źródeł danych w sposób biologicznie istotny pozostaje trudnym zadaniem1.

Wyzwanie stanowią różne ograniczenia technologiczne, szumy oraz zakresy zmienności występujące pomiędzy poszczególnymi omikami. Na przykład dane z sekwencjonowania RNA pojedynczych komórek (scRNA-seq) są bardzo rzadkie i często podlegają silnym efektom technicznym lub efektom seryjnym. Ponadto przestrzeń cech jest zazwyczaj bardzo rozległa i obejmuje kilka tysięcy mierzonych genów lub białek, podczas gdy wielkość próby jest ograniczona. Sytuację dodatkowo komplikują złożone schematy badawcze, które mogą obejmować kilka stanów chorobowych, czynniki zakłócające, punkty czasowe oraz różne rozdzielczości. Przykładowo, w przedstawionym przypadku użycia różne typy danych były dostępne albo na poziomie pojedynczych komórek, albo na poziomie całej próbki (bulk). Poza tym dane mogą być niekompletne i nie wszystkie pomiary mogą być dostępne dla wszystkich analizowanych obiektów.

Ze względu na te wyzwania, różne omiki oraz zawarte w nich cechy są wciąż często analizowane jedynie oddzielnie2, mimo że przeprowadzenie zintegrowanej analizy może nie tylko zapewnić pełny obraz procesu, ale także pozwolić na skompensowanie szumów biologicznych i technicznych z jednej omiki przez inne omiki3,4. Zaproponowano kilka różnych metod przeprowadzania zintegrowanej analizy danych multiomicznych, w tym metody bayesowskie, metody oparte na sieciach5,6, multimodalne głębokie uczenie7 oraz metody redukcji wymiarowości za pomocą faktoryzacji macierzy8,9. W przypadku tych ostatnich, wyniki szeroko zakrojonego badania benchmarkingowego10 wykazały, że metoda MOFA9 (multi-omic factor analysis) jest jednym z narzędzi najlepiej dostosowanych do sytuacji, w których dane powinny zostać powiązane z adnotacjami klinicznymi.

Zwłaszcza w złożonych układach, nienadzorowane metody faktoryzacji macierzy stanowią przydatne podejście do redukcji złożoności oraz wyodrębniania wspólnych i komplementarnych sygnałów z różnych źródeł danych i cech. Poprzez dekompozycję złożonej przestrzeni na latentne reprezentacje o niższym rzędzie, główne źródła wariancji w danych mogą być szybko badane i powiązane ze znanymi kowariantami. W przypadku, gdy ten sam wzorzec zmienności jest wspólny dla wielu cech (np. genów lub białek), może on zostać zagregowany do kilku czynników, przy jednoczesnej redukcji szumu. Regularyzację można wykorzystać do zwiększenia rzadkości współczynników modelu, co sprawia, że podejście to jest szczególnie odpowiednie w sytuacjach, gdy przestrzeń cech jest duża, a liczba próbek ograniczona9.

Niniejszy protokół przedstawia elastyczny schemat analizy wykorzystujący model MOFA, aby zademonstrować, jak szybko badać złożony wieloomiczny zbiór danych i wyodrębniać główne wzorce zmienności charakteryzujące ten zbiór. Schemat składa się z trzech głównych etapów. W pierwszym etapie, wstępnym przetwarzaniu i harmonizacji danych, zaprezentowano różne strategie preprocessingu w zależności od rodzaju danych wejściowych (scRNA-seq, proteomika, cytokiny, dane kliniczne). Protokół szczegółowo opisuje sposób przetwarzania cech z różnych zbiorów danych wejściowych, filtrowanie cech o niskiej jakości oraz ich normalizację w celu zharmonizowania rozkładów. Pokazujemy również, w jaki sposób decyzje dotyczące wstępnego przetwarzania mogą wpływać na wyniki końcowe. W drugim etapie model MOFA jest stosowany do danych, a wynikający z tego rozkład wariancji może zostać wykorzystany do oceny integracji różnych zbiorów danych. Trzeci etap pokazuje, jak powiązać uchwycone czynniki ze współzmiennymi i odkryć programy molekularne definiujące te czynniki. Dzięki przedstawionemu schematowi byliśmy w stanie wyodrębnić kilka ukrytych czynników powiązanych ze współzmiennymi klinicznymi w zbiorze danych pacjentów cierpiących na zespoły wieńcowe oraz zidentyfikować potencjalne leżące u ich podstaw wielokomórkowe programy odpornościowe z poprzedniego projektu11. W niniejszym opracowaniu wykorzystamy ten zbiór danych, jednak protokół można łatwo zastosować w innych kontekstach, w tym do innych danych omicznych.

Zbiór danych składa się z próbek pobranych od pacjentów ze stabilnymi zespołami wieńcowymi (CCS), ostrymi zespołami wieńcowymi (ACS) oraz z grupy kontrolnej ze zdrowymi tętnicami wieńcowymi (non-CCS) (Rycina 1). ACS jest wywoływane przez pęknięcie blaszki miażdżycowej w istniejącym wcześniej CCS, co prowadzi do nagłego przerwania przepływu krwi do mięśnia sercowego i następującego po tym niedokrwiennego uszkodzenia serca. Uszkodzenie to wywołuje odpowiedź zapalną układu odpornościowego, po której następuje faza naprawcza, trwająca do kilku dni po ostrym zdarzeniu12. Aby móc scharakteryzować tę odpowiedź immunologiczną u pacjentów z ACS, próbki krwi pobierano w czterech różnych punktach czasowych: w fazie ostrej (TP1); po rekanalizacji (14 [± 8] h) (TP2); 60 [± 12] h później (TP3); przed wypisem (6,5 [±1,5] dni) (TP4) (Rycina 1A). W przypadku osób z CCS oraz pacjentów ze zdrowymi tętnicami wieńcowymi dostępny był tylko jeden punkt czasowy (TP0). Dla wszystkich pacjentów i punktów czasowych wykonano różne analizy na podstawie próbek krwi: pomiary klinicznych markerów stanu zapalnego (kinaza kreatynowa (CK), CK-MB, troponina, białko C-reaktywne (CRP)), scRNA-seq mononuklearnych komórek krwi obwodowej (PBMCs), analizę cytokin, proteomikę osocza oraz dane prime-seq13 neutrofili.

Schemat kohorty pacjentów z procesem STEMI; pobieraniem krwi; integracją danych multiomicznych; analizą.
Rycina 1: Multiomiczny zestaw danych wejściowych dla zawału mięśnia sercowego. Zestaw danych wejściowych: analizowane dane obejmują próbki krwi pobrane od pacjentów (n = 62) z ostrym zespołem wieńcowym (ACS), przewlekłymi zespołami wieńcowymi (CCS) oraz pacjentów ze zdrowymi tętnicami wieńcowymi (non-CCS). W przypadku pacjentów z ACS próbki krwi pobierano w czterech różnych punktach czasowych (TP1-4), a dla pacjentów z CCS i non-CCS w jednym punkcie czasowym (TP0). Każda kombinacja pacjenta i punktu czasowego jest traktowana w analizie jako oddzielna próbka. W próbkach zmierzono różne analizy omiczne: kliniczne badania krwi (n = 125), scRNA-seq (n = 121), proteomikę osocza (n = 119), analizę cytokin (n = 127) oraz neutrophil prime-seq (n = 121). Następnie zastosowano opisany protokół w celu zintegrowania danych ze wszystkich omik i ich eksploracji przy użyciu modelu MOFA oraz dalszych analiz (analiza czynnikowa, analiza wzbogacenia szlaków). Kliknij tutaj, aby wyświetlić powiększoną wersję tej ryciny.

Jako dane wejściowe do przedstawionego tutaj przepływu pracy wykorzystujemy surowe liczby z danych scRNA-seq po przetworzeniu programem cellranger i kontroli jakości (QC), zgodnie z opisem np. w samouczku preprocessingu scanpy14. Do adnotacji typów komórek wykorzystaliśmy zautomatyzowany rurociąg Azimuth15. Liczby są następnie agregowane na poziomie próbki dla każdego typu komórek poprzez wyznaczenie średniej dla wszystkich komórek w każdej próbce i typie komórek (agregacja pseudobulk). Proteomika osocza została uwzględniona jako intensywności znormalizowane i wycentrowane względem mediany, a w przypadku neutrofili przyjęto liczby eksonów UMI (unique molecular identifier) z prime-seq. W przypadku wartości cytokin i klinicznych nie zastosowano wcześniejszego preprocessingu. Dalsze szczegóły dotyczące generowania danych (eksperymentalnych) opisano w odpowiadającym im manuskrypcie11. Ponieważ wyniki przedstawione tutaj opierają się na wykorzystaniu zautomatyzowanej adnotacji Azimuth dla typów komórek w danych scRNA-seq, w przeciwieństwie do strategii opartej na markerach zastosowanej w cytowanej publikacji, wyniki tutaj zaprezentowane są podobne, lecz nie identyczne z tymi przedstawionymi w publikacji. W manuskrypcie wykazano, że strategia adnotacji typów komórek nie zmienia głównych wzorców i interpretacji biologicznych analizy, jednak mogą występować niewielkie różnice w dokładnych wartościach wynikających z modelu. Ogólnie dane wejściowe stanowiły złożony, wielowymiarowy zestaw danych obejmujący różne punkty czasowe i poziomy pomiarów (pojedyncze komórki vs. bulk) dla ponad 10 000 różnych cech (genów, białek, wartości klinicznych). Wykazano, że rygorystyczna strategia preprocessingu i harmonizacji danych, a następnie analiza MOFA, jest użytecznym i szybkim narzędziem do eksploracji danych i wyodrębniania istotnych programów immunologicznych. Każda kombinacja punktu czasowego i pacjenta jest traktowana jako niezależna próbka w analizie MOFA. Każdy typ danych i typ komórek jest traktowany jako osobny widok (view) w analizie MOFA.

Niniejszy protokół zawiera instrukcje dotyczące przygotowania danych wejściowych do przepływu pracy, wykonywania poszczególnych etapów przepływu pracy, dostosowywania konfiguracji, interpretacji wynikowych rycin oraz iteracyjnego korygowania konfiguracji na podstawie przeprowadzonych interpretacji. Przegląd poszczególnych etapów protokołu, wymaganych zbiorów danych wejściowych na każdym etapie oraz wynikowych rycin i zbiorów danych przedstawiono w technicznym schemacie przepływu pracy (Rycina 2).

Schemat przepływu integracji danych, przygotowanie pseudobulk, analiza czynników MOFA, normalizacja genów.
Rysunek 2: Przegląd technicznego przepływu pracy. Schemat przepływu pracy dla analizy zestawu danych multiomicznych. Różne elementy są wyróżnione różnymi kolorami i symbolami. Notatniki Jupyter należące do etapu Wstępnego Przetwarzania i Harmonizacji Danych (1) są zaznaczone na niebiesko. Notatniki Jupyter należące do etapu „Model MOFA” (2) są zaznaczone na pomarańczowo. Notatniki Jupyter należące do etapu „Analiza Downstream” (3) są zaznaczone na zielono. Jeden notatnik Jupyter służący do porównania wyników jest zaznaczony na żółto. Pliki konfiguracyjne, w których można modyfikować parametry wykonania przepływu pracy, są wyróżnione na fioletowo. Zestawy danych wejściowych wymagane do uruchomienia przepływu pracy są oznaczone symbolem zestawu danych i wyróżnione na szaro. Wszystkie wyniki w formie rysunków generowane podczas wykonywania przepływu pracy są oznaczone symbolem lupy. Zestawy danych generowane podczas wykonywania przepływu pracy są przedstawione jako tabele. Ogólnie przepływ pracy jest wykonywany sekwencyjnie: (1) Wstępne Przetwarzanie i Harmonizacja Danych składa się z dwóch kroków: najpierw generowania tabeli pseudobulk na podstawie danych wejściowych scRNA-seq (01_Prepare_Pseudobulk), a następnie integracji i normalizacji tych danych wraz ze wszystkimi pozostałymi danymi wejściowymi na poziomie próbek (bulk) (02_Integrate_and_Normalize_Data). W ramach tego etapu, za pomocą plików konfiguracyjnych, możliwe jest osobne skonfigurowanie dla każdego zestawu danych, które z indicated kroków wstępnego przetwarzania i normalizacji (np. Sample Filter) powinny zostać zastosowane. (2) „Model MOFA”: uruchamia model MOFA na danych wejściowych wygenerowanych w pierwszym etapie, zgodnie z konfiguracjami określonymi w pliku konfiguracyjnym (03_MOFA_configs.csv). (3) „Analiza Downstream”: składa się z trzech różnych notatników, które mogą być uruchamiane niezależnie od siebie w celu uzyskania informacji na temat wygenerowanych wyników MOFA i powiązania ich z metadanymi próbek (kowariantami) dostarczonymi jako dane wejściowe za pomocą pliku „Sample Meta Data.csv”. (4) „Porównanie Modeli”: jest to niewielki, oddzielny etap, który może być wykorzystany do porównania różnych modeli wygenerowanych w kroku 2. Kliknij tutaj, aby wyświetlić większą wersję tego rysunku.

Przebieg pracy składa się z kilku notatników Jupyter napisanych w językach R i Python (znajomość języków R i Python nie jest wymagana do uruchomienia procesu, lecz może być pomocna w przypadku wystąpienia błędów). Na różnych etapach protokołu parametry są zmieniane za pomocą plików konfiguracyjnych (plików '.csv' zawierających w nazwie przyrostek '_Configs'). W ramach protokołu opisujemy jedynie parametry, które należy zmienić w stosunku do konfiguracji domyślnej.

Można zmienić również kilka innych parametrów, na przykład w celu dostosowania wstępnego przetwarzania. Dokumentacja tych parametrów wraz z wyjaśnieniami znajduje się w pliku „Documentation_Config_Parameter”, który jest zawarty w pobranym repozytorium.

Protokół

1. Przygotowania: Konfiguracja techniczna i instalacja

UWAGA: Aby uruchomić ten program, należy mieć wcześniej zainstalowane narzędzia wget, git oraz Apptainer na urządzeniu. Instrukcja instalacji Apptainer na różnych systemach (Linux, Windows, Mac) znajduje się tutaj: https://apptainer.org/docs/admin/main/installation.html. Informacje dotyczące instalacji git można znaleźć tutaj: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git. W zależności od rozmiaru poszczególnych zestawów danych wejściowych zaleca się uruchomienie przepływu pracy na odpowiedniej maszynie (16 CPU, 64GB Memory). Test dymny (smoke test) z wykorzystaniem dostarczonych przykładowych danych można przeprowadzić na maszynie lokalnej. Instrukcje oraz oczekiwane wyniki uruchomienia protokołu na przykładowych danych podano w Supplementary File 1. Kluczowe etapy protokołu, które są wykonywane na opisanym powyżej zestawie danych, przedstawiono w Supplementary Video File 1.

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

2. Inicjalizacja i przygotowanie danych

  1. W sesji Jupyter-Lab skorzystaj z menu nawigacyjnego po lewej stronie. Przejdź do folderu input_data, dwukrotnie klikając input_data.
  2. Skopiuj wszystkie zbiory danych, które będą służyć jako dane wejściowe do analizy, do katalogu input_data za pomocą funkcji Drag&Drop (przeciągnij i upuść). Przeciągnij plik z folderu, w którym się obecnie znajduje, i upuść go w sesji Jupyter-lab w obszarze poniżej folderu input_data.
    UWAGA: Wszystkie zbiory danych muszą być w formacie .csv lub .h5ad (w przypadku danych z pojedynczych komórek). Wszystkie pliki .csv muszą zawierać zgodną kolumnę sample_id (w całych zbiorach danych należy używać identycznych identyfikatorów). Wszystkie pozostałe kolumny zostaną wykorzystane jako cechy. W pliku h5ad adnotacja komórki musi zawierać dwa identyfikatory określające sample_id oraz cluster_id. Będą one wykorzystywane do agregacji i dopasowania. Zbiory danych omicznych w innych formatach muszą zostać przekonwertowane do określonego formatu .csv przed użyciem (Rysunek 3). Zbiory danych scRNA-seq dostarczone w formacie .h5seurat można przekonwertować na .h5ad, uruchamiając notatnik Jupyter: 00_Data_Conversion.ipynb.
  3. Przejdź do folderu configurations, klikając symbol folderu, a następnie dwukrotnie klikając foldery mofa_workflow, scripts oraz configurations. W folderze otwórz plik Data_configs.csv, dwukrotnie go klikając.
  4. W kolumnie value dodaj ścieżki do folderów input_data (data_path) i results (result_path). W kolumnie value dla configuration_name dodaj nazwę, która zostanie dopisana jako rozszerzenie pliku do wszystkich zapisanych plików (w niniejszym protokole użyto MI_v1 [Myocardial Infarction version1]) (Rysunek 4).
  5. Zapisz zmiany, klikając File > Save CSV File w menu na górze.
  6. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu ze skryptami, klikając scripts. Otwórz notatnik inicjalizacyjny, dwukrotnie klikając 00_Configuration_Update.ipynb. Uruchom skrypt, klikając przycisk Restart kernel and run all cells na górze, a następnie klikając Restart w wyskakującym oknie (Rysunek 5).

Przygotowanie danych do wieloomicznej analizy czynnikowej; przegląd obiektu AnnData z identyfikatorami próbek.
Rycina 3: Wprowadzanie i konfiguracja danych. Do wykonania schematu analizy wszystkie dane muszą zostać zapisane w określonym folderze input_data. Dla każdego zestawu danych wejściowych należy przygotować oddzielny plik. Dane jednokomórkowe powinny być dostarczone w formacie .h5ad, zawierającym adnotacje komórek w kolumnie cluster_id (wynikające np. z wcześniejszych etapów adnotacji typów komórek) oraz kolumnę sample_id (jednoznacznie identyfikującą każdą oddzielną próbkę poddaną analizie). Wszystkie pozostałe zestawy danych wejściowych powinny być dostarczone w formacie „.csv”, zawierając jedną kolumnę określającą sample_id (odpowiadającą kolumnie w danych jednokomórkowych) oraz cechy wykorzystane w analizie MOFA we wszystkich pozostałych kolumnach. Kliknij tutaj, aby wyświetlić powiększoną wersję tej ryciny.

Edycja pliku konfiguracyjnego; konfiguracja CSV; ścieżka danych; przypisywanie wartości parametrów; zarządzanie danymi.
Rysunek 4: Pliki konfiguracyjne Jupyter-lab. Podczas wykonywania przepływu pracy zmiany parametrów (np. dostosowywanie opcji filtrowania itp.) są określane za pomocą plików konfiguracyjnych '.csv'. W sklonowanym repozytorium zawarto domyślne pliki konfiguracyjne dla każdego kroku. Można je edytować bezpośrednio w konsoli jupyter-lab, w sposób podobny do arkusza kalkulacyjnego. Kliknij tutaj, aby wyświetlić powiększoną wersję tego rysunku.

Zintegrowane środowisko programistyczne z kodem do analizy MOFA przy użyciu Jupyter Notebook.
Rycina 5: Skrypty Jupyter Notebook. Pełny przepływ pracy składa się z serii notatników Jupyter, które zostaną wykonane sekwencyjnie po zmodyfikowaniu odpowiednich plików konfiguracyjnych. Po dwukrotnym kliknięciu w notatnik Jupyter po lewej stronie, odpowiedni plik zostanie otwarty po prawej stronie. Pełne wykonanie pliku można rozpocząć za pomocą podświetlonego przycisku na górze. Kliknij tutaj, aby wyświetlić powiększoną wersję tej ryciny.

3. Wstępne przetwarzanie i harmonizacja danych

  1. Wstępne przetwarzanie – konwersja danych sc do pseudobulk.
    UWAGA: Ten krok należy wykonać tylko w przypadku użycia danych z pojedynczych komórek (single-cell) w analizie.
    1. Używając menu nawigacyjnego po lewej stronie, przejdź do folderu konfiguracji, klikając dwukrotnie w configuration. Otwórz plik 01_Preprocessing_SC_Data.csv, klikając go dwukrotnie. Sprawdź automatycznie uzupełnione wartości w pliku i, jeśli to konieczne, dostosuj wartości w kolumnie data_name , aby odpowiadały nazwom plików zestawów danych single-cell w folderze input_data , które zostaną wykorzystane w analizie.
      UWAGA: Domyślnie wszystkie nazwy plików .h5ad w folderze danych wejściowych zostaną dodane do pliku konfiguracyjnego w skrypcie inicjalizującym. Jeśli niektóre z zestawów danych nie powinny być użyte w analizie, można je tutaj usunąć.
    2. Zapisz wprowadzone zmiany, klikając w menu na górze File > Save CSV File.
    3. Używając menu nawigacyjnego po lewej stronie, przejdź do folderu scripts , klikając scripts. Otwórz notatnik 01_Prepare_Pseudobulk.ipynb , klikając go dwukrotnie. Uruchom skrypt, klikając przycisk Restart kernel and run all cells na górze, a następnie klikając Restart w wyskakującym oknie.
    4. Używając menu nawigacyjnego po lewej stronie, przejdź do folderu z rysunkami, klikając dwukrotnie najpierw w figures , a następnie w 01_figures. Otwórz nowo wygenerowany wykres FIG01_Amount_of_Cells_overview, klikając go dwukrotnie.
      UWAGA: Wykonanie notatnika może potrwać kilka minut. Po pomyślnym wykonaniu notatnika pojawi się okno pop-up, a plik FIG01_Amount_of_Cells_Overview zostanie zaktualizowany przez notatnik lub wygenerowany na nowo. Kolumna Last Modified może wskazywać czas wygenerowania pliku, co pozwala ocenić, czy jest to plik nowy, czy stary.
    5. Przeanalizuj wykres, aby zidentyfikować klastry typów komórek z bardzo niską liczbą komórek na próbkę. Zanotuj nazwy tych cluster_id, aby wykluczyć je w kolejnych krokach (Rysunek 6).
    6. Używając menu nawigacyjnego po lewej stronie, wróć do folderu konfiguracji, klikając „…” a następnie klikając dwukrotnie w configurations. Otwórz plik 02_Preprocessing_Configs_SC.csv, klikając go dwukrotnie.
    7. Sprawdź wartości w kolumnach configuration_name i data_name oraz dostosuj je w razie potrzeby.
      UWAGA: W skrypcie inicjalizującym wartości te są wstępnie wypełnione wszystkimi nazwami plików .h5ad w folderze danych wejściowych, a wartość configuration_name jest ustawiona zgodnie z wcześniej zdefiniowanym plikiem Data_Configs.csv. W przypadku konieczności wykluczenia plików z analizy lub użycia innego rozszerzenia nazw plików, można to tutaj skorygować.
    8. Dostosuj wartość w kolumnie cell_type_exclusion i dodaj wszystkie cluster_id zidentyfikowane do wykluczenia w poprzednim kroku, oddzielając je znakiem ','.
    9. Zapisz zmiany, klikając File > Save CSV File na pasku nawigacyjnym na górze.
  2. Wstępne przetwarzanie – harmonizacja i integracja innych źródeł danych omicznych.
    1. Otwórz plik 02_Preprocessing_Configs.csv, klikając go dwukrotnie, i dostosuj konfigurację wstępnego przetwarzania 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 oraz dostosuj je w razie potrzeby.
    3. Odpowiednio dostosuj pozostałe parametry w kolumnach, w zależności od tego, które kroki wstępnego przetwarzania powinny zostać zastosowane.
      UWAGA: Dla każdego zestawu danych znalezionego w folderze input_dataset dodano wartości domyślne, które nie są specyficzne dla konkretnych typów danych. W związku z tym konieczne będą korekty. Szczegółowa dokumentacja parametrów znajduje się w pliku Documentation_Config_Parameter.doc.
    4. Zapisz zmiany, klikając File > Save CSV File.
    5. Używając menu nawigacyjnego po lewej stronie, przejdź do folderu scripts , klikając scripts. Otwórz notatnik 02_Integrate_and_Normalized_Data_Sources.ipynb, klikając go dwukrotnie. Uruchom skrypt, klikając przycisk Restart kernel and run all cells na górze, a następnie klikając Restart w wyskakującym oknie.
    6. Używając menu nawigacyjnego po lewej stronie, przejdź do wygenerowanego folderu 02_results , klikając symbol folder , a następnie klikając dwukrotnie w results i 02_results. Sprawdź, czy znajduje się w nim plik 02_Combined_data_'configuration_name'_Integrated.csv zawierający połączony plik wejściowy z wstępnie przetworzonymi danymi.

Mapa ciepła rozkładu klastrów komórek; wykres obfitości komórek z kodowaniem kolorystycznym; porównanie w obrębie próbek.
Rycina 6: Wstępne przetwarzanie i harmonizacja danych. Jednym z wyników etapu „01_Prepare_Pseudobulk” jest wykres „Fig01_Amount_of_Cells_Overview”. Przedstawiono na nim liczbę komórek na próbkę („sample_id”) dla każdego cluster_id (oś y wskazuje typ komórki określony w poprzednich etapach adnotacji typów komórek). W prezentowanych wynikach typy komórek o niskiej liczbie komórek na próbkę zostały wykluczone z dalszej analizy (oznaczone przekreśleniem). Kliknij tutaj, aby wyświetlić większą wersję tej ryciny.

4. Uruchamianie MOFA

  1. W Jupyter-Lab użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu z konfiguracjami, klikając symbol folderu, a następnie dwukrotnie klikając mofa_workflow, a potem dwukrotnie klikając scripts i configurations. Otwórz plik 03_MOFA_Configs.csv, dwukrotnie go klikając.
  2. Sprawdź wpisy w kolumnach configuration_name i mofa_result_name i dostosuj je, jeśli należy użyć alternatywnych nazw.
    UWAGA: Wartość mofa_result_name zostanie dodana jako rozszerzenie pliku do wszystkich plików z wynikami wygenerowanych na podstawie MOFA. Może być ona inna niż wartość configuration_name, ponieważ dla tych samych danych wejściowych można uruchomić różne ustawienia MOFA (w niniejszym protokole zastosowano MI_v1_MOFA).
  3. Wprowadź liczbę czynników, które mają zostać oszacowane w modelu MOFA (kolumna amount_of_factors) i określ, czy należy zastosować ważenie i skalowanie (kolumny weighting_of_views i scale_views), dostosowując wartości w pliku.
  4. Zapisz zmiany, klikając File > Save CSV File.
  5. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu scripts, klikając 'scripts'. Otwórz notebook 03_Run_MOFA.ipynb, dwukrotnie klikając plik. Uruchom skrypt, klikając przycisk Restart kernel and run all cells u góry, a następnie klikając Restart w wyskakującym oknie.
  6. Przejdź do folderu 03_figures, dwukrotnie klikając figures, a następnie 03_figures. Otwórz wygenerowany wykres FIG03_Overview_Variance_Decomposition_'mofa_result_name i przeanalizuj 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 dwukrotnie klikając results i 03_results. Sprawdź, czy zawiera on plik z wartościami czynników próbek 03_Factor_Data_'mofa_result_name'.csv oraz plik z wagami czynników cech 03_Weight_Data_'mofa_result_name'.csv.

5. Analiza końcowa

  1. Interpretacja czynników.
    1. Użyj menu nawigacyjnego po lewej stronie, aby przejść do Proszę podać tekst źródłowy do przetłumaczenia. folder, klikając w folder symbol, a następnie dwukrotne kliknięcie w Proszę podać tekst źródłowy do przetłumaczenia..
    2. Przygotuj .csv plik (Metadane_Przygotowanych_Próbek.csv) zawierającego wszystkie metadane (kowarianty) próbek, które zostaną poddane analizie w powiązaniu z wygenerowanymi czynnikami. Skopiuj plik do Proszę podać tekst źródłowy do przetłumaczenia. folder za pomocą Opór aerodynamiczny&Kropla umieszczenie pliku w folderze z przeglądem Proszę podać tekst źródłowy do przetłumaczenia. folder
      UWAGA: Musi zawierać identyfikator_próbki kolumnę służącą do dopasowania do wcześniej użytych danych oraz kolejne kolumny dla każdej cechy, która powinna zostać przeanalizowana.
    3. W programie Jupyter-Lab należy użyć menu nawigacyjnego po lewej stronie, aby powrócić do folderu konfiguracji, klikając w folder symbol, a następnie dwukrotne kliknięcie w przepływ_pracy_mofa, a następnie skrypty i konfiguracjaOtwórz plik 04_Analiza_czynnikowa.csv poprzez dwukrotne kliknięcie.
    4. Sprawdź wpisy dla nazwa_konfiguracji i nazwa_wyniku_mofa zawierają nazwy konfiguracji oraz wyników MOFA, które zostaną przeanalizowane w skrypcie; należy je dostosować w razie potrzeby.
    5. W kowarianty numeryczne kolumna, dodaj nazwy wszystkich kolumn numerycznych w Metadane_Przygotowanych_Próbek.csv plik, który zostanie poddany analizie w odniesieniu do czynników MOFA, rozdzielonych przecinkami (niniejszy protokół wykorzystuje CRP, CK).
    6. W kowarianty kategorycznekolumnie dodaj nazwy wszystkich kolumn kategorycznych w Metadane_Przygotowanych_Próbek.csv plik, który zostanie zbadany w odniesieniu do czynników MOFA, oddzielonych przecinkami (Niniejszy protokół wykorzystuje pomiar).
    7. Zapisz zmiany, klikając w Plik > Zapisywanie pliku CSV.
    8. Użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu „scripts”, klikając w skryptyOtwórz notatnik 04_Analiza_czynników_downstream.ipynb poprzez dwukrotne kliknięcie. Uruchom skrypt, klikając w Zrestartuj jądro i uruchom wszystkie komórki przycisk u góry i kliknięcie restartu w wyskakującym oknie.
    9. Użyj menu nawigacyjnego po lewej stronie, aby przejść do 04_ryciny folder poprzez dwukrotne kliknięcie ryciny a następnie 04_rysunkiOtwórz wygenerowane wykresy poprzez dwukrotne kliknięcie na nie i przeanalizuj czynniki odpowiedzialne za interesujące wzorce oraz powiązania: RYC04_Związek_czynników_z_cechami_numerycznymi_
      mofa_result_name.pdf (Rycina 7B). RYS04_Powiązania_czynników_
      z_cechami_kategorycznymi_'mofa_result_name.pdf (Rysunek 7C). FIG04_Przegląd_głównych_cech_na_czynnik _'mofa_result_name.pdf (Rysunek 8A)
      .
  2. Analiza cech
    1. Użyj menu nawigacyjnego po lewej stronie, aby powrócić do folderu konfiguracji, klikając w a następnie dwukrotnym kliknięciem w konfiguracjeOtwórz plik 05_Konfiguracje_Analizy_Cech.csv poprzez dwukrotne kliknięcie.
    2. Sprawdź, czy wpisy dotyczące nazwa_konfiguracji i nazwa_wyniku_mofa kolumny odpowiadają nazwom konfiguracji oraz wygenerowanemu wynikowi MOFA, który zostanie wykorzystany w dalszej analizie; w razie potrzeby należy je skorygować.
    3. W czynnik kolumny, dodaj czynnik, dla którego najważniejsze cechy zostaną wykreślone w kolejnym skrypcie.
    4. W kolumnie zmienna facetowania, dodaj nazwę kolumny kolumny kategorycznej w Metadane_przygotowanych_próbekplik .csv, który zostanie wykorzystany do grupowania próbek na wykresie (niniejszy protokół wykorzystuje pomiar)
    5. Zapisz zmiany, klikając w Plik > Zapisz plik CSV.
    6. Użyj menu nawigacyjnego po lewej stronie, aby przejść do skrypty folder, klikając w skryptyOtwórz notatnik. 05_Analiza_dalsza_Badanie_cech_Mapa_ciepła.ipynb poprzez dwukrotne kliknięcie. Uruchom skrypt, klikając w Zrestartuj jądro i uruchom wszystkie komórki przycisk na górze i kliknięcie Restart w oknie wyskakującym.
    7. Użyj menu nawigacyjnego po lewej stronie, aby przejść do 05_ryciny folder, dwukrotnie klikając najpierw na ryciny a następnie 05_rycinyOtwórz i przeanalizuj wygenerowany wykres RYS05_Mapa_ciepła_Przegląd_cech__ 'nazwa_wyniku_mofa'.pdf poprzez dwukrotne kliknięcie pliku (Rysunek 8B).
      UWAGA: W zależności od liczby cech przedstawionych na wykresie może być konieczne dostosowanie parametrów szerokość_wykresu i wysokość_wykresu w obrębie 05_Konfiguracje_Analizy_Cech.csv i ponownie uruchom skrypt, aby upewnić się, że wszystkie elementy mieszczą się na wykresie.
  3. Analiza ścieżek sygnałowych
    1. Użyj menu nawigacyjnego po lewej stronie, aby przejść do Proszę podać tekst źródłowy do tłumaczenia. folder, klikając w folder symbol, a następnie dwukrotnym kliknięciem w Proszę podać tekst źródłowy do przetłumaczenia..
    2. Przygotuj .csv plik (Przygotowane_Dane_Scieżek.csv) zawierający listę szlaków, które zostaną poddane analizie wzbogacenia. Skopiuj plik do Proszę podać tekst źródłowy do tłumaczenia. folder za pomocą Opór aerodynamiczny&Kropla umieszczenie pliku w folderze z przeglądem Proszę podać tekst źródłowy do tłumaczenia. folder
      UWAGA: Musi zawierać trzy kolumny: Identyfikator (unikalny identyfikator ścieżki), gen (geny podane za pomocą nazw genów (SYMBOL) należące do szlaku, jeden wiersz na gen), nazwa_szlaku (nazwa/opis tekstowy szlaków).
    3. W sesji Jupyter-Lab należy użyć menu nawigacyjnego po lewej stronie, aby przejść do folderu konfiguracji, klikając na …, a następnie dwukrotnie klikając na konfiguracjeOtwórz plik 06_Konfiguracje_Scieżek.csv poprzez dwukrotne kliknięcie.
    4. Sprawdź wpis dla nazwa_wyniku_mofa kolumny i upewnij się, że odpowiada ona nazwie wygenerowanego wyniku MOFA, który zostanie wykorzystany do obliczeń wzbogacenia ścieżek.
    5. Sprawdź wpis w typów kolumnę i usuń wpisy w obrębie tej rodzaje kolumna, która nie zawiera cech odpowiadających gen kolumna w Przygotowane_Dane_Scieżek.csv Plik.
      UWAGA: Domyślnie wszystkie różne widoki wykorzystane w modelu MOFA są dodawane do tego pliku podczas wykonywania przepływu pracy. W przypadku wystąpienia widoków, które nie zawierają cech odpowiadających co najmniej jednej ścieżce, należy je usunąć; w przeciwnym razie proces zostanie przerwany. Przykładem może być sytuacja, w której plik ścieżek zawiera jedynie adnotacje ścieżek dla genów, ale istnieje widok zawierający nazwy białek.
    6. Zapisz zmiany, klikając w Plik > Zapisz plik CSV.
    7. Użyj menu nawigacyjnego, aby przejść do skrypty folder, klikając w skryptyOtwórz notatnik 06_Ścieżki_downstream.ipynb poprzez dwukrotne kliknięcie. Uruchom skrypt, klikając w Zrestartuj jądro i uruchom wszystkie komórki przycisk u góry i kliknięcie Restartuj w oknie wyskakującym.
    8. Użyj menu nawigacyjnego po lewej stronie, aby przejść do 06_ryciny folder, dwukrotnie klikając w ryciny a następnie 06_rycinyOtwórz wygenerowany wykres RYS06_Ścieżki_i_geny_ nazwa_wyniku_mofa poprzez dwukrotne kliknięcie na nim i przeanalizowanie zwizualizowanych szlaków (Rycina 8C).
      UWAGA: Sposób wyboru wizualizowanych ścieżek można skonfigurować w pliku konfiguracyjnym. Więcej szczegółów znajduje się w dokumentacji parametrów.
    9. Użyj menu nawigacyjnego po lewej stronie, aby przejść do wygenerowanych 06_wyniki folder, klikając w folder symbol, a następnie dwukrotnym kliknięciem w wyniki i 06_wynikiSprawdź, czy zawiera on plik z wzbogaconymi szlakami. 06_Wzbogacenie_szlaków__'mofa_result_name'.

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

  1. Aby porównać wpływ zastosowania różnych parametrów/konfiguracji w całym przepływie pracy, należy ponownie uruchomić sekcje 3-5, modyfikując parametry w plikach konfiguracyjnych i używając różnych identyfikatorów configuration_name oraz mofa_result_name .
    UWAGA: Nowe wyniki zostaną zapisane pod tymi nazwami w celu porównania różnych uruchomień.
  2. W Jupyter-Lab należy użyć menu nawigacyjnego po lewej stronie, aby przejść do folderu configurations . Otwórz plik 07_Comparison_Configs.csv, klikając go dwukrotnie.
  3. W kolumnie mofa_result_name dodaj nazwy wszystkich poprzednich uruchomień MOFA, które mają zostać porównane (jeden wiersz na nazwę/konfigurację, np. MI_v1_MOFA, MI_v2_MOFA).
  4. W kolumnie compare_factors dodaj czynniki, które zostaną porównane między modelami. Domyślnie są to Factor1,Factor2,Factor3. (Rycina uzupełniająca 2A).
    UWAGA: W tym skrypcie wartości cech i czynników różnych modeli zostaną porównane poprzez ich korelację. Działa to tylko w przypadku modeli opartych na tych samych próbkach (wskazanych przez sample_id) i tym samym zestawie cech. Jeśli próbki lub cechy nie będą zgodne między porównywanymi wersjami, zostaną one wykluczone z porównania.
  5. Zapisz zmiany, klikając File > Save CSV File.
  6. Użyj menu po lewej stronie, aby przejść do folderu scripts , klikając scripts. Otwórz notebook 07_Compare_Models.ipynb, klikając go dwukrotnie. Uruchom skrypt, klikając przycisk Restart kernel and run all cells, a następnie klikając Restart w wyskakującym oknie.
  7. Użyj menu po lewej stronie, aby przejść do folderu 06_figures, klikając dwukrotnie najpierw w figures , a następnie w 06_figures. Otwórz wygenerowane wykresy, klikając dwukrotnie w pliki, aby przeanalizować podobieństwo różnych wersji:
    FIG07_Variance_Model_Comparison.pdf (Rycina uzupełniająca 2B)
    FIG07_Factor_Correlations.pdf
    (Rycina uzupełniająca 2C)
    FIG07_Feature_Correlations.pdf
    (Rycina uzupełniająca 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 dostosowania w kodzie lub inne parametry. Na przykład sam model MOFA oferuje kilka innych parametrów uczenia17, które można zmodyfikować bezpośrednio w kodzie lub uczynić konfigurowalnymi za pomocą plików konfiguracyjnych. Kolejna sekcja protokołu przedstawi przykład, jak zrobić to w przypadku dodatkowych parametrów uczenia modelu MOFA. Do tej części wymagana jest znajomość programowania w języku R.

  1. W Jupyter-Lab użyj menu nawigacyjnego po lewej stronie, aby przejść do folderu scripts . Otwórz notebook 03_Run_MOFA.ipynb , klikając go dwukrotnie.
  2. Kliknij kartę Table of Contents po lewej stronie, a następnie przejdź do podrozdziału 4.3 Set MOFA Training Options and run the Model Training , klikając go. Przewiń w dół, aby zobaczyć wyświetlone w notebooku dane wyjściowe modelu MOFA dotyczące konfigurowalnych parametrów.
  3. W pętli R for w kodzie poniżej nagłówka ustawione są wszystkie dane MOFA, model oraz opcje treningu. Poniżej linii model_opts$num_factors = mofa_configs$amount_of_factors[i] dodaj kolejną linię z poniższym kodem:
    model_opts$likelihoods['data_type'] = 'poisson'.
    UWAGA: Zmieni to rozkład, który model przyjmuje jako wejście dla widoku określonego nazwą data_type we wszystkich uruchomieniach MOFA. Przy określeniu rozkładu poisson dla danego typu danych, model zostanie uruchomiony tylko wtedy, gdy cechy dla tego typu danych będą liczbami całkowitymi (np. liczba odczytów z RNA-seq). Aby uzyskać więcej informacji na temat danych MOFA, treningu i opcji modelu, można odwołać się do samouczków i dokumentacji MOFA17.
  4. Zapisz zmiany w notebooku, klikając przycisk Save na górze.
  5. Aby przekazać nowe parametry za pomocą plików konfiguracyjnych .csv, użyj nawigacji po lewej stronie, aby przejść do folderu z konfiguracjami, klikając dwukrotnie configurations , a następnie otwórz plik 03_MOFA_Configs.csv, klikając go dwukrotnie.
    1. Dodaj nową kolumnę określającą nazwę parametru, np. number_iterations i wprowadź wartość, np. 1000. Zapisz zmiany, klikając File > Save CSV File.
    2. Użyj menu nawigacyjnego, aby przejść do folderu ze skryptami, klikając scripts. Otwórz notebook 03_Run_Mofa.ipynb, klikając go dwukrotnie. Kliknij kartę Table of Contents po lewej stronie, a następnie przejdź do podrozdziału 4.3 Set MOFA Training Options and run the Model Training , klikając go.
    3. Zastąp linię train_opts$maxiter = 50000 kodem train_opts$maxiter = mofa_configs$column_name[i] (jeśli nazwa dodanej kolumny to number_of_iterations , będzie to train_opts$maxiter = mofa_configs$number_of_iterations[i]).
      UWAGA: Plik konfiguracyjny 03_MOFA_Configs.csv w tym notebooku jest odczytywany na początku notebooku (podrozdział: Prerequisites Configurations & Parameters) jako mofa_config data.frame w sesji, dlatego w tej linii kodu odwołano się do tego obiektu i odpowiadającej mu nowo wygenerowanej kolumny. Ponieważ jednocześnie można uruchomić wiele konfiguracji, i identyfikuje wiersz w data.frame, ponieważ szacowanie modelu jest uruchamiane w pętli for dla wszystkich różnych wierszy w pliku .csv . Zasada odczytywania pliku konfiguracyjnego na początku notebooku w sekcji „Prerequisites Configurations & Parameters” jest taka sama dla wszystkich notebooków i w ten sposób można wprowadzać dalsze modyfikacje.
    4. Zapisz zmiany w notebooku, klikając przycisk Save .

Wyniki

Po pomyślnym wykonaniu schematu pracy generowanych jest kilka tabel i rycin, co przedstawiono na Ryc. 2. Ryciny są umieszczane w folderze /figures (Ryc. 6, Ryc. 7, Ryc. 8, Rycina dodatkowa 1, Rycina dodatkowa 2, Rycina dodatkowa 3, Rycina dodatkowa 4), a tabele zostaną zapisane w określonym folderze /results.

W przypadku niepowodzenia wykonania przepływu pracy może to wynikać głównie z: błędów technicznych spowodowanych np. niewystarczającą ilością pamięci (zwłaszcza w pierwszym kroku, w którym ładowany jest duży zestaw danych jednokomórkowych), nieprawidłowego formatowania danych (np. niedopasowanych kolumn sample_id pomiędzy zestawami danych) lub błędnych specyfikacji w plikach konfiguracyjnych (np. wykluczenia zbyt wielu cech). W takiej sytuacji podczas wykonywania skryptu w notatniku Jupyter zazwyczaj pojawi się komunikat o błędzie, a wykresy i dane nie zostaną wygenerowane. Zaleca się korzystanie z domyślnych plików konfiguracyjnych wygenerowanych podczas uruchamiania skryptu i modyfikowanie jedynie konkretnych parametrów opisanych w protokole.

O pomyślnym wykonaniu świadczy wygenerowanie wynikowych wykresów i tabel, a każdy krok ujawni dodatkowe informacje o danych oraz głównych wzorcach wariancji w nich zawartych. Niemniej jednak nie każde wykonanie musi przynieść biologicznie użyteczne i interpretowalne wyniki. Często dane charakteryzują się dużymi efektami technicznymi i różnymi rozkładami, co musi zostać uwzględnione w kroku „Data Pre-Processing and Harmonization” lub w modelu „MOFA9 Model” (który pozwala również na określenie różnych rozkładów dla typów danych wejściowych), aby móc wyodrębnić wariację danych odzwierciedlającą podstawowe procesy biologiczne.

W przedstawionym przepływie pracy jako dane wejściowe można wykorzystać różne zestawy danych multiomicznych. Obecnie przepływ pracy akceptuje popularny format plików .h5ad dla danych z pojedynczych komórek oraz bardzo ogólny format plików .csv dla wszystkich pozostałych zestawów danych (Rycina 3). Często zdarza się, że różne zestawy danych omicznych mają bardzo odmienne formaty plików. Aby nie ograniczać wykonania przepływu pracy do konkretnych formatów, jako format bardzo ogólny zastosowano .csv . W związku z tym wszystkie rodzaje różnych zestawów danych omicznych mogą być używane jako dane wejściowe do przepływu pracy, jednak przed ich wykorzystaniem w tym procesie muszą zostać przekonwertowane na odpowiadający im format .csv , zgodnie z oznaczeniem na Rycina 3. Można to przygotować za pomocą arkusza kalkulacyjnego lub oprogramowania specyficznego dla danej omiki. W celu wstępnego przetwarzania różnych zestawów danych omicznych, w ramach przepływu pracy dostępnych jest kilka opcji umożliwiających zastosowanie różnych kroków preprocessingu i normalizacji (np. korekty wielkości biblioteki, transformacji logarytmicznej, normalizacji kwantylowej próbek) na różnych zestawach danych wejściowych poprzez konfigurację plików 02_Pre_Processing_Configs.csv oraz 02_Pre_Processing_Configs_SC.csv (Rycina 2). Niemniej jednak dostępne tutaj opcje opierają się głównie na specyficznych danych wejściowych dostępnych w prezentowanym tutaj zestawie danych (scRNA-seq, test cytokin, proteomika, prime-seq). W przypadku użycia innych typów omik/danych konieczne może być zastosowanie dodatkowych, specyficznych dla danej omiki kroków normalizacji zgodnie z istniejącymi najlepszymi praktykami. W takim przypadku dane mogą zostać przekazane do przepływu pracy w formie już wstępnie przetworzonej i zostaną zintegrowane wraz z pozostałymi zestawami danych bez stosowania dalszych kroków preprocessingu. W wielu przypadkach zastosowanie kroku Feature Wise Quantile Normalization jest przydatne w wyrównywaniu rozkładu wszystkich typów danych do rozkładu normalnego, co sprawia, że analizy downstream pomiędzy różnymi cechami wejściowymi są bardziej porównywalne i zgodne ze specyfikacją modelu szumu Gaussian .

Podczas wykonywania procedury generowanych jest kilka wykresów i wyników, które wspierają proces integracji danych i późniejszą biologiczną interpretację wyników. W przypadku danych scRNA-seq 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 dalszych analizach jako szacunek ekspresji wykorzystuje się wartość średnią dla wszystkich komórek danego typu w próbce (podejście pseudobulk). W tym przypadku wykluczamy typy komórek, które w większości próbek zawierają mniej niż trzy komórki.

Wykres dekompozycji wariancji FIG03_Overview_Variance_Decomposition (Rycina 7, Rycina dodatkowa 1) może wskazywać, jak dobrze integrują się różne źródła danych oraz jaka część wariancji w poszczególnych źródłach danych jest wspólna, a jaka unikalna dla każdego z nich. Na przykład testowanie różnych strategii wstępnego przetwarzania na zastosowanym tutaj zbiorze danych wykazuje, że usunięcie etapu normalizacji Feature Wise Quantile z procesu wstępnego przetwarzania prowadzi do uzyskania czynników ukrytych bardziej skoncentrowanych na konkretnych widokach danych i zmniejsza integrację danych proteomicznych z pozostałymi źródłami danych. Można to zauważyć poprzez zmniejszoną ilość wyjaśnionej wariancji (Rycina dodatkowa 1B). Uruchomienie modelu MOFA bez filtrowania cech lub bez normalizacji prowadzi do mniejszej wariancji wspólnej między różnymi widokami rejestrowanymi przez czynniki ukryte (Rycina dodatkowa 1C). Wskazuje to, że czynniki ukryte odzwierciedlają głównie techniczne efekty specyficzne dla typu danych. Poza tym sam model MOFA9 może również zwracać ostrzeżenia w przypadku słabo przetworzonych danych. Przykład takiego ostrzeżenia pokazano na Rycini dodatkowej 1 dla alternatywnych konfiguracji wstępnego przetwarzania MI_v2 oraz MI_v3 (konkretne przykładowe pliki konfiguracyjne znajdują się w sklonowanym repozytorium GitHub w folderze config_examples ).

Dodatkowo, po uruchomieniu modelu MOFA, wyniki można ocenić w ramach kilku analiz następczych, wiążąc czynnik ze znanymi biologicznymi meta-informacjami o próbkach, a także z technicznymi i innymi zakłócającymi współ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 silnie wiąże się z jedną ze współzmiennych technicznych (takich jak informacje o serii), może to wskazywać, że czynnik ten uchwycił raczej zmienność techniczną w danych zamiast zmienności biologicznej.

Aby zawęzić interpretację biologiczną w części analizy końcowej, przedstawiono tutaj kilka wniosków opartych na zbiorze danych wejściowych (bardziej szczegółową interpretację można znaleźć w oryginalnej publikacji11). W pierwszym kroku zaobserwowano, że przy zastosowanej strategii wstępnego przetwarzania danych zidentyfikowano kilka czynników, które oddają wariancję w wielu typach komórek, a także w innych typach danych omicznych (Ryc. 7A). Na przykład czynnik Factor 2 oddaje wariancję w klinicznych cechach wejściowych oraz w kilku typach komórek ze zbioru danych scRNA-seq. Powiązano trzy pierwsze czynniki z odpowiednimi klinicznymi współzmiennymi, takimi jak „CRP” i „CK” (Ryc. 7B), a następnie zbadano różnice w wartościach czynników dla różnych podgrup pacjentów: „Control” (w tym CCS i non-CCS) względem „ACS”, mierzonych w różnych punktach czasowych (TP1-TP4) (Ryc. 7C), co pozwoliło stwierdzić, że Factor 2 istotnie koreluje z wartością „CK”, a Factor 3 z wartością „CRP”. Jednocześnie próbki „ACS” w punktach TP1 i TP2 (odzwierciedlające ostrą fazę odpowiedzi immunologicznej na zawał mięśnia sercowego (MI)) wykazują wzrost wartości czynników w porównaniu z próbkami „Control” oraz próbkami z późniejszych punktów czasowych (TP3/TP4). CK jest znanym markerem uszkodzenia mięśnia sercowego i typowo charakteryzuje się podwyższonymi wartościami w TP1/TP2, co jest zgodne z wzorcem uchwyconym przez Factor 2.

Aby uzyskać wgląd w procesy biologiczne kształtujące Factor2, oceniamy najwyżej sklasyfikowane cechy czynnika, analizując tabelę wag cech wygenerowaną przez model (03_Weight_Data.csv). Analizując górny 1% cech o najwyższych wagach bezwzględnych dla czynnika, znajdujemy głównie CD4.TCM oraz cechy pochodzące z CD14. Mono, które są nadreprezentowane w stosunku do ich całkowitej liczby w cechach wejściowych (Rysunek 8A), co wskazuje, że typy komórek te są wysoce istotne w procesie zapalnym po MI (UWAGA: w przypadku, gdy w etapie wstępnego przetwarzania nie zastosowano kwantylowej normalizacji cech, różne rozkłady cech mogą również wpływać na ten wynik, a oceny należy dokonać oddzielnie dla każdego typu danych). Analizując najwyżej sklasyfikowane cechy typu komórek CD4.TCM dla tego czynnika, znajdujemy kilka interesujących genów, takich jak EIF3E18, niezbędny do skutecznej aktywacji limfocytów T, oraz HMGB119, który promuje ekspansję i aktywację limfocytów T (Rysunek 8B). Następnie przeprowadzamy analizę wzbogacenia ścieżek, wykorzystując ścieżki immunologiczne z bazy danych REACTOME20 jako zestaw ścieżek (Prepared_Pathway_Data.csv). Stwierdzamy wzbogacenie dla kilku ścieżek związanych z „Interleukiny”, w tym sygnalizacji „Interleukina-6”. Poziomy ekspresji kilku genów w różnych typach komórek z danych scRNA-seq oraz wartości cytokiny „IL6” zmierzone testem cytokin przyczyniły się do tego wyniku (Rysunek 8C). Identyfikacja tych wspólnych wzorców w różnych typach danych podkreśla wartość dodaną analizy zintegrowanej. Ogólnie rzecz biorąc, podejście to może również zidentyfikować kilka innych czynników odzwierciedlających stan choroby lub wiążących wynik leczenia z podstawowymi wielokomórkowymi programami odpornościowymi, co opisano bardziej szczegółowo w odpowiadającej publikacji11.

Aby dodatkowo podkreślić zaletę zintegrowanych analiz wielu danych omicznych, ten sam schemat analizy przeprowadzono również wyłącznie z uwzględnieniem danych proteomicznych (Rycina uzupełniająca 4). Analizując otrzymane czynniki, podobnie jak w analizie zintegrowanej, zidentyfikowano czynnik (Factor1), który silnie koreluje z wartością „CRP”. Wzorzec ten opisuje główne źródło zmienności w danych proteomicznych i jest również zgodny z częścią zmienności w pozostałych zestawach danych, uchwyconą przez „Factor3” w analizie zintegrowanej (Rycina 7C). Jednakże, wzorca podobnego do Factor2, który w analizie zintegrowanej oddaje przebieg czasowy stanu zapalnego, nie można zidentyfikować wyłącznie na podstawie danych proteomicznych.

Przedstawiony schemat pracy oraz sam model MOFA9 są wysoce konfigurowalne i posiadają wiele regulowanych parametrów. Dlatego istotne jest wizualizowanie i systematyczne porównywanie wyników uzyskiwanych przy różnych konfiguracjach. Aby ułatwić to zadanie, końcowym wynikiem generowanym przez schemat pracy jest porównanie różnych nazwanych uruchomień potoku (pipeline) z różnymi parametrami w etapie wstępnego przetwarzania i estymacji modelu. Na przykład model MOFA można estymować dla różnej liczby czynników utajonych (Supplementary Figure 2A) lub można nadać wagi widokom z mniejszą liczbą cech (Supplementary Figure 3A). Konfiguracja i uruchomienie ostatniego skryptu schematu pracy „07_Compare_Models” generuje kilka wykresów służących do oceny podobieństwa między różnymi uruchomieniami potoku. FIG07_Variance_Model_Comparison (Supplementary Figure 2B, Supplementary Figure 3B) przedstawia porównanie całkowitej wariancji wyjaśnionej dla każdego widoku w różnych uruchomieniach. Korelacja wartości czynników oraz wag cech czynników między różnymi uruchomieniami może wskazywać, w jakim stopniu wyniki zmieniają się przy modyfikacji określonego parametru (Supplementary Figure 2C, Supplementary Figure 3C). W tym przypadku modyfikacja liczby czynników powoduje jedynie niewielkie zmiany w estymowanych wartościach czynników i wagach cech (Supplementary Figure 2C). Modyfikacja wagowania widoku danych skutkuje znacznie wyższą wariancją wyjaśnioną w widokach z mniejszą liczbą cech, np. w widoku „clinical” (Supplementary Figure 3B). Niemniej jednak, istotne cechy w obrębie trzech pierwszych czynników są nadal silnie skorelowane z tymi wywnioskowanymi w wersji niewagowanej (Supplementary Figure 3C).

Po wygenerowaniu przez model plików wyjściowych .csv w folderze results (np. oszacowanych wag czynników i cech), można przeprowadzić dalsze indywidualne analizy typu downstream. Cały kod oraz niezbędne pliki konfiguracyjne (łącznie z dokumentacją) są dostępne na GitHubie pod adresem https://github.com/heiniglab/mofa_workflow. Obraz singularity, stworzony w celu umożliwienia łatwej instalacji wymaganych pakietów conda do analizy, można pobrać z adresu https://doi.org/10.5281/zenodo.10815146. Z tego samego wpisu w zenodo można również pobrać niewielki zbiór danych przykładkowych, który może posłużyć do przeprowadzenia wstępnego testu potoku analitycznego.

Wieloomiczna analiza czynnikowa; mapa ciepła dekompozycji wariancji i wykresy asocjacji; wykresy analizy danych.
Rycina 7: Analiza wyników MOFA. Po uruchomieniu modelu MOFA (03_Run_MOFA.ipynb) i późniejszej analizie wartości czynników (04_Downstream_Factor_Analysis.ipynb) generowanych jest kilka wykresów: (A) FIG03_Overview_Variance_Decomposition: przedstawia wizualizację wyjaśnionej wariancji oszacowanych czynników MOFA w różnych widokach. Mapa ciepła (lewo): pokazuje procent całkowitej wariancji widoku uchwycony przez dany czynnik dla każdego widoku. Wykres słupkowy (prawo): pokazuje całkowity procent wariancji uchwycony przez wszystkie czynniki dla każdego widoku. (B) FIG04_Factor_Association_Numerical_Features: przedstawia korelację Persona wartości czynników z wybranymi numerycznymi kowariantami próbek, w tym przypadku: zmiennymi klinicznymi (CRP, CK). (C) FIG04_Factor_Association_Categorical_Features: przedstawia różnicę w wartościach czynników dla kategorycznych kowariantów próbek w formie wykresu pudełkowego. Tutaj porównano wartości czynników Factors1-3 dla każdego punktu czasowego u pacjentów z ACS i grupy kontrolnej. Kliknij tutaj, aby wyświetlić większą wersję tej ryciny.

Schematy analizy czynników; najważniejsze cechy, mapy ciepła ekspresji, interakcje ścieżka-gen; badanie cytokin.
Rycina 8: Analiza cech MOFA. Po uruchomieniu analizy końcowych (04_Downstream_Factor_Analysis.ipynb, 05_Downstream_Investigate_Features.ipynb) generowanych jest kilka wykresów. Wszystkie przedstawione tutaj wykresy wizualizują czynnik MOFA 2: (A) FIG04_Top_Feature_Overview_per_Factor: Mapa ciepła (lewo) pokazuje dla każdego widoku procent wariancji uchwycony przez wybrany czynnik. Wykresy słupkowe (prawo) wskazują istotność cech z różnych widoków dla danego czynnika. Po lewej stronie podano całkowitą liczbę cech konkretnego widoku w obrębie 1% najwyżej sklasyfikowanych cech we wszystkich widokach dla tego czynnika. Po prawej podano wartość procentową, dzieląc całkowitą liczbę cech z grupy 1% przez całkowitą liczbę cech danego widoku. (B) FIG05_Heatmap_Feature_Overview: Mapa ciepła (lewo) pokazuje dla 1% najwyżej sklasyfikowanych cech typu komórek CD4.TCM znormalizowane wartości ekspresji dla każdej próbki, porównując pacjentów z grupy „Control” (CCS i non-CCS) z różnymi punktami czasowymi dla pacjentów „ACS”. Wykres słupkowy (prawo) pokazuje wagi cech. Kierunek znaku wagi jest wskazany wcześniej po lewej stronie, przed nazwami typów komórek: „+” dodatnia waga czynnika; „-” ujemna waga czynnika. (C) FIG06_Pathway_and_Genes: pokazuje wagi 25% najwyżej sklasyfikowanych genów dla danego czynnika, które należą do wzbogaconych ścieżek interleukin. Na górnej mapie ciepła są one uśrednione dla wszystkich widoków, a na dolnej mapie ciepła przedstawione dla każdego widoku z osobna. Kliknij tutaj, aby wyświetlić powiększoną wersję tej ryciny.

Rysunek uzupełniający 1: Efekty harmonizacji danych. Rysunek przedstawia FIG03_Overview_Variance_Decomposition dla kilku różnych konfiguracji wstępnego przetwarzania danych: wizualizację wyjaśnionej wariancji szacowanych czynników MOFA w obrębie poszczególnych widoków. Mapa ciepła (lewo): pokazuje dla każdego widoku procent całkowitej wariancji widoku, który jest przechwytywany przez dany czynnik. Wykres słupkowy (prawo): pokazuje dla każdego widoku całkowity procent wariancji przechwytywanej przez wszystkie czynniki. (A) Konfiguracja ('MI_v1'), na podstawie której przeanalizowano biologiczne wyniki końcowe na poprzednich rysunkach (parametry ustawione zgodnie z domyślnymi plikami konfiguracyjnymi w sklonowanym repozytorium). (B) Ta sama konfiguracja wstępnego przetwarzania co w 'MI_v1', z modyfikacją polegającą na tym, że nie zastosowano normalizacji kwantylowej dla poszczególnych cech (parametry ustawione zgodnie z przykładowymi plikami konfiguracyjnymi w folderze 'config_examples' repozytorium). Poniżej wykresu dodano zrzut ekranu ostrzeżenia z wyjścia modelu MOFA dla tej konfiguracji. (C) Wynikowy rozkład wariancji w przypadku, gdy nie zastosowano kroków wstępnego przetwarzania, a wszystkie dane zostały użyte jako dane wejściowe bez żadnego przetwarzania wstępnego lub filtrowania cech (parametry ustawione zgodnie z przykładowym plikiem konfiguracyjnym w folderze 'config_examples' repozytorium). Poniżej wykresu dodano zrzut ekranu ostrzeżenia z wyjścia modelu MOFA dla tej konfiguracji. Kliknij tutaj, aby pobrać ten plik.

Rysunek uzupełniający 2: Konfiguracja MOFA – wpływ liczby czynników. Wykresy wygenerowane przez skrypt „07_Compare_Models.ipynb” przy użyciu kilku różnych konfiguracji uruchomienia modelu MOFA. (A) „03_MOFA_configs.csv”: przykład różnych konfiguracji użytych do uruchomienia skryptu „03_Run_MOFA.ipynb”, określających kilka różnych liczb czynników (10, 15, 20, 25). „07_Comparison_configs.csv”: przykład sposobu określania pliku wejściowego konfiguracji dla wykonania skryptu „07_Compare_Models.ipynb”. (B) „FIG07_Variance_Model_Comparison” przedstawiający całkowitą wariancję wyjaśnioną dla każdego widoku (oś y) dla różnych modeli w odniesieniu do wszystkich czynników określonych w modelu. (C) „FIG07_Factor_Correlations” przedstawiający korelację wartości próbek czynników pomiędzy różnymi konfiguracjami. Kliknij tutaj, aby pobrać ten plik.

Rycina uzupełniająca 3: Konfiguracja MOFA – wpływ ważenia widoków. Wynikowe wykresy wygenerowane przez skrypt „07_Compare_Models.ipynb” przy użyciu kilku różnych konfiguracji do uruchomienia modelu MOFA. (A) „03_MOFA_configs.csv”: Przykład różnych konfiguracji użytych do uruchomienia skryptu „03_Run_MOFA.ipynb”, określających parametr „weighting_of_views” jako „TRUE” (MI_v1_MOFA_weighted) lub „FALSE” (MI_v1_MOFA). „07_Comparison_configs.csv”: Przykład sposobu określania pliku wejściowego konfiguracji dla wykonania skryptu „07_Compare_Models.ipynb”. (B) „FIG07_Variance_Model_Comparison” przedstawiający całkowitą wariancję wyjaśnioną dla każdego widoku (oś y) dla różnych modeli we wszystkich czynnikach określonych w modelu. (C) „FIG07_Feature_Correlations” przedstawiający korelację wag czynników cech pomiędzy różnymi konfiguracjami. Kliknij tutaj, aby pobrać ten plik.

Rysunek uzupełniający 4: Efekt integracji multiomicznej – przy użyciu wyłącznie danych proteomicznych. Wzorce uzyskane za pomocą czynników latentnych przy zastosowaniu wyłącznie danych proteomicznych jako danych wejściowych. (A) FIG04_Factor_Association_Numerical_Features: Korelacja Pearsona wartości czynników ze zmiennymi klinicznymi (CRP, CK). (B) FIG04_Factor_Association_Categorical_Features: Wykres pudełkowy porównujący wartości czynników dla każdego punktu czasowego u pacjentów z ACS oraz w grupie kontrolnej. Kliknij tutaj, aby pobrać ten plik.

Plik uzupełniający 1: Supplementary_File_
Running_Pipeline_with_Exemplary_Data.
Opisy sposobu uruchomienia potoku analizy (pipeline) na przykładowych danych oraz oczekiwane wyniki znajdują się w dodatkowo dostarczonym pliku uzupełniającym. Prosimy kliknąć tutaj, aby pobrać ten plik.

Plik wideo uzupełniający 1: Nagranie ekranu z protokołem. Kliknij tutaj, aby pobrać ten plik.

Dyskusja

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

Autorzy deklarują brak konfliktu interesów.

Podziękowania

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

  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

Tagi

Nienadzorowana integracja danychsekwencjonowanie RNA pojedynczych komórekwieloomiczny przepływ pracyprofilowanie odpowiedzi immunologicznejodkrywanie procesów molekularnychproteomika osoczaanaliza danych o cytokinachwtórna analiza czynników