1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
package main
import (
"fmt"
"log"
"os"
"strconv"
"github.com/brentp/bix"
"github.com/brentp/irelate/interfaces"
)
func check(e error) {
if e != nil {
log.Fatal(e)
}
}
func min(a, b int) int {
if a < b {
return a
}
return b
}
type loc struct {
chrom string
start int
end int
}
func (s loc) Chrom() string {
return s.chrom
}
func (s loc) Start() uint32 {
return uint32(s.start)
}
func (s loc) End() uint32 {
return uint32(s.end)
}
func main() {
f := os.Args[1]
tbx, err := bix.New(f)
check(err)
chrom := os.Args[2]
s, err := strconv.Atoi(os.Args[3])
check(err)
e, err := strconv.Atoi(os.Args[4])
check(err)
vals, _ := tbx.Query(loc{chrom, s, e})
i := 0
for {
v, err := vals.Next()
if err != nil {
break
}
fmt.Println(v.(interfaces.IVariant).String()[:40])
i++
}
tbx.Close()
}
|