I recently tried to use breseq
to analyze a few bacterial sequencing data. However, I got a fatal error when breseq
used bowtie2
to align the raw data to the reference genome.
Here is the critical part of the error that I got:
+++ NOW PROCESSING Read alignment to reference genome
[system] bowtie2-build -q test_breseq/data/reference.fasta test_breseq/02_reference_alignment/reference
[system] bowtie2 -t -p 4 --local -L 31 --ma 1 --mp 3 --np 0 --rdg 2,3 --rfg 2,3 --ignore-quals -k 2000 -i S,1,0.25 --score-min L,0,0.9 --reorder -x test_breseq/02_reference_alignment/reference -U test_breseq/01_sequence_conversion/MRSA_10C.1.converted.fastq -S test_breseq/02_reference_alignment/MRSA_10C.1.stage1.sam --un test_breseq/02_reference_alignment/MRSA_10C.1.stage1.unmatched.fastq
Error: the match penalty is greater than 0 (1) but the --score-min function can be less than or equal to zero. Either let the match penalty be 0 or make --score-min always positive.
Error: Encountered internal Bowtie 2 exception (#1)
Command: /usr/bin/bowtie2-align-s --wrapper basic-0 -t -p 4 --local -L 31 --ma 1 --mp 3 --np 0 --rdg 2,3 --rfg 2,3 --ignore-quals -k 2000 -i S,1,0.25 --score-min L,0,0.9 --reorder -x test_breseq/02_reference_alignment/reference --passthrough -U test_breseq/01_sequence_conversion/MRSA_10C.1.converted.fastq
(ERR): bowtie2-align exited with value 1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!> FATAL ERROR <!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Error running command:
[system] bowtie2 -t -p 4 --local -L 31 --ma 1 --mp 3 --np 0 --rdg 2,3 --rfg 2,3 --ignore-quals -k 2000 -i S,1,0.25 --score-min L,0,0.9 --reorder -x test_breseq/02_reference_alignment/reference -U test_breseq/01_sequence_conversion/MRSA_10C.1.converted.fastq -S test_breseq/02_reference_alignment/MRSA_10C.1.stage1.sam --un test_breseq/02_reference_alignment/MRSA_10C.1.stage1.unmatched.fastq
Result code: 256
FILE: libbreseq/common.h LINE: 1384
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
All the step before running bowtie2
(samtools
, converting FASTQ) worked normally. According to the error, it was because of the score-min function, which has 0 as the minimum score (--score-min L,0,0.9
). The command for bowtie2
individually worked when I changed the function to --score-min L,0.1,0.9
(0 is replaced by 0.1). But it looks like this part was encoded in breseq
itself (wasn't it?).
A few more details about my problem:
- The command for running breseq
was: breseq -o OUTPUT_DIR -j 4 -r REFERENCE.fastq RAWDATA.1.FASTQ.GZ RAWDATA.2.FASTQ.GZ
- Raw data type: MiSeq (150x2)
- bowtie2
's version: 2.3.0
- breseq
's version: 0.29.0
- OS: Linux 16.04 LTS
- The tests also got a similar error.
Is this a bug or I just used it incorrectly? I would appreciate any comments or recommendations.
That's correct. This error is caused by a change in the new bowtie2 version (2.3.0) to disallow the options breseq uses to call it.
The next version of breseq will update its options to be compatible with the new bowtie2. I should release this in a week or two. This code is already checked into the GitHub repository if you want to build from that and use bowtie 2.3.0. Or, you can temporarily use version 2.2.9 of bowtie2 with the current version of breseq.