Exemple #1
0
 public PredictionAddin(TbData value, TbMetadata metadata, IReadOnlyDictionary <TbObjectId, TbData> xDescriptorsValues, IReadOnlyList <ISuportingChemicals> suportingChemicals)
 {
     Value              = value;
     Metadata           = metadata;
     XDescriptorsValues = xDescriptorsValues.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
     SuportingChemicals = suportingChemicals;
 }
Exemple #2
0
        public ITbPrediction Predict(ITbBasket target)
        {
            target.WorkTask.TbToken.ThrowIfCancellationRequested();

            //understand how to pass scalar predictions
            TbData predictedTbData = (TbData)Calculate(target);
            // var predictedTbData = new TbData(predictedScalarData.Unit, predictedScalarData.Value);
            //var targetLogKow =
            //    target.WorkTask.CalcService.CalculateParameter(_logKowDescriptor.Descriptor, null, target);
            //mock descriptor
            Dictionary <string, string> ModelPred = this.RetrieveModelPreD(target, Modelinfo);

            TbData Mockdescriptordata = new TbData(new TbUnit(TbScale.EmptyRatioScale.FamilyGroup, TbScale.EmptyRatioScale.BaseUnit), new double?());
            //TODO pack additional metadata into an unique object and then predicton probably will be faster

            Dictionary <string, string> AdditionalMetadata = new Dictionary <string, string>()
            {
                {
                    "Guide name",

                    this.Modelinfo["GuideUrl"]
                }
            };

            if (ModelPred.ContainsKey("assessment"))
            {
                AdditionalMetadata.Add("Assessment", ModelPred["assessment"]);
            }
            if (ModelPred.ContainsKey("assessment_verbose"))
            {
                AdditionalMetadata.Add("Brief Explanation", ModelPred["assessment_verbose"]);
            }
            if (ModelPred.ContainsKey("Similar_molecules_smiles"))
            {
                AdditionalMetadata.Add("Analogues' SMILES", ModelPred["Similar_molecules_smiles"]);
            }
            //if (Modelinfo.ContainsKey("QMRFlink"))
            //    AdditionalMetadata.Add("QMRF", Modelinfo["QMRFlink"]);
            //if (Modelinfo.ContainsKey("Lambda"))
            //{
            // AdditionalMetadata.Add("Lambda", double.Parse(this.Modelinfo["Lambda"], CultureInfo.InvariantCulture).ToString());

            //}
            Dictionary <TbObjectId, TbData> matrixdescriptorvalues = new Dictionary <TbObjectId, TbData>()
            {
                {
                    this.objectId,
                    Mockdescriptordata
                }
            };
            //run method Retrieve ADI, to retrieve all adi indexes
            Dictionary <string, TbData> ADImetadata = this.RetrieveAdi(target, Modelinfo);
            TbMetadata metadata = new TbMetadata((IReadOnlyDictionary <string, string>)AdditionalMetadata, (IReadOnlyDictionary <string, TbData>)ADImetadata);

            //return new PredictionAddin(predictedTbData, predictionDescription, xData);
            return(new PredictionAddin(predictedTbData, metadata, matrixdescriptorvalues, null));
        }