public static IReadOnlyList <ChemicalWithData> getSet(Dictionary <string, string> Modelinfo, TbScale ScaleDeclaration, string set) { TbUnit qsarunit = new TbUnit(ScaleDeclaration.Name, Modelinfo["Unit"]); List <ChemicalWithData> DataSet = new List <ChemicalWithData>(); List <Dictionary <string, string> > ChemicalsDict = CSVtoDict(Modelinfo); foreach (Dictionary <string, string> ChemicalDict in ChemicalsDict) { int Cas = Convert.ToInt32(string.Join(null, System.Text.RegularExpressions.Regex.Split(ChemicalDict["CAS"], "[^\\d]"))); string name = ChemicalDict["ID"]; string smiles = ChemicalDict["SMILES"]; string SetInfo = ChemicalDict["Set"]; double Experimental = double.Parse(ChemicalDict["Exp"], CultureInfo.InvariantCulture); if (SetInfo == set) { ChemicalWithData chemical = new ChemicalWithData(Cas, new[] { name }, smiles, new[] { new TbDescribedData(new TbData(qsarunit, new double?()), null) }, new TbDescribedData(new TbData(qsarunit, Experimental), null)); DataSet.Add(chemical); } } return(DataSet); }
public QsarAddin(Dictionary <string, string> Modelinfo, TbScale ScaleDeclaration, TbObjectId objectId) { this.Modelinfo = Modelinfo; this.ScaleDeclaration = ScaleDeclaration; this.objectId = objectId; //CHANGED TO UNITNAME, not anymore log units this.qsarUnit = new TbUnit(ScaleDeclaration.Name, Modelinfo["UnitName"]); }