Skip to content

akiyamalab/FBDBv2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧩 Database Example: Pluggable Storage with CLI Interface

このプロジェクトは、プラガブルなストレージ層を備えた簡易データベースインターフェースと、
検索・作成操作を備えた統合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

🚀 実行方法

🔧 データ作成 (create コマンド)

指定した分子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

🔍 データ検索 (search コマンド)

生成したデータベースに対してクエリ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 -v

🧪 テスト実行

pytest tests/

すべてのコアコンポーネント(FBDB, Connection, Storage, Processor, CLIなど)に対する単体・統合テストを含みます。


🧰 開発補助ツール

black .     # コードフォーマット
isort .     # import順整形

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors