/*
* http://sosal.kr/
* made by so_Sal
*/
Python 간단한 실습강의에서 나왔던 연습문제들을 소개하고자 합니다.
exercise1:
연속적으로 Hydrophobic한 아미노산(Amino acid)이 연속적으로 나오는지를 판별하는 프로그램을 구현한다.
exercise2:
제한효소가 있는 부위를 잘라서 line별로 출력하라.
exercise1.
입력된 Sequence가 Hydrophobic인지 검사하라.
- 다음 7개의 아미노산 FILAPVM은 Hydrophobic한 아미노산이다.
- 이 아미노산들이 연속적으로 나온다면 Hydrophobic이라고 한다.
- 연속적으로 7개 이상의 Hydrophobic한 아미노산이 나오면 Strong hydrophobic signal을 출력한다.
- 연속적으로 3개 이상의 Hydrophobic한 아미노산이 나오면 Weak Hydrophobic signal을 출력한다.
- 연속적으로 3개 이상의 Hydrophobic한 아미노산이 나오지 않으면 No Hydrophobic signal을 출력한다.
import re
sequence = input("Sequence: ")
if re.search(r"[FILAPVM]{7}", sequence):
print("Strong Hydrophobic signal")
elif re.search(r"[FILAPVM]{5}",sequence):
print("Weak Hydrophobic signal")
else:
print("No hydrophobic signal")
r"" 은 regular expression을 나타내는 방식입니다.
r""안에 다양한 regular expression이 들어갈 수 있는데,
대괄호: [character_set]는 character set에 포함되는 단 하나의 글자라도 있는지를 말하며 {7}은 7번 반복을 뜻합니다.
[character_set]{7}은 character_set에 포함되는 글자들이 7개 반복된다는 뜻입니다.
따라서 re.search(r"[FILAPVM]{7}, sequence) 라는 함수는
sequence라는 변수에 FILAPVM 7개의 글자중에 단 하나라도 포함되는 부분이 7개가 반복되냐는 뜻입니다.
따라서 7개가 반복되는 경우 re.search(r"[FILAPVM]{7}, sequence)를 만족하게 되고
3개가 반복되는 경우 re.search(r"[FILAPVM]{3}, sequence)를 만족하게 되므로 위의 연습 문제를 해결할 수 있습니다.
exercise2.
입력된 sequence에서 EcoRI를 감지하고 해당 제한효소 부위를 잘라 출력하라.
- EcoRI는 GAATTC 라는 서열을 잘라주는 제한효소다.
- ~GAATTC~라는 서열을 ~GAAT와 TC~ 두 서열로 자른다.
- EcoRI로 인지되는 모든 서열을 잘라라
import re
restriction = "GAATTC"
sequence = input("Sequence: ")
print("input sequence is ",sequence)
while(1):
match = re.search(restriction,sequence)
if match==None:
break
print(match.start(),": ", sequence[0:match.start()+4])
sequence = sequence[match.start()+4:]
print(sequence)
'Programing > Python programming' 카테고리의 다른 글
Python - 도형 class를 이용한 상속 예제 (0) | 2015.06.03 |
---|---|
Python - Recursion으로 구현하는 string compression (1) | 2015.06.03 |
Python - DNA sequence로부터 protein 서열 구하기 (0) | 2015.06.03 |
Python - 미국형 날짜구분자, 유럽형으로 바꾸기 (0) | 2015.06.03 |
Pycharm font 변경하는방법 (1) | 2015.04.29 |