---
title: ShinyとLLMでClinicalTrials.govを分析するツールを作ってみた
tags:  #[第12回大阪sas勉強会]  
author: [森岡裕[SASユーザー総会世話人]](https://convert.docswell.com/user/6484025)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/47M9M5PPJW.jpg?width=480
description: ShinyとLLMでClinicalTrials.govを分析するツールを作ってみた by 森岡裕[SASユーザー総会世話人]
published: January 27, 26
canonical: https://convert.docswell.com/s/6484025/KYV229-2026-01-27-074145
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/47M9M5PPJW.jpg)

とLLMでClinicalTrials.govを分析するツールを
作ってみた
Shiny
Tomoki Nishikawa
January 28, 2026
大阪SAS勉強会#12
1


# Page. 2

![Page Image](https://bcdn.docswell.com/page/P7RGV31YJ9.jpg)

ClinicalTrials.gov (CT.gov)
とは？
世界最大の治験情報データベース
→ 治験の概要、デザイン、結果、文献リンク 他いろいろ
「他社の薬剤開発状況」「世界のトレンド」などを調べるのに便利
▶ ClinicalTrials.gov
大阪SAS勉強会#12
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/PJXXZ4Y4JX.jpg)

CT.gov
の活用イメージ
「社長、最近○○がアツいらしいですよ」
他社の動きや開発トレンドをキャッチ
市場調査や戦略立案に役立つ
でも、検索や集計はちょっと面倒
大阪SAS勉強会#12
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/3JKW8Z3PJD.jpg)

ちょっと面倒
ウェブUIは検索条件が限られる
大量のデータをダウンロードしてエクセルで集計するのは大変
直接データベースを操作できれば楽だけど、書ける人が限られる
大阪SAS勉強会#12
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/LE312DG475.jpg)

自然言語で検索・分析できたらうれしい
「日本で進行中の高血圧治療薬の治験を一覧して」
「近年増えてるがん免疫治療をグラフで見せて」
→ SQLやRやSASを書かずに、チャットでお話ししながら分析したい
大阪SAS勉強会#12
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/8EDXZP15JG.jpg)

Aggregate Analysis of ClinicalTrials.gov (AACT)
の情報をPostgreSQL形式で公開しているサービス
→ Sign upから無料で利用可能
→ SQLを叩いてCT.govを検索できる！
とは？
CT.gov
▶ AACT
大阪SAS勉強会#12
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/V7PPDNQD78.jpg)

のスキーマ
AACT
大阪SAS勉強会#12
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/2JV21K5GJQ.jpg)

ということは
を使うにはSQLクエリを書く必要
→ 自然言語→SQL変換 すればいいのでは
分析にはRを使いたい
→ 自然言語→Rコード変換 もできれば最高
AACT
とShinyの出番！
LLM
大阪SAS勉強会#12
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/5EGR2QPDJL.jpg)

実現するためのRパッケージとLLMのAPI
でLLMを動かす
shinychat: ShinyでLLMとのチャットUIを簡単に実装
Gemini: Googleアカウントがあれば無料でAPIが使える！
ellmer: R
▶ ellmer
▶ shinychat
大阪SAS勉強会#12
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/4JQVPK2X7P.jpg)

で作った
Vibe coding
今回は VSCode 上の GitHub Copilot を使って実装しました。
GitHub Copilot、本当に便利です。
大阪SAS勉強会#12
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/K74MYPL2J1.jpg)

要件定義の例
🗣️ GitHub Copilotへの指示
の情報をSQLクエリで取得できるAACTというサービ
ClinicalTrials.gov
スがある。
これとshinychatを使って、自然言語を入力したらそれに合った情報を
抽出するSQLクエリを実行して返し、必要に応じてRで処理・可視化
するアプリを作って。
使用するAPIをGeminiに変更して。
→ Copilotが要件定義書を生成してくれる
大阪SAS勉強会#12
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/LJ1869LKEG.jpg)

