{
"cells": [
{
"cell_type": "markdown",
"id": "539f7263-8136-4654-a771-01790adabeea",
"metadata": {
"tags": []
},
"source": [
"\n",
" "
]
},
{
"cell_type": "markdown",
"id": "0d991acc-8907-420b-8cdc-5536f44856f2",
"metadata": {
"tags": []
},
"source": [
"Before you start, make sure to set your runtime type to GPU in colab."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "af1bb4b1-102b-4764-9b1d-711773db9e36",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# Install SOFA + dependencies\n",
"!pip install --quiet biosofa"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "96e9ae47-b714-4804-93db-82c7f917dbf2",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--2024-11-07 10:03:30-- https://zenodo.org/records/14044221/files/pancan_depmap.h5mu?download=1\n",
"Resolving zenodo.org (zenodo.org)... 188.184.98.238, 188.184.103.159, 188.185.79.172, ...\n",
"Connecting to zenodo.org (zenodo.org)|188.184.98.238|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 79551896 (76M) [application/octet-stream]\n",
"Saving to: ‘pancan_depmap.h5mu?download=1’\n",
"\n",
"pancan_depmap.h5mu? 100%[===================>] 75.87M 534KB/s in 1m 55s \n",
"\n",
"2024-11-07 10:05:26 (677 KB/s) - ‘pancan_depmap.h5mu?download=1’ saved [79551896/79551896]\n",
"\n"
]
}
],
"source": [
"!wget https://zenodo.org/records/14044221/files/pancan_depmap.h5mu?download=1\n",
"!mv pancan_depmap.h5mu?download=1 pancan_depmap.h5mu"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "1039b922-7673-4ae5-bd80-0536c5a22b62",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"import pandas as pd\n",
"import sofa\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import matplotlib\n",
"from muon import MuData\n",
"import muon as mu\n",
"from sklearn.manifold import TSNE\n",
"import scanpy as sc\n",
"import anndata as ad\n",
"from anndata import AnnData\n",
"import torch"
]
},
{
"cell_type": "markdown",
"id": "48916839-4f05-4457-ad47-b9f588e704aa",
"metadata": {
"tags": []
},
"source": [
"# Analysis of DepMap data\n",
"\n",
"## Introduction\n",
"\n",
"In this notebook we will explore how `SOFA` can be used to analyze multi-omics data from the DepMap [[1,2,3,4,5]](#1,#2,#3,#4,#5). \n",
"Here we give a brief introduction what the SOFA model does and what it can be used for. For a more \n",
"detailed description please refer to our preprint: https://doi.org/10.1101/2024.10.10.617527 \n",
"\n",
"\n",
"### The SOFA model\n",
"Given a set of real-valued data\n",
"matrices containing multi-omic measurements from overlapping samples (also called views),\n",
"along with sample-level guiding variables that capture additional properties such as batches\n",
"or mutational profiles, SOFA extracts an interpretable lower-dimensional data representation,\n",
"consisting of a shared factor matrix and modality-specific loading matrices. The goal of these \n",
"factors is to explain the major axes of variation in the data. SOFA explicitly assigns a subset of factors \n",
"to explain both the multi-omics data and the guiding\n",
"variables (guided factors), while preserving another subset of factors exclusively\n",
"for explaining the multi-omics data (unguided factors). Importantly, this feature allows the\n",
"analyst to discern variation that is driven by known sources from novel, unexplained sources\n",
"of variability.\n",
"\n",
"#### Interpretation of the factors (Z)\n",
"Analogous to the interpretation of factors in PCA, SOFA factors ordinate samples along a\n",
"zero-centered axis, where samples with opposing signs exhibit contrasting phenotypes along\n",
"the inferred axis of variation, and the absolute value of the factor indicates the strength of the\n",
"phenotype. Importantly, SOFA partitions the factors of the low-rank decomposition into\n",
"guided and unguided factors: the guided factors are linked to specific guiding variables,\n",
"while the unguided factors capture global, yet unexplained, sources of variability in the data. \n",
"The factor values can be used in downstream analysis tasks related to the samples, such as clustering \n",
"or survival analysis. The factor values are called Z in SOFA.\n",
"\n",
"#### Interpretation of the loading weights (W)\n",
"SOFA’s loading weights indicate the importance of each feature for its respective factor,\n",
"thereby enabling the interpretation of SOFA factors. Loading weights close to zero indicate\n",
"that a feature has little to no importance for the respective factor, while large magnitudes\n",
"suggest strong relevance. The sign of the loading weight aligns with its corresponding factor,\n",
"meaning that positive loading weights indicate higher feature levels in samples with positive\n",
"factor values, and negative loading weights indicate higher feature levels in samples with\n",
"negative factor values. The top loading weights can be simply inspected or used in downstream analysis such as gene set \n",
"enrichment analysis. The factor values are called W in SOFA.\n",
"\n",
"#### Supported data\n",
"SOFA expects a set of matrices containing omics measurements with matching and aligned samples and different features. \n",
"Currently SOFA only supports Gaussian likelihoods, for the multi-omics data. \n",
"Data should therefore be appropriately normalized according to\n",
"its omics modality. Additionally, data should be centered and scaled.\n",
"\n",
"\n",
"For the guiding variables SOFA supports Gaussian, Bernoulli and Categorical likelihoods. Guiding variables\n",
"can therefore be continuous, binary or categorical. Guiding variables should be vectors with matching samples with \n",
"the multi-omics data.\n",
"\n",
"In SOFA the multi-omics data is denoted as X and the guiding variables as Y.\n",
"\n",
"\n",
"### The DepMap data set\n",
"The DepMap project aims to identify cancer vulnerabilities and drug targets across a diverse range of cancer types. The data set includes multi-omics data, encompassing transcriptomics[[4]](#4), proteomics[[1]](#1), and methylation[[5]](#5), as well as drug response profiles for 627 drugs[[5]](#5) and CRISPR-Cas9 gene essentiality scores[[2,3]](#2,#3) for 17485 genes for 949 cancer cell lines across 26 different tissues. We will fit a SOFA model with 20 factors, while accounting for potential/known drivers of variation such as growth rate, microsatellite instability (MSI) status, BRAF, TP53 and PIK3CA mutation and hematopoietic lineage. We will use the essentiality score data test factor associations with essentiality scores.\n",
"We will first load the preprocessed data in `MuData` format, fit a SOFA model and perform various downstream analyses. \n",
"\n",
"\n",
"\n",
"[1] \n",
"Gonçalves, E. et al. Pan-cancer proteomic map of 949 human cell lines. Cancer Cell 40, 835–849.e8 (2022).\\\n",
"[2] \n",
"Boehm, J. S. et al. Cancer research needs a better map. Nature 589, 514–516 (2021).\\\n",
"[3] \n",
"Pacini, C. et al. Integrated cross-study datasets of genetic dependencies in cancer. Nat. Commun. 12, 1661 (2021).\\\n",
"[4] \n",
"Garcia-Alonso, L. et al. Transcription factor activities enhance markers of drug sensitivity in cancer. Cancer Res. 78, 769–780 (2018).\\\n",
"[5] \n",
"Iorio, F. et al. A landscape of pharmacogenomic interactions in cancer. Cell 166, 740–754 (2016)."
]
},