def get_error_probability(self):
    """This means for the base we are talking about how many errors between 0 and 1 do we attribute to it?
       For the 'unobserved' errors, these can only count when one is adjacent to base

    :returns: error probability p(error_observed)+(1-p_error_observed)*error_unobserved
    :rtype: float

    """
    a = self._observable.get_error_probability()
    b = self._unobservable.get_error_probability()
    return a+(1-a)*b
This means for the base we are talking about how many errors between 0 and 1 do we attribute to it?
       For the 'unobserved' errors, these can only count when one is adjacent to base

    :returns: error probability p(error_observed)+(1-p_error_observed)*error_unobserved
    :rtype: float