void alignNt(char *nt) /* Do alignments of draft bacs against one NT. */ { char indexFileName[512]; char ntFaName[512]; struct lineFile *indexLf; int lineSize; char *line; char *words[3]; int wordCount; struct patSpace *ps; struct dnaSeq *ntSeq; printf("<H1>Check Layout of %s</H1>\n", nt); printf("<PRE>"); sprintf(ntFaName, "%s/p%s.fa", faDir, nt); ntSeq = faReadAllDna(ntFaName); ps = makePatSpace(&ntSeq, 1, oocFile, 10, 500); sprintf(indexFileName, "%s/%s.index", indexDir, nt); uglyf("Checking out %s and %s\n", indexFileName, ntFaName); indexLf = lineFileOpen(indexFileName, TRUE); while (lineFileNext(indexLf, &line, &lineSize)) { wordCount = chopLine(line, words); if (wordCount > 0) { char bacFaName[512]; struct dnaSeq *contigList, *contig; char *bacAcc = words[0]; char *s = strrchr(bacAcc, '.'); if (s != NULL) *s = 0; uglyf("%s\n", bacAcc); sprintf(bacFaName, "%s/%s.fa", faDir, bacAcc); contigList = faReadAllDna(bacFaName); for (contig = contigList; contig != NULL; contig = contig->next) { boolean isRc; uglyf(" %s\n", contig->name); for (isRc = FALSE; isRc <= TRUE; isRc += 1) { struct ssBundle *bunList, *bun; bunList = ssFindBundles(ps, contig, contig->name, ffTight); for (bun = bunList; bun != NULL; bun = bun->next) { showBundle(bun, isRc); } ssBundleFreeList(&bunList); reverseComplement(contig->dna, contig->size); } } freeDnaSeqList(&contigList); } } lineFileClose(&indexLf); freeDnaSeqList(&ntSeq); }
void oneStrand(struct patSpace *ps, struct hash *repeatHash, struct dnaSeq *otherSeq, boolean isRc, enum ffStringency stringency, FILE *out) /* Search one strand of other sequence. */ { struct ssBundle *bundleList, *bun; bundleList = ssFindBundles(ps, otherSeq, otherSeq->name, stringency, avoidSelfSelf); for (bun = bundleList; bun != NULL; bun = bun->next) { struct ssFfItem *ffi; struct dnaSeq *genoSeq = bun->genoSeq; struct repeatTracker *rt = hashLookup(repeatHash, genoSeq->name)->val; for (ffi = bun->ffList; ffi != NULL; ffi = ffi->next) { struct ffAli *ff = ffi->ff; oneAli(ff, otherSeq, rt, isRc, stringency, out); } } ssBundleFreeList(&bundleList); }