Beispiel #1
0
def getAlignmentScore(matrix, tour):
    """ Returns the total score for this solution """
    global fragments, memo

    alignmentList = []
    for i in range(len(tour) - 1):
        alignmentList.append((int(tour[i]), int(tour[i + 1])))

    offset = 0
    for pair in alignmentList:
        if pair[0] == pair[1] == 0:
            print("Error, error, error!")
            break
        if pair in memo:
            offset += memo[pair]
        else:
            theOverlap, addToOffset = overlap(fragments[pair[0]],
                                              fragments[pair[1]])
            offset += addToOffset
            memo[pair] = addToOffset

    # Return the length of the overall alignment
    # Offset tells us where the last thing lines up against the whole sequence
    # The full length of the aligned fragments is the offset plus the length of
    # the last fragment
    return offset + len(fragments[tour[-1]])
Beispiel #2
0
def getAlignmentScore(matrix, tour):
    """ Returns the total score for this solution """
    global fragments, memo

    alignmentList = []
    for i in range( len(tour)-1 ):
        alignmentList.append( ( int(tour[i]), int(tour[i+1])) )

    offset = 0
    for pair in alignmentList:
        if pair[0] == pair[1] == 0:
            print("Error, error, error!")
            break
        if pair in memo:
            offset += memo[pair]
        else:
            theOverlap, addToOffset = overlap(fragments[pair[0]], fragments[pair[1]])
            offset += addToOffset
            memo[pair] = addToOffset

    # Return the length of the overall alignment
    # Offset tells us where the last thing lines up against the whole sequence
    # The full length of the aligned fragments is the offset plus the length of
    # the last fragment
    return offset + len(fragments[ tour[-1] ])
def writeAlignmentCSV( fileToWriteTo, fragments, alignments ):
    offset = 0
    csvFile = open(fileToWriteTo, "w")
    for pair in alignments:
        if pair[0] == pair[1] == 0:
            break
        csvFile.write( (" ,"*offset) )
        for letter in fragments[pair[0]]:
            csvFile.write( letter + "," )
        csvFile.write("\n")
        theOverlap, addToOffset = overlap(fragments[pair[0]], fragments[pair[1]])
        #print("Overlap between",fragments[pair[0]], "and", fragments[pair[1]], " was", theOverlap)
        offset += addToOffset
def writeAlignmentCSV(fileToWriteTo, fragments, alignments):
    offset = 0
    csvFile = open(fileToWriteTo, "w")
    for pair in alignments:
        if pair[0] == pair[1] == 0:
            break
        csvFile.write((" ," * offset))
        for letter in fragments[pair[0]]:
            csvFile.write(letter + ",")
        csvFile.write("\n")
        theOverlap, addToOffset = overlap(fragments[pair[0]],
                                          fragments[pair[1]])
        #print("Overlap between",fragments[pair[0]], "and", fragments[pair[1]], " was", theOverlap)
        offset += addToOffset
def printAlignments( listOfFragments, alignmentList ):
    offset = 0
    for pair in alignmentList:
        if pair[0] == pair[1] == 0:
            break
        print( (" "*offset), listOfFragments[pair[0]], sep="" )
        theOverlap, addToOffset = overlap(listOfFragments[pair[0]], listOfFragments[pair[1]])
        #print("Overlap between",listOfFragments[pair[0]], "and", listOfFragments[pair[1]], " was", theOverlap)
        offset += addToOffset

    # Count the base pairs:
    count = 0
    for fragment in listOfFragments:
        count += len(fragment)
    print("\n\nNumber of base pairs is",count)
    print("Expected length of the final sequence is",count,"/ (4*5) = ",count/(4*5))
    print("Actual length of the sequence is a bit more than",offset)
def printAlignments(listOfFragments, alignmentList):
    offset = 0
    for pair in alignmentList:
        if pair[0] == pair[1] == 0:
            break
        print((" " * offset), listOfFragments[pair[0]], sep="")
        theOverlap, addToOffset = overlap(listOfFragments[pair[0]],
                                          listOfFragments[pair[1]])
        #print("Overlap between",listOfFragments[pair[0]], "and", listOfFragments[pair[1]], " was", theOverlap)
        offset += addToOffset

    # Count the base pairs:
    count = 0
    for fragment in listOfFragments:
        count += len(fragment)
    print("\n\nNumber of base pairs is", count)
    print("Expected length of the final sequence is", count, "/ (4*5) = ",
          count / (4 * 5))
    print("Actual length of the sequence is a bit more than", offset)