{ "cells": [ { "cell_type": "markdown", "id": "b141efa8", "metadata": {}, "source": [ "# 3. Generating a 4D-Communication Tensor from computed communication scores\n", "\n", "After inferring communication scores for combinations of ligand-receptor and sender-receiver cell pairs, we can use that information to identify context-dependent CCC patterns across multiple samples simultaneously by generating a 4D-Communication Tensor. LIANA handily outputs these score as a dataframe that is easy to use for building our tensor.\n", "\n", "In this tutorial we will show you how to use the dataframe saved from LIANA to generate a 4D-Communication Tensor that could be later used with Tensor-cell2cell." ] }, { "cell_type": "markdown", "id": "739c7ec9", "metadata": {}, "source": [ "## Initial Setup" ] }, { "cell_type": "markdown", "id": "326b8af3", "metadata": {}, "source": [ "**Import the necessary packages**" ] }, { "cell_type": "code", "execution_count": 1, "id": "465067f9", "metadata": {}, "outputs": [], "source": [ "import cell2cell as c2c\n", "import liana as li\n", "\n", "import numpy as np\n", "import pandas as pd" ] }, { "cell_type": "markdown", "id": "fcd8c7e6", "metadata": {}, "source": [ "## Directories" ] }, { "cell_type": "code", "execution_count": 2, "id": "ce6752aa", "metadata": {}, "outputs": [], "source": [ "data_folder = '../../data/liana-outputs/'" ] }, { "cell_type": "code", "execution_count": 3, "id": "049a39ea", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "../../data/tc2c-outputs/ already exists.\n" ] } ], "source": [ "output_folder = '../../data/tc2c-outputs/'\n", "c2c.io.directories.create_directory(output_folder)" ] }, { "cell_type": "markdown", "id": "a4a65ac6", "metadata": {}, "source": [ "## Load Data\n", "\n", "Open the dataframe containing LIANA results for every sample/context (this can be also found in `adata.uns['liana_res']`. These results contain the communication scores of the combinations of ligand-receptor pairs and sender-receiver pairs." ] }, { "cell_type": "code", "execution_count": 4, "id": "7927cffb", "metadata": {}, "outputs": [], "source": [ "liana_res = pd.read_csv(data_folder + 'LIANA_by_sample.csv')" ] }, { "cell_type": "markdown", "id": "844bd54a", "metadata": {}, "source": [ "## Create 4D-Communication Tensor" ] }, { "cell_type": "markdown", "id": "8756f614", "metadata": {}, "source": [ "### Specify the order of the samples/contexts\n", "\n", "Here, we will specify an order of the samples/contexts given the condition they belong to (HC or *Control*, M or *Moderate COVID-19*, S or *Severe COVID-19*)." ] }, { "cell_type": "code", "execution_count": 5, "id": "50ace1d2", "metadata": {}, "outputs": [], "source": [ "sorted_samples = sorted(liana_res['sample_new'].unique())" ] }, { "cell_type": "code", "execution_count": 6, "id": "3b0d6e91", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['HC1', 'HC2', 'HC3', 'M1', 'M2', 'M3', 'S1', 'S2', 'S3', 'S4', 'S5', 'S6']" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted_samples" ] }, { "cell_type": "code", "execution_count": 7, "id": "f5753a64", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | sample_new | \n", "source | \n", "target | \n", "ligand_complex | \n", "receptor_complex | \n", "lr_means | \n", "cellphone_pvals | \n", "expr_prod | \n", "scaled_weight | \n", "lr_logfc | \n", "spec_weight | \n", "lrscore | \n", "lr_probs | \n", "cellchat_pvals | \n", "specificity_rank | \n", "magnitude_rank | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "HC1 | \n", "Macrophages | \n", "NK | \n", "B2M | \n", "CD3D | \n", "3.410504 | \n", "0.0 | \n", "8.059611 | \n", "1.300556 | \n", "1.397895 | \n", "0.083273 | \n", "0.961040 | \n", "0.221495 | \n", "0.0 | \n", "0.003713 | \n", "1.698996e-09 | \n", "
1 | \n", "HC1 | \n", "T | \n", "NK | \n", "B2M | \n", "CD3D | \n", "3.410586 | \n", "0.0 | \n", "8.059861 | \n", "1.300856 | \n", "1.272266 | \n", "0.083276 | \n", "0.961041 | \n", "0.221213 | \n", "0.0 | \n", "0.003713 | \n", "6.256593e-09 | \n", "
2 | \n", "HC1 | \n", "NK | \n", "NK | \n", "B2M | \n", "CD3D | \n", "3.264099 | \n", "0.0 | \n", "7.614378 | \n", "0.790913 | \n", "1.113901 | \n", "0.078673 | \n", "0.959963 | \n", "0.216816 | \n", "0.0 | \n", "0.006245 | \n", "2.653267e-08 | \n", "
3 | \n", "HC1 | \n", "T | \n", "NK | \n", "B2M | \n", "KLRD1 | \n", "3.297900 | \n", "0.0 | \n", "6.865250 | \n", "6.960920 | \n", "1.244892 | \n", "0.171293 | \n", "0.957924 | \n", "0.214586 | \n", "0.0 | \n", "0.000092 | \n", "9.767878e-08 | \n", "
4 | \n", "HC1 | \n", "Macrophages | \n", "NK | \n", "B2M | \n", "KLRD1 | \n", "3.297818 | \n", "0.0 | \n", "6.865037 | \n", "6.960620 | \n", "1.370520 | \n", "0.171288 | \n", "0.957924 | \n", "0.214861 | \n", "0.0 | \n", "0.000092 | \n", "1.086199e-07 | \n", "
\n", " | sample_new | \n", "source | \n", "target | \n", "ligand_complex | \n", "receptor_complex | \n", "lr_means | \n", "cellphone_pvals | \n", "expr_prod | \n", "scaled_weight | \n", "lr_logfc | \n", "spec_weight | \n", "lrscore | \n", "lr_probs | \n", "cellchat_pvals | \n", "specificity_rank | \n", "magnitude_rank | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "HC1 | \n", "Macrophages | \n", "NK | \n", "B2M | \n", "CD3D | \n", "3.410504 | \n", "0.0 | \n", "8.059611 | \n", "1.300556 | \n", "1.397895 | \n", "0.083273 | \n", "0.961040 | \n", "0.221495 | \n", "0.0 | \n", "0.003713 | \n", "1.698996e-09 | \n", "
1 | \n", "HC1 | \n", "T | \n", "NK | \n", "B2M | \n", "CD3D | \n", "3.410586 | \n", "0.0 | \n", "8.059861 | \n", "1.300856 | \n", "1.272266 | \n", "0.083276 | \n", "0.961041 | \n", "0.221213 | \n", "0.0 | \n", "0.003713 | \n", "6.256593e-09 | \n", "
2 | \n", "HC1 | \n", "NK | \n", "NK | \n", "B2M | \n", "CD3D | \n", "3.264099 | \n", "0.0 | \n", "7.614378 | \n", "0.790913 | \n", "1.113901 | \n", "0.078673 | \n", "0.959963 | \n", "0.216816 | \n", "0.0 | \n", "0.006245 | \n", "2.653267e-08 | \n", "
3 | \n", "HC1 | \n", "T | \n", "NK | \n", "B2M | \n", "KLRD1 | \n", "3.297900 | \n", "0.0 | \n", "6.865250 | \n", "6.960920 | \n", "1.244892 | \n", "0.171293 | \n", "0.957924 | \n", "0.214586 | \n", "0.0 | \n", "0.000092 | \n", "9.767878e-08 | \n", "
4 | \n", "HC1 | \n", "Macrophages | \n", "NK | \n", "B2M | \n", "KLRD1 | \n", "3.297818 | \n", "0.0 | \n", "6.865037 | \n", "6.960620 | \n", "1.370520 | \n", "0.171288 | \n", "0.957924 | \n", "0.214861 | \n", "0.0 | \n", "0.000092 | \n", "1.086199e-07 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
4218 | \n", "HC1 | \n", "T | \n", "T | \n", "LGALS3BP | \n", "CD33 | \n", "0.546831 | \n", "1.0 | \n", "0.162326 | \n", "-0.428778 | \n", "-0.330954 | \n", "0.065941 | \n", "0.777816 | \n", "0.000000 | \n", "1.0 | \n", "1.000000 | \n", "1.000000e+00 | \n", "
4219 | \n", "HC1 | \n", "T | \n", "T | \n", "C1QB | \n", "CD33 | \n", "1.500021 | \n", "1.0 | \n", "0.499953 | \n", "-0.674297 | \n", "-0.418023 | \n", "0.050734 | \n", "0.860018 | \n", "0.000000 | \n", "1.0 | \n", "1.000000 | \n", "1.000000e+00 | \n", "
4220 | \n", "HC1 | \n", "T | \n", "T | \n", "C1QA | \n", "CD33 | \n", "1.491162 | \n", "1.0 | \n", "0.496815 | \n", "-0.682417 | \n", "-0.439526 | \n", "0.058043 | \n", "0.859639 | \n", "0.000000 | \n", "1.0 | \n", "1.000000 | \n", "1.000000e+00 | \n", "
4221 | \n", "HC1 | \n", "T | \n", "T | \n", "LGALS1 | \n", "CD69 | \n", "1.350314 | \n", "1.0 | \n", "0.522723 | \n", "-0.108787 | \n", "0.406618 | \n", "0.039087 | \n", "0.862677 | \n", "0.000000 | \n", "1.0 | \n", "1.000000 | \n", "1.000000e+00 | \n", "
4222 | \n", "HC1 | \n", "mDC | \n", "mDC | \n", "CIRBP | \n", "TREM1 | \n", "0.634905 | \n", "1.0 | \n", "0.233897 | \n", "-0.544721 | \n", "-0.515300 | \n", "0.013720 | \n", "0.807776 | \n", "0.000000 | \n", "1.0 | \n", "1.000000 | \n", "1.000000e+00 | \n", "
4223 rows × 16 columns
\n", "