コード例 #1
0
        private void doTraining(CreatePredictorVM vm, IEnumerable <PDBFile> trainingFiles, IDictionary <string, IDictionary <Residue, bool> > referenceInterface, IDictionary <string, IDictionary <string, ProteinGraph> > graphs)
        {
            var Feature = new AverageHydrophobicityFeature();

            var values = new LinkedList <AgO <double, ResidueNode> >();

            foreach (var trainingFile in trainingFiles)
            {
                var req = new RequestRasa(trainingFile);
                req.RequestInDefaultContext();
                var rasa = req.Rasavalues;
                foreach (var entry in graphs[trainingFile.Name])
                {
                    Feature.Compute(entry.Value);
                    //values.AddRange(entry.Value.Nodes.Select(node => new AgO<double, ResidueNode>(Feature.ValueOf(node.Data.Residue) * rasa[node.Data.Residue], node.D
//)));
                }
            }

            Max = values.Max(v => v.Data1);

            //var intervals = values.DivideByScoreAequidistant(val => val.Data1, vm.DivisionIntervals);
            //var pts = new LinkedList<AgO<double, double>>();
            //for (int i = 0; i < intervals.Length; i++)
            //{
            //    var interval = intervals[i];
            //    var pt = new AgO<double, double>();
            //    pt.Data1 = ((double)i + 1) / intervals.Length;
            //    var iface = (interval.Sum(val => referenceInterface[val.Data2.Residue.PDB.Name][val.Data2.Residue] ? 1.0 : 0.0));
            //    pt.Data2 = iface / interval.Count();
            //    pts.Add(pt);
            //}
            //ValueFunction = new StepFunction(pts);
        }
コード例 #2
0
        private Dictionary <string, Dictionary <Residue, bool> > doPrediction(PDBFile file, IDictionary <string, ProteinGraph> graphs)
        {
            var dict    = new Dictionary <string, Dictionary <Residue, bool> >();
            var Feature = new AverageHydrophobicityFeature();
            var req     = new RequestRasa(file);

            req.RequestInDefaultContext();
            var rasa = req.Rasavalues;

            //Threshold = 0.5;
            //foreach (var graph in graphs)
            //{
            //    Feature.Compute(graph.Value);
            //    var valdict = new Dictionary<ResidueNode, double[]>();
            //    var edgeScores = new double[2, 2] { { 1.2, 0.6 }, { 0.6, 1.0 } };
            //    foreach (var node in graph.Value.Nodes)
            //    {
            //        var val = (Feature.ValueOf(node.Data.Residue) * rasa[node.Data.Residue]) / Max;
            //        valdict.Add(node, new double[2] { val, 1 - val });
            //    }
            //    var edgedict = new Dictionary<SimpleEdge<ResidueNode>, double[,]>();
            //    foreach (var edge in graph.Value.Edges)
            //    {
            //        edgedict.Add(edge, edgeScores);
            //    }

            //    var predDict = new Dictionary<Residue, bool>();
            //    dict.Add(graph.Key, predDict);

            //    var crfGraph = graph.Value.CreateGraph(valdict, edgedict);

            //    //var options = new MarginalizeByResamplingOptions(2, 200);
            //    //foreach (var node in crfNodes)
            //    //{
            //    //    var probs = MarginalizeByResampling.Do(crfNodes, node, options);

            //    //    predDict.Add(graph.Value.Nodes.First(nd => nd.Residue.Id.Equals(node.Id)).Residue, probs[0] >= Threshold);
            //    //}
            //    var result = SimpleSampling.Do(crfGraph, 2000);

            //    foreach (var node in crfGraph.Nodes)
            //    {
            //        var score1 = result[new Assign() { Node = node, Label = 0 }];
            //        var score2 = result[new Assign() { Node = node, Label = 1 }];
            //        var prob = score2 / (score1 + score2);
            //        predDict.Add(graph.Value.Nodes.First(nd => nd.Data.Residue.Id.Equals(node.Data.Id)).Residue, prob >= Threshold);
            //    }

            //}
            return(dict);
        }
コード例 #3
0
        private void doTraining(CreatePredictorVM vm, IEnumerable <PDBFile> trainingFiles, IDictionary <string, IDictionary <Residue, bool> > referenceInterface, IDictionary <string, IDictionary <string, ProteinGraph> > graphs)
        {
            var Feature = new AverageHydrophobicityFeature();

            var values = new LinkedList <AgO <double, ResidueNode> >();

            foreach (var trainingFile in trainingFiles)
            {
                var req = new RequestRasa(trainingFile);
                req.RequestInDefaultContext();
                var rasa = req.Rasavalues;
                foreach (var entry in graphs[trainingFile.Name])
                {
                    Feature.Compute(entry.Value);
                    //values.AddRange(entry.Value.Nodes.Select(node => new AgO<double, ResidueNode>(Feature.ValueOf(node.Data.Residue) * rasa[node.Data.Residue], node)));
                }
            }

            Max = values.Max(v => v.Data1);
        }
コード例 #4
0
        private Dictionary <string, Dictionary <Residue, bool> > doPrediction(PDBFile file, IDictionary <string, ProteinGraph> graphs)
        {
            var dict    = new Dictionary <string, Dictionary <Residue, bool> >();
            var Feature = new AverageHydrophobicityFeature();
            var req     = new RequestRasa(file);

            req.RequestInDefaultContext();
            var rasa = req.Rasavalues;

            foreach (var graph in graphs)
            {
                Feature.Compute(graph.Value);

                var predDict = new Dictionary <Residue, bool>();
                dict.Add(graph.Key, predDict);

                foreach (var node in graph.Value.Nodes)
                {
                    predDict.Add(node.Data.Residue, (Feature.ValueOf(node.Data.Residue) * rasa[node.Data.Residue]) / Max >= Threshold);
                }
            }
            return(dict);
        }