Drug/Computer-Aided Drug Discovery

단백질 general 서열생성 모델과 구조 예측

Novelism 2022. 11. 15. 23:13

 

 

 제가 몇 년 전부터 기대하고 있던 서열 생성 모델과 이를 활용한 단백질 구조예측 방법이 나온 것 같습니다. 

최근 수년간 단백질 서열 생성 모델 연구들이 많이 나오긴 했는데, 그것들 중 상당수는 general 서열 생성 모델이 아니라 homology 만 가지고 학습한 것들이었습니다. 저는 알파폴드 2에서 딥마인드가 general 서열 생성 모델을 들고 오지 않을까 기대했는데, 그것과는 다른 방법을 택했더군요. 

 

이번 달 초에 나온 기사인데.. 조금 지났지만 올립니다. 

http://www.aitimes.com/news/articleView.html?idxno=147666 

 

메타, '단백질 구조 예측'서 딥마인드 뛰어 넘었다 - AI타임스

메타가 인공지능(AI)을 사용해 이제까지 알려지지 않은 박테리아나 바이러스, 기타 미생물의 약 6억1700만개 단백질 구조를 예측했다고 네이처가 1일(현지시간) 보도했다. 이는 지난 7월 딥마인드

www.aitimes.com

 

https://github.com/facebookresearch/esm

 

GitHub - facebookresearch/esm: Evolutionary Scale Modeling (esm): Pretrained language models for proteins

Evolutionary Scale Modeling (esm): Pretrained language models for proteins - GitHub - facebookresearch/esm: Evolutionary Scale Modeling (esm): Pretrained language models for proteins

github.com

 

사실 아직 안 읽어봤습니다. 하지만, 아마도 제가 기대한 그 모델일 거라고 확신합니다. 

 

 

서열 생성 모델과 단백질 구조 예측이 무슨 관계가 있는가에 대해서부터 설명해야겠군요. 

 단백질 관련 연구는 일단 homology 서열을 찾고 정렬하는 것에서부터 출발합니다. homology 정보들을 column 단위로 평균하거나, 두 residue 사이의 공진화를 보거나... 이런 정보들을 활용하는 것이 2차 구조나, 3차 구조 예측에 큰 도움이 된다는 것이 기본적으로 알려져 있습니다. 이것이 무엇이냐면, 특정 단백질에서 i번째 residue가 특정 아미노산일 확률... 

혹은 i번째 residue가 아미노산 Ai일 때, j 번째 residue가 아미노산 Aj일 확률... 이런 것들입니다. 결국 확률분포를 학습하는 것이죠... 특히 단백질 구조 예측에서 residue-residue distance 예측에서 매우 중요한 역할을 한 DCA ( diract coupling analysis)라는 방법론이 있는데,  이것은 Potts model로 확률분포를 맵핑한 생성 모델입니다. 후에는 굳이 Potts model을 사용하지 사용하지 않고, RNN이나 CNN이나 attention 등을 바로 활용하기도 하였죠. 

 그런데, 상당수는 homology들의 MSA (multiple sequence alignment)를 먼저 얻고, 이것을 이용합니다. 초기 모델들이 MSA를 학습해서 coupling score를 얻고, 그다음에 그 걸로부터 residue-residue distance (contact)을 예측하고, 그다음에 그것을 구조예측에 활용하였다면, 후기 모델 (알파폴드 2 )은  MSA에서 바로 단백질 구조 예측까지 진행합니다. 

 

 그런데, 이 homology를 찾고, 정렬하고 DCA 같은 분석을 하는데도 시간이 상당히 걸립니다. 후에 머신러닝 생성 모델을 배우면서, query가 주어졌을 때 이렇게 blast나 HHblits나 JackHMMer를 돌려서 homology를  얻어서 하는 게 아니라, 알려진 모든 서열들을 학습해서 query sequence가 주어지면 homology 서열을 자동으로 생성하거나, 아예 query sequency의 근처의 확률분포 스코어를 바로 얻을 수 있는 general sequence 생성 모델이 있다면 더 유용하지 않을까라는 생각이 들었습니다. 당연히 저는 실력이 부족해서 그런 건 그냥 상상으로 밖에... 

 제가 이런 접근 방법에 기대한 것은 단지 속도가 더 빠르다는 것만이 아닙니다. query에 따라서 homology를 얻기 어려운 경우가 있는데, 혹시 general sequence 생성 모델이 이런 query에 대한 유사한 homology를 생성할 수 있지 않을까라고 기대하고 있습니다. 

특히, 단백질 중에는 친족이 없는 경우도 있는데 (orphan gene, de novo gene) 혹시 general sequence 생성 모델이 이에 대해 어떤 답을 주지 않을까 의문을 가지고 있습니다. 

처음 친족이 없는 단백질이 있다고 들었을 때는 단지 친족을 찾지 못하였던 게 아닌가라고 생각했지만, 정말로 유전적으로 새로운 de novo gene들도 있다고 합니다. gene fusion에 대해 찾아보다가 알게 되었습니다. 배울수록 배울게 많이 보이네요.

https://en.wikipedia.org/wiki/De_novo_gene_birth

아무튼 기존에 MSA를 활용하는 homology 기반의 생성 모델은 이런 단백질에 대한 예측이 어렵고, 당연히 디자인도 어려울 텐데 general sequence 생성 모델이 여기에 어떤 해결책을 주지 않을지 기대하고 있었습니다.

결국 단백질은 구조 데이터는 많지 않아도 서열 데이터는 많고, 서열 자체가 문장과 비슷해서 거대 규모 NLP로 가게 될 거라 생각하고 있었는데... 이런 연구는 큰 회사들만 할 수 있다 보니 그냥 쳐다볼 뿐입니다. 

 이게 답인지는 모르겠습니다만, 단백질 디자인 관련 연구도 수년 사이에 상당히 발전할 것 같습니다. 

 다만 항체 같은 경우는, 서로 다른 종에서 친족 서열을 찾는 것이 아니라, 한 사람 안에 수많은 서열이 다른 항체들이 있는 것입니다. 그래서 항체 디자인 기술은 일반적인 단백질 디자인과는 사용하는 데이터가 다르기 때문에 어찌 될지 모르겠네요.