outputPerChrom bool
compress bool
maxTileSize int
+ filter filter
}
func (cmd *exporter) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
flags.BoolVar(&cmd.compress, "z", false, "write gzip-compressed output files")
labelsFilename := flags.String("output-labels", "", "also output genome labels csv `file`")
flags.IntVar(&cmd.maxTileSize, "max-tile-size", 50000, "don't try to make annotations for tiles bigger than given `size`")
+ cmd.filter.Flags(flags)
err = flags.Parse(args)
if err == flag.ErrHelp {
err = nil
"-output-dir", "/mnt/output",
"-z=" + fmt.Sprintf("%v", cmd.compress),
}
+ runner.Args = append(runner.Args, cmd.filter.Args()...)
var output string
output, err = runner.Run()
if err != nil {
return 1
}
+ log.Infof("filtering: %+v", cmd.filter)
+ cmd.filter.Apply(tilelib)
+
names := cgnames(tilelib)
for _, name := range names {
cgs = append(cgs, CompactGenome{Name: name, Variants: tilelib.compactGenomes[name]})
chr2 471 . GG AA . . AC=1
`))
+ c.Logf("export hgvs-numpy")
outdir := c.MkDir()
exited = (&exporter{}).RunCommand("export", []string{
"-local=true",
"-output-labels", "/mnt/output/labels.csv",
"-regions", *regionsFilename,
"-expand-regions", fmt.Sprintf("%d", *expandRegions),
- "-max-variants", fmt.Sprintf("%d", cmd.filter.MaxVariants),
- "-min-coverage", fmt.Sprintf("%f", cmd.filter.MinCoverage),
- "-max-tag", fmt.Sprintf("%d", cmd.filter.MaxTag),
"-chunks", fmt.Sprintf("%d", *chunks),
}
+ runner.Args = append(runner.Args, cmd.filter.Args()...)
var output string
output, err = runner.Run()
if err != nil {
// f.MinCoverage.
mincov := int(2*f.MinCoverage*float64(len(tilelib.compactGenomes)) + 1)
TAG:
- for tag := 0; tag < len(tilelib.variant) && tag < f.MaxTag; tag++ {
+ for tag := 0; tag < len(tilelib.variant) && (tag < f.MaxTag || f.MaxTag < 0); tag++ {
tagcov := 0
for _, cg := range tilelib.compactGenomes {
+ if len(cg) < tag*2+2 {
+ continue
+ }
if cg[tag*2] > 0 {
tagcov++
}
}
}
for _, cg := range tilelib.compactGenomes {
- cg[tag*2] = 0
- cg[tag*2+1] = 0
+ if len(cg) > tag*2 {
+ cg[tag*2] = 0
+ cg[tag*2+1] = 0
+ }
}
}