Пример #1
0
 def _object(n, x, y, yp):
     obj = pwobj.Object()
     obj.n = n
     obj.x = x
     obj.y = y
     obj.yp = yp
     return obj
Пример #2
0
 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
Пример #3
0
    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)
Пример #4
0
    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.")