Is your feature request related to a problem? Please describe.
When binning contigs from more than one sample (see q2-moshpit), we need a way to distinguish contigs belonging to different samples (contig IDs are only unique per-sample).
Describe the solution you'd like
I want the contigs to be renamed post-assembly, regardless of the assembler used. We could use UUIDs to represent those, instead of arbitrary strings, as it is now. shortuuid could be a good candidate as it can generate short IDs which are still unique enough - that way we would avoid using the same kind of ID as we already are using to represent MAGs with the added benefit of those being slightly more human-readable.
Notes:
Let's provide the user with a selection of ways to rename: shortuuid, uuid4, uuid5 etc.
Acceptance criteria:
both contig assembly actions have a new, optional parameter (rename-contigs) specifying the type of ID we want to apply
the options for the above param should, for now, be: shortuuid (see the library linked above), uuid3, uuid4, uuid5 (using respective methods from Python's uuid module)
for uuid3 and uuid5 the sample name should become the namespace and the original contig ID could become the name
Is your feature request related to a problem? Please describe. When binning contigs from more than one sample (see q2-moshpit), we need a way to distinguish contigs belonging to different samples (contig IDs are only unique per-sample).
Describe the solution you'd like I want the contigs to be renamed post-assembly, regardless of the assembler used. We could use UUIDs to represent those, instead of arbitrary strings, as it is now. shortuuid could be a good candidate as it can generate short IDs which are still unique enough - that way we would avoid using the same kind of ID as we already are using to represent MAGs with the added benefit of those being slightly more human-readable.
Notes: Let's provide the user with a selection of ways to rename: shortuuid, uuid4, uuid5 etc.
Acceptance criteria:
rename-contigs
) specifying the type of ID we want to applyshortuuid
(see the library linked above),uuid3
,uuid4
,uuid5
(using respective methods from Python's uuid module)