Artículo de método

Aplicación del análisis factorial multiómico no supervisado para descubrir patrones de variación y procesos moleculares relacionados con las enfermedades cardiovasculares

DOI:

10.3791/66659

20 de septiembre de 2024

En este artículo

Resumen

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

Presentamos un flujo de trabajo flexible y extensible basado en Jupyter-lab para el análisis no supervisado de conjuntos de datos multiómicos complejos que combina diferentes pasos de preprocesamiento, estimación del modelo de análisis factorial multiómico y varios análisis posteriores.

Resumen

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

Los mecanismos de las enfermedades suelen ser complejos y se rigen por la interacción de varios procesos moleculares distintos. Los conjuntos de datos complejos y multidimensionales son un recurso valioso para generar más información sobre esos procesos, pero el análisis de dichos conjuntos de datos puede ser un desafío debido a la alta dimensionalidad que resulta, por ejemplo, de diferentes condiciones de enfermedades, puntos de tiempo y ómicas que capturan el proceso a diferentes resoluciones.

Aquí, mostramos un enfoque para analizar y explorar un conjunto de datos multiómicos tan complejo de manera no supervisada mediante la aplicación del análisis factorial multiómico (MOFA) a un conjunto de datos generado a partir de muestras de sangre que capturan la respuesta inmune en síndromes coronarios agudos y crónicos. El conjunto de datos consta de varios ensayos con diferentes resoluciones, incluidos datos de citocinas a nivel de muestra, proteómica de plasma y secuenciación principal de neutrófilos, y datos de secuenciación de ARN de una sola célula (scRNA-seq). Se añade más complejidad al tener varios puntos de tiempo diferentes medidos por paciente y varios subgrupos de pacientes.

El flujo de trabajo de análisis describe cómo integrar y analizar los datos en varios pasos: (1) Preprocesamiento y armonización de datos, (2) Estimación del modelo MOFA, (3) Análisis posterior. En el paso 1 se describe cómo procesar las características de los diferentes tipos de datos, filtrar las características de baja calidad y normalizarlas para armonizar sus distribuciones para un análisis posterior. El paso 2 muestra cómo aplicar el modelo MOFA y explorar las principales fuentes de varianza dentro del conjunto de datos en todas las ómicas y características. En el paso 3 se presentan varias estrategias para el análisis posterior de los patrones capturados, vinculándolos a las condiciones de la enfermedad y a los posibles procesos moleculares que gobiernan esas condiciones.

En general, presentamos un flujo de trabajo para la exploración de datos no supervisada de conjuntos de datos multiómicos complejos para permitir la identificación de los principales ejes de variación compuestos por diferentes características moleculares que también se pueden aplicar a otros contextos y conjuntos de datos multiómicos (incluidos otros ensayos presentados en el caso de uso ejemplar).

Introducción

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

Los mecanismos de las enfermedades suelen ser complejos y se rigen por la interacción de varios procesos moleculares distintos. Descifrar los complejos mecanismos moleculares que conducen a enfermedades específicas o gobiernan la evolución de una enfermedad es una tarea de gran relevancia médica, ya que podría revelar nuevos conocimientos para la comprensión y el tratamiento de las enfermedades.

Los avances tecnológicos recientes permiten medir esos procesos en una resolución más alta (por ejemplo, a nivel de una sola célula) y en varias capas biológicas (por ejemplo, ADN, ARNm, accesibilidad a la cromatina, metilación del ADN, proteómica) al mismo tiempo. Esto conduce a la generación cada vez mayor de grandes conjuntos de datos biológicos multidimensionales, que se pueden analizar conjuntamente para generar más información sobre los procesos subyacentes. Al mismo tiempo, combinar y analizar las diferentes fuentes de datos de una manera biológicamente significativa sigue siendo una tarea desafiante1.

Los diferentes límites tecnológicos, ruidos y rangos de variabilidad entre las diferentes ómicas plantean un desafío. Por ejemplo, los datos de secuenciación de ARN de una sola célula (scRNA-seq) son muy escasos y, a menudo, están influenciados por grandes efectos técnicos o de lotes. Además, el espacio de características suele ser muy grande, abarcando varios miles de genes o proteínas medidos, mientras que los tamaños de muestra son limitados. Esto se complica aún más por los diseños complejos, que pueden incluir varias condiciones de enfermedad, factores de confusión, puntos de tiempo y resoluciones. Por ejemplo, en el caso de uso presentado, había diferentes tipos de datos disponibles a nivel de una sola célula o de muestra (a granel). Además de eso, los datos pueden estar incompletos y es posible que no todas las mediciones estén disponibles para todos los sujetos analizados.

Debido a estos desafíos, las diferentes ómicas y las características incluidas a menudo se analizan solo por separado2, aunque la realización de un análisis integrado no solo puede proporcionar una imagen completa del proceso, sino que los ruidos biológicos y técnicos de una ómica también pueden ser compensados por otras ómicas 3,4. Se han propuesto varios métodos diferentes para realizar un análisis integrado de datos multiómicos, incluidos los métodos bayesianos, los métodos basados en redes 5,6, el aprendizaje profundo multimodal7 y los métodos de reducción de dimensionalidad mediante factorización de matrices 8,9. Para este último, los resultados de un gran estudio de benchmarking10 han demostrado que el método MOFA9 (análisis factorial multiómico) es una de las herramientas más adecuadas cuando los datos deben vincularse a las anotaciones clínicas.

Especialmente en entornos complejos, los métodos de factorización de matrices no supervisados son un enfoque útil para reducir la complejidad y extraer señales compartidas y complementarias de diferentes fuentes de datos y características. Al descomponer el espacio complejo en representaciones latentes de rango inferior, las principales fuentes de varianza dentro de los datos se pueden explorar rápidamente y vincular a covariables conocidas. En caso de que el mismo patrón de variación se comparta a través de múltiples características (por ejemplo, genes o proteínas), esto puede agregarse a unos pocos factores mientras se reduce el ruido. La regularización se puede utilizar para aumentar la dispersión de los coeficientes del modelo, lo que hace que el enfoque sea adecuado en entornos en los que el espacio de características es grande mientras que el número de muestras es limitado9.

Este protocolo presenta un flujo de trabajo de análisis flexible que utiliza el modelo MOFA para mostrar cómo explorar rápidamente un conjunto de datos multiómicos complejo y destilar los principales patrones de variación que caracterizan a este conjunto de datos. El flujo de trabajo consta de tres pasos principales. En el primer paso, Preprocesamiento y armonización de datos, se presentan diferentes estrategias para el preprocesamiento de datos basadas en diferentes tipos de datos de entrada (scRNA-seq, proteómica, citocinas, datos clínicos). El protocolo explica cómo procesar las características de los diferentes conjuntos de datos de entrada, filtrar las características de baja calidad y normalizarlas para armonizar sus distribuciones. También mostramos cómo esas decisiones de preprocesamiento pueden afectar a los resultados posteriores. En el segundo paso, se aplica el modelo MOFA a los datos, y la descomposición de la varianza resultante se puede utilizar para evaluar la integración de los diferentes conjuntos de datos. El tercer paso muestra cómo vincular los factores capturados con las covariables y descubrir los programas moleculares que definen esos factores. Con el flujo de trabajo presentado, pudimos extraer varios factores latentes vinculados a covariables clínicas en un conjunto de datos de pacientes que padecían síndromes coronarios e identificar posibles programas inmunes multicelulares subyacentes de un proyecto anterior11. Usaremos este conjunto de datos aquí, pero el protocolo se puede aplicar fácilmente a otros contextos, incluidas otras ómicas.

El conjunto de datos consta de muestras de pacientes con síndromes coronarios crónicos (SCC) estables, síndromes coronarios agudos (SCA) y un grupo de control con coronarias sanas (no SCC) (Figura 1). El SCA es causado por la ruptura de la placa en el CCS preexistente, lo que conduce a una interrupción aguda del flujo sanguíneo al miocardio y una lesión isquémica posterior del corazón. Esta lesión provoca una respuesta inflamatoria del sistema inmune seguida de una fase reparadora, que dura hasta varios días después del evento agudo12. Para poder caracterizar esta respuesta inmunitaria en los pacientes con SCA, se tomaron muestras de sangre en cuatro momentos diferentes: agudo (TP1); después de la recanalización (14 [± 8] h) (TP2); 60 [± 12] h después (TP3); antes del alta (6,5 [±1,5] días) (TP4) (Figura 1A). Para el CCS y los pacientes con coronarias sanas, solo se disponía de un punto de tiempo: (TP0). Para todos los pacientes y puntos temporales se midieron diferentes ensayos basados en las muestras de sangre: marcadores clínicos de inflamación (creatina-quinasa (CK), CK-MB, TROPONINA, PROTEÍNA C reactiva (PCR)), scRNA-seq de células mononucleares de sangre periférica (PBMC), análisis de citocinas, proteómica plasmática y datos prime-seq13 de neutrófilos.

