본문 바로가기

ROSALIND17

[ROSALIND] (k, d)-motif 찾기 문제 설명 Motif란 비슷한 서열을 가짐으로서 비슷한 기능을 하는 것으로 알려진 DNA 내의 짧은 서열들이다. 예를 들어, A라는 단백질이 DNA에 결합하는 위치는 DNA 상에서 여러 위치에 존재하지만 모두 비슷한 서열을 가져야 A가 결합할 수 있을 것이다. 하지만 motif는 100% 똑같은 서열이 아닐 수 있기 때문에 이러한 motif를 찾기 위해서는 어느 정도 염기서열의 차이를 고려해야 한다. 이 문제에서는 (k, d)-motif를 찾는데 여기서 k는 k 길이를 가진 motif를 뜻하고, d는 최대 d 개수만큼 염기서열 차이가 있을 수 있다는걸 뜻한다. 이러한 (k, d)-motif는 서열에 직접 존재하지 않을 수도 있다. 예를 들어, 우리가 찾은 15 bp 길이를 가진 (k, d)-motif가 .. 2023. 7. 2.
[ROSALIND] 패턴을 숫자로 문제 (풀어보기) DNA 서열이 주어졌을 때 같은 길이의 서열들이 알파벳 순으로 정렬된다면 주어진 서열은 몇 번째 자리에 있는지 출력하시오. 예시 AGT 예상 결과 11 해결 def pattern_index(pattern): nuc_number = {'A':0, 'C':1, 'G':2, 'T':3} if len(pattern) == 1: return nuc_number[pattern] return 4 * pattern_index(pattern[:-1]) + nuc_number[pattern[-1]] print(pattern_index('CCGAAAACATCCAAGTCTCCAA')) 아래 그림에서 처럼 DNA 서열에는 A, C, G, T 로 총 4가지 염기서열만 가능하기 때문에 항상 4개씩 길이가 증가하게.. 2023. 7. 1.
[ROSALIND] 제한 자리(restriction site) 찾기 문제 설명 바이러스는 자체 증식이 불가능하기 때문에 숙주의 시스템을 이용해 증식하게 된다. 박테리오파지(bacteriophage)는 박테리아(bacteria)를 숙주로 삼는 바이러스인데 바이러스는 어떻게든 침투해서 자신의 DNA가 증폭될 수 있게 박테리아에 삽입을 하려 하고, 박테리아는 이것을 막기 위해 세포 기능을 복잡하게 하거나 바이러스를 공격하는 기작을 갖추었다. 제한 효소(restriction enzyme)이라 불리는 단백질은 바이러스의 DNA를 절단함으로서 박테리오파지가 기능을 하지 못하게 막는다. 이런 제한 효소는 어떤 DNA를 찾아 절단할 수 있을까? 제한 효소는 homodimer이므로 2개의 똑같은 단백질 구조로 이루어져 있다. 각 구조는 제한 효소에서 DNA의 이중 가닥 중 한 가닥씩 절.. 2023. 6. 16.
[ROSALIND] 부분적 순열 문제 설명 비슷한 종은 공통적으로 가진 유전자들도 많다. 하지만 진화하면서 유전자들의 순서들에 변화가 생길 수 있고 일부 유전자는 없어질수도 있기 때문에 유전자들의 순서를 확인하면 유전자 재배열이 어떻게 되었는지를 알 수 있다. 문제 (풀어보기) 부분적 순열이란 전체 n개에서 k개만 뽑은 후 모든 배열 순서를 고려하는 것이다. 이 때, n과 k가 주어졌을 때 모두 가능한 순서의 개수에서 1,000,000으로 나눈 나머지를 출력하시오. 예시 21 7 예상 결과 51200 해결 def factorial(n): ans = 1 while n > 1: ans *= n n -= 1 return ans with open('rosalind_pper.txt', 'r') as f: n, k = map(int, f.read.. 2023. 6. 15.
[ROSALIND] Open reading frame (6-frame 번역하기) 문제 설명 DNA에서 상보적인 mRNA 서열을 만들고, mRNA가 단백질로 번역딘다. mRNA 서열이 단백질로 번역될 때 항상 mRNA의 전체 서열을 사용하는 것이다. mRNA 서열 중 start codon (AUG)가 있는 모든 곳에서 번역이 가능하고 모든 end codon (UAG, UAA, UGA)에서 번역이 종료된다. 그러므로 mRNA에서 번역이 시작될 수 있는 시점은 첫번째, 두번째, 세번째 염기서열이 있다. 이것을 three frame translation이라 부른다. 하지만 DNA에는 상보적인 반대 서열이 존재하기 때문에 이 서열까지 고려한다면 단백질 번역의 시작이 가능한 곳은 총6곳이다. 이렇게 번역이 가능한 구간을 open reading frame (ORF)이라 부른다. 이번 문제에서는 .. 2023. 5. 30.
[ROSALIND] 단백질 서열에서 mRNA 서열 예측해보기 문제 설명 연구자들이 새로운 단백질을 발견했을 때 이 단백질이 어떤 mRNA 서열에서부터 번역된 것인지 알아야 유전체에서 이 단백질을 만드는 구간을 찾을 수 있기 때문에 단백질 서열로 mRNA 서열을 예측하는 것은 매우 중요한 일이다. 하지만 하나의 mRNA가 특정한 단백질로 번역되는 반면에 단백질에서 mRNA 서열을 알아내는건 경우의 수가 너무 많기 때문에 생각보다 힘든 일이다. 아래의 그림에 보이는 것처럼 하나의 아미노산은 여러 개의 codon이 될 수 있기 때문이다. 문제 최대 길이가 1000개의 아미노산으로 이루어진 단백질 서열이 주어졌을 때 mRNA가 될 수 있는 경우의 수를 출력해야한다. 이 때, 파이썬에서 int가 가질 수 있는 가장 큰 값은 2,147,483,647 (2^31−1)이기 때문.. 2023. 5. 29.
[ROSALIND] DNA 서열에서 motif 찾기 문제 설명 서로 다른 종의 유전체에서 공통적으로 가진 DNA 서열이 발견된다면 이 서열은 두 종에서 모두 비슷한 기능을 하는 것이라고 생각 할 수 있다. 이러한 서열을 모티프(motif)라고 부른다. 분자생물학 분야에서는 어떤 생물의 유전체에서 이런 모티프를 찾는 일을 흔히 하는 것을 볼 수 있다. 모티프처럼 유사한 서열이 여러번이나 한 유전체에서 발견되는 경우도 있는데 이러한 서열을 repeat이라 부른다. Repeat은 랜덤으로 생겨난 서열이라기에는 정말 자주 발생하는 것을 확인할 수 있다. 인간 유전체에서 가장 흔한 repeat은 Alu repeat이라는 건데 이것은 300 bp 정도의 길이에 한 사람에게서 100만번 정도 발생하는 것으로 알려져 있다. 하지만 이러한 Alu repeat은 좋은 역할.. 2023. 5. 28.
[ROSALIND] DNA의 인트론(intron) 영역 제거 후 단백질로 번역 문제 설명 DNA의 전사 과정(transcription)은 DNA의 일부를 RNA로 만드는 과정이다. 세포의 핵 내에서 RNA polymerase (RNAP)라는 RNA 중합효소가 DNA의 두 가닥 중 한 가닥을 템플릿(template strand)으로 사용해 상보적인 서열을 만든다. 이 때 A의 염기쌍으로 T 대신 U를 사용하고, 이렇게 완성된 서열을 precursor mRNA (pre-mRNA)라고 부른다. Pre-mRNA는 intron과 exon으로 구성되어 있는데 단백질로 번역되기 전에 intron 영역은 제거되고 exon 영역끼리 이어 붙은 서열을 mRNA라 부른다. 이러한 intron 제거 과정은 spliceosome이라 불리는 다양한 RNA와 단백질 구성이 실행시키며 이 과정을 splicin.. 2023. 5. 27.
[ROSALIND] 단백질 질량 구하기 문제 설명 단백질은 아미노산(amino acid)으로 이루어져 있다. 아미노산이 2개 합쳐질 때 peptide bond가 형성 되는데 이 때 물 분자(H2O) 하나가 빠지게 된다. 이렇게 여러 아미노산이 연결된 것을 polypeptide라 부르고, n개 아미노산이 연결되었다면 n-1개의 물 분자가 빠진 것이다. Polypeptide의 양쪽 끝에는 다른 아미노산과 결합되지 않았기 때문에 하나의 물 분자가 남아있다고 볼 수 있다. 즉, polypeptide의 질량는 각 residue(물 분자가 빠진 아미노산)의 개별 질량와 물 분자 1개(물 분자의 monoisotopic mass는 18.01056 Da이)의 질량으로 계산할 수 있다. 아미노산의 질량을 계산할 때 monoisotopic mass를 이용하는데 .. 2023. 5. 26.