summaryrefslogtreecommitdiff
path: root/api/txalign.c
diff options
context:
space:
mode:
Diffstat (limited to 'api/txalign.c')
-rw-r--r--api/txalign.c210
1 files changed, 78 insertions, 132 deletions
diff --git a/api/txalign.c b/api/txalign.c
index 21bfec8b..05dea89b 100644
--- a/api/txalign.c
+++ b/api/txalign.c
@@ -1,4 +1,4 @@
-/* $Id: txalign.c,v 6.81 2003/11/25 16:24:03 dondosha Exp $
+/* $Id: txalign.c,v 6.83 2004/05/14 16:31:03 kans Exp $
***************************************************************************
* *
* COPYRIGHT NOTICE *
@@ -27,13 +27,19 @@
*
* File Name: txalign.c
*
-* $Revision: 6.81 $
+* $Revision: 6.83 $
*
* File Description: Formating of text alignment for the BLAST output
*
* Modifications:
* --------------------------------------------------------------------------
* $Log: txalign.c,v $
+* Revision 6.83 2004/05/14 16:31:03 kans
+* ScoreAndEvalueToBuffers had a typo in OS_MAC specific code
+*
+* Revision 6.82 2004/05/14 15:38:09 dondosha
+* Made function ScoreAndEvalueToBuffers public
+*
* Revision 6.81 2003/11/25 16:24:03 dondosha
* Use query number for synchronizeCheck; do not show structure link if RID not available
*
@@ -4587,6 +4593,62 @@ Tx_PrintDefLine(BlastDefLinePtr bdsp, CharPtr buffer, Int4 length)
return TRUE;
}
+NLM_EXTERN void LIBCALL
+ScoreAndEvalueToBuffers(FloatHi bit_score, FloatHi evalue,
+ CharPtr bit_score_buf, CharPtr PNTR evalue_buf,
+ Boolean knock_off_allowed)
+{
+#ifdef OS_MAC
+ if (evalue < 1.0e-180) {
+ sprintf(*evalue_buf, "0.0");
+ } else if (evalue < 1.0e-99) {
+ sprintf(*evalue_buf, "%2.0Le", evalue);
+ if (knock_off_allowed)
+ (*evalue_buf)++; /* Knock off digit. */
+ } else if (evalue < 0.0009) {
+ sprintf(*evalue_buf, "%3.0Le", evalue);
+ } else if (evalue < 0.1) {
+ sprintf(*evalue_buf, "%4.3Lf", evalue);
+ } else if (evalue < 1.0) {
+ sprintf(*evalue_buf, "%3.2Lf", evalue);
+ } else if (evalue < 10.0) {
+ sprintf(*evalue_buf, "%2.1Lf", evalue);
+ } else {
+ sprintf(*evalue_buf, "%5.0Lf", evalue);
+ }
+ if (bit_score > 9999)
+ sprintf(bit_score_buf, "%4.3Le", bit_score);
+ else if (bit_score > 99.9)
+ sprintf(bit_score_buf, "%4.0ld", (long)bit_score);
+ else /* %4.1Lf is bad on 68K Mac, so cast to long */
+ sprintf(bit_score_buf, "%4.0ld", (long)bit_score);
+#else
+ if (evalue < 1.0e-180) {
+ sprintf(*evalue_buf, "0.0");
+ } else if (evalue < 1.0e-99) {
+ sprintf(*evalue_buf, "%2.0le", evalue);
+ if (knock_off_allowed)
+ (*evalue_buf)++; /* Knock off digit. */
+ } else if (evalue < 0.0009) {
+ sprintf(*evalue_buf, "%3.0le", evalue);
+ } else if (evalue < 0.1) {
+ sprintf(*evalue_buf, "%4.3lf", evalue);
+ } else if (evalue < 1.0) {
+ sprintf(*evalue_buf, "%3.2lf", evalue);
+ } else if (evalue < 10.0) {
+ sprintf(*evalue_buf, "%2.1lf", evalue);
+ } else {
+ sprintf(*evalue_buf, "%5.0lf", evalue);
+ }
+ if (bit_score > 9999)
+ sprintf(bit_score_buf, "%4.3le", bit_score);
+ else if (bit_score > 99.9)
+ sprintf(bit_score_buf, "%4.0ld", (long)bit_score);
+ else
+ sprintf(bit_score_buf, "%4.1lf", bit_score);
+#endif
+}
+
NLM_EXTERN Boolean LIBCALL
PrintDefLinesFromSeqAlignWithPath(SeqAlignPtr seqalign, Int4 line_length, FILE *outfp, Uint4 options,
Int4 mode, Int2Ptr marks, Int4 number_of_descriptions,
@@ -5032,91 +5094,24 @@ PrintDefLinesFromSeqAlignWithPath(SeqAlignPtr seqalign, Int4 line_length, FILE *
*(ptr + pos) = NULLB;
}
-#ifdef OS_MAC
if (txsp->found_score) {
evalue = txsp->evalue;
- eval_buff_ptr = eval_buff;
- if (evalue < 1.0e-180) {
- sprintf(eval_buff, "0.0");
- } else if (evalue < 1.0e-99) {
- sprintf(eval_buff, "%2.0Le", evalue);
- eval_buff_ptr++; /* Knock off digit. */
- } else if (evalue < 0.0009) {
- sprintf(eval_buff, "%3.0Le", evalue);
- } else if (evalue < 0.1) {
- sprintf(eval_buff, "%4.3Lf", evalue);
- } else if (evalue < 1.0) {
- sprintf(eval_buff, "%3.2Lf", evalue);
- } else if (evalue < 10.0) {
- sprintf(eval_buff, "%2.1Lf", evalue);
- } else {
- sprintf(eval_buff, "%5.0Lf", evalue);
- }
-
bit_score = txsp->bit_score;
- if (bit_score > 9999) {
- sprintf(bit_score_buff, "%4.3Le", bit_score);
- } else if (bit_score > 99.9) {
- sprintf(bit_score_buff, "%4.0ld", (long) bit_score);
- } else {
- sprintf(bit_score_buff, "%4.0ld", (long) bit_score); /* %4.0Lf is bad on 68K Mac, so cast to long */
- }
-
- if (options & TXALIGN_HTML) {
- if (gi != 0)
- sprintf(id_buffer, "%ld", (long) gi);
- else
- sprintf(id_buffer, "%s", txsp->buffer_id);
- bit_score_buff_ptr = bit_score_buff;
- if (*bit_score_buff_ptr == ' ') {
- bit_score_buff_ptr++;
- sprintf(buffer1, " <a href = #%s>%s</a>", id_buffer, bit_score_buff_ptr);
- } else {
- sprintf(buffer1, "<a href = #%s>%s</a>", id_buffer, bit_score_buff_ptr);
- }
- } else {
- sprintf(buffer1, "%s", bit_score_buff);
- }
-
-
-#else
- if (txsp->found_score) {
- evalue = txsp->evalue;
+
eval_buff_ptr = eval_buff;
- if (evalue < 1.0e-180) {
- sprintf(eval_buff, "0.0");
- } else if (evalue < 1.0e-99) {
- sprintf(eval_buff, "%2.0le", evalue);
- eval_buff_ptr++; /* Knock off digit. */
- } else if (evalue < 0.0009) {
- sprintf(eval_buff, "%3.0le", evalue);
- } else if (evalue < 0.1) {
- sprintf(eval_buff, "%4.3lf", evalue);
- } else if (evalue < 1.0) {
- sprintf(eval_buff, "%3.2lf", evalue);
- } else if (evalue < 10.0) {
- sprintf(eval_buff, "%2.1lf", evalue);
- } else {
- sprintf(eval_buff, "%2.0lf", evalue);
- }
-
- bit_score = txsp->bit_score;
- if (bit_score > 9999) {
- sprintf(bit_score_buff, "%4.3le", bit_score);
- } else if (bit_score > 99.9) {
- sprintf(bit_score_buff, "%4.0ld", (long) bit_score);
- } else {
- sprintf(bit_score_buff, "%4.0lf", bit_score);
- }
-
+ ScoreAndEvalueToBuffers(bit_score, evalue, bit_score_buff,
+ &eval_buff_ptr, TRUE);
+
if (options & TXALIGN_HTML) {
if (gi != 0)
sprintf(id_buffer, "%ld", (long) gi);
else {
- /*
- sprintf(id_buffer, "%s", txsp->buffer_id);
- */
- MuskSeqIdWrite(txsp->id, id_buffer, BUFFER_LENGTH, PRINTID_TEXTID_ACCESSION, FALSE, FALSE);
+#ifdef OS_MAC
+ sprintf(id_buffer, "%s", txsp->buffer_id);
+#else
+ MuskSeqIdWrite(txsp->id, id_buffer, BUFFER_LENGTH,
+ PRINTID_TEXTID_ACCESSION, FALSE, FALSE);
+#endif
}
bit_score_buff_ptr = bit_score_buff;
if (*bit_score_buff_ptr == ' ') {
@@ -5128,8 +5123,7 @@ PrintDefLinesFromSeqAlignWithPath(SeqAlignPtr seqalign, Int4 line_length, FILE *
} else {
sprintf(buffer1, "%s", bit_score_buff);
}
-
-#endif
+
/*adjust N position*/
strLen=StringLen(eval_buff_ptr);
extraSpace=strLen<maxEvalWidth?(maxEvalWidth-strLen):0;
@@ -5808,58 +5802,10 @@ NLM_EXTERN int LIBCALLBACK FormatScoreFunc(AlignStatOptionPtr asop)
}
ff_EndPrint();
eval_buff_ptr = eval_buff;
-#ifdef OS_MAC
- if (evalue < 1.0e-180) {
- sprintf(eval_buff, "0.0");
- } else if (evalue < 1.0e-99) {
- sprintf(eval_buff, "%2.0Le", evalue);
- eval_buff_ptr++; /* Knock off digit. */
- } else if (evalue < 0.0009) {
- sprintf(eval_buff, "%3.0Le", evalue);
- } else if (evalue < 0.1) {
- sprintf(eval_buff, "%4.3Lf", evalue);
- } else if (evalue < 1.0) {
- sprintf(eval_buff, "%3.2Lf", evalue);
- } else if (evalue < 10.0) {
- sprintf(eval_buff, "%2.1Lf", evalue);
- } else {
- sprintf(eval_buff, "%5.0Lf", evalue);
- }
-
- if (bit_score > 9999) {
- sprintf(bit_score_buff, "%4.3Le", bit_score);
- } else if (bit_score > 99.9) {
- sprintf(bit_score_buff, "%4.0ld", (long) bit_score);
- } else {
- sprintf(bit_score_buff, "%4.0ld", (long) bit_score); /* %4.1Lf is bad on 68K Mac, so cast to long */
- }
-#else
- if (evalue < 1.0e-180) {
- sprintf(eval_buff, "0.0");
- } else if (evalue < 1.0e-99) {
- sprintf(eval_buff, "%2.0le", evalue);
- eval_buff_ptr++; /* Knock off digit. */
- } else if (evalue < 0.0009) {
- sprintf(eval_buff, "%3.0le", evalue);
- } else if (evalue < 0.1) {
- sprintf(eval_buff, "%4.3lf", evalue);
- } else if (evalue < 1.0) {
- sprintf(eval_buff, "%3.2lf", evalue);
- } else if (evalue < 10.0) {
- sprintf(eval_buff, "%2.1lf", evalue);
- } else {
- sprintf(eval_buff, "%5.0lf", evalue);
- }
-
- if (bit_score > 9999) {
- sprintf(bit_score_buff, "%4.3le", bit_score);
- } else if (bit_score > 99.9) {
- sprintf(bit_score_buff, "%4.0ld", (long) bit_score);
- } else {
- sprintf(bit_score_buff, "%4.1lf", bit_score);
- }
-#endif
+ ScoreAndEvalueToBuffers(bit_score, evalue, bit_score_buff,
+ &eval_buff_ptr, TRUE);
+
if(asop->html_hot_link == TRUE && *id_buffer != NULLB) {
Int4 m_from, m_to, t_from, t_to;