figure-introduction-1
Figura 1: Conjunto de datos de entrada multiómica de infarto de miocardio. Conjunto de datos de entrada: Los datos analizados incluyen muestras de sangre de pacientes (n = 62) con síndrome coronario agudo (SCA), síndromes coronarios crónicos (SCC) y pacientes con coronarias sanas (no SCC). Para los pacientes con SCA, se incluyeron muestras de sangre en cuatro puntos de tiempo diferentes (TP1-4), para los pacientes con CCS y no CCS en un solo punto de tiempo (TP0). Cada combinación de paciente y punto de tiempo se trata como una muestra separada en el análisis. Se midieron diferentes ensayos ómicos en las muestras: análisis clínicos de sangre (n = 125), scRNA-seq (n = 121), plasma-proteómica (n = 119), ensayo de citocinas (n = 127) y neutrophil prime-seq (n = 121). Posteriormente, se aplicó el protocolo descrito para integrar los datos en todas las ómicas y explorarlos utilizando el modelo MOFA y análisis posteriores (análisis factorial, enriquecimiento de vías). Haga clic aquí para ver una versión más grande de esta figura.

Como entrada para el flujo de trabajo que se presenta aquí, tomamos recuentos brutos de los datos de scRNA-seq después del procesamiento con cellranger y el control de calidad (QC) como, por ejemplo, se describe en el tutorial de preprocesamiento de scanpy14 . Para la anotación del tipo de celda, utilizamos la canalización automatizada Azimut15 . A continuación, los recuentos se agregan a nivel de muestra para cada tipo de célula tomando la media de todas las células de cada muestra y tipo de célula (agregación pseudomasiva). La proteómica del plasma se incluye como intensidades normalizadas y centradas en la mediana, y para los neutrófilos, tomamos los recuentos de exones del identificador molecular único (UMI) de la secuencia principal. Sobre citocinas y valores clínicos, no se ha aplicado ningún preprocesamiento previo. En el manuscrito correspondiente11 se describen más detalles sobre la generación de datos (experimentales). Dado que los resultados presentados aquí se basan en el uso de la anotación de acimut automatizada para los tipos de células en los datos de scRNA-seq en comparación con la estrategia basada en marcadores que se utilizó en la publicación a la que se hace referencia, los resultados presentados aquí son similares, pero no exactamente iguales a los presentados en la publicación. En el manuscrito se pudo demostrar que la estrategia de anotación del tipo de celda no cambia los patrones principales y las interpretaciones biológicas del análisis, pero pequeños cambios en los valores exactos resultantes del modelo pueden variar. En general, los datos de entrada eran un conjunto de datos complejo y multidimensional que incluía diferentes puntos de tiempo y niveles de medición (células individuales frente a graneles) de más de 10.000 características diferentes (genes, proteínas, valores clínicos). Se ha demostrado que una estricta estrategia de preprocesamiento y armonización de datos seguida por el análisis MOFA es una herramienta útil y rápida para explorar los datos y extraer el programa inmunológico relevante. Cada combinación de punto de tiempo y paciente se trata como una muestra independiente en el análisis MOFA. Cada tipo de datos y tipo de celda se considera una vista separada en el análisis MOFA.

Este protocolo proporciona instrucciones para preparar los datos de entrada para el flujo de trabajo, ejecutar los diferentes pasos del flujo de trabajo, personalizar las configuraciones, interpretar las cifras resultantes y ajustar iterativamente las configuraciones en función de las interpretaciones. En la descripción general del flujo de trabajo técnico (Figura 2) se proporciona una descripción general de los diferentes pasos del protocolo, los conjuntos de datos de entrada necesarios en cada paso y las figuras y conjuntos de datos resultantes.

figure-introduction-2
Figura 2: Descripción general del flujo de trabajo técnico. Esquema del flujo de trabajo para el análisis del conjunto de datos multiómicos. Los diferentes elementos están resaltados por diferentes colores y símbolos. Los Jupyter Notebooks que pertenecen al paso Preprocesamiento y armonización de datos (1) están coloreados en azul. Los Jupyter Notebooks que pertenecen al paso 'Modelo MOFA' (2) están coloreados en naranja. Los Jupyter Notebooks que pertenecen al paso "Análisis descendente" (3) están coloreados en verde. Un cuaderno de Jupyter Notebook que se usará para comparar los resultados está coloreado en amarillo. Los archivos de configuración donde se pueden modificar los parámetros para la ejecución del flujo de trabajo se resaltan en púrpura. Los conjuntos de datos de entrada necesarios para ejecutar el flujo de trabajo se indican mediante el símbolo del conjunto de datos y se resaltan en gris. Todas las salidas de figuras que se generan durante la ejecución del flujo de trabajo se indican con el símbolo de lupa. Los conjuntos de datos generados durante la ejecución del flujo de trabajo se indican como tablas. En general, el flujo de trabajo se ejecuta secuencialmente: (1) El preprocesamiento y la armonización de datos consta de dos pasos: la primera generación de una tabla pseudomasiva basada en los datos de entrada scRNA-seq (01_Prepare_Pseudobulk) y la posterior integración y normalización de estos datos junto con todas las demás entradas de nivel de muestra (masivas) (02_Integrate_and_Normalize_Data). Dentro de este paso, a través de los archivos de configuración, es posible configurar para cada conjunto de datos por separado cuál de los pasos de preprocesamiento y normalización indicados (por ejemplo, filtro de muestra) se debe aplicar. (2) 'Modelo MOFA': ejecuta el modelo MOFA en la entrada generada del primer paso con las configuraciones especificadas en el archivo de configuración (03_MOFA_configs.csv) (3) 'Análisis descendente': consta de tres cuadernos diferentes que pueden ejecutarse independientemente entre sí para generar información sobre los resultados MOFA generados y asociarlos con metadatos de muestra (covariables) proporcionados como entrada a través del archivo 'Sample Meta Data.csv'. (4) "Comparación de modelos": es un pequeño paso separado que se puede utilizar para comparar diferentes modelos generados en el paso 2. Haga clic aquí para ver una versión más grande de esta figura.

El flujo de trabajo consta de varios Jupyter Notebooks escritos en R y Python (no se requiere conocimiento del lenguaje R y Python para ejecutar el flujo de trabajo, pero puede ser útil en caso de que aparezcan errores). En varios pasos del protocolo, los parámetros se modifican a través de archivos de configuración (archivos '.csv' que contienen el sufijo '_Configs' en el nombre). Dentro del protocolo, solo describimos los parámetros que deben cambiarse a partir de la configuración predeterminada.

También se pueden cambiar otros parámetros, por ejemplo, para personalizar el preprocesamiento. Una documentación de estos parámetros y explicaciones se proporciona en el archivo 'Documentation_Config_Parameter', que se incluye en el repositorio descargado.

Protocolo

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

1. Preparativos: Configuración técnica e instalación

NOTA: Para ejecutar este programa, tenga wget, git y Apptainer preinstalados en el dispositivo. Aquí se proporciona una guía para instalar Apptainer en diferentes sistemas (Linux, Windows, Mac): https://apptainer.org/docs/admin/main/installation.html. La información de instalación de git se puede encontrar aquí: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git. En función del tamaño de los diferentes conjuntos de datos de entrada, se recomienda ejecutar el flujo de trabajo en un equipo adecuado (16 CPU, 64 GB de memoria). Una prueba de humo con los datos de ejemplo proporcionados se puede ejecutar en la máquina local. Las instrucciones y los resultados esperados de la ejecución del protocolo en los datos de ejemplo se proporcionan en el Archivo Suplementario 1. Consulte el Archivo de video complementario 1 para conocer los pasos importantes del protocolo que se ejecutan en el conjunto de datos descrito anteriormente.

  1. Abra la consola y elija o cree una carpeta donde se almacenarán todo el código de análisis y las salidas. Navegue a la carpeta escribiendo el comando: cd path_to_folder en el terminal.
  2. Descargue o clone el repositorio de código de Github (https://github.com/heiniglab/mofa_workflow) o escribiendo git clone https://github.com/heiniglab/mofa_workflow.git en la ventana del terminal.
  3. Descargue la imagen que contiene todas las instalaciones necesarias de Zenodo escribiendo wget https://zenodo.org/records/11192947/files/mofa_image.sif en la ventana del terminal.
  4. Genere una carpeta en la que se almacenarán todos los datos de los resultados escribiendo mkdir results en la ventana del terminal.
  5. Genere una carpeta en la que se agregarán todos los datos de entrada que se utilizarán en el análisis escribiendo mkdir input_data en la ventana del terminal.
  6. Ejecute el contenedor que iniciará una sesión de JupyterLab escribiendo el siguiente comando en el terminal: apptainer run mofa_image.sif. Copie la URL devuelta por el comando en el navegador, lo que abrirá una sesión de Jupyter-lab (puede encontrar más información sobre Jupyter-lab en la documentación del software16).
    NOTA: Cuando el flujo de trabajo se ejecuta localmente en una computadora portátil, se recomienda utilizar el comando apptainer exec mofa_image.sif jupyter-lab en su lugar, que devolverá directamente una dirección de host local. En caso de que el contenedor se ejecute dentro de un entorno de computación en clúster, puede ser necesario configurar el reenvío de puertos, lo que se puede hacer a través de ssh.

2. Inicialización y preparación de datos

  1. En la sesión de Jupyter-Lab, use el menú de navegación del lado izquierdo. Navegue a la carpeta input_data haciendo doble clic en input_data.
  2. Copie todos los conjuntos de datos que se utilizarán como entrada para el análisis en el directorio input_data mediante la función de arrastrar y soltar. Arrastre el archivo desde la carpeta en la que se encuentra actualmente y suéltelo en la sesión de Jupyter-lab en el área debajo de la carpeta input_data.
    NOTA: Todos los conjuntos de datos deben estar en formato .csv o .h5ad (en el caso de datos de una sola celda). Todos los archivos .csv deben contener una columna sample_id coincidente (se deben usar identificadores idénticos en todos los conjuntos de datos). Todas las demás columnas se usarán como características. Dentro del archivo h5ad-, la anotación de celda debe contener dos identificadores que especifiquen el sample_id y el cluster_id. Estos se utilizarán para la agregación y la coincidencia. Los conjuntos de datos ómicos en otros formatos deben convertirse al formato .csv especificado antes de su uso (Figura 3). Los conjuntos de datos scRNA-seq proporcionados en formato .h5seurat podrían convertirse a .h5ad ejecutando el Jupyter-notebook: 00_Data_Conversion.ipynb.
  3. Navegue a la carpeta de configuraciones haciendo clic en el símbolo de la carpeta y, a continuación, haga doble clic en las carpetas mofa_workflow, scripts y configuraciones. Dentro de la carpeta, abra el archivo Data_configs.csv haciendo doble clic en él.
  4. En la columna de valor , agregue las rutas de acceso a las carpetas de las carpetas input_data (data_path) y resultados (result_path). Agregue un nombre que se agregará como una extensión de archivo a todos los archivos guardados en la columna de valor para el configuration_name (este protocolo se utilizó MI_v1 [Infarto de miocardio versión 1]) (Figura 4).
  5. Guarde los cambios haciendo clic en Archivo > Guardar archivo CSV en el menú de la parte superior.
  6. Utilice el menú de navegación del lado izquierdo para navegar a la carpeta de scripts haciendo clic en scripts. Abra el cuaderno de inicialización haciendo doble clic en 00_Configuration_Update.ipynb. Ejecute el script haciendo clic en el botón Reiniciar kernel y ejecutar todas las celdas en la parte superior y haciendo clic en Reiniciar en la ventana emergente (Figura 5).

figure-protocol-1
Figura 3: Entrada de datos y configuración. Para la ejecución del flujo de trabajo, todos los datos deben almacenarse en una carpeta input_data especificada. Para cada conjunto de datos de entrada, se debe proporcionar un archivo independiente. Los datos de una sola celda deben proporcionarse como .h5ad que contenga una anotación de celda en el cluster_id (resultante, por ejemplo, de pasos anteriores de anotación de tipo de celda) y una columna de sample_id (que identifique de manera única cada muestra separada que debe analizarse). Todos los demás conjuntos de datos de entrada deben proporcionarse en formato «.csv», incluida una columna que especifique la sample_id (que coincida con la columna correspondiente de los datos de una sola celda) y las características que se utilizarán en el análisis del MOFA en todas las demás columnas. Haga clic aquí para ver una versión más grande de esta figura.

figure-protocol-2
Figura 4: Archivos de configuración de Jupyter-lab. Durante la ejecución del flujo de trabajo, los cambios en los parámetros (por ejemplo, ajuste de las opciones de filtrado, etc.) se especifican a través de archivos de configuración '.csv'. Dentro del repositorio clonado, se incluyen los archivos de configuración predeterminados para cada paso. Se pueden editar directamente en la consola de jupyter-lab, de forma similar a una hoja de cálculo. Haga clic aquí para ver una versión más grande de esta figura.

figure-protocol-3
Figura 5: Scripts de Jupyter-notebooks. El flujo de trabajo completo consta de una serie de cuadernos de Jupyter Notebook que se ejecutarán secuencialmente después de que se hayan modificado los archivos de configuración correspondientes. Al hacer doble clic en el cuaderno de Jupyter Notebook en el lado izquierdo, se abrirá el archivo correspondiente en el lado derecho. La ejecución completa del archivo se puede iniciar con el botón resaltado en la parte superior. Haga clic aquí para ver una versión más grande de esta figura.

3. Pretratamiento y armonización de datos

  1. Preprocesamiento: convierta los datos sc en pseudobulk.
    NOTA: Este paso solo debe ejecutarse si se utilizan datos de una sola celda en el análisis.
    1. Utilice el menú de navegación del lado izquierdo para navegar a la carpeta de configuraciones haciendo doble clic en configuración. Abra el archivo 01_Preprocessing_SC_Data.csv haciendo doble clic. Compruebe los valores rellenados automáticamente en el archivo y, si es necesario, ajuste los valores de la columna data_name para que se correspondan con los nombres de archivo de los conjuntos de datos de una sola celda en la carpeta input_data que se utilizará para el análisis.
      NOTA: De forma predeterminada, todos los nombres de los archivos .h5ad en la carpeta de datos de entrada se agregarán al archivo de configuración en el script de inicialización. Si algunos de los conjuntos de datos no se deben utilizar para el análisis, se pueden eliminar aquí.
    2. Guarde los cambios realizados haciendo clic en Archivo > Guardar archivo CSV en el menú de la parte superior.
    3. Utilice el menú de navegación del lado izquierdo para navegar a la carpeta de scripts haciendo clic en scripts. Abra el bloc de notas 01_Prepare_Pseudobulk.ipynb haciendo doble clic en él. Ejecute el script haciendo clic en el botón Reiniciar kernel y ejecutar todas las celdas en la parte superior y haciendo clic en Reiniciar en la ventana emergente.
    4. Utilice el menú de navegación del lado izquierdo para navegar a la carpeta de figuras haciendo doble clic primero en figuras y luego en 01_figures. Abra el FIG01_Amount_of_Cells_overview de gráfico recién generado haciendo doble clic en él.
      NOTA: La ejecución del bloc de notas puede tardar varios minutos.  Cuando el bloc de notas se haya ejecutado correctamente, aparecerá una ventana emergente y el archivo FIG01_Amount_of_Cells_Overview será actualizado por el bloc de notas o generado de nuevo. La columna Última modificación puede indicar cuándo se generó el archivo para evaluar si se trata de un archivo nuevo o antiguo.
    5. Investigue la gráfica para identificar grupos de tipos de células con un número muy bajo de células por muestra. Anote los nombres de esos cluster_ids excluirlos en los pasos siguientes (Figura 6).
    6. Utilice el menú de navegación del lado izquierdo para volver a la carpeta de configuraciones haciendo clic en ... y luego haciendo doble clic en configuraciones. Abra el archivo 02_Preprocessing_Configs_SC.csv haciendo doble clic en él.
    7. Compruebe los valores de las columnas configuration_name y data_name y ajústelos si es necesario.
      NOTA: Dentro del script de inicialización, esos valores se rellenan previamente con todos los nombres de los archivos .h5ad en la carpeta de datos de entrada y el valor de configuration_name establecido anteriormente en el archivo Data_Configs.csv . En caso de que los archivos deban excluirse del análisis o se deba utilizar otra extensión para los nombres de archivo, esto se puede ajustar aquí.
    8. Ajuste el valor de la columna cell_type_exclusion y agregue todos los cluster_id que se hayan identificado para excluir en el paso anterior separados por ','.
    9. Guarde los cambios haciendo clic en Archivo > Guardar archivo CSV en la barra de navegación de la parte superior.
  2. Preprocesamiento: armonice e integre otras fuentes de datos ómicos.
    1. Abra el archivo 02_Preprocessing_Configs.csv haciendo doble clic sobre él y ajuste la configuración de preprocesamiento para cada uno de los conjuntos de datos que se incluirán y se almacena en la carpeta data_input (una fila por conjunto de datos).
    2. Compruebe los valores de las columnas configuration_name y data_name y ajústelos si es necesario.
    3. Ajuste los demás parámetros de las columnas en consecuencia, en función de los pasos de preprocesamiento que se deban aplicar.
      NOTA: Los valores predeterminados se agregan para cada conjunto de datos que se encuentra dentro de la carpeta input_dataset, pero no son específicos de los tipos de datos individuales de los datos. Por lo tanto, serán necesarios ajustes. En el archivo de Documentation_Config_Parameter.doc se proporciona una documentación detallada de los parámetros.
    4. Guarde los cambios haciendo clic en Archivo > Guardar archivo CSV.
    5. Utilice el menú de navegación del lado izquierdo para navegar a la carpeta de scripts haciendo clic en scripts. Abra el cuaderno 02_Integrate_and_Normalized_Data_Sources.ipynb haciendo doble clic en él. Ejecute el script haciendo clic en el botón Reiniciar kernel y ejecutar todas las celdas en la parte superior y haciendo clic en Reiniciar en la ventana emergente.
    6. Utilice el menú de navegación del lado izquierdo para navegar a la carpeta de 02_results generada haciendo clic en el símbolo de la carpeta y luego haciendo doble clic en resultados y 02_results. Compruebe si incluye el archivo 02_Combined_data_'configuration_name'_Integrated.csv que contiene el archivo de entrada de datos preprocesado combinado.

figure-protocol-4
Figura 6: Preprocesamiento y armonización de datos. Una salida del paso '01_Prepare_Pseudobulk' es el gráfico 'Fig01_Amount_of_Cells_Overview'. Aquí, para cada cluster_id (eje Y que indica el tipo de célula de los pasos anteriores de anotación del tipo de célula), se da el número de células por muestra ('sample_id'). Dentro de los resultados presentados, los tipos de células con una baja cantidad de células por muestra se excluyen del análisis posterior (indicado por el tachado). Haga clic aquí para ver una versión más grande de esta figura.

4. Ejecutar MOFA

  1. En Jupyter-Lab, utilice el menú de navegación de la izquierda para navegar a la carpeta de configuraciones haciendo clic en el símbolo de la carpeta y, a continuación, haga doble clic en mofa_workflow, seguido de un doble clic en scripts y configuraciones. Abra el archivo 03_MOFA_Configs.csv haciendo doble clic en él.
  2. Compruebe las entradas de las columnas configuration_name y mofa_result_name y ajuste las entradas si se deben utilizar nombres alternativos.
    NOTA: La mofa_result_name se agregará como una extensión de archivo a todos los archivos de resultados generados en función del MOFA. Esto puede ser diferente del valor configuration_name , ya que se pueden ejecutar diferentes configuraciones de MOFA con los mismos datos de entrada (este protocolo utiliza MI_v1_MOFA).
  3. Introduzca la cantidad de factores que se deben estimar en el modelo MOFA (columna amount_of_factors ) y defina si se deben aplicar la ponderación y la escala (columnas weighting_of_views y scale_views ) ajustando los valores del archivo.
  4. Guarde los cambios haciendo clic en Archivo > Guardar archivo CSV.
  5. Utilice el menú de navegación en el lado izquierdo para navegar a la carpeta de scripts haciendo clic en 'scripts'. Abra el cuaderno 03_Run_MOFA.ipynb haciendo doble clic en el archivo. Ejecute el script haciendo clic en el botón Reiniciar kernel y ejecutar todas las celdas en la parte superior y haciendo clic en Reiniciar en la ventana emergente.
  6. Navegue a la carpeta 03_figures haciendo doble clic en las figuras y luego 03_figures. Abra el FIG03_Overview_Variance_Decomposition_mofa_result_name de la gráfica generada e investigue el resultado del modelo (Figura 7A).
  7. Utilice el menú de navegación del lado izquierdo para navegar a la carpeta de 03_results generada haciendo clic en el símbolo de la carpeta y luego haciendo doble clic en resultados y 03_results. Compruebe si incluye el archivo de valor de factor de muestra 03_Factor_Data_'mofa_result_name'.csv y el archivo de peso de factor de característica 03_Weight_Data_'mofa_result_name'.csv.

5. Análisis posterior

  1. Interpretación factorial.
    1. Utilice el menú de navegación del lado izquierdo para navegar a la carpeta input_data haciendo clic en el símbolo de la carpeta , seguido de un doble clic en input_data.
    2. Preparar un fichero .csv (Prepared_Sample_Meta_Data.csv) que contenga todos los metadatos (covariables) de las muestras que se analizarán en asociación con los factores generados. Copie el archivo en la carpeta input_data mediante arrastrar y soltar el archivo en la vista general de la carpeta input_data .
      NOTA: Debe contener la columna sample_id para que coincida con los datos utilizados anteriormente y columnas adicionales para cada característica que se debe analizar.
    3. En Jupyter-Lab, utilice el menú de navegación de la izquierda para volver a la carpeta de configuraciones haciendo clic en el símbolo de la carpeta y, a continuación, haciendo doble clic en mofa_workflow, seguido de scripts y configuración. Abra el archivo 04_Factor_Analysis.csv haciendo doble clic en él.
    4. Compruebe que las entradas para el configuration_name y el mofa_result_name contengan los nombres de la configuración y los resultados de MOFA que se analizarán en el script y ajústelos si es necesario.
    5. En la columna numeric_covariates , agregue el nombre de todas las columnas numéricas del archivo Prepared_Sample_Meta_Data.csv que se investigarán en relación con los factores MOFA separados por comas (este protocolo utiliza CRP,CK).
    6. En la columna categorical_covariates', agregue el nombre de todas las columnas categóricas del archivo Prepared_Sample_Meta_Data.csv que se investigarán en relación con los factores MOFA separados por comas (este protocolo utiliza medición).
    7. Guarde los cambios haciendo clic en Archivo > Guardar archivo CSV.
    8. Utilice el menú de navegación de la izquierda para navegar a la carpeta 'scripts' haciendo clic en scripts. Abra el cuaderno 04_Downstream_Factor_Analysis.ipynb haciendo doble clic en él. Ejecute el script haciendo clic en el botón Reiniciar kernel y ejecutar todas las celdas en la parte superior y haciendo clic en reiniciar en la ventana emergente.
    9. Utilice el menú de navegación de la izquierda para navegar a la carpeta 04_figures haciendo doble clic en las figuras y luego en 04_figures. Abra los gráficos generados haciendo doble clic en ellos e investigue los factores para patrones y asociaciones interesantes: FIG04_Factor_Association_with_numeric_features_
      'mofa_result_name.pdf (Figura 7B). FIG04_Factor_Association_
      with_categorical_features_ mofa_result_name.pdf (Figura 7C). FIG04_Top_Feature_Overview_per_Factor _'mofa_result_name.pdf (Figura 8A).
  2. Análisis de características
    1. Utilice el menú de navegación de la izquierda para volver a la carpeta de configuraciones haciendo clic en ... y luego haciendo doble clic en configuraciones. Abra el archivo 05_Feature_Analysis_Configs.csv haciendo doble clic en él.
    2. Compruebe que las entradas de las columnas configuration_name y mofa_result_name correspondan a los nombres de la configuración y el resultado MOFA generado que se utilizará para el análisis posterior y ajústelas si es necesario.
    3. En la columna de factores , agregue el factor para el que se trazarán las características principales en el siguiente script.
    4. En la faceting_variable de columnas, agregue un nombre de columna de una columna categórica en el Prepared_Sample_Meta_Data.csv que se utilizará para agrupar las muestras en la gráfica (este protocolo utiliza la medición)
    5. Guarde los cambios haciendo clic en Archivo > Guardar archivo CSV.
    6. Utilice el menú de navegación de la izquierda para navegar a la carpeta de scripts haciendo clic en scripts. Abra el cuaderno 05_Downstream_Investigate_Features_Heatmap.ipynb haciendo doble clic en él. Ejecute el script haciendo clic en el botón Reiniciar kernel y ejecutar todas las celdas en la parte superior y haciendo clic en Reiniciar en la ventana emergente.
    7. Utilice el menú de navegación de la izquierda para navegar a la carpeta 05_figures haciendo doble clic primero en las figuras y luego en 05_figures. Abra e investigue la trama generada FIG05_Heatmap_Feature_Overview__ 'mofa_result_name'.pdf haciendo doble clic en el archivo (Figura 8B).
      NOTA: Dependiendo de la cantidad de características que se mostrarán en el gráfico, puede ser necesario ajustar los parámetros plot_width y plot_height dentro del 05_Feature_Analysis_Configs.csv y volver a ejecutar el script para asegurarse de que todo encaja en el gráfico.
  3. Análisis de vías
    1. Utilice el menú de navegación del lado izquierdo para navegar a la carpeta input_data haciendo clic en el símbolo de la carpeta , seguido de un doble clic en input_data.
    2. Prepare un archivo de .csv (Prepared_Pathway_Data.csv) que contenga una lista de rutas de acceso que se probarán para el enriquecimiento. Copie el archivo en la carpeta input_data mediante arrastrar y soltar el archivo en la vista general de la carpeta input_data.
      NOTA: Debe contener tres columnas: ID (un identificador único de la vía), gen (los genes dados por su nombre de gen (SÍMBOLO) que pertenecen a la vía, una fila por gen), pathway_name ( un nombre/descripción textual de las vías).
    3. En la sesión de Jupyter-Lab, utilice el menú de navegación de la izquierda para navegar a la carpeta de configuraciones haciendo clic en ... y luego haciendo doble clic en configuraciones. Abra el archivo 06_Pathway_Configs.csv haciendo doble clic en él.
    4. Compruebe la entrada de la columna mofa_result_name y asegúrese de que corresponde al nombre del resultado MOFA generado que se utilizará para el cálculo del enriquecimiento de la vía.
    5. Compruebe la entrada de la columna de tipos y elimine las entradas de la columna de tipos que no contengan características que coincidan con la columna de genes del archivo Prepared_Pathway_Data.csv .
      NOTA: De forma predeterminada, todas las vistas diferentes que se han utilizado en el modelo MOFA se agregan a este archivo durante la ejecución del flujo de trabajo. En caso de que haya vistas que no contengan entidades que coincidan con al menos una ruta, deben eliminarse; de lo contrario, se producirá un error en la ejecución. Un ejemplo sería que el archivo de ruta contiene solo anotaciones de ruta para genes, pero hay una vista que contiene nombres de proteínas.
    6. Guarde los cambios haciendo clic en Archivo > Guardar archivo CSV.
    7. Utilice el menú de navegación para navegar a la carpeta de scripts haciendo clic en scripts. Abra el cuaderno 06_Downstream_Pathways.ipynb haciendo doble clic en él. Ejecute el script haciendo clic en el botón Reiniciar kernel y ejecutar todas las celdas en la parte superior, y haciendo clic en Reiniciar en la ventana emergente.
    8. Utilice el menú de navegación de la izquierda para navegar a la carpeta 06_figures haciendo doble clic primero en las figuras y luego en 06_figures. Abra el gráfico generado FIG06_Pathways_and_Genes_ 'mofa_result_name haciendo doble clic en él e investigue las rutas visualizadas (Figura 8C).
      NOTA: La forma en que se seleccionan las rutas visualizadas se puede configurar a través del archivo de configuración. Para obtener más información, consulte la documentación de los parámetros.
    9. Utilice el menú de navegación del lado izquierdo para navegar a la carpeta de 06_results generada haciendo clic en el símbolo de la carpeta y luego haciendo doble clic en resultados y 06_results. Compruebe si incluye el archivo que incluye las rutas enriquecidas 06_Pathway_enrichment__'mofa_result_name'.

6. Comparación de diferentes configuraciones y versiones (Figura complementaria 1, Figura complementaria 2, Figura complementaria 3, Figura complementaria 4)

  1. Para comparar el efecto del uso de diferentes parámetros/configuraciones a lo largo del flujo de trabajo, vuelva a ejecutar las secciones 3-5, modificando los parámetros en los archivos de configuración y utilizando diferentes identificadores de configuration_name y mofa_result_name .
    NOTA: Los nuevos resultados se almacenarán con estos nombres para ser utilizados para comparar diferentes ejecuciones.
  2. En Jupyter-Lab, use el menú de navegación de la izquierda para navegar a la carpeta de configuraciones . Abra el archivo 07_Comparison_Configs.csv haciendo doble clic en él.
  3. En la columna mofa_result_name , agregue los nombres de todas las ejecuciones anteriores de MOFA que se compararán (una fila por nombre/configuración, por ejemplo, MI_v1_MOFA, MI_v2_MOFA).
  4. En la columna compare_factors , agregue los factores que se compararán entre los modelos. De forma predeterminada, es Factor1,Factor2,Factor3. (Figura complementaria 2A).
    NOTA: En este script se compararán los valores de características y factores de los diferentes modelos correlacionándolos. Esto solo funciona para los modelos que se basan en las mismas muestras (indicadas por sample_id) y el mismo conjunto de características. En caso de que las muestras o características no coincidan entre las versiones comparadas, se excluirán de la comparación.
  5. Guarde los cambios haciendo clic en Archivo > Guardar archivo CSV.
  6. Utilice el menú de la izquierda para navegar a la carpeta de scripts haciendo clic en scripts. Abra el cuaderno 07_Compare_Models.ipynb haciendo doble clic en él. Ejecute el script haciendo clic en el botón Reiniciar kernel y ejecutar todas las celdas y haciendo clic en Reiniciar en la ventana emergente.
  7. Utilice el menú de la izquierda para navegar a la carpeta 06_figures haciendo doble clic primero en las figuras y luego en 06_figures. Abra los gráficos generados haciendo doble clic en los archivos para analizar la similitud de las diferentes versiones:
    FIG07_Variance_Model_Comparison.pdf (Figura complementaria 2B)
    FIG07_Factor_Correlations.pdf
    (Figura complementaria 2C)
    FIG07_Feature_Correlations.pdf
    (Figura complementaria 3C)

7. Ampliación del flujo de trabajo: Adición de otros parámetros y configuraciones

NOTA: Además de los parámetros que se pueden configurar actualmente en los archivos de configuración, se pueden incluir otros ajustes en el código u otros parámetros. Por ejemplo, el propio modelo MOFA ofrece otros parámetros de entrenamiento17 que pueden modificarse directamente en el código o ajustarse a través de los archivos de configuración. En la siguiente sección del protocolo se describirá un ejemplo de cómo hacer esto para los parámetros de entrenamiento del modelo MOFA adicionales. Para esta parte, se requieren conocimientos de programación en R.

  1. En Jupyter-Lab, use el menú de navegación de la izquierda para navegar a la carpeta de scripts . Abra el bloc de notas 03_Run_MOFA.ipynb haciendo doble clic en él.
  2. Haga clic en la pestaña Tabla de contenido en el lado izquierdo y luego navegue hasta la subsección 4.3 Establecer opciones de capacitación MOFA y ejecute la capacitación modelo haciendo clic en ella. Desplácese hacia abajo para ver la salida impresa del modelo MOFA de parámetros configurables en el bloc de notas.
  3. Dentro del bucle R for en el código debajo del encabezado, se establecen todas las opciones de datos, modelo y entrenamiento de MOFA. Debajo de la línea model_opts$num_factors = mofa_configs$amount_of_factors[i], agregue otra línea con el código a continuación
    model_opts$probabilidades['data_type'] = 'poisson'.
    NOTA: Esto cambiará la distribución que el modelo toma como entrada para la vista especificada por el nombre data_type para todas las ejecuciones de MOFA. Al especificar poisson para un tipo de datos, el modelo solo se ejecutará cuando las características de este tipo de datos sean enteros (por ejemplo, recuentos de lectura de RNA-seq). Para obtener más información sobre los datos, la formación y las opciones de modelo del MOFA, también se pueden consultar los tutoriales y la documentación del MOFA17.
  4. Guarde los cambios en el bloc de notas haciendo clic en el botón Guardar en la parte superior.
  5. Para entregar nuevos parámetros a través de los archivos de configuración .csv , utilice la navegación del lado izquierdo para navegar a la carpeta de configuraciones haciendo doble clic en configuraciones y abra el archivo 03_MOFA_Configs.csv haciendo doble clic.
    1. Agregue una nueva columna especificando el nombre del parámetro, por ejemplo, number_iterations e introduzca un valor, por ejemplo, 1000. Guarde los cambios haciendo clic en Archivo > Guardar archivo CSV.
    2. Utilice el menú de navegación para navegar por la carpeta de scripts haciendo clic en scripts. Abra el cuaderno 03_Run_Mofa.ipynb haciendo doble clic en él. Haga clic en la pestaña Tabla de contenido en el lado izquierdo y luego navegue hasta la subsección 4.3 Establecer opciones de capacitación MOFA y ejecute la capacitación modelo haciendo clic en ella.
    3. Reemplace la línea train_opts$maxiter = 50000 por train_opts$maxiter = mofa_configs$column_name[i ] (cuando el nombre de la columna agregada es number_of_iterations es train_opts$maxiter = mofa_configs$number_of_iterations[i]).
      NOTA: El archivo de configuración 03_MOFA_Configs.csv en este cuaderno se lee al principio del cuaderno (subsección: Requisitos previos, configuraciones y parámetros) como mofa_config data.frame en la sesión y, por lo tanto, en esta línea de código, se hace referencia a este objeto y a la columna recién generada correspondiente. Como se pueden ejecutar varias configuraciones al mismo tiempo, i identifica la fila del data.frame a medida que la estimación del modelo se ejecuta en un bucle for en todas las diferentes filas del archivo .csv . El principio de lectura en el archivo de configuración al principio del cuaderno en la sección 'Requisitos previos, configuraciones y parámetros' es el mismo para todos los cuadernos, y se pueden realizar modificaciones adicionales como esta.
    4. Guarde los cambios en el bloc de notas haciendo clic en el botón Guardar .

Resultados

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

Después de la ejecución exitosa del flujo de trabajo, se generan varias tablas y figuras como se indica en la Figura 2. Las figuras se colocan en la carpeta /figures (Figura 6, Figura 7, Figura 8, Figura complementaria 1, Figura complementaria 2, Figura complementaria 3, Figura complementaria 4) y las tablas se colocarán en la carpeta /results especificada.

En caso de que la ejecución del flujo de trabajo no se ejecute correctamente, esto puede deberse principalmente a: errores técnicos causados, por ejemplo, por memoria insuficiente (especialmente en el primer paso donde se carga un conjunto de datos de una sola celda grande), datos con formato incorrecto (por ejemplo, columnas de sample_id no coincidentes entre conjuntos de datos) o especificaciones incorrectas en los archivos de configuración (por ejemplo, exclusión de muchas funciones). En este caso, normalmente, se producirá un mensaje de error dentro del script de Jupyter-notebook durante la ejecución y no se generarán gráficos ni datos. Se recomienda utilizar los archivos de configuración predeterminados tal como se generaron durante la ejecución del script y solo modificar parámetros específicos como se describe en el protocolo.

Una ejecución exitosa se indica mediante la generación de los gráficos y tablas resultantes, y cada paso revelará información adicional sobre los datos y los principales patrones de varianza inherentes a ellos. Sin embargo, no necesariamente cada ejecución producirá resultados biológicamente útiles e interpretables. A menudo, los datos se caracterizan por grandes efectos técnicos y diferentes distribuciones, que deben tenerse en cuenta en el paso "Preprocesamiento y armonización de datos" o en el "Modelo MOFA9 " (que también permite especificar diferentes distribuciones para los tipos de datos de entrada) para poder extraer la variación de los datos que refleja los procesos biológicos subyacentes.

Dentro del flujo de trabajo presentado, se pueden utilizar diferentes conjuntos de datos multiómicos como entrada. Actualmente, el flujo de trabajo acepta el popular formato de archivo .h5ad para datos de una sola celda y un formato de archivo .csv muy general para todos los demás conjuntos de datos como entrada (Figura 3). Es común que los diferentes conjuntos de datos ómicos tengan formatos de archivo muy diferentes. Para no limitar la ejecución del flujo de trabajo a formatos de archivo específicos, .csv utiliza como un formato muy general. Por lo tanto, se pueden usar todos los tipos de conjuntos de datos ómicos diferentes como entrada para el flujo de trabajo, pero deben convertirse al formato de .csv correspondiente, como se indica en la figura 3 , antes de su uso dentro de este flujo de trabajo. Esto se puede preparar utilizando una hoja de cálculo o un software específico de omic. Para preprocesar los diferentes conjuntos de datos ómicos, hay varias opciones disponibles dentro del flujo de trabajo para aplicar diferentes pasos de preprocesamiento y normalización (por ejemplo, ajuste del tamaño de la biblioteca, transformación de registros, normalización de cuantiles de muestra) en los diferentes conjuntos de datos de entrada mediante la configuración del archivo de 02_Pre_Processing_Configs.csv y 02_Pre_Processing_Configs_SC.csv (Figura 2). Sin embargo, las opciones disponibles aquí se basan principalmente en los datos de entrada específicos disponibles en el conjunto de datos presentado aquí (scRNA-seq, ensayo de citocinas, proteómica, prime-seq). En caso de que se utilicen otros tipos de datos o ómicas, puede ser necesario aplicar pasos de normalización específicos de ómica adicionales de acuerdo con las prácticas recomendadas existentes. En este caso, los datos se pueden entregar al flujo de trabajo en un formulario ya preprocesado y se integrarán junto con los otros conjuntos de datos sin aplicar más pasos de preprocesamiento. En muchos casos, la aplicación del paso Normalización cuantil de características es útil para alinear la distribución de todos los tipos de datos con una distribución normal y hacer que el análisis descendente entre las diferentes características de entrada sea más comparable y compatible con la especificación del modelo de ruido gaussiano .

Durante la ejecución del flujo de trabajo, se generan varios gráficos y salidas que apoyan el proceso de integración de datos y la posterior interpretación biológica posterior. En el caso de los datos de scRNA-seq, el gráfico de FIG01_Amount_of_Cells_Overview (Figura 6) indica qué tipos de células podrían incluir muy pocas células por muestra y tipo de célula para medir de forma fiable una señal de expresión génica, ya que para los análisis posteriores, el valor medio de todas las células de un tipo de célula por muestra se utiliza como estimación de la expresión (enfoque psedobulk). En este caso de uso, excluimos los tipos de células que tienen menos de tres células en la mayoría de las muestras.

El FIG03_Overview_Variance_Decomposition del gráfico de descomposición de la varianza (Figura 7, Figura 1 complementaria) puede indicar qué tan bien se integran las diferentes fuentes de datos y qué parte de la varianza en las diferentes fuentes de datos es compartida y única para cada fuente de datos. Por ejemplo, al probar diferentes estrategias de preprocesamiento en el conjunto de datos utilizado aquí, se muestra, por ejemplo, que la eliminación del paso de normalización de cuantiles de características del preprocesamiento conduce a factores latentes que se centran más en vistas de datos específicas y reduce la integración de los datos proteómicos con las otras fuentes de datos. Esto se puede ver en la cantidad reducida de varianza explicada (Figura suplementaria 1B). La ejecución del modelo MOFA sin ningún filtrado de características o sin normalización conduce a una menor varianza compartida entre las diferentes vistas capturadas por los factores latentes (Figura complementaria 1C). Esto indica que los factores latentes reflejan predominantemente efectos técnicos específicos del tipo de datos. Además de eso, el propio modelo MOFA9 también podría devolver advertencias en caso de datos mal preprocesados. En la Figura complementaria 1 se muestra un ejemplo de esta advertencia para las configuraciones de preprocesamiento alternativas MI_v2 y MI_v3 (los archivos de configuración de ejemplo específicos se almacenan en el repositorio de GitHub clonado en la carpeta config_examples ).

Además, después de ejecutar el modelo MOFA, los resultados se pueden evaluar en varios análisis posteriores asociando el factor con metainformación biológica conocida sobre las muestras, así como con covariables técnicas y otras covariables de confusión (04_Downstream_Factor_Analysis) para identificar la causa probable de la variación capturada por los factores. Por ejemplo, si uno de los factores de los modelos MOFA se asocia fuertemente con una de las covariables técnicas (como la información de lotes), esto podría indicar que este factor capta más bien la variación técnica dentro de los datos en lugar de la variación biológica.

Para reducir la interpretación biológica en la parte de análisis posterior, aquí se describen un par de hallazgos basados en el conjunto de datos de entrada (se puede encontrar una interpretación más refinada en la publicación original11). En el primer paso, pudimos observar que con la estrategia de preprocesamiento aplicada, encontramos varios factores que capturan la varianza entre múltiples tipos de celdas, pero también otros tipos de datos ómicos (Figura 7A). Por ejemplo, el factor 2 captura la varianza en las características de entrada clínica y en varios tipos de células del conjunto de datos scRNA-seq. Asociando los tres primeros factores con covariables clínicas relevantes como 'PCR' y 'CK' (Figura 7B) e investigando las diferencias en los valores de los factores para los diferentes subgrupos de pacientes: 'Control (incluyendo CCS y no CCS) vs. 'ACS' medidos en los diferentes puntos temporales (TP1-TP4) (Figura 7C), también encontramos que el Factor2 se asocia significativamente con el valor de 'CK' y el Factor3 con el valor de 'PCR'. Al mismo tiempo, las muestras de 'ACS' en TP1 y TP2 (que reflejan la fase aguda de la respuesta inmunitaria al infarto de miocardio (IM)) muestran un aumento en los valores de los factores en comparación con las muestras 'Control' y de puntos temporales posteriores (TP3/TP4). La CK es un marcador conocido de daño miocárdico y se caracteriza típicamente por un aumento de los valores de TP1/TP2, similar al patrón capturado por Factor2.

Para generar información sobre los procesos biológicos que dan forma al Factor2, evaluamos las características de mayor rango del factor observando la tabla de ponderaciones de características generada por el modelo (03_Weight_Data.csv). Analizando el 1% superior de las características con los pesos absolutos más altos en el factor, encontramos principalmente CD4. MTC y CD14. Las características monoderivadas están sobrerrepresentadas en comparación con su número total de características de entrada (Figura 8A), lo que indica que estos tipos de células son altamente relevantes en el proceso inflamatorio después de la IM (NOTA: en caso de que no se haya aplicado una normalización cuantílica de características en el preprocesamiento, diferentes distribuciones de las características también podrían afectar este resultado y la evaluación debe realizarse por separado por tipo de datos). Analizando las características mejor clasificadas del CD4. Tipo de célula TCM en el factor, encontramos varios genes interesantes como EIF3E18 requerido para la activación robusta de las células T y HMGB119, que promueve la expansión y activación de las células T (Figura 8B). A continuación, ejecutamos el análisis de enriquecimiento de vías utilizando vías inmunitarias de la base de datos REACTOME20 como un conjunto de vías (Prepared_Pathway_Data.csv). Encontramos enriquecimiento para varias vías de 'interleucina', incluida la señalización de 'interleucina-6'. Los niveles de expresión de varios genes en diferentes tipos de células de los datos de scRNA-seq y los valores de citocinas 'IL6' medidos por el ensayo de citocinas contribuyeron a este resultado (Figura 8C). La identificación de estos patrones compartidos entre tipos de datos pone de manifiesto el valor añadido de un análisis integrado. En general, este enfoque también puede identificar varios otros factores que reflejan el estado de la enfermedad o asocian el resultado del tratamiento y los programas inmunes multicelulares subyacentes, como se describe más en detalle en la publicación correspondiente11.

Para enfatizar aún más la ventaja de los análisis integrados en múltiples ómicas, también se ejecutó el mismo flujo de trabajo, solo incluyendo los datos de entrada de proteómica (Figura 4 suplementaria). Al analizar los factores resultantes, encontramos de manera similar al análisis integrado un factor (Factor1) que se correlaciona fuertemente con el valor de 'PCR'. Este patrón describe la principal fuente de variación dentro de los datos proteómicos y también está alineado con algunas de las variaciones en los otros conjuntos de datos capturados por 'Factor3' en el análisis integrado (Figura 7C). Sin embargo, un patrón similar al indicado por Factor2 que captura el curso temporal de la inflamación en el análisis integrado no se puede identificar únicamente sobre la base de datos proteómicos.

El flujo de trabajo introducido y el propio modelo MOFA9 son altamente personalizables con muchos parámetros ajustables. Por lo tanto, es importante visualizar y comparar sistemáticamente los resultados producidos por diferentes configuraciones. Para facilitar esta tarea, el resultado final que puede generar el flujo de trabajo es una comparación de diferentes ejecuciones con nombre de la canalización con diferentes parámetros en el preprocesamiento y la estimación del modelo. Por ejemplo, el modelo MOFA se puede estimar con diferentes números de factores latentes (Figura complementaria 2A) o se pueden ponderar vistas con un número menor de características (Figura complementaria 3A). La configuración y ejecución del último script del flujo de trabajo '07_Compare_Models' produce varios gráficos para evaluar la similitud entre diferentes ejecuciones de canalización. FIG07_Variance_Model_Comparison (Figura suplementaria 2B, Figura suplementaria 3B) muestra una comparación de la varianza total explicada para cada vista para diferentes ejecuciones. La correlación de los valores de los factores y las ponderaciones de los factores de características entre las diferentes ejecuciones puede indicar cuánto cambian los resultados al modificar un determinado parámetro (Figura complementaria 2C, Figura complementaria 3C). En este caso, la modificación del número de factores solo provoca cambios menores en los valores estimados de los factores y las ponderaciones de las características (Figura complementaria 2C). La modificación de la ponderación de la vista de datos da como resultado una varianza explicada mucho mayor en las vistas con un menor número de características, por ejemplo, la vista "clínica" (Figura complementaria 3B). Sin embargo, las características relevantes dentro de los tres primeros factores todavía están altamente correlacionadas con las inferidas con la versión no ponderada (Figura suplementaria 3C).

Con los archivos de .csv de salida del modelo generados en la carpeta de resultados (por ejemplo, el factor estimado y los pesos de las características), se pueden realizar más análisis posteriores individuales. Todo el código y los archivos de configuración necesarios (incluida la documentación) están disponibles en GitHub en https://github.com/heiniglab/mofa_workflow. La imagen de singularidad que se creó para permitir una fácil instalación de los paquetes conda necesarios para el análisis se puede descargar desde https://doi.org/10.5281/zenodo.10815146. Un pequeño conjunto de datos de ejemplo que se puede utilizar para realizar una prueba inicial de la canalización también se puede descargar desde el mismo registro de zenodo.

figure-results-1
Figura 7: Análisis de salida de MOFA. Después de la ejecución del modelo MOFA (03_Run_MOFA.ipynb) y el análisis posterior de los valores de los factores (04_Downstream_Factor_Analysis.ipynb) se generan varios gráficos: (A) FIG03_Overview_Variance_Decomposition: devuelve una visualización de la varianza explicada de los factores MOFA estimados dentro de las diferentes vistas. Mapa de calor (izquierda): muestra el porcentaje de la varianza total de una vista capturada por un factor para cada vista. Diagrama de barras (derecha): muestra el porcentaje total de varianza que capturan todos los factores para cada vista. (B) FIG04_Factor_Association_Numerical_Features: muestra la correlación de Pearson de los valores de los factores con las covariables numéricas de la muestra elegidas, aquí: variables clínicas (PCR, CK). (C) FIG04_Factor_Association_Categorical_Features: muestra la diferencia en los valores de los factores para las covariables de la muestra categórica como un diagrama de caja. Aquí, se comparan los valores de los factores 1-3 para cada punto de tiempo de los pacientes con SCA y control. Haga clic aquí para ver una versión más grande de esta figura.

figure-results-2
Figura 8: Análisis de las características del MOFA. Después de la ejecución de los análisis posteriores (04_Downstream_Factor_Analysis.ipynb, 05_Downstream_Investigate_Features.ipynb) se generan varios gráficos. Todos los gráficos aquí visualizan el Factor 2 de MOFA: (A) FIG04_Top_Feature_Overview_per_Factor: El mapa de calor (izquierda) muestra para cada vista el porcentaje de varianza capturado por el factor seleccionado. Los diagramas de barras (derecha) indican la relevancia de las características de las diferentes vistas para el factor. A la izquierda, se proporciona la cantidad total de características de una vista específica dentro del 1% superior de las características de mayor clasificación en todas las vistas del factor. A la derecha, se da el porcentaje, dividiendo el número total entre el 1% superior por el número total de características de esa vista. (B) FIG05_Heatmap_Feature_Overview: El mapa de calor (izquierda) muestra el 1% de las características del CD4 con la clasificación más alta. Tipo de célula TCM: los valores de expresión normalizados de cada muestra comparando los pacientes del grupo 'Control' (CCS y no CCS) con los diferentes puntos temporales para los pacientes 'SCA'. El diagrama de barras (derecha) muestra el peso de las entidades. La dirección del signo del peso se indica antes a la izquierda antes de los nombres de los tipos de celda: '+' peso del factor positivo; '-' peso negativo del factor. (C) FIG06_Pathway_and_Genes: muestra el peso del 25% de los genes con mayor clasificación para el factor que pertenecen a las vías de interleucina enriquecidas. En el mapa de calor de la parte superior, se promedian en todas las vistas, y en el mapa de calor de la parte inferior se muestra por vista. Haga clic aquí para ver una versión más grande de esta figura.

Figura complementaria 1: Efectos de la armonización de datos. La figura muestra FIG03_Overview_Variance_Decomposition para varias configuraciones diferentes de preprocesamiento de datos: visualización de la varianza explicada de los factores MOFA estimados dentro de las diferentes vistas. Mapa de calor (izquierda): muestra para cada vista el porcentaje de la varianza total de una vista que es capturada por un factor. Diagrama de barras (derecha): muestra para cada vista el porcentaje total de varianza que capturan todos los factores. (A) La configuración ('MI_v1') en base a la cual se han analizado los resultados biológicos posteriores en figuras anteriores (parámetros establecidos como en los archivos de configuración predeterminados en el repositorio clonado). (B) La misma configuración de preprocesamiento que en 'MI_v1' con la modificación de que no se aplica ninguna normalización de cuantiles por características (los parámetros se establecen como en los archivos de configuración de ejemplo en la carpeta 'config_examples' del repositorio). Se agrega una captura de pantalla de la advertencia de salida del modelo MOFA para esta configuración al gráfico a continuación. (C) La descomposición de la varianza resultante cuando no se aplican pasos de preprocesamiento y todos los datos se utilizan como entrada sin ningún preprocesamiento o filtrado de características (los parámetros se establecen como en el archivo de configuración de ejemplo en la carpeta 'config_examples' del repositorio). Se agrega una captura de pantalla de la advertencia de salida del modelo MOFA para esta configuración al gráfico a continuación. Haga clic aquí para descargar este archivo.

Figura complementaria 2: Configuración de MOFA - Efecto de la cantidad de factores. Las cifras resultantes generadas por el script '07_Compare_Models.ipynb' utilizando varias configuraciones diferentes para ejecutar el modelo MOFA. (A) '03_MOFA_configs.csv': Ejemplo de las diferentes configuraciones utilizadas para ejecutar el script '03_Run_MOFA.ipynb' especificando varias cantidades diferentes de factores (10,15,20,25). '07_Comparison_configs.csv': Ejemplo de cómo especificar el fichero de entrada de configuración para la ejecución del script '07_Compare_Models.ipynb'. (B) 'FIG07_Variance_Model_Comparison' que muestra la varianza total explicada para cada vista (eje Y) para los diferentes modelos en todos los factores especificados en el modelo. C) «FIG07_Factor_Correlations» que muestra la correlación de los valores de la muestra factorial entre las diferentes configuraciones. Haga clic aquí para descargar este archivo.

