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  }