private static ProteinGraph SetIsCore(PDBFile pdbFile) { var rasaRequest = new RequestRasa(pdbFile); rasaRequest.RequestInDefaultContext(); foreach (var rasa in rasaRequest.Rasavalues) { rasa.Key.IsCore = rasa.Value <= 0.15; } var proteinGraph = CreateProteinGraph.Do(pdbFile, 7.0, ResidueNodeCenterDefinition.CAlpha).Values.First(); return(proteinGraph); }
private static void startTestCycle() { // erzeugt die RequestListener Build.Do(); // einfache Graphen erzeugen (12 clone) //var graph = CreateGraphs.createGraph_Grid2D(); var pdbFile = PDBExt.Parse(RandomlySelectedPDBFile); var proteinGraph = CreateProteinGraph.Do(pdbFile, 6.0, ResidueNodeCenterDefinition.CAlpha).Values.First(); IGWGraph <ICRFNodeData, ICRFEdgeData, ICRFGraphData> crfGraph = proteinGraph.Convert(nd => new CRFNodeData(nd.Data.Residue.Id), ed => new CRFEdgeData(), gd => new CRFGraphData()); // seeding // 12 clone erzeugen var clone = new GWGraph <ICRFNodeData, ICRFEdgeData, ICRFGraphData> [clones]; for (int i = 0; i < clones; i++) { var cloneGraph = crfGraph.Clone(ConvertData.convertNodeData, ConvertData.convertEdgeData, ConvertData.convertGraphData); // für jeden graphen (clone): Erzeugung eines Labelings (rdm) => als int[] Labeling.randomLabeling(cloneGraph); Labeling.assignedLabeling(cloneGraph); clone[i] = cloneGraph; } // calculation of tp, fp, tn, fn, sensitivity, specificity, mcc double[][] keysForAllClones = new double[clones][]; for (int i = 0; i < clones; i++) { double[] keys = Compute.computeKeys(crfGraph, clone, i); keysForAllClones[i] = keys; } // test //outputKeys(keysForAllClones); outputLabelingsScores(clone); }
private static void startTrainingCycle() { // erzeugt die RequestListener Build.Do(); // calculation of the termination condition for the seeding method double[] averageRatioItoS = calculateTerminationConditionForSeeding(); // starting of TrainingCycle: var trainingCycle = new TrainingEvaluationCycle(); var parameters = new TrainingEvaluationCycleInputParameters(); // take OLM variants we want to test, ISING and OLM_III (Default) List <OLMVariant> variants = new List <OLMVariant>(); variants.Add(OLMVariant.Ising); variants.Add(OLMVariant.Default); // setting of transition probabilities //var a = 0.5 + 0.15 * rdm.NextDouble(); var a = 0.85; var b = 0.85; double[,] transition = new double[2, 2] { { a, 1 - a }, { 1 - b, b } }; #region modify graph var pdbFile = PDBExt.Parse(RandomlySelectedPDBFile); pdbFile.Name = RandomlySelectedPDBFileName; // setzen der IsCore var rasaRequest = new RequestRasa(pdbFile); rasaRequest.RequestInDefaultContext(); foreach (var rasa in rasaRequest.Rasavalues) { rasa.Key.IsCore = rasa.Value <= 0.15; } var proteinGraph = CreateProteinGraph.Do(pdbFile, 7.0, ResidueNodeCenterDefinition.CAlpha).Values.First(); // graph trimmen var trimmedGraph = trimGraph(pdbFile, proteinGraph); // set real reference label of the graph var nameWithChain = RandomlySelectedPDBFile.Substring(fileFolder.Length + 1, 6); var interfacesList = new List <string>(); using (var reader = new StreamReader(InterfaceDefLocation)) { var line = ""; while ((line = reader.ReadLine()) != null) { var nuss = nameWithChain; if (line.StartsWith(nameWithChain)) { interfacesList.Add(line.Substring(8)); } } } foreach (var interfaceEntry in interfacesList) { var node = trimmedGraph.Nodes.FirstOrDefault(n => n.Data.Residue.Id.Equals(interfaceEntry)); if (node != null) { node.Data.ReferenceLabel = 1; } } #endregion //test if (GraphVisualization) { var graph3D = trimmedGraph.Wrap3D(nd => new Node3DWrap <ResidueNodeData>(nd.Data) { ReferenceLabel = nd.Data.ReferenceLabel, X = nd.Data.X, Y = nd.Data.Y, Z = nd.Data.Z }); new ShowGraph3D(graph3D).Request(RequestRunType.Background); Thread.Sleep(120000); } var crfGraph = trimmedGraph.Convert <ResidueNodeData, CRFNodeData, SimpleEdgeData, CRFEdgeData, ProteinGraphData, CRFGraphData>(nd => new CRFNodeData(nd.Data.Residue.Id) { X = nd.Data.X, Y = nd.Data.Y, Z = nd.Data.Z }, ed => new CRFEdgeData(), gd => new CRFGraphData()); crfGraph.SaveAsJSON("testGraph.txt"); // setting the MaximumTotalPatchSize based on the ratio calculated with the hermann data int min = (int)(crfGraph.NodeCounter * averageRatioItoS[1]); int max = (int)(crfGraph.NodeCounter * averageRatioItoS[2]); int av = (int)(crfGraph.NodeCounter * averageRatioItoS[0]); int MaximumTotalPatchSize = rdm.Next(min, max); // set parameters for the training cycle parameters = new TrainingEvaluationCycleInputParameters(crfGraph, NumberOfGraphInstances, NumberOfSeedsForPatchCreation, MaximumTotalPatchSize, variants, IsingConformityParameter, IsingCorrelationParameter, transition, NumberOfLabels, BufferSizeViterbi); // running the cycle trainingCycle.RunCycle(parameters); }