From 1621caa93ca2984a2a4c93a54b30fc005bb94d36 Mon Sep 17 00:00:00 2001
From: James Graham <J.A.Graham@soton.ac.uk>
Date: Thu, 8 Sep 2016 16:52:14 +0100
Subject: [PATCH] Added simulation time to Frame Fixes graphs from GROMACS
 tools analysing output XTCs

---
 pycgtool/frame.py   | 6 +++++-
 pycgtool/mapping.py | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/pycgtool/frame.py b/pycgtool/frame.py
index f7d0c83..eee0ac4 100644
--- a/pycgtool/frame.py
+++ b/pycgtool/frame.py
@@ -135,6 +135,7 @@ class Frame:
         """
         self.residues = []
         self.number = frame_start - 1
+        self.time = 0
         self.numframes = 0
         self.natoms = 0
         self.box = np.zeros(3, dtype=np.float32)
@@ -249,6 +250,7 @@ class Frame:
                     i += 1
 
             self.number += 1
+            self.time = xtc_frame.time[0]
             self.box = xtc_frame.unitcell_lengths[0]
             return True
         # IndexError - run out of xtc frames
@@ -274,6 +276,7 @@ class Frame:
                     atom.coords = self.xtc.x[i]
                     i += 1
             self.number += 1
+            self.time = self.xtc.time
 
             self.box = np.diag(self.xtc.box)[0:3] / 10
 
@@ -303,13 +306,14 @@ class Frame:
                 xyz[0][i] = atom.coords
                 i += 1
 
+        time = np.array([self.time], dtype=np.float32)
         step = np.array([self.number], dtype=np.int32)
 
         box = np.zeros((1, 3, 3), dtype=np.float32)
         for i in range(3):
             box[0][i][i] = self.box[i]
 
-        self._xtc_buffer.write(xyz, step=step, box=box)
+        self._xtc_buffer.write(xyz, time=time, step=step, box=box)
 
     def _parse_gro(self, filename):
         """
diff --git a/pycgtool/mapping.py b/pycgtool/mapping.py
index 8a72f45..e93a010 100644
--- a/pycgtool/mapping.py
+++ b/pycgtool/mapping.py
@@ -175,6 +175,7 @@ class Mapping:
             aa_residues = list(aa_residues)
             cgframe = self._cg_frame_setup(aa_residues, frame.name)
 
+        cgframe.time = frame.time
         cgframe.number = frame.number
         cgframe.box = frame.box
 
-- 
GitLab