internal static QmrrlModelMissingParameters GetInstance(ModelLikelihoodFactories modelLikelihoodFactories, QmrrPartialModel qmrrPartialModel, BestSoFar <double, TrueCollection> bestSoFar)
        {
            QmrrlModelMissingParameters aQmrrlModelMissingParameters = new QmrrlModelMissingParameters();

            aQmrrlModelMissingParameters.QmrrPartialModel         = qmrrPartialModel;
            aQmrrlModelMissingParameters.TrueCollection           = bestSoFar.Champ;
            aQmrrlModelMissingParameters.ModelLikelihoodFactories = modelLikelihoodFactories;
            aQmrrlModelMissingParameters.LogLikelihoodOfCompleteModelConditionedOnKnownHlas = modelLikelihoodFactories.MissingParametersDelegateFactory(qmrrPartialModel, bestSoFar.Champ);
            return(aQmrrlModelMissingParameters);
        }
        public static QmrrlModelMissingParametersCollection GetInstance(ModelLikelihoodFactories modelLikelihoodFactories, QmrrPartialModelCollection qmrrPartialModelCollection, Dictionary <string, BestSoFar <double, TrueCollection> > PeptideToBestHlaAssignmentSoFar)
        {
            QmrrlModelMissingParametersCollection aQmrrlModelMissingParametersCollection = new QmrrlModelMissingParametersCollection();

            foreach (QmrrPartialModel qmrrPartialModel in qmrrPartialModelCollection)
            {
                QmrrlModelMissingParameters aQmrrlModelMissingParameters = QmrrlModelMissingParameters.GetInstance(modelLikelihoodFactories, qmrrPartialModel, PeptideToBestHlaAssignmentSoFar[qmrrPartialModel.Peptide]);
                aQmrrlModelMissingParametersCollection.Collection.Add(aQmrrlModelMissingParameters);
            }
            aQmrrlModelMissingParametersCollection.GridSearch = GridSearch.GetInstance("Grid");
            return(aQmrrlModelMissingParametersCollection);
        }