Figura complementaria 3: Configuración de MOFA - Efecto de las vistas de ponderación. Las cifras resultantes generadas por el script '07_Compare_Models.ipynb' utilizando varias configuraciones diferentes para ejecutar el modelo MOFA. (A) '03_MOFA_configs.csv': Ejemplo de las diferentes configuraciones utilizadas para ejecutar el script '03_Run_MOFA.ipynb' especificando el parámetro 'weighting_of_views' para que sea 'TRUE' (MI_v1_MOFA_weighted) o 'FALSE' (MI_v1_MOFA). '07_Comparison_configs.csv': Ejemplo de cómo especificar el fichero de entrada de configuración para la ejecución del script '07_Compare_Models.ipynb'. (B) 'FIG07_Variance_Model_Comparison' que muestra la varianza total explicada para cada vista (eje Y) para los diferentes modelos en todos los factores especificados en el modelo. (C) 'FIG07_Feature_Correlations' que muestra la correlación de los pesos de los factores de característica entre las diferentes configuraciones. Haga clic aquí para descargar este archivo.

Figura 4 complementaria: Efecto de integración multiómica, utilizando solo datos proteómicos. Los patrones resultantes capturados por los factores latentes cuando solo se utilizan datos de proteómica como entrada. (A) FIG04_Factor_Association_Numerical_Features: Correlación de Pearson de los valores de los factores con las variables clínicas (PCR, CK). (B) FIG04_Factor_Association_Categorical_Features: Comparación de los valores de los factores de cada punto temporal de los pacientes SCA y control. Haga clic aquí para descargar este archivo.

