Resources/Classes

[EquiDock] 딥러닝을 이용한 단백질 도킹

Cho et al. 2022. 10. 31.

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 시켜도 결과는 같지 않다.

 

Figure from lecture slide
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 -> 이 결과가 가장 좋았음. 

댓글