Rpackage

グラフの検定

グラフの相同性とか統計量とかの話で、cug.test という検定を後輩から教えてもらった。 sna パッケージでできる。 グラフ隣接行列からランダムな隣接行列を作りまくって分布を作成して、p値を計算するらしい。 グラフとしてはこんな感じで 検定は以下のよう…

Grid Error Analysis

糖尿病の研究をしたいという知り合いから、Grid Error Analysis をしたいのだが、という相談を受けた。 ぶっちゃけ聞いたことがなかったが、要は糖尿病患者が自身で簡易血糖観測器を用いて測定した血糖と、本当の血糖の値が正しいかどうかを考えているだけ。…

帰無仮説検定で有意になった項目についてROC 解析をしてください

と査読で言われた。 状況設定としてはこんな感じである。いま、とある検査項目 (連続量)について、予後を予測するマーカーになるか検討したい。ここで、デザインとしてはとりあえず研究を立ち上げてみました、というような後ろ向き観察研究で、予後転帰が…

oscillation (振動)を検定する

この記事は 今年読んだ一番好きな論文2017 Advent Calendar 2017 の2日目が空いているということにこの記事を書いてから気づいて、1000円相当の参加賞があることに目がくらんで加筆修正した記事です。2017年で一番好きかというとそうでm(ここで文章が途絶え…

Python っぽい感じでうまくクラスの概念を使ってR を書きたい

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: 2016/09/24メディア: 単行本(ソフトカバー)この商品を含むブログ (18件) を見る写経しながらR で書き換えつつやってみ…

高次元データを次元削減したうえでクラスターを真面目に検出する

読んだ。 ClusterSignificance: a bioconductor package facilitating statistical analysis of class cluster separations in dimensionality reduced data Bioinformatics. 2017 Oct 1;33(19):3126-3128. オミックス解析などをすると複数パラメータの高次…

OmicCircos

読んだ。 Cancer Inform. 2014 Jan 16;13:13-20. オミックス研究では、各染色体でのCNVや遺伝子発現状態、各種統計量の定量値や分布などをずらずらっと描きたいが、横に長く描くといけてないと誰かが思ったのだろうか、丸く描くやり方がある。 これをcircos …

matlab のjet カラーを使いたい

R でいい感じのグラデーションを作ろうと思ったらたいていrainbow を使うのだが、rainbow を使うと先頭が赤、末尾が紫なので色が同系統で混同する。 matlab のjet.colors が赤〜青のグラデーションなのでよさそう、と紹介されたのだが、matlab にしかはいっ…

violinplot の上半分だけ欲しい

5000兆円ではなく、violinplot の上半分だけほしい。 上も下も同じ形なので、どちらかがあればよい。そうすれば、stan の事後分布とかにもいい感じで使える。 たぶんggplot2 にはよさそうなものがありそうだが、vioplot パッケージを流用して使おうと思った…

勾配法による最適化

ある関数があって、最小化もしくは最大化したい。これらは正負を入れ替えればよいでの最小化を考える。 いま、適当に という関数があったとする。これの最小値とそのときのの組を求めたい。 2変数なので3次元に図示するとこんな感じである。最小値はひとつ定…

ボクセルデータから形を構成する

蛍光イメージング動画があって、そこから細胞の3次元の形を再構成したい。 手順としては、 蛍光イメージの取得:他力本願 2Dでのセグメンテーション:他力本願、大津法 セグメンテーションされた領域の抽出:openCV セグメンテーションされた領域内で欠けて…

Bias-Variance decomposition

機械学習などで予測モデルを立てたときに絶対に突っ込まれるのが「それ他のデータセットでも言えんの?」ということで、モデルの性能を評価しないといけない。一般的には手持ちのデータからモデルを作って、それとは別のデータに対してそのモデルが有用かとい…

ベイジアンネットワーク

読んだ。 Bioinformatics. 2016 Dec 21. pii: btw807. ベイジアンネットワークをやるbnstruct というパッケージを作りましたという話。 ベイジアンネットワークをやるならbnlearn が有名だが、bnstruct は欠損値があってもできるとのこと。 Bayesian Network…

Computational single cell analysis

いくつか読んだ。 FCM やsingle cell trinscriptome などの一細胞解析で、多次元行列データが得られるが、それを機械的に解析する手法をいくつかまとめて読んだ。 R で実装されているものは頑張ってみたかったが、bioconductor でインストールしてもlibrary(…

Rmd でreveal.js のhtml スライドプレゼンテーション

Japan.R 2016 が終わりました。参加された方々はお疲れ様でした。 発表者不在というなんとも謎なLT をしたやつがいたらしいですが、Rmd でRpresentation を作って自動プレゼンするやり方について。 自動プレゼン自体はppt にも実装されています。リハーサル…

Biclustering

読んだ。 Bioinformatics. 2016 Oct 6. Nucleic Acids Res. 2009 Aug;37(15):e101. Biclustering をするQUBIC という手法をR で実装しました。クッソ速いです、とのこと。 そもそもbiclustering とはなにかというと、ヒートマップクラスタリングをするときに…

iCluster: オミックスデータの統合

読んだ。 Bioinformatics(2009)25(22):2906-2912. コピーナンバー(CNV)、発現データ(mRNA)、メチル化などのオミックスデータで、症例数 に対してパラメータ数 のデータ行列が複数ある。 各々の実験を勝手にやるのは、それはそれでいいが、CNV、発現、メチル…

minimal Hypergeometric (mHG)

読んだ。 Cell. 2016 Sep 8;166(6):1500-1511.e9 TIL (Tumor infiltrating lymphocyte) の発現解析をして、Activate/Dysfunction の順位付けをしている。 その中でminimal hypergeometric というものがあった。 Gene Ontology 解析ではannotation が有意に出…

Distatis: 距離行列が複数あるときに元のデータの関係性を推定する

読んだ。 Proceedings of the IEEE Computer Society: International Conference on Computer Vision and Pattern Recognition. 2005. pp. 42–47. Food Quality and Preference, 2007, 18, 627–640. 複数の距離行列が与えられたとき、元のデータの関係をMDS …

援助交際してそうなアニメキャラランキング2016をstanで考える

注意:本解析の結果と、実際に声優がそうであるかはまったく関係がありません。 援助交際してそうなアニメキャラランキング2015をstanで考えたことがあったのだが、2016年度版も集計されたので解析してみる。 2015年は以前にもやったが、2016年度分はスレを…

球面調和関数をR でやる

球面調和関数をrPython でやっていたが、R だけで完結するほうが、rPython に投げてやりとりするより圧倒的に高速かつ安定なので、頑張ってR でやった。 ゴールとしては、 となる係数 を求めることだが、これはルジャンドル陪関数が直交するという性質を利用…

Precision and Recall

機械学習の分野で分類性能の評価に適合率と再現率というものがある。 医学分野での分類には、たいてい病気/非病気のラベルの分類にはReceiver Operating Characteristic (ROC) 曲線と曲線下面積AUC を使うが、情報系ではPrecision-Recall curve (PRC) とF1 …

リストの中に行列があってそれをくっつけてテンソルっぽくしたい

こんな感じで、リストの中に行と列の数が等しい行列があったとする。長さは簡単のため2にしている。 a <- mapply(function(z) matrix(z, 2), list(1:6, -(1:6)), SIMPLIFY=FALSE) [[1]] [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 [[2]] [,1] [,2] [,3] [1,] -1 …

Spike-and-slab

読んだ Nat Genet. 2016 Aug 1. 様々なデータを取ってきて、遺伝子との相関があるかを解析するわけだが、サンプルの人数、組織、遺伝子の3次元をサンプル×要素(component やfactor と呼ぶ)と要素×遺伝子の行列に分解することで、テンソル分解してデータの構…

GPU もrPython を使ってやってみる

GPUを使ってみようと思うのだが、メモリがうんたらかんたら言われて、巨大なデータを入力すると動かないので、Python でやったら実はいい感じに動くのではないかと思ってやってみる。 Python ならpycuda, gnumpy があるようだが、gnumpy のほうがnumpy ベー…

球面調和関数をrPython でやる

球面調和関数をやりたいがRではいいものがないのでPythonでやった結果をrPython を使ってRでゴリ押し計算するやり方。R を投げ捨ててPython に移行したかったが、結局R でやっちゃう。 rPython について知りたければ下にスクロール。 球面上の離散的な分布を…

rmarkdwon で出力にGIF を入れたい

plot をfor loop にいれたままうっかりrender すると、出力がすべてプロットされて縦に長いhtml ができてしまう。 せっかくだからGIF 化しよう。 こちらやこちらを参考に、fig.show="animate" を指定すればできる。 ただ、ubuntu ではffmpeg が必要だが、簡…

高次元での回転と疎行列

3次元物体を回転させたい。 2次元であれば回転行列は回転角を用いて と書ける。 高次元での回転ならば、正方対角行列(対角成分は1)について、(i, i), (i, j), (j, i), (j, j) 成分をひらすら上ので置換していけば、ある軸での回転を表す。 特に3次元では、x…

rmarkdown とknitr による文書作成

markdown 形式のrmarkdown とknitr を使って、授業資料の作成および解析結果の報告、宿題の提出などやっている。 HTML にすることでrgl の3D プロットなども出せるので、3D データを扱っているときにもよさげ。 真面目にやるならpandoc をインストールしてre…

クラスタリングしないheatmap のNeatMap

読んだ BMC Bioinformatics. 2010 Jan 22;11:45. NeatMap というパッケージで使える。 data(mtcars) # heatmap1 NeatMap::heatmap1(mtcars) # circularmap make.circularmap(as.matrix(mtcars), metric="euclidean", cluster.method="complete.linkage", nor…