###########################question 1 codeDict=eval(open("GeneticCode.dict").read()) readfile = open("Protein.txt", "r") contents = readfile.readlines() protein=contents[0].strip() RT="" for i in protein: list=codeDict[i] first=[] second=[] third=[] a=0 c=0 g=0 u=0 for j in range(0, len(list)): first.append(list[j][0]) second.append(list[j][1]) third.append(list[j][2]) FST=[first, second, third] for j in FST: a=j.count("A") c=j.count("C") g=j.count("G") u=j.count("U") numBases=[a,c,g,u] letters=["A","C","G","U"] x=0 for i in range(0,4): if numBases[i]==len(first): #bc len(first)=len(second)=len(third) RT=RT+letters[i] x=42 if x==0: if (c+u)==len(first): RT=RT+"Y" elif (g+a)==len(first): RT=RT+"R" elif (u+c+a)==len(first): RT=RT+"H" else: RT=RT+"N" ###################question 2 def createMers(): bp=["A","C","G","T"] thisMer="" mers=[] for a in bp: for b in bp: for c in bp: for d in bp: for e in bp: for f in bp: for g in bp: for h in bp: thisMer=a+b+c+d+e+f+g+h mers.append(thisMer) thisMer="" return mers def createMersRec(length): baseList=["A","C","G","T"] merList=[] if length==1: for base in baseList: merList.append(base) else: for base in baseList: for mer in createMersRec(length-1): merList.append(mer+base) return merList def scoreMer(mer1,mer2): #we assume that mer1 and mer2 are the same len, here$ score=0 for i in range(0,len(mer1)): if mer1[i]==mer2[i]: score=score+1 #this adds up the num of exact matches return score #this is a number between 0 and 8 print RT ##################MAIN####################### readfile = open("NC_003418.txt", "r") contents = readfile.readlines() genome=contents[0].strip() lenMer=8 #merList=createMers() merListRec=createMersRec(lenMer) listOfScoresForThisMer=[] bestScore=lenMer listOfBestMers=[] x=0 for thisMer in merListRec: for i in range(0,len(genome)-lenMer+1): genomeMer=genome[i:i+lenMer] score=scoreMer(genomeMer, thisMer) #thisMer is the outerloop counter if score>bestScore: x=1 break listOfScoresForThisMer.append(score) if x != 1: if max(listOfScoresForThisMer) < bestScore: listOfBestMers=[] #set this list to empty bestScore=max(listOfScoresForThisMer) listOfBestMers.append(thisMer) elif max(listOfScoresForThisMer) == bestScore: listOfBestMers.append(thisMer) x=0 listOfScoresForThisMer=[] #set this to empty for the next mer print bestScore, listOfBestMers