Plugin error from demux: Golay decoding requires 12nt barcodes. The barcode attempting to be decoded (CCTGTTTGCTC) is of length 11nt.

Hello, I am running QIIME2-2021.4 and it was installed via conda. Here are the exact commands I am running:
qiime tools import
--type EMPSingleEndSequences
--input-path (folder name)
--output-path multiplexed.qza

qiime demux emp-single
--i-seqs multiplexed.qza
--m-barcodes-file metadata.txt
--m-barcodes-column 'BarcodeSequence'
--o-per-sample-sequences demultiplexed.qza
--o-error-correction-details errorcorrection.qza

Here is the error I am receiving:
Plugin error from demux:
Golay decoding requires 12nt barcodes. The barcode attempting to be decoded (CCTGTTTGCTC) is of length 11nt.

I tried looking through other threads on the forum but couldn't figure out the fix. This is the exact code I've been running for dozens of other 16S runs with no issue, and I'm not sure why it's starting now. The only thing that has changed between this and other runs is that I downloaded the Undetermined_R1 and Undetermined_R2 files from Illumina's Basespace rather than from the MiSeq it was run on (which I don't have access to)

Hi @ThatGuySam,
As @jwdebelius noted in reply to your post on Twitter, that barcode that's showing up in the error message is 11 bases long. If those are your actual barcodes, you can suppress error correction by passing the --p-no-golay-error-correction parameter to qiime demux emp-single. If you had a copy/paste error with one or more of your barcodes, such that you pasted in only 11 bases, you should be able to correct that and move on.

Let us know if you need additional help.

Hi @gregcaporaso !

I actually have no idea where it is getting the barcode (CCTGTTTGCTC) from. I threw in a dummy metadata sheet with only one of the samples from this run as a test and ensured the barcode length was 12nt and it gave me the same error. I also went to the sample sheet and ensured the barcodes there were all 12nt in length as well.

@ThatGuySam, Can you provide the metadata file, or a minimal version of it that reproduces error?

metadata_8.30.22.txt (60 Bytes)

@gregcaporaso Sure, here's the metadata file that I used as a test dummy. I am still getting the error with this.

Thanks - a couple of additional requests.

First, can you run the command that's giving you the error, providing the --verbose option, and post the command and the full error message that you're receiving.

Next, on the barcodes file that you imported into QIIME 2, can you run the following command (here I'm assuming that it's called barcodes.fastq.gz. (Note this is the file that you're importing - not a .qza that you imported.)

gzip -cd barcodes.fastq.gz | head -n 25 

Thanks!

Sure thing, here is the --verbose option command and full error message:

qiime demux emp-single --i-seqs /Users/Samuel/Desktop/ORISE\ Stuff/Actual\ Science/MiSeq/MixedGasses-8.30.22/multiplexed_8.30.22.qza --m-barcodes-file /Users/Samuel/Desktop/ORISE\ Stuff/Actual\ Science/MiSeq/MixedGasses-8.30.22/metadata_8.30.22.txt --m-barcodes-column 'BarcodeSequence' --o-per-sample-sequences demultiplexed_8.30.22.qza --o-error-correction-details errorcorrection_8.30.22.qza --verbose
Traceback (most recent call last):
  File "/opt/anaconda3/envs/qiime2-2021.4/lib/python3.8/site-packages/q2cli/commands.py", line 329, in __call__
    results = action(**arguments)
  File "<decorator-gen-490>", line 2, in emp_single
  File "/opt/anaconda3/envs/qiime2-2021.4/lib/python3.8/site-packages/qiime2/sdk/action.py", line 244, in bound_callable
    outputs = self._callable_executor_(scope, callable_args,
  File "/opt/anaconda3/envs/qiime2-2021.4/lib/python3.8/site-packages/qiime2/sdk/action.py", line 390, in _callable_executor_
    output_views = self._callable(**view_args)
  File "/opt/anaconda3/envs/qiime2-2021.4/lib/python3.8/site-packages/q2_demux/_demux.py", line 312, in emp_single
    barcode_read, ecc_errors = decoder.decode(raw_barcode_read)
  File "/opt/anaconda3/envs/qiime2-2021.4/lib/python3.8/site-packages/q2_demux/_ecc.py", line 139, in decode
    raise ValueError("Golay decoding requires 12nt barcodes. The "
ValueError: Golay decoding requires 12nt barcodes. The barcode attempting to be decoded (CCTGTTTGCTC) is of length 11nt.

Here is the second thing that you requested (and where I see the error, I think? but not sure how to interpret it).

gzip -cd /Users/Samuel/Desktop/ORISE\ Stuff/Actual\ Science/MiSeq/MixedGasses-8.30.22/barcodes.fastq.gz | head -n 25
@M70462:21:000000000-DHP3Y:1:1101:15706:1330 2:N:0:CAGGAAGGTTAA

CCTGTTTGCTC

+

>>AABFFFFFF

@M70462:21:000000000-DHP3Y:1:1101:15813:1331 2:N:0:TAATTTTTAGTG

TTACCTCCAAA

+

11>>AFFAF1B

@M70462:21:000000000-DHP3Y:1:1101:15740:1336 2:N:0:GTGGGATGTTTC

CCTGTTTGCTC

+

BCBCCFFFFFF

@M70462:21:000000000-DHP3Y:1:1101:15373:1337 2:N:0:AACGAGAACTGA

CCTGTTTGATC

+

ABCCCFFFFFF

@M70462:21:000000000-DHP3Y:1:1101:15335:1339 2:N:0:TTTTGTTTATTT

CTTTTCCCAGC

+

BABBBDFFFFF

@M70462:21:000000000-DHP3Y:1:1101:16168:1340 2:N:0:TGGCACCGATTA

CCTGTTTGCTC

+

1>1>>FFFFFF

@M70462:21:000000000-DHP3Y:1:1101:16244:1342 2:N:0:TTTCTTTTTTTC

@ThatGuySam, yes, it looks like that's where the error is coming from. So the barcode reads that you have in the fastq.gz file are 11 bases long, while the barcodes in your sample metadata are 12 bases long. I've seen this happen when the sequencing center only ran 11 cycles for the barcode reads. You'll have to check with them - if it was an error on their part, they may re-do the run for you.

Alternatively, you can check to see if your barcodes are all unique in the first 11 bases. If they are, you can adapt your sample metadata file to include the first 11 bases of each barcode, and re-run qiime demux emp-single with the --p-no-golay-error-correction.

Good luck!

Having just re-run it with our samples, I am now receiving this error:
Plugin error from demux:

No sequences were mapped to samples. Check that your barcodes are in the correct orientation (see the rev_comp_barcodes and/or rev_comp_mapping_barcodes options). If barcodes are NOT Golay format set golay_error_correction to False.

I will say, the output from Illumina this time was an Undetermined_R1 and Undetermined_R2 file. It is possible that this is causing our errors, as we normally work with an Undetermined_R1 and Undetermined_I1 file. Our I1 file normally contains our barcodes. I figured that the I1 and R2 would accomplish the same thing because I saw tutorials with the input being the Undetermined_R1 and Undetermined_R2, but this must not be the case.

It sounds like you don't have an index / barcode read file this time. Try running that same gzip -cd command on the R1, R2, and I1 (if you have it) fastq.gz files to review the data and figure out where your barcodes are. If it looks like you do have barcodes in one of those files, experiment with the parameters that are suggested in that most recent error message to get your barcode reads and sample metadata barcodes in a consistent orientation.