SMILESを含むCSV/TSVファイルから ECFP (Extended-Connectivity Fingerprints) / Morgan fingerprint を高速かつ堅牢に一括生成する公開グレードのコマンドラインツール(CLI)です。
Note: 本ツールは 2D Morgan / ECFP フィンガープリント計算専用であり、3D座標生成や力場最適化は行いません。
- Python 3.10 以上推奨 (Python 3.10+ recommended)
- (※ Python 3.10 および 3.11 にて動作確認済み)
git clone https://github.com/377H-Miru/ecfp_cli.git
cd ecfp_cli
pip install -e .ヘルプメッセージの表示:
ecfp-gen --helpsmiles,compound_id
CCO,MOL001
c1ccccc1,MOL002
CO.[Na+].[Cl-],MOL003
INVALID_SMILES,MOL004ecfp-gen \
--input examples/sample.csv \
--output result.tsv \
--smiles-col smiles \
--name-col compound_id \
--overwrite- デフォルト: 有効 (
--desalt) - 塩や溶媒を含む複合分子(例:
CO.[Na+].[Cl-])に対し、最も構成原子数の多い最大フラグメントのみを保持してフィンガープリントを計算します。無効化する場合は--no-desaltを指定します。
- デフォルト: 無効 (Off)
- RDKit の
MolStandardizeCleanup 処理を適用します。構造補正が必要な特定のデータセットでのみ明示的に指定して使用してください。
- デフォルトでは
Bit_1からBit_2048の 1-indexed カラム名が生成されます。 --zero-indexed-bitsを指定するとBit_0からBit_2047の 0-indexed に変更可能です。
- 入力で指定した化合物ID (
ID) と脱塩・標準化処理後の正規化SMILES (canonical_smiles)、および各ビット列が出力されます。
パース不能な SMILES や処理失敗分子は正常出力から自動除外され、以下の多段階構造化フォーマットで記録されます。
row_index: 入力データの行番号ID: 化合物ID/名称input_smiles: 元の入力SMILEScanonical_smiles: 処理途中の正規化SMILESstage: 失敗段階(parse,preprocess,standardize,fingerprint)error_type: エラー種別error_message: 詳細エラーメッセージ
generate_ecfp_batch をインポートして Python コード内でも利用可能です。
from ecfp_generator import generate_ecfp_batch
smiles_list = ["CCO", "c1ccccc1", "INVALID"]
results, errors = generate_ecfp_batch(smiles_list, radius=2, n_bits=2048, desalt=True, workers=1)本ツールは、SMILESのパースおよび Morgan / ECFP フィンガープリント生成に RDKit を利用しています。 RDKit は BSD 系のオープンソースライセンスで配布されています。RDKit 本体のライセンス条件については RDKit プロジェクトを参照してください。
本プロジェクトは MIT License のもとで公開されています。