github.com/biogo/biogo@v1.0.4/seq/sequtils/example_test.go (about) 1 // Copyright ©2011-2012 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 sequtils 6 7 import ( 8 "fmt" 9 10 "github.com/biogo/biogo/feat" 11 "github.com/biogo/biogo/seq" 12 ) 13 14 func ExampleTruncate_a() { 15 s := stringToConformRangeOffSlice("ACGCTGACTTGGTGCACGT") 16 s.conf = feat.Linear 17 fmt.Printf("%s\n", s) 18 if err := Truncate(s, s, 5, 12); err == nil { 19 fmt.Printf("%s\n", s) 20 } 21 // Output: 22 // ACGCTGACTTGGTGCACGT 23 // GACTTGG 24 } 25 26 func ExampleTruncate_b() { 27 var ( 28 src = stringToConformRangeOffSlice("ACGCTGACTTGGTGCACGT") 29 dst = &conformRangeOffSlice{} 30 ) 31 src.conf = feat.Circular 32 fmt.Printf("%s Conformation = %v\n", src, src.Conformation()) 33 if err := Truncate(dst, src, 12, 5); err == nil { 34 fmt.Printf("%s\n", dst) 35 } else { 36 fmt.Println("Error:", err) 37 } 38 39 src.conf = feat.Linear 40 fmt.Printf("%s Conformation = %v\n", src, src.Conformation()) 41 if err := Truncate(dst, src, 12, 5); err == nil { 42 fmt.Printf("%s\n", dst) 43 } else { 44 fmt.Println("Error:", err) 45 } 46 // Output: 47 // ACGCTGACTTGGTGCACGT Conformation = circular 48 // TGCACGTACGCT 49 // ACGCTGACTTGGTGCACGT Conformation = linear 50 // Error: sequtils: start position greater than end position for linear sequence 51 } 52 53 func ExampleJoin() { 54 var s1, s2 *offSlice 55 56 s1 = stringToOffSlice("agctgtgctga") 57 s2 = stringToOffSlice("CGTGCAGTCATGAGTGA") 58 fmt.Printf("%s %s\n", s1, s2) 59 Join(s1, s2, seq.Start) 60 fmt.Printf("%s\n", s1) 61 62 s1 = stringToOffSlice("agctgtgctga") 63 s2 = stringToOffSlice("CGTGCAGTCATGAGTGA") 64 Join(s1, s2, seq.End) 65 fmt.Printf("%s\n", s1) 66 // Output: 67 // agctgtgctga 0 CGTGCAGTCATGAGTGA 0 68 // CGTGCAGTCATGAGTGAagctgtgctga -17 69 // agctgtgctgaCGTGCAGTCATGAGTGA 0 70 } 71 72 func ExampleStitch() { 73 s := stringToConformRangeOffSlice("aAGTATAAgtcagtgcagtgtctggcagTGCTCGTGCgtagtgaagtagGGTTAGTTTa") 74 f := fs{ 75 fe{s: 1, e: 8}, 76 fe{s: 28, e: 37}, 77 fe{s: 49, e: len(s.slice) - 1}, 78 } 79 fmt.Printf("%s\n", s) 80 if err := Stitch(s, s, f); err == nil { 81 fmt.Printf("%s\n", s) 82 } 83 // Output: 84 // aAGTATAAgtcagtgcagtgtctggcagTGCTCGTGCgtagtgaagtagGGTTAGTTTa 85 // AGTATAATGCTCGTGCGGTTAGTTT 86 }