Exemple #1
0
        public void Clear()
        {
            InterModalNodes.Clear();
            InterModalEdges.Clear();

            //_graphAxXL.Clear();
            //_graphCrXL.Clear();
            //_graphSgXL.Clear();
        }
Exemple #2
0
        public void LoadGraphComponents(Overlap overlap)
        {
            double interModalPValue = ((double)overlap.RightTailOverlapCount) / ((double)overlap.Permutations);

            InterModalPValue = interModalPValue.ToString("0.000");

            List <ROIVertex> nodes = new List <ROIVertex>();
            List <GraphEdge> edges = new List <GraphEdge>();

            double xRange = _dataManager.XMax - _dataManager.XMin;
            double yRange = _dataManager.YMax - _dataManager.YMin;
            double zRange = _dataManager.ZMax - _dataManager.ZMin;

            for (var i = 0; i < 90; i++)
            {
                ROI roi = _dataManager.GetROI(i);

                double xFactor = (roi.X - _dataManager.XMin) / xRange;
                double yFactor = (roi.Y - _dataManager.YMin) / yRange;
                double zFactor = (roi.Z - _dataManager.ZMin) / zRange;

                nodes.Add(new ROIVertex()
                {
                    Roi = roi, XF = xFactor, YF = yFactor, ZF = zFactor
                });
            }

            foreach (var node in overlap.Vertices)
            {
                var nd = nodes[node.Id];
                nd.Highlight = true;

                InterModalNodes.Add(new NodeResult()
                {
                    Id = nd.Roi.Index, Name = nd.Roi.Name, Count = node.RandomOverlapCount.ToString("0")
                });
            }

            foreach (var cmpList in overlap.Components.Values)
            {
                int            cmpSize = 0;
                GraphComponent cmp     = null;
                for (var i = 0; i < cmpList.Count; i++)
                {
                    if (cmpList[i].Edges.Count > cmpSize)
                    {
                        cmp     = cmpList[i];
                        cmpSize = cmp.Edges.Count;
                    }
                }

                for (var i = 0; i < cmp.Edges.Count; i++)
                {
                    var edge = cmp.Edges[i];

                    if (nodes[edge.V1].Highlight && nodes[edge.V2].Highlight)
                    {
                        edge.Color = overlap.Colors[cmp.DataType];
                        edges.Add(edge);

                        ROIVertex v1 = nodes[edge.V1];
                        ROIVertex v2 = nodes[edge.V2];

                        double diff = edge.M2 - edge.M1;
                        double pval = ((double)edge.RightTailCount) / ((double)overlap.Permutations);

                        InterModalEdges.Add(new EdgeResult()
                        {
                            V1 = v1.Roi.Name, V2 = v2.Roi.Name, Diff = diff, TStat = edge.TStat, PVal = pval
                        });
                    }
                }
            }

            //_graphCrXL.SetData(nodes, edges,
            //		r => new ROIDim() { Raw = r.Roi.X, Factor = r.XF }, xRange, _dataManager.XMin, _dataManager.XMax,
            //		r => new ROIDim() { Raw = r.Roi.Z, Factor = r.ZF }, zRange, _dataManager.ZMin, _dataManager.ZMax,
            //		false, ComponentColor, overlap);

            //_graphSgXL.SetData(nodes, edges,
            //	r => new ROIDim() { Raw = r.Roi.X, Factor = r.XF }, xRange, _dataManager.XMin, _dataManager.XMax,
            //	r => new ROIDim() { Raw = r.Roi.Y, Factor = r.YF }, yRange, _dataManager.YMin, _dataManager.YMax,
            //	false, ComponentColor, overlap);

            //_graphAxXL.SetData(nodes, edges,
            //	r => new ROIDim() { Raw = r.Roi.Y, Factor = r.YF }, yRange, _dataManager.YMin, _dataManager.YMax,
            //	r => new ROIDim() { Raw = r.Roi.Z, Factor = r.ZF }, zRange, _dataManager.ZMin, _dataManager.ZMax,
            //	true, ComponentColor, overlap);

            //_graphCrXL.Draw();
            //_graphSgXL.Draw();
            //_graphAxXL.Draw();
        }