Multiple Sequence Alignment 활용 Weblogo 제작

30922 이원구

이전에 NRAS 라는 임의의 단백질 서열을 추출하여 서열의 전사, 번역 과정을 Biopython으로 제작하는 방법을 설명하였다. 그러나, 이러한 식은 현재 교육 과정 내에서 이루어질 수 있는 식에서 제작할 수 있는 ‘당연한’ 공식으로 판단이 된다. 그래서 이번에는 조금 더 현실에서 타당성이 있을만한 기술을 배움과 동시에, 현재 가장 이슈가 되고 있는 상황, 파일을 접목시켜 탐구해보려고 한다.

첫 번째로, Biopython에서 흔히 사용되고 있는 Multiple Sequence Alignment 객체를 활용해 FASTA 파일에서 정렬되어 있지 않은 서열을 압축하는 과정을 요약하는 과정을 진행하려고 한다. 다음으로는 MSA 객체를 통해 정리된 데이터를 이미지화시켜서 보기 편리하게 정리해 놓을 수 있도록 weblogo를 제작해보려고 한다. 이 모든 과정은 covid-19를 기초로 제작이 된다.

1. FASTA 파일 전처리 과정

NCBI에서 protein을 중심으로 severe acute respiratory syndrome coronavirus 2 envelope protein(SARS-Cov-2 외피 단백질)을 검색한다. 현재 구하고자 하는 단백질의 주형을 임의로 정한 것이다. 오른쪽 그림에서 구하려는 단백질의 모습을 볼 수 있다.

검색 후, Send to를 접속하고, FASTA 파일로 저장한다.

아직 정렬되지 않은 covid 19 염기 서열 추출물이므로 아직 순수한 정보만 담겨있지 않다. 따라서, 추출된 FASTA 파일을  covid.envelope.raw.fasta 라는 이름으로 저장한다.

위 사진이 covid.envelope.raw.fasta 의 모습이다. 보기에는 정렬되어 있어보이지만, 아래로 내려갈수록 weblogo를 제작하는 것에 쓸모없는 코드들이 많이 있다. 이 때, Multiple Sequence Alignment를 활용해 전 처리 과정을 시행하여 서열을 정리한다.

전 처리 과정에는 몇 가지 과정을 거쳐서 실행이 된다. 이러한 과정은 결론적으로 얻으려고 하는 출력값의 종류에 따라 달라질 수 있는데, weblogo를 시행하기 위해서는 먼저, 1) 일부 서열만 있거나, 서열 중에 X(모든 아미노산)가 있는 경우를 제외할 것이다. 2) 각 포지션의 아미노산의 다양성을 보기 위한 것이므로, 각 서열을 unique하게 출력할 것이다. 3) 구하려는 출력값이 envelope protein 중심이기 때문에, description에서 envelope protein만 골라서 출력할 것이다. 이 과정을 거치기 위해서는 아래와 같은 식이 필요하다.

위 식을 간단히 설명하자면, 일단 1 식에서 Biopython을 불러오는 것부터 시작한다. 그 다음 4식에서 covid.envelope.raw.fasta를 불러온다. 5식에서 모든 염기서열을 unique하게 만들 것이므로 set 함수를 사용한다. 6식에서 새롭게 출력된 파일을 covid.envelope.fasta로 새롭게 지정해준 후,  그 다음 식에서 제시된 문구가 보이면 넘어가도록 코드를 계획한다. 9식부터 14식까지 비슷한 방식으로 코드에서 ‘partial’, ‘truncated’, ‘X’가 있고, ‘envelope protein’이 없다면 관련 코드를 출력하지 않고 넘어갈 수 있도록 한다. 15식부터 set에 들어가지 않은 것이 있다면 그 식을 FASTA에 넣고 출력할 수 있도록 한다.

이 코드를 입력을 했으면, jupyter에 아래 그림과 같이 정상적으로 covid.envelope.fasta가 생성됬을 것이다.

2. Multiple Sequence Alignment 제작 진행

Muscle 이라는 페이지에서 이를 진행할 것이다. 하지만 Muscle에서는 500sequnce 이상의 서열이나, 1MB 이상의 파일을 Multiple Sequence Alignment 진행을 할 수 없기 때문에, covid.envelope.fasta의 서열 일부분을 삭제하여 진행하였다. 아래의 모습은 위 과정 진행의 결과적 모습이다.

3. Weblogo 제작

weblogo 제작 사이트에 들어가 Multiple Sequence Alignment 자리에 앞에서 구했던 결과를 넣는다. 이 후, sequence type을 amino acid로 정해준 뒤, 보기 편하도록 multiline logo를 선택하고 줄에 15개 정도의 amino acid가 나올 수 있도록 하였다.

값을 이정도 설정해 준 이후, 실행하면 아래와 같은 식이 출력된다. 아래의 식은 각각의 서열 값에 설정되어 있는 amino acid 양의 정도를 나타낸다. 예를 들어, 5번째 식에서 V가 크게 표시되고 A가 작게 표시되는 것은 각각의 양이 그정도의 차이가 있다는 것을 나타내는 것으로 알 수 있다.