Providing multiple artifacts for qiime feature-table merge and qiime feature-table merge-seq

I have tried

qiime feature-table merge --i-tables *table.qza --o-merged-table merged_table.qza

resulting in
Got unexpected extra arguments
and

ls | grep table.qza > tables.list

qiime feature-table merge --i-tables tables.list --o-merged-table merged_table.qza

resulting in
ValueError: tables.list is not a QIIME archive.

How do we provide MULTIPLE ARTIFACT PATH List?

Cheers,
Gisle

Hi @gisle!

Unfortunately the dependency we use to help build our CLI (click) does not support using * with options. Instead what you have to do is supply the option multiple times:

--i-tables 1_table.qza --i-tables 2_table.qza --i-tables 3_table.qza   ...etc

I’m sorry you can’t use the glob/* syntax, that would have been ideal, but technical limitations prevented us from implementing it that way.

One trick you can use is number-expansion (but it looks like of weird). If your filenames are super predictable with a number you can actually include the option flag and bash will expand the entire thing:

--i-tables\ {1..3}_table.qza

This will work the same as the above. Note the \ to escape the space, this causes bash to see the entire chunk as a single string which is duplicated 3 times (1 through 3). Depending on how many tables you have, this trick may be more trouble than its worth if you aren’t super comfortable with how bash interprets commands.

Hope that helps!

2 Likes

Thanks for the quick answer.
I ended up making a Ruby script to merge all feature tables (containing _table.qza) and representative sequences (containing _rep-seqs.qza) to allow users some flexibility of naming.

Cheers,
Gisle

2 Likes

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.