コード例 #1
0
ファイル: solution.py プロジェクト: magtastic/sidastaOnnini
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
コード例 #2
0
# 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
コード例 #3
0
# 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)
コード例 #4
0
ファイル: solution.py プロジェクト: magtastic/sidastaOnnini
# 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()
コード例 #5
0
# 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)
コード例 #6
0
ファイル: solution.py プロジェクト: magtastic/sidastaOnnini
# 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
コード例 #7
0
# 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)
コード例 #8
0
ファイル: solution.py プロジェクト: magtastic/sidastaOnnini
# 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
コード例 #9
0
ファイル: solution.py プロジェクト: magtastic/sidastaOnnini
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
コード例 #10
0
ファイル: solution.py プロジェクト: magtastic/sidastaOnnini
# 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]