patch Tm calculation to return NaN if one of the two sequence is composed with letters different than ACGT
git-svn-id: https://www.grenoble.prabi.fr/svn/LECASofts/ecoPCR/trunk@243 60f365c0-8329-0410-b2a4-ec073aeeaa1d
This commit is contained in:
@ -507,6 +507,8 @@ void nparam_CleanSeq (char* inseq, char* outseq, int len)
|
|||||||
case '\3':
|
case '\3':
|
||||||
case 'T':
|
case 'T':
|
||||||
outseq[j++] = 'T'; break;
|
outseq[j++] = 'T'; break;
|
||||||
|
default:
|
||||||
|
outseq[0]=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
outseq[j] = '\0';
|
outseq[j] = '\0';
|
||||||
@ -515,6 +517,8 @@ void nparam_CleanSeq (char* inseq, char* outseq, int len)
|
|||||||
//Calculate TM for given sequence against its complement
|
//Calculate TM for given sequence against its complement
|
||||||
double nparam_CalcSelfTM(PNNParams nparm, char* seq, int len)
|
double nparam_CalcSelfTM(PNNParams nparm, char* seq, int len)
|
||||||
{
|
{
|
||||||
|
const unsigned long long minus1 = 0xFFFFFFFFFFFFFFFF;
|
||||||
|
const double NaN = *((double*)&minus1);
|
||||||
double thedH = 0;
|
double thedH = 0;
|
||||||
//double thedS = nparam_GetInitialEntropy(nparm);
|
//double thedS = nparam_GetInitialEntropy(nparm);
|
||||||
double thedS = -5.9f+nparm->rlogc;
|
double thedS = -5.9f+nparm->rlogc;
|
||||||
@ -528,6 +532,8 @@ double nparam_CalcSelfTM(PNNParams nparm, char* seq, int len)
|
|||||||
char *useq = seq;
|
char *useq = seq;
|
||||||
|
|
||||||
nparam_CleanSeq (seq, nseq, len);
|
nparam_CleanSeq (seq, nseq, len);
|
||||||
|
if (!nseq[0])
|
||||||
|
return NaN;
|
||||||
useq = nseq;
|
useq = nseq;
|
||||||
|
|
||||||
for ( i=1;i<len;i++)
|
for ( i=1;i<len;i++)
|
||||||
@ -550,6 +556,8 @@ double nparam_CalcSelfTM(PNNParams nparm, char* seq, int len)
|
|||||||
|
|
||||||
double nparam_CalcTwoTM(PNNParams nparm, char* seq1, char* seq2, int len)
|
double nparam_CalcTwoTM(PNNParams nparm, char* seq1, char* seq2, int len)
|
||||||
{
|
{
|
||||||
|
const unsigned long long minus1 = 0xFFFFFFFFFFFFFFFF;
|
||||||
|
const double NaN = *((double*)&minus1);
|
||||||
double thedH = 0;
|
double thedH = 0;
|
||||||
//double thedS = nparam_GetInitialEntropy(nparm);
|
//double thedS = nparam_GetInitialEntropy(nparm);
|
||||||
double thedS = -5.9f+nparm->rlogc;
|
double thedS = -5.9f+nparm->rlogc;
|
||||||
@ -565,9 +573,13 @@ double nparam_CalcTwoTM(PNNParams nparm, char* seq1, char* seq2, int len)
|
|||||||
char *useq2;
|
char *useq2;
|
||||||
|
|
||||||
nparam_CleanSeq (seq1, nseq1, len);
|
nparam_CleanSeq (seq1, nseq1, len);
|
||||||
|
if (!nseq1[0])
|
||||||
|
return NaN;
|
||||||
useq1 = nseq1;
|
useq1 = nseq1;
|
||||||
|
|
||||||
nparam_CleanSeq (seq2, nseq2, len);
|
nparam_CleanSeq (seq2, nseq2, len);
|
||||||
|
if (!nseq2[0])
|
||||||
|
return NaN;
|
||||||
useq2 = nseq2;
|
useq2 = nseq2;
|
||||||
|
|
||||||
//fprintf (stderr,"Primer : %s\n",useq);
|
//fprintf (stderr,"Primer : %s\n",useq);
|
||||||
|
Reference in New Issue
Block a user