code: def update_probs(self):
          
          # We deal with the prior probsfirst
          # This is a fixed assumed value for systematic error
          syst_error = 0.05
          prior_probs = {'syst': {}, 'rand': {}}
          for source, (p, n) in self.prior_counts.items():
              # Skip if there are no actual counts
              if n + p == 0:
                  continue
              prior_probs['syst'][source] = syst_error
              prior_probs['rand'][source] = \
                  1 - min((float(p) / (n + p), 1-syst_error)) - syst_error
          # Next we deal with subtype probs based on counts
          subtype_probs = {}
          for source, entry in self.subtype_counts.items():
              for rule, (p, n) in entry.items():
                  # Skip if there are no actual counts
                  if n + p == 0:
                      continue
                  if source not in subtype_probs:
                      subtype_probs[source] = {}
                  subtype_probs[source][rule] = \
                      1 - min((float(p) / (n + p), 1-syst_error)) - syst_error
          # Finally we propagate this into the full probability
          # data structures of the parent class
          super(BayesianScorer, self).update_probs(prior_probs, subtype_probs)
docs: Update the internal probability values given the counts.