public static IReadOnlyList <ChemicalWithData> GetSet(Dictionary <string, string> Modelinfo, TbScale ScaleDeclaration, String Set) { List <ChemicalWithData> SetList = new List <ChemicalWithData>(); var setup = new BridgeSetup(false); //setup.AddAllJarsClassPath(@"B:\ToolboxAddinExamples\lib"); setup.AddAllJarsClassPath(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)); Bridge.CreateJVM(setup); Bridge.RegisterAssembly(typeof(ChemicalinSet).Assembly); java.util.List list = ChemicalinSet.getDataset(Modelinfo["tag"], Set); if (list.size() == 0) { return(SetList); } for (int i = 0; i < list.size(); i++) { TbData Mockdescriptordata = new TbData(new TbUnit(TbScale.EmptyRatioScale.FamilyGroup, TbScale.EmptyRatioScale.BaseUnit), new double?()); ChemicalinSet cur_Chemical = (ChemicalinSet)list.get(i); TbData cur_exp = (TbData)Utilities.ConvertData(cur_Chemical.getExperimental(), ScaleDeclaration, Modelinfo); SetList.Add(new ChemicalWithData(cur_Chemical.getCAS(), new[] { "N.A." }, cur_Chemical.getSmiles(), new TbDescribedData[] { new TbDescribedData(Mockdescriptordata, null) }, new TbDescribedData(cur_exp, null))); } return(SetList); }
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)); }