SEPP fragment insertion fails with exit status 1 under WSL2

Hi everyone,

I’m running into persistent issues when trying to execute fragment insertion using SEPP in QIIME 2, and I would really appreciate any guidance.

Context:
I am working on a microbiome dataset and attempting to generate a phylogenetic tree using the qiime fragment-insertion sepp command.

Command used:

qiime fragment-insertion sepp \
  --i-representative-sequences rep-seqs.qza \
  --i-reference-database sepp-refs-gg-13-8.qza \
  --o-tree tree.qza \
  --o-placements tree_placements.qza \
  --p-threads 1 \
  --verbose

System configuration:
I am running this in WSL2 with the following resource allocation:

[wsl2]
memory=13GB
swap=24GB
processors=8

Environment:

  • Ubuntu version: 24.04.4 LTS

  • QIIME 2 version: 2024.1

The process fails with the following error:

Plugin error from fragment-insertion:

Command '['run-sepp.sh', '/tmp/qiime2/pilycm/data/f79c046b-8ac3-4e2f-bbab-6600026b2f3f/data/dna-sequences.fasta', 'q2-fragment-insertion', '-x', '2', '-A', '1000', '-P', '5000', '-a', '/tmp/qiime2/pilycm/data/a14c6180-506b-4ecb-bacb-9cb30bc3044b/data/aligned-dna-sequences.fasta', '-t', '/tmp/qiime2/pilycm/data/a14c6180-506b-4ecb-bacb-9cb30bc3044b/data/tree.nwk', '-r', '/tmp/qiime2/pilycm/data/a14c6180-506b-4ecb-bacb-9cb30bc3044b/data/raxml-info.txt']' returned non-zero exit status 1.

In some runs, the process appears to stall before failing.

What I have tried so far:

  • Increasing memory and swap allocation in WSL2

  • Adjusting the number of threads in previous runs

  • Running with --verbose to monitor progress

Question:
Has anyone encountered similar issues with SEPP in QIIME 2 under WSL2?

Any suggestions or best practices would be greatly appreciated.

Thank you in advance!

Hello @Andrea_Madrigal_Juar,

Can you add the --p-debug parameter to your command and attach the output?

Thanks,
Colin

Hi Colin,

Thank you for your help and for suggesting the use of --p-debug.

I reran the analysis with the following command:

qiime fragment-insertion sepp \
  --i-representative-sequences rep-seqs.qza \
  --i-reference-database sepp-refs-gg-13-8.qza \
  --o-tree tree.qza \
  --o-placements tree_placements.qza \
  --p-threads 1 \
  --verbose \
  --p-debug > salida.txt 2>&1

The command still failed with exit code 1, but I generated the debug log salida.txt (2.4 MB) and attached it here.

According to the log, SEPP appears successfully reads the reference alignment and tree and starts the decomposition process before stopping. The last reported lines are:

Alignment has 203452 sequences and 1285 sites
Tree has 203452 leaves
Decomposition Sizes are set to alignment: 1000 placement: 5000
tree.py (line 343): DEBUG: breaking_edge length = 0.011286416230032107, centroid
tree.py (line 349): DEBUG: Tree 1 has 102088 nodes, tree 2 has 101364 nodes

The temporary directories were preserved as well:

/tmp/tmp.EcIDczJjaz/sepp-tmp-Az2wPwA9xp
/tmp/tmp.EcIDczJjaz/sepp-tempssd-aeGQgn6bK6

Please let me know if there is anything else I should check or share. I really appreciate your guidance.

Hello @Andrea_Madrigal_Juar,

Unfortunately the log doesn't seem to have much useful information regarding a reason for the failure:

return code: -11
output:
error:
Traceback (most recent call last):
File "/home/andrea/miniconda3/envs/qiime2-amplicon-2024.10/lib/python3.10/site-packages/sepp/jobs.py", line 150, in run
raise JobError("\n".join([
sepp.scheduler.JobError: The following execution failed:
/home/andrea/miniconda3/envs/qiime2-amplicon-2024.10/bin/pplacer --out-dir /tmp/tmp.EcIDczJjaz/sepp-tempssd-aeGQgn6bK6/q2-fragment-insertion.tob5ka48/root/P_3 -j 1 -r /tmp/tmp.EcIDczJjaz/sepp-tempssd-aeGQgn6bK6/q2-fragment-insertion.tob5ka48/root/P_3/pplacer.backbone.d1bpgnmw.fasta -s /tmp/qiime2/andrea/data/a14c6180-506b-4ecb-bacb-9cb30bc3044b/data/raxml-info.txt -t /tmp/tmp.EcIDczJjaz/sepp-tempssd-aeGQgn6bK6/q2-fragment-insertion.tob5ka48/root/P_3/pplacer.tree.lmp5yahn.tre --groups 10 /tmp/tmp.EcIDczJjaz/sepp-tempssd-aeGQgn6bK6/q2-fragment-insertion.tob5ka48/root/P_3/pplacer.extended.0.j4ssb6gk.fasta
No error messages available

From searching for similar issues on this forum, it looks like insufficient memory is a common problem. Do you have a way to rerun this with more memory in order to rule that out?

Thanks,
Colin

Hello again @Andrea_Madrigal_Juar,

Actually, after searching a little more it looks like this issue has to do with "vsyscalls" being disabled in WSL, see this post and this post. The former looks like it includes a solution, though do be mindful of the fact that vsyscalls seem to be disabled for security reasons. (Though I think setting syscall=emulate is not a security concern.)

Thanks,
Colin