dear Harris A. Jaffee,
hj@jhu.edu

thank u very much for your explaination.
but i am still confused because of not knowing its algorithm
could u tell me if i can read them from lowlevel_matching.c

let me try to concluded what u have told me:

   1. the algorithm will change every max.Rmismatch to a vector.
by adding -1 if it is not 0.
      e.g.
   if max.Lmismatch=0 it will do : max.Lmismatch = rep(0, nchar(Lpattern))
   if max.Lmismatch=c(2,2)   it will get 2 2 -1 -1 -1
    how does the algorithm use -1 or 0 to control the alignment??

   2. the algorithm will try any suffix segment on  Lmismatch by
   substr(Lpattern, i, nchar(Lpattern)), i = 1:nchar(Lpattern)
      e.g. Lpattern = "TTTAACGT"
   it will try "T","GT",......

   3. during each try, if the length of segment is equal to the lenght of
   subject, the algoritm will stop, except it can allow indel.

   4. and indel should be counted as a mismatch
so it is :
>  subject = "TTTACGT"
> Lpattern = "TTTAACGT"         # pattern has an extra 'A'

# need to allow for 1 "edit", to remove the extra A
> trimLRPatterns(Lpattern = Lpattern, subject = subject, max.Lmismatch=1,
        with.Lindels=TRUE)
[1] ""

 trimLRPatterns(Lpattern = Lpattern, subject = subject, max.Lmismatch=4)
[1] ""
i think when the algorithm take "TTAACGT", never try "TTTAACGT",
because no indel allowed.

>

	[[alternative HTML version deleted]]

