github.com/biogo/biogo@v1.0.4/align/nw_example_test.go (about) 1 // Copyright ©2011-2013 The bíogo Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package align 6 7 import ( 8 "github.com/biogo/biogo/alphabet" 9 "github.com/biogo/biogo/seq/linear" 10 11 "fmt" 12 ) 13 14 func ExampleNW_Align() { 15 nwsa := &linear.Seq{Seq: alphabet.BytesToLetters([]byte("AGACTAGTTA"))} 16 nwsa.Alpha = alphabet.DNAgapped 17 nwsb := &linear.Seq{Seq: alphabet.BytesToLetters([]byte("GACAGACG"))} 18 nwsb.Alpha = alphabet.DNAgapped 19 20 // Query letter 21 // - A C G T 22 // - 0 -5 -5 -5 -5 23 // A -5 10 -3 -1 -4 24 // C -5 -3 9 -5 0 25 // G -5 -1 -5 7 -3 26 // T -5 -4 0 -3 8 27 needle := NW{ 28 {0, -5, -5, -5, -5}, 29 {-5, 10, -3, -1, -4}, 30 {-5, -3, 9, -5, 0}, 31 {-5, -1, -5, 7, -3}, 32 {-5, -4, 0, -3, 8}, 33 } 34 35 aln, err := needle.Align(nwsa, nwsb) 36 if err == nil { 37 fmt.Printf("%s\n", aln) 38 fa := Format(nwsa, nwsb, aln, '-') 39 fmt.Printf("%s\n%s\n", fa[0], fa[1]) 40 } 41 // Output: 42 //[[0,1)/-=-5 [1,4)/[0,3)=26 [4,5)/-=-5 [5,10)/[3,8)=12] 43 // AGACTAGTTA 44 // -GAC-AGACG 45 } 46 47 func ExampleNWAffine_Align() { 48 nwsa := &linear.Seq{Seq: alphabet.BytesToLetters([]byte("ATAGGAAG"))} 49 nwsa.Alpha = alphabet.DNAgapped 50 nwsb := &linear.Seq{Seq: alphabet.BytesToLetters([]byte("ATTGGCAATG"))} 51 nwsb.Alpha = alphabet.DNAgapped 52 53 // Query letter 54 // - A C G T 55 // - 0 -1 -1 -1 -1 56 // A -1 1 -1 -1 -1 57 // C -1 -1 1 -1 -1 58 // G -1 -1 -1 1 -1 59 // T -1 -1 -1 -1 1 60 // 61 // Gap open: -5 62 needle := NWAffine{ 63 Matrix: Linear{ 64 {0, -1, -1, -1, -1}, 65 {-1, 1, -1, -1, -1}, 66 {-1, -1, 1, -1, -1}, 67 {-1, -1, -1, 1, -1}, 68 {-1, -1, -1, -1, 1}, 69 }, 70 GapOpen: -5, 71 } 72 73 aln, err := needle.Align(nwsa, nwsb) 74 if err == nil { 75 fmt.Printf("%s\n", aln) 76 fa := Format(nwsa, nwsb, aln, '-') 77 fmt.Printf("%s\n%s\n", fa[0], fa[1]) 78 } 79 // Output: 80 // [[0,7)/[0,7)=3 -/[7,9)=-7 [7,8)/[9,10)=1] 81 // ATAGGAA--G 82 // ATTGGCAATG 83 }