È necessario avere un abbonamento a JoVE per visualizzare questo. Accedi o inizia la tua prova gratuita.
Presentiamo un flusso di lavoro flessibile ed estendibile basato su Jupyter-lab per l'analisi non supervisionata di set di dati multi-omici complessi che combina diverse fasi di pre-elaborazione, stima del modello di analisi fattoriale multi-omica e diverse analisi a valle.
I meccanismi della malattia sono solitamente complessi e governati dall'interazione di diversi processi molecolari distinti. I set di dati complessi e multidimensionali sono una risorsa preziosa per generare maggiori informazioni su tali processi, ma l'analisi di tali set di dati può essere impegnativa a causa dell'elevata dimensionalità risultante, ad esempio, da diverse condizioni di malattia, punti temporali e aspetti omici che catturano il processo a diverse risoluzioni.
Qui, mostriamo un approccio per analizzare ed esplorare un set di dati multiomici così complesso in modo non supervisionato applicando l'analisi fattoriale multi-omica (MOFA) a un set di dati generato da campioni di sangue che catturano la risposta immunitaria nelle sindromi coronariche acute e croniche. Il set di dati è costituito da diversi saggi a diverse risoluzioni, tra cui dati di citochine a livello di campione, proteomica plasmatica e prime-seq dei neutrofili e dati di RNA-seq a singola cellula (scRNA-seq). Un'ulteriore complessità è aggiunta dalla misurazione di diversi punti temporali per paziente e di diversi sottogruppi di pazienti.
Il flusso di lavoro dell'analisi delinea come integrare e analizzare i dati in diverse fasi: (1) Pre-elaborazione e armonizzazione dei dati, (2) Stima del modello MOFA, (3) Analisi a valle. Il passaggio 1 illustra come elaborare le caratteristiche dei diversi tipi di dati, filtrare le funzionalità di bassa qualità e normalizzarle per armonizzare le loro distribuzioni per ulteriori analisi. Il passaggio 2 mostra come applicare il modello MOFA ed esplorare le principali fonti di varianza all'interno del set di dati in tutte le omiche e le funzionalità. La fase 3 presenta diverse strategie per l'analisi a valle dei pattern catturati, collegandoli alle condizioni patologiche e ai potenziali processi molecolari che governano tali condizioni.
Nel complesso, presentiamo un flusso di lavoro per l'esplorazione non supervisionata dei dati di set di dati multi-omici complessi per consentire l'identificazione dei principali assi di variazione composti da diverse caratteristiche molecolari che possono essere applicate anche ad altri contesti e set di dati multi-omici (inclusi altri saggi presentati nel caso d'uso esemplare).
I meccanismi della malattia sono solitamente complessi e governati dall'interazione di diversi processi molecolari distinti. Decifrare i complessi meccanismi molecolari che portano a malattie specifiche o governano l'evoluzione di una malattia è un compito di grande rilevanza medica in quanto potrebbe rivelare nuove intuizioni per la comprensione e il trattamento delle malattie.
I recenti progressi tecnologici consentono di misurare questi processi a una risoluzione più elevata (ad esempio, a livello di singola cellula) e a vari strati biologici (ad esempio, DNA, mRNA, accessibilità della cromatina, metilazione del DNA, proteomica) allo stesso tempo. Ciò porta alla crescente generazione di grandi set di dati biologici multidimensionali, che possono essere analizzati congiuntamente per generare maggiori informazioni sui processi sottostanti. Allo stesso tempo, combinare e analizzare le diverse fonti di dati in modo biologicamente significativo rimane un compito impegnativo1.
I diversi limiti tecnologici, i rumori e le gamme di variabilità tra le diverse omiche rappresentano una sfida. Ad esempio, i dati di sequenziamento dell'RNA a singola cellula (scRNA-seq) sono molto scarsi e spesso influenzati da grandi effetti tecnici o batch. Inoltre, lo spazio delle caratteristiche è spesso molto ampio, e varia da diverse migliaia di geni o proteine misurati, mentre le dimensioni del campione sono limitate. Ciò è ulteriormente complicato da disegni complessi, che potrebbero includere diverse condizioni patologiche, fattori confondenti, punti temporali e risoluzioni. Ad esempio, nel caso d'uso presentato, erano disponibili diversi tipi di dati a livello di singola cella o di campione (bulk). Oltre a ciò, i dati potrebbero essere incompleti e non tutte le misurazioni potrebbero essere disponibili per tutti i soggetti analizzati.
A causa di queste sfide, le diverse omiche e le caratteristiche incluse vengono spesso analizzate solo separatamente2 anche se l'esecuzione di un'analisi integrata non solo non può fornire un quadro completo del processo, ma i rumori biologici e tecnici di un'omica potrebbero anche essere compensati da altre omiche 3,4. Sono stati proposti diversi metodi per eseguire un'analisi integrata di dati multi-omici, inclusi metodi bayesiani, metodi basati su reti 5,6, deep learning multimodale7 e metodi di riduzione della dimensionalità tramite fattorizzazione matriciale 8,9. Per quest'ultimo, i risultati di un ampio studio di benchmarking10 hanno dimostrato che il metodo MOFA9 (analisi fattoriale multi-omica) è uno degli strumenti più adatti quando i dati devono essere collegati alle annotazioni cliniche.
Soprattutto in contesti complessi, i metodi di fattorizzazione di matrici non supervisionati sono un approccio utile per ridurre la complessità ed estrarre segnali condivisi e complementari da diverse fonti di dati e caratteristiche. Scomponendo lo spazio complesso in rappresentazioni latenti di rango inferiore, le principali fonti di varianza all'interno dei dati possono essere rapidamente esplorate e collegate a covariate note. Nel caso in cui lo stesso modello di variazione sia condiviso tra più caratteristiche (ad esempio, geni o proteine), questo può essere aggregato a pochi fattori mentre il rumore è ridotto. La regolarizzazione può essere utilizzata per aumentare la sparsità dei coefficienti del modello, il che rende l'approccio adatto in ambienti in cui lo spazio delle caratteristiche è ampio mentre il numero di campioni è limitatoa 9.
Questo protocollo presenta un flusso di lavoro di analisi flessibile che utilizza il modello MOFA per mostrare come esplorare rapidamente un complesso set di dati multi-omici e distillare i principali modelli di variazione che caratterizzano questo set di dati. Il flusso di lavoro è costituito da tre passaggi principali. Nella prima fase, la pre-elaborazione e l'armonizzazione dei dati, vengono presentate diverse strategie per la pre-elaborazione dei dati basate su diversi tipi di dati di input (scRNA-seq, proteomica, citochine, dati clinici). Il protocollo elabora il modo in cui elaborare le caratteristiche dei diversi set di dati di input, filtrare le funzionalità di bassa qualità e normalizzarle per armonizzare le loro distribuzioni. Mostriamo anche come queste decisioni di pre-elaborazione potrebbero influenzare i risultati a valle. Nella seconda fase, il modello MOFA viene applicato ai dati e la scomposizione della varianza risultante può essere utilizzata per valutare l'integrazione dei diversi set di dati. Il terzo passo mostra come collegare i fattori catturati alle covariate e scoprire i programmi molecolari che definiscono tali fattori. Con il flusso di lavoro presentato, siamo stati in grado di estrarre diversi fattori latenti legati alle covariate cliniche in un set di dati di pazienti affetti da sindromi coronariche e di identificare potenziali programmi immunitari multicellulari sottostanti da un precedente progetto11. Utilizzeremo questo set di dati qui, ma il protocollo può essere facilmente applicato ad altri contesti, comprese altre omici.
Il set di dati è costituito da campioni di pazienti con sindromi coronariche croniche stabili (CCS), sindromi coronariche acute (ACS) e un gruppo di controllo con coronarie sane (non CCS) (Figura 1). La SCA è causata dalla rottura della placca in CCS preesistente, che porta a un'interruzione acuta del flusso sanguigno al miocardio e a una conseguente lesione ischemica del cuore. Questa lesione provoca una risposta infiammatoria da parte del sistema immunitario seguita da una fase riparativa, che dura fino a diversi giorni dopo l'evento acuto12. Per essere in grado di caratterizzare questa risposta immunitaria per i pazienti con SCA, sono stati prelevati campioni di sangue in quattro diversi punti temporali: acuta (TP1); dopo ricanalizzazione (14 [± 8] h) (TP2); 60 [± 12] h dopo (TP3); prima della dimissione (6,5 [±1,5] giorni) (TP4) (Figura 1A). Per la CCS e i pazienti con coronarie sane, era disponibile un solo punto temporale- (TP0). Per tutti i pazienti e i punti temporali sono stati misurati diversi saggi basati sui campioni di sangue: marcatori clinici di infiammazione (Creatina-chinasi (CK), CK-MB, Tropolina, proteina C-reattiva (CRP)), scRNA-seq di cellule mononucleate del sangue periferico (PBMC), analisi delle citochine, proteomica plasmatica e dati prime-seq13 di neutrofili.
Figura 1: Set di dati di input multi-omici sull'infarto del miocardio. Set di dati di input: i dati analizzati includono campioni di sangue di pazienti (n = 62) con sindrome coronarica acuta (SCA), sindromi coronariche croniche (CCS) e pazienti con coronarie sane (non CCS). Per i pazienti con SCA sono stati inclusi campioni di sangue in quattro diversi punti temporali (TP1-4), per i pazienti con CCS e non CCS in un unico punto temporale (TP0). Ogni combinazione di pazienti e punti temporali viene trattata come un campione separato nell'analisi. Sui campioni sono stati misurati diversi test omici: esami del sangue clinici (n = 125), scRNA-seq (n = 121), proteomica del plasma (n = 119), test delle citochine (n = 127) e prime-seq dei neutrofili (n = 121). Successivamente, il protocollo descritto è stato applicato per integrare i dati in tutte le omiche ed esplorarli utilizzando il modello MOFA e ulteriori analisi a valle (analisi fattoriale, arricchimento del percorso). Clicca qui per visualizzare una versione più grande di questa figura.
Come input per il flusso di lavoro come presentato qui, prendiamo i conteggi grezzi dai dati scRNA-seq dopo l'elaborazione con cellranger e il controllo di qualità (QC) come, ad esempio, delineato nel tutorial di pre-elaborazione scanpy14 . Per l'annotazione del tipo di cella, abbiamo utilizzato la pipeline automatizzata Azimuth15 . I conteggi vengono quindi aggregati a livello di campione per ciascun tipo di cellula prendendo la media di tutte le cellule per ciascun campione e tipo di cellula (aggregazione pseudobulk). La proteomica del plasma è inclusa come intensità normalizzate e mediane, e per i neutrofili, prendiamo la conta degli esoni dell'identificatore molecolare unico umi (UMI) dal prime-seq. Sulle citochine e sui valori clinici, non è stato applicato alcun preprocessing precedente. Ulteriori dettagli sulla generazione di dati (sperimentali) sono descritti nel corrispondente manoscritto11. Poiché i risultati qui presentati si basano sull'utilizzo dell'annotazione automatica dell'azimut per i tipi di cellule nei dati scRNA-seq rispetto alla strategia basata su marcatori utilizzata nella pubblicazione di riferimento, i risultati qui presentati sono simili ma non esattamente gli stessi presentati nella pubblicazione. Nel manoscritto si può dimostrare che la strategia di annotazione del tipo di cellula non cambia i principali modelli e interpretazioni biologiche dell'analisi, ma piccoli cambiamenti nei valori esatti risultanti dal modello possono variare. Nel complesso, i dati di input erano un complesso set di dati multidimensionali che comprendeva diversi punti temporali e livelli di misurazione (singole cellule vs. bulk) di oltre 10.000 diverse caratteristiche (geni, proteine, valori clinici). Una rigorosa strategia di pre-elaborazione e armonizzazione dei dati seguita dall'analisi MOFA si è dimostrata uno strumento utile e rapido per esplorare i dati ed estrarre il programma immunitario pertinente. Ogni punto temporale e combinazione di pazienti viene trattato come un campione indipendente nell'analisi MOFA. Ogni tipo di dati e tipo di cella è considerato una vista separata nell'analisi MOFA.
Questo protocollo fornisce istruzioni per la preparazione dei dati di input per il flusso di lavoro, l'esecuzione dei diversi passaggi del flusso di lavoro, la personalizzazione delle configurazioni, l'interpretazione delle cifre risultanti e la regolazione iterativa delle configurazioni in base alle interpretazioni. Una panoramica delle diverse fasi del protocollo, dei set di dati di input richiesti in ogni fase e delle cifre e dei set di dati risultanti è fornita dalla panoramica del flusso di lavoro tecnico (Figura 2).
Figura 2: Panoramica del flusso di lavoro tecnico. Cenni sul flusso di lavoro per l'analisi del dataset multi-omico. I diversi elementi sono evidenziati da colori e simboli diversi. I Jupyter Notebook appartenenti alla fase di pre-elaborazione e armonizzazione dei dati (1) sono colorati in blu. I Jupyter Notebook appartenenti al passaggio 'MOFA Model' (2) sono colorati in arancione. I Jupyter Notebook appartenenti alla fase "Analisi a valle" (3) sono colorati in verde. Un Jupyter Notebook da utilizzare per il confronto dei risultati è colorato in giallo. I file di configurazione in cui è possibile modificare i parametri per l'esecuzione del flusso di lavoro sono evidenziati in viola. I set di dati di input necessari per eseguire il flusso di lavoro sono indicati dal simbolo del set di dati ed evidenziati in grigio. Tutti gli output delle figure generati durante l'esecuzione del flusso di lavoro sono indicati dal simbolo della lente di ingrandimento. I set di dati generati durante l'esecuzione del flusso di lavoro sono indicati come tabelle. In generale, il flusso di lavoro viene eseguito in sequenza: (1) La pre-elaborazione e l'armonizzazione dei dati consiste in due fasi: prima generazione di una tabella pseudobulk basata sui dati di input scRNA-seq (01_Prepare_Pseudobulk) e successiva integrazione e normalizzazione di questi dati insieme a tutti gli altri input a livello di campione (bulk) (02_Integrate_and_Normalize_Data). All'interno di questo passaggio, tramite i file di configurazione, è possibile configurare separatamente per ciascun set di dati quali dei passaggi di pre-elaborazione e normalizzazione indicati (ad esempio, il filtro di esempio) devono essere applicati. (2) «Modello MOFA»: esegue il modello MOFA sull'input generato nella prima fase con le configurazioni specificate nel file di configurazione (03_MOFA_configs.csv) (3) «Analisi a valle»: consiste in tre diversi quaderni che possono essere eseguiti indipendentemente l'uno dall'altro per generare informazioni sui risultati MOFA generati e associarli ai metadati campione (covariate) forniti come input tramite il file «Meta Data.csv campione». (4) «Confronto tra modelli»: è una piccola fase separata che può essere utilizzata per confrontare diversi modelli generati nella fase 2. Clicca qui per visualizzare una versione più grande di questa figura.
Il flusso di lavoro è costituito da diversi Jupyter Notebook scritti in R e Python (la conoscenza del linguaggio R e Python non è necessaria per eseguire il flusso di lavoro, ma potrebbe essere utile nel caso in cui vengano visualizzati errori). In vari passaggi del protocollo, i parametri vengono modificati tramite file di configurazione (file '.csv' contenenti il suffisso '_Configs' nel nome). All'interno del protocollo, delineiamo solo i parametri che devono essere modificati a partire dalla configurazione predefinita.
È possibile modificare anche diversi altri parametri, ad esempio per personalizzare la pre-elaborazione. Una documentazione di questi parametri e spiegazioni è fornita nel file 'Documentation_Config_Parameter', che è incluso nel repository scaricato.
1. Preparativi: configurazione tecnica e installazione
NOTA: Per eseguire questo programma, avere wget, git e Apptainer preinstallati sul dispositivo. Una guida per l'installazione di Apptainer su diversi sistemi (Linux, Windows, Mac) è disponibile qui: https://apptainer.org/docs/admin/main/installation.html. Le informazioni sull'installazione su git possono essere trovate qui: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git. A seconda delle dimensioni dei diversi set di dati di input, si consiglia di eseguire il flusso di lavoro su un computer adatto (16 CPU, 64 GB di memoria). Un smoke test con i dati di esempio forniti può essere eseguito sul computer locale. Le istruzioni e gli output attesi dall'esecuzione del protocollo sui dati di esempio sono forniti nel file supplementare 1. Fare riferimento al file video supplementare 1 per i passaggi importanti del protocollo che vengono eseguiti sul set di dati descritto sopra.
2. Inizializzazione e preparazione dei dati
Figura 3: Inserimento e configurazione dei dati. Per l'esecuzione del flusso di lavoro, tutti i dati devono essere archiviati in una cartella input_data specificata. Per ogni set di dati di input deve essere fornito un file separato. I dati di una singola cella devono essere forniti come .h5ad contenente l'annotazione della cella sulla cluster_id (risultante, ad esempio, dai precedenti passaggi di annotazione del tipo di cella) e una colonna sample_id (che identifica in modo univoco ogni campione separato che deve essere analizzato). Tutti gli altri set di dati di input devono essere forniti in formato ".csv", compresa una colonna che specifichi il sample_id (corrispondente alla colonna corrispondente dei dati a cella singola) e le caratteristiche da utilizzare nell'analisi MOFA in tutte le altre colonne. Clicca qui per visualizzare una versione più grande di questa figura.
Figura 4: File di configurazione di Jupyter-lab. Durante l'esecuzione del flusso di lavoro, le modifiche ai parametri (ad esempio, la regolazione delle opzioni di filtraggio, ecc.) vengono specificate tramite i file di configurazione ".csv". All'interno del repository clonato, sono inclusi i file di configurazione predefiniti per ogni passaggio. Possono essere modificati direttamente nella console jupyter-lab, in modo simile a un foglio di calcolo. Clicca qui per visualizzare una versione più grande di questa figura.
Figura 5: script Jupyter-notebooks. Il flusso di lavoro completo è costituito da una serie di notebook Jupyter che verranno eseguiti in sequenza dopo la modifica dei file di configurazione corrispondenti. Facendo doppio clic sul taccuino Jupyter sul lato sinistro, il file corrispondente verrà aperto sul lato destro. L'esecuzione completa del file può essere avviata con il pulsante evidenziato in alto. Clicca qui per visualizzare una versione più grande di questa figura.
3. Pre-elaborazione e armonizzazione dei dati
Figura 6: Pre-elaborazione e armonizzazione dei dati. Un output della fase '01_Prepare_Pseudobulk' è il grafico 'Fig01_Amount_of_Cells_Overview'. Qui, per ogni cluster_id (asse y che indica il tipo di cella dai precedenti passaggi di annotazione del tipo di cella), viene fornito il numero di celle per campione ("sample_id"). All'interno dei risultati presentati, i tipi di cellule con una bassa quantità di cellule per campione sono esclusi dall'analisi successiva (indicata dal barrato). Clicca qui per visualizzare una versione più grande di questa figura.
4. Esecuzione di MOFA
5. Analisi a valle
6. Confronto tra diverse configurazioni e versioni (Figura supplementare 1, Figura supplementare 2, Figura supplementare 3, Figura supplementare 4)
7. Estensione del flusso di lavoro: aggiunta di altri parametri e configurazioni
NOTA: Oltre ai parametri attualmente configurabili nei file di configurazione, potrebbero essere incluse altre regolazioni nel codice o altri parametri. Ad esempio, il modello MOFA stesso offre diversi altri parametri di addestramento17 che possono essere modificati direttamente nel codice o resi regolabili tramite i file di configurazione. La sezione successiva del protocollo delineerà un esempio di come eseguire questa operazione per ulteriori parametri di addestramento del modello MOFA. Per questa parte è richiesta la conoscenza della programmazione R.
Dopo la corretta esecuzione del flusso di lavoro, vengono generate diverse tabelle e figure, come indicato nella Figura 2. Le figure vengono inserite nella cartella /figures (Figura 6, Figura 7, Figura 8, Figura supplementare 1, Figura supplementare 2, Figura supplementare 3, Figura supplementar...
Con il protocollo delineato, viene presentato un flusso di lavoro modulare ed estendibile basato su Jupyter-notebook che può essere utilizzato per esplorare rapidamente un complesso set di dati multi-omici. Le parti principali del flusso di lavoro consistono nella parte di pre-elaborazione e armonizzazione dei dati (che offre diversi passaggi standard per il filtraggio e la normalizzazione dei dati), la stima del modello MOFA9 e alcune analisi esemplari a valle. ...
Gli autori dichiarano di non avere conflitti di interesse.
C.L. è supportato dall'Associazione Helmholtz nell'ambito della scuola di ricerca congiunta "Munich School for Data Science - MUDS".
Name | Company | Catalog Number | Comments |
Apptainer | NA | NA | https://apptainer.org/docs/admin/main/installation.html |
Compute server or workstation or cloud (Linux, Mac or Windows environment). Depending on the size of the different input datasets we recommend running the workflow on a suitable machine (in our setting we use: 16 CPU, 64GB Memory) | Any manufacturer | 16 CPU, 64GB Memory | Large Memory is only required for the processing of the raw single cell data. After preprocessing the later analysis steps can also be performed on regular desktop or laptop computers |
git | NA | NA | https://git-scm.com/book/en/v2/Getting-Started-Installing-Git |
GitHub | GitHub | NA | https://github.com/heiniglab/mofa_workflow |
Richiedi autorizzazione per utilizzare il testo o le figure di questo articolo JoVE
Richiedi AutorizzazioneEsplora altri articoli
This article has been published
Video Coming Soon