COMBINE-lab / salmon

🐟 🍣 🍱 Highly-accurate & wicked fast transcript-level quantification from RNA-seq reads using selective alignment
https://combine-lab.github.io/salmon
GNU General Public License v3.0
779 stars 165 forks source link

segmentation fault when skipQuant flag is set #902

Open aydemiro opened 12 months ago

aydemiro commented 12 months ago

Is the bug primarily related to salmon (bulk mode) or alevin (single-cell mode)? salmon Describe the bug A clear and concise description of what the bug is. salmon quant is leading to segmentation fault when --skipQuant flag is set. The behavior may be annotation dependent. To Reproduce Steps and data to reproduce the behavior:

Specifically, please provide at least the following information:

Expected behavior A clear and concise description of what you expected to happen. salmon quant finishes without seg fault with --skipQuant Screenshots If applicable, add screenshots or terminal output to help explain your problem. Terminal output when --skipQuant is on:

Version Info: ### PLEASE UPGRADE SALMON ###
### A newer version of salmon with important bug fixes and improvements is available. ####
###
The newest version, available at https://github.com/COMBINE-lab/salmon/releases
contains new features, improvements, and bug fixes; please upgrade at your
earliest convenience.
###
Sign up for the salmon mailing list to hear about new versions, features and updates at:
https://oceangenomics.com/subscribe
### salmon (selective-alignment-based) v1.9.0
### [ program ] => salmon 
### [ command ] => quant 
### [ index ] => { /share/genomes/human/hg38/gencode_v43/primary_comprehensive/SalmonIndex }
### [ skipQuant ] => { }
### [ libType ] => { A }
### [ mates1 ] => { GSM7099349.R1.fastq }
### [ mates2 ] => { GSM7099349.R2.fastq }
### [ output ] => { salmon_out }
### [ threads ] => { 1 }
Logs will be written to salmon_out/logs
[2023-11-30 09:40:21.543] [jointLog] [info] setting maxHashResizeThreads to 1
[2023-11-30 09:40:21.543] [jointLog] [info] Fragment incompatibility prior below threshold.  Incompatible fragments will be ignored.
[2023-11-30 09:40:21.543] [jointLog] [info] Usage of --validateMappings implies use of minScoreFraction. Since not explicitly specified, it is being set to 0.65
[2023-11-30 09:40:21.543] [jointLog] [info] Setting consensusSlack to selective-alignment default of 0.35.
[2023-11-30 09:40:21.543] [jointLog] [info] parsing read library format
[2023-11-30 09:40:21.543] [jointLog] [info] There is 1 library.
[2023-11-30 09:40:21.544] [jointLog] [info] Loading pufferfish index
[2023-11-30 09:40:21.545] [jointLog] [info] Loading dense pufferfish index.
-----------------------------------------
| Loading contig table | Time = 17.538 s
-----------------------------------------
size = 37303070
-----------------------------------------
| Loading contig offsets | Time = 413.98 ms
-----------------------------------------
-----------------------------------------
| Loading reference lengths | Time = 2.3736 ms
-----------------------------------------
-----------------------------------------
| Loading mphf table | Time = 2.3485 s
-----------------------------------------
size = 3781978516
Number of ones: 37303069
Number of ones per inventory item: 512
Inventory entries filled: 72858
-----------------------------------------
| Loading contig boundaries | Time = 5.1701 s
-----------------------------------------
size = 3781978516
-----------------------------------------
| Loading sequence | Time = 1.3226 s
-----------------------------------------
size = 2662886446
-----------------------------------------
| Loading positions | Time = 18.788 s
-----------------------------------------
size = 3537474813
-----------------------------------------
| Loading reference sequence | Time = 1.6833 s
-----------------------------------------
-----------------------------------------
| Loading reference accumulative lengths | Time = 3.3385 ms
-----------------------------------------

Segmentation fault (core dumped)

Output when the flag is off and the process finishes without the seg fault:

Version Info: ### PLEASE UPGRADE SALMON ###
### A newer version of salmon with important bug fixes and improvements is available. ####
###
The newest version, available at https://github.com/COMBINE-lab/salmon/releases
contains new features, improvements, and bug fixes; please upgrade at your
earliest convenience.
###
Sign up for the salmon mailing list to hear about new versions, features and updates at:
https://oceangenomics.com/subscribe
### salmon (selective-alignment-based) v1.9.0
### [ program ] => salmon 
### [ command ] => quant 
### [ index ] => { /share/genomes/human/hg38/gencode_v43/primary_comprehensive/SalmonIndex }
### [ libType ] => { A }
### [ mates1 ] => { GSM7099349.R1.fastq }
### [ mates2 ] => { GSM7099349.R2.fastq }
### [ output ] => { salmon_out }
### [ threads ] => { 1 }
Logs will be written to salmon_out/logs
[2023-11-30 09:36:58.680] [jointLog] [info] setting maxHashResizeThreads to 1
[2023-11-30 09:36:58.680] [jointLog] [info] Fragment incompatibility prior below threshold.  Incompatible fragments will be ignored.
[2023-11-30 09:36:58.680] [jointLog] [info] Usage of --validateMappings implies use of minScoreFraction. Since not explicitly specified, it is being set to 0.65
[2023-11-30 09:36:58.680] [jointLog] [info] Setting consensusSlack to selective-alignment default of 0.35.
[2023-11-30 09:36:58.680] [jointLog] [info] parsing read library format
[2023-11-30 09:36:58.680] [jointLog] [info] There is 1 library.
[2023-11-30 09:36:58.681] [jointLog] [info] Loading pufferfish index
[2023-11-30 09:36:58.681] [jointLog] [info] Loading dense pufferfish index.
-----------------------------------------
| Loading contig table | Time = 17.497 s
-----------------------------------------
size = 37303070
-----------------------------------------
| Loading contig offsets | Time = 192.67 ms
-----------------------------------------
-----------------------------------------
| Loading reference lengths | Time = 2.1496 ms
-----------------------------------------
-----------------------------------------
| Loading mphf table | Time = 3.0304 s
-----------------------------------------
size = 3781978516
Number of ones: 37303069
Number of ones per inventory item: 512
Inventory entries filled: 72858
-----------------------------------------
| Loading contig boundaries | Time = 5.3668 s
-----------------------------------------
size = 3781978516
-----------------------------------------
| Loading sequence | Time = 1.5058 s
-----------------------------------------
size = 2662886446
-----------------------------------------
| Loading positions | Time = 22.571 s
-----------------------------------------
size = 3537474813
-----------------------------------------
| Loading reference sequence | Time = 2.1723 s
-----------------------------------------
-----------------------------------------
| Loading reference accumulative lengths | Time = 2.8044 ms
-----------------------------------------

[2023-11-30 09:37:51.026] [jointLog] [info] done
[2023-11-30 09:37:51.104] [jointLog] [info] Index contained 253166 targets
[2023-11-30 09:37:51.166] [jointLog] [info] Number of decoys : 194
[2023-11-30 09:37:51.166] [jointLog] [info] First decoy index : 252924 
[2023-11-30 09:37:54.100] [jointLog] [info] Automatically detected most likely library type as ISR

[2023-11-30 09:38:33.382] [jointLog] [info] Thread saw mini-batch with a maximum of 3.76% zero probability fragments
[2023-11-30 09:38:33.406] [jointLog] [info] Computed 12939 rich equivalence classes for further processing
[2023-11-30 09:38:33.407] [jointLog] [info] Counted 268744 total reads in the equivalence classes 
[2023-11-30 09:38:33.414] [jointLog] [info] Number of mappings discarded because of alignment score : 148747
[2023-11-30 09:38:33.414] [jointLog] [info] Number of fragments entirely discarded because of alignment score : 75092
[2023-11-30 09:38:33.414] [jointLog] [info] Number of fragments discarded because they are best-mapped to decoys : 67912
[2023-11-30 09:38:33.414] [jointLog] [info] Number of fragments discarded because they have only dovetail (discordant) mappings to valid targets : 46918
[2023-11-30 09:38:33.436] [jointLog] [warning] Only 268744 fragments were mapped, but the number of burn-in fragments was set to 5000000.
The effective lengths have been computed using the observed mappings.

[2023-11-30 09:38:33.436] [jointLog] [info] Mapping rate = 53.7596%

[2023-11-30 09:38:33.436] [jointLog] [info] finished quantifyLibrary()
[2023-11-30 09:38:33.440] [jointLog] [info] Starting optimizer
[2023-11-30 09:38:33.498] [jointLog] [info] Marked 0 weighted equivalence classes as degenerate
[2023-11-30 09:38:33.511] [jointLog] [info] iteration = 0 | max rel diff. = 101.852
[2023-11-30 09:38:34.853] [jointLog] [info] iteration = 100 | max rel diff. = 0.263537
[2023-11-30 09:38:36.144] [jointLog] [info] iteration = 200 | max rel diff. = 0.0414157
[2023-11-30 09:38:37.438] [jointLog] [info] iteration = 300 | max rel diff. = 1.17048
[2023-11-30 09:38:38.135] [jointLog] [info] iteration = 355 | max rel diff. = 0.00351135
[2023-11-30 09:38:38.148] [jointLog] [info] Finished optimizer
[2023-11-30 09:38:38.148] [jointLog] [info] writing output 

Desktop (please complete the following information):

Additional context Add any other context about the problem here. The issue is definitely not insufficient memory (>300 GB available). Interestingly, the same salmon index was working perfectly until now. I re-created the index to make sure the files were not corrupted somehow but it resulted in the same error. I doubt that this is due to an update in salmon itself, because we have been using the same singularity container for this process for a while, so the same salmon version, same index now producing the error.

For my use case, not using the --skipQuant doesn't really cause any problem. I just wanted to report the bug.