@@ -96,7 +96,7 @@ def execute(self) -> None:
9696
9797 This orchestrates the complete entropy pipeline:
9898 1. Build trajectory slice.
99- 2. Apply atom selection to create a reduced universe.
99+ 2. Apply atom and frame selection to create a reduced universe.
100100 3. Detect hierarchy levels.
101101 4. Group molecules.
102102 5. Split groups into water and non-water.
@@ -233,21 +233,31 @@ def _get_number_frames(self, start: int, end: int, step: int) -> int:
233233 return math .floor ((end - start ) / step )
234234
235235 def _build_reduced_universe (self ) -> Any :
236- """Apply atom selection and return the reduced universe.
237-
238- If `selection_string` is "all", the original universe is returned.
236+ """Apply atom and frame selection and return the reduced universe.
239237
240238 Returns:
241- MDAnalysis Universe (original or reduced ).
239+ MDAnalysis Universe (reduced according to user selections ).
242240 """
243241 selection = self ._args .selection_string
242+ start = self ._args .start
243+ end = len (self ._universe .trajectory ) if self ._args .end == - 1 else self ._args .end
244+ step = self ._args .step
244245 if selection == "all" :
245- return self ._universe
246+ reduced_atoms = self ._universe
247+ else :
248+ reduced_atoms = self ._universe_operations .select_atoms (
249+ self ._universe , selection
250+ )
251+ name = f"{ len (reduced_atoms .trajectory )} _frame_dump_atom_selection"
252+ self ._run_manager .write_universe (reduced_atoms , name )
253+
254+ reduced_frames = self ._universe_operations .select_frames (
255+ reduced_atoms , start , end , step
256+ )
257+ name = f"{ len (reduced_frames .trajectory )} _frame_dump_frame_selection"
258+ self ._run_manager .write_universe (reduced_frames , name )
246259
247- reduced = self ._universe_operations .select_atoms (self ._universe , selection )
248- name = f"{ len (reduced .trajectory )} _frame_dump_atom_selection"
249- self ._run_manager .write_universe (reduced , name )
250- return reduced
260+ return reduced_frames
251261
252262 def _detect_levels (self , reduced_universe : Any ) -> Any :
253263 """Detect hierarchy levels for each molecule in the reduced universe.
0 commit comments