Source code for pydna_epbd.monitors.flipping_monitor
from pydna_epbd.monitors.monitor import Monitor
[docs]class FlippingMonitor(Monitor):
"""The flipping monitor collects flipping characteristics for each bp at every post preheating steps
at a predefined threshold.
"""
FLIP_CUTOFF = 0.707106781186548 # correspond to 0.5A and 1.5A
def __init__(self, dna) -> None:
"""initialize FlippingMonitor object.
Args:
dna (DNA): A DNA object.
"""
super(FlippingMonitor, self).__init__(dna)
self.flip = [0.0] * self.dna.n_nt_bases # shape=(n_nt_bases, FLIP_SIZE)
[docs] def collect_at_step(self, step_no):
"""Collects flipping characteristics.
Args:
step_no (int): Step number.
"""
for i in range(self.dna.n_nt_bases):
if self.dna.coords_dist[i] >= self.FLIP_CUTOFF:
self.flip[i] += 1