Memory optimisations #80
Replies: 2 comments 4 replies
-
Hi Lutz and thank you for providing this guide in how to optimize memory usage running xiSearch. Thank you! |
Beta Was this translation helpful? Give feedback.
-
Hello, Thanks for the question. Maybe I answer, since those scripts I have to say those scripts are more examples than recommendations, especially with regards to memory consumption. That is a function of the size of the database, which is dictated by number of sequences, missed cleavages and modifications. So 100Gb is a number I used to search a large database with hundreds of proteins, 3 missed cleavages and 4 modifications. This can be considerably lowered for simpler databases. I think, and @lutzfischer can correct me here, the speed per scanwould be the same in your example as long as you are under the memory limit in both cases, just the larger file would take longer. However, you can split the larger runs into multiple files each contaning for example 15 0000 scans to have each job process the same amount of reads. |
Beta Was this translation helpful? Give feedback.
-
When searching very large databases memory can become a constraint. (xiSEARCH versions 1.8 and newer should warn if memory becomes a constraint).
One option is to simply give xiSEARCH more memory (xiSEARCh version <1.8 with the start parameter -Xmx, >=1.8 as a setting in the GUI). But this is limited by how much memory is available. There are some options that can be considered when using more memory is not an option
Memory constraints
Mainly there are two set of memory constraint in xiSEARCH.
Fixed Memory constraints
First is a "fixed" restrain through out the run time. This is mainly dependent on how many peptides and in result fragments are to be considered for crosslinks.
This is mainly affected by the number of proteins (and size of these) and the number of variable modifications.
Limiting the proteins in your FASTA file to only proteins likely abundant enough in your sample can help and also some settings related to modifications.
MAX_MODIFICATION_PER_PEPTIDE:2
MAX_MODIFIED_PEPTIDES_PER_PEPTIDE:10
MAXPEPTIDEMASS:4000
Per Thread Memory constraints
Second memory constraint is how much memory each thread can use. If a search appears to stall in the middle of a search you likely run against this. I.e the search starts but then appears to stop after some percent of spectra where processed. This is down to xiSEARCH running out of memory during search and then java spends more time in trying to free up some memory then actually searching spectra. This often results in an OutOfMemoryError at some point.
Reducing number of search threads:
maxpeakcandidates:10000
mgcpeaks:5
Beta Was this translation helpful? Give feedback.
All reactions