このプロジェクトは、プラガブルなストレージ層を備えた簡易データベースインターフェースと、
検索・作成操作を備えた統合CLIを提供します。
目的は、柔軟なストレージ実装とCLIベースのデータ操作を通じて、
データベース抽象化アーキテクチャを検証・強化することです。
.
├── cli.py # CLIエントリーポイント
├── core/
│ ├── fbdb.py # データベース本体
│ ├── pool.py # 接続プール
│ ├── connection.py # 単一接続ラッパー
│ └── fairy.py # I/O仲介層(Write/Read関数保持)
├── logic/
│ └── processor/
│ ├── base.py # Processor基底クラス
│ ├── create_processor.py # 作成処理用Processor
│ └── search_processor.py # 検索処理用Processor
├── storage/
│ ├── base.py # 抽象Storage定義
│ ├── hdf5_storage.py # HDF5ストレージ実装
│ ├── inmemory_storage.py # メモリ内ストレージ実装
│ └── schema.py # スキーマバリデーション管理
├── tests/ # テストコード群(pytest)
│ └── …
└── README.md
指定した分子SDFおよび代表フラグメントSDFから、HDF5形式のデータベースを生成します。
python cli.py create <sdf_path> <fragment_path> [--storage_path <path>] [--chunk_size <N>] [--dropped_path <path>] [-v]| 引数名 | 型 | 説明 |
|---|---|---|
sdf_path |
Path | 分子構造を含む SDF ファイルのパス(.sdf, .sdf.gzなど対応) |
fragment_path |
Path | 代表フラグメント SDF ファイルのパス |
--storage_path |
Path (任意) | 出力する HDF5 データベースのパス(デフォルト: data.h5) |
--chunk_size |
int (任意) | チャンク単位で処理する分子数(デフォルト: 1000) |
--dropped_path |
Path (任意) | エラー分子(無効構造)を保存する SDF ファイルのパス |
-v, --verbose |
flag | 詳細ログを表示(入力パスや進捗が逐次出力される) |
-q, --quiet |
flag | エラーログのみを表示(--verbose とは同時使用不可) |
--log_path |
Path (任意) | ログをコンソールの代わりに指定ファイルへ出力 |
python cli.py create tests/data/test_mols_1.sdf tests/data/test_fragment50.sdf --storage_path tests/data/test_db.h5 -v生成したデータベースに対してクエリCSVを入力し、結果をCSV出力します。
python cli.py search <query_path> <output_path> [--storage_path <path>] [--similarity_th <float>] [-v]| 引数名 | 型 | 説明 |
|---|---|---|
query_path |
Path | クエリ CSV ファイルのパス(例: frag_smi1, frag_smi2, start, end を含む) |
output_path |
Path | 結果を出力する CSV ファイルのパス |
--storage_path |
Path (任意) | 検索対象の HDF5 データベースのパス(デフォルト: data.h5) |
--similarity_th |
float (任意) | フラグメント類似度の閾値(デフォルト: 0.45) |
-v, --verbose |
flag | 詳細ログを表示(処理進捗・チャンクロード情報などを出力) |
-q, --quiet |
flag | エラーログのみを表示(--verbose とは同時使用不可) |
--log_path |
Path (任意) | ログをコンソールの代わりに指定ファイルへ出力 |
python cli.py search tests/data/test_query.csv tests/data/test_result.csv --storage_path tests/data/test_db.h5 -vpytest tests/すべてのコアコンポーネント(FBDB, Connection, Storage, Processor, CLIなど)に対する単体・統合テストを含みます。
black . # コードフォーマット
isort . # import順整形