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. 连接管理 长连接与短连接 管线化连接…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