Legajo Complementario 1: Supplementary_File_
Running_Pipeline_with_Exemplary_Data.
Las descripciones sobre cómo ejecutar la canalización en los datos de ejemplo y las salidas esperadas se proporcionan en un archivo complementario proporcionado adicionalmente. Haga clic aquí para descargar este archivo.

Archivo de video complementario 1: Captura de pantalla de video del protocolo. Haga clic aquí para descargar este archivo.

Discusión

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

Con el protocolo descrito, se presenta un flujo de trabajo modular y extensible basado en Jupyter-notebook que se puede utilizar para explorar rápidamente un conjunto de datos multiómico complejo. Las partes principales del flujo de trabajo consisten en la parte de preprocesamiento y armonización de datos (que ofrece diferentes pasos estándar para el filtrado y la normalización de los datos), la estimación del modelo MOFA9 y algunos ejemplos de análisis posteriores. Uno de los principales pasos críticos es el preprocesamiento, la integración y la armonización de los diferentes conjuntos de datos ómicos. Aquí, presentamos una estrategia para un conjunto de datos que comprende datos de scRNA-seq, ARN masivo de prime-seq, ensayo de citocinas, proteómica plasmática y valores clínicos, lo que resultó en un conjunto de datos integrado y armonizado que podría usarse para identificar procesos biológicos relevantes en MI11. En caso de que otros conjuntos de datos ómicos requieran estrategias adicionales de preprocesamiento de datos, estas deben ejecutarse antes del análisis MOFA. A continuación, los datos preprocesados se pueden utilizar como entrada para el flujo de trabajo actual. Los resultados del modelo se pueden utilizar para evaluar la calidad de la integración de los diferentes conjuntos de datos y los efectos del preprocesamiento para identificar posibles efectos técnicos. Por ejemplo, se podría empezar aplicando sólo un mínimo de pasos de preprocesamiento y normalización y, posteriormente, evaluar el efecto de una mayor normalización. En esta aplicación, se observó que la adición de "normalización de cuantiles por características" conduce a una mejor integración de la proteómica con los ensayos restantes.

