/bdest-api

Primary LanguagePythonMIT LicenseMIT

bdest-api

  • C, H, N, Oで構成される分子の結合解離エネルギー(BDE)を予測するAPI
  • smasahir/bde-mlで作成した予測モデルをAPIで利用できるようにした。
  • SMILESで分子を指定してリクエストすると、"単結合"かつ"環状構造に含まれない結合"のBDEのみ予測し、結果をデータベースに登録する。
  • API利用方法はSwagger UIhttp://{hostname}/docsを参照。

前提条件

  • dockerが利用可能であること

起動手順

  1. docker composeをビルドする。

    docker compose build --no-cache
  2. docker composeを起動する。

    docker compose up
  3. 初回起動時には、下記を実行しデータベースを初期化する。

    docker compose exec bdest-api conda run -n v_env python -m api.migrate_db
  4. Swagger UIhttp://localhost:8000/docsにブラウザでアクセスする。

  5. Swagger UIから各種APIを実行

    • POST /moleculesにて、Request bodyを下記のように指定して発行すると、構造情報と予測結果がデータベースに登録される。レスポンスとしてその構造のBDEの予測結果が返却される。
      {
       "smiles": "CN1CCC[C@H]1c2cccnc2"
      }
    • SMILESとして無効な文字列や、C, N, H, O以外の元素を含めてPOSTリクエストすると、400 Bad Requestとなる。
    • GET /moleculesにて、データベースに登録済みのすべての構造情報(BDEを含む)が返却される。
    • DELETE /molecules/{molecule_id}にて、指定したIDの分子とその構造情報(BDEを含む)がデータベースから削除される。

開発環境