Rのデータフレーム操作について
1)データフレームの一列を分割して新たな列とする
strsplit()でやってみる
tmp <- matrix(unlist(strsplit(as.character(mydata$foo), ":")), ncol=2, byrow=TRUE) mydata$bar <- tmp[,1]
2)複数のvectorからデータフレームを作る
data.frame()を使う
df <- data.frame(rownames(old_df),vec_a,vec_b,vec_c)
コマンドラインでのblastnの使い方
BLASTは塩基配列やアミノ酸配列のローカルアラインメントを探すソフトウェア。
https://blast.ncbi.nlm.nih.gov/Blast.cgi
特に、Primer-BLASTはとても便利。意外と使っている人が少ないけれど。
内部的にはPrimer3が動いているらしい。
https://www.ncbi.nlm.nih.gov/tools/primer-blast/index.cgi?LINK_LOC=BlastHome
だが、ローカルでPrimer-BLASTを動かす方法がちょっと分からない。
せめてプライマー配列の配列特異性 (目的のものと異なる核酸配列に相補的でない)を確かめたいので、ローカルのBLASTを動かしたい。
しかし、BLASTのデフォルトパラメータは、プライマーをクエリとして与えるには向いていない。
さらに、20-30塩基のプライマー配列を扱うのに、わざわざFASTAフォーマットのファイルを作るのもできれば避けたい。つまり、コマンドラインで済ませたい。
結果は以下。便利。
echo -e ">sample\nNNNNNNNNNNNNNNNNNNNNNNNNNNN" | blastn -task blastn-short -db foo_bar.fa
コマンドラインでのオプションについては以下にある。
https://www.ncbi.nlm.nih.gov/books/NBK279668/#usermanual.Tasks
dc-megablastなども便利。
Perlの配列で連結リストのようなことがしたい
Perlの配列から特定の要素を削除する。
基本的にはdeleteを使えば良い。
http://perldoc.perl.org/functions/delete.html
なのだが、これでは特定の要素がundefになっただけで
同じ番号に次のデータが入る訳ではない。
要は、必要なのはリスト構造である。
https://en.wikipedia.org/wiki/Linked_list
https://ja.wikipedia.org/wiki/%E9%80%A3%E7%B5%90%E3%83%AA%E3%82%B9%E3%83%88
Perlの配列でこのようなことを行いたい場合は、
spliceを使う。
http://perldoc.perl.org/functions/splice.html
ちょっと分かりにくいので、以下などが参考になるかもしれない。
https://www.tutorialspoint.com/perl/perl_splice.htm
具体的には、以下のようにすれば良い。
返り値は削除された要素なので、新たな配列に格納しても良い。
splice(@array, offset, length)
コマンドラインで外付けHDDをマウント/アンマウント
認識されているかをチェック
# /sbin/fdisk -l
認識されていたら、予め/mnt/などに作ったディレクトリにマウント
mount /dev/sdc1 /mnt/data
取り外すときも簡単
umount /mnt/data
MacでフォーマットされたHDD(hfs+)を見るときは
kmod-hfsplusを入れれば良い。
http://qiita.com/tukiyo3/items/2f691996751b7fbaaa1b
この場合、HDDは/mediaにマウントされる。
2017-04-28追記
MacでフォーマットされたHDD(hfs+)への書き込みを行いたいときは
permissionを変更してマウントしないといけない。
さらに、parted -lとすれば分かるが、
hfs+において、データはsdx2のパーティションにあるので注意。
# mount -o force,rw /dev/sdx1( or sdx2) /mnt/foo/
また、最近はNTFSでフォーマットされたHDDもあるので
nfts-3gをインストールする必要がある
https://www.howtoforge.com/tutorial/mount-ntfs-centos/
yum install ntfs-3g
CentOS6にMACS2を入れるまで (仮)
MACS2はChIP-seqのデータ解析用のソフトウェア。python2.7で動く。
とりあえずこれで解析しておけばいいかという定番ソフト。
http://www.ncbi.nlm.nih.gov/sites/entrez?db=pubmed&cmd=search&term=18798982%5Bpmid%5D
しかし、CentOS6のデフォルト(システム)はpython2.6だったりする。
そこで、CentOS6にpython2.7をインストールする必要があるが、/usr/bin/のpythonを置き換えたり、あれこれするのは嫌なので、/opt/localにインストールする。
/usr/localでも良いけど、以下の方法に従っている。
http://qiita.com/a_yasui/items/5f453297855791ed648d
./configureしてmakeすると以下のようなメッセージが
Python build finished, but the necessary bits to build these modules were not found: bsddb185 dl imageop sunaudiodev To find the necessary bits, look in setup.py in detect_modules() for the module's name.
若干不安に駆られてググると以下のような回答が
http://stackoverflow.com/questions/3813092/ubuntu-packages-needed-to-compile-python-2-7
以前、同じ作業を行ったときは以下のように全てインストールしていた模様。
#yum install dl-devel sqlite-devel sunaudiodev imageop bsddb185
今回はそのままaltinstallしてみる。/opt/local/binにパスも通す。
そして、MACS2のインストールは、以下を見れば良い。
https://github.com/taoliu/MACS/wiki/Install-macs2
どうやら、pipでやると楽らしいので、pipを入れる。
https://pip.pypa.io/en/stable/installing/
$ wget https://bootstrap.pypa.io/get-pip.py # python2.7 get-pip.py
そうしたら、numpyなども入れてみる
# pip2.7 install numpy
あとはMACS2を入れればおしまい。
# pip2.7 install MACS2
いろいろと試行中
遊びも含め、プログラムやデータ解析の記録を
後で見直すのに適した形式でとっておきたい。
現在はmiで日付を打ちながらメモを取っている。
単純なテキストファイルなので
適当なディレクトリに放り込んでおいて
grep foo ~/bar/*
という検索でも意外となんとかなり
なかなか離れられずにいる。
しかし、やはり問題もあって
- 画像を貼れない
- 持ち運び・統合が面倒
あたりに不便を感じることがある。
ついでに
- レイアウトが難しい
というのもある。
きちんと纏まった内容ならば
スライドを作ってしまうのが良いが、
今度はレイアウトに手間を感じがちになる。
Evernoteも試してみてるけど
EvernoteにはMarkdownを直接サポートしてほしい。
たとえばRで何かしらデータをいじるとき
cl <- kmeans(iris[1:4],2,1000) png('~/Desktop/sample.png') plot(iris[1:4],col=cl$cluster) dev.off()
というわけで、とりあえずはてなを使ってみた。
本当は、こういうことがローカルでも簡単にできれば
楽なんだけどなー。
Tumblrにするかどうするか
いろいろ考え中。