薬剤師の専門知識と機械学習を融合した、薬物相互作用予測システム
このプロジェクトは、機械学習を用いて2つの薬物間の相互作用リスクを予測するシステムです。薬剤師としての臨床知識とデータサイエンス技術を組み合わせ、実臨床で価値のある予測モデルを構築しています。
- Major(重大): 生命を脅かす可能性、入院が必要
- Moderate(中等度): 患者状態の悪化、治療調整が必要
- Minor(軽度): 軽微な影響、経過観察
- None(なし): 臨床的に意義のある相互作用なし
実際の薬物相互作用メカニズムに基づいた特徴量設計:
薬物動態学的特徴
- 脂溶性(LogP値)
- 分子量
- タンパク結合率
- 半減期
代謝・トランスポーター
- CYP酵素(CYP3A4, 2D6, 2C9, 2C19)の基質・阻害
- P糖タンパク質の相互作用
- 治療域の狭さ(Narrow Therapeutic Index)
患者因子
- 年齢
- 腎機能(eGFR)
- 肝機能
- 併用薬数
- Random Forest: アンサンブル学習、特徴量重要度分析
- Gradient Boosting: 高精度な予測
- Logistic Regression: 解釈可能性
- 混同行列(Confusion Matrix)
- Precision, Recall, F1-Score
- クラス別パフォーマンス分析
- 特徴量重要度の可視化
| カテゴリ | 技術 |
|---|---|
| 言語 | Python 3.8+ |
| 機械学習 | scikit-learn, Random Forest, Gradient Boosting |
| データ処理 | pandas, NumPy |
| 可視化 | Matplotlib, Seaborn |
| 評価指標 | Classification metrics, Confusion Matrix |
drug-interaction-prediction/
├── drug_interaction_predictor.py # メインスクリプト
├── README.md # このファイル
├── requirements.txt # 依存ライブラリ
├── PORTFOLIO_GUIDE.md # ポートフォリオとしての活用法
└── outputs/ # 出力ファイル
├── 01_class_distribution.png
├── 02_model_comparison.png
├── 03_confusion_matrix.png
├── 04_feature_importance.png
└── drug_interaction_data.csv
git clone https://github.com/yourusername/drug-interaction-prediction.git
cd drug-interaction-predictionpython -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activatepip install -r requirements.txtpython drug_interaction_predictor.py| モデル | Accuracy | Precision | Recall | F1-Score |
|---|---|---|---|---|
| Random Forest | 0.578 | 0.434 | 0.578 | 0.461 |
| Gradient Boosting | 0.573 | 0.466 | 0.573 | 0.476 |
| Logistic Regression | 0.588 | 0.453 | 0.588 | 0.484 |
- 患者年齢 (0.084) - 高齢者は相互作用リスクが高い
- 腎機能 (0.083) - 腎機能低下で薬物蓄積
- 分子量 (0.070) - 薬物の吸収・分布に影響
- 脂溶性 (0.069) - 膜透過性と分布容積
- タンパク結合率 (0.069) - 遊離型薬物濃度
# 例: CYP3A4基質薬物 + CYP3A4阻害薬
if drug1_cyp_substrate == 'CYP3A4' and drug2_cyp_inhibitor:
→ 薬物濃度上昇リスク → Major/Moderate- 抗凝固薬 + NSAID: 出血リスク増加
- SSRI + NSAID: 消化管出血
- ACE阻害薬 + 利尿薬: 低血圧、腎機能障害
- スタチン + 抗生物質: 横紋筋融解症
- 高齢者(>75歳): 薬物代謝能低下
- 腎機能低下(eGFR<60): 薬物排泄遅延
- 多剤併用: 相互作用リスク増加
-
実データの活用
- DrugBank: 薬物相互作用データベース
- TWOSIDES: 副作用データ
- FDA Adverse Event Reporting System (FAERS)
-
追加特徴量
- 薬物構造情報(SMILES、分子指紋)
- 薬物遺伝学(Pharmacogenomics)
- 電子カルテデータ
-
深層学習の適用
- Graph Neural Networks (GNN)
- Transformer-based モデル
- 薬物構造の直接学習
-
説明可能AI(XAI)
- SHAP値による予測理由の説明
- LIME: 局所的な解釈可能性
- Attention機構の可視化
-
マルチタスク学習
- 相互作用メカニズムの同時予測
- 副作用の種類の予測
- 推奨される代替薬の提案
-
リアルタイム警告システム
- 電子カルテとの統合
- 処方時の自動チェック
- モバイルアプリ
-
多言語対応
- 5ヶ国語での薬物情報提供
- 国際的な薬物データベース統合
✅ ドメイン知識の特徴量化
✅ 不均衡データの扱い(クラスの偏り)
✅ 複数モデルの比較・評価
✅ 交差検証とハイパーパラメータチューニング
✅ 特徴量重要度分析
✅ scikit-learnでの機械学習パイプライン
✅ Random Forest、Gradient Boosting の実装
✅ モデル評価指標の選択と解釈
✅ 予測結果の可視化
✅ 薬物動態学(PK/PD)の理解
✅ CYP酵素システムの知識
✅ 臨床的リスク評価
✅ 実臨床での応用可能性
✅ オブジェクト指向プログラミング
✅ クリーンなコード設計
✅ 詳細なドキュメンテーション
✅ 再現可能な研究
「薬剤師として培った薬物相互作用の臨床知識を、機械学習モデルの特徴量設計に活かしました。特にCYP酵素阻害や治療域の狭さなど、実際の相互作用メカニズムを特徴量として実装しています。」
「薬物相互作用は複雑で多因子的な問題です。このプロジェクトでは、薬物特性、代謝経路、患者因子を統合的にモデル化し、臨床的に意義のある予測を目指しました。」
「モデルの精度だけでなく、特徴量重要度を分析することで、どの因子が相互作用リスクに寄与しているかを明確にしました。これは実臨床での意思決定支援に重要です。」
「現在は教師あり学習を使用していますが、Graph Neural Networksを用いた薬物構造の直接学習や、説明可能AIによる予測根拠の提示など、さらなる改善の余地を認識しています。」
- DrugBank: https://go.drugbank.com/
- TWOSIDES: http://tatonettilab.org/offsides/
- Drugs.com Interaction Checker
- scikit-learn Documentation
- "Hands-On Machine Learning" by Aurélien Géron
- Kaggle: Drug Interaction Prediction Competitions
- "Clinical Pharmacokinetics and Pharmacodynamics" by Malcolm Rowland
- FDA Drug Interaction Studies Guidelines
プルリクエストを歓迎します!改善提案や新機能のアイデアがあれば、Issueを開いてください。
このプロジェクトはMITライセンスの下で公開されています。
Yuki Koga
- 資格: 薬剤師、TOEIC 825、 HSK4級(中国語)
- 専門: 薬学 (→ AIエンジニア/データサイエンティスト)
- 言語: 日本語、英語、中国語、スペイン語
- GitHub: @AoharuPeace
- LinkedIn: yuki-k-ab049b216
このプロジェクトは教育・研究目的で作成されています。実際の臨床判断には使用しないでください。薬物相互作用に関する判断は、必ず医療専門家に相談してください。
このプロジェクトは、薬剤師としての臨床経験とAI技術への情熱を組み合わせて作成しました。医療AIの発展に少しでも貢献できれば幸いです。
⭐ このプロジェクトが参考になったら、スターをお願いします!
Keywords: Drug-Drug Interaction, Machine Learning, Random Forest, Pharmacology, Clinical Decision Support, Healthcare AI, 薬物相互作用, 機械学習, 医療AI