00001
00002
00003
00004
00005
00006 #include "common.h"
00007 #include "errabort.h"
00008 #include "jointalign.h"
00009
00010 static char const rcsid[] = "$Id: jointalign.c,v 1.11 2003/05/06 07:33:43 kate Exp $";
00011
00012
00013 void htmlPrintJointAlignment( char *seq1, char *seq2, int columnNum,
00014 int start, int end, char *strand )
00015
00016
00017
00018
00019 {
00020 int i;
00021 validateSeqs( seq1, seq2 );
00022
00023
00024
00025 for( i=0; i<strlen(seq1); i += columnNum )
00026 htmlPrintJointAlignmentLine(seq1, seq2, i, min(i+columnNum, strlen(seq1)));
00027
00028
00029
00030 }
00031
00032 void htmlPrintJointAlignmentLine( char *seq1, char *seq2, int start, int end)
00033
00034
00035 {
00036
00037 int i;
00038 printf("<tt>");
00039 for( i=start; i<end; i++ )
00040 printf("%c",seq1[i]);
00041 printf("<br>");
00042 for( i=start; i<end; i++ )
00043 {
00044 if(ucaseMatch( seq1[i], seq2[i] ))
00045 printf("|");
00046 else
00047 printf(" ");
00048 }
00049 printf("<br>");
00050 for( i=start; i<end; i++ )
00051 printf("%c",seq2[i]);
00052 printf("</tt>");
00053 printf("<br><br>");
00054
00055
00056 }
00057
00058 boolean ucaseMatch( char a, char b )
00059
00060 {
00061 if( toupper( a ) == toupper( b ) )
00062 return( TRUE );
00063 else
00064 return( FALSE );
00065 }
00066
00067 void validateSeqs( char *seq1, char *seq2 )
00068
00069 {
00070 if( strlen(seq1) != strlen(seq2) )
00071 {
00072 printf("%s<br>%s<br>", seq1, seq2 );
00073 errAbort("The sequences are not properly aligned (different lengths)<br>\n");
00074 }
00075 }