15b84072ef48791ec41cb031ef351997c3dee4d7 angie Tue Sep 7 15:15:17 2021 -0700 Added a new branch label option: back-mutations to reference, to highlight problematic parts of the tree. diff --git src/hg/hgPhyloPlace/treeToAuspiceJson.c src/hg/hgPhyloPlace/treeToAuspiceJson.c index 774e698..9d09250 100644 --- src/hg/hgPhyloPlace/treeToAuspiceJson.c +++ src/hg/hgPhyloPlace/treeToAuspiceJson.c @@ -296,30 +296,42 @@ if (node->priv != NULL) { struct singleNucChange *sncList = node->priv; struct slPair *geneAaMutations = getAaMutations(sncList, geneInfoList, gSeqWin); jsonWriteObjectStart(jw, "branch_attrs"); if (node->numEdges > 0) { jsonWriteObjectStart(jw, "labels"); struct singleNucChange *snc = sncList; struct dyString *dy = dyStringCreate("%c%d%c", snc->parBase, snc->chromStart+1, snc->newBase); for (snc = sncList->next; snc != NULL; snc = snc->next) dyStringPrintf(dy, ",%c%d%c", snc->parBase, snc->chromStart+1, snc->newBase); jsonWriteString(jw, "nuc mutations", dy->string); dyStringClear(dy); + for (snc = sncList; snc != NULL; snc = snc->next) + { + char ref[2]; + seqWindowCopy(gSeqWin, snc->chromStart, 1, ref, sizeof(ref)); + if (snc->newBase == ref[0]) + { + dyStringAppendSep(dy, ","); + dyStringPrintf(dy, "%c%d%c", snc->parBase, snc->chromStart+1, snc->newBase); + } + } + jsonWriteString(jw, "back-mutations", dy->string); + dyStringClear(dy); struct dyString *dyS = dyStringNew(0); struct slPair *geneAaMut; for (geneAaMut = geneAaMutations; geneAaMut != NULL; geneAaMut = geneAaMut->next) { struct slName *aaMut; for (aaMut = geneAaMut->val; aaMut != NULL; aaMut = aaMut->next) { dyStringAppendSep(dy, ","); dyStringPrintf(dy, "%s:%s", geneAaMut->name, aaMut->name); } if (sameString("S", geneAaMut->name)) { for (aaMut = geneAaMut->val; aaMut != NULL; aaMut = aaMut->next) { dyStringAppendSep(dyS, ",");