投稿

argumentが必要です

シェル関数に引数が渡されなかったら怒るようにしたい oreno_func () { oreno_arg={1?Argument ga hoshii desu...} } oreno_func Argument ga hoshii desu... エラーメッセージを表示してエラー終了する。 すごい簡単。

LDpred

依存ライブラリ plinkio-0.9.6.tar.gz six-1.11.0.tar.gz Cython-0.29.tar.gz pkgconfig-1.4.0.tar.gz ld-0.5.0.tar.gz これらを pip install --user library.tar.gz でインストール h5py-2.8.0.tar.gz h5pyをビルドする際に文字コードがasciiであることが支障となったのでpython起動の際に文字コードが変換されるように import sys sys.setdefaultencoding('utf-8') というファイルを HOME/.local/lib/python2.7/site-packages/sitecustomize.py に配置。 さらにhdf5(1.8.4)をローカルでビルドしてインストール ./configure --prefix=HOME/local make make install h5pyをビルドする際にhdf5_hl.h, を見つけられないので export CPATH=CPATH:HOME/local/include export LDFLAGS=-LHOME/local/lib pip install --user h5py-2.8.0tar.gz これでh5pyがビルドされ、インストールされる。 pythonからh5pyを呼ぶさいにlibhdf5.soを見つけられないので export LD_LIBRARY_PATH=LD_LIBRARY_PATH:HOME/local/lib を発行しておく。

MR-MEGA

metalとMR-MEGAをやっておけばいいらしい。 Mandatory columns 1) MARKERNAME – snp name 2) EA – effect allele 3) NEA – non effect allele 4) OR - odds ratio 5) OR_95L - lower confidence interval of OR 6) OR_95U - upper confidence interval of OR 7) EAF – effect allele frequency 8) N - sample size 9) CHROMOSOME - chromosome of marker 10) POSITION - position of marker BETAのSEからORのSEを求めるには https://www.andrewheiss.com/blog/2016/04/25/convert-logistic-regression-standard-errors-to-odds-ratios-with-r/ を参考にして OR = exp(BETA) BETA_95CIL = BETA - 1.96 * BETASE BETA_95CIU = BETA + 1.96 * BETASE OR_95CIL = exp(BETA_95CIL) OR_95CIU = exp(BETA_95CIU) なお、plink2で以下のコマンドで確認できる plink2 \ --pfile ./GWAStutorial \ --ci 0.95 \ --glm cols=beta,se,ci,p \ --out ./testassoc.beta plink2 \ --pfile ./GWAStutorial \ --ci 0.95 \ --glm cols=orbeta,ci,p \ --out ./testassoc.or 注意: orbetaとseを指定してもseはBETAのSEを返す。

GoogleCloudPlatform

これからはクラウドだと思う。anacondaやpyenvを使うより、インスタンスを使い回す方がもう便利になっている(と思う)。例えば解析パイプラインを作っておいて配布したりすればlost technologyを防げる。データを持ち回って解析するようにすればよい。 AWSは以前に使用していたが、今回はGoogleCloudPlatformを使ってみる。cloudにcomputing engineを作成して計算させる。良いのはweb baseなplatformが用意されていて、コンソールも揃えている。ローカルにconsoleすら用意する必要がなく、ipadからconsoleにアクセスしてcontrolすることができる。 How to create instances Create account Compute Engine -> VM instance -> Create instance select instance name, legion, machine type, bootdisk How to access A. consoleを開いてインスタンスの横にある ssh をクリックしてアクセスする B. Activate cloud consoleから下記のコマンドでssh接続する gcloud compute --project <project-name> ssh --zone <zone-name> <instance-name> How to store(間違ってるかも) Snapshotとimageの形で保存できる。保持しているのもお金がかかる(0.03 per GB/month vs 0.085 for images source )。snapshotは差分でも保存できるようなので、システムの基本となる状態(必要なソフトウェアなどをインストールした状態)をimageに、解析途中の状態をsnapshotとすれば良い(かどうかわからないがとりあえずそうする)。

bsubでprocess substitution

bsubに投げるスクリプトの中に process substitution があるとうまく走らなかった。process substitutionはposix準拠のコマンドではないようで、そのままでは動作しないと。 スクリプト内で set -o posix を宣言すれば走った。

shellでtsvをiterateする

タブ区切りでいくつかの要素のあるファイルを一行ずつ読み込み、カラムごとに別々の役割を持たせて処理をしたい。shellでの配列を使うとうまくいく。具体的には sample.txt という chr id dist pos 22 rs100000 0 1000000 21 rs200000 0 2000000 みたいなどこかで見たようなファイルがあった時、chrで参照先ファイルを選んで、その参照先ファイル内でidを検索したいというタスクがあるとする。参照先ファイルはchr22.txtみたいな形になっているとする。一行ずつアレイで読み込んで処理することになる。 while read line; do arr=(`echo line`) grep {arr[1]} chr{arr[0]}.txt done < sample.txt {arr[0]} もしくは arr とすると一番目の要素、 {arr[1]} とすると二番目の要素、となる。ちなみにアレイの内容すべてを表示するのは arr[*] もしくは arr[@] である。

vimで選択範囲をヤンクしたテキストで置き換える

vimで選択した範囲をテキストで置き換えたいんだ。 ctrl-v + y でテキストをヤンクして再度 ctrl-v で選択した範囲と置換したいが、したいのだが、選択してから思う。 x や d ではバッファが置き換えられてしまうと・・・。 みんな思うことのようであり ここ に"Stamping"として書いてあった。結論は vnoremap S "_d"0P である。 S はもともと”行削除して入力モード”だが Di でいいから置き換える。stampingと覚えよう。快適。