User Tools

Site Tools


whole-genome_alignment

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
whole-genome_alignment [2016/02/16 17:53] – [샘플 서열의 다운로드] hyjeongwhole-genome_alignment [2021/03/17 13:09] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Whole-genome alignment (MUMmer) ====== ====== Whole-genome alignment (MUMmer) ======
-[[http://mummer.sourceforge.net/|MUMmer]]는 suffix tree algorithm을 이용하여 genome sequence 수준의 alignment를 생성하는 도구이다. 발표된지는 매우 오래되었으나 매우 완성도가 높아서 여전히 많은 프로그램에서 활용되고 있다. MUMmer는 alignment를 시각화하는 도구는 탑재하고 있지 않으므로 [[http://www.gnuplot.info/|gnuplot]]에 의존한다. 핵심 프로그램인 mummer는 짧은 exact match(20 bp)의 단위를 빠르게 탐색하는 역할을 하며, 이들이 어떤 기준을 충족하여 모여있으면 이를 확장해 나가는 alignment generator script(예: nucmer)와 기타 utility가 패키지에 포함된다.+[[http://mummer.sourceforge.net/|MUMmer]]는 suffix tree algorithm을 이용하여 genome sequence 수준의 alignment를 생성하는 도구이다. 발표된지는 매우 오래되었으나 매우 완성도가 높아서 여전히 많은 프로그램에서 활용되고 있다. 기본 컨셉트는 20 nt의 짧은 exact match(-l 옵션으로 조정 가능)을 reference와 query genome 모두에서 찾아내는 것이다. MUMmer는 alignment를 시각화하는 도구는 탑재하고 있지 않으므로 [[http://www.gnuplot.info/|gnuplot]]에 의존한다. 핵심 프로그램인 mummer는 짧은 exact match(20 bp)의 단위를 빠르게 탐색하는 역할을 하며, 이들이 어떤 기준을 충족하여 모여있으면 이를 확장해 나가는 alignment generator script(예: nucmer)와 기타 utility가 패키지에 포함된다. 
 + 
 +20 bp의 match는 genome에 반복하여 나타날 수 있다. 이론상으로는 하나의 20 bp는 4^20 = 1.1x10^12, 즉 약 1.1 테라염기쌍마다 한번씩 나타날 것이겠지만 말이다. 반복하여 나타나는 match의 처리는 다음의 옵션으로 조정한다. 
 + 
 +  \-mum           compute maximal matches that are unique in both sequences 
 +  -mumcand       same as -mumreference 
 +  -mumreference  compute maximal matches that are unique in the reference- 
 +                 sequence but not necessarily in the query-sequence (default) 
 +  -maxmatch      compute all maximal matches regardless of their uniqueness 
 ===== MUMmer로 할 수 있는 작업 ===== ===== MUMmer로 할 수 있는 작업 =====
   - Aligning two finished sequences (highly similar with/without rearrangements, fairly similar/dissimilar sequences)   - Aligning two finished sequences (highly similar with/without rearrangements, fairly similar/dissimilar sequences)
Line 9: Line 18:
 부속 프로그램이 매우 많으므로 PATH 환경변수에 설정해 둔다. 부속 프로그램이 매우 많으므로 PATH 환경변수에 설정해 둔다.
   $ export PATH=$PATH:/usr/local/Bio/MUMmer3.23   $ export PATH=$PATH:/usr/local/Bio/MUMmer3.23
-  +GUI 프로그램(gnuplot과 evince)를 실행해야 하므로 윈도우측에서 Xming을 실행해 둔다.  
 ===== 샘플 서열의 다운로드 ===== ===== 샘플 서열의 다운로드 =====
 +(주의) 2015년 연말을 지나면서 NCBI의 genome sequence URL이 바뀌었음. 교재의 주소는 이를 미처 반영하지 못하였으므로 이것을 따르기 바람.
   $ wget ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF_000237325.1_ASM23732v1/GCF_000237325.1_ASM23732v1_genomic.gbff.gz   $ wget ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF_000237325.1_ASM23732v1/GCF_000237325.1_ASM23732v1_genomic.gbff.gz
   $ gzip -d GCF_000237325.1_ASM23732v1_genomic.gbff.gz   $ gzip -d GCF_000237325.1_ASM23732v1_genomic.gbff.gz
Line 26: Line 36:
 ===== Comparison of two finished genome sequences ===== ===== Comparison of two finished genome sequences =====
 ==== [1] MUMmer 사용 ==== ==== [1] MUMmer 사용 ====
 +  $ mummer -mum -b -c E681.fa M1.fa > mummer.mums
 +  $ mummerplot -p mum mummer.mums (gnuplot 화면이 열림)
 +  $ mummerplot --postscript -p test mummer.mums (--png 가능)
 +  $ evince test.ps (또는 $ eog test.png)
 +  $ gv test.ps (우분투에서 evince 실행에 에러 발생) 또는
 +  $ gpicview test.png (우분투에서 eog 실행에 에러 발생)
 +  $ mummerplot -x "[0,100000]" -y "[0,100000]" mummer.mums
 +  
 ==== [2] Nucmer 사용 ==== ==== [2] Nucmer 사용 ====
 +MUMmer를 가장 편하게 사용하는 것은 alignment generator인 nucmer Perl script를 쓰는 것이다. 일정 기준에 맞게 인접한 maximal exact match는 하나로 병합할 수 있는데, 이는 -g(maxgap; default 90)과 -l(min length; default 20)으로 조정 가능하다. show-coords는 alignment block의 위치를 표시한다. -c는 결과에 percent coverage 포함, -l은 결과에 서열 길이 포함, -r은 reference coordinate에 맞춤을 의미한다.
 +  $ nucmer -p nucmer_test E681.fa M1.fa
 +  $ mummerplot nucmer_test.delta
 +  $ mummerplot --postscript -p nucmer_test nucmer_test.delta
 +  $ evince nucmer_test.ps
 +  $ show-coords -r -c -l nucmer_test.delta
 +  
 ===== Finished 서열에 draft(as queries) 정렬하기 ===== ===== Finished 서열에 draft(as queries) 정렬하기 =====
 ==== [1] Draft sequence 재정렬하지 않기 ==== ==== [1] Draft sequence 재정렬하지 않기 ====
 +  $ nucmer -p test1 DC3000.fa ATCC11528.fa
 +  $ mummerplot --postscript -p test1 test1.delta
 +  $ evince test1.ps
 +
 ==== [2] Draft sequence를 reference에 맞추어 재정렬하기 ==== ==== [2] Draft sequence를 reference에 맞추어 재정렬하기 ====
 +  $ /usr/local/Bio/bin/run-mummer4.sh test2 DC3000.fa ATCC11528.fa (reference 서열은 반드시 하나여야 함)
 +  $ evince test2.ps
  
 +[[run_mummer4.sh]]는 내가 만든 스크립트이다.
  
  
- +===== Mummer가 전부는 아니다! ===== 
- +여러 genome의 동시 비교라면 progressMauve도 있다. 결과물인 xmfa의 포맷에 대해서도 이해가 필요하다.
  
      
Line 41: Line 72:
 MUMmer의 input과 output. MUMmer의 input과 output.
 {{ :mummer.png?600 |}} {{ :mummer.png?600 |}}
 +
 +[[https://github.com/widdowquinn/Teaching/blob/master/Comparative_Genomics_and_Visualisation/Part_1/whole_genome_alignment/whole_genome_alignments_A.md|Whole genome alignment (teaching material)]]
 +
  
whole-genome_alignment.1455612828.txt.gz · Last modified: (external edit)