알파폴드 2 예측의 per-side confidence score를 PyMol에서 다루기

알파폴드 2 의 실행 가능한 코드예측 데이터베이스가 공개되면서 많은 사람들의 흥미를 끌고 있는데, 구조 예측의 정확성도 그렇지만 몇 가지 흥미있는 정보를 제공하고 있다. 즉 모델 예측의 신뢰도를 제공하고 있는데

per-residue confidence score (pLDDT) 라는 이름으로 단백질에서 모델 예측의 신뢰도를 제공하고 있는데, 90 이상은 매우 신뢰도가 높은 영역, 그리고 70에서 90은 어느정도 신뢰도가 있는 부분, 그리고 50-70은 신뢰도가 낮고, 50 이하는 거의 disordered 된 영역이라고 보면 된다. 그런데 이러한 pLDDT 데이터는 어디에 저장되어 있나.

PDB 파일을 받아서 이것을 텍스트 파일로 열어보면

다른 PDB 파일과 마찬가지로 원소의 종류, 아미노산의 종류, X,Y,Z 좌표 등등이 있고, 제일 오른쪽에서 두번째의 컬럼 (30.28, 24.69…) 에 바로 이 정보가 저장된다.

사실 이 컬럼은 B-factor 컬럼이라고 하여, temperature factor 라고 불리는 데이터를 저장하는 곳이다. 원래 이 부분은 실험적으로 결정된 단백질 구조에서 해당 부분의 원자의 위치가 평균적인 원자에 비해서 얼마나 벗어나 있는지를 기술하는 수치로써, 숫자가 높을수록 해당 부분의 구조가 Flexible 하고 불확실하다는 것을 의미한다.

그런데 많은 구조생물학자는 B-factor 컬럼을 다른 용도로도 많이 사용하는데, 특정한 단백질 부분이 여러가지 유사 서열 중에서 얼마나 보존되었는지의 수치를 계산하여 B-factor 컬럼에 넣기도 하고 (https://consurf.tau.ac.il) 여러가지 용도로 사용한다. 이와 마찬가지로 알파폴드의 예측에서는 pLDDT 값을 B-factor 컬럼에 넣어두고 있다.

그렇다면 이것을 이용하여 PyMol 등의 단백질 구조 비주얼라이즈 프로그램에서 어떻게 이용하는지를 알아보자. 우선 알파폴드 DB에서 예측한 데이터를 하나 다운로드해보자. (참고로 구조 페이지는 여기이다)

이것을 PyMol에서 불러보면

pLDDT 로 컬러링을 하려면 다음과 같이 B-factor에 기준하여 컬러를 칠하도록 설정한다.

오른쪽의 패널에서 개체에서 color/spectrum/b-factors를 선택하면

다음과 같이 B-factor 에 들어간 pLDDT 스코어에 따라서 색칠을 한다. 그런데 알파폴드 DB와는 달리 신뢰성이 높은 곳이 적색, 낮은 곳이 청색이므로 좀 헷갈린다. 이를 바꿔주려면, Pymol의 명령행에서

spectrum b, rainbow2_rev 라는 명령을 넣어주면

다음과 같이 알파폴드 2 DB에서 보는 것과 비슷하게 바뀐다.

만약 컬러 팔레트가 그리 마음에 들지 않는다면 여기에서 제공하는 여러 종류의 팔레트를 참고하여

혹은

너님 취향대로 색을 칠해주면 된다.

그런데 신뢰도가 없는 링커가 영 거슬린다. 화면에서 표시를 생략하거나 아예 날려버릴 수는 없을까? 이렇게 색을 칠한 다음에 서열에서 일일히 선택해서 감춰버릴수도 있지만 영 폼이 나지 않는다. 명령어 하나로 신뢰도가 낮은 영역을 선택해 버릴 수는 없을까?

select br. b<60

이 명령을 내리면 아미노산 residue 기준으로 b factor(실제로는 알파폴드가 넣어둔 pLDDT 스코어) 가 60 이하인 신뢰성이 없는 부분만을 선택한다.

이것을 숨겨버리면 간단하게 신뢰도가 낮은 부분을 선택하여 숨길 수 있다.

여기서 서열을 띄워놓고 추가적으로 선택을 하든가…

아니면 반대로 신뢰도가 높은 부분만을 골라서 선택해서 별도의 객체로 만들어 놓는 것도 가능하다. pLDDT 스코어 70인 부분을 선택한 후 이것을 객체로 만들어서 후속 분석에 사용…

혹은 객체만을 PDB로 export 하면 깨끗하게 잡스러운 영역이 사라진 구조가 나온다.

동시에 여러 개의 PDB 에서 신뢰성이 없는 부분을 필터링하고 싶으면 그냥 적절히 PDB 를 파싱하여 B factor 기준으로 Residue를 날려버리는 코드를 짜면 된다. 당장은 나는 그런 코드가 필요없으므로 안 짜겠지만 뭐 어려운 거 아니니 알아서 (…)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s