[mira_talk] Re: building 4.9.5 with gcc 4.4.7?

  • From: "Langhorst, Brad" <Langhorst@xxxxxxx>
  • To: "mira_talk@xxxxxxxxxxxxx" <mira_talk@xxxxxxxxxxxxx>
  • Date: Fri, 29 Apr 2016 21:35:06 +0000

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

Other related posts: