单细胞|MEBOCOST·基于代谢物的细胞通讯预测(一)

import os,sys
import scanpy as sc
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
from mebocost import mebocost

1. 创建 mebocost 对象

adata = sc.read_h5ad('data/demo/raw_scRNA/demo_HNSC_200cell.h5ad')
## check adata (cells, genes)
print(adata.shape)
## initiate the mebocost object
### import expression data by scanpy adata object
mebo_obj = mebocost.create_obj(adata = adata,group_col = ['celltype'],met_est = 'mebocost',config_path = './mebocost.conf',exp_mat=None,cell_ann=None,species='human',met_pred=None,met_enzyme=None,met_sensor=None,met_ann=None,scFEA_ann=None,compass_met_ann=None,compass_rxn_ann=None,cutoff_exp='auto',cutoff_met='auto',cutoff_prop=0.25,sensor_type=['Receptor', 'Transporter', 'Nuclear Receptor'],thread=8)

2. 代谢通讯推断 

## initiate the mebocost object
mebo_obj = mebocost.create_obj(adata = adata,group_col = ['celltype'],met_est = 'mebocost',config_path = './mebocost.conf',exp_mat=None,cell_ann=None,species='human',met_pred=None,met_enzyme=None,met_sensor=None,met_ann=None,scFEA_ann=None,compass_met_ann=None,compass_rxn_ann=None,cutoff_exp='auto',cutoff_met='auto',cutoff_prop=0.25,sensor_type=['Receptor', 'Transporter', 'Nuclear Receptor'],thread=8)
## metabolic communication inference, this step takes a while
commu_res = mebo_obj.infer_commu(n_shuffle=1000,seed=12345, Return=True, thread=None,save_permuation=False,min_cell_number = 1,pval_method='permutation_test_fdr',pval_cutoff=0.05)

3. 可视化

a. 查看每种细胞类型sender和receiver数量

## sender and receiver event number
mebo_obj.eventnum_bar(sender_focus=[],metabolite_focus=[],sensor_focus=[],receiver_focus=[],xorder=[],and_or='and',pval_method='permutation_test_fdr',pval_cutoff=0.05,comm_score_col='Commu_Score',comm_score_cutoff = 0,cutoff_prop = 0.25,figsize='auto',save=None,show_plot=True,show_num = True,include=['sender-receiver'],group_by_cell=True,colorcmap='tab20',return_fig=False)

b. 不同细胞类型的通讯情况

## circle plot to show communications between cell groups
mebo_obj.commu_network_plot(sender_focus=[],metabolite_focus=[],sensor_focus=[],receiver_focus=[],and_or='and',pval_method='permutation_test_fdr',pval_cutoff=0.05,node_cmap='tab20',figsize='auto',line_cmap='bwr',line_color_vmin=None,line_color_vmax=None,linewidth_norm=(0.2, 1),linewidth_value_range = None,node_size_norm=(50, 200),node_value_range = None,adjust_text_pos_node=True,node_text_hidden = False,node_text_font=10,save=None,show_plot=True,comm_score_col='Commu_Score',comm_score_cutoff=0,text_outline=True,return_fig=False)### the "overall score" represent the sum of -log10(FDR) of detected metabolite-sensor communications between a pair of cell types

### dot plot to show the number of communications between cellsmebo_obj.count_dot_plot(pval_method='permutation_test_fdr',pval_cutoff=0.05,cmap='bwr',figsize='auto',save=None,dot_size_norm =(20, 200),dot_value_range = None,dot_color_vmin=None,dot_color_vmax=None,show_plot=True,comm_score_col='Commu_Score',comm_score_cutoff=0,dendrogram_cluster=True,sender_order=[],receiver_order=[],return_fig = False)

 c. 详细的通讯情况(sender-receiver vs metabolite-sensor),可以指定receiver_focus/sensor_focus查看特定细胞类型。

## Malignant cell was focused, use receiver_focus=[] to include all cell types
mebo_obj.commu_dotmap(sender_focus=[],metabolite_focus=[],sensor_focus=[],receiver_focus=['Malignant'],and_or='and',pval_method='permutation_test_fdr',pval_cutoff=0.05,figsize='auto',cmap='bwr',cmap_vmin = None,cmap_vmax = None,cellpair_order=[],met_sensor_order=[],dot_size_norm=(10, 150),save=None,show_plot=True,comm_score_col='Commu_Score',comm_score_range = None,comm_score_cutoff=0,swap_axis = False,return_fig = False)

 

d. 通信流可视化 

## Malignant cell was focused, use receiver_focus=[] to include all cell types
mebo_obj.FlowPlot(pval_method='permutation_test_fdr',pval_cutoff=0.05,sender_focus=[],metabolite_focus=[],sensor_focus=[],receiver_focus=['Malignant'],remove_unrelevant = False,and_or='and',node_label_size=8,node_alpha=0.6,figsize='auto',node_cmap='Set1',line_cmap='bwr',line_cmap_vmin = None,line_cmap_vmax = 15.5,node_size_norm=(20, 150),node_value_range = None,linewidth_norm=(0.5, 5),linewidth_value_range = None,save='test.pdf',show_plot=True,comm_score_col='Commu_Score',comm_score_cutoff=0,text_outline=False,return_fig = False)

 e. 可视化细胞亚群的代谢物水平

## violin plot to show the estimated metabolite abundance of informative metabolties in communication
### here we show five significant metabolites,
### users can pass several metabolites of interest by provide a list
commu_df = mebo_obj.commu_res.copy()
good_met = commu_df[(commu_df['permutation_test_fdr']<=0.05)]['Metabolite_Name'].sort_values().unique()mebo_obj.violin_plot(sensor_or_met=good_met[:5], ## only top 5 as examplecell_focus=[],cell_order = [],row_zscore = False,cmap=None,vmin=None,vmax=None,figsize='auto',cbar_title='',save=None,show_plot=True)

 f. 可视化细胞亚群的senor水平

## violin plot to show the expression of informative sensors in communicationgood_sensor = commu_df[(commu_df['permutation_test_fdr']<=0.05)]['Sensor'].sort_values().unique()mebo_obj.violin_plot(sensor_or_met=good_sensor[:5],## only top 5 as examplecell_focus=[],cell_order = [],row_zscore = False,cmap=None,vmin=None,vmax=None,figsize='auto',cbar_title='',save=None,show_plot=True)

 参考:MEBOCOST/Demo_Communication_Prediction.ipynb at master · zhengrongbin/MEBOCOST (github.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3280605.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

开发无人带货直播插件

在当今快速发展的电商行业中&#xff0c;直播带货已成为推动销售增长的重要力量&#xff0c;然而&#xff0c;随着直播市场的日益饱和和消费者需求的不断变化&#xff0c;如何在保持直播互动性的同时&#xff0c;实现高效、低成本的运营成为许多商家关注的焦点。 无人带货直播…

springboot 微信消息推送 springboot sse推送

目录 一、springboot 微信消息推送 springboot sse推送 1、在 Spring 框架中实现 2、传统的 Servlet 中实现 一、springboot 微信消息推送 springboot sse推送 关于 SSE SSE 全程 Server Send Event&#xff0c;是 HTTP 协议中的一种&#xff0c;Content-Type 为 text/event…

Android 自定义圆形进度条样式

效果 代码 主要是设置属性indeterminateDrawable <ProgressBarandroid:id"id/iv_progress"android:layout_width"20dp"android:layout_height"20dp"android:layout_gravity"center"android:layout_marginStart"15dp"and…

清爽简洁!这可能是开源界功能最强大的项目开发管理系统

&#x1f482; 个人网站: IT知识小屋&#x1f91f; 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 文章目录 写在前面项目简介项目特点设计思想技术栈项目展示项目获取 写在前…

❤️‍FlyFlow:新增表格布局表单

FlyFlow 介绍 官网地址&#xff1a;www.flyflow.cc ElementPlus演示网址&#xff1a;pro.flyflow.cc AntDesign演示网址&#xff1a;ant.flyflow.cc FlyFlow 借鉴了钉钉与飞书的界面设计理念&#xff0c;致力于打造一款用户友好、快速上手的工作流程工具。相较于传统的基于 …

21. Hibernate 性能之数据库连接池

1. 前言 从本节课程开始&#xff0c;和大家一起聊聊 Hibernate 中的性能问题&#xff0c;面对开发者&#xff0c;Hibernate 表现出卓越的数据库操作能力。 使用框架最大的优势就是带来操作的快捷、便利。同时&#xff0c;因为框架的封装性&#xff0c;其性能往往比原生开发要…

【PostGresql】---- pgSql 将列中合并字符串拆分为多行 实例代码

-- 将 AQY_ID,AQY 中的字符串拆分为多行 SELECT"ID","AQY_ID","AQY",UNNEST ( string_to_array( "AQY_ID", , ) ) AS "AQY_ID_1",UNNEST ( string_to_array( "AQY", , ) ) AS "AQY_1" FROM"JF_SGC…

30.jdk源码阅读之ReentrantReadWriteLock

1.写在前面 ReentrantReadWriteLock 是 Java 并发包中的一个读写锁实现&#xff0c;它允许多个读线程同时访问共享资源&#xff0c;但在写线程访问时&#xff0c;所有的读线程和其他写线程都会被阻塞。不知道大家在日常工作中这个类使用的多不多&#xff0c;对于它的底层实现有…

Tooltip 文字提示

在偶然维护前端开发时,遇到页面列表中某个字段内容太长,且该字段使用了组件显示,导致不能使用纯文本得那个省略号代替显示得css样式效果,如下 所以只能另辟溪路了, 1、最开始想到是使用横向滚动得效果来实现,但是实现后,感觉还是不太理想,因为用户注意不到你这里有滚动…

【基础篇】Docker 容器操作 FOUR

嘿&#xff0c;小伙伴们&#xff01;我是小竹笋&#xff0c;一名热爱创作的工程师。在上一篇文章中&#xff0c;我们探讨了 Docker 镜像管理的相关知识。今天&#xff0c;让我们一起深入了解一下 Docker 容器的操作吧&#xff01; &#x1f4e6; 运行、停止和删除容器 Docker…

一个私有化的中文笔记工具个人知识库,极空间Docker部署中文版『Trilium Notes』

一个私有化的中文笔记工具&个人知识库&#xff0c;极空间Docker部署中文版『Trilium Notes』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 最近被很多小伙伴问到NAS上的笔记工具&#xff0c;虽说之前也出过Memos&#xff0c;刚开始用起来还不错&#xff0c;但是用了一段时间…

【JKI SMO】框架讲解(六)

接JKI SMO 框架讲解&#xff08;五&#xff09;&#xff0c;现在对代码进行一个扩展&#xff0c;当前代码仅有一路电压采集&#xff0c;现在需要扩展一路电流采集通道。 下面是对应的步骤&#xff1a; 1.打开项目&#xff0c;在工具里打开SMO Editor。 2.之前创建的SMO会自动加…

快速收集地图商户信息_百度|高德|腾讯|google

数字化营销中企业名录和商家电话号码的采集已成为营销人员日常工作的首要一环。地图平台以其海量的商家信息和实时更新的特性&#xff0c;成为我们获取数据的宝贵渠道。如何快速利用百度、高德、腾讯这三大地图平台高效采集商家联系方式是每个营销人员的必备技能。 我们整理了…

记录某次“有趣的“挖矿木马排查

挖矿木马是什么&#xff1f; 挖矿木马是一种恶意软件&#xff0c;它在用户不知情或未经同意的情况下&#xff0c;利用受害者的计算机资源进行加密货币挖矿。这类软件通过执行大量运算来挖掘数字货币&#xff0c;如比特币或门罗币等。挖矿木马通常通过漏洞利用、弱口令爆破或非…

微软蓝屏事件:全球网络安全与系统稳定性的警示

文章目录 每日一句正能量前言探讨软件更新流程中的风险管理和质量控制机制软件更新的风险风险管理策略质量控制措施测试流程缺陷识别实施质量控制结论 提供预防类似大规模故障的最佳方案或应急响应对策设计冗余系统实施灾难恢复计划建立高可用架构应急响应对策利用自动化工具和…

豆瓣9.9分!大名鼎鼎的深度学习入门书“鱼书”更新第二版了!带你深刻理解神经网络!

大家应该都知道这本非常有名的著作吧&#xff1a;《深度学习入门&#xff0c;基于python的理论与实现》。 这是更新的第二版&#xff0c;是由日本作者斋藤康毅所著的一本关于深度学习的书籍。这本书的出版社是人民邮电出版社&#xff0c;出品方是图灵教育。这本书的原名是“ゼロ…

vue给数组对象赋值改变对象里面的数据,数据没有更新this.$set

替换数组startTime的值&#xff1a; 原数据 this.serviceTimeList.push({serviceTimeName: 服务时间段,startTime: this.startTime,endTime: this.endTime,currentDateStart: this.currentDate,currentDateEnd: this.currentDate}) this.$set(this.array, index, newValue); …

Day12--Servlet实现前后端交互(案例:学生信息管理系统登录页面)

&#xff08;在一个完整的项目架构中&#xff0c;servlet的角色和位置&#xff09; Servlet、GenericServlet和HttpServlet三者之间的关系是Java Web开发中的一个重要概念&#xff0c;它们共同构成了基于Java的服务器端程序的基础。以下是具体分析&#xff1a; 1. Servlet接口…

AI技术革命对未来就业的影响

一、引言 AI技术革命带来的就业结构变化是双面的&#xff0c;既存在着挑战也蕴含着机遇。过去的几次技术革命例如工业革命和信息技术革命都对就业结构产生了深刻的影响&#xff0c;使一些工作消失&#xff0c;也催生了许多新的工作类型。当前和未来的AI技术发展也必将推动类似…

【HadoopShuffle原理剖析】基础篇二

Shuffle原理剖析 Shuffle&#xff0c;是指对Map输出结果进行分区、排序、合并等处理并交给Reduce的过程。分为Map端的操作和Reduce端的操作。 Shuffle过程 Map端的Shuffle Map的输出结果首先被缓存到内存&#xff0c;当缓存区容量到达80%&#xff08;缓冲区默认100MB&#xff…