R语言:microeco:一个用于微生物群落生态学数据挖掘的R包:第七:trans_network class
# 网络是研究微生物生态共现模式的常用方法。在这一部分中,我们描述了trans_network类的所有核心内容。
# 网络构建方法可分为基于关联的和非基于关联的两种。有几种方法可以用来计算相关性和显著性。
#我们首先介绍了基于关联的网络。trans_network中的cal_cor参数用于选择相关计算方法。
> t1 <- trans_network$new(dataset = dataset, cal_cor = "base", taxa_level = "OTU", filter_thres = 0.0001, cor_method = "spearman")
> devtools::install_github('zdk123/SpiecEasi')
> library(SpiecEasi)
# SparCC method, require SpiecEasi package
> t1 <- trans_network$new(dataset = dataset, cal_cor = "SparCC", taxa_level = "OTU", filter_thres = 0.001, SparCC_simu_num = 100)
# require WGCNA package
> library(WGCNA)
> t1 <- trans_network$new(dataset = dataset, cal_cor = "WGCNA", taxa_level = "OTU", filter_thres = 0.0001, cor_method = "spearman")
#参数COR_cut可用于选择相关阈值。此外,COR_optimization = TRUE表示使用RMT理论寻找优化的相关阈值,而不是COR_cut。
> t1$cal_network(p_thres = 0.01, COR_optimization = TRUE)
# use arbitrary coefficient threshold to contruct network
> install.packages("rgexf")
> t1$save_network(filepath = "network.gexf")
#根据Gephi中计算出的模块绘制网络并给出节点颜色。
#https://gephi.org/users/download/ 下载grephi

#现在,我们用门的信息显示节点的颜色,用正相关和负相关来显示边缘的颜色。所有使用的数据
#都存储在网络中。gexf文件,包括模块分类、门信息和边分类。

> t1$cal_network_attr() Result is stored in object$res_network_attr ... > t1$res_network_attrVertex 4.070000e+02 Edge 1.989000e+03 Average_degree 9.773956e+00 Average_path_length 2.784505e+00 Network_diameter 9.000000e+00 Clustering_coefficient 4.697649e-01 Density 2.407378e-02 Heterogeneity 1.193606e+00 Centralization 9.907893e-02 Modularity 5.485651e-01
> t1$cal_network_attr() Result is stored in object$res_network_attr ... > t1$res_network_attrVertex 4.070000e+02 Edge 1.989000e+03 Average_degree 9.773956e+00 Average_path_length 2.784505e+00 Network_diameter 9.000000e+00 Clustering_coefficient 4.697649e-01 Density 2.407378e-02 Heterogeneity 1.193606e+00 Centralization 9.907893e-02 Modularity 5.485651e-01 > t1$cal_module() Use cluster_fast_greedy function to partition modules ... Totally, 25 modules are idenfified ... Modules are assigned in network with attribute name -- module ... > t1$get_node_table(node_roles = TRUE) The nodes (22) with NaN in z will be filtered ... Result is stored in object$res_node_table ... > t1$plot_taxa_roles(use_type = 1) Warning message: Removed 22 rows containing missing values (`geom_point()`).

t1$plot_taxa_roles(use_type = 2)

> t1$cal_eigen()
#然后用相关热图来显示特征基因与环境因素之间的关系。
> t2 <- trans_env$new(dataset = dataset, add_data = env_data_16S[, 4:11])
> t2$cal_cor(add_abund_table = t1$res_eigen)
> t2$plot_cor()

# 函数cal_sum_links()用于对从一个分类单元到另一个分类单元或同一分类单元中的链接(边)数求和。
# 函数plot_sum_links()用于显示函数cal_sum_links()的结果。这对于快速查看不同分类群之间或一个分类群内部连接了多少节点非常有用。
# 对于本教程中的“门”级别,函数cal_sum_links()将从一个门到另一个门或同一门中的连杆数求和。
# 所以圆形图外围的数字表示有多少条边或连接与门有关。例如,就Proteobacteria而言,
# 大约总共有900条边与Proteobacteria中的OTUs相关,其中大约有200条边将Proteobacteria中的两个OTUs连接起来,
# 大约有150条边将Proteobacteria中的OTUs与来自Chloroflexi的OTUs连接起来。
# 函数cal_sum_links()用于对从一个分类单元到另一个分类单元或同一分类单元中的链接(边)数求和。
# 函数plot_sum_links()用于显示函数cal_sum_links()的结果。这对于快速查看不同分类群之间或一个分类群内部连接了多少节点非常有用。
# 对于本教程中的“门”级别,函数cal_sum_links()将从一个门到另一个门或同一门中的连杆数求和。
# 所以圆形图外围的数字表示有多少条边或连接与门有关。例如,就Proteobacteria而言,
# 大约总共有900条边与Proteobacteria中的OTUs相关,其中大约有200条边将Proteobacteria中的两个OTUs连接起来,
# 大约有150条边将Proteobacteria中的OTUs与来自Chloroflexi的OTUs连接起来。
# calculate the links between or within taxonomic ranks
> t1$cal_sum_links(taxa_level = "Phylum")
# return t1$res_sum_links_pos and t1$res_sum_links_neg
# require chorddiag package
> devtools::install_github("mattflor/chorddiag", build_vignettes = TRUE)
> t1$plot_sum_links(plot_pos = TRUE, plot_num = 10)
> #subset_network()函数可用于从网络中提取部分节点和这些节点之间的边。在这个函数中,应该使用node参数提供所需的节点。 > t1$subset_network(node = t1$res_node_type %>% .[.$module == "M1", ] %>% rownames, rm_single = TRUE) IGRAPH 7df7c55 UNW- 407 1989 -- + attr: name (v/c), taxa (v/c), Phylum (v/c), RelativeAbundance (v/n), module (v/c), label (e/c), weight (e/n) + edges from 7df7c55 (vertex names):[1] OTU_50 --OTU_357 OTU_50 --OTU_154 OTU_305 --OTU_3303 OTU_305 --OTU_2564 OTU_305 --OTU_30 OTU_1 --OTU_13824 OTU_1 --OTU_4731 [8] OTU_1 --OTU_34 OTU_1 --OTU_301 OTU_1 --OTU_668 OTU_1 --OTU_1169 OTU_1 --OTU_847 OTU_1 --OTU_1243 OTU_1 --OTU_266 [15] OTU_1 --OTU_1897 OTU_1 --OTU_1185 OTU_1 --OTU_1892 OTU_1 --OTU_1811 OTU_1 --OTU_126 OTU_1 --OTU_902 OTU_1 --OTU_351 [22] OTU_1 --OTU_264 OTU_1 --OTU_1173 OTU_1 --OTU_1866 OTU_1 --OTU_1848 OTU_1 --OTU_1204 OTU_41 --OTU_117 OTU_59 --OTU_78 [29] OTU_59 --OTU_357 OTU_59 --OTU_943 OTU_2733 --OTU_2725 OTU_4050 --OTU_7205 OTU_4050 --OTU_3522 OTU_4147 --OTU_1646 OTU_4147 --OTU_109 [36] OTU_4147 --OTU_7557 OTU_4147 --OTU_265 OTU_4147 --OTU_3164 OTU_4147 --OTU_8029 OTU_4147 --OTU_107 OTU_4147 --OTU_7648 OTU_4147 --OTU_3138 [43] OTU_4147 --OTU_1812 OTU_4147 --OTU_2784 OTU_4147 --OTU_426 OTU_4147 --OTU_1850 OTU_4147 --OTU_3712 OTU_4147 --OTU_3321 OTU_4147 --OTU_12327 [50] OTU_4147 --OTU_3159 OTU_4147 --OTU_7630 OTU_4147 --OTU_1885 OTU_4147 --OTU_1827 OTU_4147 --OTU_7346 OTU_4147 --OTU_4531 OTU_4147 --OTU_1810 + ... omitted several edges > #然后,我们展示了下一个实现的网络构建方法:SpiecEasi R包中的SpiecEasi(稀疏逆协方差估计for Ecological Association Inference)网络。 > # cal_cor select NA > t1 <- trans_network$new(dataset = dataset, cal_cor = NA, taxa_level = "OTU", filter_thres = 0.0005) After filtering, 301 features are remained ... > # require SpiecEasi package https://github.com/zdk123/SpiecEasi > t1$cal_network(network_method = "SpiecEasi") ---------------- 2024-03-18 15:42:16.310147 : Start ---------------- Applying data transformations... Selecting model with pulsar using stars... Fitting final estimate with mb... done ---------------- 2024-03-18 15:48:05.015648 : Finish ---------------- The result network is stored in object$res_network ... > t1$res_network IGRAPH da9387f UNW- 301 1595 -- + attr: name (v/c), taxa (v/c), Phylum (v/c), RelativeAbundance (v/n), weight (e/n), label (e/c) + edges from da9387f (vertex names):[1] OTU_32 --OTU_238 OTU_32 --OTU_115 OTU_32 --OTU_578 OTU_32 --OTU_260 OTU_32 --OTU_62 OTU_32 --OTU_1283 OTU_32 --OTU_205 OTU_32 --OTU_315 [9] OTU_32 --OTU_64 OTU_32 --OTU_348 OTU_32 --OTU_345 OTU_32 --OTU_201 OTU_50 --OTU_408 OTU_50 --OTU_59 OTU_50 --OTU_3303 OTU_50 --OTU_117 [17] OTU_50 --OTU_318 OTU_50 --OTU_632 OTU_50 --OTU_67 OTU_50 --OTU_3052 OTU_50 --OTU_357 OTU_50 --OTU_771 OTU_50 --OTU_30 OTU_50 --OTU_674 [25] OTU_305 --OTU_59 OTU_305 --OTU_37 OTU_305 --OTU_3303 OTU_305 --OTU_146 OTU_305 --OTU_67 OTU_305 --OTU_578 OTU_305 --OTU_3052 OTU_305 --OTU_28 [33] OTU_305 --OTU_30 OTU_305 --OTU_26 OTU_305 --OTU_92 OTU_305 --OTU_58 OTU_408 --OTU_23 OTU_408 --OTU_22 OTU_408 --OTU_117 OTU_408 --OTU_169 [41] OTU_408 --OTU_27 OTU_408 --OTU_217 OTU_408 --OTU_3052 OTU_408 --OTU_1830 OTU_408 --OTU_530 OTU_6426--OTU_31 OTU_6426--OTU_515 OTU_6426--OTU_372 [49] OTU_6426--OTU_409 OTU_6426--OTU_293 OTU_6426--OTU_341 OTU_6426--OTU_1819 OTU_6426--OTU_1922 OTU_6426--OTU_970 OTU_6426--OTU_430 OTU_75 --OTU_31 [57] OTU_75 --OTU_22 OTU_75 --OTU_515 OTU_75 --OTU_204 OTU_75 --OTU_656 OTU_75 --OTU_839 OTU_75 --OTU_1922 OTU_75 --OTU_21 OTU_75 --OTU_431 + ... omitted several edges
> t1$plot_network()

这一期跑了很久。大家慎跑。
相关文章:
R语言:microeco:一个用于微生物群落生态学数据挖掘的R包:第七:trans_network class
# 网络是研究微生物生态共现模式的常用方法。在这一部分中,我们描述了trans_network类的所有核心内容。 # 网络构建方法可分为基于关联的和非基于关联的两种。有几种方法可以用来计算相关性和显著性。 #我们首先介绍了基于关联的网络。trans_network中的cal_cor参数…...
ubuntu下在vscode中配置matplotlibcpp
ubuntu下在vscode中配置matplotlibcpp 系统:ubuntu IDE:vscode 库:matplotlib-cpp matplotlibcpp.h文件可以此网址下载:https://github.com/lava/matplotlib-cpp 下载的压缩包中有该头文件,以及若干实例程序。 参考…...
Vue面试题,背就完事了
1.vue的生命周期有哪些及每个生命周期做了什么? Vue.js 的生命周期可以分为以下几个核心阶段,每个阶段都伴随着特定的钩子函数(生命周期钩子)来执行相应的操作: 创建阶段: beforeCreate:实例被创建后、数…...
centos创建并运行一个redis容器 并支持数据持久化
步骤 : 创建redis容器命令 docker run --name mr -p 6379:6379 -d redis redis-server --appendonly yes 进入容器 : docker exec -it mr bash 链接redis : redis-cli 查看数据 : keys * 存入一个数据 : set num 666 获取数据 : get num 退出客户端 : exit 再退…...
nvm安装和使用保姆级教程(详细)
一、 nvm是什么 : nvm全英文也叫node.js version management,是一个nodejs的版本管理工具。nvm和npm都是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。 二、卸载之前安装的node: …...
跳绳计数,YOLOV8POSE
跳绳计数,YOLOV8POSE 通过计算腰部跟最初位置的上下波动,计算跳绳的次数...
阿里云ecs服务器配置反向代理上传图片
本文所有软件地址: 链接:https://pan.baidu.com/s/12OSFilS-HNsHeXTOM47iaA 提取码:dqph 为什么要使用阿里云服务器? 项目想让别人通过外网进行访问就需要部署到我们的服务器当中 1.国内知名的服务器介绍 国内比较知名的一些…...
免费阅读篇 | 芒果YOLOv8改进110:注意力机制GAM:用于保留信息以增强渠道空间互动
💡🚀🚀🚀本博客 改进源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 该专栏完整目录链接: 芒果YOLOv8深度改进教程 该篇博客为免费阅读内容,直接改进即可🚀🚀…...
GetLastError()返回值及含义
https://www.cnblogs.com/ericsun/archive/2012/08/10/2631808.html 〖0〗-操作成功完成。 〖1〗-功能错误。 〖2〗-系统找不到指定的文件。 〖3〗-系统找不到指定的路径。 〖4〗-系统无法打开文件。 〖5〗-拒绝访问。 〖6〗-句柄无效。 〖7〗-存储控制块被损坏。 〖8〗-存储空…...
k8s admin 用户生成token
k8s 版本 1.28 创建一个admin的命名空间 admin-namespce.yaml kind: Namespace apiVersion: v1 metadata: name: admin labels: name: admin 部署进k8s kubectl apply -f admin-namespce.yaml 查看k8s namespace 的列表 kubectl get namespace查看当前生效的…...
【vscode】vscode重命名变量后多了很多空白行
这种情况,一般出现在重新安装 vscode 后出现。 原因大概率是语言服务器没设置好或设置对。 以 Python 为例,到设置里搜索 "python.languageServer",将 Python 的语言服务器设置为 Pylance 即可。...
深度学习实战模拟——softmax回归(图像识别并分类)
目录 1、数据集: 2、完整代码 1、数据集: 1.1 Fashion-MNIST是一个服装分类数据集,由10个类别的图像组成,分别为t-shirt(T恤)、trouser(裤子)、pullover(套衫…...
vue实现element-UI中table表格背景颜色设置
目前在style中设置不了,那么就在前面组件给设置上 :header-cell-style"{ color: #ffffff, fontSize: 14px, backgroundColor: #0E2152 }" :cell-style"{ color: #ffffff, fontSize: 14px, backgroundColor: #0E2152 }"...
RabbitMQ学习总结-消息的可靠性
保证MQ消息的可靠性,主要从三个方面:发送者确认可靠性,MQ确认可靠性,消费者确认可靠性。 1.发送者可靠性:主要依赖于发送者重试机制,发送者确认机制; 发送者重试机制,其实就是配置…...
2024蓝桥杯每日一题(BFS)
备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一:母亲的奶牛 试题二:走迷宫 试题三:八数码1 试题四:全球变暖 试题五:八数码2 试题一:母亲的奶牛 【题目描述】 农夫约…...
力扣思路题:最长特殊序列1
int findLUSlength(char * a, char * b){int alenstrlen(a),blenstrlen(b);if (strcmp(a,b)0)return -1;return alen>blen?alen:blen; }...
c# 的ref 和out
在C#中,ref和out是用于方法参数的关键字,它们都允许在方法调用中对参数进行修改。 ref关键字用于传递参数的引用。当使用ref关键字声明一个参数时,实际上是在告诉编译器此参数在调用方法之前必须被赋值。ref参数传递的是参数的引用地址&…...
ONLYOFFICE文档8.0全新发布:私有部署、卓越安全的协同办公解决方案
ONLYOFFICE文档8.0全新发布:私有部署、卓越安全的协同办公解决方案 文章目录 ONLYOFFICE文档8.0全新发布:私有部署、卓越安全的协同办公解决方案摘要📑引言 🌟正文📚一、ONLYOFFICE文档概述 📊二、ONLYOFFI…...
Mar 14 | Datawhale 01~04 打卡 | Leetcode面试下
第一阶段主要就是学习字符串的处理和二叉树的遍历。前一段时间学习了二叉树的遍历,记忆还比较深刻,这几个题还是比较轻松的做出来了;但是像Longest Palindromic Substring这样的题除了简单的字符串处理(回文判断)&…...
【计算机网络】什么是http?
目录 前言 1. 什么是HTTP协议? 2. 为什么使用HTTP协议? 3. HTTP协议通信过程 4. 什么是url? 5. HTTP报文 5.1 请求报文 5.2 响应报文 6. HTTP请求方式 7. HTTP头部字段 8. HTTP状态码 9. 连接管理 长连接与短连接 管线化连接…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
