ブラウザ
最初の分子を解析する
SMILESを読み込み、サーバーなしで構造式と基本的な性質を確認します。
手順
- ブラウザのデモを開きます。
- エタノールを表すSMILES「CCO」を入力して解析します。
- 構造式と分子式、分子量が対応しているか見比べます。
確認ポイントエタノールの2D構造と分子式、分子量が表示されます。
うまくいかないとき構造が表示されない場合は、入力がSMILESとして正しいか確認してCCOで再試行します。
CCO案内を見る 初級 · 5〜15分
小さく実用的な化学ツールを作りながらchematicを学びます。始める場所、実行できるコード、次の一歩を各チュートリアルで示します。
ブラウザ
SMILESを読み込み、サーバーなしで構造式と基本的な性質を確認します。
確認ポイントエタノールの2D構造と分子式、分子量が表示されます。
うまくいかないとき構造が表示されない場合は、入力がSMILESとして正しいか確認してCCOで再試行します。
CCO案内を見る Python
パッケージを導入し、ノートブックで分子を読み込みます。
確認ポイント構造が外部サーバーへ送られず、ノートブック内で分子が返ります。
うまくいかないときインストール前に仮想環境を有効にし、importエラーならパッケージ名を確認します。
mol = chematic.from_smiles("CCO")案内を見る Python
フィンガープリントを作り、Tanimoto類似度で分子を比較します。
確認ポイント同一分子は1.0になり、異なる構造ほど低い値になります。
うまくいかないとき比較前に、すべての分子でフィンガープリントの設定を揃えます。
mol.ecfp4()案内を見る Python
1分子の解析からCSVやSDFの一括処理へ進みます。
確認ポイント入力行ごとに追跡できる結果ができ、失敗した行も確認できます。
うまくいかないとき失敗した行を再試行できるよう、元のSMILESを捨てずに保存します。
for smiles in rows:案内を見る Rust
Rustプロジェクトにchematicを追加し、化学計算を同じプロセスで動かします。
確認ポイント同じ入力に対してローカルで再現可能な結果が出ます。
うまくいかないときコンパイル時間やサイズが気になる場合は必要な機能だけから始めます。
cargo add chematic --features "smiles,perception,chem,3d,fp"案内を見る AIエージェント
まずローカルstdioのMCPサーバーを使い、クライアントがプロセスを起動できない場合だけ自己ホストHTTPを使います。
確認ポイントホスト型サービスを介さず、AIクライアントから化学ツールを呼び出せます。
うまくいかないときクライアントがローカルプロセスを起動できない場合だけ、ループバックHTTPアダプターを使います。
chematic-mcp案内を見る ブラウザ
SMILESを拡大しても粗くならない構造式SVGに変換し、ブラウザ内で確認します。
確認ポイント拡大しても鮮明な、アスピリンの2D構造式が表示されます。
うまくいかないとき有効で最後まで書かれたSMILESを使います。SVG描画にバックエンドは必要ありません。
CC(=O)OC1=CC=CC=C1C(=O)O案内を見る Python
1つの分子を解析し、初期スクリーニングでよく使う物性記述子を計算します。
確認ポイント同じ解析済み分子に対して、3つの値がローカルで返ります。
うまくいかないとき記述子は計算値です。実測値や臨床予測として扱わないでください。
mol = chematic.from_smiles("CCO")
mol.mw
mol.logp
mol.tpsa案内を見る ブラウザ
官能基のパターンが分子に含まれるかを調べ、一致した原子を確認します。
確認ポイント一致件数が表示され、該当する原子がハイライトされます。
うまくいかないときSMARTSは必ずしも完全な分子ではなく、パターンを表します。まず小さなパターンから始めます。
C(=O)O案内を見る ブラウザ
構造ファイルを読み込み、行を確認してからブラウザ内でフィルタや書き出しを行います。
確認ポイント専用の解析バックエンドなしに、ブラウザ内でファイルを扱えます。
うまくいかないとき元ファイルを保存したまま、最初は小さなサンプルでSMILES列やSDFフィールドを確認します。
compounds.sdf案内を見る ブラウザ
構造式の描画や性質計算の前に、無効な分子文字列へ明確なエラーを返します。
確認ポイント正しい入力では構造式が出て、未完成の構文ではエラーが表示されます。
うまくいかないとき解析エラーは構文の問題であり、化学的な安全性や実験的妥当性の判断ではありません。
正しい例: CCO
無効な例: C1CC案内を見る ブラウザ
2つの構造をローカルで比べ、再現可能なTanimotoスコアと入力を一緒に残します。
確認ポイント同じ入力とフィンガープリント設定では、同じローカルスコアが返ります。
うまくいかないとき類似度スコアだけで活性、安全性、合成可能性は判断できません。
アスピリン
サリチル酸
ECFP4案内を見る ブラウザ
1つの解析済み分子について、計算記述子と表示されるLipinski結果を確認します。
確認ポイント結果パネルに、解析済み分子の物性指標が表示されます。
うまくいかないときこれは計算指標であり、有効性、安全性、臨床適合性の結論ではありません。
CC(=O)OC1=CC=CC=C1C(=O)O案内を見る Python
コンパクトな物性レポートを作りながら、元の行番号とパーサーエラーを残します。
確認ポイント空でない入力行ごとに明示したstatusがあります。
うまくいかないときbulk.descriptorsは無効なSMILESをスキップするため、元表と照合するレポートでは先に検査します。
chematic.from_smiles(smiles)案内を見る Python
候補ライブラリを検査した後、1対多のローカルTanimoto検索を実行します。
確認ポイント同じ有効な入力なら同じ順位になります。
うまくいかないときbulk APIは無効な要素をスキップするため、生データの行番号との対応が崩れる場合があります。
bulk.tanimoto_search(query, library)案内を見る Python
ローカルリストから官能基パターンを検索し、一致を入力順で残します。
確認ポイント一致した文字列は入力順のまま残ります。
うまくいかないときこのAPIでは無効なSMILESも不一致になるため、陰性結果を説明するなら先に検査します。
bulk.substructure_search(pattern, smiles)案内を見る Rust
CCOを解析し、原子数・分子量・TPSAを出力するネイティブCLIを作ります。
確認ポイントCCOではatoms=3、mw=46.07、tpsa=20.23が出力されます。
うまくいかないとき実際の用途に必要な、文書化された最小の機能セットを選びます。
cargo add chematic --features "smiles,perception,chem"案内を見る AIエージェント
クライアントへ登録する前に、JSON-RPCの解析要求をローカルMCPサーバーへ送ります。
確認ポイントvalid=true、atoms=6、bonds=6、mol_weight=78.114が返ります。
うまくいかないときこれはホスト型MCP URLではなく、ローカルstdioプロセスです。
tools/call: parse_smiles案内を見る Python
1つのSMILESを解析し、基本的な2つの計算値を元の入力の横に残します。
確認ポイントCCOではC2H6Oと、およそ46.07 g/molの分子量が返ります。
うまくいかないとき分子式だけでは構造を一意に決められず、ここでの分子量は実験測定値ではなく計算値です。
mol = chematic.from_smiles("CCO")
mol.formula
mol.mw案内を見る ブラウザ
バンドラなしで公開済みWebAssemblyパッケージを読み込み、ブラウザでアスピリンの分子量を計算します。
確認ポイント固定版モジュールの初期化後、アスピリンでは180.16が表示されます。
うまくいかないとき@latestを使わず、ESモジュール読み込みにfile URLを使わないでください。
import init, { parse_smiles } from ".../chematic_wasm.js"
await init()案内を見る AIエージェント
ローカルMCPからPubChemでアスピリンを検索し、返ったSMILESと出典を残します。
確認ポイントアスピリンではPubChem由来の異性体SMILESが返ります。
うまくいかないとき入力をネットワークサービスへ送るMCPツールはこれだけです。
tools/call: name_to_smiles
name: aspirin案内を見る AIエージェント
chematicの正規化SMILESをローカルで取得し、入力とソフトウェアのバージョンと一緒に残します。
確認ポイントネットワーク要求なしに正規化SMILES文字列が応答に入ります。
うまくいかないとき異なるライブラリやリリースの正規化文字列を、検証なしに同じものとして扱わないでください。
tools/call: canonical_smiles
smiles: C1=CC=CC=C1案内を見る Python
CSVのすべての行を残し、chematicの正規化SMILESからローカルの重複候補を記録します。
確認ポイントCCOとOCCはC(C)Oを共有し、後の行は重複候補として記録されます。
うまくいかないとき正規化文字列は普遍的な同一性の証拠ではありません。元の行とバージョン情報を残します。
chematic.from_smiles(smiles).smiles案内を見る Python
提出されたSMILESを残したまま、塩を含む記録用に方針を明示した比較表現を作ります。
確認ポイント最大フラグメントで確認すると、酢酸ナトリウムと酢酸はCC(O)=Oになります。
うまくいかないとき提出された塩形や立体情報を、比較用の表現で置き換えないでください。
mol.standardize(largest_fragment_only=True)案内を見る Python
無効な行を飛ばす一括APIの前に、すべての元値を分類します。
確認ポイントCCOとOCCはacceptedになり、不完全なC1CCはinput_index 1でrejectedのままです。
うまくいかないとき構文のacceptedは、物質同一性、塩の方針、安全性、実験的妥当性を証明しません。
canonicalize_smiles_batch_json(source_smiles)案内を見る Python
正確な入力SMILESを残しながら、拡大可能な2D構造式ファイルをローカルで作ります。
確認ポイントaspirin.svgは拡大できる2D構造式として開けます。
うまくいかないときSVG描画は物質同一性、立体化学、安全性、実験的妥当性の証明ではありません。
Path("aspirin.svg").write_text(mol.svg())案内を見る Python
明示した反応SMILESから、拡大可能な反応図をローカルで作ります。
確認ポイントesterification.svgは反応物、矢印、生成物を含む反応図として開けます。
うまくいかないとき反応SVGは原子マッピング、収支、条件、収率、物質同一性、安全性、実験的妥当性の証明ではありません。
Path("esterification.svg").write_text(chematic.reaction_svg(...))案内を見る Python
構造名と正確な元SMILESをSDデータに残した、ローカルのSDFレコードを作ります。
確認ポイントethanol.sdfにはエタノール、source_smiles: CCO、$$$$終端が入ります。
うまくいかないときSDFレコードと自動生成した2D座標は、物質同一性、試料の由来、安全性、実験的妥当性の証明ではありません。
with chematic.SDWriter("ethanol.sdf") as writer:
writer.write(mol)案内を見る Python
有効なCSV行をローカルのSDFレコードにし、すべての元行をレポートに残します。
確認ポイント有効な行はSDFになり、C1CCはレポートでinvalid_smilesとして残ります。
うまくいかないときSDF出力は物質同一性、試料の由来、安全性、実験的妥当性の証明ではありません。
chematic.SDWriter("molecules.sdf")案内を見る