Sequence circularity, bug correction
git-svn-id: https://www.grenoble.prabi.fr/svn/LECASofts/ecoPCR/trunk@167 60f365c0-8329-0410-b2a4-ec073aeeaa1d
This commit is contained in:
@ -239,7 +239,7 @@ void printRepeat(ecoseq_t *seq,
|
|||||||
error1,
|
error1,
|
||||||
oligo2,
|
oligo2,
|
||||||
error2,
|
error2,
|
||||||
amplength,
|
amplength - o1->patlen - o2->patlen,
|
||||||
amplifia,
|
amplifia,
|
||||||
seq->DE
|
seq->DE
|
||||||
);
|
);
|
||||||
@ -387,9 +387,11 @@ int main(int argc, char **argv)
|
|||||||
strcpy(oligo2,argv[optind]);
|
strcpy(oligo2,argv[optind]);
|
||||||
|
|
||||||
if (circular)
|
if (circular)
|
||||||
|
{
|
||||||
circular = strlen(oligo1);
|
circular = strlen(oligo1);
|
||||||
if (strlen(oligo2)>(size_t)circular)
|
if (strlen(oligo2)>(size_t)circular)
|
||||||
circular = strlen(oligo2);
|
circular = strlen(oligo2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
errflag++;
|
errflag++;
|
||||||
@ -499,7 +501,7 @@ int main(int argc, char **argv)
|
|||||||
for (i=0; i < o1Hits;i++)
|
for (i=0; i < o1Hits;i++)
|
||||||
{
|
{
|
||||||
posi = apatseq->hitpos[0]->val[i];
|
posi = apatseq->hitpos[0]->val[i];
|
||||||
|
|
||||||
if (posi < apatseq->seqlen)
|
if (posi < apatseq->seqlen)
|
||||||
{
|
{
|
||||||
erri = apatseq->hiterr[0]->val[i];
|
erri = apatseq->hiterr[0]->val[i];
|
||||||
|
@ -9,6 +9,7 @@ SRCS=$(SOURCES)
|
|||||||
OBJECTS= $(patsubst %.c,%.o,$(SOURCES))
|
OBJECTS= $(patsubst %.c,%.o,$(SOURCES))
|
||||||
|
|
||||||
LIBFILE= libapat.a
|
LIBFILE= libapat.a
|
||||||
|
RANLIB=ranlib
|
||||||
|
|
||||||
|
|
||||||
include ../global.mk
|
include ../global.mk
|
||||||
@ -20,4 +21,4 @@ clean:
|
|||||||
|
|
||||||
$(LIBFILE): $(OBJECTS)
|
$(LIBFILE): $(OBJECTS)
|
||||||
ar -cr $@ $?
|
ar -cr $@ $?
|
||||||
|
$(RANLIB) $@
|
||||||
|
@ -80,14 +80,14 @@ int CreateS(Pattern *ppat, Int32 lalpha)
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
Int32 ManberNoErr(Seq *pseq, Pattern *ppat, int patnum,int begin,int length)
|
Int32 ManberNoErr(Seq *pseq, Pattern *ppat, int patnum,int begin,int length)
|
||||||
{
|
{
|
||||||
Int32 pos;
|
UInt32 pos;
|
||||||
UInt32 smask, r;
|
UInt32 smask, r;
|
||||||
UInt8 *data;
|
UInt8 *data;
|
||||||
StackiPtr *stkpos, *stkerr;
|
StackiPtr *stkpos, *stkerr;
|
||||||
UInt32 end;
|
UInt32 end;
|
||||||
|
|
||||||
end = begin + length;
|
end = begin + length;
|
||||||
end = (end <= pseq->seqlen) ? end:pseq->seqlen;
|
end = (end <= (size_t)(pseq->seqlen+pseq->circular)) ? end:(size_t)(pseq->seqlen+pseq->circular);
|
||||||
|
|
||||||
|
|
||||||
/* create local masks */
|
/* create local masks */
|
||||||
@ -127,7 +127,7 @@ Int32 ManberNoErr(Seq *pseq, Pattern *ppat, int patnum,int begin,int length)
|
|||||||
Int32 ManberSub(Seq *pseq, Pattern *ppat, int patnum,int begin,int length)
|
Int32 ManberSub(Seq *pseq, Pattern *ppat, int patnum,int begin,int length)
|
||||||
{
|
{
|
||||||
int e, emax, found;
|
int e, emax, found;
|
||||||
Int32 pos;
|
UInt32 pos;
|
||||||
UInt32 smask, cmask, sindx;
|
UInt32 smask, cmask, sindx;
|
||||||
UInt32 *pr, r[2 * MAX_PAT_ERR + 2];
|
UInt32 *pr, r[2 * MAX_PAT_ERR + 2];
|
||||||
UInt8 *data;
|
UInt8 *data;
|
||||||
@ -135,7 +135,7 @@ Int32 ManberSub(Seq *pseq, Pattern *ppat, int patnum,int begin,int length)
|
|||||||
UInt32 end;
|
UInt32 end;
|
||||||
|
|
||||||
end = begin + length;
|
end = begin + length;
|
||||||
end = (end <= pseq->seqlen) ? end:pseq->seqlen;
|
end = (end <= (size_t)(pseq->seqlen+pseq->circular)) ? end:(size_t)(pseq->seqlen+pseq->circular);
|
||||||
|
|
||||||
/* create local masks */
|
/* create local masks */
|
||||||
emax = ppat->maxerr;
|
emax = ppat->maxerr;
|
||||||
@ -193,7 +193,7 @@ Int32 ManberSub(Seq *pseq, Pattern *ppat, int patnum,int begin,int length)
|
|||||||
Int32 ManberIndel(Seq *pseq, Pattern *ppat, int patnum,int begin,int length)
|
Int32 ManberIndel(Seq *pseq, Pattern *ppat, int patnum,int begin,int length)
|
||||||
{
|
{
|
||||||
int e, emax, found;
|
int e, emax, found;
|
||||||
Int32 pos;
|
UInt32 pos;
|
||||||
UInt32 smask, cmask, sindx;
|
UInt32 smask, cmask, sindx;
|
||||||
UInt32 *pr, r[2 * MAX_PAT_ERR + 2];
|
UInt32 *pr, r[2 * MAX_PAT_ERR + 2];
|
||||||
UInt8 *data;
|
UInt8 *data;
|
||||||
@ -201,7 +201,7 @@ Int32 ManberIndel(Seq *pseq, Pattern *ppat, int patnum,int begin,int length)
|
|||||||
UInt32 end;
|
UInt32 end;
|
||||||
|
|
||||||
end = begin + length;
|
end = begin + length;
|
||||||
end = (end <= pseq->seqlen) ? end:pseq->seqlen;
|
end = (end <= (size_t)(pseq->seqlen+pseq->circular)) ? end:(size_t)(pseq->seqlen+pseq->circular);
|
||||||
|
|
||||||
/* create local masks */
|
/* create local masks */
|
||||||
emax = ppat->maxerr;
|
emax = ppat->maxerr;
|
||||||
|
@ -15,6 +15,7 @@ SRCS=$(SOURCES)
|
|||||||
OBJECTS= $(patsubst %.c,%.o,$(SOURCES))
|
OBJECTS= $(patsubst %.c,%.o,$(SOURCES))
|
||||||
|
|
||||||
LIBFILE= libecoPCR.a
|
LIBFILE= libecoPCR.a
|
||||||
|
RANLIB= ranlib
|
||||||
|
|
||||||
|
|
||||||
include ../global.mk
|
include ../global.mk
|
||||||
@ -27,3 +28,4 @@ clean:
|
|||||||
|
|
||||||
$(LIBFILE): $(OBJECTS)
|
$(LIBFILE): $(OBJECTS)
|
||||||
ar -cr $@ $?
|
ar -cr $@ $?
|
||||||
|
$(RANLIB) $@
|
||||||
|
@ -50,13 +50,13 @@ void EncodeSequence(SeqPtr seq)
|
|||||||
|
|
||||||
while (*cseq) {
|
while (*cseq) {
|
||||||
|
|
||||||
*data++ = (IS_UPPER(*cseq) ? *cseq - 'A' : 0x0);
|
*data = (IS_UPPER(*cseq) ? *cseq - 'A' : 0x0);
|
||||||
|
data++;
|
||||||
cseq++;
|
cseq++;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i=0,cseq=seq->cseq;i < seq->circular; i++,cseq++)
|
for (i=0,cseq=seq->cseq;i < seq->circular; i++,cseq++,data++)
|
||||||
*data++ = (IS_UPPER(*cseq) ? *cseq - 'A' : 0x0);
|
*data = (IS_UPPER(*cseq) ? *cseq - 'A' : 0x0);
|
||||||
|
|
||||||
for (i = 0 ; i < MAX_PATTERN ; i++)
|
for (i = 0 ; i < MAX_PATTERN ; i++)
|
||||||
seq->hitpos[i]->top = seq->hiterr[i]->top = 0;
|
seq->hitpos[i]->top = seq->hiterr[i]->top = 0;
|
||||||
|
Reference in New Issue
Block a user