Error when doing Quality control evaluate composition

Hi,
I have run into some trouble when trying to do the q2-quality-control evaluate-composition-pipeline. I have downloaded the expected-taxonomy.tsv file from mocrobiota (mockrobiota/expected-taxonomy.tsv at master · caporaso-lab/mockrobiota · GitHub) and followed the Fungal ITS analysis tutorial to convert the .tsv file to a .qza:

biom convert
-i expected-taxonomy1.tsv
-o expected-taxonomy1.biom
–table-type=“OTU table”
–to-json

qiime tools import
–type-FeatureTable[RelativeFrequency]
–input-path expected-taxonomy1.biom
–input-format BIOMV100Format
–output-path expected-taxonomy1.qza

expected-taxonomy1.qza (7.6 KB)

I then performed feature-table filter-samples to get a table.qza consisting of my control (mock HM277D) sample only. I renamed the mock-sample to have a sample-id identical to what is found in the expected-taxonomy-file, as it is stated in the ‘Evaluating and controlling data quality with q2-quality-control’ tutorial. I collapsed the sample to level 7 and converted the feature table to relative frequency.

qiime taxa collapse
–i-table table-mock1.qza
–i-taxonomy merged_taxonomy_trained.qza
–p-level 7
–o-collapsed-table table-mock1-collapsed7.qza

qiime feature-table relative-frequency
–i-table table-mock1-collapsed7.qza
–o-relative-frequency-table table-mock1-collapsed7-relative-freq.qza

table-mock1.qza (67.5 KB)
table-mock1-collapsed7.qza (116.5 KB)
table-mock1-collapsed7-relative-freq.qza (121.4 KB)

So far so good

Then I ran the final step

qiime quality-control evaluate-composition
–i-expected-features expected-taxonomy1.qza
–i-observed-features table-mock1-collapsed7-relative-freq.qza
–o-visualization control-evaluate1.qzv

And ended up with the error message as follows:

Plugin error from quality-control:

Invalid RGBA argument: masked

Debug info has been saved to /work/users/ainafos/tmp/qiime2-q2cli-err-b55v6orn.log
(/opt/anaconda3/env/qiime2/2019.10.0) [email protected]:/work/users/ainafos/Master/MockQC$ cat /work/users/ainafos/tmp/qiime2-q2cli-err-b55v6orn.log
/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/q2_quality_control/_utilities.py:174: FutureWarning: Sorting because non-concatenation axis is not aligned. A future version
of pandas will change to not sort by default.

To accept the future behavior, pass ‘sort=False’.

To retain the current behavior and silence the warning, pass ‘sort=True’.

obs_collapsed.loc[sample]], axis=1).fillna(0)
Traceback (most recent call last):
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/q2cli/commands.py”, line 328, in call
results = action(**arguments)
File “</opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/decorator.py:decorator-gen-200>”, line 2, in evaluate_composition
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/qiime2/sdk/action.py”, line 240, in bound_callable
output_types, provenance)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/qiime2/sdk/action.py”, line 445, in callable_executor
ret_val = self._callable(output_dir=temp_dir, **view_args)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/q2_quality_control/quality_control.py”, line 76, in evaluate_composition
plot_observed_features_ratio=plot_observed_features_ratio)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/q2_quality_control/_utilities.py”, line 112, in _evaluate_composition
results, xval=‘level’, yvals=yvals, palette=palette)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/q2_quality_control/_utilities.py”, line 265, in _pointplot_multiple_y
sns.pointplot(data=results, x=xval, y=score, ax=axes, color=color)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/seaborn/categorical.py”, line 3340, in pointplot
plotter.plot(ax)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/seaborn/categorical.py”, line 1811, in plot
self.draw_points(ax)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/seaborn/categorical.py”, line 1757, in draw_points
c=hex_colors, edgecolor=hex_colors)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/matplotlib/init.py”, line 1589, in inner
return func(ax, *map(sanitize_sequence, args), **kwargs)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/matplotlib/axes/_axes.py”, line 4490, in scatter
alpha=alpha
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/matplotlib/collections.py”, line 883, in init
Collection.init(self, **kwargs)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/matplotlib/collections.py”, line 128, in init
self.set_edgecolor(edgecolors)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/matplotlib/collections.py”, line 728, in set_edgecolor
self._set_edgecolor©
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/matplotlib/collections.py”, line 712, in _set_edgecolor
self._edgecolors = mcolors.to_rgba_array(c, self._alpha)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/matplotlib/colors.py”, line 286, in to_rgba_array
result[i] = to_rgba(cc, alpha)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/matplotlib/colors.py”, line 177, in to_rgba
rgba = _to_rgba_no_colorcycle(c, alpha)
File “/opt/anaconda3/env/qiime2/2019.10.0/lib/python3.6/site-packages/matplotlib/colors.py”, line 238, in _to_rgba_no_colorcycle
raise ValueError(“Invalid RGBA argument: {!r}”.format(orig_c))
ValueError: Invalid RGBA argument: masked

I have searched the forum for a similar error message, and turned to my friend Google, but I cannot find any such error message connected to QIIME2

I hope you can guide me to the step where I am doing something wrong

Best,
Aina

1 Like

Hi @aina ,
Thanks for reporting, and sorry for the delay in responding!

I have investigated your issue and unfortunately cannot find a concrete solution — because when I run the same command with your same files I get a successful result.

One possible issue:

It looks like you are running a very old version of QIIME 2 — could you upgrade to the latest version? Then we can ensure that we are not chasing down a bug that was fixed long ago.

Good luck!

2 Likes

Hi @Nicholas_Bokulich
Thank you for your answer!
After I posted the message on the forum I started to suspect that something was happening outside the qiime2-environment. I logon to a computer cluster when performing these analyses and hence lack some insight as to what is really happening. And when Google gives nothing one starts to wonder…
So I tested the 2020.2 version, as it is also installed in the computer cluster, and got jet another error message ending with:

IndexError: too many indices for array

After reading your response I installed the latest version locally, and it worked! So, no need to chase down the bug!

Thanks once again

Best,
Aina

1 Like

Hi @aina ,

Glad you could get this working locally!

This suggests to me that the cluster environment in which QIIME 2 is installed might be broken, e.g., a different version of the necessary package(s) was installed, which conflict with QIIME 2. So indeed not a bug, but an issue with how the environment was set up on the cluster.

Good luck!

1 Like