New option for reference sequence
and bug correction for insequence count git-svn-id: https://www.grenoble.prabi.fr/svn/LECASofts/ecoPrimers/trunk@218 60f365c0-8329-0410-b2a4-ec073aeeaa1d
This commit is contained in:
@ -205,8 +205,8 @@ static void buildPrimerPairsForOneSeq(uint32_t seqid,
|
||||
{
|
||||
if (primers->primers[i].directCount[seqid]==1)
|
||||
{
|
||||
matches[j].primer = primers->primers+i;
|
||||
matches[j].strand=TRUE;
|
||||
matches[j].primer = primers->primers+i;
|
||||
matches[j].strand=TRUE;
|
||||
matches[j].position=primers->primers[i].directPos[seqid].value;
|
||||
j++;
|
||||
}
|
||||
@ -222,8 +222,8 @@ static void buildPrimerPairsForOneSeq(uint32_t seqid,
|
||||
{
|
||||
if (primers->primers[i].reverseCount[seqid]==1)
|
||||
{
|
||||
matches[j].primer = primers->primers+i;
|
||||
matches[j].strand=FALSE;
|
||||
matches[j].primer = primers->primers+i;
|
||||
matches[j].strand=FALSE;
|
||||
matches[j].position=primers->primers[i].reversePos[seqid].value;
|
||||
j++;
|
||||
}
|
||||
@ -270,6 +270,8 @@ static void buildPrimerPairsForOneSeq(uint32_t seqid,
|
||||
current.sumd=0;
|
||||
current.inexample=0;
|
||||
current.outexample=0;
|
||||
current.curseqid = 0;
|
||||
current.refsequence=-1;
|
||||
|
||||
|
||||
// Standardize the pair
|
||||
@ -285,7 +287,7 @@ static void buildPrimerPairsForOneSeq(uint32_t seqid,
|
||||
current.asdirect1=current.asdirect2;
|
||||
current.asdirect2=bswp;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Look for the new pair in already seen pairs
|
||||
|
||||
@ -295,7 +297,7 @@ static void buildPrimerPairsForOneSeq(uint32_t seqid,
|
||||
if (seqdb[seqid]->isexample)
|
||||
|
||||
{
|
||||
pcurrent->inexample++;
|
||||
//pcurrent->inexample++;
|
||||
pcurrent->sumd+=distance;
|
||||
|
||||
if ((pcurrent->maxd==DMAX) || (distance > pcurrent->maxd))
|
||||
@ -304,11 +306,29 @@ static void buildPrimerPairsForOneSeq(uint32_t seqid,
|
||||
if (distance < pcurrent->mind)
|
||||
pcurrent->mind = distance;
|
||||
}
|
||||
else
|
||||
pcurrent->outexample++;
|
||||
//else
|
||||
// pcurrent->outexample++;
|
||||
|
||||
if ((pcurrent->outexample+pcurrent->inexample)==1)
|
||||
if (pcurrent->curseqid != (seqid+1))
|
||||
{
|
||||
if (seqdb[seqid]->isexample)
|
||||
pcurrent->inexample++;
|
||||
else
|
||||
pcurrent->outexample++;
|
||||
|
||||
if (pcurrent->curseqid != 0)
|
||||
pcurrent->curseqid = seqid+1;
|
||||
}
|
||||
|
||||
/*if ((pcurrent->outexample+pcurrent->inexample)==0)
|
||||
{
|
||||
fprintf(stderr,"pcurrent->outexample+pcurrent->inexample=0!\n");
|
||||
exit(0);
|
||||
}*/
|
||||
|
||||
if (pcurrent->curseqid == 0)//((pcurrent->outexample+pcurrent->inexample)==1)
|
||||
{
|
||||
pcurrent->curseqid = seqid+1;
|
||||
paircount++;
|
||||
pcurrent->pcr.ampslot=200;
|
||||
pcurrent->pcr.ampcount=0;
|
||||
@ -326,9 +346,13 @@ static void buildPrimerPairsForOneSeq(uint32_t seqid,
|
||||
}
|
||||
}
|
||||
|
||||
if (seqid==options->refseqid)
|
||||
pcurrent->refsequence=seqid;
|
||||
pcurrent->pcr.amplifias[pcurrent->pcr.ampcount].length=distance;
|
||||
pcurrent->pcr.amplifias[pcurrent->pcr.ampcount].sequence=seqdb[seqid];
|
||||
pcurrent->pcr.amplifias[pcurrent->pcr.ampcount].strand=strand;
|
||||
pcurrent->pcr.amplifias[pcurrent->pcr.ampcount].begin=matches[i].position + options->primer_length;
|
||||
pcurrent->pcr.amplifias[pcurrent->pcr.ampcount].end= matches[j].position - 1;
|
||||
|
||||
if (strand)
|
||||
pcurrent->pcr.amplifias[pcurrent->pcr.ampcount].amplifia= seqdb[seqid]->SQ + matches[i].position + options->primer_length;
|
||||
|
Reference in New Issue
Block a user