본문 바로가기

DNA7

[ROSALIND] 제한 자리(restriction site) 찾기 문제 설명 바이러스는 자체 증식이 불가능하기 때문에 숙주의 시스템을 이용해 증식하게 된다. 박테리오파지(bacteriophage)는 박테리아(bacteria)를 숙주로 삼는 바이러스인데 바이러스는 어떻게든 침투해서 자신의 DNA가 증폭될 수 있게 박테리아에 삽입을 하려 하고, 박테리아는 이것을 막기 위해 세포 기능을 복잡하게 하거나 바이러스를 공격하는 기작을 갖추었다. 제한 효소(restriction enzyme)이라 불리는 단백질은 바이러스의 DNA를 절단함으로서 박테리오파지가 기능을 하지 못하게 막는다. 이런 제한 효소는 어떤 DNA를 찾아 절단할 수 있을까? 제한 효소는 homodimer이므로 2개의 똑같은 단백질 구조로 이루어져 있다. 각 구조는 제한 효소에서 DNA의 이중 가닥 중 한 가닥씩 절.. 2023. 6. 16.
[ROSALIND] DNA 서열에서 motif 찾기 문제 설명 서로 다른 종의 유전체에서 공통적으로 가진 DNA 서열이 발견된다면 이 서열은 두 종에서 모두 비슷한 기능을 하는 것이라고 생각 할 수 있다. 이러한 서열을 모티프(motif)라고 부른다. 분자생물학 분야에서는 어떤 생물의 유전체에서 이런 모티프를 찾는 일을 흔히 하는 것을 볼 수 있다. 모티프처럼 유사한 서열이 여러번이나 한 유전체에서 발견되는 경우도 있는데 이러한 서열을 repeat이라 부른다. Repeat은 랜덤으로 생겨난 서열이라기에는 정말 자주 발생하는 것을 확인할 수 있다. 인간 유전체에서 가장 흔한 repeat은 Alu repeat이라는 건데 이것은 300 bp 정도의 길이에 한 사람에게서 100만번 정도 발생하는 것으로 알려져 있다. 하지만 이러한 Alu repeat은 좋은 역할.. 2023. 5. 28.
[ROSALIND] DNA가 공유하는 motif 찾기 문제 설명 유전자(Gene)란 단백질로 번역될 수 있는 DNA의 영역을 얘기한다. 모티프(Motif)는 유전자의 기능과 관련있는 DNA의 작은 단위인데 모티프 서열은 잘 보존돼 있어 모티프를 통해 서로 다른 종 간의 DNA 유사성을 확인 할 수 있다. 이번 문제에서는 여러 DNA 서열들 간에 공유하고 있는 최대한 긴 모티프를 찾는 것이다(모티프가 길수록 공유하는 기능 또한 더 유사하다고 할 수 있기 때문이다!). 문제 (Finding a Shared Motif) 최대 100개의 DNA 서열( Rosalind_1 GATTACA >Rosalind_2 TAGACCA >Rosalind_3 ATACA 예상 결과 AC 해결 def find_kmers(seq, k): return sorted([seq[i:i+k] f.. 2023. 5. 25.
[ROSALIND] GC 비율 문제 (풀어보기) GC 비율이란 DNA 염기서열 전체 중 'G'와 'C'가 차지하는 비율이다. 최대 10개의 DNA 서열이 주어졌을 때, 가장 높은 GC 비율을 가진 서열의 이름과 GC 비율(%)을 구하시오. 예시 >Rosalind_6404 CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCC TCCCACTAATAATTCTGAGG >Rosalind_5959 CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCT ATATCCATTTGTCAGCAGACACGC >Rosalind_0808 CCACCCTCGTGGTATGGCTAGGCATTCAGGAACCGGAGAACGCTTCAGACCAGCCCGGAC TGGG.. 2023. 5. 8.
[ROSALIND] DNA 상보적 염기서열 문제 (풀어보기) DNA 서열의 한쪽 염기서열이 주어졌을 때, 상보적으로 쌍을 이루는 염기서열을 반환하시오. 예시 AAAACCCGGT 예상 결과 ACCGGGTTTT *** DNA나 RNA 염기서열을 쓸 때엔 항상 5'에서 3' 방향으로 쓰기 때문에 반대편 서열이 3' - TTTTGGGCCA - 5' 인것을 거꾸로 5' - ACCGGGTTTT - 3' 방향 전환을 해야 정답이 된다. 해결 def rev_complement(dna): print(dna[::-1].upper().replace('A', 't').replace('T', 'a').replace('G', 'c').replace('C', 'g').upper()) 2023. 5. 6.
[ROSALIND] DNA에서 RNA 서열 만들기 문제 (풀어보기) RNA 서열은 A, C, G, U nucleotide를 가지고 있다. DNA 서열 중 coding strand의 서열이 주어졌을때 RNA 서열을 반환하시오. 예시 GATGGAACTTGACTACGTAAATT 예상 결과 GAUGGAACUUGACUACGUAAAUU 해결 def dna_to_rna(dna): print(dna.upper().replace('T', 'U')) DNA와 RNA 염기서열의 차이는 DNA는 Thymine(T)을 가지고 있는 반면에 RNA는 Uracil(U)을 가지고 있다는 것이다. 그리고 문제에서 보면 coding strand 서열이 주어졌다고 하는데 coding strand는 RNA와 같은 서열을 가지고 있다. 그래서 DNA coding strand에서 RNA 서열이.. 2023. 5. 5.
[ROSALIND] DNA nucleotide 세기 문제 (풀어보기) DNA 서열은 A, C, G, T 4가지 nucleotide로 이루어져 있다. DNA 서열이 주어졌을 때 각 nucleotide의 개수를 A, C, G, T 순서로 반환하시오. 예시 AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC 예상 결과 20 12 17 21 해결 def actg_count(dna): dna = dna.lower() print(dna.count('a'), dna.count('c'), dna.count('g'), dna.count('t')) 파이썬에는 간편하게도 이미 string의 특정 문자의 개수를 셀수 있는 기능이 탑재되어 있다. 2023. 5. 4.