NCBI blast+ seems to have trouble parsing some fasta files when running inside a Docker container. Note that I don't see the error when running blast outside the container.
I'm using the sample input file provided by Cegma here as an example, but the problem presists in other files. For the Cegma example, taking the first 82 lines works without issue, but taking the first 83 lines throws the error.
I've created a dockerfile that will replicate the error.
If you have docker installed, you can simply:
wget https://gist.githubusercontent.com/robsyme/8d6e20966db2d967bb51/raw/a494a6fbf4268dc36d1019a543d60c83a58cd081/Dockerfile
docker build -t blasterror .
docker run blasterror
This returns with the error:
Error: NCBI C++ Exception:
"/home/coremake/release_build/build/PrepareRelease_Linux64-Centos_JSID_01_92_130.14.22.10_9056__PrepareRelease_Linux64-Centos_1386704299/c++/compilers/unix/../../src/corelib/ncbiobj.cpp", line 925: Critical: ncbi::CObject::ThrowNullPointerException() - Attempt to access NULL pointer.
To use only the first 82 lines to run without an error, change the line:
ENV LINECOUNT 83
to
ENV LINECOUNT 82
in the file 'Dockerfile' and re-run docker build and docker run as above.
An error is thrown with ncbi-blast versions 2.2.25, 2.2.26, 2.2.27, 2.2.28 and 2.2.29 with 83 lines but not with 82.
Does anybody know why the Docker might be causing problems with ncbi-blast+?
I've upgraded to ubuntu 14.04 (overkill, I know) and upgraded docker to the latest ubuntu docker.io package and everything seems to work ok. Very strange.
Yes, very strange - I haven't had much experience with Docker, I thought your situation was what Docker was invented for :P