private void CreateDifferentiation(DGraph graph, DCluster differentiation) { var inNode = graph.AddNode("Differentiation_in"); inNode.DrawingNode.Attr.Shape = MsaglShape.Circle; inNode.DrawingNode.Attr.FillColor = MsaglColor.Red; graph.AddNodeToCluster(differentiation, inNode); var precursor = Clustering_Cell_AddNode(graph, differentiation, "Precursor", "Precursor"); var earlyMeiosis = Clustering_Cell_AddNode(graph, differentiation, "EarlyMeiosis", "Early Meiosis"); var meiosis = Clustering_Cell_AddNode(graph, differentiation, "Diff_Meiosis", "Meiosis"); var gamete = graph.AddCluster(differentiation, "Gamete"); Clustering_ApplyNodeAttributes(gamete); CreateGamete(graph, gamete); Clustering_Cell_AddEdge(graph, inNode, precursor, null); Clustering_Cell_AddEdge(graph, precursor, earlyMeiosis, "GLD-1_Act\nOR\nGLD-2_Act"); Clustering_Cell_AddEdge(graph, earlyMeiosis, meiosis, "Pachytene"); Clustering_Cell_AddEdge(graph, meiosis, gamete, "MEK-2_Act\nAND\nMPK-1_Act");//*/ }
private void CreateGamete(DGraph graph, DCluster gamete) { var inNode = graph.AddNode("Gamete_in"); inNode.DrawingNode.Attr.Shape = MsaglShape.Circle; inNode.DrawingNode.Attr.FillColor = MsaglColor.Red; graph.AddNodeToCluster(gamete, inNode); var splitter = graph.AddNode("Gamete_Splitter"); splitter.DrawingNode.Attr.Shape = MsaglShape.Circle; splitter.DrawingNode.Attr.FillColor = MsaglColor.Blue; graph.AddNodeToCluster(gamete, splitter); var sperm = Clustering_Cell_AddNode(graph, gamete, "Sperm", "Sperm"); var oocyte = Clustering_Cell_AddNode(graph, gamete, "Oocyte", "Oocyte"); var matureOocyte = Clustering_Cell_AddNode(graph, gamete, "MatureOocyte", "Mature\nOocyte"); var zygote = Clustering_Cell_AddNode(graph, gamete, "Zygote", "Zygote"); Clustering_Cell_AddEdge(graph, inNode, splitter, null); Clustering_Cell_AddEdge(graph, splitter, sperm, "Sperm_Effector_Act"); Clustering_Cell_AddEdge(graph, splitter, oocyte, "Oocyte_Effector_Act"); Clustering_Cell_AddEdge(graph, oocyte, matureOocyte, "Maturation"); Clustering_Cell_AddEdge(graph, matureOocyte, zygote, "Fertilization");//*/ }
private void CreateMitosis(DGraph graph, DCluster mitosis) { var inNode = graph.AddNode("Mitosis_In"); graph.AddNodeToCluster(mitosis, inNode); inNode.DrawingNode.Attr.Shape = MsaglShape.Circle; inNode.DrawingNode.Attr.FillColor = MsaglColor.Red; var g0 = Clustering_Cell_AddNode(graph, mitosis, "G0", "G0"); var mitosis_cycle = graph.AddCluster(mitosis, "Mitosis_Cycle"); Clustering_ApplyNodeAttributes(mitosis_cycle); var g1 = Clustering_Cell_AddNode(graph, mitosis_cycle, "G1", "G1"); var s = Clustering_Cell_AddNode(graph, mitosis_cycle, "S", "S"); var g2 = Clustering_Cell_AddNode(graph, mitosis_cycle, "G2", "G2"); var m = Clustering_Cell_AddNode(graph, mitosis_cycle, "M", "M"); Clustering_Cell_AddEdge(graph, inNode, g0, null); Clustering_Cell_AddEdge(graph, g0, g1, null); Clustering_Cell_AddEdge(graph, g1, s, null); Clustering_Cell_AddEdge(graph, s, g2, null); Clustering_Cell_AddEdge(graph, g2, m, null); Clustering_Cell_AddEdge(graph, mitosis_cycle, g0, "exit cell\ncycle");//*/ }
private void CreateProliferation(DGraph graph, DCluster proliferation) { var inNode = graph.AddNode("Proliferation_in"); inNode.DrawingNode.Attr.Shape = MsaglShape.Circle; inNode.DrawingNode.Attr.FillColor = MsaglColor.Red; graph.AddNodeToCluster(proliferation, inNode); var splitter = graph.AddNode("Proliferation_Splitter"); splitter.DrawingNode.Attr.Shape = MsaglShape.Circle; splitter.DrawingNode.Attr.FillColor = MsaglColor.Blue; graph.AddNodeToCluster(proliferation, splitter); var mitosis = graph.AddCluster(proliferation, "Mitosis"); Clustering_ApplyNodeAttributes(mitosis); CreateMitosis(graph, mitosis); var meiosis = graph.AddCluster(proliferation, "Meiosis"); Clustering_ApplyNodeAttributes(meiosis); CreateMeiosis(graph, meiosis); Clustering_Cell_AddEdge(graph, inNode, mitosis, null); Clustering_Cell_AddEdge(graph, mitosis, splitter, "Early Meiosis"); Clustering_Cell_AddEdge(graph, splitter, graph.NodeMap["G0"], null); Clustering_Cell_AddEdge(graph, splitter, graph.NodeMap["Inter"], null);//*/ }
private DNode Clustering_Cell_AddNode(DGraph graph, DCluster cluster, string id, string label) { var ret = graph.AddNode(id); if (label != null) ret.Label = new DTextLabel(ret, label); graph.AddNodeToCluster(cluster, ret); Clustering_ApplyNodeAttributes(ret); return ret; }