You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用Python复现PLOS ONE论文分岔图的技术问题求助

复现PLOS ONE论文分岔图的问题

我正尝试复现一篇PLOS ONE论文中的分岔图,目标分岔图如下:
目标分岔图

系统对应的微分方程为:
微分方程

我的思路是绘制每个方程的零倾线,再找出不同s4(论文选定的分岔参数)值下的零倾线交点,以此复现分岔图,但目前绘制的零倾线完全没有分岔图的特征,我怀疑要么是方程用错了,要么是代码有问题。

我不确定当前的方向是否正确——是不是应该改为绘制Nanog合成速率与降解速率的零倾线,再针对多个s4值重复这个操作?

第一次尝试的代码

def os_nullcline(os):
    return (u * (((s1 * os**v) / ((k1 + os**v) * do)) * ((s2 * os**v) / ((k2 + os**v) * ds))))/dos


def n_nullcline(n, os):
    return (((s4 * n**b) / (k4 + n**b)) + ((s3 * os**v) / (k3 + os**v)) + np.random.normal(0, sigma) * n)/dn


# Defining values for u and v
npts = 100
os_values = np.linspace(0, 4000, npts)
n_values = np.linspace(0, 4000, npts)

# Calculating the nullcline value
os_null = os_nullcline(os_values)
n_null = n_nullcline(n_values, os_values)

# Plotting nullclines
plt.plot(os_values, os_null, label='os nullcline', color='blue')
plt.plot(n_null, n_values, label='n nullcline', color='red')

第二次尝试的代码(针对Nanog合成/降解零倾线)

后来我考虑到零倾线交点对应稳态水平,于是尝试绘制Nanog合成速率与降解速率的零倾线,但得到的图表明显不对:

import numpy as np
import matplotlib.pyplot as plt

def plot_nullclines(k4, b, s4, k3, s3, dn, v):
    n_values = np.linspace(0, 10, 100)
    os_values = np.linspace(0, 10, 100)


    # Nullcline equation 1
    nullcline1 = (k4 + n_values**b) * (s4 * n_values**b) + (k3 + os_values**v) * (s3 * os_values**v)                             

    # Nullcline equation 2
    nullcline2 = dn * n_values

    # Plotting nullclines
    plt.plot(n_values, nullcline1, label='Nullcline 1', color='blue')
    plt.plot(n_values, nullcline2, label='Nullcline 2', color='red')

    plt.xlabel('n')
    plt.ylabel('Expression level')
    plt.title('Nullclines of the given equations')
    plt.legend()
    plt.grid(True)
    plt.show()

# Example usage
plot_nullclines(k4=10, b=2, s4=14, k3=10, s3=0.1, dn=1, v=1)

错误的输出图:
错误的零倾线图

内容的提问来源于stack exchange,提问作者jane mcgrath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 19:31:01