1

dcd ファイルから水分子の時系列データを含むファイルを作成しようとしています。MDAnalysis モジュールまたは関数のいずれかを使用してこのデータを生成することは可能ですか? または、このファイルを生成するための Python スクリプトはありますか?

DCD ファイルを入力として使用して、2 つの列 (1 つは水分子の z 座標、もう 1 つはそれぞれの時間ステップ) を含むこのファイルを生成する必要があります。

4

1 に答える 1

0

(z, t) 時系列はさまざまな方法で取得できますが、ここでは最も基本的なものを示しています。DCD 軌跡ファイルに加えて、PSF トポロジー ファイルもあると仮定します (ただし、実際には、すべてのトポロジーおよび軌跡ファイル形式が MDAnalysis で機能します)。また、水の酸素原子は「OW」と名付けられていると思います。

「z、t」データ構造をどのように見せたいのか、実際にはわかりません。N水分子がある場合は、N時間ステップごとに z 座標があるため、各「行」を異なる時間ステップにしたいと仮定すると、これが「2 つの列」としてどのように意味を持つのかわかりません。代わりに、次のデータ構造を使用します。最終的な出力は形状の配列になります(T, N+1)。ここTで、 は軌跡の時間ステップNの数、 は水の数です。配列の各行には、[t, z1, z2, ..., zN]水 i の時間と z 座標が含まれます。

import numpy as np
import MDAnalysis as mda

u = mda.Universe(PSF, DCD)
water_oxygens = u.select_atoms("name OW")

# pre-allocate the array for the data
data = np.zeros((u.trajectory.n_frames, water_oxygens.n_atoms + 1))

for i, ts in enumerate(u.trajectory):
   data[i, 0] = ts.time                          # store current time
   data[i, 1:] = water_oxygens.positions[:, 2]   # extract all z-coordinates

# now data contains your timeseries and you can work with it
# (or export it using np.savetxt()

MDAnalysis の概要については、ユーザー ガイドを参照してください。ユーザー ガイドには、選択と軌跡の反復を説明するクイックスタート ガイドもあります。

さらに質問がある場合は、MDAnalysis の Google グループで質問してください。通常、最も迅速な回答が得られます。

于 2020-03-04T23:16:59.783 に答える