jszavits / NEAR

Non-Equilibrium Analysis of Ribosome profiling data
GNU General Public License v3.0
2 stars 2 forks source link

Segmentation fault when running more than 5-10 genes #2

Closed paulaberry closed 3 years ago

paulaberry commented 3 years ago

I am trying to use NEAR to analyze translation of 200 proteins. I have NEAR running fine for the included test data, and when I ran a test set of 5 proteins it ran ok. But when I run it on my whole set, I get this error:

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0  0x7f85c98b0d3a
#1  0x7f85c98afed5
#2  0x7f85c958620f
#3  0x7f85c95dd8a2
#4  0x7f85c9c48ee3
#5  0x7f85c9c4d5b8
#6  0x7f85c9c535cf
#7  0x7f85c95670b2
#8  0x7f85c9c4827d
#9  0xffffffffffffffff
Segmentation fault (core dumped)

I have attached the genelist.dat file used as a .txt file, any insight into what is causing the error is appreciated! genelist.dat.txt

jszavits commented 3 years ago

One issue that I see is that one gene in your genelist.dat.txt has total ribosome density 0 (line 22). The total ribosome density is a scaling factor to get local ribosome density for each codon from the read counts. If that factor is zero the program will set local density at each codon equal to zero, and that will not work in the program (it means that the local elongation rate is infinite). Try putting non-zero density in the genelist.dat.txt or remove that gene from the list. Also later in the file you also have one gene with the density 1, but the maximum theoretical density is 1/(ribosome length), where (ribosome length) is approximately 10. So having a scaling factor greater than 1/(ribosome length) will also cause problems. To summarise, ribosome density in genelist.dat.txt must be 0 < (ribosome density) < 1/(ribosome length). Please let me know if fixing these errors still causes segmentation fault.

paulaberry commented 3 years ago

Thank you! The program was having issues with the scaling steps on the raw densities so I did indeed scale the initial outputs between 0 and 1. I will try between 0.001 and .1