コード例 #1
0
ファイル: blastOut.c プロジェクト: SHuang-Broad/SnowTools
static void blastiodAxtOutput(FILE *f, struct axt *axt, int tSize, int qSize, 
	int lineSize, boolean isProt, boolean isTranslated)
/* Output base-by-base part of alignment in blast-like fashion. */
{
int tOff = axt->tStart;
int dt = (isTranslated ? 3 : 1);
int qOff = axt->qStart;
int lineStart, lineEnd, i;
int digits = calcDigitCount(axt, tSize, qSize);
struct axtScoreScheme *ss = NULL;

if (isProt)
    ss = axtScoreSchemeProteinDefault();
for (lineStart = 0; lineStart < axt->symCount; lineStart = lineEnd)
    {
    lineEnd = lineStart + lineSize;
    if (lineEnd > axt->symCount) lineEnd = axt->symCount;
    fprintf(f, "Query: %-*d ", digits, plusStrandPos(qOff, qSize, axt->qStrand, FALSE));
    for (i=lineStart; i<lineEnd; ++i)
	{
	char c = axt->qSym[i];
	fputc(c, f);
	if (c != '-')
	    ++qOff;
	}
    fprintf(f, " %-d\n", plusStrandPos(qOff, qSize, axt->qStrand, TRUE));
    fprintf(f, "       %*s ", digits, " ");
    for (i=lineStart; i<lineEnd; ++i)
        {
	char q, t, c;
	q = axt->qSym[i];
	t = axt->tSym[i];
	if (isProt)
	    {
	    if (q == t)
	        c = q;
	    else if (ss->matrix[(int)q][(int)t] > 0)
	        c = '+';
	    else
	        c = ' ';
	    }
	else
	    c = ((toupper(q) == toupper(t)) ? '|' : ' ');

	fputc(c, f);
	}
    fprintf(f, "\n");
    fprintf(f, "Sbjct: %-*d ", digits, plusStrandPos(tOff, tSize, axt->tStrand, FALSE));
    for (i=lineStart; i<lineEnd; ++i)
	{
	char c = axt->tSym[i];
	fputc(c, f);
	if (c != '-')
	    tOff += dt;
	}
    fprintf(f, " %-d\n", plusStrandPos(tOff, tSize, axt->tStrand, TRUE));
    fprintf(f, "\n");
    }
}
コード例 #2
0
ファイル: blastOut.c プロジェクト: SHuang-Broad/SnowTools
static int countPositives(char *a, char *b, int size)
/* Count positive (not necessarily identical) protein matches. */
{
int count = 0;
int i;
struct axtScoreScheme *ss = axtScoreSchemeProteinDefault();
for (i=0; i<size; ++i)
    {
    if (ss->matrix[(int)a[i]][(int)b[i]] > 0)
        ++count;
    }
return count;
}
コード例 #3
0
void doOtherProteinAli(struct sqlConnection *conn, 
	char *localId, char *localName)
