{ "cells": [ { "cell_type": "markdown", "id": "13c9d789", "metadata": {}, "source": [ "# Tutorial 4: Compare the predicted sample-cfRNA between the disease group and the normal group" ] }, { "cell_type": "markdown", "id": "76c3046a", "metadata": {}, "source": [ "CellFreeGMF employs a single-cell reference dataset to computationally association matrices that quantify relationships between pathological/healthy samples and specific cell types" ] }, { "cell_type": "code", "execution_count": 1, "id": "9439e5c5", "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] \"/home/zhangwenxiang/anaconda3/envs/CellFreeGMF/lib/R\"\n", "[1] \"/home/zhangwenxiang/anaconda3/envs/CellFreeGMF/lib/R/library\"\n" ] } ], "source": [ "rm(list = ls())\n", "\n", "print(R.home())\n", "print(.libPaths())" ] }, { "cell_type": "markdown", "id": "7d28fbae", "metadata": {}, "source": [ "## Preparation" ] }, { "cell_type": "code", "execution_count": 2, "id": "a9763181", "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Attaching SeuratObject\n", "\n", "Warning message:\n", "“程辑包‘dplyr’是用R版本4.2.3 来建造的”\n", "\n", "载入程辑包:‘dplyr’\n", "\n", "\n", "The following objects are masked from ‘package:stats’:\n", "\n", " filter, lag\n", "\n", "\n", "The following objects are masked from ‘package:base’:\n", "\n", " intersect, setdiff, setequal, union\n", "\n", "\n", "Warning message:\n", "“程辑包‘scales’是用R版本4.2.3 来建造的”\n" ] } ], "source": [ "library(reticulate)\n", "library(Seurat)\n", "library(dplyr)\n", "library(future)\n", "library(ggplot2)\n", "library(dplyr)\n", "library(scales)\n", "library(ggpubr)" ] }, { "cell_type": "markdown", "id": "7423db31", "metadata": {}, "source": [ "Setting python environment" ] }, { "cell_type": "code", "execution_count": 3, "id": "5bb60e7c", "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/plain": [ "python: /home/zhangwenxiang/anaconda3/envs/CellFreeGMF/bin/python\n", "libpython: /home/zhangwenxiang/anaconda3/envs/CellFreeGMF/lib/libpython3.10.so\n", "pythonhome: /home/zhangwenxiang/anaconda3/envs/CellFreeGMF:/home/zhangwenxiang/anaconda3/envs/CellFreeGMF\n", "version: 3.10.16 | packaged by conda-forge | (main, Apr 8 2025, 20:53:32) [GCC 13.3.0]\n", "numpy: /home/zhangwenxiang/anaconda3/envs/CellFreeGMF/lib/python3.10/site-packages/numpy\n", "numpy_version: 2.2.6\n", "\n", "NOTE: Python version was forced by use_python() function" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "use_python(\"/home/zhangwenxiang/anaconda3/envs/CellFreeGMF/bin/python\", required = TRUE)\n", "\n", "py_config()" ] }, { "cell_type": "markdown", "id": "ce68a69c", "metadata": {}, "source": [ "## Hyperparameter Configuration" ] }, { "cell_type": "code", "execution_count": 4, "id": "92be6ff4", "metadata": { "vscode": { "languageId": "r" } }, "outputs": [], "source": [ "setwd('/home/zhangwenxiang/workspace/python/cfRNA/v16')\n", "disease_name = 'PDAC'" ] }, { "cell_type": "markdown", "id": "a6deb388", "metadata": {}, "source": [ "## Load predicted data" ] }, { "cell_type": "code", "execution_count": 5, "id": "123ae45f", "metadata": { "vscode": { "languageId": "r" } }, "outputs": [], "source": [ "np <- import(\"numpy\")\n", "\n", "Decon_sampletype_disease_cfRNAtype_Target_gene <- np$load(paste(\"./save_data/\", disease_name, \"/Decon_sampletype_disease_cfRNAtype_Target_gene.npz\", sep = \"\"), allow_pickle = TRUE)\n", "Decon_sampletype_normal_cfRNAtype_Target_gene <- np$load(paste(\"./save_data/\", disease_name, \"/Decon_sampletype_normal_cfRNAtype_Target_gene.npz\", sep = \"\"), allow_pickle = TRUE)\n", "\n", "Normal_Target_decon_Result_sample_cfRNA <- py_to_r(Decon_sampletype_normal_cfRNAtype_Target_gene$f['Result_sample_cfRNA'])\n", "Normal_Target_decon_Result_sample_cell <- py_to_r(Decon_sampletype_normal_cfRNAtype_Target_gene$f['Result_sample_cell'])\n", "Normal_Target_decon_Result_cfRNA_cell <- py_to_r(Decon_sampletype_normal_cfRNAtype_Target_gene$f['Result_cfRNA_cell'])\n", "Normal_Target_decon_sample_name <- py_to_r(Decon_sampletype_normal_cfRNAtype_Target_gene$f['sample_name'])\n", "Normal_Target_decon_cfRNA_name <- py_to_r(Decon_sampletype_normal_cfRNAtype_Target_gene$f['cfRNA_name'])\n", "Normal_Target_decon_cell_name <- py_to_r(Decon_sampletype_normal_cfRNAtype_Target_gene$f['cell_name_cell_ontology_class'])\n", "Normal_Target_decon_cell_id <- py_to_r(Decon_sampletype_normal_cfRNAtype_Target_gene$f['cell_id'])\n", "Normal_Target_cell_meta <- data.frame(cell_name = Normal_Target_decon_cell_name,\n", " cell_id = Normal_Target_decon_cell_id)\n", "\n", "Disease_Target_decon_Result_sample_cfRNA <- py_to_r(Decon_sampletype_disease_cfRNAtype_Target_gene$f['Result_sample_cfRNA'])\n", "Disease_Target_decon_Result_sample_cell <- py_to_r(Decon_sampletype_disease_cfRNAtype_Target_gene$f['Result_sample_cell'])\n", "Disease_Target_decon_Result_cfRNA_cell <- py_to_r(Decon_sampletype_disease_cfRNAtype_Target_gene$f['Result_cfRNA_cell'])\n", "Disease_Target_decon_sample_name <- py_to_r(Decon_sampletype_disease_cfRNAtype_Target_gene$f['sample_name'])\n", "Disease_Target_decon_cfRNA_name <- py_to_r(Decon_sampletype_disease_cfRNAtype_Target_gene$f['cfRNA_name'])\n", "Disease_Target_decon_cell_name <- py_to_r(Decon_sampletype_disease_cfRNAtype_Target_gene$f['cell_name_cell_ontology_class'])\n", "Disease_Target_decon_cell_id <- py_to_r(Decon_sampletype_disease_cfRNAtype_Target_gene$f['cell_id'])\n", "Disease_Target_cell_meta <- data.frame(cell_name = Disease_Target_decon_cell_name,\n", " cell_id = Disease_Target_decon_cell_id)" ] }, { "cell_type": "markdown", "id": "cb8ebe7f", "metadata": {}, "source": [ "Extracting sample-cell matrix" ] }, { "cell_type": "code", "execution_count": 6, "id": "88f890d3", "metadata": { "vscode": { "languageId": "r" } }, "outputs": [], "source": [ "combined_mat <- data.frame(rbind(Normal_Target_decon_Result_sample_cell, \n", " Disease_Target_decon_Result_sample_cell))\n", "rownames(combined_mat) <- c(paste(Normal_Target_decon_sample_name,'_0', sep=\"\"), \n", " paste(Disease_Target_decon_sample_name, '_1', sep = \"\"))\n", "colnames(combined_mat) <- c(Disease_Target_decon_cell_id)\n", "\n", "sample_cell <- as.matrix(combined_mat) %*% as.matrix(table(Normal_Target_decon_cell_id, Disease_Target_decon_cell_name))\n", "disease_sample_cell <- sample_cell[1:length(Normal_Target_decon_sample_name),]\n", "normal_sample_cell <- sample_cell[(length(Normal_Target_decon_sample_name) + 1):length(Disease_Target_decon_sample_name), ]" ] }, { "cell_type": "markdown", "id": "397fcc9f", "metadata": {}, "source": [ "Calculate p value" ] }, { "cell_type": "code", "execution_count": 7, "id": "5dfd1ea6", "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "