Python和C++骨髓细胞进化解析数学模型

news2024/11/15 13:56:17

🎯要点

🎯 数学模型邻接矩阵及其相关的转移概率 | 🎯蒙特卡罗模拟进化动力学 | 🎯细胞进化交叉图族概率 | 🎯进化图模型及其数学因子 | 🎯混合图模式对进化概率的影响 | 🎯造血干细胞群体的空间图结构

📜网络结构模型用例

📜Python社群纽带关系谱和图神经

📜Python元胞自动机沙堆糖景堵塞模型图学习

📜Python竞技比赛流体动力学艺术品和药物质量图学习
在这里插入图片描述
在这里插入图片描述

🍇Python图数据

我们经常使用表格来概括地表示信息。但图形使用专门的数据结构:节点代表一个元素,而不是表行。边连接两个节点以指示它们的关系。这种图数据结构使我们能够从独特的角度观察数据,这就是为什么图数据科学被应用于从分子生物学到社会科学的各个领域。

创建一个图很简单:

import networkx as nx
G = nx.Graph()

但 G 还不是一个图,它没有节点和边。

我们可以通过将 Graph() 的返回值与 .add_node() 链接在一起(或对于列表中的多个节点,使用 .add_nodes_from())来将节点添加到网络。我们还可以通过传递字典作为参数来向节点添加任意特征或属性,如节点 4 和节点 5 所示:

G.add_node("node 1")
G.add_nodes_from(["node 2", "node 3"])
G.add_nodes_from([("node 4", {"abc": 123}), ("node 5", {"abc": 0})])
print(G.nodes)
print(G.nodes["node 4"]["abc"]) # accessed like a dictionary

输出:

['node 1', 'node 2', 'node 3', 'node 4', 'node 5']
123

与节点技术类似,我们可以使用 .add_edge() 并将两个节点的名称作为参数(或 .add_edges_from() 用于列表中的多个边),并且可以选择包含属性字典:

G.add_edge("node 1", "node 2")
G.add_edge("node 1", "node 6")
G.add_edges_from([("node 1", "node 3"), 
                  ("node 3", "node 4")])
G.add_edges_from([("node 1", "node 5", {"weight" : 3}), 
                  ("node 2", "node 4", {"weight" : 5})])

NetworkX 库支持此类图,其中每条边可以具有权重。例如,在社交网络图中,节点是用户,边是交互,权重可以表示给定一对用户之间发生了多少次交互 - 这是一个高度相关的指标。

NetworkX 使用 G.edges 时会列出所有边,但不包括它们的属性。如果我们想要边属性,我们可以使用 G[node_name] 获取连接到节点的所有内容,或使用G[node_name][connected_node_name]获取特定边的属性:

print(G.nodes)
print(G.edges)
print(G["node 1"])
print(G["node 1"]["node 5"])

输出:

['node 1', 'node 2', 'node 3', 'node 4', 'node 5', 'node 6']
[('node 1', 'node 2'), ('node 1', 'node 6'), ('node 1', 'node 3'), ('node 1', 'node 5'), ('node 2', 'node 4'), ('node 3', 'node 4')]
{'node 2': {}, 'node 6': {}, 'node 3': {}, 'node 5': {'weight': 3}}
{'weight': 3}

星球大战角色图:

首先,我们将使用 nx.draw(G_starWars, with_labels = True) 可视化数据,通常一起出现的角色,如 R2-D2 和 C-3PO,看起来联系紧密。相比之下,我们可以看到达斯·维德并没有与欧文分享场景。

NetworkX 还有其他布局,使用不同的标准来定位节点,例如circular_layout

pos = nx.circular_layout(G_starWars)
nx.draw(G_starWars, pos=pos, with_labels = True)

这种布局是中性的,因为节点的位置不取决于其重要性 - 所有节点都平等表示。(圆形布局还可以帮助可视化单独的连通分量 - 子图在任意两个节点之间都有路径 - 但在这里,整个图是一个大的连通分量。)

我们看到的两种布局都有一定程度的视觉混乱,因为边缘可以自由地交叉其他边缘。但Kamada-Kawai,另一种力导向算法,如 spring_layout,它定位节点以最小化系统能量。这减少了边缘交叉,但代价是:它比其他布局慢,因此不强烈推荐用于具有许多节点的图形。

这个有一个专门的绘图函数:

nx.draw_kamada_kawai(G_starWars, with_labels = True)

在没有任何特殊干预的情况下,算法将主要角色(如卢克、莱娅和 C-3PO)放在中心,而不太突出的角色(如卡米和多多娜将军)放在边界。

使用特定布局可视化图表可以给我们一些有趣的定性结果。尽管如此,定量结果仍然是任何数据科学分析的重要组成部分,因此我们需要定义一些指标。

现在我们可以清楚地可视化我们的网络,我们可能会对表征节点感兴趣。有多种度量来描述节点的特征,在我们的示例中,描述角色的特征。节点的一个基本指标是它的度:它有多少条边。星球大战角色的节点度衡量了他们与多少个其他角色共享一个场景。

Degree() 函数可以计算一个字符或整个网络的度数:

print(G_starWars.degree["LUKE"])
print(G_starWars.degree)

输出:

15
[('R2-D2', 9), ('CHEWBACCA', 6), ('C-3PO', 10), ('LUKE', 15), ('DARTH VADER', 4), ('CAMIE', 2), ('BIGGS', 8), ('LEIA', 12), ('BERU', 5), ('OWEN', 4), ('OBI-WAN', 7), ('MOTTI', 3), ('TARKIN', 3), ('HAN', 6), ('DODONNA', 3), ('GOLD LEADER', 5), ('WEDGE', 5), ('RED LEADER', 7), ('RED TEN', 2)]

根据度数从最高到最低对节点进行排序可以用一行代码完成:

print(sorted(G_starWars.degree, key=lambda x: x[1], reverse=True))

输出:

[('LUKE', 15), ('LEIA', 12), ('C-3PO', 10), ('R2-D2', 9), ('BIGGS', 8), ('OBI-WAN', 7), ('RED LEADER', 7), ('CHEWBACCA', 6), ('HAN', 6), ('BERU', 5), ('GOLD LEADER', 5), ('WEDGE', 5), ('DARTH VADER', 4), ('OWEN', 4), ('MOTTI', 3), ('TARKIN', 3), ('DODONNA', 3), ('CAMIE', 2), ('RED TEN', 2)]

👉参阅、更新:计算思维 | 亚图跨际

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

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

相关文章

【异步爬虫:利用异步协程抓取一部电影】

利用异步协程抓取一部电影 我们把目光转向wbdy. 目前该案例还是可以用的. 我们想要抓取网上的视频资源就必须要了解我们的视频网站是如何工作的. 这里我用91看剧来做举例. 其他网站的原理是一样的. 1.视频网站是如何工作的 假设, 你现在想要做一个视频网站. 也有很多的UP猪…

【数学建模】高温作业专用服装设计(2018A)隐式差分推导

为方便计算,对区域进行离散化处理,采用隐式差分格式进行离散计算。隐式差分格式如图: 每层材料内部 对第 j j j层材料: 其中, λ j \lambda_j λj​表示第 j j j层的热扩散率, c j c_j cj​表示第 j j j层的比热容…

IntelliJ IDEA 2024.1 最新变化 附问卷调查 AI

IntelliJ IDEA 2024.1 最新变化 问卷调查项目在线AI IntelliJ IDEA 2024.1 最新变化关键亮点全行代码补全 Ultimate对 Java 22 功能的支持新终端 Beta编辑器中的粘性行 AI AssistantAI Assistant 改进 UltimateAI Assistant 中针对 Java 和 Kotlin 的改进代码高亮显示 Ultimate…

第100+16步 ChatGPT学习:R实现Xgboost分类

基于R 4.2.2版本演示 一、写在前面 有不少大佬问做机器学习分类能不能用R语言,不想学Python咯。 答曰:可!用GPT或者Kimi转一下就得了呗。 加上最近也没啥内容写了,就帮各位搬运一下吧。 二、R代码实现Xgboost分类 &#xff08…

智能守护校园餐桌:校园阳光食堂视频AI监控智能管理方案

一、背景分析 随着科技的飞速发展,智能化、信息化已成为现代校园管理的重要趋势。校园食堂作为学校重要的服务设施,其食品安全、环境卫生和秩序管理显得尤为重要。作为校园生活中不可或缺的一部分,食堂的管理也急需引入先进技术,…

【Git】(基础篇二)—— Git操作

Git操作 在了解git理论知识之后,本文将结合实践操作为你讲解git的底层逻辑 Git的安装和配置 git官网下载:https://git-scm.com/ 下载后安装时除了选择安装地址外,其余都保持默认下一步即可。 安装好后鼠标右键会出现两个新的选项【Open …

STM32 BootLoader 刷新项目 (五) 获取软件版本号-命令0x51

STM32 BootLoader 刷新项目 (五) 获取软件版本号-命令0x51 下面我们来讲解第一个指令,获取软件版本号命令-0x51. 在BootLoader中获取软件版本号的操作有多个重要的作用,具体如下: 版本管理: 识别当前版本:通过获取软…

Apache Flink 入门

零、概述 Apache Flink 是一个高性能的开源分布式流处理框架,专注于实时数据流的处理。 它设计用于处理无界和有界数据流,在内存级速度下提供高效的有状态计算。 Flink 凭借其独特的Checkpoint机制和Exactly-Once语义,确保数据处理的准确性…

