【问题标题】:Mean square displacement python均方位移python
【发布时间】:2015-09-24 16:57:02
【问题描述】:

我有一个模拟 20,000 帧的轨迹文件,每帧之间有 5 ps 的时间,我想做的是计算二维(x 和 y 轴)的扩散。但要计算二维扩散,首先我必须计算所研究分子的均方位移。 MSD 计算分子在随机游走中探索系统所花费的平均时间。

我对 python 编程非常陌生,我真的需要一些帮助来开始这个问题并解决这个问题。希望能得到积极的回应。

【问题讨论】:

  • 请解释您尝试过的内容,发布一些代码,并提出一个与编程相关的精确问题。

标签: python statistics bioinformatics


【解决方案1】:

嗯,MSD 就像听起来一样,它是均方位移,所以您需要做的是找到每个位置的位置差异 (r(t + dt) -r(t)),然后将其平方最后取平均值。首先,您必须从 x 和 y 中找到 r,这很容易。我将假设您从现在开始使用 numpy。

    import numpy as np
    r = np.sqrt(xdata**2 + ydata**2)
    diff = np.diff(r) #this calculates r(t + dt) - r(t)
    diff_sq = diff**2
    MSD = np.mean(diff_sq)

现在这是计算 MSD 的一般方法,然后您可以与布朗运动之类的东西进行比较,其中 MSD = 4Dt 大约在 2 维中。

【讨论】:

  • 这真的很有帮助,但是我从哪里获得 X 和 Y 数据,我是否必须从“随机游走”中计算 20,000 帧的 X 和 Y 数据? def randwalk(x,y): theta=2*math.pi*rd.rand() x+=math.cos(theta); y+=math.sin(θ);返回 (x,y)
  • 或者我会从我的轨迹文件中获取 X 和 Y,它是 dcd 格式的?还是我必须计算 X 和 Y?
  • 哦,所以你甚至没有计算出轨迹,让我来解决这个问题。你只想要布朗运动吗?或者你想要其他的东西,比如超级或亚扩散运动?
  • 我有 dcd 格式的轨迹,总帧数为 20,000 ns 100 的总时间。我正在尝试使用 DCD 阅读器和 MDAnalysis python 包从轨迹中提取坐标。我必须计算脂质横向扩散..上面的公式也适用于脂质....
  • 一旦你提取了轨迹,它应该给你 x 和 y 坐标,我希望是 numpy 数组形式,然后你应该能够使用上面的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-08
相关资源
最近更新 更多