From fa6605e39161e15212e44b4f95d1a6330c43d1d0 Mon Sep 17 00:00:00 2001 From: martinahansen Date: Thu, 29 Nov 2012 20:12:34 +0000 Subject: [PATCH] disabling backtrack which causes compile error git-svn-id: http://biopieces.googlecode.com/svn/trunk@2016 74ccb610-7750-0410-82ae-013aeee3265d --- code_ruby/lib/maasha/seq.rb | 2 +- code_ruby/lib/maasha/seq/backtrack.rb | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/code_ruby/lib/maasha/seq.rb b/code_ruby/lib/maasha/seq.rb index 57d70b2..41c221d 100644 --- a/code_ruby/lib/maasha/seq.rb +++ b/code_ruby/lib/maasha/seq.rb @@ -23,7 +23,7 @@ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< require 'maasha/bits' -require 'maasha/seq/backtrack' +#require 'maasha/seq/backtrack' require 'maasha/seq/digest' #require 'maasha/seq/patscan' require 'maasha/seq/patternmatcher' diff --git a/code_ruby/lib/maasha/seq/backtrack.rb b/code_ruby/lib/maasha/seq/backtrack.rb index 714cb22..1de8b6c 100644 --- a/code_ruby/lib/maasha/seq/backtrack.rb +++ b/code_ruby/lib/maasha/seq/backtrack.rb @@ -134,7 +134,8 @@ module BackTrack char *p, // Pattern unsigned int mis, // Max mismatches unsigned int ins, // Max insertions - unsigned int del // Max deletions + unsigned int del, // Max deletions + int state // 1 deletion, -1 insertion, 0 match or mismatch ) { match found = {0, 0, 0, 0}; @@ -153,9 +154,9 @@ module BackTrack } else { - if (mis && *s && *p && (f = backtrack(ss, s + 1, p + 1, mis - 1, ins, del))) return f; - if (ins && *p && (f = backtrack(ss, s, p + 1, mis, ins - 1, del))) return f; - if (del && *s && (f = backtrack(ss, s + 1, p, mis, ins, del - 1))) return f; + if (mis && *s && *p && (f = backtrack(ss, s + 1, p + 1, mis - 1, ins, del, 0))) return f; + if (ins && *p && (state != 1) && (f = backtrack(ss, s, p + 1, mis, ins - 1, del, -1))) return f; + if (del && *s && (state != -1) && (f = backtrack(ss, s + 1, p, mis, ins, del - 1, 1))) return f; } return NULL; @@ -190,15 +191,16 @@ module BackTrack unsigned int mmis = 0; unsigned int mins = 0; unsigned int mdel = 0; + int state = 0; VALUE ary = 0; - if (pos < len) + if (pos < len) // FIXME: pos < len - plen + 1 { s += pos; while (*s) { - if ((f = backtrack(ss, s, p, max_mis, max_ins, max_del))) + if ((f = backtrack(ss, s, p, max_mis, max_ins, max_del, state))) { mbeg = (s - ss); mlen = f->end - mbeg; -- 2.39.5