log.Printf("%s starting", infile)
defer log.Printf("%s done", infile)
tseqs, err := cmd.tileFasta(tilelib, infile)
- variants[0] = tseqs.Variants()
+ var kept, dropped int
+ variants[0], kept, dropped = tseqs.Variants()
+ log.Printf("%s found %d unique tags plus %d repeats", infile, kept, dropped)
return err
}
infile2 := regexp.MustCompile(`\.1\.fasta(\.gz)?$`).ReplaceAllString(infile, `.2.fasta$1`)
log.Printf("%s starting", infile2)
defer log.Printf("%s done", infile2)
tseqs, err := cmd.tileFasta(tilelib, infile2)
- variants[1] = tseqs.Variants()
+ var kept, dropped int
+ variants[1], kept, dropped = tseqs.Variants()
+ log.Printf("%s found %d unique tags plus %d repeats", infile, kept, dropped)
return err
}
} else {
log.Printf("%s phase %d starting", infile, phase+1)
defer log.Printf("%s phase %d done", infile, phase+1)
tseqs, err := cmd.tileGVCF(tilelib, infile, phase)
- variants[phase] = tseqs.Variants()
+ var kept, dropped int
+ variants[phase], kept, dropped = tseqs.Variants()
+ log.Printf("%s phase %d found %d unique tags plus %d repeats", infile, phase+1, kept, dropped)
return err
}
}
type tileSeq map[string][]tileLibRef
-func (tseq tileSeq) Variants() []tileVariantID {
+func (tseq tileSeq) Variants() ([]tileVariantID, int, int) {
maxtag := 0
for _, refs := range tseq {
for _, ref := range refs {
}
}
vars := make([]tileVariantID, maxtag+1)
+ var kept, dropped int
for _, refs := range tseq {
for _, ref := range refs {
+ if vars[int(ref.tag)] != 0 {
+ dropped++
+ } else {
+ kept++
+ }
vars[int(ref.tag)] = ref.variant
}
}
- return vars
+ return vars, kept, dropped
}
type tileLibrary struct {