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:
2010-02-24 15:00:11 +00:00
parent 7331dd5612
commit f6f39f58fe

View File

@ -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);