기타/What I Learned

[TIL] 파이썬으로 익히는 STEAM 코딩(21.11.22)

가죽방패 2021. 11. 22. 13:11

※ DNA 염기서열의 순서 바꾸기

- DNA 염기서열은 A(아데닌), T(티민), G(구아닌), C(시토신)으로 이루어지며, 배치 순서에 따라 생명의 종과

생물학적 특성, 종간의 연관성이 결정이 되는 중요한 요소임

 

염기 서열 분석 방식

- 염기 A는 T로 T는 A로 G는 C로 C는 G로 바꾸는 상보적(complementary) 방식

- 염기서열의 순서를 역순으로 바꾸는 역순(reverse) 방식

- 상보적 염기서열을 다시 역순으로 바꾸는 상보적 역순(reverse-complementary) 방식

 

def comp(seq):
    comp_dict = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C'}
    seq_comp = ""				# 변환된 문자열을 누적시켜 저장하기 위한 빈 문자열 생성
    for char in seq:
        seq_comp = seq_comp + comp_dict[char]				# 빈 문자열에 키에 해당하는 값을 구해 누적하여 대입
    return seq_comp


def rev(seq):
    seq_rev = "".join(reversed(seq))
    return seq_rev


def rev_comp(seq):
    tmp = comp(seq)
    return rev(tmp)


src = input("DNA sequence : ")				# 확인하고자 하는 DNA의 입력값을 src 에 저장
cnvt = int(input("1(comp), 2(Rev), 3(Rev_Comp)"))				# 변환 시키고자 하는 방식을 cnvt 에 저장
if cnvt >= 1 and cnvt <= 3:
    if cnvt == 1:
        rst = comp(src)
    elif cnvt == 2:
        rst = rev(src)
    else:
        rst = rev_comp(src)
    print(src, "->", rst)

else:
    print("1(comp), 2(Rev), 3(Rev_Comp)!!")

'기타 > What I Learned' 카테고리의 다른 글

[TIL] 파이썬으로 익히는 STEAM 코딩 (21.11.24)  (0) 2021.11.24
[TIL] 파이썬으로 익히는 STEAM 코딩 (21.11.23)  (0) 2021.11.23
[TIL] 2021.11.20  (0) 2021.11.20
[TIL] 2021.11.17  (0) 2021.11.17
[TIL] 2021.11.16  (0) 2021.11.16