/// <summary> /// Method to estimate remaining search time /// </summary> /// <returns>Estimated remainin search time</returns> public float estimateRemainingTime() { float esimated_time; _indigo.setSessionID(); Bingo.checkResult(_indigo, _bingoLib.bingoEstimateRemainingTime(_id, &esimated_time)); return(esimated_time); }
/// <summary> /// Returns a shared IndigoObject for the matched target /// </summary> /// <returns>Shared Indigo object for the current search operation</returns> public IndigoObject getIndigoObject() { _indigo.setSessionID(); IndigoObject res = new IndigoObject(_indigo, Bingo.checkResult(_indigo, _bingoLib.bingoGetObject(_id))); _reference = res; return(res); }
/// <summary> /// Dispose method that closes the database /// </summary> public void Dispose() { if (_id >= 0 && _dllLoader != null && _dllLoader.isValid() && _indigo != null && _lib != null) { _indigo.setSessionID(); Bingo.checkResult(_indigo, _lib.bingoCloseDatabase(_id)); _id = -1; } }
/// <summary> /// Perform search by molecular formula /// </summary> /// <param name="query">string with formula to search. For example, 'C22 H23 N3 O2'.</param> /// <param name="options">search options</param> /// <returns>Bingo search object instance</returns> public BingoObject searchMolFormula(string query, string options) { if (options == null) { options = ""; } _indigo.setSessionID(); return(new BingoObject(Bingo.checkResult(_indigo, _lib.bingoSearchMolFormula(_id, query, options)), _indigo, _lib)); }
/// <summary> /// Execute similarity search operation /// </summary> /// <param name="query">indigo object (molecule or reaction)</param> /// <param name="min">Minimum similarity value</param> /// <param name="max">Maximum similairy value</param> /// <param name="metric">Default value is "tanimoto"</param> /// <returns>Bingo search object instance</returns> public BingoObject searchSim(IndigoObject query, float min, float max, string metric) { if (metric == null) { metric = "tanimoto"; } _indigo.setSessionID(); return(new BingoObject(Bingo.checkResult(_indigo, _lib.bingoSearchSim(_id, query.self, min, max, metric)), _indigo, _lib)); }
/// <summary> /// </summary> public void Dispose() { if (_id >= 0 && _dllLoader != null && _dllLoader.isValid() && _bingoLib != null && _indigo != null) { _indigo.setSessionID(); Bingo.checkResult(_indigo, _bingoLib.bingoEndSearch(_id)); _id = -1; } }
/// <summary> /// Creates a chemical storage of a specifed type in a specified location /// </summary> /// <param name="indigo">Indigo instance</param> /// <param name="location">Directory with the files location</param> /// <param name="type">"molecule" or "reaction"</param> /// <param name="options">Additional options separated with a semicolon. See the Bingo documentation for more details.</param> /// <returns>Bingo database instance</returns> public static Bingo createDatabaseFile(Indigo indigo, string location, string type, string options) { indigo.setSessionID(); if (options == null) { options = ""; } BingoLib lib = Bingo.getLib(indigo); int databaseID = Bingo.checkResult(indigo, lib.bingoCreateDatabaseFile(location, type, options)); return(new Bingo(indigo, databaseID, lib)); }
/// <summary> /// Returns Bingo version /// </summary> /// <returns>Bingo version</returns> public string version() { _indigo.setSessionID(); return(Bingo.checkResult(_indigo, _lib.bingoVersion())); }
/// <summary> /// Returns an IndigoObject for the record with the specified id /// </summary> /// <param name="id">record id</param> /// <returns>Indigo object</returns> public IndigoObject getRecordById(int id) { _indigo.setSessionID(); return(new IndigoObject(_indigo, Bingo.checkResult(_indigo, _lib.bingoGetRecordObj(_id, id))));; }
/// <summary> /// Post-process index optimization /// </summary> public void optimize() { _indigo.setSessionID(); Bingo.checkResult(_indigo, _lib.bingoOptimize(_id)); }
/// <summary> /// Delete a record by id /// </summary> /// <param name="id">Record id</param> public void delete(int id) { _indigo.setSessionID(); Bingo.checkResult(_indigo, _lib.bingoDeleteRecord(_id, id)); }
/// <summary> /// Inserts a structure under a specified id /// </summary> /// <param name="record">Indigo object with a chemical structure (molecule or reaction)</param> /// <param name="id">record id</param> /// <returns> inserted record id</returns> public int insert(IndigoObject record, int id) { _indigo.setSessionID(); return(Bingo.checkResult(_indigo, _lib.bingoInsertRecordObjWithId(_id, record.self, id))); }
/// <summary> /// Method to return current similarity value. Should be called after next() method. /// </summary> /// <returns>Similarity value</returns> public float getCurrentSimilarityValue() { _indigo.setSessionID(); return(Bingo.checkResult(_indigo, _bingoLib.bingoGetCurrentSimilarityValue(_id))); }
/// <summary> /// Method to return current record id. Should be called after next() method. /// </summary> /// <returns>Record id</returns> public int getCurrentId() { _indigo.setSessionID(); return(Bingo.checkResult(_indigo, _bingoLib.bingoGetCurrentId(_id))); }
/// <summary> /// Method to move to the next record /// </summary> /// <returns>True if there are any more records</returns> public bool next() { _indigo.setSessionID(); return((Bingo.checkResult(_indigo, _bingoLib.bingoNext(_id)) == 1) ? true : false); }
/// <summary> /// Method to estimate remaining hits count error /// </summary> /// <returns>Estimated hits count error</returns> public int estimateRemainingResultsCountError() { _indigo.setSessionID(); return(Bingo.checkResult(_indigo, _bingoLib.bingoEstimateRemainingResultsCountError(_id))); }