Blast2 experiments are not symmetric and the results depend on the sequence selected as query (-i) and the sequence selected as target (-j). The second sequence (-j) statistically has the role of database sequence. The database size is fundamental in the statistic evaluation of a hit (E-value).
You can find information about that in:
http://www.ncbi.nlm.nih.gov/staff/tao/URLAPI/bl2seq.html#5
You can set the size of the database to a constant value independent of the size of the second sequence (-j).
This has been extracted from the above url:
*Option -d
Function Theoretical database size
Default 0
Example To use a theoretical database size of 2000000, use: -d 2000000
Note:
Default is to use actual size of the second query. We can use this parameter to provide the actual size of a real database such as protein nr to get a more realistic Expect value for the returned protein alignment.*
In addition, the internal heuristics of BLAST implies that the same BLAST experiment can yield results slightly different.
With regard to multiple query sequences (-i) using BLASTALL we have detected limits in the number of sequences that allows to obtain a complete output file. Our solution was to split the query in several sets (our experimental limit was around 3000 sequences in the query). In the case of BLAST2 you can construct a script to generate an independent blast2 for each short sequence (-i) against the large sequence (-j).
Statistically -i is considered the query and -j the database.
Guidobot, could you post which version of blast you are using and your blast2 command line parameters?
(so more specifically I'm running blastn)
please edit question and insert this new information there
please edit your question and insert this new information there