본문 바로가기

전체 글78

[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.
[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.
역전파(Backpropagation) 이해하기 Goal 1. 역전파(Backpropagation)의 기본적인 원리 이해하기 2. 역전파 계산 논리 알아보기 딥러닝을 공부하면 역전파(backpropagation) 개념을 피해갈 수 없는데 알고나면 생각보다 어렵진 않다! 그리고 딥러닝 모델을 만드는데 정말 중요한 개념이라는걸 알 수 있다. 역전파(Backpropagation)란? 딥러닝 모델이 출력한 예상 값과 실제 값에는 차이가 있다. 간단하게 예를 들자면 고양이 사진을 input으로 넣었을 때 딥러닝 모델이 고양이가 아니라고 예측(0 이라고 예측)한다면 실제 값인 고양이가 맞다(1 이라는 값)과는 1 - 0 = 1 의 차이가 있다. 이러한 실제 값과 예상 값의 차이를 줄여나가기 위해 역전파(backpropagation)를 이용하게 된다. Loss f.. 2023. 5. 24.
[ROSALIND] 단백질 motif 찾기 문제 설명 단백질은 기능적 단위인 단백질 도메인(protein domain)으로 이루어져 있다. 도메인마다 하나의 기능이 알려져 있고, 일반적으로 단백질은 여러 역할을하기 때문에 1개 이상의 도메인을 가지고 있다. 이렇게 같은 도메인을 가지고 있는 단백질들을 묶어서 유전자군(gene/protein family)라고 부른다. 단백질 도메인의 기능을 정의하는 더 작은 단위로 모티프(motif)가 존재한다. 모티프는 진화적 측면으로 봤을 때도 잘 보존되어 있기 때문에 다른 종 간에서도 유사한 모티프의 확인이 가능하다. 단백질 서열은 세계적으로 다양한 연구실에서 발견되고 온라인 상에서는 UniProt에 단백질 데이터가 쌓이고 있다. 여기서 단백질의 구체적인 서열, 기능, 도메인 구조, 단백질 번역 후 변형(po.. 2023. 5. 23.
정규표현식 Regular Expression Goal 1. 정규표현식이란? 2. 파이썬에서 정규표현식 쓰는 방법 알아보기 정규표현식이란? 정규표현식 (Regular expression)은 텍스트에서 패턴 찾기를 할 때 유용한 도구이다. 예를 들어 여러 RNA 서열 중 "AUG"가 포함 된 서열만 출력하고 싶다면 정규표현식을 써서 아주 간단하게 찾을 수 있다. 파이썬의 정규표현식 파이썬에서는 re 라는 라이브러리를 이용한다. re 모듈의 메서드 기능 예시 findall("패턴", 문자열) 패턴이 일치하는 모든걸 리스트 형태로 반환 import re rna = "AUGCCAUGCUGA" first_start = re.search("AUG", rna) print(first_start) # search("패턴", 문자열) 패턴이 일치하는 부분을 objec.. 2023. 5. 23.