Otra gran parte del flujo de trabajo es la estimación del modelo MOFA9 a partir de datos que se agregan a nivel de muestra. Existen otras extensiones del modelo MOFA, tales como
MOFA+21 (específicamente para datos de una sola célula), MEFISTO22 (específicamente para datos que incluyen un componente de tiempo) y MuVI23 (integración del conocimiento del dominio en un enfoque de análisis factorial). Estas son extensiones muy útiles del método para tipos específicos de conjuntos de datos o configuraciones, pero su aplicación conlleva requisitos específicos. Por ejemplo, el uso de MOFA+21 específicamente para datos de una sola celda en nuestro caso significaría que no se podría hacer uso fácilmente de los datos ómicos de nivel de muestra que están disponibles. El uso del método MEFISTO22 permite modelar específicamente el curso del tiempo, pero no es aplicable en entornos en los que no se dispone de múltiples puntos temporales o, en nuestro caso, para combinar las muestras de "Control" que solo tienen mediciones en un punto de tiempo con los datos resueltos en el tiempo de las muestras "ACS". Por lo tanto, en este flujo de trabajo tan general, optamos por utilizar el método MOFA9, ya que es el método más flexible para explorar todo tipo de conjuntos de datos sin demasiados requisitos de una manera rápida. Cabe destacar que, alternativamente, los datos preprocesados generados en el flujo de trabajo también se pueden analizar con estos métodos o se pueden ampliar los scripts actuales para integrar estos métodos si el conjunto de datos es compatible con los requisitos de los métodos. Para ver casos de uso, tutoriales y documentación adicionales, consulte el repositorio de GitHub de los desarrolladores de MOFA24.

