Skip to content

summarize unable to parse sample IDs with # in ID name #86

@thermokarst

Description

@thermokarst

Bug Description
If a sample ID contains a # (which is completely valid), summarize will fail noisily when parsing the format's internal manifest file.

Steps to reproduce

  1. Import a dataset with a # in at least one sample ID
  2. Run summarize on those samples.

Expected behavior
The vis shouldn't fail, the # should be included as part of the ID.

Screenshots

(qiime2-2018.6) eduroam121-33:16s_july26_Run Molly-Mac$ qiime demux summarize --i-data /Users/Molly-Mac/My_FILES/16s_july26_Run/Demulti_SmPro_PlasmidTrial_sequences.qza --o-visualization Dmultivis_SmPr_PlasmidTrial.qzv --verbose
Traceback (most recent call last):
File “/Users/Molly-Mac/miniconda2/envs/qiime2-2018.6/lib/python3.5/site-packages/q2cli/commands.py”, line 274, in call
results = action(**arguments)
File “”, line 2, in summarize
File “/Users/Molly-Mac/miniconda2/envs/qiime2-2018.6/lib/python3.5/site-packages/qiime2/sdk/action.py”, line 232, in bound_callable
output_types, provenance)
File “/Users/Molly-Mac/miniconda2/envs/qiime2-2018.6/lib/python3.5/site-packages/qiime2/sdk/action.py”, line 429, in callable_executor
ret_val = self._callable(output_dir=temp_dir, **view_args)
File “/Users/Molly-Mac/miniconda2/envs/qiime2-2018.6/lib/python3.5/site-packages/q2_demux/_summarize/_visualizer.py”, line 121, in summarize
lambda x: os.path.join(str(data), x))
File “/Users/Molly-Mac/miniconda2/envs/qiime2-2018.6/lib/python3.5/site-packages/pandas/core/series.py”, line 3194, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
File “pandas/_libs/src/inference.pyx”, line 1472, in pandas._libs.lib.map_infer
File “/Users/Molly-Mac/miniconda2/envs/qiime2-2018.6/lib/python3.5/site-packages/q2_demux/_summarize/_visualizer.py”, line 121, in
lambda x: os.path.join(str(data), x))
File “/Users/Molly-Mac/miniconda2/envs/qiime2-2018.6/lib/python3.5/posixpath.py”, line 89, in join
genericpath._check_arg_types(‘join’, a, *p)
File “/Users/Molly-Mac/miniconda2/envs/qiime2-2018.6/lib/python3.5/genericpath.py”, line 143, in _check_arg_types
(funcname, s.class.name)) from None
TypeError: join() argument must be str or bytes, not ‘float’

Plugin error from demux:

join() argument must be str or bytes, not ‘float’

In this case, the offending sample ID: SmProDNA.Va#2Control

Computation Environment

  • OS: macOS High Sierra
  • QIIME 2 Release: 2018.6

References

  1. Original forum post
  2. Relevant code.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions