"net/http"
_ "net/http/pprof"
"os"
+ "regexp"
"runtime"
"sort"
"strings"
"git.arvados.org/arvados.git/sdk/go/arvados"
"github.com/arvados/lightning/hgvs"
"github.com/kshedden/gonpy"
- "github.com/sirupsen/logrus"
log "github.com/sirupsen/logrus"
"golang.org/x/crypto/blake2b"
)
return 1
}
+ matchGenome, err := regexp.Compile(cmd.filter.MatchGenome)
+ if err != nil {
+ err = fmt.Errorf("-match-genome: invalid regexp: %q", cmd.filter.MatchGenome)
+ return 1
+ }
+
taglen := -1
DecodeLibrary(in0, strings.HasSuffix(infiles[0], ".gz"), func(ent *LibraryEntry) error {
if len(ent.TagSet) > 0 {
}
}
for _, cg := range ent.CompactGenomes {
- cgnames = append(cgnames, cg.Name)
+ if matchGenome.MatchString(cg.Name) {
+ cgnames = append(cgnames, cg.Name)
+ }
}
for _, tv := range ent.TileVariants {
if tv.Ref {
err = fmt.Errorf("tagset not found")
return 1
}
+ if len(cgnames) == 0 {
+ err = fmt.Errorf("no genomes found matching regexp %q", cmd.filter.MatchGenome)
+ return 1
+ }
sort.Strings(cgnames)
{
seq[tv.Tag] = variants
}
for _, cg := range ent.CompactGenomes {
- cgs[cg.Name] = cg
+ if matchGenome.MatchString(cg.Name) {
+ cgs[cg.Name] = cg
+ }
}
return nil
})
diffs, _ := hgvs.Diff(reftilestr, strings.ToUpper(string(tv.Sequence)), 0)
for _, diff := range diffs {
diff.Position += rt.pos
- fmt.Fprintf(annow, "%d,%d,%d,%s:g.%s\n", tag, outcol, remap[v], rt.seqname, diff.String())
+ fmt.Fprintf(annow, "%d,%d,%d,%s:g.%s,%s,%d,%s,%s\n", tag, outcol, remap[v], rt.seqname, diff.String(), rt.seqname, diff.Position, diff.Ref, diff.New)
}
}
}
if err != nil {
return err
}
- log.WithFields(logrus.Fields{
+ log.WithFields(log.Fields{
"filename": fnm,
"rows": rows,
"cols": cols,