BCPNN – Potential Safety Signal of Medical Product

BCPNNについて

BCPNN (A Bayesian Confidence Neural Network) 1の集計手法について概要を記します。その例として、PMDA (Pharmaceuticals and Medical Devices Agency)が公開するJADER (Japanese Adverse Drug Event Report database) データベースで、WHOが使用するシグナル検出の手法であるBCPNN  (A Bayesian Confidence Neural Network) 1を計算しました。結果はこちらのページに示します。<https://wp.me/P9b6zl-gt>

BCPNNをSQLでデータ集計

SELECT Drug201711.識別番号, Drug201711.医薬品(一般名), Drug201711.医薬品の関与, Reac201711.有害事象 INTO [0010 AnalysisLineList]
FROM Drug201711 INNER JOIN Reac201711 ON Drug201711.識別番号 = Reac201711.識別番号
GROUP BY Drug201711.識別番号, Drug201711.医薬品(一般名), Drug201711.医薬品の関与, Reac201711.有害事象
HAVING (((Drug201711.医薬品の関与)=”被疑薬”));

SELECT [0010 AnalysisLineList].医薬品(一般名) AS drug, [0010 AnalysisLineList].有害事象 AS event, Count([0010 AnalysisLineList].識別番号) AS 識別番号のカウント INTO [0020 PhViDdata]
FROM [0010 AnalysisLineList]
GROUP BY [0010 AnalysisLineList].医薬品(一般名), [0010 AnalysisLineList].有害事象;

元データに入っている『”』の様な余計なごみを削除して、つぎのRスクリプトへ

Rを用いたBCPNNによるデータマイニング

setwd(“C:/Users/Oshima/Documents/2017/PMDA”)
library(PhViD)

JADERdata <- read.csv(“0020PhViDdata.csv”, head=T)
PhViDdata <- as.PhViD(JADERdata)
res <- BCPNN(PhViDdata, MIN.n11=3, DECISION = 3,
RANKSTAT = 2)

write.table(res$ALLSIGNALS, “BCPNN_out.csv”, quote=F, col.names=T, append=F, sep=”,”)

本質的にはこれでOK。BCPNNではない、同様の手法であるGPSでもRORも出力できますが、その辺の設定を変える場合はPhViDの取説参照。また、WHOはシグナル検出に用いる手法の軸足をBCPNNから、vigiRankという手法に移してきている模様です。

以前のs社にいたときに、これと同じ動作をするプログラムを、F社が「本当なら億の価値があるヤツだが、一緒に開発してもらうことを前提に2000万円ほどで開発しますよ」と持ちかけてきました。以前よりこんな感じのスクリプトを自分で作ってデータを見ていましたから、当然お断りしました。

Reference

1.
Bate A, Lindquist M, Edwards I, et al. A Bayesian neural network method for adverse drug reaction signal generation. Eur J Clin Pharmacol. 1998;54(4):315-321. [PubMed]

皇居のお堀

今朝の皇居のお堀の様子です

 

誓いの碑

今日厚生労働省に行きました。敷地に入ったすぐ傍に誓いの碑があります。過去の薬害のような事を二度と起こさないと言う、役人の心構えが書かれています。私の職責も目指すところはコレと同じです。

iPodから送信

IBM Watson

試した時の、記録です。

1.まずはログイン

2.アプリを実行するスペースとかの設定(実はこの時は間違っていて、アップロードするphpファイルをタイプしているが、IBM側のワークスペースに設定したアプリの名前を入れなくてはいけなかった。で、phpファイルはどうやって指定するかと言うと、指定しなくてよいようです。このbluemixコマンドをタイプしているディレクトリのファイルがすべてIBM側に送られるらしいです。)

3.起動確認

 

Shoko Ikeda

今週はレビュー業務(他の人の作成した書類を読んでコメントする)が多く、書類に目を通しながら音楽を楽しむ時間を多くとりました。仕事をしながら、これらのアルバムを聴きました。

Play Visual Recognition of IBM Watson

こちらのページで、IBM Watsonで誰かが学習させた画像認識をとりあえず試してみました。

<https://visual-recognition-demo.ng.bluemix.net/>

  1.  牛。まずは、こちら。自信を以て正解を出しています。
  2. 次は、お台場の自由の女神。これも何が写っているのか正確に答えています。
  3. つぎはこちら。食事をする場所だという事、それぞれのヒトの性別や年齢もおおむね妥当。(私は少し年上にみられていましたが)でも、一人認識されていませんね。
  1. ちょっと、意地悪してこちら。場所のロッカールームはおまけで正解。写っているのは「執事」ですか?

 

Formatting for the Lancet

Formatting for the Lancet

物は試しというレベルですが、リサーチの結果をthe Lancetに投稿しようとして原稿をフォーマットし直しています。(この作業、たとえば初回のスクリーニング時点では自由フォーマットにするとか、あるいは、各誌で打ち合わせた基本フォーマットを定めてどこの雑誌も同じフォーマットで受け付けるとか、なんか簡素化できないものかとも思いますが)

え?小数点を中ぽちに?

次がformatting guidelineの一部です。<http://www.thelancet.com/pb/assets/raw/Lancet/authors/tln-information-for-authors.pdf>

なかなか厄介なリクエストです。大変多くの数字(ほとんどは小数点を含む)が本文に出てきます。ところが、いわゆる小数点は文末のピリオドと同じ記号を使用していますので、単純にピリオドを中ぽちへ全部置換すると今度は文末のピリオドも中ぽちになってしまいます。

ワイルドに行こう

こういう時はワイルドカードを使用した置換なのですが意外に苦労しました。ワードのワイルドカードを使用した特殊文字への置換と言う技を普段使用していないので要領が解りません。ですので、どうやったかを記録します。

「・」が出てこないじゃないか

the Lancetのformatting guidelineに記載のあるAlt+0183では「・」が出てきません。wordの置換の説明を見ますと、置換後に特殊文字にする場合は「^183」のような記載をするらしいのですが、これだとなぜか置換後は半角カタカナの「キ」になります。仕方ないので、まずは記号を特殊文字のパネルから探してクリップボードにコピーです。

ワイルドカード

で、いろいろ工夫すると次のようになりました。まず、検索・置換画面のオプションで「ワイルドカードを使用する」にチェックを入れます。検索対象を()でくくることで、それを置換後に使用する際に、\1とか\2とかで(その塊)はそのままという扱いができるようです。数字は何個目の塊かを示します。一応これで数字に囲まれたピリオドを、中ぽちに置換することができます。今回はR version 3.3.3とかいうのも中ぽちになりましたが、そこは許しましょう。

Translate »