投稿

2014の投稿を表示しています

RefSeqのばーじょんというものに苦しんだ話

研究のときに遺伝子アノテーションはRefSeqとEnsemblを使っています。

そのうちRefSeqはucscの方でそれぞれのゲノムに対してRefSeqをマッピングして、
ポジション情報を含んだrefGene.txtというファイルがgoldenpathで提供されています。


一方RefSeqのデータベースでは種を大まかにわけたfastaファイルによってcDNA情報が保管されています。


成績発表

応用情報の結果が発表になりましたー。



Rでボックスプロットの順番を固定する

factorを数字で入れると辞書順にされてしまうので
data$variable <- factor(data$variable, levels = c(0:dim(data)[2], ordered = TRUE)
とすると、挿入したそのままでplotしてくれる(๑´ڡ`๑)
ついでにカラムごとにグループわけされているdata.tableをdata.frameに変換して boxplotするスクリプト。 ハイパーめんどくさいのでtableからそのままできるようにして欲しいものです。
(普段手抜きでpngで作っていることがばれる...)



Golangでシークエンスロゴ

名付けて
seqLoGo

(まんまだ)



必要が生じたので作ってみました。

https://github.com/carushi/seqLoGo


塩基頻度・GC含量を出力したり
あとはWebLogoに投げられるサイズまで配列を圧縮する機能があります。
詳しくはREADMEを参照!


モチーフの画像を出す部分も書いてしまおうと思ってpostscriptいじってますが、
文字をたてにのばすのが思いのほか大変そう。。


今年中にとりあえずのところまでできたらいいかな!



githubってついコミットしまくっちゃうんですけど、
本当は一回一回のコミットをもっと丁寧にやらないといけないんですよね。。

私には無理だ(๑´ڡ`๑)

Beamerで背景変更&白文字

イメージ
Beamerをかっちょよくするために、背景画像セット&基本文字を変更しました。

背景変更
プリアンプルに

¥setbeamertemplate{background}{
    ¥includegraphics[width=¥paperwidth,height=¥paperheight]{test.eps}}
を追加。
ずっとpng画像を追加しようとしていてなんで入らないんだろう?と思ってました。

基本文字変更
プリアンプルに
¥setbeamercolor{whitetext}{fg=white}
を追加しておき、スライドごとに
¥begin{center} { ¥usebeamercolor[fg]{whitetext} テキスト } ¥end{center}
とやれば完了。 見出しの色の変え方なんかはわからず。。 カラーテーマをアルバトロスでやれば問題なく読めるのですが。
ともかくこれでシャレオツビーマーの完成です(๑´ڡ`๑)


Ensemblのダウンロード

wgetはアカウント承認がうまくできず、
FTPだとまったく動きやがらないので調べていましたら
rsyncは使えるそうなので


rsync -av rsync://ftp.ensembl.org/ensembl/pub/current_embl/homo_sapiens/ .

これでやったらなんとか進みました。
ucscのダウンロードはすごく快適なのに! APIがいっぱいある分、一括ダウンロードは不便でした(´;ω;`)ブワッ

Rustを初めてみる

手続き型も書けるけど、letやmutが用意されていて純粋関数型のようにも書ける?

ヌルポインタは許可されていなくて、またライフタイムを超えた範囲の参照とかはOwnershipの観点で制御されていてコンパイルエラーになる。
gcをしない。

並列化はspawn関数で簡単にスレッドを呼び出して、間の受け渡しはchannelが用意されてる。
goみたいな感じ?


パッケージマネージャーも入れてみたので、今からこれ読みます。
http://doc.rust-lang.org/nightly/guide.html



速度はたまにrustが上回っていたりもするけど、goの方が一般的に早い感じ。

他言語のライブラリを使用する意図を持って設計されているらしいので
(簡単にできるとは言っていない)
C++で書いたものをRustで呼び出せればいいなぁ(๑´ڡ`๑)


もじら。


バイナリの比較

バイナリで保存しているデータの比較をするときには

diffではなくcmpで。



べんり(๑´ڡ`๑)



おなかすいたー(๑´ڡ`๑)

The alias can't be opened because the original item can't be found

どうも消してしまったらしいメールを復元しようとして、
タイムマシンで検索して開こうとするとこのエラーメッセージが。


隠しファイル内のフォルダに入っていたためにおかしくなったようなので、
隠しファイルを表示するようにしたら無事コピーができました。

> defaults write com.apple.finder AppleShowAllFiles TRUE
> killall Finder

応用情報技術者試験を受けた

I いっぱい
P パソコン
A ありがとう



意:この間MBPを垂直に落としてあちこち凹ませました)





htmlを理解しはじめた

googleのhtml5のスライドテンプレートというやつをみつけたので(http://code.google.com/p/html5slides
htmlの勉強がてら資料を作ってる。

やっぱりヴィジュアル最高なのがhtmlなのは間違いない。


MathJaxとかいうやつを使えばtexも簡単に入れられるんですよ〜(๑´ڡ`๑)べんり。

diff : memory exhausted

文字の置換だけがある一対一対応のファイルのdiffがメモリーエラーでできなかったので、分割してdiffを行ってみました。



split -l20000 -d -a 3 one.txt// one.txtを20000行ごとに分割しx000, x001といったファイルを作るmkdir diff1mv x* diff1// ディレクトリ移動
two.txtを同様にしてdiff2ディレクトリに移動

seq -w 0 max値 | xargs -I{} diff diff1/x{} diff2/x{}

これで完成です。間違ってなかったんだけど解析結果がなんか違うー。 

あとは最近pasteとjoinコマンドを覚えたので使いこなせるようになりたい所存(๑´ڡ`๑)

ICML2014 : A new Q(lambda) with interim forward view and Monte Carlo equivalence

イメージ
Q(λ)というのが見慣れなかったので、今回紹介するのはこれ。
http://jmlr.org/proceedings/papers/v32/sutton14.pdf


事前知識
Q学習 Q-learning 参考:http://www.eb.waseda.ac.jp/murata/mituhiro.seki/openhouse/RL_algorithm.php   :http://mikilab.doshisha.ac.jp/dia/research/person/suyara/RL/TD-Learning/QL/Q-Learning.html   :http://stlab.ssi.ist.hokudai.ac.jp/yuhyama/lecture/OLD/softcomputing/softcomputing-b-4up.pdf
1989年のWatkinsの論文で提唱された強化学習の中のTD 法(temporal difference learning)の手法のひとつ。ほかに強化学習を解く手法には動的計画法・モンテカルロ法があげられるらしい。この3つですべて説明できるかはわからない。 今回は新しいQ-learning手法を提唱するとともにモンテカルロ法と(一部?)同等であることを示しているそうなので、手法の垣根を超える論文なのかもしれない(注:今の時点でタイトルしか読んでない)

ICML2014 : A Divide-and-Conquer Solver for Kernel Support Vector Machines

イメージ
はじめが肝心なので、今日はこれ。
http://jmlr.org/proceedings/papers/v32/hsieha14.pdf


概要 SVMは通常サンプル数が膨大であった場合、計算量がボトルネックとなる。 そこで分割統治SVM(DC-SVM)を開発し、複数のサブ問題に分割して独立に解くことにした。 適切なカーネルクラスタリングであれば、サブ問題から得られた解は全体の解となる確率が高いことを理論的に示した。LIBSVMを7倍のスピードで最適解を出した。 early prediction strategyを組み合わせると100倍まで高速化。


divideステップでkernel kmeansによって分割したサブ問題の解を得、 conquerステップでサブ問題の解を接着(glued)してglobal problemの初期解を決定しcoordinate descentメソッドによって最適解に収束させるらしい。

ICML2014 : A PAC-Bayesian Bound for Lifelong Learning

イメージ
勉強のためにICMLの論文を読んで、まとめてみようかと突然思い立ったのではじめてみました。

今回はこれ。
http://jmlr.org/proceedings/papers/v32/pentina14.pdf

まずタイトルから意味がわからなかったのでいろいろ調べてみました。


事前知識 転移学習 Transfer Learning
参考:http://www.kamishima.net/archive/2010-s-jsai_tl.pdf
異なる分野(?)から得られた知識を転移して、
まだデータが得られていない分野のための学習に利用することが最終目的。
2012年ぐらいのICMLでうまくいきそうな手法がでてきたとか。


Lifelong Learning
参考:http://www.seas.upenn.edu/~eeaton/AAAI-SSS13-LML/

直訳すると生涯学習、ただ人工知能なんかの世界だと
長期的に知識を得て整理して保存し、未知のデータに関して適応するという一連の過程に属するプロセスのことを言うらしい。
転移学習はこれを達成するためにある手法の一つ。
問題は現在のタスクからどれだけ未来のタスクを予測できるのか?ということ。



PAC-Baysian analysis (Probably Approximately Correct)
参考:http://hunch.net/~jl/projects/prediction_bounds/thesis/mathml/thesisch6.xml#x37-570131
http://arxiv.org/pdf/1307.2118v1.pdf
オッカムの剃刀の制約を一般化したもの。分類器による分類の分布に含まれるエラーを評価する?
ベイズ主義と頻度主義を機械学習のためにブレンドした考え方。
自然に生まれてくるsituationの分布と、それを表現するルールのjoint分布を考えてルールのバイアスなどを含めたパフォーマンスを評価することができる。

ルールが決まっていたときに、それがどれだけの表現力を持っているのかということをKLダイバージェンスで表現する、という理解でいいのかな。

Golangのdefer

deferはファイルcloseなど関数がreturnするときに処理させたいものを宣言しておくもの。
ファイルのcloseとbufferのフラッシュなんかで順番は大丈夫なのかなと思ってググったところ、

http://qiita.com/tenntenn/items/9aebce917760f157c44e


First in Last outで、引数は宣言した時点で評価されるらしいです。
なるほど。

Phylogenetic tree reconciliation

論文紹介のスライドをSlideShareにあげてみましたー(๑´ڡ`๑)


でも論文紹介って著作権的にはグレーゾーンなんですよね。。
なので後日消すかもしれません。

とりあえずUP。


ISMB : Pareto-optimal phylogenetic tree reconciliation from Caru Shi

Ultra Super Anpontan

イメージ
わたしの夏が終わりました... (๑´ڡ`๑)


今まで研究会で瀕死という以外に特に思い出のない素敵な夏休みを過ごしてきたわたしでしたが、 締めくくりとしてUSAに旅行に行ってきました!メリケンメリケン!!

というわけで、帰ってきたいま時差ぼけで大変辛いのでスライドを作っている体でブログを更新しようと思います( ^ω^ )b

ただいまジャパン

どうもお久しぶりです、皆様夏休みはいかがお過ごしでしたか。

私は今日延長で夏休みということにして寝込んでおりました\(^o^)/



というのも先日まで勉強会で一週間出張していたんですが、
旅先でのおいしいいくらと生ガキといかと(いか好きじゃないけど)飲み会を堪能してたら、

ある日飲み会中に貧血起こしまして、

複数ファイルgrep

grep grep hoge *

とやると、ファイル名が出力されてしまうので不便だなと思っていた。
man見たら

grep -h hoge *

でファイル名の出力をオフにできるらしい。

grep hoge -R でディレクトリを再帰的にgrepできるとか。

うんうん。
find find / -type f -print
で、通常ファイルのみをprintするとか。



xargs小ネタ
seq 0 8 | xargs -I{} echo "grep \"{}\" temp.txt > temp_{}.txt "| bash

とやることで、xargsをリダイレクトにも使える技を発見しました。
単純にコマンドを打たなくて良いだけで、xargsの良さはいかしてないですけど。


あと、この前
seq 0 8 | xargs -n 2 echo
で二行ずつわたして出力する技を教えてもらいました。


nohup

nohupで動かしていても、fgで始めたあとbgにしたりするとシェルからシグナルが送られて止まってしまうことがあるらしい。
勉強になりました。もちろん環境によって違うんだろうけど。


nohupで起動したジョブをkillしたいんだけど、そのマシンにログインできないからどうしようかな。。
qloginで指定したマシンにログインできないかな〜


参考:技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他)

ぽよよーん (  )・ω・(  )

でぶりました。
晩ご飯たくさん食べましたー!


なんかmacぶっ壊した記事が女子っぽいと言われたんですが、
よくわからないんですけどどの辺ですかね。
いつも女子なつもりなんですけd(


お休みは今週までで、来週はバリバリ解析して再来週は研究会で、
さらに次の週は海外にいってきます。
楽しみじゃー(๑´ڡ`๑)

今週中に資格の勉強がだいたい終わるようにがんばっています。
会計とかQCとか初見なので結構難しいですん。。





さて今回は配列情報から適当な長さの配列を抽出してくるときについて。
headで最初の方の行は抽出できますが、
行でわかれていないときに最初の数文字を出したいときには

cut -b-100

でバイト数を指定して抽出してこれます。
なるほどべんり。



terminalに日本語が入らない

新しいテーマのターミナルを作ってみたらどうも変換されない。


そんなときはPreferencesのAdvancedで

Unicode East Asian Ambiguous hogehoge

をONにしましょう。

参考:http://blog.goo.ne.jp/marimoan/e/e96d76b0689c5142c191adf120d46c5b

文字コードの確認

file --mime file.txt

でいけるそう。

もちろん

nkf -g

でもいける。

mac起動しなくなった!\(^o^)/

イメージ
てことで、今復旧作業中です(´;ω;`)ブワッ まずなぜこんなことになったかというと、おそらくbrewでsudo権限をつけてたために
何かをインストールしたときにdylibが違うバージョンのものが入ってしまって、

open .

したら関数がないとエラーがでるように。


でシャットダウンしたら起動できなくなりました:;(∩´﹏`∩);:

(てかそもそもportsとbrewを共存させるなんて無理やったんや。。)



その後の対応は以下の通り:

リカバリーモードで起動 (Command+Rを電源ボタンを押した直後から押すOS入れ直すなんとか起動できたので残ってたデータをUserのディレクトリごと避難新しいユーザーとしてログインちまちまデータを移す

どうもおかしかったのはユーザー以下だったので
(LionからOSアップグレードしたのをそのまま引き継いだりしていたので)
これでopen自体はできるようになったので完全に消去とかはしないですみましたε-(´∀`*)ホッ

一応Time machineはあったんですが、前からちょくちょく不具合あったんでこれを気に一新します!


で、復旧作業でしたことめも。

shortcut keyのDefaultをリストアSystem preferenceで日本語をDvorak入力に & Caps lockとControlを入れ替えKarabiner入れたけど特に設定してない BetterTouchToolsで動作を入れる(ウィンドウ系Keychainのコピー(LibraryのKeychains以下にあります)ホームディレクトリに置いていたsshの秘密鍵, .bashrc, .screenrc系のコピーSystem preferenceで起動時に働くアプリをvimのバンドルを入れ直しSublimeのパッケージやスニペットをコピー(LibraryのApplicationSupport以下)「ca」で「か」に変換するようにKotoeriRomaji.txtを編集(以前の記事参照)brewでいろいろインストール-> シンボリックリンクの張り替えTerminalの色変更System preferenceでAlt+Tabで次のウィンドウに行くよう、ショートカットを変更メールクライアント設定byobu-config用にhttp://castor.s26.x…

おもしろコマンド群

cowsayコマンドしたかったけどfreeBSD環境で
portとpkgまわりをいじって終わった(๑´ڡ`๑)

http://orebibou.com/2014/07/ls%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%A6%9A%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E3%81%93%E3%81%A816%E5%80%8B/



virtual machineでページにアクセスすると、
OSはどう評価されるんだろ?
仮想マシン上のOS? それとも本体?

.zshrcで

以前PROMPT, RPROMPTを紹介しましたが、

なんとPROMPT2とSPROMPTもあるらしい。



PROMPT2 : 複数行入力時SPROMPT 入力ミスを確認するとこで出る
コマンドライン打つときにvimモードだと、 行頭に戻るのにいちいちesc -> Shift-^が面倒なので やっぱりやめます。

ゆるふわ

Yurufuwa@Kashiwa.R.5 from Caru Shi
昔発表したスライドもあげてみました。
これ、plotかなりごり押ししたんですけど、rasterimageかなんかでやると簡単にできるん
だとか。

Google App Engine

イメージ
前に紹介されたのでちょっくら使ってみようと思いました。

そもそも何ができるのかよくわかってなかったので
Googleさんでいろいろ調べてみたのですが
(プログラムをインターネット上で実行する上で実行環境をGoogleが用意してくれるとかなんとか....?)

こちらで
http://gihyo.jp/admin/serial/01/comparison_cloud/0005




「まあGoを使う人はいないと思いますが......」
ってええぇ!
使いますよ、私使います!(๑´ڡ`๑)(←反骨精神


という訳で入門編を探してきました。


でもPythondでやりました、ごめんなさいGopherちゃんm(_ _)m

http://appengine.keicode.com/devenv/appengine-sdk-python.php


こちらの通りプロジェクトを作り実行したのですが、
今回私の手元にはGoogle App Engine Launcherがあったので、
そこでNew applicationを選んでhelloworldディレクトリを追加しました。

で、Runしてみると



こんな感じ! なるほど。。

とりあえず動かし方がわかったので、 これからリファレンス?とにらめっこしてきます( ー`дー´)キリッ




No package 'python-2.7' found

或る夏の昼下がり、renameを使おうとコマンドを連打すると

"command not found"

という文字が表れたのだった。
疑問に思ったl_coliはすぐにグーグル検索にかけてみたところ、
renameはLinuxコマンドでmac OSXには入っていないようだった。

「「なんだって....!!!!! 」」
以前にもこのようにコマンドの違いに悩まされたことがあったため、
この際こちら(https://www.kernel.org/pub/linux/utils/util-linux/v2.25/)から
ある程度のLinuxコマンドは導入しておこう、と思い立ったのでした。



ダウンロードフォルダで解凍を行い(tar のオプションzxvfが覚えられないんじゃクラァ)
./configureを行うと


ログ ズラズラァ
.... .... ... "No package 'python-2.7' found"


フォッ!?


いろいろ調べてみるとpython2.7は入っていたのですが、ライブラリを共通で扱うpkg-configのパスが通っておらず さらに.pcファイルが入ってなかった模様。

なので、/usr/lib/pkgconfig/にfindしてきたpython-2.7.pcファイルをコピーして、 さらに.zshrcに
export PKG_CONFIG_PATH="/usr/lib/pkgconfig"
を追加しておきました。
かいけつ、よかった!!(๑´ڡ`๑)


最近こういう導入でつまずく場面も多少調べれば解決できるようになってきました。

これが圧倒的成長...!!!!!(笑)


追記:
ダメだわ、これコンパイル失敗しすぎてどうしようもないぞ。。。


cppunit

c++の単体テスト用に、cppunitを入れました。

正確にはやっと入れられました。


macの人はbrewで入ることを知らず、sourceforgeから落としてきたのがうまく入れられなかったのディース(๑´ڡ`๑)


入れたあとは#include <cppunit>以下の必要なのを入れて、

コンパイルするときに-lcppunitとすればオッケーです。

テスト用のクラスももしかして複数あったりするのかな?
書き方は勉強中なので、テンプレートがかたまったらまた書きます。




今度実装するときはテスト駆動型開発にします。と心に誓って(嘘)

ついでに

スパコンの方でvimを使わざるを得なかった影響で、最近vim or sublimeなので

vimをいじるようにNeoBundle入れてみた。

Error detected while processing ~/.vimrc: line   10: E117: Unknown function: neobundle#rc line   12: E117: Unknown function: neobundle#exists_not_installed_bundles E15: Invalid expression: neobundle#exists_not_installed_bundles() となってエラーになってましたが、Neobundleのディレクトリが違っていたので
/,vim/.bundle/neobundle.vim -> /.vim/bundle/neobundle.vim に直したら読み込めました。
打ち間違いまで混ざっててワロスですね。
参考:http://d.hatena.ne.jp/sasaplus1/20111023/1319298810

8月だよん

スイカがおいしい季節になりましたね(๑´ڡ`๑)


早く論文書き始めたいな(๑´ڡ`๑)


進行状況はまだまだ....(๑´ڡ`๑)






先日同期の働くG社にお邪魔してきました。


隠れドロイド君とかいて若干のディズニーを感じました。


食堂おいしかったデス (๑´ڡ`๑)



最近は応用情報技術者の勉強をしています。
次の試験受けるので真面目に頑張ってます。

というかその関係でいろいろ本とか見てたらオラクルの技術者認定とか
ネットワーク関連のとか資格もいろいろあるんですねー。
勉強になりそうなやつなら受けてみてもいいかもしれない。



まぁ今回はそんなに内容的には難しくなさそうですが(いまのところ)
勉強もかねてGoでAVL木とB木を実装しようかな。

今年の夏は

論文を書き始められるデータを出すGoでいろいろ書く応用情報の勉強積ん読フリーを目指す という目標でいきます。 もちろん出張旅行にもいくぞ!!(๑´ڡ`๑)

renameべんり

自転車でアゲハ蝶と正面衝突しました。


むずがゆかったです☆(ゝω・)vキャピ
(ちなみに蝶は何事もなかったかのように飛んで行きました)


元々開発環境のセットアップなんかを忘れないように書いていたブログなんですが、
最近はシェルコマンドばかりになってきました。


そして今日もコマンドについてです(笑)



ファイル名を変更するときにはいつもmvを使っていましたが、
複数ファイルには対応していないので面倒でした。


rename '置換前' '置換後' 変えたいファイルs

とやると、削除なんかもできて便利。

例えば

rename 'old_' 'new_' old_files*

みたいな感じ。




あとは
echo 1 + 2^6 | bc
で計算するという技を覚えましたし。

exprしか使ってなかったけど、bcを使えばもうちょっと難しいことができる?
ファイルから読み込むとかもできるらしいけども。


近況

どうもこんにちは。 最近は夢の中でもおもしろツイートのネタを探しているl_coliです。
昨日は怒濤の更新をしましたが、作業でファイルいじりが多かったせいです。 他意はありません。
そして今日はやる気がでないのでまた更新しています。 困りましたねー夏バテですかねー:;(∩´﹏`∩);:

今日やったこと(技術系)だと Sublime text2に全角スペースハイライター(FullPitchWhiteSpaceHighlight)を入れたGithubの線形回帰にリッジ回帰をpush  (ラッソはあの方法だとできないことが今更判明)アブスト書いたアブスト書いたアブスト書いた
去年は国際学会で二回も口頭発表させていただいたので、 今年は日本で口頭発表できたらいいんですが、機会があるかどうか。。 といいつつ、国際学会にオーラルで出してみるなうでした。


word2vec

良さそうなチュートリページを見つけました。

一層のDeep learningということですが、中身よくわかってない。

今度使ってみまふ(・ω・)

参考:http://saiyu.cocolog-nifty.com/zug/2014/02/word2vec-1867.html

xargsは個別ファイルへのリダイレクトができない

たくさん落としてきた.gzファイルの末尾がバグっていたので、

ls hoge* | xargs -I{} gunzip < {} > new{}


で修正しようと思ったら、
リダイレクト先には引数を展開できないらしい。

しょうがないのでfor文で

for file in `ls hoge*`; do gunzip < $file > new$file; done

としました。不便ですな!

参考:http://takuya-1st.hatenablog.jp/entry/20110705/1309867505

aliasに引数

は無理そうでした。

ワイルドカードを使ってファイル数をカウントしたかったんですが、
aliasの中に組み込む方法がわからず、
最終的に.bashrc内に関数化して

function filecount() {
    ls $1* | wc
}

とやると、

filecount chr1

でchr1.txt, chr1_annotation.faなどのファイル数のカウントができるようになります。

参考:http://maarui.doorblog.jp/archives/2445986.html

.zshrcにRPROMPTを入れた

イメージ
RPROMPTはシェルで、右側に表示される内容になります。
長いコマンドとか打つときには邪魔になりそうだけど、手元じゃあんまりそんな機会ないので。

http://tegetegekibaru.blogspot.jp/2012/08/zsh_2.html


私は
RPROMPT='%F{blue}%U%C%u%f'
で目立たないようにカレントディレクトリを表示する様にして、

PROMPTは
http://nishikawasasaki.hatenablog.com/entry/20101227/1293459255
を参考に、vimモードを表示するようにしてみました。
ユーザー名は本名入れちゃってるので、ホスト名にしてみた。



こんな感じ。色がシンプルでよいかも。

使いにくかったらまたいじってみる予定。

Wheelグループ

なんかプロセスとか表示するときにwheelってでてくるなー
管理者みたいな権限もってるグループなんだなーと思ってましたが、

http://www.atmarkit.co.jp/ait/articles/0311/05/news001.html

を読んでsudoの勉強していたら、
「なんでwheelなの?」
と疑問に思ったので、調べてみました。

http://unix.stackexchange.com/questions/1262/where-did-the-wheel-group-get-its-name

「Big wheel=大物」から来てる、という話がありましたが確定的ではないようですね。

ついにできた

freeBSDのdvorak化!

setxkbmap dvorak

と打てばできますが、それはめんどうなので設定ファイルに。

どれが効いたのかわかりませんが、

/etc/X11/xorg.confに
Section "InputDevice"
           Identifier "Keyboard0"
          Driver "kbd"
          Option "CoreKeyboard"
          Option "XkbRules" "xorg"
          Option  "XkbModel" "pc105"
          Option  "XkbLayout" "dvorak"
          Option  "XkbVariant" "dvorak"
EndSection

を追加。

さらに/etc/X11/xorg.conf.d/10-keyboard.confを作って
Section "InputClass"
           Identifier "Keyboard Defaults"
           MatchIsKeyboard "yes"
           Option    "XkbLayout" "dvorak"
           Option    "XkbModel"  "pc105"
           OPTION "XkbVariant"  "dvorak"
EndSection

と書いて、さらに/usr/local/etc以下にも同様にぶち込んでみたら
ユーザーでも動きました!


やった.....!!!!\(^o^)/

Library not loaded対策

brewで新しいツールを入れたらdylibで違うところを参照していたためにエラーが起きていた。

ということで、
こちらを参考に。
http://blog.enjoitech.jp/article/216


まず「ないよ!」と言われたライブラリーの名前をfindで検索。

find / -name ないよ!

見つかったら、リンクを変更したいコマンドの絶対パスを探して、

which コマンド

otool -L /絶対パス/コマンド

をすると
/絶対パス/コマンド:
    ないライブラリー

となっているので、

install_name_tool -change "ないライブラリー" あるライブラリー /絶対パス/コマンド

でもう一回otoolしてみると、無事変更されてます。


動作かくにん、よかった!

Rで音声解析

Kashiwa.r.10 from Caru Shi この前発表したスライドあげてみました。 音声いじるのは結構楽しかった。

grepでハイフンを含む配列を検索する

grepだと"- hoge"とかでもオプション扱いになってしまうので困ってました。


そしたらこんな解決方法が。

http://openlab.dino.co.jp/2007/10/05/17461999.html

grep -- -hoge

ですって!

getoptは使ったことありますが、
つまりこれは空のlongオプションの引数に-hogeが入るということなのかしら。

追記:
エスケープ使って"\-hoge"でもいけた。

OSできないシリーズ

イメージ
freeBSDでできないことだらけだったので、ぐぐってたら OSごとにsuggestion違うんじゃないか?と思いつき調べてみました。

まずwindows × できない

うーん、セットアップはやってもらえるからか、updateばっかりですねぇ。

次にOSX


普通だとmacでぐぐるかな?と思ったのでmacにしてみる。

充電が難しいらしい。クリックできないとかつらい。CUIにしよう。
次にubuntu。


やっぱりインストールが難しいようですね、ubuntuでシャットダウンできない病とかあるのか。
そして最後にfreeBSD

私もシャットダウンできない病にかかりました。
基本的にroot扱うのがムズイので、権限がなくてシャットダウンできないという。


以上小ネタでした。

FreeBSDを入れてやった!

open-usp-tsukubaiを使うために...!!!


Virtual Boxで入れました。

無線LANはいろいろ見たけど、これでなんとか。

http://d.hatena.ne.jp/sillywalk7/20130223


でもdvorakに直せない...!!!!!
sysinstall kbdなんちゃら、直接書き換えも試したけど。。

なんででしょう。。

Rのパッケージの入れ直しをしてたら

gfortran関係でまたエラーでた。。

特定のバージョンのgfortranを直落としてきて、コンパイルしました。

http://www.thecoatlessprofessor.com/programming/rcpp-rcpparmadillo-and-os-x-mavericks-lgfortran-and-lquadmath-error


私もinstall.packagesしたい。。。
(↑今バージョン最新)

zshのエラー

ワイルドカードを使ってrsyncしたりすると、
ファイル名だと思って先に展開しようとしてしまうらしい。


http://shirusu-ni-tarazu.hatenablog.jp/entry/2013/01/18/034233


$setopt nonomatchで解決!( ^ω^ )

Xamarin studioのダウンロードとテスト

イメージ
iOS, Androidのためのクロスプラットフォームで.NET環境が使える。

つまりF#も書ける。

C#も書ける。

こちらを参考に
MacでC#を書いてみよう(準備編) まずはダウンロード。

http://monodevelop.com/Download

studio本体とMDKを入れます。


そのあと上のページに従って、Nugetとやらも入れてみましたがまだ使いません。
多分Go getとかpipみたいなやつ。



起動してみると
こんな感じ。

Visual studio風かと思ったらXcodeっぽい。


あとはおまけとして、実行を内部コンソールで行うときは

Project -> hoge option -> Run
の部分で外部コンソールで実行のチェックを消す。

すると下のApplication Outputで出力結果が見れます。

まぁGUIだと関係ないんだろうけども。


mac OSXでもfactorコマンドが使いたい!

そんなわがまま気のまま愛のジョークの君には

brew install coreutils!

gfactorとして入っているので、

find / -name gfactor

で探してみてください。

これでいつでもどこでも素因数分解が簡単にできちゃう☆
(頭が疲れてます)

byobuが動いた

PC変えたせいかわかりませんが、
macのreadlinkが-fオプションに対応していないから
byobuが動かないエラーが発生していました。

http://apple.stackexchange.com/questions/64395/byobu-using-invalid-readlink-f-option-on-os-x-mountain-lion

brewで入れたcoreutilsの中のgreadlinkをコピーペしてreadlinkとして突っ込んだところ、
一応動く様になりました。

弊害とかないといいんですけどね、とりあえず様子見。

zsh & pecoが強力

イメージ
zshでpecoを使ってみることにしました。

pecoは自分で入力に関するフィルタリングが書けるらしくて、

拾ってきた履歴検索を使うとこんな感じ。







あとはファイル検索にも使えるらしい。
複数行選択なんかも。

でもよくわかりませんが、zleがアクティブになっていなくて、
widgetが動かないー

.zshrcって基本的にはbashと書き方一緒でいいのかな...

auto_cdが半端無く便利。

Sublime text2の使っていなかったショートカット

検索後
command + g 後方を検索
command + shift + g 前方を検索

command + / コメントアウト
alt+左クリックの矩形選択 -> "'を打つとかこってくれる

ctrl + l カーソルを中心に移動。


あとは良く忘れるもの

command + [
command + ] indent and unindent

command + D -> command + ctrl + G -> esc 複数選択
いつもescを忘れる。


command とctrlが逆だったりするかも。

いまだにうまく使いこなせてない。。

Go tourから帰還

A tour of Goが昨日やーーーーっと終わりました。


これからはGoでなんか書いてみようかなっと。


きょきょ今日はまじめに研究しよう....(;・∀・)

mac OSでfftwパッケージをインストール

高速フーリエ変換のためのライブラリ、fftwをRから使うためのパッケージfftwをインストールする際に$sudo R CMD INSTALL –configure-vars=”PKG_CONFIG_PATH=/usr/local/Cellar/fftw/3.3/lib/pkgconfig” fftw_hogehoge.tar.gzでライブラリを指定する必要があった。Written with StackEdit.

Gistによる埋め込み

使ってみました。

 載せてみたのは、今プログラムで使ってる一文字表記の文字列をRNA配列に変換するコード。
 Nはそのままですが、それ以外の一文字表記はA, U, C, Gの優先順位で変換されます。
あと先頭に$が挿入されているのでそれだけ特別扱い。


Ambiguous characterはじきに全部Nに変わるかも。



Screen(byobu)の縦分割ができなかった

イメージ
と思ったら、
最新版じゃないとできないんですね〜。
-vで見てみたら今のscreenは06年でした。
ということでこちらを参考に。
http://rtx1911.net/T_S/?p=30

MarkDown
そしてGithubをいじっていてMarkdownをきちんと書けるようになりたいな〜と思ったので
BloggerをMarkDownで書くことに。
Chromeアプリの~Stackeditを入れてみて挑戦中です。
MarkDownで書くと左側にすぐ表示されて便利。
ただ画像のアップはBloggerからじゃないとできないみたい。

しかもアクセントとかうまく変換できてないなぁ。
う〜む。。


Written with StackEdit.

Go Conference (GoCon) 2014 spring に行ってきた

イメージ
行ってきました。

資料など詳細は
開催者さんのブログへ→
Go Conference 2014 springを開催しました #gocon

というわけで行って参りました、Golang勉強会。

内容については⬆のブログでSlideのリンクがあるので見てみると楽しいと思います。

午前中はハンズオン(電源ネット無し)で、
午後が発表という流れでした。



リクルートの会議室。 高いきれい高い。 Gopherがかわいい。




これまでGoは「なにこの気持ち悪いキャラクター、かわいい!」からA tour of goを半分ぐらいやり、
文字列処理するコードぐらいしか書いたことがなかったんですが
言語自体はCをやったことがある人ならとても簡単に書けていいな〜と思ってました。



前提として
GoはGoogleで開発された言語で、Limboなんかに影響を受けた言語です。
最近AWSなんかでも使われているDocker(詳しくはググって)なんかはGoで書かれています。






一言でGoの特徴を言ってしまえば、「静的型付けとGoroutineとChannel」なんだと思います。(私の独断と偏見です)


シェルをCで書いてシグナルの受け取りやパイプをつなぐのに苦しんだ身としては、

ちょろっとGoroutineで並列に走らせて、それぞれの出力はChannelで受け取れるというシステムが既にあって、
しかも簡単に書けるというのはすごい利点だな〜と思います。
CやC++だとちょっとした処理を並列化するのでもpthreadでmutexをチェックするの面倒ですよねぇ。。




あとヒープとスタックは基本的に自動で判別してくれて、
関数の外でも使われるような変数は自動でヒープに置いてくれるらしい。
しかも関数呼び出しでスタックが増加するときは、既存のスタックごと別の場所に一括でコピーして増加させるらしい。
(コンパイル時に最大スタック量は正確に見積もれるってゆってました)



reflectやinterfaceあたりはC++やJavaをやっていればわかるのではないかと。

sliceはPythonやっていればわかるのではないかと。
(発表でPythorubyscript?と呼ばれちゃってましたが涙

(そういえば、ジェネリックはないらしいです。そう言ってました。


あとは標準のライブラリが充実しているので、発表者のみなさんも結構「標準でガ…

llvmをいじる

イメージ
当方mac使いですが、
ふとアセンブリを実行しようと思って()

gcc -Sでhoge.sを出力し 
as -o hoge.o hoge.s

とやりましたら、Unknown pseudo-opというエラーが。


そういえば今ってgccじゃなくてclangのなんかよくわからないやつがgccとしてエイリアスされてるんだっけ、と思ったので

他のでやろう!と思い


brew install llvm

でllvmをインストールして、そのコマンド群でいじってみました。

中を見てみるとこんな感じ。




objdumpも入ってる!(そりゃそうですね)

llvm-gcc -> hoge.llファイル出力 llvm-as hoge.ll -> hoge.bcファイル出力 lli hoge.bc Just in timeコンパイラで実行できる llc hoge.bc ネイティブなコードに変換できる (hoge.s)
hoge.sを作ってしまえばgccでコンパイルできます。

うーん、大体わかりましたがllファイルはgccだと何に対応するのかな。
追記: もしかしたらRTLとかの中間言語に相当するのかもしれない。 真偽は定かではないけれども。

pythonでたのしむ

chromosome上でmRNAがある場所なんかをマーキングするのに pythonでだいたい処理をやらせてます。
str.translate(string.maketrans('ABC', 'abc')) でstr中のABCをabcに変換するのがこれ一行でできてしまうので便利。
でUTR, intronをそれぞれACGTに対応する文字に変換して保存しておくと、文字列を読み込みつつアノテーションもとっておけて便利。
Pythonここ2年ぐらい使ってるから、またスクリプト言語かえようかなかえようかな。
かなって。



kindleでmake関連の書籍が値下がっているのに関連して いろいろ調べていたらこんなページが。 http://www.booran.com/menu/makefile/func.html makefileでこんなにいろいろ関数が使えるの知らなかったので、 とくに文字列関係のものをこれから使ってみよう。




Dvorakだいぶ慣れてきましたよ〜

コマンドキーがぶっとびそう

Pythonで遺伝的プログラミングをやろうと思い立って

DEAPを入れてみました。

https://code.google.com/p/deap/


これでなんかシミュレーションしてみよう...

シェル芸さんで使ってた技

http://pcmemorin.blog.fc2.com/blog-entry-454.html

exec にコマンドを何も入れないと、現行のシェルに対してリダイレクトを実行してくれるらすぃ。

だから


LOGFILE=$1

exec 2>> $LOGFILE

command1
command2
...


とやると全部ファイルにログがとれる。
便利。




Dvorak配列だいぶ慣れてきました。
そろそろqwertyが打てなくなってしまうかしら。


というかDvorakでqwertyって打つのムズイ(笑)

染色体のACGTをカウント

デバッグのために、各染色体の塩基組成を調べます。


tail +n 2  chrX.fa | sed -e "s/[^aA]//g" | tr -d '/n' | wc


awk使った方がもっと早くいけたかなぁ。
最初小文字大文字あるのを忘れてました。。

pyqtの導入 for mac

インストールに依存関係があるものがありますが、

brewで一発!


私が詰まったのはそのあとのPathでした。

.bashrcあたりにpyqtが入ったディレクトリを

PYTHONPATH=/usr/local/Cellar/ど−ちゃら

といれておきます。

libのしたぐらいまで指定する必要があります。

Dvorakにします

イメージ
(予定)

左側に母音がまとまってるとやりやすそうなので、
ちょっくら練習してみています(^^)

追記)
ca, ci, cu, ce, coはKotoeriRomaji.plistをいじってみてもダメだったんですが、
ここを参考にKotoeriRomaji.txtをいじってみたらいけました。
というか私の環境じゃそもそも「cあ」とかで変換できてなかった。
_______________

あとはpyqtを導入しました!
C++ベースのQtをpythonからいじるんですが、C++で書くのとどっちがいいかはわかりません(笑)
ただC++ではあんまりGUIいじる気にならないので、pyqtの方にしてみました。

Slidesharの資料を参考にまずタイマーを。


ふむ。



面白いかも。
導入でつまったところは次の記事にまとめます。


OpenSSL問題

http://d.hatena.ne.jp/nekoruri/20140410/heartbleedrisk



なるほどφ(゚Д゚ )フムフム…

インターネット通信はさっぱりですわ。。

Subversionで一つ前との差分を調べたい

http://d.hatena.ne.jp/yoya/20130714/svn

svn diff PREV:HEAD

でいけました。


なるほどなるほど。


追記:
私の手元だと一つ前ではなくて、最初のファイルと比較している...???

Instruments

メモリリークチェックに使ってみました。

便利だけど、ふつうに使ってるアプリケーションのメモリリーク多すぎません?



江添さんのブログによるとgccに--ffast-mathというオプションがあるらしい。
浮動小数点数同士の演算を
多少の誤差を無視して高速化するオプションらしい。

メモc⌒っ゚д゚)っφ メモメモ...

qsubに引数

スクリプトのinputのファイル部分を引数として渡したかったのですが

qsub -v MYARG=/home/myname/inputfile hoge.sh


とすることで成功。

前はこれができなかったので、ファイルのパターンだけシェルスクリプト生成してたなぁ...(遠い目

追記:
複数の場合はコンマ区切りではダメだったので
qsub -v MYARG1=/home/myname/inputfile -v MYARG2=/home/myname/outputfile hoge.sh
のような感じでok。

bashでランダムな値

bashでランダムな値を得る際には

RANDOMという変数を参照すれば良い。
この値に代入を加えたりするとまたいろいろ変わってくるらしいですが。

Pubpeer

いろいろとSTAP細胞が問題になっていますが、

その騒動の発端となったPubpeerというソーシャルメディア、
検索に引っかかってくるので名前ぐらいは知っていましたが
研究者が匿名で論文にコメントするというサイトなのですね。

まぁコメント内容で多少バレることもありそうですけど(笑)


http://internetcom.jp/webtech/20140219/6.html


確かに学生なんかが偉い先生の論文に口を出したらその後のキャリアパスに影響が出るというのは十分に考えられます。

ただその分、匿名にすると根拠や、それこそねつ造による誹謗中傷なんかも起こってくるんじゃないかと。


まぁさすがに信憑性の高い内容でないと今回のように問題になるまではいかないと思いますがね。

postgreSQL

sudoしているのにリダイレクトに失敗する

リダイレクトはsudoであるとみなされず、前にあるコマンドだけスーパーユーザーになるらしい。

ので、teeコマンドで

sudo tee ファイル名

とすると標準出力をファイルにも書き出してくれる。


ついでにteeコマンドの由来を調べていたら

データの流れがTの字だから
http://www.am.ics.keio.ac.jp/parthenon/unix-term-dic.html

という記述が。



データの流れが....Tの字とは....????




なんでこんなことをしているかというとぽすぐれをlocalで走らせようとしているのでした。

どうもよくわかんないなー


sqliteを始める

sql系のデータベースが使えないとのちのち不便かなと思ったので、
sqlite3からはじめてみることにしました。



まず起動 >sqlite3
もしくはデータベースファイルがある場合は
>sqlite3 hogehoge.db

で起動


そして終了 >.quit
>.exit
で終了するらしい。

命令を出すときには最後にセミコロン。



テーブルをつくってみる >create table sample(one varchar(1));
varcharは本来なら文字数制限になるらしいですが、sqliteだと制限は課さないらしいので文字列として認識されるだけ。 textとかintegerとかでもOk。
複数のときは one varchar(1), two integerで通った。


insert >insert into sample values('a');
とってくる >select * from sample; >a ←出力
複数だと|で区切られて出てくる。
なるほど。 intoなんかをわざわざ書かせるということは、その辺にvariationがありそうなので もう少しどんな関数があるのか調べてみます( ^,_ゝ^)




追記:
S論が無事に終わりました。
今はいろいろ書類を揃えるのと、早く論文が出せるようにこれからの方向をきちんと考えておこうと思います。

今年中には一本論文かけますように...!


複数ファイルのbibtex

\usepackage{natbib}
\bibliographystyle{hogehoge}


\bibliography{ bibfile1 }


という風に単独の場合書きますが、複数ファイルの場合は

\bibliography{ bibfile1, bibfile2 }

と書くらしいので、これをやってみたら

white space in argument

というerrorが出ました。



頭をひねること数分、
自然にコンマのあとにスペースを入れていたことに気付いたので、

\bibliography{bibfile1,bibfile2}

と打ち直して無事成功しました( ^ω^ )