Esempio n. 1
0
 def getIdentityFromPathList( lPaths, checkSubjects=True ):
     if len( PathUtils.getListOfDistinctQueryNames( lPaths ) ) > 1:
         msg = "ERROR: try to compute identity from Paths with different queries"
         sys.stderr.write( "%s\n" % msg ); sys.stderr.flush()
         raise Exception
     if checkSubjects and len( PathUtils.getListOfDistinctSubjectNames( lPaths ) ) > 1:
         msg = "ERROR: try to compute identity from Paths with different subjects"
         sys.stderr.write( "%s\n" % msg ); sys.stderr.flush()
         raise Exception
     identity = 0
     lMergedPaths = PathUtils.mergePathsInListUsingQueryCoordsOnly( lPaths )
     lQuerySets = PathUtils.getSetListFromQueries( lMergedPaths )
     lMergedQuerySets = SetUtils.mergeSetsInList( lQuerySets )
     totalLengthOnQry = SetUtils.getCumulLength( lMergedQuerySets )
     for iPath in lMergedPaths:
         identity += iPath.identity * iPath.getLengthOnQuery()
     weightedIdentity = identity / float(totalLengthOnQry)
     if weightedIdentity < 0 or weightedIdentity > 100:
         msg = "ERROR: weighted identity '%.2f' outside range" % ( weightedIdentity )
         sys.stderr.write( "%s\n" % msg ); sys.stderr.flush()
         raise Exception
     return weightedIdentity
        qmax = qmax + 1
        if stype == "path":
            lPaths = stablePathAdaptator.getPathListOverlappingQueryCoord( lQuerySets[0].seqname.split()[0], qmin, qmax )
            lSubjectSets = PathUtils.getSetListFromQueries( lPaths )
        elif stype == "set":
            lSubjectSets = stableSetAdaptator.getSetListFromQueryCoord( lQuerySets[0].seqname.split()[0], qmin, qmax )

        if verbose > 1:
            print "----------------------------------------"

        if len(lSubjectSets) > 0:
            if verbose > 1:
                print "annot:"
                SetUtils.showList( lQuerySets )
            lQuerySets = SetUtils.mergeSetsInList( lQuerySets )
            qsize = SetUtils.getCumulLength( lQuerySets )
            string += "\nannot size: %i" % ( qsize )
            if verbose > 1:
                print "annot size=", qsize

            if verbose > 1:
                print "simple repeats list:"
                SetUtils.showList( lSubjectSets )
            lSubjectSets = SetUtils.mergeSetsInList( lSubjectSets )
            ssize = SetUtils.getCumulLength( lSubjectSets )
            string += "\nsimple repeats size: %i" % ( ssize )
            osize = SetUtils.getOverlapLengthBetweenLists( lQuerySets, lSubjectSets )
            string += "\noverlap size: %i" % ( osize )
            string += "\nremains %i" % ( qsize - osize )

            if verbose > 1:
Esempio n. 3
0
 def getLengthOnQueryFromPathList( lPaths ):
     lSets = PathUtils.getSetListFromQueries( lPaths )
     lMergedSets = SetUtils.mergeSetsInList( lSets )
     length = SetUtils.getCumulLength( lMergedSets )
     return length