En comparación con métodos de reducción de dimensionalidad aún más generales, como el análisis de componentes principales (PCA), el modelo MOFA9 ofrece varias ventajas, especialmente en el entorno multiómico. Por ejemplo, la descomposición de la varianza se puede analizar fácilmente por vista de entrada y los pesos se pueden asignar a diferentes vistas para tener en cuenta diferentes números de entidades. El modelo fomenta la escasez, lo que aumenta la interpretabilidad de los resultados. Además, no es necesario excluir las muestras con datos faltantes en una de las ómicas, y el modelo implementa algunas características para centrarse en el aprendizaje de ponderaciones de factores de características dispersas. Además, el modelo MOFA ofrece varias configuraciones para integrar datos caracterizados por diferentes distribuciones (modelando probabilidades 'gaussianas', 'Bernoulli' o 'Poisson'). En este flujo de trabajo, solo integramos datos continuos, que normalizamos para seguir una distribución 'gaussiana', pero el código existente también se puede ampliar para integrar otros tipos de datos si es necesario. Existen otros métodos basados en la descomposición, como scITD25, especialmente para datos de scRNA-seq, pero estos vienen con la limitación de que no están diseñados para funcionar con otras ómicas.

El flujo de trabajo presentado muestra un protocolo para una exploración no supervisada de conjuntos de datos multiómicos grandes y complejos para identificar posibles procesos biológicos y otras características que impulsan la variación dentro de los datos. Se puede aplicar en casi cualquier entorno en el que se deba investigar la variación de los datos, por ejemplo, causada por una enfermedad u otras perturbaciones biológicas o técnicas. Los análisis posteriores resultantes y los conjuntos de características que impulsan la varianza entre las diferentes ómicas pueden revelar procesos biológicos relevantes para investigar más a fondo en el contexto específico. Por ejemplo, en el contexto de una enfermedad, podría permitir la identificación de nuevos marcadores de diagnóstico u objetivos de tratamiento.

