新年あけましておめでとうございます
明けましておめでとうございます。
今年もどうぞよろしくお願いします。
さて、久しぶりに更新する訳ですが、
今日は!
予定しか書きません!
レポートが!!
まにあわないのです!!
===近日中に書きたいなぁと思っている事===
* Unixコマンドについて
* Boostについて
* Perlを書いているときの自分の記述法について
* Rで便利だと思った記述法・パッケージ
* ちょっと学校の課題で作ったJavascriptをベースにしたwebpageの宣伝
* (RNA-Seqについて?)
==== ====
他に何か「こういう感じの事って気になった事ありませんか〜」って
内容がありましたらコメントなりください〜
去年はもうそれはそれは大変でした
いろんな研究の手法を覚えたり、
というより研究とはなんぞ的な事をいろいろ考えたり
まだまだ結論に至っているわけではないです...笑
でも適度に研究して、適度に遊んで、適度に大学生をしていければいいかなとおもってます!
(今年大学2年生になります笑)
まぁこのブログが続くか分からないしどんな内容になってくかはさっぱりですが、
今年もよろしくお願いします!!!
*brew
( )brew 穴を埋めなさい
と聞かれたら、homebrew perlbrew pythonbrew
の三つが浮かびます。
ちょっとそのお話でもしようかなと
(1) Homebrew
HP( http://mxcl.github.com/homebrew/ )
HPの言う通り、パッケージマネージャーです。
いろんなソフトを簡単にインストールできるようになります。
Homebrew自体のインストールは簡単。
$ ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
をterminalにコピペ。自動でインストールされます。
あ、でもgccが入っていないとだめなので、XCodeでコマンドラインツールをインストールしてください。(参考: http://nantekottai.com/2012/03/31/xcode-command-line-tools/ )
インストール出来たら、まず
$ brew doctor
してください。何かしら問題が起きてる状態でインストールしてしまったら何が起きるか分かりません。
と出ましたら大丈夫です。
じゃあ何か入れてみましょう
wgetの詳細はご自身でggってください笑
このように $ brew install (package name) とするだけでインストールされます。
ただ注意してほしいのは、必ずしもhomebrewでインストールできるとは限りません。
それはそのソフトが登録されていない場合です。
登録されているのかを確認するためには
$ brew search (Package name)
としましょう。
一度インストールしたものについてバージョン情報とか欲しければ
$ brew info (Package Name)
また既にインストールした物を確認したかったら、
$ brew list
同じソフトだけど、旧型の物が欲しければ、(ちょっと難しいですが)
$ brew versions (Package Name)
$ cd /usr/local
$ git checkout (Branch Name)
$ brew update
とします。例えばemacs23.1が欲しいと思った場合。
24.2 git checkout 669f1b5 /usr/local/Library/Formula/emacs.rb
24.1 git checkout 9a2ea22 /usr/local/Library/Formula/emacs.rb
23.4 git checkout 25a6b9d /usr/local/Library/Formula/emacs.rb
23.3b git checkout bcdc4a2 /usr/local/Library/Formula/emacs.rb
23.3a git checkout 3b570b8 /usr/local/Library/Formula/emacs.rb
23.3 git checkout d514b4c /usr/local/Library/Formula/emacs.rb
23.2 git checkout 348c872 /usr/local/Library/Formula/emacs.rb
23.1 git checkout 9906ce3 /usr/local/Library/Formula/emacs.rb
$ cd /usr/local
$ git checkout 9906ce3 /usr/local/Library/Formula/emacs.rb
$ brew update
としたら変更されます。
いちいち/usr/localに移動しないと行けないのは、そこがHomebrewがソフトをインストール先だからです。
いろんな物をインストールすると、それぞれのlibやbin, opt, etcなどが整理されます。
ですが、人によって違う事もあるのでご注意ください。
$ cd `BREW --PREFIX`
で確認できます。
あとはよくHomebrewのアップデートをしてください。
パッケージ登録はかなり頻繁にされるらしく、先輩が言うには毎日した方がいいらしいです。
$ brew outdated ##既にインストールされている物で最新型でない物を探す
$ brew upgrade ## outdatedだった物をupdateする
$ brew update ##Homebrew自体をアップデート。新規登録パッケージが分かります
(2) Perlbrew
ここから先は使う人が相当減ると思います。
いろんなモジュールが出回ってる中、特定のperlのバージョンに依存しているものがあります。新しいperlから昔のperlをたまに使いたい!って人用のソフトです。
インストールは簡単
$ curl -kL http://install.perlbrew.pl | bash
ホーム上にインストールされ、perl5というフォルダが出来ます。
一度インストールされたら、perlbrewと打って使えるか確認しましょう
一応使い方($ perlbrew と打てばhelpが出ますが、英語がめんどくさい方のために)
登録されているperlの確認
$ perlbrew available (2012.11.22現在)
perl-5.17.6
i perl-5.16.2
i perl-5.14.3
perl-5.12.5
perl-5.10.1
perl-5.8.9
perl-5.6.2
perl5.005_04
perl5.004_05
perl5.003_07
iと成っている物がインストール済みの物です。そして5.N.Mとなっていますが、Nが偶数に成っている物が安定リリースです。ですからまだ17は入れてないです。
特定のバージョンをインストールするには、
$ perlbrew install perl-5.8.9
これはしこたま時間かかります。
$ tail -f ~/perl5/perlbrew/build.perl-5.8.9.log (5.8.9をインストールする場合)
をすれば進行状況が分かりますが、コンパイルのlogを見て理解できる方はおそらくここを見ていないと思います笑
たまにfailします。
一応エラーを出してくれますが、Mountain Lionたる我が母艦は12以前のものは入ってくれません。よくわかりません。
ですが成功した場合、
$ perlbrew switch perl-5.8.9
とすればそのパソコンはperl-5.8.9を使うようになります。(switchする前に $ perl -v をしといて本来のversionを確認すると分かりやすいです)
これは再起動しても基本的にswichしたバージョンを使うようになりますが、それが嫌な場合は
$ perlbrew off
とすれば本来のperlを使えるようになります。
またインストールしたけどいらないやと成った場合は
$ perlbrew uninstall perl-5.8.9
とします。まぁ一度入れたらあまり消すとは思いませんけど.....笑
あ、あとたまにパッチが当てられたりすると3つ目の数字がインクリメントされますが、
$ perlbrew upgrade-perl
とすればそのバージョンの最新版に成ると思います(未経験)
あともう一つ便利なのがcpanmです。
$ perlbrew install-cpanm
でインストールされます。
このcpanm、実はモジュールのインストールがちゃっちゃと出来る優れもの。
$ cpanm XML::Simple
とすればXML::Simpleというモジュールをインストールできます。
これでいちいちcpanサイトに行ってソースを落としてコンパイルみたいな事をしなくて大丈夫です、すべてcpanmしましょう(登録されてなかったら当然ですが出来ません)
あと、これは先輩から教わった事ですが、local libとApp::cpanoutdatedと呼ばれる物を使用すると、すでにパソコンに入ってるモジュールをアップグレードできるようです。
$ cpanm local::lib
$ App::cpanoutdated
$ cpan-outdated | cpanm
ちょっと時間かかりますが、これで古いモジュールをアップデートできます。
一応自分の使っている範囲内の事を説明しましたが、他のexecとかuseとかもありますので、ご自身で調べて必要な物をお使いください〜
(3) pythonbrew
こちらはperlbrewのpython版
なんかいろんなところが作っているみたいなのですが、自分はhttp://pypi.python.org/pypi/pythonbrew/ さんのを使ってます(たしか)。
インストールは簡単。
$ curl -kL http://xrl.us/pythonbrewinstall | bash
したら"[ -s $HOME/.pythonbrew/etc/bashrc ]] && source $HOME/.pythonbrew/etc/bashrc"を~/.bashrcに加えろと言われます。
分からない人はいないと願いますが、一応
$ emacs -nw ~/.bashrc
> [ -s $HOME/.pythonbrew/etc/bashrc ]] && source $HOME/.pythonbrew/etc/bashrc (コピペ)
> ctrl x,s ⇒ ctrl x,c (save、quit)
$ source ~/.bashrc
これで完了
一応
$ pythonbrew
と打ってみましょう。Usage: pythonbrew COMMAND [OPTIONS]が一行目に出ればオッケーです。出てこなかった場合は何かをしくじってます、がんばりましょう(近くのunixマニアに聞きましょう)
こちらはperlbrewと動作が似てます。
ただ、perlbrew availableのような便利な物は無く、
$ pythonbrew list -k
でインストール可能な物が出てきます。
## 例(2012.11.22現在)
# Pythons
Python-1.5.2
Python-1.6.1
Python-2.0.1
Python-2.1.3
Python-2.2.3
Python-2.3.7
Python-2.4.6
Python-2.5.6
Python-2.6.7
Python-2.7.3
Python-3.0.1
Python-3.1.4
Python-3.2.3
これで3.0.1をインストールしたければ、
$ pythonbrew install 3.0.1
とすれば入ります。
あとはswichすれば使えますね
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
追記:
Homebrewでは最近fomulaeの移動が激しく、バイオインフォマティクス系のツールが変わってます。
今では
$ brew tap Homebrew/science
とすれば大方アクセスできるようになると思います。
そして!!
こちらさんにもcpanmのような物があります!!
pipというかわいらしい名前です。
$ pip install gnuplot-py
を試してみましょう。
多分はいります(gnuplotというgrapherだったと思います)
たまーにですが、sudoしないとだめな物があります。
この間他のソフトでとあるモジュールに依存していたのでpipで入れたところ認識されず困っていました。だがsudoでやったらミラクル、気づいてくれました。
一応これで自分の使っている*brew関係について触れました
久しぶりの記事となってすみません、なかなか手を離せない物がありまして...笑
またたまに更新していきます。
|.+| 。
System関数
ちょっと前に友人に聞かれて、昔自分も調べた事もあってまとめようと思いました
perlのスクリプトで、unixコマンドを使いたい時がたまにあります。
自分の場合はperlを使ってFASTAファイルを編集して多くのBLASTのqueryを作ってBLASTに書けたい!って場合がありました。
なにせ2,300個のクエリーを作って、全部blastにかけるのはすごい大変な気がしてどうにかして簡単に出来ないかと探したところsystem()と出会いました。
使い方は簡単
system("echo hoge");
これをhoge.plとして、$ perl hoge.pl ってターミナル上でやると、
hoge
と出ます。
ダブルクオテーションで囲まれている部分がそのままterminalにコピペされているようなもんですね笑
ここで大事になってくるのは、変数が使えるってこ
emacs hoge.pl
__________
#!/usr/env/bin perl
use stirct;
use warnings;
my $hoge = "Aide-memorie";
system("echo $hoge");
__________
$ perl hoge.pl
> Aide-memorie
となります。
system()を使う事はあまり無いかもしれませんが、ボクは知ったときには感動しました。
いつでもネタを募集しております。
ただし当然ですが自分がわかってないと書けないです笑
|.+|
自分のパソコンについて
まとめた方が良いかなと思いました
Macbook Pro (2012.8購入)
OS 10.8
一応プログラミングとかに必要そうな物を一通り入れてます。
perlbrew, pythonbrew, xcode, homebrew, git, gnuplot, R, emacs, Xquartz
あとはzshにしてますね
インストールの仕方は各ホームページに乗ってますが、一応...のせときます笑
あと順番とかいろいろ関係してきます
一番最初にやらないといけないのはXCodeのインストールです
AppStoreがあれば無料で入ります。Snow Leopard以前の方はインストールCDを使えば良いと思います
インストールが終わったら Xcode→Preferences→Downloads→Components→Command line tools→install
これが無いとありとあらゆる物をコンパイルできないです。
Xcodeは容量が馬鹿にならないから時間かかります(ネット環境による)
あとは次のコードをぽいぽい入れたり編集したりしましょう
エラーに遭遇した場合はエラーが出てるので英語をがんばって解読しましょう。
emacsとzshとgitはmacだったらデフォルトで入っていると思いますが、homebrewを用いたインストールを一応のせます
## Homebrew
$ ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
$ brew doctor
$ brew --version
> 0.9.3
## Perlbrew
$ curl -kL http://install.perlbrew.pl | bash
$ perlbrew --version
> App::perlbrew/0.55
## Pythonbrew
$ curl -kL http://xrl.us/pythonbrewinstall | bash
$ emacs ~/.bashrc
1 | [[ -s $HOME/.pythonbrew/etc/bashrc ]] && source $HOME/.pythonbrew/etc/bashrc
2 |
ctrl x + ctrl s → ctrl x + ctrl c
$ source ~/.bashrc
$ pythonbrew
$ pythonbrew --version
> 1.3
## Git (Homebrewがインストールできた場合)
$ sudo brew install git
password : (入力してください)
$ git --version
git version 1.8.0
## gnuplot (Homebrewがインストールできた場合)
$ sudo brew install gnuplot
$ gnuplot -V
gnuplot 4.6 patchlevel 0
## R for statical computing
ここをクリック。そのまま指示に従ってください。
R version 2.14.2 (2012-02-29)
Copyright (C) 2012 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
## XQuartz ここをクリック。解凍した後、指示に従ってください。
> XQuartz 2.7.4 (xorg-server 1.13.0)
## Emacs
$ sudo brew install emacs
$ emacs --version
GNU Emacs 24.2.1
あとはperlbrewでperlの5.16.3, 5.14.3、pythonbrewでpythonは2.6.7と2.7.3と3.2.3、
そしてhomebrewでlv,imagemagick,wget,tmux,slをインストールしましたね
まぁslは半分冗談で入れたようなものですけどね笑
あとは.zshrcの設定ですが、ネットにコピペ用の物がいっぱい転がっているので探してみてください。
かくいう自分も先輩からいただいた物を自分仕様にちょっといじったぐらいです。
Perl 構造体
これれは春に経験したお話です。
昔、一つのkeyに対して複数のvalueを付与したくて調べてたところ、先輩に「構造体を使えば」と言われて調べたのがきっかけです。
簡単な紹介として、ハッシュのハッシュです。
例として
#!/usr/env/bin perl
use strict;
use warnings;
my $tree;
$tree->{ID_1}->{Namae} = "Yukichi";
$tree->{ID_1}->{Myouji} = "Fukuzawa";
$tree->{ID_2}->{Namae} = "Shigenobu";
$tree->{ID_2}->{Myouji} = "Okuma";
foreach my $ID ( keys %{$tree} ) {
print $tree->{$ID}->{Namae}."\t".$tree->{$ID}->{Myouji}."\n";
}
これを実行しますと
Yukichi Fukuzawa
Shigenobu Okuma
Data::Dumperというモジュールを用いて構造体の中身を表示しますと、
$VAR1 = {
'ID_1' => {
'Myouji' => 'Fukuzawa',
'Namae' => 'Yukichi'
},
'ID_2' => {
'Myouji' => 'Okuma',
'Namae' => 'Shigenobu'
}
};
***Data::Dumperの使用法***
#!/usr/env/bin perl
use strict;
use warnings;
use Data::Dumper;
my $gb; ## 構造体の宣言
(スクリプト)
print Dumper $gb;
このように一つのkeyに複数のvalueを決める事も出来ますし、また多段にする事が出来ます
構造体のsortでは宇宙船演算子を用いる方法をボクは使ってます
foreach my $name (sort { $hash{$a}<=> $hash{$b} } keys %hash){
print "$name,$hash{$name}\n";
}
またDumperで出力する時にkeyのsortも可能です。
use warnings; の下にでも
local $Data::Dumper::Sortkeys = 1;
と入れる事でDumperがsortされます。
発現量データ比較解析をしているときに、
遺伝子ごとの発現量データと一緒にfunctionとかを一緒にまとめられて、
あとから一気にアクセスできる事で非常に重宝してます。
ですがこれぼこぼこ大量にデータ突っ込んでるとメモリーを大量に食うのでご注意ください。
Ruby on Rails ~導入~
WebアプリとかHP制作とかお勉強したいなぁと思いまして、
授業でHTML5とjavascriptをやってることもあり、
なんか新しい物を開拓すべくruby on railsに手を出してみました。
あ、環境はMac Book Pro OS10.8です
ここを参照に
$ ruby -v ruby 1.8.7
$ sudo gem install rails
まぁとりあえず入れてみるってことでsudoでぶっこんでみました
どこまで使えるようになるかはわからないですけどね笑
あとはsqlite3も入れないといけないので
$ brew install sqlite3
$ sudo gem install sqlite3
sudoでやらないと権限とかでなんか文句を言われるっぽい
そうしたらruby on railsの環境が整ったみたいですね
としたら新しいアプリケーションを作成しましょう
$ rails new hoge
なんかいっぱい出てくるけど、"Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed."って出てきたら作成が終了かな
したらbrowser経由で見るために
$ rails server
でいろいろごちゃごちゃ出てきます
ボクの場合
> INFO WEBrick::HTTPServer#start: pid=3678 port=3000
と出てきたので、http://localhost:3000にアクセスすればアプリケーションに行けました。
どんなサイトを参考にしてもこんな感じだったので大丈夫なはず....笑
"About your application’s environment"ってとこを見てへんな所が無かったらとりあえずは安心ですかな
うん、導入はこれでいいかな
まぁまだinstallしただけだからどこまで使うかわからないけど、
なにか使えるようになったら便利かな
というか./configure make make install 以外のインストールの仕方久しぶりだった笑
ブログ開設
ブログを開設しました。
|.+| と申します。読み方はabsです。
とある大学にて生物学のお勉強しながらbio-infomaticsの研究をしてます。
ちなみに大学1年生なのでわからない事が多いです。
そのわからなかった事と解決したらここにまとめていきたいと思います。
もう半年近くいろんな事しているので、覚えていたら今までの事とかもまとめたいですね。
ちなみに今の環境mac book pro 2012です。
いろいろ入れたりいじったりしてますので、それとかもいずれ。
春学期にはPerlとRをメインに勉強して、
pythonはとあるソフトの制御のために、授業でHTMLの基礎をやりました。
この秋学期はJavascriptを授業で勉強してます。
まぁ最初の記事は「見たまま編集」って奴で作ってるけど、
いずれはhtmlで書けるように練習したいですね笑
では
|.+|