안녕하세요, :)입니다.
입대한지 약 5개월만에 새로운 포스트를 작성하게 되었는데요! 커뮤니티에 복귀하자마자 환대해주시는 분들도 많고, 포스트와 github 잘 봤다는 감사인사도 많아서 무척 뿌듯했습니다 ㅎㅎ
제가 블로그를 쓰는 목적은 1) 학습내용 정리 2) 흥미로운 기술 소개 <-- 이렇게 두 개인데요, 이전 글들을 보면 너무 기술적인 용어나 영어가 많아서 초보자분들이 받아들이기 어려우셨을 수도 있겠다는 생각이 들었습니다 (죄송합니다 ㅠㅠ) 그래서 이번 글은 비교적 쉽게 작성할 예정이니 재미있게 읽어주세요 :)
※ Google DeepMind사의 「AlphaFold: a solution to a 50-year-old grand challenge in biology」를 중심으로 작성한 글입니다.
단백질은 삶에서 매우 중요한데요, 단백질은 아미노산이 사슬처럼 연결되어 만들어진 거대하고 복잡한 분자입니다. 그리고 단백질이 어떤 역할을 할지는 바로 각 단백질의 독특한 3D 구조에 달려있답니다.
따라서 아미노산 서열(Amino Acid Sequence)에 따라 단백질이 어떤 모양으로 접히게 되는지를 알아낸다면, 지난 50년간 생명학에서 난제로 여겨져왔던 Protein Folding 문제를 해결하게 됩니다. DeepMind사는 CASP(Critical Assessment of protein Structure Prediction)의 참가자들로부터 개발한 AlphaFold 기술을 통해 단백질의 3D 구조를 예측하고자 하는데요, 이는 질병 치료제 개발이나 산업 폐기물을 분해해주는 효소의 개발 등의 효과를 가져오게 됩니다.
Protein Folding(단백질 접힘)은 단백질의 아미노산 서열이 어떻게 고유한 접힌 구조를 결정하는지에 대한 질문입니다. 위에서 언급했듯이 각 단백질의 독특한 3차원 구조가 기능으로 직결되는데요,
염기서열의 조합이 무한에 가깝기 때문에 형태 또한 무한에 가까워 모든 단백질을 실측할 수는 없습니다.
하지만 AlphaFold는 10만 가지의 단백질 순서와 구조를 학습하여, 아미노산 염기 서열만 안다면 단백질의 3D 구조를 비교적 정확히 예측할 수 있습니다.
DeepMind 공식 유튜브 채널에서 'Protein Folding' 문제를 소개하는 영상입니다. 한국어 자막이 있어 이해를 돕는 영상이니 꼭 보시길 추천합니다!
1994년에 최초로 세계 단백질 구조 예측 대회(CASP)가 시작되었습니다. CASP는 The Critical Assessment of protein Structure Prediction 의 약자로, 1994년 CASP1을 시작으로 2020년 CASP14까지 진행되었습니다. CASP에서는 구조 예측이 진행 되었으며, 예측에 대한 평가 결과는 그해 12월에 발표됩니다.
주최측에서는 '삼차 구조가 알려지지 않았지만, 곧 구조가 실험으로 결정될 단백질들의 서열'을 전 세계의 실험 그룹들로부터 모아서 CASP 문제들을 출제합니다. 구조 예측을 원하는 그룹들은 여름 동안 삼차 구조가 알려지지 않은 단백질들의 구조를 이론적으로 예측하여, 각 문제마다 달리 정해진 마감일 전에 예측한 결과를 주최측에 제출해야 합니다.
AlphaFold (그리고 AlphaFold2)는 CASP의 참가자들과 결과로부터 도움을 받았습니다. 그러나 이 둘은 CASP 13과 14의 우승자이기도 하죠.
그렇다면 CASP의 평가 지표는 무엇이었을까요?
바로 GDT였답니다.
GDT는 Global Distance Test 의 약어로, 아미노산의 서열은 같으나 서로 다른 3차 구조의 두 단백질 구조간의 유사성을 측정하는 지표입니다. 값의 범위는 0~100으로, 보통 단백질 구조 예측의 정확성을 평가할 때 사용되는 metric입니다.
Bioscience의 권위자인 John Moult 교수는 'GDT 90이상부터 실험으로 얻어지는 결과와 경쟁력을 갖게 된다'고 말했는데요, AlphaFold2는 CASP14에서 92.4 GDT (= 1.6 angstroms의 RSMD)를 기록하면서 이제 AI가 protein folding 문제를 해결해줄 수 있음을 세상에 알렸습니다.
더해서 AlphaFold2는 매우 어려운 타겟들에 대해서만 평가를 받았을 때도 평균 87 GDT를 기록했습니다
위의 초록색 구조가 정답 (실제로 관측된 구조)이고, 파란색 구조가 AlphaFold가 예측한 구조입니다. 거의 완벽하게 예측을 해낸 모습을 볼 수 있네요. DeepMind는 AlphaFold가 막단백질(membrane protein)과 같이 결정화되기 어려워 실험을 통해 구조를 파악하기 어려운 단백질들의 구조를 알 수 있도록 도울 것이라고 믿다고 합니다.
AlphaFold에 대해 전반적인 소개를 마쳤는데요, 이번에는 기술적으로 어떻게 작동하게 되는지 3단계로 간단하게 설명드리겠습니다.
위 사진은 「AlphaFold: a solution to a 50-year-old grand challenge in biology」에 나와있는 AlphaFold의 메인 neural network의 overview입니다. 보시면 Embedding, outer sum 등 deep learning 외에도 이해하기 어려운 과정이 꽤 있습니다.
하지만 이번 포스트는 AI에 대한 여러분의 흥미 증진이 목표기 때문에, 자세한 분석은 다음 포스트가 될 AlphaFold의 논문 리뷰에서 해드리겠습니다.
이전에 쌓인 데이터들을 neural network를 통해서 분석하게 됩니다. Neural network는 여러분도 많이 들어보셨을 deep learning(심층학습)에서 사용되는 가장 원초적인 신경망입니다. AlphaGo또한 deep learning을 통해 만들어졌다는 사실은 여러분도 잘 알고 계실겁니다.
몇 개의 층과 각각 수십개의 노드로 이루어져있고, 각 노드들을 이어주는 edge들 사이에서는 수많은 연산이 오가게됩니다. Input이 있으면 output이 나오는 f(x) 함수같은 형태인데요, AlphaFold에서의 input은 protein sequence(단백질 서열)입니다. 즉, FADFKSKLLKDAFSA가 투입되면, 이것을 숫자로 환산한 뒤 수많은 계산을 통해서 어떠한 output을 내게 됩니다.
위에서처럼 단백질 서열이 주어지면, 이를 토대로
(a) 아미노산 쌍 간의 거리
(b) 아미노산을 연결하는 화학 본드 간의 각도
이 두 가지를 예측하게 됩니다.
예시로 (a)의 시각화 자료를 보여드리면,
위의 그림은 단백질의 residue(생명과학/화학에서의 R기)끼리의 거리 분산 결과를 시각화한 것입니다. 하지만 neural network는 기존에 학습한 데이터를 바탕으로 예측하기 때문에, 예측 전 실험으로 직접 알아낸 residue들 간의 거리 데이터를 학습시켜야겠죠.
아래쪽 그림도 결국 같은 결과를 나타내지만 우리가 이해하기 쉬운 3D로 시각화된 것입니다.
위에서 시각화된 결과들까지도 실제로는 수치일텐데요, 지금까지는 부여받은 단백질 서열을 neural network(1)를 이용하여 단백질의 residue간의 거리 분산을 예측했습니다(2).
하지만 계속해서 예측만 하고 이 분산값을 줄이려는 노력이 없다면 계속 trash value를 내놓게 될 수도 있습니다. 이 때 AlphaFold는 gradient descent(경사하강법)을 사용합니다.
모든 단백질 사슬간의 거리에 이 방법을 적용하여 최적값을 찾게 됩니다.
이렇게 gradient descent를 진행시키면서 점점 한 형태(= 거리 분산이 최저가 되는)로 수렴하게 되는 것을 볼 수 있습니다.
이렇게 AlphaFold는 단순히 단백질 서열만 투입해줘도 3D 구조가 어떻게 형성될지를 예측할 수 있게 되는 것입니다! 물론 수많은 데이터들의 희생이 필요하지만요.. 실제로 AlphaFold는 17만개의 단백질 데이터를 학습했습니다
약품 디자인과 환경 유지 대책 분야에서 발전 가능성이 높아 DeepMind사가 적극 개발 중입니다.
Andrei Lupas 교수는 "AlphaFold가 어떻게 신호들이 세포막을 통해 전이되는지를 이해하려는 인간의 노력에 큰 도움이 되었다"라고 말했습니다.
생명공학을 넘어서 타 분야에서의 활용성 확보를 위해 타 분야와의 다양한 협력 연구가 진행 중입니다.
단백질 구조 예측이 전문가가 거의 없는 특정 희귀 질환 치료에 기여할 수 있는 방법을 찾고 있습니다. 예를 들어, 기능을 상실한 단백질을 찾고 어떻게 그것들이 상호작용하는지 공부하여 약품 개발에 도움을 줄 수 있을 것입니다.
미래 코로나와 같은 펜데믹 상황에서의 해결책이 될 수 있습니다. 실제로 AlphaFold는 SARS-CoV-2 virus의 구조와 또다른 코로나 바이러스 단백질인 ORF8의 구조 등을 정확하게 예측한 바 있습니다.
플라스틱 분해 효소를 활용해 박테리아를 가공하여 수상 플라스틱 쓰레기 제거에 이바지했다는 BBC 뉴스가 보도되었습니다.
AlphaFold는 아직 수십억 단백질 중 17만개만을 학습했습니다.
AI를 공부하면 할수록 두 부류의 사람들로 갈라지는 것이 보입니다. 첫 번째는 machine learning이나 deep learning 알고리즘 자체에 흥미를 느껴 기술적/수학적 연구를 좋아하는 사람들입니다.
두 번째는 저처럼 그러한 알고리즘들은 ,,도구''로 여기고, 이것들의 real-world application 방안에 더욱 관심이 있는 사람이 있습니다.
그러한 관점에서, 이번 글은 철저하게 두 번째 그룹을 위한 포스트였습니다. 기술적/수학적 해설은 고의적으로 대부분 삭제했고, 기술의 포텐셜이나 연구 배경에 초점을 두고 작성해보았습니다. 이러한 글이 여러분을 AI의 세계로 끌어들이기에는 가장 좋다고 생각했기 때문입니다. 반대로 평소엔 저를 위한 포스트가 대부분이다보니 첫 번째 그룹에 적합한 포스트가 많습니다.
거의 문과인 건축찐따도 끝까지 읽을 수 있게 하다니... 역시 안교수님..ㄷㄷ 존경합니다!