Question: terminate called after throwing an instance of 'std::bad_alloc?
0
gravatar for star
15 months ago by
star240
Netherlands
star240 wrote:

I have two files (A ~ 17 MB and B~ 8GB) that I like to intersect them using Bedtools but I faced with error, I want to know is there any solution for it? Also, I guess I have enough memory space.

intersectBed -a A.bed -b B.bed -wa -wb > out.bed

terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Aborted (core dumped)

linux data bedtools • 4.1k views
ADD COMMENTlink written 15 months ago by star240
1

Also, I guess I have enough memory space.

well I guess you don't. Try -sorted and find out

ADD REPLYlink written 15 months ago by Carambakaracho2.2k

I did it and get terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc this time

ADD REPLYlink written 15 months ago by star240
2

I agree with Carambakaracho that the error is likely due to the fact that the process is filling up your RAM. Try and give a look at what happens with the RAM while you are executing the task. Another good try would be to repeat the task with a substantially reduced set of data (e.g. the first 2000 lines of B file) and see what happens. If it's just a RAM issue I think you might subset the second file in two/four chunks and do the work separately and then merge the files: I don't see downside in doing this.

ADD REPLYlink written 15 months ago by Fabio Marroni2.6k

Thanks for your reply, It is working when I am getting a subset of B file. So I will split that file to 2-3 files then run command.

ADD REPLYlink modified 15 months ago • written 15 months ago by star240
1

std::bad_alloc is the C++ error code for when a new operator tries to allocate something, but fails. As C++ cannot dynamically allocate memory, the lack of memory is the most common cause.

As of now, you didn't disclose anything on the machine you're working on, so I guess the most common cause, too. If your working on a HPC and allocated 1TB RAM, something else went wrong. For a start, Fabio Marroni gave good troubleshooting advice.

ADD REPLYlink modified 15 months ago • written 15 months ago by Carambakaracho2.2k

In my case, I was doing something different but got the same error (std::bad_alloc), and the memory was the problem - thanks!

ADD REPLYlink written 11 months ago by rodd100
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 2012 users visited in the last hour