Hi Bastien:
Any chance you’re ready for testing on your new faster mirabait (see below)?
Also:
I have found a small bug in mirabait i think… it won’t output the read pairs as
individual files even with a directory specified for -o (fails a check).
Interleaved output is fine.
This tiny patch fixes the check:
I didn’t find you on github or similar website - so i hope this is your
preferred method for receiving patches.
--- mod_bait.C.orig 2016-04-29 17:11:34.222707303 -0400
+++ mod_bait.C 2016-04-29 15:43:51.708119008 -0400
@@ -762,12 +762,14 @@
}
}
MB_mergeoutput=setmerge;
- if(setmerge) fileRemove(finaldest.string(),false);
- if(boost::filesystem::exists(finaldest)){
- cout.flush();
- cerr << "\n\nCould not remove file " << finaldest << "\nIs it writable?";
- exit(10);
- }
+ if(setmerge){
+ fileRemove(finaldest.string(),false);
+ if(boost::filesystem::exists(finaldest)){
+ cout.flush();
+ cerr << "\n\nCould not remove file " << finaldest << "\nIs it
writable?";
+ exit(10);
+ }
+ }
}
if(!MB_misspath.empty()){
boost::filesystem::path finaldest(walkSymLinks(MB_misspath));
@@ -779,12 +781,14 @@
}
}
MB_mergeoutput=setmerge;
- if(setmerge) fileRemove(finaldest.string(),false);
- if(boost::filesystem::exists(finaldest)){
- cout.flush();
- cerr << "\n\nCould not remove file " << finaldest << "\nIs it writable?";
- exit(10);
- }
+ if(setmerge){
+ fileRemove(finaldest.string(),false);
+ if(boost::filesystem::exists(finaldest)){
+ cout.flush();
+ cerr << "\n\nCould not remove file " << finaldest << "\nIs it
writable?";
+ exit(10);
+ }
+ }
}
On Oct 28, 2015, at 9:46 PM, Langhorst, Brad <Langhorst@xxxxxxx> wrote:
On Oct 28, 2015, at 9:39 PM, Bastien Chevreux <bach@xxxxxxxxxxxx> wrote:
Just for mirabait?
Yep, just for mirabait.
Interesting what a single post can do. In short, the next release of MIRA
will have a revamped mirabait, with a 2^31bp limit in sequence lengths, but
which also will be quite a deal faster.
30kb limit in sequences? Oooops, I was using old routines. Changing to new
ones drops the limit and gives instant 25% boost in baiting speed.
Hmmm, loading takes quite long? A few tweaks here and there doubles the
loading speed.
These two steps alone reduce runtime by 40%.
But then … why is the baiting step not multithreaded? Oh wait, a simple
version is trivial to implement.
Result: with 4 cores, the new version is now 3x faster than the old one. Yay.
Bastien:
Wow … just wow.
This tool is so useful, and I thought it was fast already.
Thanks!
Brad