LAIDD(Lectures on AI-driven Drug Discovery) - 딥러닝을 이용한 단백질 도킹
카카오브레인 이유한 박사님
단백질 + 단백질이 붙는 것이 단백질 도킹임
붙을 수 있는 가지수가 너무 많아서, 모든 경우의 수를 고려하는 것은 expensive 함.
Docking problem : unbound state 2 개의 단백질을 bound state 상태로 만드는 transformation 찾는 것 임.
-> Ligand : 움직이는것, Receptor : 움직이지 않는 것( 고정 )
문제의 추가적인 단순화
1) Rigid-body Docking problem
- bound state 로 변해도 단백질의 구조는 유지된다
- 초기 상태가 다르더라도 붙는 상태는 동일할 것 ( 결과는 한 개로 될 것 )
- 둘 중 어느 것을 고정하더라도 붙는 형태는 동일할 것임
-> 이것을 만족하는 rotation matrix, transformation matrix 찾기.
<Equidock>
End-to-end protein-protein docking model.
sampling, ranking, fine-tuning 하지 않고 direct 로 docking 예측한 논문임
Rigid-body docking 사용
- bound state 로 변해도 단백질의 구조는 유지된다
-> Binding pocket 을 먼저 찾고 ( point cloud ) , 그 곳에 맞춰서 transformation, R&T ( Rotation and Transformation )
- 초기 상태가 다르더라도 붙는 상태는 동일할 것 ( 결과는 한 개로 될 것 )
-> Invariance feature + equivalent neural network 사용
- 둘 중 어느 것을 고정하더라도 붙는 형태는 동일할 것임
-> Graph match network 사용하여 해결
Invariance vs Equivariance
Invariance : Input 을 transformation 시켜도 결과는 같다.
Equivariance : Input 을 transformation 시켜도 결과는 같지 않다.
![]() |
![]() |
Invariant 의 경우 : 회전을 어떻게 하던 동일한 값이 나옴. Equivariant 의 경우 : 회전이 되었을 때 , output 에서도 변한 상태가 되어야 한다. ( Rigid docking problem 에서는 이것이 중요 ) |
Equidock 을 정리한 그림 위 아래 포지션이 갔던 간에, 최종 결과물은 ( complex 구조 ) 동일한다. |
Method ( Feautures )
SE(3)-invariant feature
- 회전과 translation 에도 invariant 한 feature
- Node 는 residue ( one hot encoding )
- Edge 는 k-nearest neighborhood ( invariant feature )
residue 간의 coordinate system, residue 간의 local encoding 의 relativeness 를 고려한 feature 들 사용 ( AlphaFold.. 등에서 사용된 정형화된 feature )
![]() |
![]() |
그래프 두 개가 있을 때, similarity score ?
1) Standard GNN 을 계산하여 embedding 의 유사도 계산
2) Node update 시, edge 의 aggregated message + cross-graph matching vector 도 고려
-> 이는 두 그래프의 edge 들의 cross attention 에서부터 기인한 값임
E3-Equivariant Graph neural network ( Equivariant 를 지키면서 그래프를 업데이트 할 수 있는 방법 )
Graph embedding 을 update 하는데
Node : invariance, Coordinate : equivariance.
![]() |
![]() |
그래프를 업데이트 할 때,
각각의 protein 들이 결국은 resisude 끼리의 상호작용 -> residue 의 feature 를 mix 하면서 계산
residue 간의 구조도 고려하면서 message 를 계산
그 mesage 를 각각 residue 에 적용할 수 있게 되는 것
좌표를 구조로 업데이트 하기
R,t 를 계산할 때 geometric learning 을 통해 계산한다
node, edge ,x(coordinate)
node,edge feature 기반 ( 구조 기반 ) 으로 해서 x 를 업데이트 시킨다
단백질 두 개가 주어졌을 때, 각각 업데이트 시키고, cross-feature ( message ) 도 계산했고, 그 message 기준으로 업데이트.
기존 : x1, x2 -> x1', x2'
x1', x2' 에서 계산한 R,t 는 x1, x2 에서 계산한 R,t 와 같을 것이라는 가정 ( Equivalence ) 를 가지고 가는 것임
![]() |
![]() |
x_rel : x1-x2 # 3차원 값 위에서 말한 것들을 종합하여 update 가 계산되면 그것을 기반으로. |
node feature 의 update. 단백질 각각을 update 시킨 다음에 cross 시켜서 . |
Keypoint generation
Multi-head attention 으로부터 Keypoint 를 만듬
interaction 하는 부분은 특정 residue 일 것임.
따라서 그것을 matching 시키는 방법으로 진행
Kabsch algorithm 으로 R,t matrix 계산
![]() |
![]() |
실제로 각각 interaction 하는 residue 간의 중간 지점 : pocket point ( GT ) 업데이트 된 새로운 point cloud 의 Keypoint 를 생성하고, pocket point 가 겹치는 부분이 잘 겹치게 되는 r,t 를 계산 |
ligand 를 고려했을 때, receptor 의 key point 를 만드는 것 반대도 마찬가지임 |
Loss
최종 구조 간 xyz MSE
point cloud intersection loss
-> 물리적으로 겹치지 않게. ( 충돌 방지 )
Keypoint matching
Auxiliary optimal transport loss -> 이 결과가 가장 좋았음.
'Resources > Classes' 카테고리의 다른 글
Research scientist 가 되기 위한 여러 강좌들 모음 (0) | 2023.02.08 |
---|---|
CSEP 590B Explainable AI | 자료 공개 (0) | 2023.01.26 |
[EMBL] Bioinformatics resources for protein biology : Molecular interactions (0) | 2022.10.30 |
[EMBL] Bioinformatics resources for protein biology : Protein structures - EMDB / EMPAIR (0) | 2022.10.30 |
[EMBL] Bioinformatics resources for protein biology : Programmatic access to PDBe (0) | 2022.10.29 |
댓글