코로나19 바이러스(COVID-19)의 스파이크 단백질 구조 시각화 해보기 (w/ jupyter)
안녕하세요. 휴먼스케이프 ted입니다.
오늘은 1년도 넘게 우리의 삶에 영향을 주고 있는 코로나19 바이러스를 어떻게 하면 잘 알 수 있을까 고민해보다가, 비교적 간단하게 살펴 볼 수 있는 방법을 찾아보았습니다. 간단하게 살펴보고, 따라 해 보면서 친해지는 시간을 가져보도록해요.
COVID-19, 코로나19, 우한바이러스… 이 뿐만 아니라 2019-nCoV 라는 이름으로도 알려져있는 이 바이러스의 공식 명칭은 SARS-CoV-2 라고 합니다. 오늘 그리고 지금도 어딘가에 있을 그 바이러스에 대해서 궁금증이 생겼습니다. 생알못의 입장에서 정말 아무것도 모르긴 합니다. 하지만 차근차근 공부해보면 COVID-19를 알아볼 수 있고, 이렇게 공부하다보면 세상에 기여할수도 있지 않을까요?
그래서, 우리들의 언어 python 을 통해서도 코로나19 바이러스의 구조중에 스파이크 단백질을 시각화 하는 방법에 대해 살펴보고자 합니다.
미국 국립생물공학정보센터(NCBI) 이용하기
단백질 시각화를 하기 위해서는 단백질 구조에 대한 정보를 구해야 하며, 정보를 찾기 위해서 데이터가 있는곳을 찾아야합니다.
대표적으로 NCBI에는 유전 정보, 단백질, 화합물 등의 많은 양의 생물공학정보들이 있습니다.
관심있으신분들은 한번 훑어보셔도 좋습니다 :) 자료가 많이 있기 때문에 연구를 시작하거나 이것저것 다뤄보기에도 데이터가 잘 정리되어있어서 좋아 보입니다.
이 중에서 저희가 관심 가질 SARS-CoV-2 정보들은 아래 페이지로 들어가시면 쉽게 얻을 수 있습니다.
미국 국립 보건원(National Institutes of Health)에도 관련된 정보들이 있습니다.
코로나 바이러스는 크게 외피(viral envelope)에서 바깥으로 돌출된 스파이크 단백질(Spike Glycoprotein)을 통해 숙주세포의 수용체(receptor)와 결합하게 됩니다. 그리고 헤마글루티닌 에스테라아제 이량체(HE, Hemagglutinin esterase dimer)는 숙주 세포 표면에서 발견되는 특정 수용체에 부착 및 파괴를 돕습니다. 그리고 그 외피 안에는 RNA 단백질이 존재하고 있습니다.(출처)
여기서 우리는 스파이크 단백질의 모습을 파이썬으로 불러올 것입니다.
python 으로 스파이크 단백질 구조 시각화 하기
보통 이런 작업을 할때 콘솔에서 해도 되지만, 문서처럼 쓸 수 있는 jupyter 를 예정입니다. Google Colaboratory로는 custom widget 때문에 아직 실행이 되지 않습니다. (2021년 2월 24일 기준)
저희는 custom widget을 쓰기 때문에 로컬에 있는 jupyter 를 써보도록 하겠습니다.
시각화 하기 위한 재료들은 다음과 같습니다.
- jupyter
- nglview ( + nglview-js-widgets )
- pytraj
- 구조가 있는 pdb파일
jupyter와 관련 라이브러리들 설치
쉘에서 다음의 라이브러리들을 설치해 줍니다.
(위 라이브러리들을 모두 동시에 설치 합니다. jupyter를 설치 하셨으면 labextension 설치로 넘어가셔도 됩니다 :)
pip3 install jupyter
pip3 install jupyterlab
jupyter labextension install nglview-js-widget
spip3 install nglview
pip3 install pytraj
설치가 완료되면 원하는 폴더로 이동한 뒤에
jupyter notebook
을 실행해 주세요.
잘 실행이 되셨다면 아래와 같은 화면이 나옵니다.
notebook 실행 위치에 따라 보이게 달라질 수 있으니 원하는 위치에서 실행해주시면 됩니다 :)
pdb파일 구하기
이제 우리가 살펴 볼 단백질을 찾아 봅니다.
아래의 링크로 들어가거나, 원하는 protein을 NCBI에서 찾아서 들어갑니다. 그리고 해당 페이지에서 Download Structure Data에서 PDB 포멧으로 Single 3D structure를 받아보도록 합니다.
다운로드를 하면 .pdb 파일이 있는데 이 파일을 jupyter 를 실행한 위치로 이동시켜주세요. 그 뒤에 작업을 시작합니다 :)
저는 여기서 mmdb_6WPT.pdb 파일을 받아 옮겼습니다.
잘 올렸다면 아래와 같이 옮긴 파일이 보입니다.
파일을 새로 만들고 아래코드를 입력해주세요.
import pytraj
import nglviewsrc = “mmdb_6WPT.pdb”
traj = pytraj.load(src)
view = nglview.show_pytraj(traj)
view
그 뒤에 실행하게 되면!
이렇게 단백질 구조 모양이 나오게 됩니다. 확대/축소도 가능하니 이리저리 살펴봅니다.
원래 사이트의 모양과 비교해 봅니다.
아직 무엇인지는 잘 모르지만.. 비슷한 스파이크 단백질이 나온것을 볼 수 있습니다. 우선 여기까지 했다면 성공입니다 :)
다음에는 이 구조들을 가지고서 이리저리 살펴볼 수 있도록 해보겠습니다.
다음에 만나요~
Walk with us!
기술이 세상을 더 아름답게 할 수 있다고 믿으신다면, 휴먼스케이프와 함께 소중한 뜻을 펼칠 수 있습니다.함께 걸어가며 성장하실 분, 언제든지 연락해주세요 :)