PSPDB(Protein Sequence Profile Data Bank)
- 단백질 서열 정렬과 점수 행렬
- 단백질 서열 검색 알고리즘 BLAST
- 다중 서열 정렬과 PSSM
- PSI-BLAST
- 단백질 서열 얼굴 (Protein Sequence Profile)
- 단백질 서열 얼굴은 왜 중요한가?
- 서열 얼굴의 응용
단백질 서열 정렬과 점수 행렬
단백질은 아미노산이 사슬로 연결되어 만들어지는 생체분자이다. 자연계에서 단백질을 만드는데 쓰이는 아미노산은 20가지이며, 이들 아미노산의 1차원적 조합 순서를 단백질 서열이라 한다. 20가지 아미노산을 로마 글자 중 20개로 표현할 수 있으므로, (A,C,D,E,...W,V,Y), 특정 단백질 서열은 유한한 길이의 문자열로 표현할 수 있다(예: AVHFGYTRRH). 현재까지 알려진 단백질 서열은 수십만 종에 이르며, 이만큼 다양한 종류의 단백질이 존재하는 것이다. 단백질은 생체를 이루는 기본 재료이기도 하지만, 무엇보다고 생체 내에서 효소, 호르몬, 항체 등의 역할을 하여 생명 활동을 제어하는 물질이다. 인간의 경우만 하더라도 생체 내에서 약 10만 종의 단백질이 서로 복잡한 상호 작용을 하여 생명을 유지시키고 있다.
최근 인간 유전자 지도가 해독되고 난 후, 이와 관련된 엄청난 양의 생명현상에 대한 실험결과들이 쏟아지고 있다. 유전자 지도 완성의 참 의미는 그 안에 모든 단백질의 아미노산 서열에 대한 정보가 들어있다는 데에 있다. 유전 정보에 따라 세포 안에서 리보솜에 의해 단백질이 합성되면, 수 초 안에 저절로 고유의 3차원 얼개로 접히게 되는데, 이를 단백질의 고유 얼개(native structure)라 부른다. 단백질의 3차원 얼개는 그 단백질의 기능을 결정하기 때문에, 고유 얼개의 존재는 단백질이 제대로 기능하기 위한 필수적인 조건이며, 이는 단백질이 아미노산을 마구잡이로 조합해서 만든 폴리펩티드와 구별되는 중요한 특징이다. 유전자에는 단백질 서열에 대한 정보만 있을 뿐, 생명현상 이해의 근본이 되는 단백질의 고유 얼개 및 기능에 대한 직접적인 정보는 없다. 또한 실험적 방법만으로 단백질의 얼개와 기능을 밝히는 데에는 기술적, 경제적인 한계가 따른다. 따라서 단백질 서열로부터 단백질의 얼개와 기능을 예측해내는 것이야말로 오늘날 생명과학의 핵심적인 문제라 할 수 있다.
오늘날 급속히 발전하고 있는 생명정보학은, 데이터베이스 구축, 컴퓨터 프로그래밍 등의 정보 기술을 활용하여, 방대한 양으로 쏟아져 나오는 분자생물학의 실험 데이터를 정리, 분석하고, 이로부터 유용한 정보를 얻어내어 생명과학의 새로운 현상을 예측하고자 하는 학문이다. 생명정보학에서는, 얼개와 기능을 모르는 단백질 서열을 이미 얼개나 기능을 알고 있는 단백질과 서열과 비교함으로써 예측을 수행하고 있다. 예를 들어 단백질의 서열이 매우 유사하면 같은 조상에서 진화한 것이라고 추론할 수 있고, 이 경우 그 얼개와 기능도 유사할 것이라고 추론할 수 있으므로, 단백질의 서열 비교는 단백질 서열의 얼개나 기능 예측을 위한 강력한 방법이며, 생명정보학 연구의 중요하고 핵심적인 분야이다.
단백질 서열 비교는 두 서열이 과연 공통의 조상으로부터 유래했다고 생각될만큼 유사한지를 결정하는 것이다. 이를 위해 우선 두 서열이 과연 같은 공통 조상으로부터 진화한 것인지 혹은 연관성이 없는지 확률적인 모델을 세워야 한다. 예를 들어 두 단백질 서열 AQVT, AET이 있다 할 때, 두 서열의 진화론적인 관계에 대한 여러 가지 가정을 해볼 수 있는데, 이들을 다음과 같이 표현할 수 있다. 이 표현식 각각을 서열의 정렬이라고 부른다.
최근 인간 유전자 지도가 해독되고 난 후, 이와 관련된 엄청난 양의 생명현상에 대한 실험결과들이 쏟아지고 있다. 유전자 지도 완성의 참 의미는 그 안에 모든 단백질의 아미노산 서열에 대한 정보가 들어있다는 데에 있다. 유전 정보에 따라 세포 안에서 리보솜에 의해 단백질이 합성되면, 수 초 안에 저절로 고유의 3차원 얼개로 접히게 되는데, 이를 단백질의 고유 얼개(native structure)라 부른다. 단백질의 3차원 얼개는 그 단백질의 기능을 결정하기 때문에, 고유 얼개의 존재는 단백질이 제대로 기능하기 위한 필수적인 조건이며, 이는 단백질이 아미노산을 마구잡이로 조합해서 만든 폴리펩티드와 구별되는 중요한 특징이다. 유전자에는 단백질 서열에 대한 정보만 있을 뿐, 생명현상 이해의 근본이 되는 단백질의 고유 얼개 및 기능에 대한 직접적인 정보는 없다. 또한 실험적 방법만으로 단백질의 얼개와 기능을 밝히는 데에는 기술적, 경제적인 한계가 따른다. 따라서 단백질 서열로부터 단백질의 얼개와 기능을 예측해내는 것이야말로 오늘날 생명과학의 핵심적인 문제라 할 수 있다.
오늘날 급속히 발전하고 있는 생명정보학은, 데이터베이스 구축, 컴퓨터 프로그래밍 등의 정보 기술을 활용하여, 방대한 양으로 쏟아져 나오는 분자생물학의 실험 데이터를 정리, 분석하고, 이로부터 유용한 정보를 얻어내어 생명과학의 새로운 현상을 예측하고자 하는 학문이다. 생명정보학에서는, 얼개와 기능을 모르는 단백질 서열을 이미 얼개나 기능을 알고 있는 단백질과 서열과 비교함으로써 예측을 수행하고 있다. 예를 들어 단백질의 서열이 매우 유사하면 같은 조상에서 진화한 것이라고 추론할 수 있고, 이 경우 그 얼개와 기능도 유사할 것이라고 추론할 수 있으므로, 단백질의 서열 비교는 단백질 서열의 얼개나 기능 예측을 위한 강력한 방법이며, 생명정보학 연구의 중요하고 핵심적인 분야이다.
단백질 서열 비교는 두 서열이 과연 공통의 조상으로부터 유래했다고 생각될만큼 유사한지를 결정하는 것이다. 이를 위해 우선 두 서열이 과연 같은 공통 조상으로부터 진화한 것인지 혹은 연관성이 없는지 확률적인 모델을 세워야 한다. 예를 들어 두 단백질 서열 AQVT, AET이 있다 할 때, 두 서열의 진화론적인 관계에 대한 여러 가지 가정을 해볼 수 있는데, 이들을 다음과 같이 표현할 수 있다. 이 표현식 각각을 서열의 정렬이라고 부른다.
AQVTAQVTAQVT...
AET-AE-TA- ET
위에 있는 서열을 조상이라 할 때, 첫 번째 정렬은 A는 변화가 없고 Q가 E로, V가 T로 바뀌고 T가 빠지는 돌연변이를 가정한 반면, 두 번째 정렬은 A와 T는 모두 그대로 있고 Q가 E로, V는 빠진 돌연변이를 가정하고 있다. -로 표시된 부분을 틈(gap)이라 한다. 이러한 각각의 모형에 대한 확률들을 계산하여 이들 중 가장 확률이 높은 정렬을 찾아야 한다. 가장 간단한 모형으로써, 각 위치에서 특정 아미노산이 다른 특정 아미노산으로 바뀔 확률이 다른 위치에서 일어나는 일들과 독립이고, 모든 위치에서 동일하다는 가설을 세울 수 있다. 이 경우 특정 정렬의 확률은 특정 아미노산이 다른 아미노산으로 바뀌는 확률, 아미노산이 빠지거나 끼워지는 확률 등으로부터 계산할 수 있다. 관계가 있는 두 서열의 한 위치에서 아미노산 a와 b가 나타날 확률을 라 하고, 한 서열에서 아미노산 a가 나타날 확률을 , 길이 g인 틈이 생길 확률을 라 하자. 두 서열을 , 로 표시할 때, 두 서열의 정렬에 대해 두 서열이 관계가 있을 확률과 아무 관계가 없을 확률의 비율을 로 표시할 수 있다. 여기서 i는 gap이 아닌 모든 위치를 표시하고, j는 각 틈을 표시, 는 그 틈의 길이를 의미한다. 오즈비(odds ratio)라 불리는 이 양이 크면 클수록 두 서열이 진화적으로 연관이 되어 있을 확률이 크다. 또, 고정된 두 서열이라도 어떤 식의 변이 모델을 세웠을 때 오즈비가 가장 큰 모형(위 그림 참조)이 두 서열의 진화 관계를 가장 잘 설명해 준다고 할 수 있다.
실제 계산을 할 때에는, 작은 수를 연달아 곱할 때 나타나는 컴퓨터 상의 underflow 문제를 방지하기 위하여, 오즈비의 로그를 취하여 곱셈을 덧셈으로 변환하게 된다. 일반적으로 로그 오즈비(log odds ratio)라 불리는 이 양을, 서열 정렬에서는 점수(score)라 부른다. 점수는
의 꼴로 쓰여지는데, gap이 없는 부분의 아미노산 쌍에서 나오는 항 를 이른바 바뀜 행렬(substitution matrix)이라고 부르며, 점수 행렬(score matrix)라고도 부른다. (>0) 는 틈 벌점(gap penalty)라 불린다. 두 서열을 정렬한다는 것은 가장 score가 높은 정렬을 찾아낸다는 것이며, 이는 두 서열 간의 가능한 진화론적 관계들 중 (위 그림 참조) 가장 확률이 높은 것을 찾아낸다는 것을 의미한다. 정해진 점수 행렬과 틈 벌점을 써서 최선의 정렬을 효율적으로 찾는, dynamic programming이라는 알고리즘이 개발되어 있다. 두 서열 간에 최선의 정렬을 구하여도 그 점수가 일정 기준에 미달할 때에는 두 서열은 관계가 없는 것으로 간주된다. 즉, 서로 연관성이없는 두 개의 서열을 가져다 놓았을 때에, 점수 값이 우연히 현재 관측된 값만큼 크게 나올 확률을 계산하여, 그 확률이 너무 희박하면 두 서열은 연관이 있다고 결론을 내리게 되고, 그렇지 않을 때에는 연관성이 없는 것으로 간주한다. 확률이 얼만큼 작을 때 희박하다고 하는가를 가르는 기준을 유의 수준(siginificance level)이라고 하는데, 유의 수준을 정하고 나면, 두 서열의 정렬 점수가 얼만큼 클 때 두 서열이 연관이 있다고 결론이 나는가 하는 문턱값(threshold value)가 결정되게 된다. 서열 정렬은 특히 새로 알려진 단백질의 얼개나 기능을 밝히는데 매우 유용하다. 생물학적 기능이나 얼개를 알고자 하는 단백질 서열을 이른바 질의 서열(query sequence)라 부른다. 데이터베이스에 들어있는 단백질들 각각과 서열 정렬을 하였을 때, 연관성이 있다고 결론 내릴 만큼 높은 정렬 점수가 매겨진 단백질들들이 발견되면, 그들의 얼개나 기능을 통해 질의 서열의 얼개와 기능을 추론할 수 있기 때문에다. 그런데 데이터베이스를 검색할 때에는 dynamic programming을 사용하는 데에 어려움이 있다. 질의 서열과 데이터베이스의 각 단백질과 서열 정렬을 하게 되는 것이므로, 서열 정렬을 데이터베이스의 서열 수만큼 반복하게 된다. 얼개 데이터베이스에 있는 단백질의 수만 해도 수만 개에 이르고, 서열만 알려진 단백질의 경우에는 수십만에서 수백만 개에 이르므로, 최선의 정렬을 정확히 찾는 dynamic programming은 시간이 너무 많이 걸리게 된다. 따라서 최선의 정렬은 아니더라도 빠른 시간 안에 좋은 정렬을 찾는 BLAST 알고리즘이 데이터베이스 서열 검색에 널리 쓰이고 있다.
단백질 서열 검색 알고리즘 BLAST (Basic Local Alignment Search Tool)
BLAST(Basic Local Alignment Search Tool)는현재 생물정보학 (bioinformatics) 연구에서 가장 많이 사용되고 있는 서열 검색방법이다. 기능이나 얼개를 잘 모르고 있는 핵산(DNA 또는 RNA) 서열이나 단백질 서열이 있을 때, 먼저 분석하고자 하는 서열과 관계되는 서열들을 서열 데이터베이스(sequence database)로부터 찾아낸다. 그 다음에 데이터베이스에서 찾아진 서열들로부터 분석하고자 하는 서열의 성질들을 유추해낸다. 서열 데이터베이스 검색에서 가장 대중적으로 사용되고 있는 방법이 BLAST이다.
BLAST를 사용하는 방법에는 두 가지가 있다. 첫 번째는 미국 NCBI사이트(http://www.ncbi.nlm.nih.gov/blast/)에서 웹을 통해서 BLAST 검색을 하는 것이다. 하지만 분석하고자 하는 서열들의 수가 아주 많을 때는 BLAST를 개인(또는 연구실) 컴퓨터에 설치하여 검색하는 것이 훨씬 효율적이다. 가장 최근의 BLAST 실행 파일들(executables)을 NCBI사이트(ftp://ftp.ncbi.nlm.nih.gov/blast/executables/)에서 쉽게 얻을 수 있다. BLAST를 개인(또는 연구실) 컴퓨터에서 사용하기 위해서는 서열 데이터베이스들도 NCBI에서(ftp://ftp.ncbi.nlm.nih.gov/blast/db/) 얻어야 된다. 단백질 서열을 다루는 경우에는 “nr.tar.gz”(nr은 non-redundant를 의미하며 이백 만개 이상의 단백질 서열을 포함하고 있다) 파일을 얻으면 된다. 삼차원 얼개가 이미 알려진(또는 특허와 관련된) 단백질 서열만을 다루고 싶을 때는 “pdb.tar.gz” (“pataa.tar.gz”) 파일을 얻어야 한다.
표1: blastall의 다섯 가지 프로그램들
프로그램 | 서열 데이터베이스 | 분석하고자 하는 서열 |
---|---|---|
blastn | 핵산 | 핵산 |
blastp | 단백질 | 단백질 |
blastx | 단백질 | 단백질로 번역된 핵산 |
tblastn | 단백질로 번역된 핵산 | 단백질 |
tblastx | 단백질로 번역된 핵산 | 단백질로 번역된 핵산 |
BLAST 실행 파일들 중에서 가장 많이 사용하는 것은 blastall이다. blastall은 서로 다른 다섯 가지 프로그램 "blastn", "blastp", "blastx", "tblastn", "tblastx"를 모두 포함하고 있다. BLAST의 일반적인 사용법은 참고 문헌에 잘 소개되어 있다. blastall의 사용 예는 다음과 같다.
blastall -p blastp -d nr -i query
여기에서 “-p”는 사용하고자 하는 프로그램의 종류(다섯 가지 중의 하나)를 지정해준다. “-d”는 검색할 서열 데이터베이스의 이름을 정해준다(nr은 non-redundant 단백질 서열 데이터베이스를 의미한다). “-i”는 분석하고자 하는 서열을 FASTA 형태로 담고 있는 파일이름(사용자가 임의로 이름을 결정할 수 있다)을 지정해준다.
BLAST는 관계가 있는 서열들을 찾기 위해서 점수행렬(scoring matrix)을 사용하는데, 단백질 서열의 경우 BLOSUM62 점수행렬이 표준적으로 사용된다(표2 참고). BLOSUM은 BLOcks SUbstitution Matrix의 약자로써, 한 아미노산이 다른 아미노산으로 바뀔 가능성(달리 표현하자면 두 아미노산의 유사성)을 나타낸다. BLOSUM 점수행렬에서 양의 수는 두 아미노산이 서로 잘 바뀔 수 있는 경우를 의미하며, 음의 수는 두 아미노산이 서로 잘 바뀌지 않는 경우를 의미한다. 0의 값은 특별한 의미 없이 두 아미노산이 우연히 바뀔 수 있는 경우를 의미한다. 두 서열을 비교해서 점수가 높으면 높을수록 친족관계(homology)가 더 있다고 볼 수 있다. BLOSUM62 점수행렬(표2)에서 가장 높은 점수는 11점이고(단 한가지 경우: 트맆토판(W)이 자기자신으로 유지되는 경우), 가장 낮은 점수는 마이너스 4점이다(8가지 경우가 있다). 트맆토판(W)이 각각 애스패러진(N), 애스파틱 산(D), 프롤린(P)으로 바뀌는 경우, 글라이신(G)이 아이소루신(I)이나 루신(L)으로 바뀌는 경우, 애스파틱 산(D)이 루신(L)으로 바뀌는 경우, 글루타믹 산(E)이 시스테인(C)으로 바뀌는 경우, 프롤린(P)이 페닐알라닌(F)으로 바뀌는 경우가 마이너스 4점에 해당된다.
표2: BLOSUM62 점수행렬(scoring matrix)
A | R | N | D | C | Q | E | G | H | I | L | K | M | F | P | S | T | W | Y | V | |
A | 4 | -1 | -2 | -2 | 0 | -1 | -1 | 0 | -2 | -1 | -1 | -1 | -1 | -2 | -1 | 1 | 0 | -3 | -2 | 0 |
R | -1 | 5 | 0 | -2 | -3 | 1 | 0 | -2 | 0 | -3 | -2 | 2 | -1 | -3 | -2 | -1 | -1 | -3 | -2 | -3 |
N | -2 | 0 | 6 | 1 | -3 | 0 | 0 | 0 | 1 | -3 | -3 | 0 | -2 | -3 | -2 | 1 | 0 | -4 | -2 | -3 |
D | -2 | -2 | 1 | 6 | -3 | 0 | 2 | -1 | -1 | -3 | -4 | -1 | -3 | -3 | -1 | 0 | -1 | -4 | -3 | -3 |
C | 0 | -3 | -3 | -3 | 9 | -3 | -4 | -3 | -3 | -1 | -1 | -3 | -1 | -2 | -3 | -1 | -1 | -2 | -2 | -1 |
Q | -1 | 1 | 0 | 0 | -3 | 5 | 2 | -2 | 0 | -3 | -2 | 1 | 0 | -3 | -1 | 0 | -1 | -2 | -1 | -2 |
E | -1 | 0 | 0 | 2 | -4 | 2 | 5 | -2 | 0 | -3 | -3 | 1 | -2 | -3 | -1 | 0 | -1 | -3 | -2 | -2 |
G | 0 | -2 | 0 | -1 | -3 | -2 | -2 | 6 | -2 | -4 | -4 | -2 | -3 | -3 | -2 | 0 | -2 | -2 | -3 | -3 |
H | -2 | 0 | 1 | -1 | -3 | 0 | 0 | -2 | 8 | -3 | -3 | -1 | -2 | -1 | -2 | -1 | -2 | -2 | 2 | -3 |
I | -1 | -3 | -3 | -3 | -1 | -3 | -3 | -4 | -3 | 4 | 2 | -3 | 1 | 0 | -3 | -2 | -1 | -3 | -1 | 3 |
L | -1 | -2 | -3 | -4 | -1 | -2 | -3 | -4 | -3 | 2 | 4 | -2 | 2 | 0 | -3 | -2 | -1 | -2 | -1 | 1 |
K | -1 | 2 | 0 | -1 | -3 | 1 | 1 | -2 | -1 | -3 | -2 | 5 | -1 | -3 | -1 | 0 | -1 | -3 | -2 | -2 |
M | -1 | -1 | -2 | -3 | -1 | 0 | -2 | -3 | -2 | 1 | 2 | -1 | 5 | 0 | -2 | -1 | -1 | -1 | -1 | 1 |
F | -2 | -3 | -3 | -3 | -2 | -3 | -3 | -3 | -1 | 0 | 0 | -3 | 0 | 6 | -4 | -2 | -2 | 1 | 3 | -1 |
P | -1 | -2 | -2 | -1 | -3 | -1 | -1 | -2 | -2 | -3 | -3 | -1 | -2 | -4 | 7 | -1 | -1 | -4 | -3 | -2 |
S | 1 | -1 | 1 | 0 | -1 | 0 | 0 | 0 | -1 | -2 | -2 | 0 | -1 | -2 | -1 | 4 | 1 | -3 | -2 | -2 |
T | 0 | -1 | 0 | -1 | -1 | -1 | -1 | -2 | -2 | -1 | -1 | -1 | -1 | -2 | -1 | 1 | 5 | -2 | -2 | 0 |
W | -3 | -3 | -4 | -4 | -2 | -2 | -3 | -2 | -2 | -3 | -2 | -3 | -1 | 1 | -4 | -3 | -2 | 11 | 2 | -3 |
Y | -2 | -2 | -2 | -3 | -2 | -1 | -2 | -3 | 2 | -1 | -1 | -2 | -1 | 3 | -3 | -2 | -2 | 2 | 7 | -1 |
V | 0 | -3 | -3 | -3 | -1 | -2 | -2 | -3 | -3 | 3 | 1 | -2 | 1 | -1 | -2 | -2 | 0 | -3 | -1 | 4 |
다중 서열 정렬과 PSSM
위에서 설명한 서열 정렬은 두 서열을 정렬하므로 이중 정렬(pairwise alignment라) 불리는 반면, 세 개 이상의 서열을 정렬하는 경우 이를 다중 서열 정렬(multiple sequence alignment)이라 부른다. 다중 서열 정렬을 통해 이중 서열 정렬보다 더 많은 정보를 얻을 수 있는데, 특히 진화 과정에서 서열이 변하지 않는 이른바 보존 영역(conserved region) 등을 잘 알 수 있다. 단백질의 구조와 기능에 중요한 역할을 하는 부분의 서열은 잘 변하지 않기 때문에 이와 같이 보존되는 영역의 정보는 매우 중요하다. 더 일반적으로, 다중 서열 정렬을 통해 단백질의 각 위치에서의 아미노산이 다른 아미노산으로 바뀔 확률을 계산할 수 있다. 맨 처음에 정렬을 하기 위해 사용한 점수 행렬은 각 위치에서 아미노산이 다른 아미노산으로 바뀌는 확률이 위치마다 동일하다는 모형을 써서 구한 것인 반면 다중 서열 정렬을 통해 얻은 아미노산 치환 확률은 위치마다 다른 값을 가지며, 이를 통해 얻은 점수 행렬을 위치마다 다른 점수 행렬 (position specific scoring matrix: PSSM), 혹은 서열 얼굴(sequence profile)이라 부른다. 이러한 PSSM은 다시 서열 정렬에 쓰일 수 있다.
BLAST를 확장하여 만든 PSI-BLAST는 이와 같은 작업을 해주는 무른모이다. PSI-BLAST에서는 우선 위치 정보가 없는 원시적인 점수 행렬을 사용하는 BLAST 정렬 알고리즘을 써서 데이터베이스를 검색한다. 질의 서열과의 이중 정렬 점수가 일정 기준 이상인 서열들을 골라낸다 후, 이렇게 모은 서열들을 다시 다중 서열정렬하여 PSSM을 만든다. 다시 이 PSSM을 써서 데이터베이스를 검색하여 질의 단백질과의 정렬 점수가 일정 기준 이상인 것들을 골라낸다. 이 때 찾아지는 단백질들 서열은 질의 서열과 같은 조상에서 진화했지만 오랜 시간 전에 분화되었기 때문에 첫 번째 검색에서 찾지 못한 것들이다. 이렇게 모은 단백질들을 다시 다중 서열 정렬하여 새로운 PSSM를 만들고 이를 써서 다시 한 번 데이터베이스를 검색할 수 있다. 이렇게 모은 단백질들을 다시 다중 서열 정렬하여 새로운 PSSM를 만들고 이를 써서 다시 한 번 데이터베이스를 검색할 수 있다.
PSI-BLAST(Position Specific Iterative BLAST)
위에서 살펴 보았듯이,BLAST 검색에 쓰이는 점수행렬에서는 두 개의 아미노산이 바뀔 가능성이 항상 고정되어 있는 반면, BLAST를 써서 질문 서열에 대한 상동 서열을 검색하여 이들을 다중 정렬하고 나면, 질의 서열의 각 위치마다 아미노산이 다른 아미노산으로 바뀌는 빈도를 구할 수 있고, 이로부터, 서열 각 위치의 아미노산이 다른 아미노산으로 바뀌는 확률을 추정할 수 있다. 이는 서열 검색을 위해서 맨처음에 세운 이론적인 모형보다 더 정제된 모형이다. 이 새로운 모형을 써서 검색 작업을 다시 할 수 있고, 상동성이 약해서 일차 검색 과정에서 검출되지 않았던 새로운 서열들을 찾아낼 수 있다. 검색 결과로부터 아미노산의 변이 확률을 다시 계산할 수 있고, 더 정제된 새로운 모형으로 다시 검색을 할 수 있다. PSI-BLAST(Position Specific Iterative Basic Local Alignment Search Tool)는 이런 식으로 모형을 정제해 나아가면서 BLAST 검색 작업을 되풀이하는 알고리즘이다.
PSI-BLAST의 첫 번째 검색은 위치에 의존하지 “않는” 점수행렬인 BLOSUM62를 사용하는 BLAST와 동일하다. PSI-BLAST의 첫 번째 검색에서 원시적인 PSSM이 만들어진다. 이 원시적인 PSSM을 바탕으로 하여 두 번째 PSI-BLAST검색을 수행하여 개선된 PSSM을 만들어낸다. 이런 식으로 계속 반복하면(iterated) 상당한 정확성을 가지는 PSSM을 얻을 수 있다.
PSI-BLAST 검색을 하기 위해서는 BLAST 실행 파일중의 하나인 “blastpgp”를 이용한다. blastpgp의 사용 예는 다음과 같다.
blastpgp -d nr -i query -j 3 -h 0.001 -C query.chk
여기에서 “-d”와 “-i”는 blastall에서와 같은 역할을 한다. “-j”는 PSI-BLAST 검색을 반복(iteration)할 횟수이다. “-h”는 PSSM을 만들 때 사용하는 임계 값(threshold)이다. “-h”를 지정하지 않으면 0.001이 표준(default) 값으로 사용된다. “-C”는 아미노산의 변이 빈도를 나타내는 빈도 행렬(Frequency Matrix:FMTX)을 파일(query.chk)로 저장하고 싶을 때 사용한다. 출력 파일은 기계어형태로 저장되며, 이를 점수 행렬인 PSSM으로 변환하여 동시에 사람이 읽을 수 ASCII 파일로 출력하는 무른모가 BLAST 실행 파일중의 하나인 “makemat”이다.
단백질 서열 얼굴(Protein Sequence Profile)
PSI-BLAST 검색을 수행하여 질의 서열과 진화론적으로 관계가 있는 서열, 즉 상동 서열을 검색한 후에, 다시 이들을 다중 정렬하고 나면, 질문 서열 단백질 각 위치의 아미노산이 다른 아미노산으로 바뀌는 확률이 나온다. 서열의 각 위치마다 20가지 아미노산으로 바뀌는 확률이 나오므로, 각 위치마다 0과 1사이의 20개의 실수가 나오고, 이들을 모두 합하면 1이 된다. 이 결과가 checkpoint file에 저장되며, 무른모가 빠른 속도로 읽어들일 수 있도록 기계어의형태로 저장되어 있다. 이러한 빈도 행렬(Frequency Matrix:FMTX)은 (서열 길이) x 20의 크기를 갖는 행렬로서(그림1 참조), 각 위치에서의 아미노산 변이 확률의 추정값이라고 볼 수 있다. 빈도 행렬에는 질의 서열 자체만 보고서는 알 수 없는 진화론적인 정보가 담겨져 있기 때문에, 이를 다른 말로 서열 얼굴(Sequence profile)이라고도 부른다.
(그림) 서열 얼굴의 예
이미 언급하였듯이 서열을 검색하기 위해서는 변이 확률을 직접 쓰는 것이 아니라, 아미노산 별 빈도로 나누어 오즈비를 구하여 로그를 취한 점수 행렬의 형태로 변환해 주어야 한다. BLAST 실행 파일중의 하나인 “makemat”이 바로 이 작업을 수행하는 무른모이며, 그 출력으로 얻어지는 점수 행렬이 바로 PSSM이다. 이 데이터베이스에서는 3차원 얼개가 알려진 50557개의 단백질 서열에 대해, 빈도 행렬의 형태로 되어있는 서열 얼굴을 기계어 형태인 checkpoint file(확장자 .chk)과 ASCII 파일(확장자 .fmtx)의 두 가지 형태로 제공하며, makemat을 사용하여 이들로부터 작성된 PSSM (확장자 .mtx)를 제공하고 있다.
단백질 서열 얼굴은 왜 중요한가?
PSSM을 써서 질의 서열과 데이터베이스의 서열 하나를 이중 정렬 하는 것은, query protein의 profile과 데이터베이스를 정렬하는 것이라고 볼 수도 있는데, 이를 profile-sequence alignment라 한다. 위에서 이미 언급한 대로, profile-sequence alignment를 통해 단순한 sequence-sequence alignment를 통해서는 쉽게 찾아내지 못하는 단백질 간의 먼 인척 관계를 알아낼 수 있다. 오늘날에는 그 민감도를 높이기 위해 두 서열에 대해 일단 Database검색과 다중 서열 정렬을 통해 profile들을 만든 후에 그 profile들을 정렬하는 이른바 profile-profile alignment도 널리 쓰이고 있다. 이처럼 서열 얼굴을 상동 서열 재검색에 활용하기 위해서는 PSSM 형태로 저장되어 있는 파일을 쓰는 것이 유용하다.
위에서 살펴 보았듯이 서열 얼굴에는 서열의 진화론적인 정보가 담겨져 있기 때문에, 상동 서열의 재검색 외에도 그 활용 분야가 다양하며, 그 사례 중 몇 가지를 구체적으로 소개하고자 한다.
단백질 서열 얼굴의 응용
1.단백질 이차 구조(secondary structure) 예측
단백질의 일차 구조(primary structure; DNA정보로부터 얻어지는 특정 단백질의 아미노산 서열)만으로부터 단백질의 이차 구조(secondary structure)를 예측하는 것을 단백질 이차 구조 예측이라고 한다. 이차 구조에 대한 정보는 삼차 구조(tertiary structure) 예측에서 중요한 역할을 하고, 실험에 의한 삼차 구조 결정에도 큰 도움을 준다.
단백질 이차 구조의 분류는 DSSP(dictionary of protein secondary structure) 표준을 따른다. DSSP는 용매 접근성(solvent accessibility) 연구에서도 표준의 역할을 하고 있기 때문에, 성공적인 단백질 구조 예측을 위해서는 DSSP를 잘 알고 있어야 한다. DSSP 프로그램은 "http://swift.cmbi.ru.nl/gv/dssp/"에서 얻을 수 있다. DSSP 프로그램은 구조가 알려져 있는 단백질의 이차 구조 및 용매 접근성을 결정해 준다. DSSP 프로그램은 단백질의 이차 구조를 여덟 가지(G: 310 helix, H: alpha helix, I: pi helix, B: residue in isolated beta-bridge, E: extended strand, participates in beta ladder, T: hydrogen-bonded turn, S: bend, X: otherwise)로 분류한다. 보통의 경우 단백질 이차 구조 예측에서는 여덟 가지 분류를 세가지 분류(H: helix, E: extended, C: coil)로 줄여서 사용한다(G, H, and I → H; B and E → E; T, S, and X → C).
b-sheet
현재 가장 많이 사용되고 있는 단백질 이차 구조 예측 프로그램은 PSIPRED이다. PSIPRED의 예측 정확도(prediction accuracy)는 80% 정도된다. PSIPRED는 PSIPRED Protein Structure Prediction Server(http://bioinf.cs.ucl.ac.uk/psipred)에서 사용할 수 있다. 이 사이트에서 단백질 아미노산 서열을 입력하면 그 단백질의 예측된 이차 구조를 얻을 수 있다. 아주 많은 수의 아미노산 서열들에 대해서 이차 구조를 얻고 싶으면 PSIPRED를 개인(또는 연구실) 컴퓨터에 설치하여 사용하는 것이 훨씬 효율적이다. PSIPRED 프로그램은 "http://bioinf.cs.ucl.ac.uk"에서 얻을 수 있다. PSIPRED를 사용하기 전에 PSI-BLAST를 설치해야 PSIPRED가 작동한다.
PSIPRED의 출발점은 PSI-BLAST가 만들어주는 "위치에(또는 특정 서열에) 의존하는 점수행렬"(position-specific scoring matrix; 간단하게 PSSM이라고 부른다)이다. PSSM의 원소 개수는 n×20이다. 여기에서 n은 분석하고자 하는 특정 단백질 서열의 길이이고, 20은 20가지의 서로 다른 아미노산들을 나타낸다. PSIPRED에서는 PSSM을 조각 내서 사용한다. 조각 하나의 크기는 15×20이며, 이 조각을 입력 벡터(input vector)라고 부른다. 여기에서 15는 창 크기(window size)이며, 꼭 15일 필요는 없다. PSIPRED의 개발자인 존스(David T. Jones)가 편의상 15를 사용했으며, 15가 상당히 효율적이라고 주장하였다. PSIPRED에서 사용되는 방법은 신경망(neural network) 방법인데, 패턴 인식(pattern recognition)과 기계 학습(machine learning) 연구에서 가장 대표적으로 사용되는 방법이다.
신경망 방법에서는 훈련(training)을 통해서 신경망 방법의 매개변수들(parameters)을 결정한다. 훈련 과정과 매개변수 결정에서는 이차 구조가 알려진 단백질들을 이용한다. 15×20개의 원소를 가진 입력 벡터에 이차 구조를 지정해주는데, 15개의 아미노산 중에서 정 가운데에 위치하고 있는 여덟 번째 아미노산의 (DSSP에 의해서 결정된) 이차 구조를 입력 벡터의 이차 구조로 정해준다. 훈련 과정이란 입력 벡터를 신경망에 집어넣어서 입력 벡터의 이차 구조가 신경망의 출력이 되도록 신경망 방법의 매개변수들을 조절해주는 과정이다. 너무 과도하게 훈련하면 훈련에 사용된 단백질들의 이차 구조만을 정확하게 맞추게 되므로, 훈련을 적당히 해주어야 한다. 훈련 과정이야말로 신경망 방법에서 가장 어려운 부분이고, 훈련에 많은 시간이 소요된다.
신경망 방법은 훈련에 많은 시간이 소요되지만, 일단 훈련이 끝나면 이차 구조 예측은 아주 빠르게 진행된다. 이차 구조가 알려지지 않은 아미노산 서열이 주어지면 PSIPRED는 일단 그 서열의 (PSI-BLAST를 이용하여) PSSM을 만들어 낸다. 이 PSSM으로부터 입력 벡터들을 만들어서 순서대로 신경망에 집어넣으면 원하던 이차 구조를 얻게 된다. PSIPRED는 대부분의 시간을 PSSM을 만드는데 소요한다. 하지만 실재 예측은 순간적으로 이루어지고 동시에 예측 정확도도 아주 높다. 이점이 PSIPRED의 장점이다.
단백질 이차 구조 예측에서는 신경망 방법 이외에도 패턴 인식과 기계 학습 연구에서 잘 알려진 지원 벡터 기계(support vector machine) 방법과 최 근접 이웃(nearest neighbor) 방법이 사용되어 왔다. 지원 벡터 기계 방법을 이용한 단백질 이차 구조 예측 방법들 중에서 대표적인 것은 SVMpsi이다. SVMpsi는 PSIPRED에서 사용되었던 입력 벡터를 똑같이 사용한다. 지원 벡터 기계 방법의 장점은 훈련 시간이 신경망 방법에 비해서 적게 소요된다는 점이다.
신경망 방법과 지원 벡터 기계 방법에서는 훈련 과정이 꼭 필요한데, 훈련 과정에 많은 시간이 소요되고 과정이 복잡하다. 따라서 훈련 과정이 필요 없는 패턴 인식 방법이 많이 사용되기도 하는데, 이때 대표적으로 사용되는 방법이 최 근접 이웃 방법이다. 최 근접 이웃 방법을 이용한 단백질 이차 구조 예측 방법들 중에서 대표적인 것은 PREDICT이다. PREDICT에서 사용하는 입력 벡터는 PSIPRED와 SVMpsi에서 이용되는 입력 벡터와 동일하다. 최 근접 이웃 방법에서는 이차 구조가 알려지지 않은 입력 벡터와 이차 구조가 알려진 입력 벡터들간의 거리를 측정해서, 이차 구조가 알려진 입력 벡터들 중에서 거리가 가장 가까운 입력 벡터들을 추려낸다. 예를 들면 100개의 가장 가까운 입력 벡터들을 추려냈다고 가정해본다. 그 다음에 추려낸 입력 벡터들의 이차 구조를 살펴본다. 그 중에서 helix가 20개, extended가 50개, coil이 30개라면 이차 구조가 알려지지 않은 입력 벡터의 이차 구조는 extended이다. 따라서 15×20개의 원소를 가진 입력 벡터를 대표하는 여덟 번째 아미노산의 이차 구조는 extended로 예측된다.
단백질 이차 구조 예측방법을 직접 개발해보고 싶으면 최 근접 이웃 방법에서부터 출발하는 것이 좋다. PSI-BLAST를 이용해서 PSSM을 만들 수만 있다면 최 근접 이웃 방법을 이용해서 단백질 이차 구조 예측을 아주 쉽게 할 수 있다. 현재 프로파일(즉 PSSM) 데이터베이스를 만드는 작업을 진행 중이기 때문에(http://www.cheric.org), PSSM 만드는 방법을 잘 모르더라도 단백질 이차 구조 예측을 용이하게 할 수 있을 것이다.
2.단백질 도메인 경계(domain boundary) 예측
대략 100여 개의 아미노산으로 이루어져 있는 단백질들의 삼차원 구조는 한 덩어리의 구조를 가지고 있다. 반면에 200여 개 이상의 아미노산으로 이루어져 있는 단백질들(생체에 있는 대부분의 단백질들은 200개 이상의 아미노산들로 구성되어 있다)은 여러 개의 독립된 덩어리로 나누어진 삼차원 구조를 가지고 있다(그림1 참고). 독립된 한 개의 덩어리를 도메인(domain)이라고 한다(그림2 참고). 일반적으로 같은 단백질 안에서도 도메인들은 서로 다른 성질을 가지고 있다.
(그림1: 도메인 한 개의 크기에 대한 통계적 분포
(x-축의 단위: 아미노산의 개수)
도메인은 단백질 폴딩(folding)의 기본 단위로 여겨진다. 따라서 단백질을 구조(fold) 별로 분류할 때 전체 단백질을 사용하는 것이 아니라 해당 단백질을 도메인 별로 나누어서 각각의 도메인을 분류한다. 현재 이런 방식으로 분류된 구조(fold)의 종류는 약 팔백 개에서 구백 개 정도 된다. 가장 유명한 단백질 구조 분류 데이터베이스로는 SCOP(Structure Classification Of Proteins; http://scop.mrc-lmb.cam.ac.uk/scop)과 CATH(Class, Architecture, Topology, and Homology; http://www.cathdb.info)가 있다.
그림2: 두 개의도메인으로 이루어져있는 단백질
현재 SCOP(1.67 release)은 PDB(Protein Data Bank)에 있는 24037개의 단백질을 65122개의 도메인으로 나누어서 이들 도메인들을 구조(fold) 별로 분류하고 있다(표1 참고). 예외적인 경우로써 표1에서 class 중에 Multi-domain proteins가 있는데, 이들은 도메인 별로 나누지 않고서 구조를 분류한 경우이다. 표1에서 사용된 fold라는 용어는 유사한 모양을 가진 단백질 집단을 의미하며, superfamily는 공통 조상을 가진 단백질 집단을 지칭하고, family는 서열의 유사성이 25%이상인 단백질 집단을 의미한다. 예를 들면, SCOP에서는 alpha-helix로 이루어진 단백질(좀더 정확하게 표현하면 도메인) 들을 202개의 구조(fold)로 분류하고 있는데, 그 중의 한 예가 globin-like fold이다. 이 fold의 특징은 단백질의 중심이 6개의 alpha-helix로 이루어져있다는 점이다. globin-like fold는 globin-like superfamily와 alpha-helical ferredoxin superfamily로 나누어진다. 다시 전자는 4개의 family로 나누어지고 후자는 2개의 family로 나누어진다. globin-like superfamily에 속하는 family중에서 가장 유명한 것은 globins family로써 hemoglobin 단백질과 myoglobin 단백질을 포함하고 있다.
표1: SCOP 통계
Class | Number of folds | Number of superfamiles | Number of familes |
---|---|---|---|
All alpha proteins | 202 | 342 | 550 |
All beta proteins | 141 | 280 | 529 |
Alpha/beta proteins | 130 | 213 | 593 |
Alpha+beta proteins | 260 | 386 | 650 |
Multi-domain proteins | 40 | 40 | 55 |
Membrane and cell surface proteins | 42 | 82 | 91 |
Small proteins | 72 | 104 | 162 |
Total | 887 | 1447 | 2630 |
일차원적인 아미노산 서열(sequence) 정보만으로 단백질의 도메인 경계(domain boundary)를 찾아내는 문제는 아주 어렵다. 하지만 바이오정보학(bioinformatics)에서 풀어야 할 가장 중요한 문제들 중의 하나이다. 단백질 삼차 구조 예측에서 각각의 도메인이 서로 다른 성질을 가지고 있기 때문에, 도메인 별로 삼차 구조를 따로따로 예측해야 된다. 따라서 단백질 삼차 구조를 성공적으로 예측하기 위해서는 해당 단백질의 도메인 경계에 대한 정보를 미리 알고 있어야 한다. 도메인 경계에 대한 정보는 실험에 의한 삼차원 구조 결정에도 많은 도움을 준다.
단백질 도메인 경계 예측 방법들은 크게 두 가지로 나누어진다. 첫 번째는 서열로부터 조잡한 삼차 구조들을 만들어낸 다음에 이들 구조들을 분석하여 도메인 경계를 결정하는 것이다. 대표적인 방법으로는 SnapDRAGON 방법과 RosettaDom 방법이 있다. 이들 방법들은 좋은 예측결과를 주지만 조잡한 삼차 구조들을 만들어내는데 너무 많은 시간을 소비한다는 단점을 가지고 있다.
두 번째 방법으로는 서열로부터 바로 도메인 경계를 예측하는 방법들이 있는데, 첫 번째 방법에 비해서 시간이 적게 소모되기 때문에 많은 방법들이 개발되었다. 가장 단순한 방법으로는 도메인 크기의 통계적 분포(그림1 참고)만을 사용하는 DGS(Domain Guess by Size) 방법이 있다. DGS는 모든 도메인 경계 예측 방법들 중에서 가장 빠르기 때문에 일차 근사로써 가장 좋은 방법이다. 좀더 정교한 방법으로는 PSIPRED의 단백질 이차 구조 예측 결과를 이용하는 DomSSEA 방법과 두 도메인을 연결해주는 부분인 linker(그림2 참고)를 집중적으로 분석하는 DomCut 방법이 있다. 현재 가장 뛰어난 결과를 보여주는 방법들은 PSI-BLAST가 만들어주는 “위치에(또는 특정 서열에) 의존하는 점수행렬”(position-specific scoring matrix; 간단하게 PSSM이라고 부른다)을 사용하는 방법들이다. PSSM을 사용하여 도메인 경계를 예측한 최초의 방법은 DOMAINATION 방법인데, 약간 조잡한 방법이다. 정교한 방법으로는 PSSM 정보와 신경망(neural network) 이론을 결합한 PPRODO(Prediction of PROtein DOmain boundaries) 방법이 있다. 이 방법은 친족 관계(homology)가 아주 낮은 어려운 문제에 대해서도 도메인 경계를 잘 찾아준다.