PrincetonUniversity / IBDmix

GNU General Public License v3.0
27 stars 5 forks source link

Segmentation Fault (Core Dumped) Error in IBDmix #14

Closed Jiayu-Dong closed 1 month ago

Jiayu-Dong commented 1 month ago

Thanks for the development of IBDmix for detecting introgression without reference panel!

I meet with 'Segmentation fault (core dumped)' error when running IBDmix, the output is incomplete, the last five rows is like:

PI130024 1A 563684419 563691545 3.62882 64 54 0 0 0 9 1 0 0 PI130029 1A 563684419 563691545 3.62882 64 54 0 0 0 9 1 0 0 PI130047 1A 563684419 563691545 3.62882 64 54 0 0 0 9 1 0 0 PI130152 1A 563684419 563691545 3.62882 64 54 0 0 0 9 1 0 0 PI130153 1A 563684419

When I split the genotype file at marker 1A-563684419 into two separate files, the error no longer occurred. I then merged the two output subfiles manually. While this approach seems to have worked, I wanted to confirm whether it is appropriate to handle the error this way or if there are better solutions or recommendations you would suggest? Thank you in advance!

biermanr commented 1 month ago

Hi @Jiayu-Dong I'm not sure what's wrong, I'm guessing it's an out of memory issue but could you please share a sample of your input and how you're calling IBDmix? If this is a bug then I want to make sure we address it!

I think your approach of splitting and merging works fine as long as you're not splitting over an introgressed region.

Jiayu-Dong commented 1 month ago

Sorry for the late reply, the input file and command I used is attached below, thank you for your help! test.tar.gz

biermanr commented 1 month ago

Thanks @Jiayu-Dong, I'll have time to test and debug your usecase soon

Jiayu-Dong commented 1 month ago

Thank you!

biermanr commented 1 month ago

Hi @Jiayu-Dong, thank you for your patience. I have installed IBDmix from the main branch and I've run your ibdmix command on the dataset you provided.

The command is succeeding for me in ~2.7 seconds, generating the out.txt, and I'm not getting a segfault. Does this command cause a segfault for you? Or are you only getting the segfault when you run on larger input?

Thank you again for providing such a clear example command and dataset for me to test on my end! I've attached the out.txt file produced from this ibdmix command on your provided data. out.txt

biermanr commented 1 month ago

@Jiayu-Dong I'm closing this issue since I haven't heard from you, but please re-open for any reason

Jiayu-Dong commented 1 month ago

Sorry for the delayed response, as I was on vacation. Thank you for getting back to me.

I reinstalled IBDmix from the main branch, but the error still persists. When using larger input files, the error occurs occasionally, and I’m not sure why. However, after comparing the results from your output and the method that involves splitting the file, the results are almost identical—only 29 lines differ. It seems that splitting the file also works.

Thank you again for your continued support!

biermanr commented 1 month ago

@Jiayu-Dong thanks for trying the re-installation and I'm glad that splitting the file mostly works. Would it be possible for you to share one of your larger input files where the error occasionally occurs?

I think this could be an issue that comes up for other people, so I'd like to figure out what's happening. Please email me at rbierman@princeton.edu if you're able to share a larger dataset and we can figure it out using dropbox, google drive, or similar.

Jiayu-Dong commented 1 month ago

Sure! I have emailed you, did you recieve the email?

biermanr commented 4 weeks ago

Thank you for sharing the files by email @Jiayu-Dong.

I’ve tried them myself using the “for-loop” command you provided in your README, but I’m unable to reproduce the segfaults you’re seeing. I also tried running the "for-loop" 200 times separately to see if there was an error that would happen sometimes but not every time, but again not a single segfault.   I don’t know why these issues are occurring for you, but not when I try. The only thing I can think about is that there are some differences I don't understand between our setups.   I’m going to keep this issue closed since I can’t reproduce the errors, but thank you for bringing them up. I wouldn’t be surprised if this issue is re-opened in the future if you or others report additional/recurring segfault issues.