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; }
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)); }