{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tutorial 5: Integrating RNA and Metabolomics\n", "In this tutorial, we demonstrate how to use SCIGMA to inegrate RNA and metabolomics. This tutorial can be run in under 10 minutes on a GPU-enabled computer." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from SCIGMA import *\n", "from data import load_data, preprocessing\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from utils import clustering\n", "import scanpy as sc\n", "import anndata\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load Data\n", "To run this tutorial, make sure to download the metabolomics data from here: https://data.mendeley.com/datasets/w7nw4km7xd/1\n", "\n", "Modify the filepaths accordingly to match the downloaded data filepaths." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
| \n", " | Protocol | \n", "Path.To.File | \n", "File.Name | \n", "Data.Type | \n", "Glass.Type | \n", "ArrayID | \n", "Sample.ID | \n", "Matrix | \n", "Laser | \n", "Laser.resolution | \n", "sample | \n", "Condition | \n", "Brain.area | \n", "Visium.Protocol | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "Sma_TO | \n", "/sma/TO2/qc | \n", "220221_MS__TO_mousebrain_Cy3_MV_gain5.jpg | \n", "fluorescence | \n", "NotCharged | \n", "TO2 | \n", "TO2_A1 | \n", "DHB | \n", "yL | \n", "100.0 | \n", "mH1 | \n", "mH | \n", "Striatum | \n", "TissueOptimization | \n", "
| 1 | \n", "Sma_TO_iCtrl | \n", "/sma/TO2/qc | \n", "220221_MS__TO_mousebrain_Cy3_MV_gain5.jpg | \n", "fluorescence | \n", "NotCharged | \n", "TO2 | \n", "TO2_A2 | \n", "DHB | \n", "nL | \n", "inf | \n", "mH1 | \n", "mH | \n", "Striatum | \n", "TissueOptimization | \n", "
| 2 | \n", "Sma_TO | \n", "/sma/TO2/qc | \n", "220221_MS__TO_mousebrain_Cy3_MV_gain5.jpg | \n", "fluorescence | \n", "NotCharged | \n", "TO2 | \n", "TO2_B1 | \n", "Norh | \n", "yL | \n", "100.0 | \n", "mH1 | \n", "mH | \n", "Striatum | \n", "TissueOptimization | \n", "
| 3 | \n", "Sma_TO | \n", "/sma/TO2/qc | \n", "220221_MS__TO_mousebrain_Cy3_MV_gain5.jpg | \n", "fluorescence | \n", "NotCharged | \n", "TO2 | \n", "TO2_B2 | \n", "Norh | \n", "yL | \n", "100.0 | \n", "mH1 | \n", "mH | \n", "Striatum | \n", "TissueOptimization | \n", "
| 4 | \n", "Sma_TO | \n", "/sma/TO2/qc | \n", "220221_MS__TO_mousebrain_Cy3_MV_gain5.jpg | \n", "fluorescence | \n", "NotCharged | \n", "TO2 | \n", "TO2_C1 | \n", "9-AA | \n", "yL | \n", "100.0 | \n", "mH1 | \n", "mH | \n", "Striatum | \n", "TissueOptimization | \n", "
| 5 | \n", "Sma_TO | \n", "/sma/TO2/qc | \n", "220221_MS__TO_mousebrain_Cy3_MV_gain5.jpg | \n", "fluorescence | \n", "NotCharged | \n", "TO2 | \n", "TO2_C2 | \n", "9-AA | \n", "yL | \n", "100.0 | \n", "mH1 | \n", "mH | \n", "Striatum | \n", "TissueOptimization | \n", "
| 6 | \n", "Sma_TO | \n", "/sma/TO2/qc | \n", "220221_MS__TO_mousebrain_Cy3_MV_gain5.jpg | \n", "fluorescence | \n", "NotCharged | \n", "TO2 | \n", "TO2_D1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mH1 | \n", "mH | \n", "Striatum | \n", "TissueOptimization | \n", "
| 7 | \n", "Sma_TO_iCtrl | \n", "/sma/TO2/qc | \n", "220221_MS__TO_mousebrain_Cy3_MV_gain5.jpg | \n", "fluorescence | \n", "NotCharged | \n", "TO2 | \n", "TO2_D2 | \n", "FMP-10 | \n", "nL | \n", "inf | \n", "mH1 | \n", "mH | \n", "Striatum | \n", "TissueOptimization | \n", "
| 8 | \n", "Sma | \n", "/sma/V11L12-038/V11L12-038_A1/output_data/V11L... | \n", "V11L12-038_A1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11L12-038 | \n", "V11L12-038_A1 | \n", "DHB | \n", "yL | \n", "100.0 | \n", "mPD3 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 9 | \n", "Sma | \n", "/sma/V11L12-038/V11L12-038_B1/output_data/V11L... | \n", "V11L12-038_B1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11L12-038 | \n", "V11L12-038_B1 | \n", "DHB | \n", "yL | \n", "100.0 | \n", "mPD3 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 10 | \n", "Visium_iCtrl | \n", "/sma/V11L12-038/V11L12-038_C1/output_data/V11L... | \n", "V11L12-038_C1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11L12-038 | \n", "V11L12-038_C1 | \n", "nM | \n", "nL | \n", "inf | \n", "mPD3 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 11 | \n", "Sma | \n", "/sma/V11L12-038/V11L12-038_D1/output_data/V11L... | \n", "V11L12-038_D1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11L12-038 | \n", "V11L12-038_D1 | \n", "9-AA | \n", "yL | \n", "100.0 | \n", "mPD3 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 12 | \n", "Sma | \n", "/sma/V11L12-109/V11L12-109_A1/output_data/V11L... | \n", "V11L12-109_A1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11L12-109 | \n", "V11L12-109_A1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mPD1 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 13 | \n", "Sma | \n", "/sma/V11L12-109/V11L12-109_B1/output_data/V11L... | \n", "V11L12-109_B1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11L12-109 | \n", "V11L12-109_B1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mPD3 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 14 | \n", "Sma | \n", "/sma/V11L12-109/V11L12-109_C1/output_data/V11L... | \n", "V11L12-109_C1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11L12-109 | \n", "V11L12-109_C1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mPD4 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 15 | \n", "Visium_iCtrl | \n", "/sma/V11L12-109/V11L12-109_D1/output_data/V11L... | \n", "V11L12-109_D1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11L12-109 | \n", "V11L12-109_D1 | \n", "FMP-10 | \n", "nL | \n", "inf | \n", "mPD3 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 16 | \n", "Sma | \n", "/sma/V11T16-085/V11T16-085_A1/output_data/V11T... | \n", "V11T16-085_A1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11T16-085 | \n", "V11T16-085_A1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mPD1 | \n", "mPD | \n", "SubNigra | \n", "Standard | \n", "
| 17 | \n", "Sma | \n", "/sma/V11T16-085/V11T16-085_B1/output_data/V11T... | \n", "V11T16-085_B1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11T16-085 | \n", "V11T16-085_B1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mPD3 | \n", "mPD | \n", "SubNigra | \n", "Standard | \n", "
| 18 | \n", "Sma | \n", "/sma/V11T16-085/V11T16-085_C1/output_data/V11T... | \n", "V11T16-085_C1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11T16-085 | \n", "V11T16-085_C1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mPD4 | \n", "mPD | \n", "SubNigra | \n", "Standard | \n", "
| 19 | \n", "Visium_iCtrl | \n", "/sma/V11T16-085/V11T16-085_D1/output_data/V11T... | \n", "V11T16-085_D1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11T16-085 | \n", "V11T16-085_D1 | \n", "nM | \n", "nL | \n", "inf | \n", "mPD4 | \n", "mPD | \n", "SubNigra | \n", "Standard | \n", "
| 20 | \n", "Sma | \n", "/sma/V11T17-102/V11T17-102_A1/output_data/V11T... | \n", "V11T17-102_A1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11T17-102 | \n", "V11T17-102_A1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "hPD1 | \n", "hPD | \n", "Striatum | \n", "RNArescue | \n", "
| 21 | \n", "Sma | \n", "/sma/V11T17-102/V11T17-102_B1/output_data/V11T... | \n", "V11T17-102_B1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11T17-102 | \n", "V11T17-102_B1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "hPD1 | \n", "hPD | \n", "Striatum | \n", "RNArescue | \n", "
| 22 | \n", "Sma | \n", "/sma/V11T17-102/V11T17-102_C1/output_data/V11T... | \n", "V11T17-102_C1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11T17-102 | \n", "V11T17-102_C1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "hPD1 | \n", "hPD | \n", "Striatum | \n", "RNArescue | \n", "
| 23 | \n", "Sma | \n", "/sma/V11T17-102/V11T17-102_D1/output_data/V11T... | \n", "V11T17-102_D1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11T17-102 | \n", "V11T17-102_D1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "hPD1 | \n", "hPD | \n", "Striatum | \n", "RNArescue | \n", "
| 24 | \n", "Visium | \n", "/visium/V11T17-101/V11T17-101_A1/output_data/V... | \n", "V11T17-101_A1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11T17-101 | \n", "V11T17-101_A1 | \n", "nM | \n", "nL | \n", "inf | \n", "mPD1 | \n", "mPD | \n", "SubNigra | \n", "Standard | \n", "
| 25 | \n", "Visium | \n", "/visium/V11T17-101/V11T17-101_B1/output_data/V... | \n", "V11T17-101_B1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11T17-101 | \n", "V11T17-101_B1 | \n", "nM | \n", "nL | \n", "inf | \n", "mPD3 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 26 | \n", "Visium | \n", "/visium/V11T17-101/V11T17-101_C1/output_data/V... | \n", "V11T17-101_C1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11T17-101 | \n", "V11T17-101_C1 | \n", "nM | \n", "nL | \n", "inf | \n", "mH1 | \n", "mH | \n", "Striatum | \n", "Standard | \n", "
| 27 | \n", "Visium | \n", "/visium/V11T17-101/V11T17-101_D1/output_data/V... | \n", "V11T17-101_D1.Visium.RNA | \n", "RNA | \n", "NotCharged | \n", "V11T17-101 | \n", "V11T17-101_D1 | \n", "nM | \n", "nL | \n", "inf | \n", "hPD1 | \n", "hPD | \n", "Striatum | \n", "Standard | \n", "
| 28 | \n", "Sma | \n", "/sma/V11L12-038/V11L12-038_A1/output_data/V11L... | \n", "V11L12-038_A1.Visium.DHB.220826_smamsi.csv | \n", "lipids | \n", "NotCharged | \n", "V11L12-038 | \n", "V11L12-038_A1 | \n", "DHB | \n", "yL | \n", "100.0 | \n", "mPD3 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 29 | \n", "Sma | \n", "/sma/V11L12-038/V11L12-038_B1/output_data/V11L... | \n", "V11L12-038_B1.Visium.DHB.220826_smamsi.csv | \n", "lipids | \n", "NotCharged | \n", "V11L12-038 | \n", "V11L12-038_B1 | \n", "DHB | \n", "yL | \n", "100.0 | \n", "mPD3 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 30 | \n", "Sma | \n", "/sma/V11L12-038/V11L12-038_D1/output_data/V11L... | \n", "V11L12-038_Mouse_D1.Visium.9aa.220826_smamsi.csv | \n", "metabolites | \n", "NotCharged | \n", "V11L12-038 | \n", "V11L12-038_D1 | \n", "9-AA | \n", "yL | \n", "100.0 | \n", "mPD3 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 31 | \n", "Sma | \n", "/sma/V11L12-109/V11L12-109_A1/output_data/V11L... | \n", "V11L12-109_A1.Visium.FMP.220826_smamsi.csv | \n", "neurotransmitters | \n", "NotCharged | \n", "V11L12-109 | \n", "V11L12-109_A1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mPD1 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 32 | \n", "Sma | \n", "/sma/V11L12-109/V11L12-109_B1/output_data/V11L... | \n", "V11L12-109_B1.Visium.FMP.220826_smamsi.csv | \n", "neurotransmitters | \n", "NotCharged | \n", "V11L12-109 | \n", "V11L12-109_B1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mPD3 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 33 | \n", "Sma | \n", "/sma/V11L12-109/V11L12-109_C1/output_data/V11L... | \n", "V11L12-109_C1.Visium.FMP.220826_smamsi.csv | \n", "neurotransmitters | \n", "NotCharged | \n", "V11L12-109 | \n", "V11L12-109_C1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mPD4 | \n", "mPD | \n", "Striatum | \n", "Standard | \n", "
| 34 | \n", "Sma | \n", "/sma/V11T16-085/V11T16-085_A1/output_data/V11T... | \n", "V11T17-085_A1.Visium.FMP.220826_smamsi.csv | \n", "neurotransmitters | \n", "NotCharged | \n", "V11T16-085 | \n", "V11T16-085_A1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mPD1 | \n", "mPD | \n", "SubNigra | \n", "Standard | \n", "
| 35 | \n", "Sma | \n", "/sma/V11T16-085/V11T16-085_B1/output_data/V11T... | \n", "V11T17-085_B1.Visium.FMP.220826_smamsi.csv | \n", "neurotransmitters | \n", "NotCharged | \n", "V11T16-085 | \n", "V11T16-085_B1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mPD3 | \n", "mPD | \n", "SubNigra | \n", "Standard | \n", "
| 36 | \n", "Sma | \n", "/sma/V11T16-085/V11T16-085_C1/output_data/V11T... | \n", "V11T17-085_C1.Visium.FMP.220826_smamsi.csv | \n", "neurotransmitters | \n", "NotCharged | \n", "V11T16-085 | \n", "V11T16-085_C1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "mPD4 | \n", "mPD | \n", "SubNigra | \n", "Standard | \n", "
| 37 | \n", "Sma | \n", "/sma/V11T17-102/V11T17-102_A1/output_data/V11T... | \n", "V11T17-102_A1.Visium.FMP.220826_smamsi.csv | \n", "neurotransmitters | \n", "NotCharged | \n", "V11T17-102 | \n", "V11T17-102_A1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "hPD1 | \n", "hPD | \n", "Striatum | \n", "RNArescue | \n", "
| 38 | \n", "Sma | \n", "/sma/V11T17-102/V11T17-102_B1/output_data/V11T... | \n", "V11T17-102_B1.Visium.FMP.220826_smamsi.csv | \n", "neurotransmitters | \n", "NotCharged | \n", "V11T17-102 | \n", "V11T17-102_B1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "hPD1 | \n", "hPD | \n", "Striatum | \n", "RNArescue | \n", "
| 39 | \n", "Sma | \n", "/sma/V11T17-102/V11T17-102_C1/output_data/V11T... | \n", "V11T17-102_C1.Visium.FMP.220826_smamsi.csv | \n", "neurotransmitters | \n", "NotCharged | \n", "V11T17-102 | \n", "V11T17-102_C1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "hPD1 | \n", "hPD | \n", "Striatum | \n", "RNArescue | \n", "
| 40 | \n", "Sma | \n", "/sma/V11T17-102/V11T17-102_D1/output_data/V11T... | \n", "V11T17-102_D1.Visium.FMP.220826_smamsi.csv | \n", "neurotransmitters | \n", "NotCharged | \n", "V11T17-102 | \n", "V11T17-102_D1 | \n", "FMP-10 | \n", "yL | \n", "100.0 | \n", "hPD1 | \n", "hPD | \n", "Striatum | \n", "RNArescue | \n", "