prophyle / prophex

ProPhex – an exact k-mer index using Burrows-Wheeler Transform
MIT License
6 stars 1 forks source link

memory fix #24

Open mjsull opened 4 years ago

mjsull commented 4 years ago

Sorry if I have misunderstood what the program is doing.

From what I can tell, prophex is storing all the results from each query in memory and then dumping them to STDOUT once the software has ended. For very large read files, this means prophex is using a lot of memory it doesn't need to. Would it not be better to dump each read to STDOUT as the results come in?

karel-brinda commented 4 years ago

@salikhov-kamil would be in a better position to answer this. As far as I understand this part, ProPhex uses the BWA parallelization engine based on klib. It shouldn't be storing all the data in memory, but rather do buffering (since the output data are generated in different threads, this is necessary). The data may be indeed be printed in batches, but this definitely shouldn't cause storing all output data in memory (unless it's a very small dataset). However, all these things are always dependent on the specific settings of various parameters in the program so I would like to double-check. Do you have a specific example which suggests that everything is stored in memory till the end and printed?