要件定義に基づいて実装
🗣️ 次の指示
この要件定義に従って実装して
Copilotが必要なファイルを生成
→ app.R: Shinyアプリ本体
→ server.R: サーバーロジック
→ ui.R: UIコンポーネント
大阪SAS勉強会#12
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/GJWZWQVPJ2.jpg)

エラーや意図と異なる点を修正
実行してみると…
❌ データベース接続エラー
❌ SQLクエリの実行結果が表示されない
❌ アプリの見た目がイマイチ
🗣️ 修正の指示
データベース接続でエラーが出る。環境変数から認証情報を読み込む
ように変更して
大阪SAS勉強会#12
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/4EZ15W4673.jpg)

GitHub Copilot
の強み
従来の開発
ドキュメントを読む
コードを書く
デバッグする
繰り返し…
を使った開発
自然言語で指示
AIが実装
対話的に修正
完成！
Copilot
大阪SAS勉強会#12
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/Y76L9G3LJV.jpg)

作成したツール
Enter a message...
▶ CTgov-bot
大阪SAS勉強会#12
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/G751NVLME4.jpg)

ツールの動き方のイメージ
でチャットUIを提供
2. 入力された自然言語をもとにLLMがSQL/Rコードを生成
3. 生成されたSQL/Rコードを実行し、分析・可視化結果を返す
1. Shiny
大阪SAS勉強会#12
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/9J2153LR7R.jpg)

自然言語からSQL/Rコード生成の例 (1/2)
🗣️ユーザーの入力
日本で実施された高血圧の治験を期間別にカウントして
🤖 LLMの出力
承知いたしました。日本で開始された高血圧の臨床試験を、開始年別に
集計するSQLクエリを実行します。
1 SELECT
2
EXTRACT(YEAR FROM s.start_date) AS start_year,
3
COUNT(s.nct_id) AS study_count
4 FROM studies s
5 JOIN conditions c ON s.nct_id = c.nct_id
6 JOIN countries co ON s.nct_id = co.nct_id
7 WHERE c.downcase_name ILIKE &#039;%hypertension%&#039;
8 AND co.name = &#039;Japan&#039;
9 AND co.removed = false
10 GROUP BY start_year
11 ORDER BY start_year;
大阪SAS勉強会#12
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/DEYZK1Q57M.jpg)

自然言語からSQL/Rコード生成の例 (2/2)
🗣️ユーザーの入力: 開始年別の治験数の棒グラフを作成して
🤖 LLMの出力: 承知いたしました。
1 library(ggplot2)
2
3 ggplot(plot_data, aes(x = factor(start_year), y = study_count)) +
4 (省略)
大阪SAS勉強会#12
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/VJN3R2K4J8.jpg)

👍
大阪SAS勉強会#12
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/YE99M1V4E3.jpg)

に与えたシステムプロンプト
Gemini
こんなことをGeminiに伝えました
目的: 治験データの検索・分析・可視化を支援
環境: AACT接続、SQL/Rコードが実行可能であること
動作方針
→ 小さなステップで進め、都度説明を添える
→ ggplot2 を用いて一貫した可視化を行う
→ SQLは ILIKE 検索・nct_id 結合を基本とし、実行結果は即時表示
→ セキュリティ上、ローカルファイルや外部操作は実行しない
AACTの主なデータ構造
分析・可視化の例
大阪SAS勉強会#12
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/GE89L4PV7D.jpg)

開発・デプロイまで全部無料
でコード補完とvibe coding
→ 学生はPro版も無料 (今回 Claude Sonnet 4.5 を使いました)
Posit Connect Cloud: Shinyアプリをデプロイ可能
→ 無料プランでRAM 4GB
GitHub Copilot: VS Code
大阪SAS勉強会#12
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/LELWL61RJR.jpg)

まとめ
でデータ分析が変わる
Shiny の中に LLM を組み込むのは簡単
チャットで指示して抽出・分析・可視化ができちゃう
Shiny自体も簡単に作成可能
LLM
LLM × Shiny = 👍
大阪SAS勉強会#12
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/4JM9M5WPEW.jpg)

Enjoy 😊
大阪SAS勉強会#12
23


