From 2a118eedda0a34792dab468b79376c65497fc3eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Boyer?= Date: Mon, 7 May 2012 09:14:09 +0000 Subject: [PATCH] MOD: In the printRepeat function, corrected rdelta and ldelta management git-svn-id: https://www.grenoble.prabi.fr/svn/LECASofts/ecoPCR/trunk@417 60f365c0-8329-0410-b2a4-ec073aeeaa1d --- src/ecopcr.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/ecopcr.c b/src/ecopcr.c index fe40761..b12c272 100644 --- a/src/ecopcr.c +++ b/src/ecopcr.c @@ -146,7 +146,7 @@ void printRepeat(ecoseq_t *seq, AC = seq->AC; seqlength = seq->SQ_length; - + main_taxon = &taxonomy->taxons->taxon[seq->taxid]; taxid = main_taxon->taxid; @@ -201,20 +201,29 @@ void printRepeat(ecoseq_t *seq, superkingdom_name = "###"; } + + ldelta=(pos1 <= delta)?pos1:delta; - rdelta=(pos2+delta>=seqlength)?seqlength-pos2-1:delta; + + + + /*rdelta=((pos2+delta)>=seqlength)?seqlength-pos2-1:delta; */ + rdelta=((pos2+delta)>=seqlength)?seqlength-pos2:delta; amplifia = getSubSequence(seq->SQ,pos1-ldelta,pos2+rdelta); amplength= strlen(amplifia)-rdelta-ldelta; if (strand=='R') { - ecoComplementSequence(amplifia); - strncpy(oligo1,amplifia+ rdelta ,o2->patlen); + + ecoComplementSequence(amplifia); + + strncpy(oligo1,amplifia + rdelta ,o2->patlen); + oligo1[o2->patlen]=0; error1=err2; - - strncpy(oligo2,amplifia + ldelta + amplength - o1->patlen,o1->patlen); + + strncpy(oligo2, amplifia + rdelta + amplength - o1->patlen,o1->patlen); oligo2[o1->patlen]=0; error2=err1; @@ -227,13 +236,13 @@ void printRepeat(ecoseq_t *seq, rdelta=delta+o1->patlen; } } - else + else /* strand == 'D' */ { strncpy(oligo1,amplifia+ldelta,o1->patlen); oligo1[o1->patlen]=0; error1=err1; - strncpy(oligo2,amplifia + rdelta + amplength - o2->patlen,o2->patlen); + strncpy(oligo2,amplifia + ldelta + amplength - o2->patlen,o2->patlen); oligo2[o2->patlen]=0; error2=err2; @@ -247,7 +256,6 @@ void printRepeat(ecoseq_t *seq, } - ecoComplementSequence(oligo2); if(delta==0) @@ -257,7 +265,7 @@ void printRepeat(ecoseq_t *seq, delta=ldelta+rdelta+amplength-o1->patlen-o2->patlen; for (i=0;i