next, i++);
return asCol;
}
void doBarChartDetails(struct trackDb *tdb, char *item)
/* Details of barChart item */
{
int start = cartInt(cart, "o");
int end = cartInt(cart, "t");
struct asObject *as = NULL;
@@ -399,61 +535,67 @@
struct asColumn *nameCol = NULL, *name2Col = NULL;
//struct asColumn *name2Col;
char *nameLabel = NULL, *name2Label = NULL;
if (as != NULL)
{
numColumns = slCount(as->columnList);
nameCol = asFindColByIx(as, BARCHART_NAME_COLUMN_IX);
name2Col = asFindColByIx(as, BARCHART_NAME2_COLUMN_IX);
}
nameLabel = trackDbSettingClosestToHomeOrDefault(tdb, "bedNameLabel", nameCol ? nameCol->comment : "Item");
if (trackDbSettingClosestToHomeOrDefault(tdb, "url", NULL) != NULL)
printCustomUrl(tdb, item, TRUE);
else
printf("%s: %s
\n", nameLabel, chartItem->name);
name2Label = name2Col ? name2Col->comment : "Alternative name";
-if (differentString(chartItem->name2, "")) {
+if (differentString(chartItem->name2, ""))
+ {
if (trackDbSettingClosestToHomeOrDefault(tdb, "url2", NULL) != NULL)
printOtherCustomUrl(tdb, chartItem->name2, "url2", TRUE);
else
printf("%s: %s
\n", name2Label, chartItem->name2);
}
int categId;
float highLevel = barChartMaxValue(chartItem, &categId);
char *units = trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_UNIT, "units");
char *metric = trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_METRIC, "");
printf("Total all %s values: %0.2f %s
\n", metric, barChartTotalValue(chartItem), units);
printf("Maximum %s value: %0.2f %s in %s
\n",
metric, highLevel, units, barChartUiGetCategoryLabelById(categId, database, tdb));
printf("Score: %d
\n", chartItem->score);
printf("Genomic position: "
"%s %s:%d-%d
\n",
database, hgTracksPathAndSettings(), database,
chartItem->chrom, chartItem->chromStart+1, chartItem->chromEnd,
chartItem->chrom, chartItem->chromStart+1, chartItem->chromEnd);
printf("Strand: %s\n", chartItem->strand);
// print any remaining extra fields
if (numColumns > 0)
{
extraFieldsPrint(tdb, NULL, extraFields, extraFieldCount);
}
char *matrixUrl = NULL, *sampleUrl = NULL;
struct barChartItemData *vals = getSampleVals(tdb, chartItem, &matrixUrl, &sampleUrl);
+puts("");
if (vals != NULL)
{
// Print boxplot
- puts("
");
char *df = makeDataFrame(tdb->table, vals);
char *colorFile = makeColorFile(tdb);
printBoxplot(df, item, chartItem->name2, units, colorFile);
printf("
View all data points for %s%s%s%s\n", df,
chartItem->name,
chartItem->name2 ? " (" : "",
chartItem->name2 ? chartItem->name2 : "",
chartItem->name2 ? ")" : "");
}
+else
+ {
+ if (cfgOptionBooleanDefault("svgBarChart", FALSE))
+ printBarChart(chartItem, tdb, highLevel, metric);
+ }
puts("
");
}