/* Put up page that shows alignment between this protein sequence
 * and other species. */
{
char *otherTable = cartString(cart, hggOtherPepTable);
char *otherId = cartString(cart, hggOtherId);
char *localTable = genomeSetting("knownGenePep");
bioSeq *localSeq = getSeq(conn, localTable, localId);
bioSeq *otherSeq = getSeq(conn, otherTable, otherId);

if (localSeq != NULL && otherSeq != NULL)
    {
    struct axtScoreScheme *ss = axtScoreSchemeProteinDefault();
    if (axtAffineSmallEnough(localSeq->size, otherSeq->size))
        {
	struct axt *axt = axtAffine(localSeq, otherSeq, ss);
	hPrintf("<TT><PRE>");
	if (axt != NULL)
	    {
	    printf("ID (including gaps) %3.1f%%, coverage (of both) %3.1f%%, score %d\n",
		     axtIdWithGaps(axt)*100, 
		     axtCoverage(axt, localSeq->size, otherSeq->size)*100, 
		     axt->score);
	    printf("Alignment between %s (top %s %daa) and\n",
		    localName, localSeq->name, localSeq->size);
	    printf("%s homolog (bottom %s %daa)\n",
		     otherTable, otherSeq->name, otherSeq->size);
	    printf("\n");
	    axtPrintTraditional(axt, 60, ss, stdout);
	    axtFree(&axt);
	    }
	else
	    {
	    printf("%s and %s don't align\n", localSeq->name, otherSeq->name);
	    }
	hPrintf("</PRE></TT>");
	}
    else
        {
	printf("Sorry, %s (%d amino acids) and %s (%d amino acids) are too big to align",
	    localSeq->name, localSeq->size, otherSeq->name, otherSeq->size);
	}
    }
else
    {
    warn("Couldn't get sequences, database out of sync?");
    }
}
コード例 #4
0
ファイル: freen.c プロジェクト: bh0085/kent
void freen(char *out)
/* Test some hair-brained thing. */
{
char *a = "CVMVFTVSCSKMSSIVDRDDSSIFDGLVEEDDKDKAKRVSRNKSEKKRRDQFNVLIKELG"
"SMLPGNARKMDKSTVLQKSIDFLRKHKETTAQSDASEIRQDWKPTFLSNEEFTQLMLEAL"
"DGFFLAIMTDGSIIYVSESVTSLLEHLPSDLVDQSIFNFIPEGEHSEVYKILSTHLLESD"
"SLTPEYLKSKNQLEFCCHMLRGTIDPKEPSTYEYVRFIGNFKSLTSVSTSTHNGFEGTIQ"
"RTHRPSYEDRVCFVATVRLATPQFIKEMCTVEEPNEEFTSRHSLEWKFLFLDHRAPPIIG"
"YLPFEVLGTSGYDYYHVDDLENLAKCHEHLMQYGKGKSCYYRFLTKGQQWIWLQTHYYIT"
"YHQWNSRPEFIVCTHTVVSYAEVRAERRRELGIEESLPETAADKSQDSGSDNRINTVSLK"
"EALERFDHSPTPSASSRSSRKSSHTAVSDPSSTPTKIPTDTSTPPRQHLPAHEKMTQRRS"
"SFSSQSINSQSVGPSLTQPAMSQAANLPIPQGMSQFQFSAQLGAMQHLKDQLEQRTRMIE"
"ANIHRQQEELRKIQEQLQMVHGQGLQMFLQQSNPGLNFGSVQLSSGNSNIQQLTPVNMQG"
"QVVPANQVQSGHISTGQHMIQQQTLQSTSTQQSQQSVMSGHSQQTSLPSQTPSTLTAPLY"
"NTMVISQPAAGSMVQIPSSMPQNSTQSATVTTFTQDRQIRFSQGQQLVTKLVTAPVACGA"
"VMVPSTMLMGQVVTAYPTFATQQQQAQTLSVTQQQQQQQQQPPQQQQQQQQSSQEQQLPS"
"VQQPAQAQLGQPPQQFLQTSRLLHGNPSTQLILSAAFPLQQSTFPPSHHQQHQPQQQQQL"
"PRHRTDSLTDPSKVQPQ";
char *b = "CVMVFTVSCSKMSSIVDRDDSSIFDGLVEEDDKDKAKRVSRNKSEKKRRDQFNVLIKELG"
"SMLPGNARKMDKSTVLQKSIDFLRKHKETTAQSDASEIRQDWKPTFLSNEEFTQLMLEAL"
"DGFFLAIMTDGSIIYVSESVTSLLEHLPSDLVDQSIFNFIPEGEHSEVYKILSTHLLESD"
"SLTPEYLKSKNQLEFCCHMLRGTIDPKEPSTYEYVRFIGNFKSLTSVSTSTHNGFEGTIQ"
"RTHRPSYEDRVCFVATVRLATPQFIKEMCTVEEPNEEFTSRHSLEWKFLFLDHRAPPIIG"
"xQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
"YHQWNSRPEFIVCTHTVVSYAEVRAERRRELGIEESLPETAADKSQDSGSDNRINTVSLK"
"EALERFDHSPTPSASSRSSRKSSHTAVSDPSSTPTKIPTDTSTPPRQHLPAHEKMTQRRS"
"SFSSQSINSQSVGPSLTQPAMSQAANLPIPQGMSQFQFSAQLGAMQHLKDQLEQRTRMIE"
"ANIHRQQEELRKIQEQLQMVHGQGLQMFLQQSNPGLNFGSVQLSSGNSNIQQLTPVNMQG"
"QVVPANQVQSGHISTGQHMIQQQTLQSTSTQQSQQSVMSGHSQQTSLPSQTPSTLTAPLY"
"NTMVISQPAAGSMVQIPSSMPQNSTQSATVTTFTQDRQIRFSQGQQLVTKLVTAPVACGA"
"VMVPSTMLMGQVVTAYPTFATQQQQAQTLSVTQQQQQQQQQPPQQQQQQQQSSQEQQLPS"
"VQQPAQAQLGQPPQQFLQTSRLLHGNPSTQLILSAAFPLQQSTFPPSHHQQHQPQQQQQL"
"PRHRTDSLTDPSKVQPQ";
char *c = "CVMVFTVSCSKMSSIVDRDDSSIFDGLVEEDDKDKAKRVSRNKSEKKRRDQFNVLIKELG"
"xMLPGNARKMDKSTVLQKSIDFLRKHKETTAQSDASEIRQDWKPTFLSNEEFTQLMLEAL"
"xxFFLAIMTDGSIIYVSESVTSLLEHLPSDLVDQSIFNFIPEGEHSEVYKILSTHLLESD"
"xxxPEYLKSKNQLEFCCHMLRGTIDPKEPSTYEYVRFIGNFKSLTSVSTSTHNGFEGTIQ"
"xxxxPSYEDRVCFVATVRLATPQFIKEMCTVEEPNEEFTSRHSLEWKFLFLDHRAPPIIG"
"xxxxxVLGTSGYDYYHVDDLENLAKCHEHLMQYGKGKSCYYRFLTKGQQWIWLQTHYYIT"
"xxxxxxRPEFIVCTHTVVSYAEVRAERRRELGIEESLPETAADKSQDSGSDNRINTVSLK"
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
"xxxxxxxxSQSVGPSLTQPAMSQAANLPIPQGMSQFQFSAQLGAMQHLKDQLEQRTRMIE"
"xxxxxxxxxLRKIQEQLQMVHGQGLQMFLQQSNPGLNFGSVQLSSGNSNIQQLTPVNMQG"
"xxxxxxxxxxGHISTGQHMIQQQTLQSTSTQQSQQSVMSGHSQQTSLPSQTPSTLTAPLY"
"xxxxxxxxxxxSMVQIPSSMPQNSTQSATVTTFTQDRQIRFSQGQQLVTKLVTAPVACGA"
"xxxxxxxxxxxxVTAYPTFATQQQQAQTLSVTQQQQQQQQQPPQQQQQQQQSSQEQQLPS"
"xxxxxxxxxxxxxQQFLQTSRLLHGNPSTQLILSAAFPLQQSTFPPSHHQQHQPQQQQQL"
"PRHRTDSLTDPSKVQPQ";
char *d = "CVMVFTVSCSKMSSIVDRDDSSIFDGLVEEDDKDKAKRVSRNKSEKKRRDQFNVLIKELG"
"SMLPGNARKMDKSTVLQKSIDFLRKHKETTAQSDASEIRQDWKPTFLSNEEFTQLMLEAL"
"DGFFLAIMTDGSIIYVSESVTSLLEHLPSDLVDQSIFNFIPEGEHSEVYKILSTHLLESD"
"SLTPEYLKSKNQLEFCCHMLRGTIDPKEPSTYEYVRFIGNFKSLTSVSTSTHNGFEGTIQ"
"RTHRPSYEDRVCFVATVRLATPQFIKEMCTVEEPNEEFTSRHSLEWKFLFLDHRAPPIIG"
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
"YHQWNSRPEFIVCTHTVVSYAEVRAERRRELGIEESLPETAADKSQDSGSDNRINTVSLK"
"EALERFDHSPTPSASSRSSRKSSHTAVSDPSSTPTKIPTDTSTPPRQHLPAHEKMTQRRS"
"SFSSQSINSQSVGPSLTQPAMSQAANLPIPQGMSQFQFSAQLGAMQHLKDQLEQRTRMIE"
"ANIHRQQEELRKIQEQLQMVHGQGLQMFLQQSNPGLNFGSVQLSSGNSNIQQLTPVNMQG"
"QVVPANQVQSGHISTGQHMIQQQTLQSTSTQQSQQSVMSGHSQQTSLPSQTPSTLTAPLY"
"NTMVISQPAAGSMVQIPSSMPQNSTQSATVTTFTQDRQIRFSQGQQLVTKLVTAPVACGA"
"VMVPSTMLMGQVVTAYPTFATQQQQAQTLSVTQQQQQQQQQPPQQQQQQQQSSQEQQLPS"
"VQQPAQAQLGQPPQQFLQTSRLLHGNPSTQLILSAAFPLQQSTFPPSHHQQHQPQQQQQL"
"PRHRTDSLTDPSKVQPQ";
char *e = "CVMVFTVSCSKMSSIVDRDDSSIFDGLVEEDDKDKAKRVSRNKSEKKRRDQFNVLIKELG"
"XXXXXXXXXXXXXXXXXXXXXXXXXHKETTAQSDASEIRQDWKPTFLSNEEFTQLMLEAL"
"XXXXXXXXXXXXXXXXXXXXXXXXEHLPSDLVDQSIFNFIPEGEHSEVYKILSTHLLESD"
"XXXXXXXXXXXXXXXXXXXXXXXIDPKEPSTYEYVRFIGNFKSLTSVSTSTHNGFEGTIQ"
"XXXXXXXXXXXXXXXXXXXXXXQFIKEMCTVEEPNEEFTSRHSLEWKFLFLDHRAPPIIG"
"XXXXXVXXXXXXXXXXXXXXXNLAKCHEHLMQYGKGKSCYYRFLTKGQQWIWLQTHYYIT"
"XXXXXXXXXXXXXXXXXXXXAEVRAERRRELGIEESLPETAADKSQDSGSDNRINTVSLK"
"XXXXXXXXXXXXXXXXXXXRKSSHTAVSDPSSTPTKIPTDTSTPPRQHLPAHEKMTQRRS"
"XXXXXXXXXXXXXXXXXXPAMSQAANLPIPQGMSQFQFSAQLGAMQHLKDQLEQRTRMIE"
"XXXXXXXXXXXXXXXXXQMVHGQGLQMFLQQSNPGLNFGSVQLSSGNSNIQQLTPVNMQG"
"XXXXXXXXXXXXXXXXQHMIQQQTLQSTSTQQSQQSVMSGHSQQTSLPSQTPSTLTAPLY"
"XXXXXXXXXXXXXXXIPSSMPQNSTQSATVTTFTQDRQIRFSQGQQLVTKLVTAPVACGA"
"XXXXXXXXXXXXXXAYPTFATQQQQAQTLSVTQQQQQQQQQPPQQQQQQQQSSQEQQLPS"
"XXXXXXXXXXXXXQQFLQTSRLLHGNPSTQLILSAAFPLQQSTFPPSHHQQHQPQQQQQL"
"PRHRTDSLTDPSKVQPQ";
a = cloneString(a);
// tolowers(a);
b = cloneString(b);
// tolowers(b);
xenAlignAffine(a, strlen(a), b, strlen(b), axtScoreSchemeProteinDefault(), stdout, FALSE);
}