5SOO_O 의 개발 공부 일지
[Python] [ROSALIND] Complementing a Strand of DNA 본문

염기 서열을 뒤집은 다음 상보적인 서열을 만드는 문제이다.
상보적인 염기를 담은 딕셔너리를 만든다.
DNA_ReverseComplement = {'A':'T', 'T':'A', 'G':'C', 'C':'G'}
입력받은 sequence를 하나씩 읽어 키로 사용한다.
상보적인 염기 담은 딕셔너리에서 해당 키가 가진 value 값을 꺼내 리스트로 담고
''.join()을 사용해 문자열로 만든 다음 거꾸로 읽는다.
def reverse_complement(seq):
return ''.join([DNA_ReverseComplement[nuc] for nuc in seq])[::-1]
다운 받은 데이터를 연다.
데이터 마지막에 \n 이 포함되어 있기 때문에 빼 주어야 한다.
\n 기준으로 split 한 다음, 염기 서열만 포함된 첫 번째 인자만 변수에 다시 담았다.
with open("rosalind_revc.txt", 'rt') as file:
sequence = file.read().split('\n')
sequence = sequence[0]
print(sequence)
전체 코드
with open("rosalind_revc.txt", 'rt') as file:
sequence = file.read().split('\n')
sequence = sequence[0]
print(sequence)
DNA_ReverseComplement = {'A':'T', 'T':'A', 'G':'C', 'C':'G'}
def reverse_complement(seq):
return ''.join([DNA_ReverseComplement[nuc] for nuc in seq])[::-1]
print(reverse_complement(sequence))
728x90
'자료구조 및 바이오 인포매틱스' 카테고리의 다른 글
| [Python] [ROSALIND] Computing GC Content (0) | 2022.04.07 |
|---|---|
| [Python] [ROSALIND] Rabbits and Recurrence Relations (0) | 2022.04.07 |
| [Python] [백준] [10872] 팩토리얼 (0) | 2022.04.06 |
| [Python] [백준] [1316] 그룹 단어 체커 (0) | 2022.04.06 |
| [Python] [백준] [2941] 크로아티아 알파벳 (0) | 2022.04.06 |