The way it works in dada2 is the forward reads are denoised and the reverse reads denoised separately (so the error model for each is consistent, e.g. its the forward-read error model across the full forward reads). Then reads are merged.
It's a solvable problem, but also not entirely trivial, and we just don't have the time to devote to it given how well the merge-later workflow works, including for ITS. If we get time (i.e. $upport) its something I'd like to revisit though because merge-first is more convenient for ITS in particular.
@Adam_Rivers, I think some of your questions for me were already answered in the discussion here, but I wanted to follow up to be sure that you're not waiting on input. Please let me know if I've missed anything.
I think this would be a very useful workflow to support.
Yes, just to clarify, if SampleData[PairedEndSequencesWithQuality] is provided to denoise-single, the reverse reads are just ignored. This is for convenience so the user can create one SampleData[PairedEndSequencesWithQuality] artifact, and use it with denoise methods that take single or paired end reads.
Pre-joined reads aren't accepted by DADA2 (I think that was already clear from some of the other discussion on this thread, but just wanted to reply to this question specifically).
Yes, that should be the only change that you need to make.
Does ITSxpress work on single-end reads? If so, why not use it to trim ITS in forward/reverse separately, and then denoise with dada2?
That could be done but it would more than double the running time and would not allow validation that the beginning and end are present for the selected ITS region. After thinking about it more I realised I could calculate the 5' trimming positions of the reads from the merged sequences. so I will do that instead.
@Adam_Rivers
Thank you for providing this plugin for ITS. I think it is worth including this step in the pre-processing of ITS.
I wonder whether by now it is possible to run itsxpress on forward and reverse reads, and not merged reads.
Could you please update us regarding this matter?
Yes, I added support for the output of unmerged reads last month. Update itsxpress and q2-itsxpress and you should be all set. The itsxpress tutorial has also been updated with instructions on outputting unmerged reads for Dada2.
Iβm trying to install the ITSxpress plugin into my QIIME2-amplicon-2024.10 environment,
mamba install -c bioconda itsxpress=2.1.3
but I ran into the following error:
warning libmamba Added empty dependency for problem type SOLVER_RULE_UPDATE
Could not solve for environment specs
The following packages are incompatible
ββ itsxpress 2.1.3** is installable and it requires
β ββ hmmer 3.1b2.* , which can be installed;
ββ q2-fragment-insertion is installable and it requires
ββ sepp with the potential options
ββ sepp [4.5.4|4.5.5] would require
β ββ hmmer >=3.4,<3.5.0a0 , which conflicts with any installable versions previously reported;
ββ sepp 4.3.10 would require
β ββ python >=2.7,<2.8.0a0 , which can be installed;
ββ sepp [4.3.10|4.3.8|4.3.9] would require
β ββ python >=3.6,<3.7.0a0 , which can be installed;
ββ sepp [4.3.10|4.5.1|v4.5.0] would require
β ββ python >=3.7,<3.8.0a0 , which can be installed;
ββ sepp 4.3.10 would require
β ββ python >=3.8,<3.9.0a0 , which can be installed;
ββ sepp [4.3.10|4.4.0|4.5.1] would require
ββ python >=3.9,<3.10.0a0 , which can be installed.
It seems there is a conflict between the dependencies required by itsxpress and q2-fragment-insertion.
Has anyone encountered this issue before? If so, how did you resolve it? Any advice would be greatly appreciated.