Gibbons-Lab / medi

Metagenomic Estimation of Dietary Intake and Content.
Apache License 2.0
8 stars 4 forks source link

architeuthis_filter command fails #6

Closed cschu closed 6 months ago

cschu commented 6 months ago

This is using the architeuthis 0.1.2 release as downloaded from
https://github.com/cdiener/architeuthis/releases/download/0.1.2/architeuthis_Linux_x86_64.tar.gz

Error: unknown flag: --data-dir
Usage:
  architeuthis mapping [command]

Available Commands:
  kmers       Summarize k-mer assignments for classified taxa.
  summary     Summarize k-mer assignments for classified taxa on taxonomic ranks.

Flags:
  -h, --help   help for mapping

Global Flags:
      --db string   path to the Kraken database [optional]

Use "architeuthis mapping [command] --help" for more information about a command.
cdiener commented 6 months ago

My bad, I need to make a new release. Will do so today.

cdiener commented 6 months ago

Okay, try now with version 0.2.0.

cschu commented 6 months ago

That works, but it will result in an error if there are zero kraken hits.

2024/02/25 19:42:53 Found taxonkit=0.15.1.
2024/02/25 19:42:53 Pass 1: Building the taxa database...
2024/02/25 19:42:53 Reading k-mer assignments from JapaneseCohort_1577.k2.
2024/02/25 19:43:02 Processing 0 reads - Done.
panic: runtime error: index out of range [1] with length 1

goroutine 1 [running]:
github.com/cdiener/architeuthis/lib.AddLineage[...](0xc00016b878, {0x7fffffffe75f, 0x10}, {0x5c1b97, 0x1b})
    /home/runner/work/architeuthis/architeuthis/lib/taxonomy.go:71 +0x713
github.com/cdiener/architeuthis/lib.TaxonDB({0x7fffffffe73d, 0x16}, {0x7fffffffe75f, 0x10}, {0x5c1b97, 0x1b})
    /home/runner/work/architeuthis/architeuthis/lib/mappings.go:316 +0x536
github.com/cdiener/architeuthis/lib.FilterReads({0x7fffffffe73d, 0x16}, {0x7fffffffe7b4, 0x1f}, {0x7fffffffe75f, 0x10}, {0x5c1b97, 0x1b}, 0x3fee666666666666, 0x3fb999999999999a, ...)
    /home/runner/work/architeuthis/architeuthis/lib/mappings.go:249 +0x2c8
github.com/cdiener/architeuthis/cmd.init.func1(0x7352a0, {0xc000154160, 0x1, 0x5bc1b8?})
    /home/runner/work/architeuthis/architeuthis/cmd/filter.go:77 +0x38d
github.com/spf13/cobra.(*Command).execute(0x7352a0, {0xc0001540b0, 0xb, 0xb})
    /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:944 +0x867
github.com/spf13/cobra.(*Command).ExecuteC(0x736100)
    /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x3a5
github.com/spf13/cobra.(*Command).Execute(...)
    /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992
github.com/cdiener/architeuthis/cmd.Execute()
    /home/runner/work/architeuthis/architeuthis/cmd/root.go:42 +0x1a
main.main()
    /home/runner/work/architeuthis/architeuthis/main.go:29 +0x10c

The respective .tsv input for architeuthis filter is

100.00  5069216 5069216 U       0       unclassified

You'd probably need to catch those 100% unclassified cases. An idea would be to have architeuthis not fail on such cases (but also not generating an output file), making the architeuthis_filter output optional and have the process generate an additional sentinel output upon completion in order to distinguish between unclassified samples and genuine errors.

cdiener commented 6 months ago

Thanks. I tracked this in https://github.com/cdiener/architeuthis/issues/1.

cdiener commented 6 months ago

This should now be fine with architeuthis 0.2.1 (now on conda). But feel free to open another report if that does not work.