reporting bug

Just posting this incase it is useful to you.

`

Hey Phil,

How can I reproduce it?

– Priyam

Sorry, I quickly posted with out any details!

Well, I am using blast 2.2.30. I built my own blast database using makeblastdb. Once I’ve started up sequenceserver I can submit a sequence. If I submit a protein sequence such as:
`

MSGPGKDPDRATPTRRPALVVGAGGLMGRALCQRLRASGAEAVAATRDTPPLVRPDGTPA
PALRAAGVVHYLATSVTPGLAETHPERVAADHETFVRTLDALATVEKPPLVVLASTGLTV
SESGDGRPCTEDAEALPKSAYARAKLALERELLYRSPLVPGMVVRMTNVYGPGHALRRGY
GVVAHWLAAVAQGRPLELYGDPDTTRDYLYVDDAVAALAGLGPEAADLPFDVVNIGSGEA
TTLGRLLGVVREVTDRELTVRLRPGRGFDQPANLLDVDRAHRRLGWRARTPLAVGLERTW
RALNGTAVAP

`

I get the error I posted. It does recognize the sequence type and the button does say TBLASTN. I have tried a few different sequences, and always the same error. I was able to do a nucleotide query and get back no hits. (The nucleotide query I had I was not expecting any results, but the amino acid sequence I would expect at least a few blast hits), however if I did a nucleotide query that had expected hits, it would also fail in the same way. I think it is therefore somehow related to generating the results, if there are hits from blast, which seems to correspond with the error message. I however do not know ruby at all, so I am not the best at debugging this.

As an update. I have created a new and smaller database and it seems to be working complete now. However ultimately, I need to get my larger database working. Maybe it is an issue with the number of results, or the time it is taking. I am going to look into trying to limit the results (although so far I cant seem to do that with the parameters via the interface).

Again thanks for your help!

Another update. I have gotten my larger blast database to work. However only by using the parameter:
`
-max_target_seqs 44

`

It works. If I do:`
-max_target_seqs 45

`
it does not work.

I tried another sequence, this time protein and used tblastn and even with
`
-max_target_seqs 1

`
it did NOT work.

Is there some limit on the amount of results returned?

This is indeed curious. The NoMethodError - undefined method `root’ for nil:NilClass: happens if the generated XML file is empty, and in my experience happens only if the BLAST process that SequenceServer launched was terminated before it could complete. In my standard test procedure I blastp 15 protein queries against NCBI NR database and blastn one full scaffold to a genome. The former targets a huge database, while the latter targets as many hits as blast generates by default per query (500).

Is it possible that something is causing blast processes to die on your system prematurely?

– Priyam

This is starting to make more sense. I have been playing with it the past couple days and noticed that when I run blast directly from the shell it will sometime crash giving an error:
`
segmentation fault (core dumped)

`

This one does not seem easy to fix. It was not doing this prior to be upgrading to 2.2.30 (from 2.2.25). However all I did was replace the old binaries with the new ones…maybe that was not a good idea (I thought it might not work out so well…)

I have solved this issue. Completely unrelated to seqeunceserver.

In case it is relevant for someone else. The issue was either that I had created my blast database using makeblastdb from an older version (2.2.25) and used it with 2.2.30. Or that I had manually set the max_file_sz parameter when creating the database. I fixed it by making sure to use makeblastdb from 2.2.30 and leaving the max size set to the default.

All works now!

Great tool, thanks for the help Priyam.

Phew! Thanks Phil. I’m not sure why either case would cause BLAST+ to segfault. If this were reproducible we could have reported this to NCBI or to Dr. Peter Cock (http://blastedbio.blogspot.in/) ;).

From SequenceServer’s side, I guess I could catch this error and show a more informative error message. I’ve opened an issue to track this - https://github.com/yannickwurm/sequenceserver/issues/178

– Priyam

Yes, I am not entirely sure how to reproduce the error, as it was somewhat sporadic, so I do not think it is worth posting.

Thanks for the help! Yes a more friendly error message form SequenceServer would be appropriate.

cheers