薬剤師のプログラミング学習日記

プログラミングやコンピュータに関する記事を書いていきます

2020-01-01から1年間の記事一覧

病棟薬剤業務実施加算を届出している病院について調べる

薬剤師が重要な役割を果たすことで算定できる施設基準は数多くありますが、今回は病棟薬剤業務実施加算の届出をしている病院について、病床数やその他の施設基準との関係をPythonを使って調べてみました。記事の前半は主にデータの概要やプログラムのデータ…

Pythonでダブルクォーテーション囲いのCSVファイルを作成する

調剤薬局に勤めている友人から、「納品価格が更新された在庫薬のCSVファイルを新たにレセコンに取り込みたいが、うまくいかない」との相談を受け、Pythonプログラムを書いて実現することにしました。わざわざPythonを持ち出さなくても他にも方法はありますが…

主成分分析(PCA)による次元削減

主成分分析(PCA:Principal Component Analysis)では、データの本質的な部分に注目して重要な部分を保持し、あまり重要でない部分を削る、一言でいえばデータの要約(=次元削減)を行います。いろいろな分野で使われている手法ですが、機械学習においては与え…

k-meansによるクラスタリング

k-meansはデータを自動的にクラスタリング(グループ化)する手法で、k平均法ともいわれます。同じクラスタ内のデータは類似するように、別のクラスタのデータは異なるようにデータを分類します。ナイーブベイズなどでは正解を与えて「教師あり」で分類を行い…

Word2Vecを使って特定カテゴリで使われる単語の分散表現を得る

テキストの特徴抽出の手法として文書を単語の集合としてみるBag of Words(BoW)表現について前に書きましたが、今回は単語を数値ベクトルに変換する手法についてです。 単語の分散表現とは Word2Vec CBOWモデル Skip-gramモデル Wikipediaの特定カテゴリの記…

Wikipediaの特定カテゴリの記事のみを取得する

自然言語処理に関する機械学習の手法を試す際には大量のテキストデータが必要になることがあります。そこで、手軽に使えるテキストデータとしてWikipediaの記事データを使うことにしたのですが、全データを対象にしてアルゴリズムを学習させるのは時間がかか…

ロジスティック回帰による多クラス分類

前回は2値分類でしたが、今回はロジスティック回帰モデルにおける多クラス分類のコードを書きます*1。今までの流れだと、モデルの表現と目的関数、その偏微分がわかれば勾配降下法でモデルのパラメータを求め分類器を作ることができたので、それを目指します…

ロジスティック回帰による2値分類

今回はロジスティック回帰を使ってデータを分類してみようと思います。「回帰」とありますが、分類タスクで使用されるアルゴリズムです。なお、この記事はCourseraのMachine Learning(機械学習)講座『Logistic Regression』の内容を基に書いています。また…

ナイーブベイズ分類器を自分で実装してみる

以前薬歴文書の分類にナイーブベイズ分類器を使いました。この分類器は迷惑メールのフィルタやWebニュース記事の分類等で使用されているそうです。特徴として、性能はやや劣ることがあるものの、高速に訓練でき実装も比較的容易だということで、今回はこのナ…

Bag of WordsをPythonで書いてみる

文書データを数値表現に変換する手法の1つであるBag of Wordsを一からPythonで書いてみました。 Bag of Words(BoW)とは BoWの問題点 nグラムによるBoW sklearnのCountVectorizerのパラメータについて tokenizer preprocessor analyzer stop_words max_dfとm…

MeCabをインストールしてPythonで分かち書きをする

自然言語である文書データを機械学習プログラムで扱えるようにするためには、文を構成する要素である単語に分解(分かち書き)する必要があります。今回はPythonで分かち書きをするために必要なソフトのインストールとその設定について書こうと思います。 分…

薬歴文書を機械学習でカテゴリ分類してみる

少し前まで自然言語データを用いた様々な機械学習の手法について勉強していました。しばらくはこれについて書いていこうと思います。今回のプログラムでは、次のような入力された文章に対してあらかじめ作成しておいたカテゴリに分類させる、ということをや…

OutlookメールをPythonでファイル出力する

Outlookで受信したメールを特定のフォルダにHTMLファイルとして出力するプログラムです。私の職場では医薬品医療機器情報配信サービス(PMDAメディナビ)を利用していますが、このメールをネットワーク内の共有フォルダにHTML形式で保存することで、ネットワ…

線形回帰でデータに直線を当てはめる

これまでに何度か片対数プロットした血中濃度データから直線のパラメータを求めるということをしましたが、これは線形回帰の中でも説明変数が一つの単回帰に当たります。 今まではnumpyやscipyといったライブラリから既成のモジュールを呼び出してデータを与…

腎機能評価ツールを作ろう

前回記事「eGFRとクレアチニンクリアランスの計算式をグラフ描画する」の続きです。 ウィジェット(スライダーなどの部品)を配置する ウィジェットの値変更時の処理を書く グラフにテキストを表示する 体重一点における体表面積、CCr、個別eGFRを求める 実…

eGFRとクレアチニンクリアランスの計算式をグラフ描画する

腎機能評価の指標としてeGFR(推算糸球体濾過量)やCCr(クレアチニンクリアランス)、シスタチンC(Cys-C)などがありますが、病院等で働く薬剤師であれば、仕事中に薬の投与量のチェックをするためにこれらの値を計算することも多いかと思います。 ネットで…

