本文へスキップ

SELFIES

Mario Krenn, Alston Lo, Robert Pollice and many other contributors

SELFIES は、SMILES の変換、token エンコーディングの準備、設定可能な意味制約下での分子グラフ生成に使用できる、分子文字列表現形式および Python ライブラリです。

掲載情報の更新 ·

概要

SELFIES(Self-Referencing Embedded Strings)は、分子グラフを記号の列として表現します。この Python ライブラリは、特に構文的にも意味的にも有効なグラフ表現を必要とする生成ワークフローなど、分子機械学習を支援することを目的としています。提供するのは表現および変換関数であり、単独で動作する学習済み生成モデルではありません。リポジトリには変分オートエンコーダの例へのリンクもあります。

主な変換ワークフローでは、selfies.encoder に SMILES 文字列を渡し、SELFIES 文字列を生成します。selfies.decoder は SELFIES を SMILES に変換します。補助関数では、記号の数え上げや分割、SELFIES 文字列の集合からのアルファベット導出、文字列と整数ラベルまたは one-hot エンコーディングとの相互変換が可能です。ドキュメントに記載されたパディング記号 [nop] はデコード時にスキップされるため、分子情報を追加せずに系列をパディングできます。

記号の解釈は意味制約によって決まります。ユーザーはこれらの制約を変更でき、超原子価の設定も選択できます。README では、同じエンコード済み入力でも、制約の設定によって異なる構造にデコードされる例が示されています。また、エンコードとデコードの両方で、出力 token とその生成に寄与した入力 token を対応付ける変換アトリビューション機能も利用できます。

README では、堅牢な記号アルファベットを使った分子のランダム生成を例示していますが、そのような出力には追加のフィルタリングが必要となる場合があるとも述べています。したがって、表現としての妥当性を化学的安定性や用途への適合性と同一視すべきではありません。超原子価の例では、こうした分子の多くについて、安定性や妥当性が依然として不確かであると特に注意を促しています。推奨される下流評価では、変換だけを科学的検証とみなすのではなく、明示的に記録した制約の下でデコード後の構造を調べてください。

主な機能

  • `selfies.encoder` と `selfies.decoder` による SMILES と SELFIES 間の双方向変換。
  • `selfies.set_semantic_constraints` による設定可能な意味制約。ドキュメントには超原子価の設定が記載されています。
  • `selfies.len_selfies`、`selfies.split_selfies`、`selfies.get_alphabet_from_selfies` を用いた記号の数え上げ、tokenization、データセットからのアルファベット構築。
  • SELFIES 文字列と整数ラベルまたは one-hot エンコーディング間の変換。デコーダーが無視する `[nop]` 記号によるパディングにも対応します。
  • ドキュメントに記載されたランダム生成ワークフロー向けに、`selfies.get_semantic_robust_alphabet` から堅牢な記号アルファベットを取得できます。
  • エンコードおよびデコードのアトリビューションにより、出力 token と寄与した入力 token を対応付けられます。`get_attribution` では、基盤となるグラフのアトリビューションも利用できます。

用途

  • 推奨される評価:データセットから導出した語彙を用いて、分子データセットをパディング済みのラベルまたは one-hot 系列に整え、生成モデルに利用します。
  • 推奨される評価:代表的な SMILES をエンコードし、記録した意味制約の下でデコードして、SELFIES をケモインフォマティクスのパイプラインに組み込む前に表現の挙動を評価します。
  • 推奨される評価:堅牢なアルファベットから候補文字列を生成してデコードし、有効なグラフが有用な分子であると決めつけず、用途に応じたフィルタリングを行います。
  • 推奨される評価:変換アトリビューションを調べ、分岐、環、原子の記号がデコード後の SMILES にどのように寄与するかを理解します。

使い方

  1. リポジトリの READMEと、そこからリンクされているコード論文のチュートリアルを読み、変換関数、エンコーディング、意味制約について確認します。
  2. README にある selfies の pip インストール手順に従います。インストールしたバージョンを記録し、リリースを切り替える前に CHANGELOGを確認します。
  3. 初期評価では代表的な SMILES 入力を選び、selfies.encoder に続けて selfies.decoder を使用します。デコード後の構造を調べ、ドキュメントに記載された EncoderError および DecoderError の例外を考慮します。
  4. selfies.get_alphabet_from_selfies で語彙を構築し、系列長を確認して、ラベルまたは one-hot 入力に selfies.selfies_to_encoding を使用します。パディングが必要な場合は [nop] を含め、逆変換用に語彙の対応関係を保持します。
  5. 特に超原子価を調べる場合は、意味制約の設定を記録します。アトリビューションを使って変換を調べ、モデルとの統合を評価する場合は変分オートエンコーダの例を確認します。生成構造は、対象とする化学タスクに照らして別途評価してください。

関連リソース

AIDDISON Explorer

プラットフォーム

AIDDISON Explorerは、目標プロファイル、設計上の制約、予測物性、合成可能性に基づいて分子候補を生成し、順位付けするホスト型創薬プラットフォームです。

分子生成 · 創薬

ChemCP は、RDKit.js を使って SMILES 文字列からインタラクティブな2D分子図と計算記述子を生成し、MCP Apps 対応ホスト向けにチャット内ビューアを提供する MCP App です。

TypeScriptJavaScript

ケモインフォマティクス

ChemCrow

エージェント

ChemCrow は、Langchain を用いて構築された Python 化学エージェントパッケージで、言語モデルの推論を RDKit、paper-qa、化学データベース、反応計画ツールに接続します。

オープンソースPython

ケモインフォマティクス · 文献・研究

Chemistry42

プラットフォーム

Chemistry42 は、生成的設計、逆合成、ADMET と選択性の予測、物理ベースの優先順位付けを組み合わせた小分子創薬プラットフォームで、ヒット同定とリード最適化を支援します。

分子生成 · 創薬

Chemistry Development Kit

オープンソース

Chemistry Development Kit (CDK) は、他のプログラム内で化学表現、ファイル変換、構造検索、フィンガープリント、QSAR記述子の計算、分子レンダリングに利用できる Java ライブラリです。

オープンソース

ケモインフォマティクス

Datamol

オープンソース

Datamol は RDKit を基盤とする Python 分子処理ライブラリで、構造変換、標準化、フィンガープリント、配座生成、可視化、ローカルまたはリモートのファイル I/O 用ツールを備えています。

オープンソースPython

ケモインフォマティクス

関連ガイド

ワークフロー

AI創薬ツール:Agents・MCP・研究プラットフォームの選び方

ワークフローの段階に応じてツールを選択します。標的の根拠、タンパク質構造、既知の結合部位、分子生成、特性解析、スクリーニングを対象に、研究用エージェント、MCP連携、ホスト型API、プラットフォームを比較し、提案するエンドツーエンドの例と実践的な評価ゲートを示します。

スキル

化学AI Skillsとは?研究エージェントの手順モジュールを理解する

化学AI Skillsを再利用可能な手順モジュールとして理解します。`SKILL.md`に何が含まれるか、ホストが指示をどう読み込むか、SkillsがMCPやエージェントとどう異なるか、そして指針を科学的検証と混同せずに選択、組み合わせ、評価する方法を説明します。