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 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)