yukke::note

technical note

ランダムな塩基配列をつくる

長さは20-merで、ATGCの4文字を0-3の整数に割り当てておいて、あとは乱数を引いてdictionaryにアクセスする。 簡単で多分早い(はず)。random.randint(a, b)は、a以上b以下なのでbを含む。numpyとは異なるので注意されたし。

miRBaseのID変換

miRBase miRBase (http://www.mirbase.org/)は、microRNAのおそらく世界でもっとも使われているデータベース。さまざまな生物種のmiRNAについて、そのアノテーションや配列などの情報がのっている。 HTSeq HTSeqは、DESeqなど発現解析をするさいにraw read c…

ggplot2のプロットをできるだけ共通化したい

小さな問題 ggplot2の場合であるがplot系の関数の使われ方として、おなじデータにたいして、異なるスケールで、ラベルを変えて、色を変えて、、と幾つかのバージョンのplotを作りたいことは多々ある。こういうのは、g.1 <- ggplot(...)、g.2 <- ggplot(...)…

emacs+pyflakes+flymakeでpythonの構文チェックを勝手にしてもらう

リアルタイムに構文チェックしたい flymakeについては、flymake (いままでこれ無しでどうやってプログラム書いてたんだろう) - にゃあさんの戯言日記 ここを参考にされたし。emacsで書いてる傍から、リアルタイムに構文チェックが走るというやつ。メジャーな…

networkxでグラフを描画するとmatplotlibのエラーでラベルが表示できない

まえがき networkxというグラフ理論を扱うpythonのライブラリがある。networkxのグラフオブジェクトは、networkx.draw_networkx_nodes()やnetworkx.draw_networkx_edges()などのメソッドでグラフ構造を可視化することができる。 import matplotlib.pylab as …

Upgrading to emacs-24.4 from 21.X, threw a "Symbol's function definition is void" error

問題 emacs-21.Xを24.4 (current version)にhomebrew経由でアップグレードした時に、Symbol's function definition is void:package-desc-versというエラーがでて困った。package.elは、emacsの設定ファイルをマネージメントするやつで、確か24.4から標準で…

ノートパソコン.new

Macbook Pro 15 inch (retina)が届いた。メリットは画面が綺麗で早い、デメリットは重いです。 あと、クリーンな環境で必要なものを手作業で入れていったけど、2015年を目前にして、人類がzshやemacsの設定ファイルをちまちま移動させたり、直したりしている…

関数をコマンドラインツールとして実行するpythonライブラリcommandrのご紹介

commandrのご紹介 最近みつけた便利なpythonライブラリ "commandr"というライブラリがあります。インストールはpip install commandrで入ります。このライブラリは、適当につくったpythonの関数に、@commandでデコレートすると、定義した関数がコマンドライ…

Pythonでもperlのdie()を使いたい

ので、以下のような関数を定義しておきます。 die("Error: test")を適当なところに挟み込んで実行すれば、 プロンプトに、Error: test at main.py line 1.などとなりますね。 上記の関数は、(1) エラーメッセージ、(2) 実行ファイル名 (3) 呼び出し元の行数…

/usr/bin/lessでもファイルをカラーでprettyにprintしたい

問題 pagerならlvでもlessでもなんでもよいが、ソースコードや構造化されたファイル形式 (XMLやCSVなど)は、白黒よりもattributeやvalue、stringかintによって色が代わって表示されると中身を把握しやすい。 しかしながら、標準のlessやlvにさまざまな形式に…

sshfsでMacにリモートサーバをマウントする

問題 普段の研究は、計算資源の問題もあり(お手元のiMacではとても計算できない)sshで接続したunix計算サーバ上で作業することが殆ど。コーディングをしたり、データ解析をする分にはまったくCUIの世界で完結しているので問題はないのだけれど、解析結果を…

go-lang + g-languageでスクレイピングしてみた

A Tour of Goを途中でやったはいいものの、入門したっきりでgoを結局全然勉強してなかったので、とりあえず簡単なスクレイピングをしてみようと思って書いた。g-links (http://www.g-language.org/wiki/glinks)というタンパク質や遺伝子に関連する多くの情報…

季節感のあるプロンプトを出す

目的 一日の殆どをターミナルで過ごすわれわれにとっては、便利なカスタマイズをいろいろする部分だと思う。シェルの設定や補完や色とか。今回は、プロンプトの話。季節感のあるプロンプトを出したいと思った。 季節とは 冬なので、♨温泉♨だと思う。 やり方 …

Unixで特定のプロセスだけを監視する

目的 特定のプロセスだけの状態を確認したかった。全部とか、特定のユーザーだけなら、htopやtopコマンドでみるのがインタラクティブでよい。ただ、これでは特定のプロセスだけに絞り込んでみれない(出来るなら教えてください......)。 やり方 watch --int…

Perlで相補鎖を返す関数を短く書く

DNAは、相補的塩基対形成という性質があって、AとG、TとCとしか水素結合を形成することは出来ない。つまり、ATCCという塩基の相方の塩基は必ずTCGGとなる。これを出来るだけ短く書きたい。 がんばったら、 で5行で、実質の処理をしているのは1行になる。うー…

githubのwikiエンジン"gollum"の導入と細かい設定

gollumの特徴、良いところなど Markdown, MediaWiki, Textileなど大抵の記法で書ける。 基本的にgitリポジトリ一つで完結しており、MySQLなどのDBが不要で、簡単にprivate wikiを立ち上げられる。 セットアップが非常に楽。 gitで動いているので、バージョン…

タイムトラッキングツールTogglの結果をR+ggplot2で可視化してみる

最近、Togglというサービスを使っている。Togglはタイムトラッキングツールみたいな感じで、何にどれだけの時間を使っているのかを記録するサービス。例えば、勉強した時間とか本を読んでいる時間とか、そういうのをログに残すことができて、励みになったり…

config file in R

$HOME/.Rprofileに書く。 .Last()と.First()は、起動時に読み込まれる特殊?な関数名。 起動オプションで、R --quietとすると、startup messageがoffになる。 R>> sessionInfo() R version 2.15.3 (2013-03-01) Platform: x86_64-unknown-linux-gnu (64-bit)…

perlでgnuplotの図を書く

Chat::Gnuplotを使う。オプションをハッシュで渡していくの感じで書きやすい。

pythonことはじめ

ちゃんとオブジェクト指向プログラミングを勉強したいなと思ったいたので、pythonを新しくやろうかなと思っている。rubyよりはpython書きたいっていう感じ。bioinformatics向けのチュートリアルやオライリー本もそこそこ充実している。それに、numpy、scipy…

perlのGetopt::Longを使った感想

perlのデフォルトのモジュールには、Getopt::Longが入っており、コマンドラインの引数処理を楽に書くことができるようになっている。 これまでは、自前でオプション名や引数の型チェックなどを書いていたが、いい加減べんりで楽な方法を使ってみることにした…

あたらしいMacBook Air'11

MacBook Air'11がお家にきた。Snow leopardから何歩かジャンプしてMountain lionへアップグレードもした。いろいろ便利になってるなーすごい。。iCloudとかすごいし、インターフェースも変わってる。OSのアップグレードに腰が重くなったのは年だろうか。 入…

Rのhist()

R

Rで、 data <- read.table("data.txt") hist(data, breaks=seq(1,100, 20), col='red') みたいにhist()でヒストグラムをよく書く。 このとき、binのなかに含まれるデータの個数が知りたかったりする。 in_data <- hist(data) とすると、 $breaks [1] 0 10 20…

はじめました

Markdownでブログ書きたくてとりあえず作った。 #!/usr/bin/env perl use strict; use warnings; my %blog = ( title => 'yukke::note', favorite => 'らーめん' ); while ( 1 ) { say 'I love Hatena::One!!!'; } 技術系のメモとかそういうのは全部こっちに…