开发者

BLAST Database allocation error

I asked this question on the bioinformatics version of stackexchange, but since I think it is a computer problem I thought I should try my luck here.

When running local BLAST (v2.2.24+) on a big database (all human proteins) I get the following error:

proteinsApplicationError: Command 'blast-2.2.24+/bin/blastp.exe -query "query.fasta" -
db "human-proteins.fasta" -out blastOut开发者_Go百科put.xml -evalue 0.01 -outfmt 5'       
returned     non-zero exit status 2, 'BLAST Database error: CSeqDBAtlas::MapMmap: 
While mapping file [human-proteins.fasta.psq] with 5550749 bytes allocated, caught 
exception:'

When googling I only got to the source code of seqdbatlas: http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/lxr/source/src/objtools/blast/seqdb_reader/seqdbatlas.cpp in which I found:

1214         if (expt.length()) {
1215             // For now, if I can't memory map the file, I'll revert to
1216             // the old way: malloc a chunk of core and copy the data
1217             // into it.
1218             
1219             if (expt.find(": Cannot allocate memory") == expt.npos) {
1220                 expt = string("CSeqDBAtlas::MapMmap: While mapping file [") + 
                 (*m_Fname) + "] with " +
1221                     NStr::UInt8ToString(atlas->GetCurrentAllocationTotal()) +
1222                     " bytes allocated, caught exception:" + expt;
1223                 
1224                 SeqDB_ThrowException(CSeqDBException::eFileErr, expt);
1225             }
1226         }

My knowledge of C++ is limited, but what I get from this is that there isn't enough memory on the PC to run BLAST over that size of a database. Is this correct and if so, is there a way to run this BLAST without getting a computer with a bigger memory? If it's not correct, what is the error that I'm getting?

Thanks in advance, Niek


Fixed it by breaking the query file up in two and using blast 2.2.25 instead of 2.2.24

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