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 'T':
|
||||
outseq[j++] = 'T'; break;
|
||||
default:
|
||||
outseq[0]=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
|
||||
double nparam_CalcSelfTM(PNNParams nparm, char* seq, int len)
|
||||
{
|
||||
const unsigned long long minus1 = 0xFFFFFFFFFFFFFFFF;
|
||||
const double NaN = *((double*)&minus1);
|
||||
double thedH = 0;
|
||||
//double thedS = nparam_GetInitialEntropy(nparm);
|
||||
double thedS = -5.9f+nparm->rlogc;
|
||||
@ -528,6 +532,8 @@ double nparam_CalcSelfTM(PNNParams nparm, char* seq, int len)
|
||||
char *useq = seq;
|
||||
|
||||
nparam_CleanSeq (seq, nseq, len);
|
||||
if (!nseq[0])
|
||||
return NaN;
|
||||
useq = nseq;
|
||||
|
||||
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)
|
||||
{
|
||||
const unsigned long long minus1 = 0xFFFFFFFFFFFFFFFF;
|
||||
const double NaN = *((double*)&minus1);
|
||||
double thedH = 0;
|
||||
//double thedS = nparam_GetInitialEntropy(nparm);
|
||||
double thedS = -5.9f+nparm->rlogc;
|
||||
@ -565,9 +573,13 @@ double nparam_CalcTwoTM(PNNParams nparm, char* seq1, char* seq2, int len)
|
||||
char *useq2;
|
||||
|
||||
nparam_CleanSeq (seq1, nseq1, len);
|
||||
if (!nseq1[0])
|
||||
return NaN;
|
||||
useq1 = nseq1;
|
||||
|
||||
nparam_CleanSeq (seq2, nseq2, len);
|
||||
if (!nseq2[0])
|
||||
return NaN;
|
||||
useq2 = nseq2;
|
||||
|
||||
//fprintf (stderr,"Primer : %s\n",useq);
|
||||
|
Reference in New Issue
Block a user