First commit

This commit is contained in:
2022-01-13 23:27:39 +01:00
parent dab6549cad
commit f53bf1b804
93 changed files with 11042 additions and 0 deletions

View File

@ -0,0 +1,18 @@
package main
import (
"os"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obitools/obiconvert"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obioptions"
)
func main() {
option_parser := obioptions.GenerateOptionParser(obiconvert.OptionSet)
_, args, _ := option_parser(os.Args)
fs, _ := obiconvert.ReadBioSequences(args...)
obiconvert.WriteBioSequences(fs)
}

View File

@ -0,0 +1,65 @@
package main
import (
"fmt"
"log"
"os"
"runtime/trace"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obitools/obiconvert"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obitools/obicount"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obioptions"
)
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()
option_parser := obioptions.GenerateOptionParser(
obiconvert.InputOptionSet,
obicount.OptionSet,
)
_, args, _ := option_parser(os.Args)
fs, _ := obiconvert.ReadBioSequences(args...)
nread := 0
nvariant := 0
nsymbol := 0
for fs.Next() {
s := fs.Get()
if s.IsNil() {
log.Panicln("Read sequence is nil")
}
nread += s.Count()
nvariant++
nsymbol += s.Length()
}
if obicount.IsPrintingVariantCount() {
fmt.Printf(" %d", nvariant)
}
if obicount.IsPrintingReadCount() {
fmt.Printf(" %d", nread)
}
if obicount.IsPrintingSymbolCount() {
fmt.Printf(" %d", nsymbol)
}
fmt.Printf("\n")
}

View File

@ -0,0 +1,68 @@
package main
import (
"fmt"
"os"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obioptions"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obitools/obifind"
)
func main() {
option_parser := obioptions.GenerateOptionParser(obifind.OptionSet)
_, args, _ := option_parser(os.Args)
//prof, _ := os.Create("obifind.prof")
//pprof.StartCPUProfile(prof)
restrictions, err := obifind.ITaxonRestrictions()
if err != nil {
fmt.Printf("%+v", err)
}
switch {
case obifind.RequestsPathForTaxid() >= 0:
taxonomy, err := obifind.LoadSelectedTaxonomy()
if err != nil {
fmt.Printf("%+v", err)
}
taxon, err := taxonomy.Taxon(obifind.RequestsPathForTaxid())
if err != nil {
fmt.Printf("%+v", err)
}
s, err := taxon.Path()
if err != nil {
fmt.Printf("%+v", err)
}
obifind.TaxonWriter(s.Iterator(),
fmt.Sprintf("path:%d", taxon.Taxid()))
case len(args) == 0:
taxonomy, err := obifind.LoadSelectedTaxonomy()
if err != nil {
fmt.Printf("%+v", err)
}
obifind.TaxonWriter(restrictions(taxonomy.Iterator()), "")
default:
matcher, err := obifind.ITaxonNameMatcher()
if err != nil {
fmt.Printf("%+v", err)
}
for _, pattern := range args {
s := restrictions(matcher(pattern))
obifind.TaxonWriter(s, pattern)
}
}
//pprof.StopCPUProfile()
}

View File

@ -0,0 +1,38 @@
package main
import (
"log"
"os"
"runtime/pprof"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obiformats"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obioptions"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obitools/obipairing"
)
func main() {
// go tool pprof -http=":8000" ./obipairing ./cpu.pprof
f, err := os.Create("cpu.pprof")
if err != nil {
log.Fatal(err)
}
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// go tool trace cpu.trace
// ftrace, err := os.Create("cpu.trace")
// if err != nil {
// log.Fatal(err)
// }
// trace.Start(ftrace)
// defer trace.Stop()
option_parser := obioptions.GenerateOptionParser(obipairing.OptionSet)
option_parser(os.Args)
pairs, _ := obipairing.IBatchPairedSequence()
paired := obipairing.IAssemblePESequencesBatch(pairs, 2, 50, 20, true)
written, _ := obiformats.WriteFastqBatchToStdout(paired)
written.Destroy()
}

View File

@ -0,0 +1,34 @@
package main
import (
"os"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obioptions"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obitools/obiconvert"
"git.metabarcoding.org/lecasofts/go/oa2/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()
option_parser := obioptions.GenerateOptionParser(obipcr.OptionSet)
_, args, _ := option_parser(os.Args)
sequences, _ := obiconvert.ReadBioSequencesBatch(args...)
amplicons, _ := obipcr.PCR(sequences)
obiconvert.WriteBioSequences(amplicons)
}

62
cmd/test/main.go Normal file
View File

@ -0,0 +1,62 @@
package main
import (
"fmt"
"log"
"os"
"runtime/trace"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obialign"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obiseq"
)
func main() {
ftrace, err := os.Create("cpu.trace")
if err != nil {
log.Fatal(err)
}
trace.Start(ftrace)
defer trace.Stop()
// option_parser := obioptions.GenerateOptionParser(
// obiconvert.InputOptionSet,
// )
//_, args, _ := option_parser(os.Args)
// fs, _ := obiconvert.ReadBioSequences(args...)
// buffer := make([]byte, 0)
// fs.Next()
// s := fs.Get()
// index := obikmer.Index4mer(s, nil, nil)
// for fs.Next() {
// s := fs.Get()
// if s.IsNil() {
// log.Panicln("Read sequence is nil")
// }
// maxshift, maxcount := obikmer.FastShiftFourMer(index, s, buffer)
// fmt.Printf("Shift : %d Score : %d\n", maxshift, maxcount)
// }
A := []byte("ccgcctccttagaacaggctcctctagaaaaccatagtgggatatctaaagaaggcggagatagaaagagcggttcagcaggaatgccgagatggacggcgtgtgacg")
B := []byte("cgccaccaccgagatctacactctttccctacacgacgctcttccgatctccgcctccttagaacaggctcctctagaaaagcatagtggggtatctaaaggaggcgg")
sA := obiseq.MakeBioSequence("A", A, "")
sB := obiseq.MakeBioSequence("B", B, "")
fmt.Println(string(sA.Sequence()))
fmt.Println(sA.Qualities())
fmt.Println(string(sB.Sequence()))
fmt.Println(sB.Qualities())
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)
fmt.Println(string(sA.Sequence()))
sA.ReverseComplement(true)
fmt.Println(string(sA.Sequence()))
fmt.Println(string(sA.Id()))
}

58
cmd/test/test_test.go Normal file
View File

@ -0,0 +1,58 @@
package main_test
import (
"fmt"
"testing"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obiannot"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obiformats"
"git.metabarcoding.org/lecasofts/go/oa2/pkg/obiseq"
)
func TestParseOBIFasta(t *testing.T) {
f := "/Users/coissac/travail/Adeline/Soumission_data/Zonation/euka03/euka03.ecotag.fasta.gz"
var nseq, nread int
nseq = 0
nread = 0
fs := obiformats.ReaderFromIlluminaFile(f)
fmt.Println(f)
for i := range obiannot.ExtractHeaderChannel(fs, fastseq.ParseOBIHeader) {
for _, s := range i {
nseq++
nread += s.Count()
}
}
fmt.Println(nseq, nread)
}
func ExtractHeaderChannel(fs fastseq.IFastSeq, sequence func(sequence obiseq.Sequence)) {
panic("unimplemented")
}
// Performance test of an ADEXP message parsing
func BenchmarkParseOBIFasta(t *testing.B) {
f := "/Users/coissac/travail/Adeline/Soumission_data/Zonation/euka03/euka03.ecotag.fasta.gz"
var nseq, nread int
nseq = 0
nread = 0
fs := fastseq.ReaderFromIlluminaFile(f)
fmt.Println(f)
for i := range obiannot.ExtractHeaderChannel(fs, fastseq.ParseOBIHeader) {
for _, s := range i {
nseq++
nread += s.Count()
}
}
fmt.Println(nseq, nread)
}