Source code for pydna_epbd.monitors.monitor
from pydna_epbd.simulation.dna import DNA
[docs]class Monitor:
"""The monitor to collect various aspects of the simulation."""
def __init__(self, dna: DNA) -> None:
"""Initialize Monitor object for the input DNA object.
Args:
dna (DNA): A DNA object.
"""
super(Monitor, self).__init__()
self.dna = dna
[docs] def update_state(self, seq_id, temp, iter_no):
"""State of a monitor
Args:
seq_id (str): Sequence id.
temp (float): Simulation temperature.
iter_no (int): Iteration number.
"""
self.seq_id = seq_id
self.temp_idx = temp
self.iter_no = iter_no
[docs] def collect_at_step(self, step_no):
"""The characteristics to collect at post-preheating steps.
Abstract method to be implemented by the child monitors,
to collect specific aspects of the MCMC simulation.
Args:
step_no (int): Iteration number.
Raises:
NotImplementedError: The child monitors must implement this.
"""
raise NotImplementedError()
[docs] def collect_at_step_preheat(self, step_no):
"""The characteristics to collect at preheating steps.
Optional, since not all child monitors need to record at preheating steps.
Args:
step_no (int): Iteration number.
"""
pass
[docs] def collect_at_iter(self):
"""The characteristics to collect at the end of each iteration.
The corresponding iteration number is updated in the update_state function
Optional, since not all child monitors need to record at iteration end.
"""
pass
[docs] def collect_at_temp(self):
"""The characteristics to collect specifically for each temperature.
The corresponding temperature is updated in the update_state function
Optional, since not all child monitors need to record at temperature end.
"""
pass