/// <summary> /// Process user input, create QueryManager, Query, DataTable and build chart definition /// </summary> void SummarizeDataUsingFormParameters() { AssayHeatmapProperties p = View.AssayHeatmapProperties; if (p == null) { return; } p.ColsToSum = ColsWithCfOnly.Checked ? ColumnsToTransform.ColsWithCondFormat : ColumnsToTransform.PrimaryResults; p.SumLevel = SummarizeByAssay.Checked ? TargetAssaySummarizationLevel.Assay : TargetAssaySummarizationLevel.Target; p.SumMethod = MeanSummarization.Checked ? SummarizationType.BioResponseMean : SummarizationType.MostPotent; p.PivotFormat = TargetAssayPivotFormat.QueryOrder; if (ByAssay.Checked) { p.PivotFormat = TargetAssayPivotFormat.ByAssay; } else if (ByTargetGene.Checked) { p.PivotFormat = TargetAssayPivotFormat.ByGeneSymbol; } else if (ByGeneFamily.Checked) { p.PivotFormat = TargetAssayPivotFormat.ByGeneFamily; } Qm2 = View.BuildAssayResultsHeatMapSubqueryResults(); return; }
/// <summary> /// Build the Qm, DataTable, etc derived from the root query /// </summary> internal QueryManager BuildAssayResultsHeatMapSubqueryResults() { Query rootQuery = BaseQuery.Root; // get root query QueryManager rootQm = rootQuery.QueryManager as QueryManager; // and assoc manager AssayHeatmapProperties p = AssayHeatmapProperties; Query subQuery = null; // the assay results heat map query if (BaseQuery.Parent != null) // is Query a subQuery { subQuery = BaseQuery; QueryManager.RemoveSubQuery(subQuery, false, false); // remove any existing subquery but not assoc views } OutputDest outputDest = OutputDest.Grid; // fix later QueryManager sqm = // summarize root data rootQm.DataTableManager.Summarize(p.SumLevel, p.SumMethod, p.ColsToSum, outputDest, null); subQuery = sqm.Query; // this is the new query and associated data rootQuery.Subqueries.Add(subQuery); // add subquery to root subQuery.Parent = rootQuery; // link subquery to parent query BaseQuery = subQuery; // link view to subquery return(sqm); }
/// <summary> /// Build the data table of unpivoted results /// </summary> /// <param name="includeActivityClass"></param> /// <returns></returns> internal bool BuildUnpivotedResults( bool includeActivityClass) { int fi; DialogResult dr = Qm.DataTableManager.CompleteRetrieval(); if (dr == DialogResult.Cancel) { return(false); } DataIncludesDates = false; int tables = 0, tablesWithDates = 0; // see what percentage of tables have dates foreach (ResultsTable rt in Rf.Tables) { for (fi = 0; fi < rt.Fields.Count; fi++) { if (fi == 1) { tables++; // count if more that just key field } ResultsField rfld = rt.Fields[fi]; if (rfld.MetaColumn.DataType == MetaColumnType.Date) { tablesWithDates++; break; } } if (fi < rt.Fields.Count) { break; } } if (tables > 0 && (float)tablesWithDates / tables >= .5) { DataIncludesDates = true; } SetupActivityClassCondFormat(); if (Math.Sqrt(4) == 4) // todo: determine when to do this { AssayHeatmapProperties p = AssayHeatmapProperties; OutputDest outputDest = OutputDest.WinForms; QueryManager sqm = Qm.DataTableManager.Summarize(p.SumLevel, p.SumMethod, p.ColsToSum, outputDest, null); } //string name = rootQuery.UserObject.Name; // (don't change name of base query) //if (!Lex.StartsWith(name, "Pivot View of ")) // name = "Pivot View of " + name; //Qm.Query.UserObject.Name = name; return(true); }
/// <summary> /// BeginSerialization /// </summary> /// <param name="tw"></param> public override void BeginSerialization(XmlTextWriter tw) { base.BeginSerialization(tw); AssayHeatmapProperties p = AssayHeatmapProperties; if (p == null) { return; } tw.WriteStartElement("AssayResultsHeatMap"); tw.WriteAttributeString("ColsToSum", p.ColsToSum.ToString()); tw.WriteAttributeString("SumLevel", p.SumLevel.ToString()); tw.WriteAttributeString("SumMethod", p.SumMethod.ToString()); tw.WriteAttributeString("PivotFormat", p.PivotFormat.ToString()); tw.WriteEndElement(); return; }
/// <summary> /// Basic constructor /// </summary> public AssayResultsHeatMapView() { ViewType = ViewTypeMx.AssayResultsHeatmap; Title = "Assay Results Heatmap"; AssayHeatmapProperties = new AssayHeatmapProperties(); }