コマンドラインでの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にするかどうするか
いろいろ考え中。