projects
/
lightning.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
19995: Skip GLM on variants below frequency threshold.
[lightning.git]
/
stats.go
diff --git
a/stats.go
b/stats.go
index a02fef701d6cf1dc671f2699ac46519f3ed0b15a..2f9bd4192c9ea3fc7f3a29cf10db29ec2cdc1bc8 100644
(file)
--- a/
stats.go
+++ b/
stats.go
@@
-1,8
+1,11
@@
-package main
+// Copyright (C) The Lightning Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+package lightning
import (
"bufio"
import (
"bufio"
- "encoding/gob"
"encoding/json"
"errors"
"flag"
"encoding/json"
"errors"
"flag"
@@
-12,16
+15,17
@@
import (
"net/http"
_ "net/http/pprof"
"os"
"net/http"
_ "net/http/pprof"
"os"
+ "strings"
"git.arvados.org/arvados.git/sdk/go/arvados"
log "github.com/sirupsen/logrus"
)
"git.arvados.org/arvados.git/sdk/go/arvados"
log "github.com/sirupsen/logrus"
)
-type stats struct {
+type stats
cmd
struct {
debugUnplaced bool
}
debugUnplaced bool
}
-func (cmd *stats) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
+func (cmd *stats
cmd
) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
var err error
defer func() {
if err != nil {
var err error
defer func() {
if err != nil {
@@
-43,6
+47,9
@@
func (cmd *stats) RunCommand(prog string, args []string, stdin io.Reader, stdout
return 0
} else if err != nil {
return 2
return 0
} else if err != nil {
return 2
+ } else if flags.NArg() > 0 {
+ err = fmt.Errorf("errant command line arguments after parsed flags: %v", flags.Args())
+ return 2
}
if *pprof != "" {
}
if *pprof != "" {
@@
-101,7
+108,7
@@
func (cmd *stats) RunCommand(prog string, args []string, stdin io.Reader, stdout
}
bufw := bufio.NewWriter(output)
}
bufw := bufio.NewWriter(output)
- err = cmd.doStats(input, bufw)
+ err = cmd.doStats(input,
strings.HasSuffix(*inputFilename, ".gz"),
bufw)
if err != nil {
return 1
}
if err != nil {
return 1
}
@@
-116,7
+123,7
@@
func (cmd *stats) RunCommand(prog string, args []string, stdin io.Reader, stdout
return 0
}
return 0
}
-func (cmd *stats
) doStats(input io.Reader
, output io.Writer) error {
+func (cmd *stats
cmd) doStats(input io.Reader, gz bool
, output io.Writer) error {
var ret struct {
Genomes int
CalledBases []int64
var ret struct {
Genomes int
CalledBases []int64
@@
-131,15
+138,7
@@
func (cmd *stats) doStats(input io.Reader, output io.Writer) error {
var tagSet [][]byte
var tagPlacements []int
tileVariantCalls := map[tileLibRef]int{}
var tagSet [][]byte
var tagPlacements []int
tileVariantCalls := map[tileLibRef]int{}
- dec := gob.NewDecoder(bufio.NewReaderSize(input, 1<<26))
- for {
- var ent LibraryEntry
- err := dec.Decode(&ent)
- if err == io.EOF {
- break
- } else if err != nil {
- return fmt.Errorf("gob decode: %w", err)
- }
+ err := DecodeLibrary(input, gz, func(ent *LibraryEntry) error {
ret.Genomes += len(ent.CompactGenomes)
ret.TileVariants += len(ent.TileVariants)
if len(ent.TagSet) > 0 {
ret.Genomes += len(ent.CompactGenomes)
ret.TileVariants += len(ent.TileVariants)
if len(ent.TagSet) > 0 {
@@
-186,6
+185,10
@@
func (cmd *stats) doStats(input io.Reader, output io.Writer) error {
}
ret.CalledBases = append(ret.CalledBases, calledBases)
}
}
ret.CalledBases = append(ret.CalledBases, calledBases)
}
+ return nil
+ })
+ if err != nil {
+ return err
}
for id, p := range tagPlacements {
for len(ret.TagsPlacedNTimes) <= p {
}
for id, p := range tagPlacements {
for len(ret.TagsPlacedNTimes) <= p {