薬の蓄積率について-投与間隔と半減期からわかること-

ネットで蓄積率を検索すると『投与間隔/消失半減期が3以下なら定常状態のある薬、4以上なら定常状態のない薬』などの記事が見つかります。今回はこの3や4という数字の意味について見ていきたいと思います。 蓄積率とは 蓄積率の式をグラフでみる 具体的な例…

ニュートン法で方程式の近似解を求める

前回「トラフ値からkeを推定する」で定常状態のCss_minを求める式からkeを求めました。このときscipy.optimizeモジュールのnewton()を使いましたが、これはニュートン法(ニュートン・ラフソン法)というアルゴリズムを実装した関数です(引数に導関数を与え…

トラフ値からkeを推定する

今回の記事は参考文献『4ステップ 臨床力UPエクササイズ4 TDM領域』の『Step3 薬物治療の個別化(薬物投与設計)の実践』の項目を基に書いています。 この項目の概要としては、喘息症状が悪化した患者のスクリーニングを通して薬物クリアランスの変動を考…

経口繰り返し投与のグラフを描く

n回繰り返し投与後の血中濃度 経口投与の定常状態における最高・最低血中濃度とAUC Sympyによる微分と定積分 経口繰り返し投与のクラス 血中濃度推移の描画 参考 n回繰り返し投与後の血中濃度 投与間隔(タウ)でn回繰り返し投与後のt時間経過時の血中濃…

経口投与のフリップ・フロップをグラフで見る

Flip-Flop(フリップ・フロップ) 各条件で用いる数式 ke<kaの場合 ke>kaの場合 ke=kaの場合 TmaxとCmax グラフと文字の更新処理 フリップフロップを確認する 参考 Flip-Flop(フリップ・フロップ) 前回記事の最後に、消失相の傾きはkaとkeの大小関係によってどちらが反映さ</kaの場合>…

血中濃度データに経口投与モデルを当てはめる

以前1-コンパートメントと2-コンパートメントの静注モデルでもやりましたが、今回は前回記事の1次速度の吸収過程のある1-コンパートメントモデルでやってみようと思います。 血中濃度データの片対数プロット プロットから消失速度定数(ke)と吸収速度定数(ka…

経口投与1-コンパートメントモデルのグラフを描く

1次速度の吸収過程のある1-コンパートメントモデル 吸収過程と消失過程 参考 1次速度の吸収過程のある1-コンパートメントモデル 経口投与時の血中濃度推移はこのモデルで表すことができます。※ka: 吸収速度定数, ke: 消失速度定数 この連立微分方程式を解…

テイコプラニンの負荷投与のグラフを描く(2-コンパートメントモデル)

半減期の長い薬物の場合は定常状態への到達が遅れます。このような薬物の場合、開始時期に投与量や回数を増やすことで目標とする血中濃度への到達を早める投与設計を行うことがあります。 今回はこれまで使ってきた2-コンパートメント点滴静注モデルのプログ…

Pythonによるシミュレーション高速化のためのコードの改善

はじめに 定常状態の血中濃度を得る部分を最小限に 演算に関わる部分はNumpy配列のみを使う コード改善後の処理時間 はじめに 前回まで書いていたモンテカルロシミュレーションのプログラムを改善して、どれだけ処理時間が短縮できるかを試みよう、という記…

抗菌薬でモンテカルロシミュレーション③ーPK/PDブレイクポイントを求めるー

一定の基準以上の有効率が得られるMICの最大値をPK/PDブレイクポイントとして求めます。 内容的にはこちらの続きとなります。 www.yakupro.info 目標達成確率の算出 目標達成確率-MICのグラフを作成する PK/PDブレイクポイントを確認する プログラムの処理時…

抗菌薬でモンテカルロシミュレーション②ー %T>MICの分布を確認するー

前回は乱数でPKパラメータを生成するところまでやりました。今回は、これらのパラメータをもとに用法・用量を設定して血中濃度推移を計算していきます。内容的には前回の続きとなります。 www.yakupro.info %T>MIC値の確認 用法・用量を設定し血中濃度推移を…

抗菌薬でモンテカルロシミュレーション①-乱数を用いたPKパラメータの生成-

はじめに モンテカルロシミュレーションとは 目的と手順の確認 乱数を用いてPKパラメータを発生させる 参考 はじめに 前回、前々回とPK/PDパラメータを求めるコードを自前のクラスに実装したので、今度はこれらのパラメータを使うモンテカルロシミュレーショ…

PK/PDパラメータのCmax/MIC, AUC/MICを求める

今回も引き続きPK/PDパラメータについてです。前回は www.yakupro.infoでTime above MICを求めるコードを書きましたが、今回はCmax/MICとAUC/MICを求めるメソッドを実装しようと思います。コードはあまり複雑な部分はなく、簡単に書くことができました。 Cma…

PK/PDパラメータのTime above MICを求める

抗菌薬のPK/PDパラメータ Time above MICとは %T>MICを求める 参考 抗菌薬のPK/PDパラメータ PK/PDとは薬物動態学(用法・用量と抗菌薬の濃度推移の関係)と薬力学(抗菌薬の濃度と有効性・副作用の関係)を組み合わせることにより、抗菌薬の有効性や安全性…