
{
"cell_type": "markdown",
"id": "8eb95739-7f76-4a0b-b806-860152361226",
"metadata": {
"tags": []
},
"source": [
"## Read data and set hyperparameters"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "9b3b41ce-966a-4726-a63c-aaf209c58813",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"
MuData object with n_obs × n_vars = 778 × 23503\n", " obs:\t'DepMap_ID', 'cell_line_name', 'stripped_cell_line_name', 'CCLE_Name', 'alias', 'COSMICID', 'sex', 'source', 'RRID', 'WTSI_Master_Cell_ID', 'sample_collection_site', 'primary_or_metastasis', 'primary_disease', 'Subtype', 'age', 'Sanger_Model_ID', 'depmap_public_comments', 'lineage', 'lineage_subtype', 'lineage_sub_subtype', 'lineage_molecular_subtype', 'default_growth_pattern', 'model_manipulation', 'model_manipulation_details', 'patient_id', 'parent_depmap_id', 'Cellosaurus_NCIt_disease', 'Cellosaurus_NCIt_id', 'Cellosaurus_issues', 'model_id', 'Project_Identifier', 'Cell_line', 'Source', 'Identifier', 'Gender', 'Tissue_type', 'Cancer_type', 'Cancer_subtype', 'Haem_lineage', 'BROAD_ID', 'CCLE_ID', 'ploidy', 'mutational_burden', 'msi_status', 'growth_properties', 'growth', 'size', 'media', 'replicates_correlation', 'number_of_proteins', 'EMT', 'Proteasome', 'TranslationInitiation', 'CopyNumberInstability', 'GeneExpressionCorrelation', 'CopyNumberAttenuation', 'crispr_source', 'hema/lymph'\n", " 12 modalities\n", " RNA:\t778 x 2000\n", " uns:\t'llh', 'log1p'\n", " obsm:\t'mask'\n", " Protein:\t778 x 2000\n", " uns:\t'llh'\n", " obsm:\t'mask'\n", " Methylation:\t778 x 2000\n", " uns:\t'llh', 'log1p'\n", " obsm:\t'mask'\n", " Drug response:\t778 x 627\n", " uns:\t'llh'\n", " obsm:\t'mask'\n", " CRISPR scores:\t778 x 16258\n", " uns:\t'llh'\n", " obsm:\t'mask'\n", " Mutations:\t778 x 612\n", " uns:\t'llh'\n", " obsm:\t'mask'\n", " Growth:\t778 x 1\n", " uns:\t'llh', 'scaling_factor'\n", " obsm:\t'mask'\n", " MSI:\t778 x 1\n", " uns:\t'llh', 'scaling_factor'\n", " obsm:\t'mask'\n", " BRAF:\t778 x 1\n", " uns:\t'llh', 'scaling_factor'\n", " obsm:\t'mask'\n", " TP53:\t778 x 1\n", " uns:\t'llh', 'scaling_factor'\n", " obsm:\t'mask'\n", " PIK3CA:\t778 x 1\n", " uns:\t'llh', 'scaling_factor'\n", " obsm:\t'mask'\n", " Hema:\t778 x 1\n", " uns:\t'llh', 'scaling_factor'\n", " obsm:\t'mask'" ], "text/plain": [ "MuData object with n_obs × n_vars = 778 × 23503\n", " obs:\t'DepMap_ID', 'cell_line_name', 'stripped_cell_line_name', 'CCLE_Name', 'alias', 'COSMICID', 'sex', 'source', 'RRID', 'WTSI_Master_Cell_ID', 'sample_collection_site', 'primary_or_metastasis', 'primary_disease', 'Subtype', 'age', 'Sanger_Model_ID', 'depmap_public_comments', 'lineage', 'lineage_subtype', 'lineage_sub_subtype', 'lineage_molecular_subtype', 'default_growth_pattern', 'model_manipulation', 'model_manipulation_details', 'patient_id', 'parent_depmap_id', 'Cellosaurus_NCIt_disease', 'Cellosaurus_NCIt_id', 'Cellosaurus_issues', 'model_id', 'Project_Identifier', 'Cell_line', 'Source', 'Identifier', 'Gender', 'Tissue_type', 'Cancer_type', 'Cancer_subtype', 'Haem_lineage', 'BROAD_ID', 'CCLE_ID', 'ploidy', 'mutational_burden', 'msi_status', 'growth_properties', 'growth', 'size', 'media', 'replicates_correlation', 'number_of_proteins', 'EMT', 'Proteasome', 'TranslationInitiation', 'CopyNumberInstability', 'GeneExpressionCorrelation', 'CopyNumberAttenuation', 'crispr_source', 'hema/lymph'\n", " 12 modalities\n", " RNA:\t778 x 2000\n", " uns:\t'llh', 'log1p'\n", " obsm:\t'mask'\n", " Protein:\t778 x 2000\n", " uns:\t'llh'\n", " obsm:\t'mask'\n", " Methylation:\t778 x 2000\n", " uns:\t'llh', 'log1p'\n", " obsm:\t'mask'\n", " Drug response:\t778 x 627\n", " uns:\t'llh'\n", " obsm:\t'mask'\n", " CRISPR scores:\t778 x 16258\n", " uns:\t'llh'\n", " obsm:\t'mask'\n", " Mutations:\t778 x 612\n", " uns:\t'llh'\n", " obsm:\t'mask'\n", " Growth:\t778 x 1\n", " uns:\t'llh', 'scaling_factor'\n", " obsm:\t'mask'\n", " MSI:\t778 x 1\n", " uns:\t'llh', 'scaling_factor'\n", " obsm:\t'mask'\n", " BRAF:\t778 x 1\n", " uns:\t'llh', 'scaling_factor'\n", " obsm:\t'mask'\n", " TP53:\t778 x 1\n", " uns:\t'llh', 'scaling_factor'\n", " obsm:\t'mask'\n", " PIK3CA:\t778 x 1\n", " uns:\t'llh', 'scaling_factor'\n", " obsm:\t'mask'\n", " Hema:\t778 x 1\n", " uns:\t'llh', 'scaling_factor'\n", " obsm:\t'mask'" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# First we read the preprocessed data as a single MuData object\n", "mdata = mu.read(\"pancan_depmap.h5mu\")\n", "mdata" ] }, { "cell_type": "markdown", "id": "2d6550fe-d5fc-4a56-8a54-ed3647c5bd2e", "metadata": {}, "source": [ "The mdata object contains 12 data modalities and the obs slot contains metadata of the cell lines. \n", "We will use RNA, Protein, Methylation and Drug response as the multi-omics data input for `SOFA`. \n", "We will use the modalities Growth (the growth rate of the cell lines), MSI (microsatellite instability status), BRAF (whether the cell line is mutated in BRAF), TP53 \n", "(whether the cell line is mutated in TP53), PIK3CA (whether the cell line is mutated in PIK3CA) and Hema (whether the cell line is from the \n", "hematopoietic lineage) as guiding variables. The modalities Mutations and CRISPR scores will be used in the downstream analysis, to test for significant associations with factors." ] }, { "cell_type": "code", "execution_count": null, "id": "84c4b6bb-8317-4dc3-b7e8-49b6b1e33e01", "metadata": { "tags": [] }, "outputs": [], "source": [ "# We create the MuData object Xmdata, which contains the multi-omics data:\n", "Xmdata = MuData({\"RNA\":mdata[\"RNA\"], \"Protein\":mdata[\"Protein\"], \"Methylation\":mdata[\"Methylation\"], \"Drug response\":mdata[\"Drug response\"]})\n", "# We create the MuData objectYmdata, which contains the guiding variables:\n", "Ymdata = MuData({\"Growth\":mdata[\"Growth\"], \"MSI\": mdata[\"MSI\"], \"BRAF\": mdata[\"BRAF\"], \"TP53\":mdata[\"TP53\"], \"PIK3CA\":mdata[\"PIK3CA\"], \"Hema\": mdata[\"Hema\"]})" ] }, { "cell_type": "markdown", "id": "6da7062f-3f08-4206-a6bd-478ab9b2ea45", "metadata": {}, "source": [ "### (Optional for this Tutorial) here we will show how you would prepare the input data for SOFA yourself\n", "We assume that you have a `pandas.DataFrame` for each of the data modalities. " ] }, { "cell_type": "code", "execution_count": 14, "id": "6572b8d9-73de-46be-a1f2-98141a1ac027", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Extract dataframes from the `MuData` object\n", "rna_df = mdata[\"RNA\"].to_df()\n", "prot_df = mdata[\"Protein\"].to_df()\n", "meth_df = mdata[\"Methylation\"].to_df()\n", "drug_df = mdata[\"Drug response\"].to_df()" ] }, { "cell_type": "markdown", "id": "e149922a-f51e-4e72-8240-50c0b506f753", "metadata": {}, "source": [ "Then we can use the sofa.tl.get_ad() function to produce an appropriate `AnnData` object." ] }, { "cell_type": "code", "execution_count": 15, "id": "9f00602d-915f-4e71-9a60-e7a311d509b6", "metadata": { "tags": [] }, "outputs": [], "source": [ "rna_ad = sofa.tl.get_ad(rna_df, llh = \"gaussian\") # currently only the Gaussian likelihood is supported for the omics data\n", "prot_ad = sofa.tl.get_ad(prot_df, llh = \"gaussian\")\n", "meth_ad = sofa.tl.get_ad(meth_df, llh = \"gaussian\")\n", "drug_ad = sofa.tl.get_ad(drug_df, llh = \"gaussian\")\n", "# Finally as before wrap all the `AnnData` objects in a single `MuData` object.\n", "Xmdata = MuData({\"RNA\":rna_ad, \"Protein\":prot_ad, \"Methylation\":meth_ad, \"Drug response\":drug_ad})" ] }, { "cell_type": "markdown", "id": "178662e2-a76f-4f01-bdc3-3fb7fab8f222", "metadata": {}, "source": [ "and analogously for the guiding variables:" ] }, { "cell_type": "code", "execution_count": 16, "id": "cee40548-3f54-48bf-ba35-e75fc0e7616a", "metadata": { "tags": [] }, "outputs": [], "source": [ "growth_df = mdata[\"Growth\"].to_df()\n", "msi_df = mdata[\"MSI\"].to_df()\n", "braf_df = mdata[\"BRAF\"].to_df()\n", "tp53_df = mdata[\"TP53\"].to_df()\n", "pik3ca_df = mdata[\"PIK3CA\"].to_df()\n", "hema_df = mdata[\"Hema\"].to_df()" ] }, { "cell_type": "markdown", "id": "eb408df0-9033-4b28-b3db-905f6a5dbe83", "metadata": {}, "source": [ "Again we can use the sofa.tl.get_ad() function to produce an appropriate `AnnData` object.\n", "We need to specify an appropriate likelihood for each guiding variables. For the continuous growth rate we use \n", "`gaussian` and for the remaining binary variables `bernoulli`. SOFA also supports the `categorical` likelihood.\n", "Additionally, we need to set a scaling factor for each guiding \n", "variables, determining the strength of the supervision in the fitting process. To high values lead to guided factors that do not explain any variance \n", "of the multi-omics data. Too low values would lead to factors that are not associated with their guiding variables.\n", "We recommend the default of 0.1." ] }, { "cell_type": "code", "execution_count": 19, "id": "c0ed3381-9784-4b39-aa40-2cd4c2d16776", "metadata": { "tags": [] }, "outputs": [], "source": [ "growth_ad = sofa.tl.get_ad(growth_df, llh = \"gaussian\", scaling_factor = 0.01) \n", "msi_ad = sofa.tl.get_ad(msi_df, llh = \"bernoulli\", scaling_factor = 0.1)\n", "braf_ad = sofa.tl.get_ad(braf_df, llh = \"bernoulli\", scaling_factor = 0.1)\n", "tp53_ad = sofa.tl.get_ad(tp53_df, llh = \"bernoulli\", scaling_factor = 0.1)\n", "pik3ca_ad = sofa.tl.get_ad(pik3ca_df, llh = \"bernoulli\", scaling_factor = 0.1)\n", "hema_ad = sofa.tl.get_ad(hema_df, llh = \"bernoulli\", scaling_factor = 0.1)\n", "\n", "# Finally as before wrap all the `AnnData` objects in a single `MuData` object.\n", "Ymdata = MuData({\"Growth\":growth_ad, \"MSI\": msi_ad, \"BRAF\": braf_ad, \"TP53\": tp53_ad, \"PIK3CA\": pik3ca_ad, \"Hema\": hema_ad})" ] }, { "cell_type": "code", "execution_count": 20, "id": "3c321a3d-3bd0-4b51-8fd1-b9d2780cc840", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "tensor([[1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0.],\n", " [0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0.],\n", " [0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0.],\n", " [0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0.],\n", " [0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0.],\n", " [0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", " 0., 0.]], dtype=torch.float64)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# We set the number of factors to infer\n", "num_factors = 20\n", "# Use obs as metadata of the cell lines\n", "metadata = mdata.obs\n", "# In order to relate factors to guiding variables we need to provide a design matrix (guiding variables x number of factors) \n", "# indicating which factor is guided by which guiding variable.\n", "# Here we just indicate that the first 6 factors are each guided by a different guiding variable:\n", "design = np.zeros((len(Ymdata.mod), num_factors))\n", "for i in range(len(Ymdata.mod)):\n", " design[i,i] = 1\n", " \n", "# convert to torch tensor to make it usable by SOFA\n", "design = torch.tensor(design)\n", "design" ] }, { "cell_type": "markdown", "id": "0f111725-7a24-4b32-94d0-5f133fae5d77", "metadata": { "tags": [] }, "source": [ "## Fit the `SOFA` model" ] }, { "cell_type": "code", "execution_count": 21, "id": "4fdcecf1-88bb-4f61-a235-2fcb581481ce", "metadata": { "tags": [] }, "outputs": [], "source": [ "model = sofa.SOFA(Xmdata = Xmdata, # the input multi-omics data \n", " num_factors=num_factors, # number of factors to infer\n", " Ymdata = Ymdata, # the input guiding variables\n", " design = design, # design matrix relating factors to guiding variables\n", " device='cuda', # set device to \"cuda\" to enable computation on the GPU, if you don't have a GPU available set it to \"cpu\"\n", " seed=42) # set seed to get the same results every time we run it" ] }, { "cell_type": "code", "execution_count": 22, "id": "3b1c2f5c-5a15-4710-865b-adc99181b81e", "metadata": { "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Current Elbo 3.69E+06 | Delta: 494761: 100%|██████████| 3000/3000 [05:01<00:00, 9.94it/s] \n", "Current Elbo 2.61E+06 | Delta: -65210: 100%|██████████| 3000/3000 [04:43<00:00, 10.58it/s] \n" ] } ], "source": [ "# train SOFA with learning rate of 0.01 for 3000 steps\n", "model.fit(n_steps=3000, lr=0.01)\n", "# decrease learning rate to 0.005 and continue training\n", "model.fit(n_steps=3000, lr=0.005)" ] }, { "cell_type": "code", "execution_count": 6, "id": "8eca0ee3-88f3-49d9-a2bd-6563a429410c", "metadata": { "tags": [] }, "outputs": [], "source": [ "# if we would like to save the fitted model we can save it using:\n", "#sofa.tl.save_model(model,\"depmap_example_model\")\n", "\n", "# to load the model use:\n", "model = sofa.tl.load_model(\"depmap_example_model\")" ] }, { "cell_type": "markdown", "id": "9bb9324a-d093-4995-84ff-b9745e18c2a6", "metadata": { "tags": [] }, "source": [ "## Downstream analysis\n", "\n", "\n", "### Convergence\n", "\n", "We will first assess whether the ELBO loss of SOFA has converged by plotting it over training steps" ] }, { "cell_type": "code", "execution_count": 15, "id": "f95de90d-80dd-44d9-9ce2-28d059cc613c", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'ELBO')" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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jr4KnBN9daGRHK+wXHUFAADCA0EHAACELIKOQ2JiYjRlyhTFxMTYLqXWo68CR19VD/0VOPoqcPRV4GpDX4X1ZGQAABDaGNEBAAAhi6ADAABCFkEHAACELIIOAAAIWQQdB7z88svq0KGDYmNj1bdvX33++ee2S3LcqlWrdMstt6hVq1ZyuVx6//33/Y4bYzR16lS1atVK9erV09ChQ7V161a/c4qLi/Xoo4+qadOmatCggW699VZ9++23fufk5OTo7rvvVkJCghISEnT33Xfr5MmTDv/patbMmTPVr18/xcXFqXnz5hozZox27Njhdw79dcbs2bPVs2dP32ZjgwYN0qJFi3zH6afzmzlzplwulyZMmOBro7/OmDp1qlwul99PYmKi7zj95O/gwYO666671KRJE9WvX1+9e/fWxo0bfcdrfX8Z1Kj58+ebqKgoM2fOHJORkWEef/xx06BBA7N//37bpTnq448/NpMnTzYLFiwwksx7773ndzwlJcXExcWZBQsWmM2bN5vbb7/dtGzZ0uTl5fnOGTdunLn88svNkiVLzKZNm8z1119vevXqZcrKynzn/PCHPzTdu3c3q1evNqtXrzbdu3c3o0ePDtYfs0YMHz7czJ0712zZssWkp6ebUaNGmbZt25qCggLfOfTXGR988IFZuHCh2bFjh9mxY4d5+umnTVRUlNmyZYsxhn46n3Xr1pn27dubnj17mscff9zXTn+dMWXKFNOtWzdz+PBh3092drbvOP101okTJ0y7du3MfffdZ7788kuzd+9es3TpUrN7927fObW9vwg6Nax///5m3Lhxfm1dunQxEydOtFRR8J0bdDwej0lMTDQpKSm+tqKiIpOQkGBeeeUVY4wxJ0+eNFFRUWb+/Pm+cw4ePGgiIiLMJ598YowxJiMjw0gya9eu9Z2zZs0aI8ls377d4T+Vc7Kzs40ks3LlSmMM/XUhjRo1Mq+99hr9dB75+fmmc+fOZsmSJea6667zBR3666wpU6aYXr16VXqMfvL31FNPmSFDhpz3eF3oL25d1aCSkhJt3LhRN998s1/7zTffrNWrV1uqyr69e/cqKyvLr19iYmJ03XXX+fpl48aNKi0t9TunVatW6t69u++cNWvWKCEhQQMGDPCdM3DgQCUkJNTp/s3NzZUkNW7cWBL9dT7l5eWaP3++Tp06pUGDBtFP5zF+/HiNGjVKN954o187/eVv165datWqlTp06KA77rhDe/bskUQ/neuDDz5QcnKyfvKTn6h58+a66qqrNGfOHN/xutBfBJ0adOzYMZWXl6tFixZ+7S1atFBWVpalquzz/tmr6pesrCxFR0erUaNGVZ7TvHnzCt/fvHnzOtu/xhg98cQTGjJkiLp37y6J/jrX5s2b1bBhQ8XExGjcuHF67733lJSURD9VYv78+dq0aZNmzpxZ4Rj9ddaAAQP097//XYsXL9acOXOUlZWlwYMH6/jx4/TTOfbs2aPZs2erc+fOWrx4scaNG6fHHntMf//73yXVjf+vwvrp5U5xuVx+740xFdrC0cX0y7nnVHZ+Xe7fRx55RF9//bW++OKLCsforzOuvPJKpaen6+TJk1qwYIHuvfderVy50necfjrjwIEDevzxx/Xpp58qNjb2vOfRX9KIESN8r3v06KFBgwbpBz/4gV5//XUNHDhQEv3k5fF4lJycrBkzZkiSrrrqKm3dulWzZ8/WPffc4zuvNvcXIzo1qGnTpnK73RXSZ3Z2doW0G068qxmq6pfExESVlJQoJyenynOOHDlS4fuPHj1aJ/v30Ucf1QcffKDly5erdevWvnb6y190dLQ6deqk5ORkzZw5U7169dKf/vQn+ukcGzduVHZ2tvr27avIyEhFRkZq5cqVeumllxQZGen7s9BfFTVo0EA9evTQrl27+P/qHC1btlRSUpJfW9euXZWZmSmpbvx7RdCpQdHR0erbt6+WLFni175kyRINHjzYUlX2dejQQYmJiX79UlJSopUrV/r6pW/fvoqKivI75/Dhw9qyZYvvnEGDBik3N1fr1q3znfPll18qNze3TvWvMUaPPPKI3n33XS1btkwdOnTwO05/Vc0Yo+LiYvrpHMOGDdPmzZuVnp7u+0lOTtbYsWOVnp6ujh070l/nUVxcrG3btqlly5b8f3WOq6++usL2Fzt37lS7du0k1ZF/ry5pKjMq8C4v/9vf/mYyMjLMhAkTTIMGDcy+fftsl+ao/Px8k5aWZtLS0owk8+KLL5q0tDTfsvqUlBSTkJBg3n33XbN582Zz5513Vrr8sHXr1mbp0qVm06ZN5oYbbqh0+WHPnj3NmjVrzJo1a0yPHj3q3HLNhx9+2CQkJJgVK1b4LW8tLCz0nUN/nTFp0iSzatUqs3fvXvP111+bp59+2kRERJhPP/3UGEM/Xcj3V10ZQ395Pfnkk2bFihVmz549Zu3atWb06NEmLi7O9+80/XTWunXrTGRkpJk+fbrZtWuXeeutt0z9+vXNm2++6TuntvcXQccBqamppl27diY6Otr06dPHt2w4lC1fvtxIqvBz7733GmPOLEGcMmWKSUxMNDExMebaa681mzdv9vuO06dPm0ceecQ0btzY1KtXz4wePdpkZmb6nXP8+HEzduxYExcXZ+Li4szYsWNNTk5OkP6UNaOyfpJk5s6d6zuH/jrjgQce8P1datasmRk2bJgv5BhDP13IuUGH/jrDu89LVFSUadWqlfnRj35ktm7d6jtOP/n78MMPTffu3U1MTIzp0qWLefXVV/2O1/b+chljzKWNCQEAANROzNEBAAAhi6ADAABCFkEHAACELIIOAAAIWQQdAAAQsgg6AAAgZBF0AABAyCLoAACAkEXQARB0Q4cO1YQJEwI+f9++fXK5XEpPT3esJgChiZ2RAZyXy+Wq8vi9996refPmVft7T5w4oaioKMXFxQV0fnl5uY4ePaqmTZsqMjKy2terCfv27VOHDh2Ulpam3r17W6kBQPXZ+RcDQJ1w+PBh3+u3335bzz33nN+TjOvVq+d3fmlpqaKioi74vY0bN65WHW63W4mJidX6DABI3LoCUIXExETfT0JCglwul+99UVGRLrvsMr3zzjsaOnSoYmNj9eabb+r48eO688471bp1a9WvX189evTQP//5T7/vPffWVfv27TVjxgw98MADiouLU9u2bfXqq6/6jp9762rFihVyuVz67LPPlJycrPr162vw4MF+IUySpk2bpubNmysuLk4PPfSQJk6cWOVoTE5OjsaOHatmzZqpXr166ty5s+bOnStJ6tChgyTpqquuksvl0tChQ32fmzt3rrp27arY2Fh16dJFL7/8coXa58+fr8GDBys2NlbdunXTihUrArougEtD0AFwSZ566ik99thj2rZtm4YPH66ioiL17dtXH330kbZs2aKf/exnuvvuu/Xll19W+T0vvPCCkpOTlZaWpp///Od6+OGHtX379io/M3nyZL3wwgvasGGDIiMj9cADD/iOvfXWW5o+fbqef/55bdy4UW3bttXs2bOr/L5nn31WGRkZWrRokbZt26bZs2eradOmkqR169ZJkpYuXarDhw/r3XfflSTNmTNHkydP1vTp07Vt2zbNmDFDzz77rF5//XW/7/7lL3+pJ598UmlpaRo8eLBuvfVWHT9+/ILXBXCJLvn55wDCwty5c01CQoLv/d69e40k88c//vGCnx05cqR58sknfe+vu+468/jjj/vet2vXztx1112+9x6PxzRv3tzMnj3b71ppaWnGGGOWL19uJJmlS5f6PrNw4UIjyZw+fdoYY8yAAQPM+PHj/eq4+uqrTa9evc5b5y233GLuv//+So+dW4NXmzZtzD/+8Q+/tt/+9rdm0KBBfp9LSUnxHS8tLTWtW7c2zz///AWvC+DSMKID4JIkJyf7vS8vL9f06dPVs2dPNWnSRA0bNtSnn36qzMzMKr+nZ8+evtfeW2TZ2dkBf6Zly5aS5PvMjh071L9/f7/zz31/rocffljz589X79699atf/UqrV6+u8vyjR4/qwIEDevDBB9WwYUPfz7Rp0/TNN9/4nTto0CDf68jISCUnJ2vbtm0XdV0AgSPoALgkDRo08Hv/wgsvaNasWfrVr36lZcuWKT09XcOHD1dJSUmV33PuJGaXyyWPxxPwZ7wrxL7/mXNXjZkLLDIdMWKE9u/frwkTJujQoUMaNmyYfvGLX5z3fO+15syZo/T0dN/Pli1btHbt2iqv9f36qntdAIEj6ACoUZ9//rluu+023XXXXerVq5c6duyoXbt2Bb2OK6+80jevxmvDhg0X/FyzZs1033336c0339Qf//hH36To6OhoSWdGrLxatGihyy+/XHv27FGnTp38fryTl72+H3zKysq0ceNGdenS5YLXBXBpWF4OoEZ16tRJCxYs0OrVq9WoUSO9+OKLysrKUteuXYNax6OPPqqf/vSnSk5O1uDBg/X222/r66+/VseOHc/7meeee059+/ZVt27dVFxcrI8++shXd/PmzVWvXj198sknat26tWJjY5WQkKCpU6fqscceU3x8vEaMGKHi4mJt2LBBOTk5euKJJ3zfnZqaqs6dO6tr166aNWuWcnJyfJOnq7ougEvDiA6AGvXss8+qT58+Gj58uIYOHarExESNGTMm6HWMHTtWkyZN0i9+8Qv16dNHe/fu1X333afY2NjzfiY6OlqTJk1Sz549de2118rtdmv+/PmSzsyreemll/TXv/5VrVq10m233SZJeuihh/Taa69p3rx56tGjh6677jrNmzevwohOSkqKnn/+efXq1Uuff/65/vWvf/lWVlV1XQCXhp2RAYSNm266SYmJiXrjjTeCdk12VAbs4tYVgJBUWFioV155RcOHD5fb7dY///lPLV26VEuWLLFdGoAgIugACEkul0sff/yxpk2bpuLiYl155ZVasGCBbrzxRtulAQgibl0BAICQxWRkAAAQsgg6AAAgZBF0AABAyCLoAACAkEXQAQAAIYugAwAAQhZBBwAAhCyCDgAACFn/HyFnEWVG97VeAAAAAElFTkSuQmCC", "text/plain": [ "
\n", " | Factor_0 (Growth) | \n", "Factor_1 (MSI) | \n", "Factor_2 (BRAF) | \n", "Factor_3 (TP53) | \n", "Factor_4 (PIK3CA) | \n", "Factor_5 (Hema) | \n", "Factor_6 | \n", "Factor_7 | \n", "Factor_8 | \n", "Factor_9 | \n", "Factor_10 | \n", "Factor_11 | \n", "Factor_12 | \n", "Factor_13 | \n", "Factor_14 | \n", "Factor_15 | \n", "Factor_16 | \n", "Factor_17 | \n", "Factor_18 | \n", "Factor_19 | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "-0.984563 | \n", "0.094903 | \n", "1.867936 | \n", "0.991292 | \n", "-0.005510 | \n", "0.174301 | \n", "-0.149569 | \n", "-0.101285 | \n", "0.118306 | \n", "0.228873 | \n", "-0.208032 | \n", "-0.263638 | \n", "-0.600392 | \n", "-0.382208 | \n", "0.140103 | \n", "0.344184 | \n", "-0.815846 | \n", "0.459298 | \n", "0.719330 | \n", "-0.313031 | \n", "
1 | \n", "-0.674658 | \n", "0.031586 | \n", "-0.789824 | \n", "-0.407347 | \n", "1.124087 | \n", "0.458733 | \n", "-0.060520 | \n", "-0.040364 | \n", "-0.503078 | \n", "-0.399277 | \n", "0.166812 | \n", "-0.032913 | \n", "0.652486 | \n", "-0.614164 | \n", "0.154161 | \n", "0.377786 | \n", "0.100994 | \n", "-1.004648 | \n", "-0.408009 | \n", "0.504229 | \n", "
2 | \n", "-0.361459 | \n", "-0.191929 | \n", "-0.307024 | \n", "0.383602 | \n", "0.018404 | \n", "0.897071 | \n", "0.294184 | \n", "-0.372404 | \n", "0.148475 | \n", "0.785472 | \n", "-0.204483 | \n", "0.098536 | \n", "0.097677 | \n", "0.411425 | \n", "-0.391176 | \n", "0.374827 | \n", "0.386192 | \n", "-0.456484 | \n", "0.346030 | \n", "0.550844 | \n", "
3 | \n", "-0.605062 | \n", "-0.200432 | \n", "-0.299046 | \n", "0.202695 | \n", "0.221496 | \n", "0.108696 | \n", "-0.091975 | \n", "0.026284 | \n", "0.158653 | \n", "0.096715 | \n", "0.113269 | \n", "-0.056898 | \n", "-0.152790 | \n", "0.209436 | \n", "0.354010 | \n", "0.336211 | \n", "0.376640 | \n", "-0.477210 | \n", "-0.379058 | \n", "0.468571 | \n", "
4 | \n", "0.212342 | \n", "-0.120816 | \n", "-0.212216 | \n", "0.690939 | \n", "0.186770 | \n", "0.897576 | \n", "0.123370 | \n", "0.123256 | \n", "-0.111156 | \n", "0.608043 | \n", "-0.065553 | \n", "0.236904 | \n", "-0.198532 | \n", "-0.240049 | \n", "-0.649414 | \n", "0.371791 | \n", "0.641309 | \n", "0.105965 | \n", "0.207381 | \n", "0.464103 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
773 | \n", "-0.030411 | \n", "-0.103553 | \n", "-0.316009 | \n", "0.223481 | \n", "0.244809 | \n", "0.518574 | \n", "0.131121 | \n", "-0.026001 | \n", "-0.492095 | \n", "-0.288541 | \n", "0.167538 | \n", "0.161157 | \n", "0.659408 | \n", "-0.443171 | \n", "0.323169 | \n", "-0.498860 | \n", "-0.499177 | \n", "-1.300491 | \n", "0.662859 | \n", "0.273217 | \n", "
774 | \n", "0.561793 | \n", "-0.662839 | \n", "0.209959 | \n", "-0.977655 | \n", "0.237925 | \n", "0.574140 | \n", "-0.069846 | \n", "0.001591 | \n", "-1.813954 | \n", "0.000474 | \n", "-0.044735 | \n", "0.296505 | \n", "-0.099778 | \n", "0.061658 | \n", "0.567360 | \n", "0.424479 | \n", "-0.512040 | \n", "1.120325 | \n", "-0.449671 | \n", "-1.028471 | \n", "
775 | \n", "0.208128 | \n", "-0.140388 | \n", "0.508802 | \n", "-0.937757 | \n", "-0.153248 | \n", "-2.141505 | \n", "-0.047474 | \n", "0.235640 | \n", "0.024192 | \n", "-0.118403 | \n", "-0.061317 | \n", "-0.530468 | \n", "0.032437 | \n", "-0.095084 | \n", "-0.306878 | \n", "-0.375194 | \n", "0.274054 | \n", "0.427416 | \n", "-1.491817 | \n", "0.362090 | \n", "
776 | \n", "1.427114 | \n", "-1.299472 | \n", "-0.234395 | \n", "-0.894223 | \n", "0.246734 | \n", "0.601628 | \n", "0.543358 | \n", "0.153857 | \n", "-1.782104 | \n", "0.350788 | \n", "0.240557 | \n", "0.425656 | \n", "-0.485319 | \n", "0.379114 | \n", "-0.334070 | \n", "-0.889224 | \n", "0.031068 | \n", "0.376890 | \n", "-0.444826 | \n", "-0.905731 | \n", "
777 | \n", "-0.233796 | \n", "0.198935 | \n", "2.749278 | \n", "1.159026 | \n", "-0.625919 | \n", "0.637330 | \n", "-0.659517 | \n", "1.177139 | \n", "0.177545 | \n", "0.033086 | \n", "-0.106065 | \n", "-0.191898 | \n", "-0.288880 | \n", "-1.048721 | \n", "-0.279230 | \n", "0.333567 | \n", "0.657307 | \n", "0.193587 | \n", "2.300986 | \n", "-0.597988 | \n", "
778 rows × 20 columns
\n", "symbol | \n", "A2M | \n", "AADACL2 | \n", "AADACL3 | \n", "AARD | \n", "ABCB10P1 | \n", "ABI3BP | \n", "ACAN | \n", "ACKR3 | \n", "ACP3 | \n", "ACTA2 | \n", "... | \n", "XBP1 | \n", "XCL2 | \n", "ZNF683 | \n", "ZNF723 | \n", "ZNRF4 | \n", "ZP2 | \n", "ZP4 | \n", "ZPLD1 | \n", "ZSCAN10 | \n", "ZSWIM5P3 | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "0.015295 | \n", "0.071497 | \n", "0.035568 | \n", "0.089748 | \n", "-0.044069 | \n", "0.073249 | \n", "0.057849 | \n", "0.014150 | \n", "-0.007009 | \n", "-0.008777 | \n", "... | \n", "-0.029756 | \n", "0.015113 | \n", "0.042406 | \n", "0.026360 | \n", "0.010476 | \n", "-0.007051 | \n", "-0.005228 | \n", "-0.024504 | \n", "0.009037 | \n", "0.015518 | \n", "
1 | \n", "-0.034314 | \n", "-0.000051 | \n", "0.023871 | \n", "-0.097714 | \n", "0.070291 | \n", "-0.047070 | \n", "0.091474 | \n", "-0.057706 | \n", "-0.268044 | \n", "-0.026221 | \n", "... | \n", "-0.037763 | \n", "0.029878 | \n", "0.045231 | \n", "-0.062290 | \n", "-0.131012 | \n", "-0.080212 | \n", "-0.024728 | \n", "-0.048543 | \n", "0.021252 | \n", "-0.004852 | \n", "
2 | \n", "-0.321572 | \n", "0.045532 | \n", "0.004737 | \n", "-0.070684 | \n", "-0.024462 | \n", "-0.011495 | \n", "-0.150803 | \n", "0.258310 | \n", "-0.023645 | \n", "0.054582 | \n", "... | \n", "0.071099 | \n", "0.111338 | \n", "0.020180 | \n", "-0.049511 | \n", "-0.059965 | \n", "0.063550 | \n", "-0.019318 | \n", "0.126384 | \n", "0.001582 | \n", "0.015054 | \n", "
3 | \n", "-0.009988 | \n", "-0.003648 | \n", "0.012213 | \n", "0.121117 | \n", "0.031789 | \n", "-0.031690 | \n", "-0.033959 | \n", "0.002975 | \n", "-0.057448 | \n", "-0.136400 | \n", "... | \n", "-0.068956 | \n", "0.031779 | \n", "0.245507 | \n", "0.027935 | \n", "0.038758 | \n", "-0.057646 | \n", "-0.054516 | \n", "-0.055807 | \n", "-0.005945 | \n", "-0.003330 | \n", "
4 | \n", "-0.104526 | \n", "0.066071 | \n", "0.052031 | \n", "0.007025 | \n", "0.083235 | \n", "0.038949 | \n", "-0.075813 | \n", "0.105265 | \n", "0.076275 | \n", "0.093963 | \n", "... | \n", "-0.027402 | \n", "0.041936 | \n", "0.013638 | \n", "0.020756 | \n", "0.009367 | \n", "0.003728 | \n", "0.026330 | \n", "0.006912 | \n", "0.076745 | \n", "-0.143186 | \n", "
5 | \n", "0.102369 | \n", "0.060284 | \n", "0.038335 | \n", "0.013700 | \n", "-0.111408 | \n", "0.278752 | \n", "0.066290 | \n", "0.134587 | \n", "-0.168386 | \n", "0.098990 | \n", "... | \n", "-0.064056 | \n", "-0.045495 | \n", "-0.201629 | \n", "-0.056866 | \n", "-0.007317 | \n", "-0.084082 | \n", "-0.051703 | \n", "0.098773 | \n", "-0.122135 | \n", "-0.010227 | \n", "
6 | \n", "-0.177834 | \n", "-0.042088 | \n", "0.000444 | \n", "0.010341 | \n", "0.108204 | \n", "0.005978 | \n", "0.027057 | \n", "-0.006823 | \n", "-0.105048 | \n", "-0.166809 | \n", "... | \n", "0.147754 | \n", "-0.021945 | \n", "0.199206 | \n", "0.040381 | \n", "-0.033136 | \n", "-0.052512 | \n", "0.018241 | \n", "-0.003154 | \n", "0.250065 | \n", "-0.082886 | \n", "
7 | \n", "0.064315 | \n", "-0.179968 | \n", "0.041989 | \n", "-0.258878 | \n", "-0.158774 | \n", "0.052421 | \n", "0.052402 | \n", "-0.184161 | \n", "-0.064313 | \n", "-0.016940 | \n", "... | \n", "0.120286 | \n", "-0.008686 | \n", "-0.231400 | \n", "0.272920 | \n", "-0.021050 | \n", "0.109255 | \n", "0.118702 | \n", "0.021676 | \n", "-0.181603 | \n", "-0.013686 | \n", "
8 | \n", "0.022922 | \n", "0.312208 | \n", "0.010867 | \n", "-0.191499 | \n", "0.106837 | \n", "-0.229320 | \n", "-0.008715 | \n", "-0.210733 | \n", "0.037657 | \n", "0.062167 | \n", "... | \n", "0.085694 | \n", "0.040236 | \n", "-0.080379 | \n", "-0.042302 | \n", "0.103474 | \n", "-0.319116 | \n", "0.086957 | \n", "-0.002122 | \n", "0.176039 | \n", "-0.005275 | \n", "
9 | \n", "-0.307194 | \n", "0.043982 | \n", "0.100535 | \n", "-0.267381 | \n", "-0.050292 | \n", "-0.010615 | \n", "-0.169009 | \n", "0.112214 | \n", "0.375080 | \n", "-0.178900 | \n", "... | \n", "0.012742 | \n", "-0.063244 | \n", "-0.010274 | \n", "-0.093946 | \n", "-0.064835 | \n", "0.015574 | \n", "0.066980 | \n", "0.022103 | \n", "-0.124436 | \n", "-0.030850 | \n", "
10 | \n", "-0.460474 | \n", "-0.161775 | \n", "0.248694 | \n", "0.026441 | \n", "0.160128 | \n", "0.045803 | \n", "-0.233451 | \n", "-0.090797 | \n", "0.112407 | \n", "0.233218 | \n", "... | \n", "0.098966 | \n", "-0.276042 | \n", "-0.014679 | \n", "0.299511 | \n", "0.042258 | \n", "-0.020505 | \n", "-0.006881 | \n", "-0.029953 | \n", "0.251095 | \n", "0.169541 | \n", "
11 | \n", "-0.011533 | \n", "0.112840 | \n", "0.052935 | \n", "-0.015447 | \n", "-0.496742 | \n", "-0.003645 | \n", "0.026647 | \n", "0.325467 | \n", "-0.001202 | \n", "0.038805 | \n", "... | \n", "0.125546 | \n", "-0.109403 | \n", "-0.441826 | \n", "-0.083174 | \n", "-0.185597 | \n", "-0.014198 | \n", "0.024846 | \n", "-0.064795 | \n", "0.087614 | \n", "0.030194 | \n", "
12 | \n", "0.245613 | \n", "0.296580 | \n", "-0.038640 | \n", "-0.305640 | \n", "-0.124200 | \n", "0.271039 | \n", "0.256376 | \n", "0.541047 | \n", "0.342560 | \n", "0.444382 | \n", "... | \n", "0.560416 | \n", "-0.040864 | \n", "-0.018886 | \n", "-0.035057 | \n", "0.008567 | \n", "0.115618 | \n", "0.088392 | \n", "-0.240834 | \n", "-0.047551 | \n", "-0.004341 | \n", "
13 | \n", "-0.660592 | \n", "0.019101 | \n", "-0.120316 | \n", "-0.134759 | \n", "-0.079046 | \n", "-0.341223 | \n", "-0.456594 | \n", "-0.103917 | \n", "0.044514 | \n", "-0.499875 | \n", "... | \n", "0.023534 | \n", "0.128351 | \n", "-0.001446 | \n", "-0.276361 | \n", "0.020640 | \n", "0.088788 | \n", "-0.147279 | \n", "-0.029944 | \n", "0.029581 | \n", "0.008861 | \n", "
14 | \n", "-0.085970 | \n", "-0.005224 | \n", "-0.109311 | \n", "-0.124855 | \n", "0.053398 | \n", "0.029236 | \n", "-0.034264 | \n", "-0.209597 | \n", "0.003543 | \n", "-0.030162 | \n", "... | \n", "0.104430 | \n", "-0.231496 | \n", "-0.059287 | \n", "-0.001135 | \n", "0.046376 | \n", "0.015712 | \n", "-0.034782 | \n", "-0.005570 | \n", "0.020778 | \n", "-0.011761 | \n", "
15 | \n", "-0.010765 | \n", "-0.039279 | \n", "-0.028720 | \n", "0.005197 | \n", "-0.021794 | \n", "-0.020378 | \n", "0.005175 | \n", "0.006982 | \n", "0.017629 | \n", "-0.019821 | \n", "... | \n", "-0.011246 | \n", "0.008254 | \n", "0.046750 | \n", "0.060618 | \n", "0.022018 | \n", "-0.094701 | \n", "0.021379 | \n", "-0.037993 | \n", "-0.040373 | \n", "-0.096038 | \n", "
16 | \n", "-0.102186 | \n", "0.118045 | \n", "0.007831 | \n", "0.033710 | \n", "0.026295 | \n", "-0.103503 | \n", "-0.186066 | \n", "-0.038786 | \n", "0.027735 | \n", "-0.093989 | \n", "... | \n", "-0.233836 | \n", "0.137448 | \n", "0.046462 | \n", "-0.017949 | \n", "-0.011706 | \n", "-0.010605 | \n", "0.010610 | \n", "-0.056985 | \n", "0.004476 | \n", "0.000662 | \n", "
17 | \n", "-0.133406 | \n", "0.200971 | \n", "0.115494 | \n", "0.210792 | \n", "0.246593 | \n", "-0.616548 | \n", "-0.265424 | \n", "0.108277 | \n", "0.383489 | \n", "-0.634510 | \n", "... | \n", "0.005781 | \n", "0.341722 | \n", "-0.029150 | \n", "0.164946 | \n", "-0.003980 | \n", "0.146180 | \n", "0.165554 | \n", "-0.024582 | \n", "-0.000005 | \n", "-0.012273 | \n", "
18 | \n", "-0.031818 | \n", "0.005847 | \n", "0.032746 | \n", "-0.134567 | \n", "0.327935 | \n", "0.030983 | \n", "-0.019491 | \n", "0.083426 | \n", "0.073085 | \n", "-0.001174 | \n", "... | \n", "-0.062192 | \n", "0.260967 | \n", "-0.008846 | \n", "0.142483 | \n", "-0.016763 | \n", "-0.008566 | \n", "-0.008396 | \n", "-0.053864 | \n", "0.054478 | \n", "0.011180 | \n", "
19 | \n", "-0.600847 | \n", "0.053716 | \n", "0.075986 | \n", "-0.049103 | \n", "0.048417 | \n", "0.555588 | \n", "-0.332565 | \n", "0.418213 | \n", "-0.372007 | \n", "0.248540 | \n", "... | \n", "-0.052842 | \n", "0.318683 | \n", "-0.009427 | \n", "0.426128 | \n", "-0.065958 | \n", "-0.097275 | \n", "0.261584 | \n", "0.066420 | \n", "-0.060836 | \n", "0.083081 | \n", "
20 rows × 2000 columns
\n", "