C30シリーズ(プログラミング編)の全体像を学びます。医療AI開発で使うツール群の役割と連携を「臨床メタファー」で理解し、C30.1〜C30.7を迷わず進めるための「大地図」を手に入れます。
医療AI開発はPython, Jupyter, venv, Docker, Gitなど多くのツールが登場し挫折しがちです。この回は、個別の技術を学ぶ前に、各ツールの「全体像・位置づけ・役割分担」を理解し、迷わず進めるための上位モデルを作ります。
開発ツールは臨床プロセスに対応します。
・Jupyter (C30.2): 実験ノート/カルテ
・VS Code (C30.3): 手術室
・venv (C30.4): 清潔野
・Docker (C30.5): 滅菌パック
・Git (C30.7): 電子カルテ
Jupyter(実験室)で試行錯誤し、見つけたロジックをVS Code(手術室)で清書・本番コード化します。この「実験」と「本番」の厳格な区別こそが、プロの医療AI開発を分ける決定的な一線です。
この「Clinical AI Coding 100」へようこそ。このコースは、医療AI時代の荒波を乗りこなすための、総合的なプログラミング技術を学ぶ航海図です。
私たちはこれまで、第I部でAIの「骨格」となる数学を、第II部でデータから「真実」を見抜く統計学と因果推論を学んできました。それらは強力な「理論」という名の羅針盤でした。しかし、羅針盤だけでは船は進みません。
いよいよ始まる第III部(C30〜C39)は、その理論を「動く形」にするための、実践的な「操船術」を学ぶセクションです。アイデアをカタチにする魔法、プログラミングの世界へ踏み出します。
その幕開けとなるこのC30シリーズ(C30.1からC30.7まで)は、いわば「造船所」です。医療AIという船を建造し、航海(開発)に出るために必要な、ありとあらゆる「道具」と「作業環境」のすべてを揃えます。
今回のC30は、そのC30シリーズ全体の「総論」であり「大地図」です。医療AIの世界は、Python、Jupyter、VS Code、venv、Docker、Gitなど、多くのツールが登場するため、どれをいつ使うのか分からず挫折する例が後を絶ちません。
そこでこの回の目的は、あなたを「医療AI実装の広い地図の上」に連れて行き、全体像を把握したうえで、C30.1〜C30.7を迷わず進めるための“上位モデル”を作ることです。道具や技術を個別に学ぶ前に、臨床医学と同じで「全体像・位置づけ・役割分担」を理解することが最も重要です。
プログラミングは、医師の「思考」を拡張する
現代の医療現場は、AIによる画像診断支援や電子カルテのデータ解析など、テクノロジーと切り離せないものになりました。多くの医療者は、AIを「便利なツール」として利用する側(ユーザー)になっています。
しかし、それで十分でしょうか?
米国の循環器内科医であるエリック・トポル氏が『Deep Medicine』(Topol, 2019) で描いた未来は、AIが医療者を単に「置き換える」ものではなく、むしろ雑務から解放し、より人間的なケアに時間を使えるようにする「パートナー」としての姿でした。
私は、このパートナーシップを真に実現するために、医療者自身が「AIが何をしているのか」を理解する必要がある、と強く信じています。そして、その理解への最短距離が、プログラミング技術を身につけることです。
プログラミングは、単なる「コード書き」ではありません。それは、医師の論理的思考を拡張し、データを自在に操り、自らの仮説をコンピュータ上で検証するための「第二の聴診器」です。医師の脳にある推論をコードとして「外在化」する道具なのです。
医療AI開発の「道具」と「臨床メタファー」
この「思考の拡張」を実現する共通言語がPythonです。なぜRやSASではなくPythonなのか、その構造的な理由はC30.1で詳しく解説します。
このC30(総論)で最も重要なのは、Pythonという言語を核として、それを取り巻く「開発ツール群」が、臨床現場のプロセスと見事に対応していることを理解することです。
このC30.xシリーズで学ぶツール群を、臨床現場のメタファーで整理した「大地図」が以下になります。
- Jupyter Notebook (C30.2) = デジタル実験ノート / 思考を残すカルテ
- 役割: データを探索し(EDA)、試行錯誤し、その思考プロセスと結果(グラフ)を一緒に記録する場所。科学的な「実験ノート」です。
- VS Code (C30.3) = 本番に向かう開発室 / 手術室
- 役割: Jupyterで見つかったロジックを、再現性のある「本番用コード」に清書する場所。デバッグやコード管理に優れた「開発室」です。
- 仮想環境 (venv) (C30.4) = 清潔野 / 薬剤部
- 役割: プロジェクトごとに環境を隔離する「清潔野」。ライブラリ同士の衝突(臨床での「薬物相互作用」)を防ぎ、環境汚染を防止します。
- 発展ツール (uv, conda, Docker) (C30.5) = 高度な環境整備
- 役割: venvだけでは難しい、GPU環境や、病院サーバへの導入(Docker=滅菌パック)など、本番運用を見据えた発展的ツール群です。
- Python文法 (C30.6) = 基礎医学 / 生理学
- 役割: これら全てのツールを動かすための基礎知識。臨床医学における生理学や解剖学のように、AI実装の「生理学」となる文法を学びます。
- Git / GitHub (C30.7) = 電子カルテ / 履歴管理室
- 役割: 「いつ、誰が、なぜ」コードを変更したかをすべて記録する「電子カルテ」。再現性を担保し、チーム開発の中心となる必須技術です。
このように、全てのツールが「臨床の流れ」に対応する形で配置されているのです。
2026年版・環境選択の「王道ルート」
特に混乱しやすい「環境管理」(C30.4とC30.5)については、現時点での実務的な使い分け(王道ルート)を先に提示しておきます。これがC30.xシリーズで学ぶ環境技術のゴールイメージです。
医療AI開発の「環境」選択ルート(2026年版)
私たちは、C30.xシリーズで複数の環境管理ツールを学びます。なぜなら、医療AI開発はフェーズによって最適なツールが異なるからです。これが2026年版の「実務的な王道ルート」です。
- 研究・実験フェーズ (C30.2):
conda+ Jupyter
強み: GPU(CUDA)依存関係や複雑な科学技術計算ライブラリの管理は、condaが圧倒的に得意です。研究者は環境構築のストレスなく、すぐに実験に集中できます。- 開発・実務フェーズ (C30.3, C30.4):
venv,uv, またはconda
強み: このフェーズでは、研究(C30.2)で選んだ環境を引き続き使います。
・conda(C30.5): GPU/CUDAの依存関係を研究フェーズから引き継ぐ場合、そのままVS Codeで使い続けます。
・venv/uv(C30.4): 軽量なAPIサーバー開発など、condaが不要なプロジェクトをクリーンな環境で開発するのに最適です。- 本番運用フェーズ (C30.5):
Docker
強み: 「開発環境では動いたのに本番では動かない」という事態は、医療AIでは絶対に許されません。Dockerは、OS、ライブラリ、コードのすべてをコンテナとして丸ごと固める技術です。これにより「完全な再現性」を担保します。このフェーズに応じた使い分け(C30.5で詳述)を理解することが、私たちが目指すゴールです。
医療AI開発のライフサイクル:5つのステップ(臨床アナロジー)
これらのツールは、バラバラに使うものではありません。医療AIのアイデアが生まれ、研究室での実験を経て、最終的に臨床現場の「病棟(本番環境)」で使われるまで、一連の流れ(ライフサイクル)の中で密接に連携しています。
この流れを、医療現場のアナロジーで具体的に見てみましょう。
この図から、極めて重要な教訓が導き出されます。
最重要:Jupyter(実験室)と本番(オペ室)を混同しない
- Jupyter Notebook (C30.2) は、あくまで「実験室」であり「思考のカルテ」です。試行錯誤し、最良のプロトコルを見つけるための場所です。Jupyterで直接「本番運用(オペ)」をしようとすると、再現性が取れなかったり、管理が破綻したりと、医療事故に等しい深刻な問題を引き起こします。
- 本番の臨床現場で動くのは、VS Code (C30.3) で清書され、venv (C30.4) や conda (C30.5) によって環境が管理され、最終的に Docker (C30.5) で滅菌パック化された「信頼できるコード」だけです。
この「実験」と「本番」の厳格な区別こそが、趣味のプログラミングと、プロフェッショナルな医療AI開発を分ける決定的な一線です。
さあ、地図を手に「造船所」へ
今回のC30で、私たちは医療AI開発の全体像を示す「地図」を手に入れました。なぜこんなに多くのツールを学ぶ必要があるのか、そしてそれらが「研究室」から「病棟」まで、どのように連携しているのか、その理由をご理解いただけたと思います。
ここから始まるC30.xシリーズは、この地図に描かれた「造船所」の各エリアを巡る旅です。
- C30.1: なぜPythonなのか?(R/SASとの比較)
- C30.2: Jupyter Notebook(デジタル実験ノート)入門【ステップ1】
- C30.3: VS Code(本番志向の開発室)への乗り換え【ステップ2】
- C30.4: 仮想環境 venv(清潔野)の守り方【ステップ3】
- C30.5: uv, conda, Docker(発展ツールと本番環境) 【ステップ4】
- C30.6: Python文法ショートコース(基礎医学・生理学)
- C30.7: Git/GitHub(時を戻せる電子カルテ)の作り方【ステップ5】
これらのツールを自在に操ることで、あなたの臨床現場でのアイデアや、研究でのひらめきを、再現可能で信頼性の高い「コード」という形に変える、本質的な力が身につくはずです。一緒にこの知的な冒険の旅を始めましょう。
参考文献
- Chacon, S. and Straub, B. (2014). Pro Git. 2nd ed. Apress.
- Docker Inc. (2025). What is Docker?. [Online] Available at: https://www.docker.com/why-docker/ (Accessed: 16 November 2025).
- Microsoft. (2025). Visual Studio Code Documentation. [Online] Available at: https://code.visualstudio.com/docs (Accessed: 16 November 2025).
- Project Jupyter. (2025). Jupyter Notebook Documentation. [Online] Available at: https://jupyter-notebook.readthedocs.io/en/stable/ (Accessed: 16 November 2025).
- Python Software Foundation. (2025). Python Language Reference, version 3.13. [Online] Available at: https://docs.python.org/3/reference/ (Accessed: 16 November 2025).
- Topol, E. (2019). Deep Medicine: How Artificial Intelligence Can Make Healthcare Human Again. New York: Basic Books.
※本記事は情報提供を目的としたものであり、特定の治療法を推奨するものではありません。健康に関するご懸念やご相談は、必ず専門の医療機関にご相談ください。
ご利用規約(免責事項)
当サイト(以下「本サイト」といいます)をご利用になる前に、本ご利用規約(以下「本規約」といいます)をよくお読みください。本サイトを利用された時点で、利用者は本規約の全ての条項に同意したものとみなします。
第1条(目的と情報の性質)
- 本サイトは、医療分野におけるAI技術に関する一般的な情報提供および技術的な学習機会の提供を唯一の目的とします。
- 本サイトで提供されるすべてのコンテンツ(文章、図表、コード、データセットの紹介等を含みますが、これらに限定されません)は、一般的な学習参考用であり、いかなる場合も医学的な助言、診断、治療、またはこれらに準ずる行為(以下「医行為等」といいます)を提供するものではありません。
- 本サイトのコンテンツは、特定の製品、技術、または治療法の有効性、安全性を保証、推奨、または広告・販売促進するものではありません。紹介する技術には研究開発段階のものが含まれており、その臨床応用には、さらなる研究と国内外の規制当局による正式な承認が別途必要です。
- 本サイトは、情報提供を目的としたものであり、特定の治療法を推奨するものではありません。健康に関するご懸念やご相談は、必ず専門の医療機関にご相談ください。
第2条(法令等の遵守)
利用者は、本サイトの利用にあたり、医師法、医薬品、医療機器等の品質、有効性及び安全性の確保等に関する法律(薬機法)、個人情報の保護に関する法律、医療法、医療広告ガイドライン、その他関連する国内外の全ての法令、条例、規則、および各省庁・学会等が定める最新のガイドライン等を、自らの責任において遵守するものとします。これらの適用判断についても、利用者が自ら関係各所に確認するものとし、本サイトは一切の責任を負いません。
第3条(医療行為における責任)
- 本サイトで紹介するAI技術・手法は、あくまで研究段階の技術的解説であり、実際の臨床現場での診断・治療を代替、補助、または推奨するものでは一切ありません。
- 医行為等に関する最終的な判断、決定、およびそれに伴う一切の責任は、必ず法律上その資格を認められた医療専門家(医師、歯科医師等)が負うものとします。AIによる出力を、資格を有する専門家による独立した検証および判断を経ずに利用することを固く禁じます。
- 本サイトの情報に基づくいかなる行為によって利用者または第三者に損害が生じた場合も、本サイト運営者は一切の責任を負いません。実際の臨床判断に際しては、必ず担当の医療専門家にご相談ください。本サイトの利用によって、利用者と本サイト運営者の間に、医師と患者の関係、またはその他いかなる専門的な関係も成立するものではありません。
第4条(情報の正確性・完全性・有用性)
- 本サイトは、掲載する情報(数値、事例、ソースコード、ライブラリのバージョン等)の正確性、完全性、網羅性、有用性、特定目的への適合性、その他一切の事項について、何ら保証するものではありません。
- 掲載情報は執筆時点のものであり、予告なく変更または削除されることがあります。また、技術の進展、ライブラリの更新等により、情報は古くなる可能性があります。利用者は、必ず自身で公式ドキュメント等の最新情報を確認し、自らの責任で情報を利用するものとします。
第5条(AI生成コンテンツに関する注意事項)
本サイトのコンテンツには、AIによる提案を基に作成された部分が含まれる場合がありますが、公開にあたっては人間による監修・編集を経ています。利用者が生成AI等を用いる際は、ハルシネーション(事実に基づかない情報の生成)やバイアスのリスクが内在することを十分に理解し、その出力を鵜呑みにすることなく、必ず専門家による検証を行うものとします。
第6条(知的財産権)
- 本サイトを構成するすべてのコンテンツに関する著作権、商標権、その他一切の知的財産権は、本サイト運営者または正当な権利を有する第三者に帰属します。
- 本サイトのコンテンツを引用、転載、複製、改変、その他の二次利用を行う場合は、著作権法その他関連法規を遵守し、必ず出典を明記するとともに、権利者の許諾を得るなど、適切な手続きを自らの責任で行うものとします。
第7条(プライバシー・倫理)
本サイトで紹介または言及されるデータセット等を利用する場合、利用者は当該データセットに付随するライセンス条件および研究倫理指針を厳格に遵守し、個人情報の匿名化や同意取得の確認など、適用される法規制に基づき必要とされるすべての措置を、自らの責任において講じるものとします。
第8条(利用環境)
本サイトで紹介するソースコードやライブラリは、執筆時点で特定のバージョンおよび実行環境(OS、ハードウェア、依存パッケージ等)を前提としています。利用者の環境における動作を保証するものではなく、互換性の問題等に起因するいかなる不利益・損害についても、本サイト運営者は責任を負いません。
第9条(免責事項)
- 本サイト運営者は、利用者が本サイトを利用したこと、または利用できなかったことによって生じる一切の損害(直接損害、間接損害、付随的損害、特別損害、懲罰的損害、逸失利益、データの消失、プログラムの毀損等を含みますが、これらに限定されません)について、その原因の如何を問わず、一切の法的責任を負わないものとします。
- 本サイトの利用は、学習および研究目的に限定されるものとし、それ以外の目的での利用はご遠慮ください。
- 本サイトの利用に関連して、利用者と第三者との間で紛争が生じた場合、利用者は自らの費用と責任においてこれを解決するものとし、本サイト運営者に一切の迷惑または損害を与えないものとします。
- 本サイト運営者は、いつでも予告なく本サイトの運営を中断、中止、または内容を変更できるものとし、これによって利用者に生じたいかなる損害についても責任を負いません。
第10条(規約の変更)
本サイト運営者は、必要と判断した場合、利用者の承諾を得ることなく、いつでも本規約を変更することができます。変更後の規約は、本サイト上に掲載された時点で効力を生じるものとし、利用者は変更後の規約に拘束されるものとします。
第11条(準拠法および合意管轄)
本規約の解釈にあたっては、日本法を準拠法とします。本サイトの利用および本規約に関連して生じる一切の紛争については、東京地方裁判所を第一審の専属的合意管轄裁判所とします。
For J³, may joy follow you.

