def _object(n, x, y, yp): obj = pwobj.Object() obj.n = n obj.x = x obj.y = y obj.yp = yp return obj
def addObj(objId, name, output='', size='', parent=None): obj = pwobj.Object(objId=objId) obj.name = name obj.output = output obj.outSize = size obj._objParent = parent objects.append(obj) return obj
def compareClassesStep(self, i1, i2): set1 = self.inputClasses1.get() set2 = self.inputClasses2.get() # Compare each pair of class from set1 and set2 # compute the Jaccard index for each (J = len(intersection) / len(union)) # Create a list will all pairs indexes and the sort them jaccardList = [] f = open(self._getPath('jaccard.txt'), 'w') f.write( '; class1 class2 intersection(i) union(i) jaccard index = len(i)/len(u)\n' ) for cls1 in set1: ids1 = cls1.getIdSet() for cls2 in set2: ids2 = cls2.getIdSet() inter = len(ids1.intersection(ids2)) union = len(ids1.union(ids2)) jaccardIndex = float(inter) / union jaccardTuple = (cls1.getObjId(), cls2.getObjId(), inter, union, jaccardIndex) f.write('%d %d %d %d %0.3f\n' % jaccardTuple) jaccardList.append(jaccardTuple) f.close() jaccardList.sort(key=lambda e: e[4], reverse=True) visitedClasses = set() outputFn = self._getPath('consensus.sqlite') pwutils.cleanPath(outputFn) outputSet = emobj.EMSet(filename=outputFn) for clsId1, clsId2, inter, union, jaccardIndex in jaccardList: if clsId1 not in visitedClasses: visitedClasses.add(clsId1) # mark as visited cls1 = set1[clsId1] cls2 = set2[clsId2] o = pwobj.Object() o.setObjLabel('classes %d - %d' % (clsId1, clsId2)) o.class1 = cls1.clone() o.class1.id = pwobj.Integer(clsId1) o.class2 = cls2.clone() o.class2.id = pwobj.Integer(clsId2) o.jaccard = pwobj.Float(jaccardIndex) o.intersection = pwobj.Integer(inter) o.union = pwobj.Integer(union) outputSet.append(o) self._defineOutputs(outputConsensus=outputSet)
def testWithPointer(self): obj = pwobj.Integer(10) self.assertFalse(obj.hasPointer(), "Default instantiation off Integer has a pointer.") self.assertEqual(obj.get(), 10, "Integer.get(), without pointer fails.") pointee = pwobj.Object() setattr(pointee, "value", pwobj.Integer(20)) # Set a pointer (not a real case though, but enough here) obj.setPointer(pwobj.Pointer(pointee, extended='value')) self.assertEqual(obj.get(), 20, "Integer.get() fails with a pointer.")