def score_edges_within_pevents(allevents, historyScores, totalp, prev_error=0.05, ignore_cn=True): prevalence_error = prev_error sys.stderr.write("number of events: %d\n" % (len(allevents))) alledges = [] for event in allevents: event.unpack() # if event.segs == []: # event.make_segs_from_str() for seg in event.segs: edge = copy.deepcopy(event) edge.segs = [seg] edge.make_segstr() if ignore_cn: (mysegstr, sign) = histseg.remove_signs_from_segstr(edge.segstr) edge.segstr = "+/" + mysegstr if sign == "-": edge.cnval = -1 * event.cnval alledges.append(edge) # sys.stderr.write("number of edges is: %d\n" % (len(alledges))) sortededges = sorted(alledges, key=lambda x: (x.segstr, x.cnval)) if ignore_cn: unique_edges = unique_loc_edges(sortededges) else: unique_edges = unique_c_edges(sortededges) sys.stderr.write("totalp: %s\n" % (str(totalp))) for edge in unique_edges: edge.update(historyScores) edge.likelihood = histseg.compute_likelihood_histories(edge.histories, historyScores, totalp) edge.trim() return unique_edges
def __init__(self, edge): self.edge=edge self.isTrue=0 # this will be 0 if edge is FP, 1 if TP, 2 if TN, -1 if FN self.refindex=-1 self.refpreval=-1 self.reforder=-1 self.avecost=-1 self.type=edge.determineEventType() (self.segstr, self.sign)=histseg.remove_signs_from_segstr(edge.segstr) self.cnval=edge.cnval*self.sign