Данные временных рядов для молекул воды из файла dcd - PullRequest
1 голос
/ 04 марта 2020

Я пытаюсь создать файл, содержащий данные временных рядов молекул воды из файла dcd. Можно ли сгенерировать эти данные, используя какой-либо модуль или функцию MDAnalysis? Или есть сценарий python для создания этого файла?

Мне нужно создать этот файл, содержащий два столбца (один с координатами z молекул воды и второй с соответствующими временными шагами), используя файл DCD в качестве входных данных.

1 Ответ

0 голосов
/ 05 марта 2020

Вы можете получить (z, t) временной ряд различными способами, но я показываю самый базовый c здесь. Я предполагаю, что у вас также есть файл топологии PSF в дополнение к файлу траектории DCD (но на самом деле любой формат файла топологии и траектории будет работать в MDAnalysis). Я также предполагаю, что атомы кислорода в воде названы "OW".

Мне на самом деле не ясно, как вы хотите, чтобы ваша структура данных "z, t" выглядела. Если у вас есть N молекул воды, то у вас будет N z-координаты на шаг по времени, поэтому я не знаю, как это имеет смысл как "две колонки", предполагая, что вы хотите, чтобы каждая "строка" была разной шаг времени. Вместо этого я буду использовать следующую структуру данных: конечный результат будет массивом с формой (T, N+1), где T - это количество временных шагов в траектории, а N - это количество вод. Каждая строка массива содержит [t, z1, z2, ..., zN], то есть время и z-координату воды i.

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 group , где вы обычно получаете самые быстрые ответы.

...