RTX3060最適化・本番環境対応の創薬AIシステム
DAT活性予測とTxGemma-9B自然言語対話による創薬支援を提供する、完全Docker化された本番環境システムです。
DAT Activity Predictor + TxGemma AIは、以下の機能を統合した次世代創薬支援システムです:
- 🧬 マルチターゲット活性予測: DAT, 5HT2A, CB1, CB2, μ/δ/κ-opioid受容体
- 🤖 TxGemma-9B統合: 自然言語対話による創薬プロセス支援
- 🐳 完全Docker化: ワンコマンドデプロイ
- ⚡ RTX3060最適化: 混合精度・メモリ管理・パフォーマンス最適化
- 📊 本番監視: Prometheus + Grafana統合
- 🛡️ エラー回復: 自動回復・ログ管理・セキュリティ
git clone https://github.com/zapabob/multi-target-pIC50-predictor.git
cd multi-target-pIC50-predictor# 環境設定
cp .env.example .env
cp config/config.yaml.example config/config.yaml
# 本番デプロイ(ワンコマンド)
./scripts/deploy.sh production deploy- アプリケーション: http://localhost:8000
- Grafana監視: http://localhost:3000 (admin/admin123)
- Prometheus: http://localhost:9090
services:
dat-predictor-app # メインアプリケーション
postgres # PostgreSQL データベース
redis # Redis キャッシュ
ollama # TxGemma-9B LLM
nginx # リバースプロキシ
prometheus # メトリクス収集
grafana # ダッシュボード- 🧠 AI/ML: Transformer, GNN, アンサンブル学習
- 🤖 LLM: TxGemma-9B自然言語対話
- 📊 監視: ヘルスチェック・メトリクス・アラート
- 🛡️ セキュリティ: JWT認証・監査ログ・レート制限
- ⚡ 最適化: RTX3060特化・メモリ管理・自動回復
# 対応ターゲット
targets = {
'DAT': 'CHEMBL238', # ドパミントランスポーター
'5HT2A': 'CHEMBL224', # セロトニン2A受容体
'CB1': 'CHEMBL218', # カンナビノイド受容体1
'CB2': 'CHEMBL1861', # カンナビノイド受容体2
'mu_opioid': 'CHEMBL233', # μ-オピオイド受容体
'delta_opioid': 'CHEMBL236', # δ-オピオイド受容体
'kappa_opioid': 'CHEMBL237' # κ-オピオイド受容体
}- RDKit記述子: MolWt, LogP, TPSA, NumHDonors, etc.
- フィンガープリント: ECFP4 (1024bit), MACCS (167bit)
- SMARTS特徴量: サイケデリックス特化パターン
- グラフ特徴量: 原子・結合特徴量(GNN用)
- Transformer: 自己注意機構による表現学習
- GNN: グラフニューラルネットワーク
- アンサンブル: 複数モデル統合予測
- 不確実性推定: MC Dropout, Deep Ensemble
- 能動学習: 効率的なデータ収集
# 創薬支援対話例
user: "DAT活性が高い化合物を設計したい"
ai: "DAT活性向上のため、以下の構造特徴を考慮してください:
- フェネチルアミン骨格
- メトキシ基の導入
- 脂溶性の最適化"
user: "この化合物の副作用リスクは?"
ai: "5HT2A活性とオピオイド受容体への結合を確認し、
サイケデリック効果と依存性リスクを評価します"- 創薬支援: 化合物設計・最適化提案
- 予測解釈: 結果の説明・根拠提示
- リスク評価: 副作用・毒性予測
- 文献検索: 関連研究の紹介
performance:
gpu:
mixed_precision: true # FP16使用
gradient_checkpointing: true # メモリ削減
memory_fraction: 0.8 # メモリ使用率制限
cpu:
num_workers: 4 # 並列処理
pin_memory: true # メモリ固定- 最適バッチサイズ: 自動決定
- メモリ管理: 自動クリーンアップ
- エラー回復: GPU メモリエラー自動回復
- スループット: リアルタイム監視
# 主要メトリクス
- dat_predictor_predictions_total
- dat_predictor_prediction_duration_seconds
- dat_predictor_txgemma_duration_seconds
- dat_predictor_errors_total
- dat_predictor_gpu_memory_usage_percent- システム監視: CPU, GPU, メモリ使用率
- アプリケーション: 予測数, 応答時間, エラー率
- TxGemma: 対話数, トークン数, 応答時間
- データベース: 接続数, クエリ時間
{
"timestamp": "2025-10-14T12:25:17Z",
"level": "INFO",
"message": "Prediction made",
"smiles": "CC(CC1=CC=CC=C1)NC",
"target": "DAT",
"prediction": 7.2,
"uncertainty": 0.3,
"processing_time": 0.8
}# モデル学習
py -3 cli.py train --target DAT --optimize
# 予測実行
py -3 cli.py predict --target DAT --smiles "CC(CC1=CC=CC=C1)NC"
# TxGemma対話
py -3 cli.py chat
# ヘルスチェック
py -3 cli.py health# GUI起動
py -3 main.pyGUI機能:
- 🧬 化合物入力・予測実行
- 📊 結果可視化・特徴量重要度
- 🤖 TxGemma対話チャット
- 📈 学習曲線・分布表示
- ⚙️ モデル設定・最適化
# サービス管理
./scripts/deploy.sh production start # 開始
./scripts/deploy.sh production stop # 停止
./scripts/deploy.sh production restart # 再起動
./scripts/deploy.sh production health # ヘルスチェック
./scripts/deploy.sh production logs # ログ確認# .env
ENV=production
CUDA_VISIBLE_DEVICES=0
OLLAMA_HOST=http://ollama:11434
DATABASE_URL=postgresql://dat_user:password@postgres:5432/dat_predictor
REDIS_URL=redis://redis:6379/0
SECRET_KEY=your-secret-key# config/config.yaml
app:
environment: "production"
debug: false
workers: 4
models:
cache_dir: "/app/cache/models"
default_batch_size: 32
txgemma:
model_name: "txgemma:9b-chat-q6_k"
timeout: 60- JWT認証: トークンベース認証
- ロール管理: 管理者・一般ユーザー
- セッション管理: 自動タイムアウト
- 操作ログ: 全操作の記録
- セキュリティイベント: 異常アクセス検出
- データ保護: 個人情報・機密データ保護
- HTTPS: SSL/TLS暗号化
- CORS: クロスオリジン制御
- レート制限: API呼び出し制限
- 予測処理: < 1秒/化合物
- 訓練処理: < 10分/エポック
- TxGemma対話: < 5秒/応答
- GPU使用率: 80-90%
- メモリ使用量: < 8GB VRAM
- 水平スケーリング: 複数ワーカー
- 垂直スケーリング: GPU メモリ最適化
- ロードバランシング: Nginx統合
- キャッシュ: Redis統合
- バックアップ: 日次自動バックアップ
- ログローテーション: 自動ログ管理
- ヘルスチェック: 定期監視
- アラート通知: 異常検出
# データベース最適化
docker-compose exec postgres psql -U dat_user -d dat_predictor -c "VACUUM ANALYZE;"
# キャッシュクリア
docker-compose exec redis redis-cli FLUSHALL
# ログローテーション
docker-compose exec dat-predictor logrotate -f /etc/logrotate.conf# 全テスト実行
pytest tests/
# 特定テスト実行
pytest tests/test_model.py -v
# カバレッジ測定
pytest --cov=src tests/- ユニットテスト: 各モジュールの単体テスト
- 統合テスト: システム統合テスト
- パフォーマンステスト: 負荷テスト
- セキュリティテスト: 脆弱性テスト
- Fork: リポジトリをフォーク
- Branch: 機能ブランチ作成
- Commit: 変更をコミット
- Pull Request: PR作成
- PEP8: Python コーディング規約
- 型ヒント: 型注釈必須
- ドキュメント: docstring必須
- テスト: テストカバレッジ80%以上
MIT License - 詳細はLICENSEファイルを参照
- ChEMBL: 分子活性データ
- RDKit: 分子処理ライブラリ
- PyTorch: 深層学習フレームワーク
- TxGemma: 自然言語処理モデル
- Docker: コンテナ化技術
- GitHub Issues: バグ報告・機能要望
- Discussions: 質問・議論
- Wiki: 詳細情報
- 3D分子構造対応
- マルチモーダル学習
- リアルタイム予測API
- クラウドデプロイ対応
- 量子化学計算統合
- 創薬パイプライン自動化
- 大規模データ処理
- エッジコンピューティング対応
🚀 創薬の未来を、AIと共に。
DAT Activity Predictor + TxGemma AI - 次世代創薬支援システム