세 번째 편에서는 functional annotation과 taxonomic analysis에 대해서 얘기했는데 오늘은 Pan-genome에 대해서 얘기를 해보겠습니다.
수신호 총정리
Example. $ 3-1. CheckM 다운 받는 코드 코드들 순서대로 | 우분투 터미널에서 사용한 코드 |
Example. (1) DNA의 기초 설명 | 생물정보학 관련 기본으로 알아두면 좋을 내용입니다. |
미생물은 사이즈도 작고 유전체 분석하기에 용이해서 유전체 분석을 많이 하고 있습니다. 1화에서도 말했듯이 말이죠. 그러면 비슷한 균주끼리 비교하는데 점점 더 좋은 컴퓨터와 더 좋은 분석 방법을 요구하게 됩니다. 이러한 부분이 나아가서 비교유전체학이 되었습니다.
1. Pan-genome 이란?
Pan-genome은 같은 clade를 비교하는 것입니다. 예를 들면, 어떤 활성을 가진 미생물 Streptomyces를 발견했습니다. 유전체 분석을 했죠. 그다음에 우리가 하는 것은 특정 활성을 가진 미생물과 비교하는 것과 같은 Streptomyces를 모아서 비교하는 것으로 나눌 수 있죠. 특정 활성을 가진 미생물과 비교하는 것은 비슷한 종일 경우에 더 쉽게 비교할 수 있는데, 이것 나중에 비교유전체 분석이 될 거 같고, 같은 Streptomyces 분석은 Pan-genome 분석을 시작으로 비교할 수 있습니다.
그렇다면, pan-genome은 무엇일까요? 가장 큰 콘셉트는 같은 종이면 공유하는 유전자가 있고 공유하지 않는 특정 유전자가 있는 것입니다. 공유하는 유전자는 core gene이고 공유하지 않는 유전자는 cloud gene이라고 합니다.
이 부분은 벤다이어그램으로 더 쉽게 시각화할 수 있는데요.
위 그림처럼 두 종일 경우 core gene이 저 정도라면 비교하려는 미생물이 많아질수록 core gene이 적어지겠죠? 그게 다음 그림입니다.
근데 이렇게 되어도, 미생물끼리 많이 유사하면 core gene이 많아집니다. (아래 그림)
그걸 이제 우리는 close genome이라고 하는데, close genome과 open genome으로 나뉘는데 분석하려고 하는 유전체의 개수가 아무리 많아져도 core gene의 개수가 많이 변하지 않으면 close genome이라고 할 수 있습니다.

(출처: 위키피디아 pan-genome)
위 그림의 c처럼 분석하려고 하는 유전체가 많아질수록 pan-genome의 유전자 개수가 계속 늘어나면 open genome, 아니면 closed genome입니다. 이걸 통해서 우리가 분석하고자 하는 유전체가 유전자를 많이 공유하고 있는지 알 수 있습니다.
그렇다면 왜 우리는 이걸 알아야 할까요? 바로 우리가 유전체 분석하려고 하는 대상이 특이한 미생물인지 단편적으로 확인할 수 있습니다. 확인된 활성과 관련된 유전자가 공유하는지 안 하는지 확인을 통해서 우리의 미생물의 가능성을 판가름 지을 수 있는 것이죠. 2005년 Streptococcus로 시작된 pan-genome은 이제는 인간까지 확장이 되었습니다. (Ref1 참고하면 더 재밌을 거예요).
Accessory genome (unique genes)은 새로운 기능을 제공하거나 보존된 기능에 변화를 주는데, 이는 균주가 환경에서 생존하거나 적응할 수 있는 능력을 증가시킵니다. 이러한 방식으로 균주 다양성이 생겨나고 생존을 보장하는 데 필요합니다.
그러면 이제 어떻게 분석하는지 알아봐야 할 차례입니다.
2. Roary
Pan-genome 분석 tools은 Roary, EDGAR, PGAP-X 등 다양한 프로그램이 알려져 있는데, 가장 쉽게 접근할 수 있는 ROARY, Get_homologus, PEPPAN에 대해서 간단힌 설명해보고자 합니다. Roary는 2015년에 보고되었는데, 분석 방법을 간단히 도식화하면 다음과 같습니다. (Ref2 : roary)
빨간색으로 표기한 부분을 조금 더 들여다보면, CD-HIT은 Alignment를 통해 NonReundacy dataset을 만들어주는 프로그램인데, 이는 주어진 input 데이터에 일정정도의 similarity를 기준으로 유사한 서열끼리 clustering을 수행한다고 합니다. All-against-all은 각 유전체 별로 1:1로 blast를 수행하는 것을 말합니다. MCL은 Markov cluster algorithm을 말한다고 합니다.
2. sudo cpanm -f Bio::Roary 3. roary -h (확인할 때)
conda activate STAR roary -v -r -p 144 *.gff query_pan_genome (-a union, -a intersection, -a complement, or -a gene_multifasta) *.gff python /home/star/Roary-master/roary_plot.py name.newick gene_presence_absence.csv query_pan_genome -a difference --input_set_one |
Roary의 경우 같은 species의 pan-genome 분석이 가능하고, 다른 species를 같이 분석할 경우 get_homologues나 PEPPAN이 더 좋다고 합니다. 그래도 Roary를 사용하는 이유는 빠르게 분석할 수 있다는 장점이 있습니다.
Roary를 분석하면 결과로 다음 파일들을 얻을 수 있습니다.
이중에 시각화 결과는 Rplots.pdf와 png 파일들입니다. 다음은 시각화된 결과입니다.
주로 논문에서 사용하는 데이터는 number of new genes과 number of unique genes의 그래프를 주로 사용합니다 (맨 위에서 맨 오른쪽 데이터)
3. GET_HOMOLOGUES
이제 GET_HOMOLOGUES에 대해서 정리해 보면 이 프로그램은 유명한 sequence-clustering algorithm을 사용하는데, OrthoMCL (OMCL), COGtriangles와 자제적으로 만든 bidirectional best hit (BDBH)를 사용한다고 한다. 논문에 보고한 도식화는 다음과 같습니다. 그중 빨간 박스로 표시한 부분이 sequence-clustering algorithm 부분입니다.

