rosalind-python

3716 단어

RNA

AUGGCCAUGGCGCCCAGAACUGAGAUCAAUAGUACCCGUAUUAACGGGUGA

protein으로 변환, 테이블에 따라
MAMAPRTEINSTRING

코드
#change the table to a dict for searching
f = open('dd.txt')
lines = f.readlines()
dict = {}
key = ""
for line in lines:
    line.strip("
") line = line.split() for i in range(len(line)): if len(line[i]) == 3: dict[line[i]] = "" key = line[i] else : dict[key] = line[i] f1 = open('gg.txt') line = f1.readline().strip("
") #split the string to 3 letters per group res= [line[i:i+3] for i in range(0,len(line),3)] abc = [] for i in res: #Stop doesnot show if dict[i] != "Stop": abc.append(dict[i]) print("".join(abc))

유전자 세그먼트의 알칼리기를 통계하고 열마다 가장 큰 알칼리기를 되돌려준다

#        
def FindGen(word, str1):     
    lenght = "".join(str1[0])
    res = [0] * len(lenght)   
    for i in str1:         
        i = "".join(i)  
           
        for j in range(len(i)):            
            if i[j] == word:
                res[j] = res[j] +1
    strA = map(str, res)
    print("{}:".format(word), end=" ")
    
    for i in res:
        print(i, end=" ")          
    print("\r")
    return  res 
#     ,        
f = open("gg.txt")
lines = f.readlines()
dict = {}
#if "" :
        name = line.split(">")[1]
        dict[name] = []
    else:
        dict[name].append(line)
#     
value = list(dict.values())
#    
GG = ["A", "C", "G", "T"]
countA = FindGen("A", value)
countC = FindGen("C", value)
countG = FindGen("G", value)
countT = FindGen("T", value) 
ginstr = []
#       
for i in range(len(countA)):
    mm = [countA[i], countC[i], countG[i], countT[i]] 
    bb = mm.index(max(mm))
    ginstr.append(GG[bb])
print(''.join(ginstr))

유전자 세그먼트에서 마지막 세 문자가 처음 세 문자와 일치하는 유전자 세그먼트를 찾습니다

#     ,        
f = open("gg.txt")
lines = f.readlines()
dict = {}
#if "" :
        name = line.split(">")[1]
        dict[name] = []
    else:
        dict[name].append(line)
#          
for i in dict.keys():
    dict[i] = ''.join(dict[i]) 
#                
for i in dict.keys(): 
    finder = dict[i][-3:]       
    for j in dict.keys():        
        if j != i and finder == dict[j][0:3]:            
            print(i,j)

유전자 안의 최대 공통 알칼리 기열을 찾다

#     ,        
f = open("gg.txt")
lines = f.readlines()
dict = {}
#if "" :
        name = line.split(">")[1]
        dict[name] = []
    else:
        dict[name].append(line)
#          
for i in dict.keys():
    dict[i] = ''.join(dict[i]) 
#                

ii = list(dict.values())
kk = []
res = ""
#      ,         ,       
length = len(ii[0])
for i in range(length): 
    strlen = length - i 
    for j in range(length):    
        if j + strlen <= length :                      
            kk.append(ii[0][j:j+strlen])            
#       ,      ,      ,       ,   
for i in kk:
    tmp =[]
    for j in ii:
        re = j.find(i)
        tmp.append(re)
    
    if -1 not in tmp:
        print(i)
        break

배열 전체 배열 및 파일로 내보내기

import itertools
iter = itertools.permutation(list)

#       ,          
pp = str(list).strip('[').strip(']').replace(',','') + "
" f.write(pp)

좋은 웹페이지 즐겨찾기