Divulgaciones

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

Los autores declaran no tener ningún conflicto de intereses.

Agradecimientos

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

C.L. cuenta con el apoyo de la Asociación Helmholtz en el marco de la escuela de investigación conjunta "Munich School for Data Science - MUDS".

Materiales

Lista de materiales utilizados en este artículo
NombreEmpresaNúmero de catálogoComentarios
ApptainerNANA https://apptainer.org/docs/admin/main/installation.html
Servidor de cómputo o estación de trabajo o nube  (entorno Linux, Mac o Windows).
Dependiendo del tamaño de los diferentes conjuntos de datos de entrada, recomendamos ejecutar el flujo de trabajo en una máquina adecuada (en nuestra configuración usamos: 16 CPU, 64 GB de memoria)
Cualquier fabricante16 CPU, 64 GB de memoriaLa memoria grande solo se requiere para el procesamiento de los datos brutos de una sola celda. Después del preprocesamiento, los pasos de análisis posteriores también se pueden realizar en computadoras de escritorio o portátiles normales
: gitNANA https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
GitHubGitHubNAhttps://github.com/heiniglab/mofa_workflow
,

Referencias

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

Reimpresiones y permisos

Solicitar permiso para reutilizar el texto o las figuras de este artículo de JoVE

Solicitar permiso

Etiquetas

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

Artículos relacionados