(출처 : Ref3)
Sequence-clustering 방법 중 하나인 OMCL은 진화론적인 입장에서 서열의 유사성을 근거로 종간 동일 기능 유전자를 그룹핑한 DB로 분석법이 ROARY에서 나온 All-against-all을 하고 난 뒤, 유사도에 따라 otholog와 paralog를 나누고, smiliarity matrix를 만들어 Markov clustering을 합니다. 이렇게 보면 ROARY에서 precluster를 하지 않으면 유사한 방식입니다. 그다음 방법은 BDBH는 두 개의 서로 다른 게놈에서 서로 다른 게놈 내에 다른 유전자보다 더 유사한 유전자 쌍을 식별하는데, orthology 관계를 추정하는 간단하고 널리 사용되는 방법이라고 합니다. COGtriangle은 서로 다른 종의 비슷한 단백질의 best match를 이용하여 tree lineage를 만드는 방법입니다. 이는 CD-HIT과 유사하지만, CD-HIT은 clustering에 집중하는 느낌이고, COGtriangle은 단백질 간의 거리에 집중한 느낌입니다. (궁금한 부분은 레퍼런스를 참고하면 더 좋을 거 같아요. Ref3 논문에 각 알고리즘 별로 레퍼런스가 있습니다)
$ 3-1. GET_HOMOLOGUES 실행 방법 및 설치방법
./get_homologues.pl -d msilia . -X (-X는 BLAST 대신 DIAMOND 사용)./ ./get_homologues.pl -d msilia -G , (COGS clustering) ./get_hoggetmologues.pl -d msilia -A -t 0 -M (OMCL clustering) ./compare_cluster.pl -o masilia_intersection -m -T -d msilia 파일위치/BDBH,파일위치/COG,파일위치/OMCL (벤다이어그램 만들어줌)
설치방법 : 2. 압축 풀고, 원하는 위치에 복붙, 그 폴더 위치에서 터미널을 연다 3. perl install.pl 4. 데이터 베이스 설치 질문에 yes 답한다
|
4. PEPPAN
GET-HOMOLOGUES의 단점은 분석하는데 시간이 오래 걸린다는 점인데, PEPPAN의 경우 속도가 빨라서 사용하기 더 용이합니다. (Ref4) PEPPAN 프로그램의 다른 점이자 빨리 분석할 수 있게 해주는 점은 representative gene을 cluster별로 만들어낸다는 점인데, 이 부분은 더 나아가서 pan-genome 분석할 때 대표하는 임의적 유전체 제작하는 부분에 대한 연구와도 유사합니다. Representative gene별로 묶인 cluster를 pairwise distances를 분석하고 tree를 제작하고 pseudogene을 분석합니다. PEPPAN도 GET-HOMOLOGUES와 마찬가지로 species가 달라도 분석할 수 있으며, 정확도에 이슈가 생기지 않습니다.
$ 4-1. PEPPAN 설치방법 및 실행 방법
conda activate pangenome - PEPPAN -p (data folder name)/(project name) -P (data folder name)/*.gff (data folder name)/*.gff
- PEPPAN_parser -g (data folder name)/(project name).PEPPAN.gff -s (data folder name)/PEPPAN_out -t -c -a 95
설치방법 :
1) conda activate (env 5) conda install dmmseqs2 6) conda install blast 7) conda install diamond 8) conda install rapidnj 9) conda install fasttree 10) command -v mmseqs blastn rapidnj diamond fasttree 11) pip3 install peppan 12) copy and paste from git-hub 13) go to PEPPAN folder 14) export PATH=$PATH:$HOME/PEPPAN/ |
PEPPAN결과는 다음과 같이 Roary와는 달리 시각화해주지는 않지만, core-gene을 자동으로 추출해서 파일로 만들어주고, 그래프는 csv 파일로 그래프를 그릴 수 있습니다. 각 라인별로 개수를 재서 그래프를 그리면 됩니다.
이러한 프로그램들 말고도 pan-genome에 대한 연구가 더 확장되고 깊어지면서, 다양한 알고리즘과 다양한 프로그램이 개발되고 있는데, 이 상황에서 우리가 해야 할 것은 pan-genome연구를 잘 지켜보면서 어떻게 분석하면 더 잘할 수 있을지를 보는 것이라 생각됩니다. Pan-genome은 우리가 분석한 유전체가 특이적으로 특정 활성을 가지고 있는지, 연구가치가 있는지 확인할 수 있는 간접적인 방법으로, 유전체가 많이 등록되고 있는 요즘 통합적으로 분석하는 하나의 연구 분야입니다.
미생물 유전체를 분석할 수 있는 다양한 프로그램을 사용하면서 실험해 보고 증명하는 것과 같이 분석을 진행한다면 시간 절약과 정확한 미생물 특성과 관련된 유전체 분석을 할 수 있게 될 겁니다. 감사합니다.
참고문헌
Ref1. Pangenome graphs and their applications in biodiversity genomics
Ref2. Roary: rapid large-scale prokaryote pan genome analysis
Ref3. GET_HOMOLOGUES, a versatile software package for scalable and robust microbial pangenome analysis
Ref4. Accurate reconstruction of bacterial pan- and core genomes with PEPPAN