如何追查一个packet在linux 系统哪里丢失

要想追一个包在系统哪里丢失了, 就要了解 一个应用层的包在送出时 要经历那些 检查点 和被丢掉的点。 1. 在传输层,如果是 tcp 包 会有contrack 的 buf 的限制 可能会导致 packets 的丢失。 > 检查办法:查看dmesg日志有报错:k…

大厂面试-基本功

大厂面试第4季 服务可用性多少个9是什么意思遍历集合add或remove操作bughashcode冲突案例BigdecimalList去重复IDEA Debugger测试框架ThreaLocal父子线程数据同步 InheritableThreadLocal完美解决线程数据同步方案 TransmittableThreadLocal 服务可用性多少个9是什么意思 遍历集…

线程池笔记

笔记梳理 前言.PHONYC标准库头文件C/C通用或C特有头文件mkdirc_str()snprintfvsnprintfumaskopen函数可变参数列表va_startva_endfunctionalstatic_castpthread_cond_init_threads.emplace_backstd::bindstd::placeholdersThreadPool(const ThreadPool<T> &tp) dele…

抢着发布地表最强开源模型,Meta凭什么勇攀AI高峰?

【科技明说 &#xff5c; 科技热点关注】 据外媒可靠消息&#xff0c;扎克伯格的Meta 公司将在7月23日发布开源大模型Llama 3-405B&#xff0c;这是基于现有80亿和700亿参数两个版本之外推出的4050亿参数版本&#xff0c;号称当前地球表面最强大的开源大模型。 Llama 3-405B是…

快速排序及归并排序的实现与排序的稳定性

目录 快速排序 一. 快速排序递归的实现方法 1. 左右指针法 步骤思路 为什么要让end先走&#xff1f; 2. 挖坑法 步骤思路 3. 前后指针法 步骤思路 二. 快速排序的时间和空间复杂度 1. 时间复杂度 2. 空间复杂度 三. 快速排序的优化方法 1. 三数取中优化 2. 小区…

【C++】拷贝构造函数及析构函数

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

超详细信息收集篇

1 域名信息收集 1.1 域名是什么 域名&#xff08;英语&#xff1a;Domain Name&#xff09;&#xff0c;又称网域&#xff0c;是由一串用点分隔的名字组成的 Internet 上某一台 计算机 或计算机组的名称&#xff0c;用于在数据传输时对计算机的定位标识&#xff08;有时也指地…

学习分布式事务遇到的小bug

一、介绍Seata 在处理分布式事务时我用到是Seata&#xff0c;Seata的事务管理中有三个重要的角色&#xff1a; TC (Transaction Coordinator) - 事务协调者&#xff1a;维护全局和分支事务的状态&#xff0c;协调全局事务提交或回滚。 TM (Transaction Manager) - 事务管理器…

DockerHub无法拉取镜像怎么办

快速构建企业级AIGC项目 LangChat是Java生态下企业级AIGC项目解决方案&#xff0c;在RBAC权限体系的基础上&#xff0c;集成AIGC大模型功能&#xff0c;帮助企业快速定制知识库、企业机器人。 网站文档&#xff1a;Index – LangChat 后台地址&#xff1a;LangChain Chat 前台…

3.5、matlab打开显示保存点云文件(.ply/.pcd)以及经典点云模型数据

1、点云数据简介 点云数据是三维空间中由大量二维点坐标组成的数据集合。每个点代表空间中的一个坐标点&#xff0c;可以包含有关该点的颜色、法向量、强度值等额外信息。点云数据可以通过激光扫描、结构光扫描、摄像机捕捉等方式获取&#xff0c;广泛应用于计算机视觉、机器人…

Redis之List列表

目录 一.列表讲解 二.列表命令 三.内部编码 四.应用场景 Redis的学习专栏&#xff1a;http://t.csdnimg.cn/a8cvV 一.列表讲解 列表类型是用来存储多个有序的字符串&#xff0c;如下所示&#xff0c;a、b、c、d、e五个元素从左到右组成了一个有序的列表&#xff0c;列表中的…

【连续四届EI检索|稳定ACM出版、EI检索|线上线下结合】2024年第五届医学人工智能国际学术会议(ISAIMS 2024,8月13-17)

第五届医学人工智能国际学术会议&#xff08;ISAIMS2024&#xff09;将于2024年8月13-17日于荷兰阿姆斯特丹自由大学召开&#xff0c;国内分会场将于2024年10月25-27日于中国武汉召开。 会议自2020年至今已经成功举办四届&#xff0c;吸引了来自海内外相关领域学者600余名。本届…