Finder
with open ('Result_{0}-{1}-{2}_{3}-{4}.txt'.format(year,month,day,enzyme,search_sequence_name),'w',encoding='utf-8') as f:
if search_sequence.find(res_find) != -1:
search_sequence = search_sequence.replace(res_find,res_site)
print(enzyme,",",cut_feature)
print(search_sequence)
f.write("{0} | {1} | {2} \n".format(enzyme,res_site,cut_feature))
f.write('Sequence name: {0} \n'.format(search_sequence_name))
f.write(search_sequence)
f.close()
# DB에 효소가 있고 일치하는 시퀀스가 있을 때
elif enzyme_table['Enzyme'].isin([enzyme]).any() == True and search_sequence.find(res_find) == -1:
print("No restriction site in this sequence. ")
f.write("{0} | {1} | {2} \n".format(enzyme,res_site,cut_feature))
f.write('Sequence name: {0} \n'.format(search_sequence_name))
f.write("This restricion enzyme never cut this sequence. ")
f.close()
# DB에 효소가 있으나 일치하는 시퀀스가 없을 때
else:
print("No data in database. ")
f.write("{0} \n".format(enzyme))
f.write("This restriction enzyme not entried in database. ")
f.close()
# DB에 효소가 없을 때
저장 코드 간소화(형식에는 변화가 없음)
Cutter
filter = input("sticky로 자르는 제한효소만 보고 싶으면 sticky, blunt로 자르는 제한효소만 보고 싶으면 blunt를 입력해주세요. ")
if filter == 'sticky':
enzyme_table = enzyme_table[enzyme_table['cut_feature']== 'sticky']
enzyme_table.reset_index(inplace=True)
elif filter == 'blunt':
enzyme_table = enzyme_table[enzyme_table['cut_feature']== 'blunt']
enzyme_table.reset_index(inplace=True)
else:
pass
print(enzyme_table)
filter 기능이 추가되었습니다. (sticky ot blunt or both?)
count = 0
with open('Result.txt','w',encoding='utf-8') as f:
f.write("Restriction enzyme which cuts this sequence: ")
for i in range(len(enzyme_table)):
enzyme = enzyme_table['Enzyme'][i]
res_find = enzyme_table['sequence'][i]
res_find = str(res_find)
if res_find in sequence:
print(enzyme, res_find, sequence.find(res_find))
f.write("{0}: {1} \n".format(enzyme,res_find))
count += 1
else:
count += 0
print(count)
f.write("Total: {0} enzymes cut input sequence".format(count))
# 아직 저장기능은 없습니다. 지금 출력도 좀 중구난방이라 정리 좀 해야될듯.
# find로 나오는 위치의 경우 0부터 시작하기떄문에 하나 더해줬습니다. 아울러 해당 메소드가 '가장 처음에 나오는 글자'만 찾아주는거지 전체 검색이 아니기때문에 여러군데를 자르는지 여부는 모릅니다.
물논 출력도 지원한다구! 형식은 (날짜)-filter여부입니다.
기타
DB 드디어 끝냈다…ㅠㅠ 정규식이 필요한(인식 혹은 자르는 부분에 N, R, Y같은 게 들어가는) 제한효소도 일단은 했습니다.
Reply