import os, sys, numpy dir_path = os.path.dirname(os.path.realpath(__file__)) dir_path = dir_path[:dir_path.rfind('/')] + '/0_Helper_Modules' sys.path.insert(0, dir_path) from DNAPatterns import DNA DNA_STRING = sys.stdin.readline().strip() K = sys.stdin.readline().strip() K = int(K) PROFILE_LINE_1 = sys.stdin.readline().strip() PROFILE_LINE_2 = sys.stdin.readline().strip() PROFILE_LINE_3 = sys.stdin.readline().strip() PROFILE_LINE_4 = sys.stdin.readline().strip() EXPECTED = sys.stdin.readline().strip() profile = numpy.zeros([4, K]) profile[0] = PROFILE_LINE_1.split(' ') profile[1] = PROFILE_LINE_2.split(' ') profile[2] = PROFILE_LINE_3.split(' ') profile[3] = PROFILE_LINE_4.split(' ') myDNA = DNA(DNA_STRING) kMer = myDNA.profielMostProbableKmer(K, profile) print 'EXPECTED: ', EXPECTED print 'GOT: ', kMer
# coding=utf-8 import os, sys dir_path = os.path.dirname(os.path.realpath(__file__)) dir_path = dir_path[:dir_path.rfind('/')] + '/0_Helper_Modules' sys.path.insert(0, dir_path) from DNAPatterns import DNA K_AND_D = sys.stdin.readline().strip() #sys.readline() les linu, strip() fjarlægir enter merki DNAStrings = [] while True: DNA_STRING = sys.stdin.readline().strip() #sys.readline() les linu, strip() fjarlægir enter merki if len(DNA_STRING.split()) == 1: DNAStrings.append(DNA(DNA_STRING)) else: break K = int(K_AND_D.split()[0]) D = int(K_AND_D.split()[1]) myDNA = DNA('') allPossibleDNAStrings = myDNA.getAllPossibleKmers(K) kMersExistInAll = [] for kMer in allPossibleDNAStrings: wasBroken = False for dna in DNAStrings: doesExist = dna.kMerExistsWithMaxHammingDistance(kMer, D) if not doesExist: wasBroken = True break
# coding=utf-8 import sys, os dir_path = os.path.dirname(os.path.realpath(__file__)) dir_path = dir_path[:dir_path.rfind('/')] + '/0_Helper_Modules' sys.path.insert(0, dir_path) from DNAPatterns import DNA DNA_STRING_1 = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki DNA_STRING_2 = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki myDNA = DNA(DNA_STRING_1) print myDNA.hammingDistance(0, DNA_STRING_2)
# coding=utf-8 import sys, os dir_path = os.path.dirname(os.path.realpath(__file__)) dir_path = dir_path[:dir_path.rfind('/')] + '/0_Helper_Modules' sys.path.insert(0, dir_path) from DNAPatterns import DNA DNA_STRING = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki myDNAString = DNA(DNA_STRING) print myDNAString.reverseCompliment()
# coding=utf-8 import os, sys dir_path = os.path.dirname(os.path.realpath(__file__)) dir_path = dir_path[:dir_path.rfind('/')] + '/0_Helper_Modules' sys.path.insert(0, dir_path) from DNAPatterns import DNA DNA_STRING = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki K_AND_D = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki K = int(K_AND_D.split()[0]) D = int(K_AND_D.split()[1]) myDNA = DNA(DNA_STRING) allPossiblekMers = myDNA.getAllPossibleKmers(K) allCounts = [] for kMer in allPossiblekMers: allCounts.append(myDNA.howOftenkMerAppearsWithMinHammingDistance(kMer, D)) maxCount = 0 maxKMers = [] kMersCounts = dict(zip(allPossiblekMers, allCounts)) for kMer in kMersCounts: print maxCount if kMersCounts[kMer] > maxCount: maxCount = kMersCounts[kMer] maxKMers = [kMer] elif kMersCounts[kMer] == maxCount: maxKMers.append(kMer)
# coding=utf-8 import sys, os dir_path = os.path.dirname(os.path.realpath(__file__)) dir_path = dir_path[:dir_path.rfind('/')] + '/0_Helper_Modules' sys.path.insert(0, dir_path) from DNAPatterns import DNA PATTERN = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki DNA_STRING = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki myDNAString = DNA(DNA_STRING) indexes = [] for i, c in enumerate(myDNAString.getString()): if myDNAString.text(i, len(PATTERN)) == PATTERN: indexes.append(i) print indexes
# coding=utf-8 import sys, os dir_path = os.path.dirname(os.path.realpath(__file__)) dir_path = dir_path[:dir_path.rfind('/')] + '/0_Helper_Modules' sys.path.insert(0, dir_path) from DNAPatterns import DNA DNA_STRING = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki myDNA = DNA(DNA_STRING) minSkews = myDNA.minimizeSkew(0, len(DNA_STRING)) lengths = [] for i in minSkews: lengths.append(str(i[1])) print ' '.join(lengths)
# coding=utf-8 import sys, os dir_path = os.path.dirname(os.path.realpath(__file__)) dir_path = dir_path[:dir_path.rfind('/')] + '/0_Helper_Modules' sys.path.insert(0, dir_path) from DNAPatterns import DNA PATTERN = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki DNA_STRING = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki MAX_DISTANCE = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki EXPECT = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki myDNA = DNA(DNA_STRING) indices = myDNA.minHammingDistancePositions(PATTERN, int(MAX_DISTANCE)) print ' '.join(str(x) for x in indices) print EXPECT == ' '.join(str(x) for x in indices) print EXPECT
dir_path = os.path.dirname(os.path.realpath(__file__)) dir_path = dir_path[:dir_path.rfind('/')] + '/0_Helper_Modules' sys.path.insert(0, dir_path) from DNAPatterns import DNA DNA_STRING = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki SOME_NUMBERS = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki SOME_NUMBERS = SOME_NUMBERS.split(' ') k = int(SOME_NUMBERS[0]) L = int(SOME_NUMBERS[1]) t = int(SOME_NUMBERS[2]) myDNA = DNA(DNA_STRING) indexes = defaultdict(list) correctPatterns = [] for i in range((len(myDNA.getString()) - k) + 1): pattern = myDNA.text(i, k) indexes[pattern].append(i) indexCount = len(indexes[pattern]) if indexCount == t: if indexes[pattern][-1] - indexes[pattern][-t] <= L: if pattern not in correctPatterns: correctPatterns.append(pattern) print correctPatterns
# coding=utf-8 import os, sys dir_path = os.path.dirname(os.path.realpath(__file__)) dir_path = dir_path[:dir_path.rfind('/')] + '/0_Helper_Modules' sys.path.insert(0, dir_path) from DNAPatterns import DNA K = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki K = int(K) DNAStrings = [] for i in range(20): DNA_STRING = sys.stdin.readline().strip( ) #sys.readline() les linu, strip() fjarlægir enter merki if len(DNA_STRING) != 0: DNAStrings.append(DNA(DNA_STRING)) else: break allPossibleKMers = DNAStrings[0].getAllPossibleKmers(K) kMersWithMinHammingDistance = [] minTotalHammingDistance = K * len(DNAStrings) for kMer in allPossibleKMers: totalHammingDistance = 0 for dnaString in DNAStrings: minHammingDistance = dnaString.minHammingDistance(kMer) totalHammingDistance = totalHammingDistance + minHammingDistance if totalHammingDistance < minTotalHammingDistance: minTotalHammingDistance = totalHammingDistance kMersWithMinHammingDistance = [kMer]