コード例 #1
0
ファイル: test_save_trajs.py プロジェクト: nd1511/PyEMMA
    def setUp(self):
        self.eps = 1e-10
        path = pkg_resources.resource_filename(__name__, 'data') + os.path.sep
        self.pdbfile = os.path.join(path, 'bpti_ca.pdb')
        self.trajfiles = [os.path.join(path, 'bpti_001-033.xtc'),
                          os.path.join(path, 'bpti_034-066.xtc'),
                          os.path.join(path, 'bpti_067-100.xtc')
                          ]

        # Create random sets of files and frames to be retrieved from trajfiles
        n_members_set1 = 10
        n_members_set2 = 20
        set_1 = np.vstack((np.random.permutation([0, 2] * n_members_set1)[:n_members_set1],
                           np.random.randint(32, size=n_members_set1))).T

        set_2 = np.vstack((np.random.permutation([0, 2] * n_members_set2)[:n_members_set2],
                           np.random.randint(32, size=n_members_set2))).T

        self.sets = [set_1, set_2]

        self.subdir = tempfile.mkdtemp(suffix='save_trajs_test/')

        # Instantiate the reader
        self.reader = coor.source(self.trajfiles, top=self.pdbfile)
        self.reader.chunksize = 30
        self.n_pass_files = [self.subdir + 'n_pass.set_%06u.xtc' % ii for ii in range(len(self.sets))]
        self.one_pass_files = [self.subdir + '1_pass.set_%06u.xtc' % ii for ii in range(len(self.sets))]

        self.traj_ref = save_traj_w_md_load_frame(self.reader, self.sets)
        self.strides = [2, 3, 5]
コード例 #2
0
    def test_reader_input_save_correct_frames_with_stride_in_memory(self):
        # With the inmemory option = True

        for stride in self.strides[:]:
            # Since none of the trajfiles have more than 30 frames, the frames have to be re-drawn for every stride
            sets = np.copy(self.sets)
            sets[0][:, 1] = np.random.randint(0,
                                              high=30 / stride,
                                              size=np.shape(sets[0])[0])
            sets[1][:, 1] = np.random.randint(0,
                                              high=30 / stride,
                                              size=np.shape(sets[1])[0])

            traj = save_traj(self.reader,
                             sets,
                             None,
                             stride=stride,
                             verbose=False)

            # Also the reference has to be re-drawn using the stride. For this, we use the re-scale the strided
            # frame-indexes to the unstrided value
            sets[0][:, 1] *= stride
            sets[1][:, 1] *= stride
            traj_ref = save_traj_w_md_load_frame(self.reader, sets)

            # Check for diffs
            (found_diff,
             errmsg) = compare_coords_md_trajectory_objects(traj,
                                                            traj_ref,
                                                            atom=0)
            self.assertFalse(found_diff, errmsg)
コード例 #3
0
    def test_save_SaveTrajs_multipass_with_stride(self):
        # With the inmemory option = True

        for stride in self.strides[:]:
            # Since none of the trajfiles have more than 30 frames, the frames have to be re-drawn for every stride
            sets = np.copy(self.sets)
            sets[0][:, 1] = np.random.randint(0,
                                              high=30 / stride,
                                              size=np.shape(sets[0])[0])
            sets[1][:, 1] = np.random.randint(0,
                                              high=30 / stride,
                                              size=np.shape(sets[1])[0])

            __ = save_trajs(self.reader,
                            sets,
                            outfiles=self.one_pass_files,
                            inmemory=False,
                            stride=stride)

            traj_1_pass = single_traj_from_n_files(self.one_pass_files,
                                                   top=self.pdbfile)

            # Also the reference has to be re-drawn using the stride. For this, we use the re-scale the strided
            # frame-indexes to the unstrided value
            sets[0][:, 1] *= stride
            sets[1][:, 1] *= stride
            traj_ref = save_traj_w_md_load_frame(self.reader, sets)

            # Check for diffs
            (found_diff,
             errmsg) = compare_coords_md_trajectory_objects(traj_1_pass,
                                                            traj_ref,
                                                            atom=0)
            self.assertFalse(found_diff, errmsg)
コード例 #4
0
    def test_with_fragmented_reader(self):
        # intenionally group bpti dataset to a fake fragmented traj
        frag_traj = [[self.trajfiles[0], self.trajfiles[1]], self.trajfiles[2]]
        reader = coor.source(frag_traj, top=self.pdbfile)

        traj = save_traj(reader, self.sets, None)
        traj_ref = save_traj_w_md_load_frame(self.reader, self.sets)

        # Check for diffs
        (found_diff, errmsg) = compare_coords_md_trajectory_objects(traj,
                                                                    traj_ref,
                                                                    atom=0)
        self.assertFalse(found_diff, errmsg)
コード例 #5
0
ファイル: test_save_traj.py プロジェクト: stefdoerr/PyEMMA
    def test_with_fragmented_reader_chunksize_0(self):
        # intentionally group bpti dataset to a fake fragmented traj
        frag_traj = [[self.trajfiles[0], self.trajfiles[1]], self.trajfiles[2],
                     self.trajfiles[2]]
        reader = coor.source(frag_traj, top=self.pdbfile, chunk_size=0)
        assert reader.chunksize == 0
        traj = save_traj(reader, self.sets, None)
        traj_ref = save_traj_w_md_load_frame(self.reader, self.sets)
        # Check for diffs
        (found_diff, errmsg) = compare_coords_md_trajectory_objects(traj,
                                                                    traj_ref,
                                                                    atom=0)

        np.testing.assert_equal(traj.xyz, traj_ref.xyz)
        self.assertFalse(found_diff, errmsg)