Adds a reader for NGS filter files and change some API for the apat library

This commit is contained in:
2022-01-18 13:09:32 +01:00
parent 6571296bb2
commit 4551df08b1
13 changed files with 301 additions and 96 deletions

View File

@ -0,0 +1,34 @@
package main
import (
"os"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obipcr"
)
func main() {
// f, err := os.Create("cpu.pprof")
// if err != nil {
// log.Fatal(err)
// }
// pprof.StartCPUProfile(f)
// defer pprof.StopCPUProfile()
// ftrace, err := os.Create("cpu.trace")
// if err != nil {
// log.Fatal(err)
// }
// trace.Start(ftrace)
// defer trace.Stop()
optionParser := obioptions.GenerateOptionParser(obipcr.OptionSet)
_, args, _ := optionParser(os.Args)
sequences, _ := obiconvert.ReadBioSequencesBatch(args...)
amplicons, _ := obipcr.PCR(sequences)
obiconvert.WriteBioSequencesBatch(amplicons, true)
}

View File

@ -1,7 +1,9 @@
package main
import (
"log"
"os"
"runtime/trace"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert"
@ -10,6 +12,7 @@ import (
func main() {
// go tool pprof -http=":8000" ./obipairing ./cpu.pprof
// f, err := os.Create("cpu.pprof")
// if err != nil {
// log.Fatal(err)
@ -17,12 +20,13 @@ func main() {
// pprof.StartCPUProfile(f)
// defer pprof.StopCPUProfile()
// ftrace, err := os.Create("cpu.trace")
// if err != nil {
// log.Fatal(err)
// }
// trace.Start(ftrace)
// defer trace.Stop()
// go tool trace cpu.trace
ftrace, err := os.Create("cpu.trace")
if err != nil {
log.Fatal(err)
}
trace.Start(ftrace)
defer trace.Stop()
optionParser := obioptions.GenerateOptionParser(obipcr.OptionSet)

View File

@ -6,7 +6,8 @@ import (
"os"
"runtime/trace"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obialign"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiapat"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiformats"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq"
)
@ -41,27 +42,17 @@ func main() {
// }
A := []byte("ccgcctccttagaacaggctcctctagaaaaccatagtgggatatctaaagaaggcggagatagaaagagcggttcagcaggaatgccgagatggacggcgtgtgacg")
B := []byte("cgccaccaccgagatctacactctttccctacacgacgctcttccgatctccgcctccttagaacaggctcctctagaaaagcatagtggggtatctaaaggaggcgg")
// B := []byte("cgccaccaccgagatctacactctttccctacacgacgctcttccgatctccgcctccttagaacaggctcctctagaaaagcatagtggggtatctaaaggaggcgg")
sA := obiseq.MakeBioSequence("A", A, "")
sB := obiseq.MakeBioSequence("B", B, "")
// sB := obiseq.MakeBioSequence("B", B, "")
fmt.Println(string(sA.Sequence()))
fmt.Println(sA.Qualities())
fmt.Println(string(sB.Sequence()))
fmt.Println(sB.Qualities())
pat, _ := obiapat.MakeApatPattern("TCCTTCCAACAGGCTCCTC", 3)
as, _ := obiapat.MakeApatSequence(sA, false)
fmt.Println(pat.FindAllIndex(as))
score, path := obialign.PELeftAlign(sA, sB, 2, obialign.NilPEAlignArena)
fmt.Printf("Score : %d Path : %v\n", score, path)
score, path = obialign.PERightAlign(sA, sB, 2, obialign.NilPEAlignArena)
fmt.Printf("Score : %d Path : %v\n", score, path)
file, _ := os.Open("sample/wolf_diet_ngsfilter.txt")
xxx, _ := obiformats.ReadNGSFilter(file)
fmt.Println(string(sA.Sequence()))
sA.ReverseComplement(true)
fmt.Println(string(sA.Sequence()))
fmt.Println(string(sA.Id()))
sA.Reset()
fmt.Println(sA.Length())
fmt.Println(sA.String())
fmt.Println(xxx)
}