Пример #1
0
        //static PatchPatternFactory PatchPatternFactory = PatchPatternFactory.GetFactory("strings");

        //private static PatchPattern CreateStringPatchPattern(string peptide)
        //{
        //    PatchPatternBuilder aPatchPatternBuilder = PatchPatternFactory.GetBuilder();
        //    aPatchPatternBuilder.AppendGroundDisjunct(peptide);
        //    PatchPattern patchPattern = aPatchPatternBuilder.ToPatchPattern();
        //    return patchPattern;
        //}


        public double Predict(NEC nec, Hla hla, bool modelOnly, out string source)
        {
            Debug.Assert(HlaFactory.IsGroundOrAbstractInstance(hla.ToString())); // real assert
            SpecialFunctions.CheckCondition(nec.N.Length == SampleNEC.N.Length && nec.E.Length == SampleNEC.E.Length && nec.C.Length == SampleNEC.C.Length,
                                            string.Format("Length of peptide must be {0},{1},{2}", SampleNEC.N.Length, SampleNEC.E.Length, SampleNEC.C.Length));
            Pair <NEC, Hla> necAndHla = new Pair <NEC, Hla>(nec, hla);

            List <Pair <string, Hla> > sourceAndOriginalHlaCollection = ListAllSourcesContainingThisMerAndHlaToLength(necAndHla);

            source = SpecialFunctions.Join("+", sourceAndOriginalHlaCollection); //Will be "" if list is empty

            double probability = (sourceAndOriginalHlaCollection.Count == 0 || modelOnly) ? probability = (double)Logistic.EvaluateViaCache(necAndHla) : 1.0;

            return(probability);
        }