タグ

ブックマーク / blog.kzfmix.com (15)

  • RでPCAとICA

    出典がちょっとどこだかわすれたが。 PCA 分散の大きな成分を抽出 ICA 非正規性を最大にする成分を抽出 独立って、直交しないといけないんじゃないかなんて思っていたがこの資料みて納得。 その上で主成分分析、独立成分分析を読んだらさくっと理解できた。 > data("iris") > a <- prcomp(iris[1:4]) >biplot() > library("fastICA") > data("iris") > b <- fastICA(iris[1:4],2) > plot(b$S) ある種のデータを二次元のプロットとして見たい場合、PCAだと変に鎖上になってしまうものもICAだともうちょっと広がって見えてくれるかな。単にマップして見たいってだけだったらこういうやり方でもいいか。 あとPCAとかICAで次元を圧縮してから混合ガウス分布みたいなのでクラスタリングするってのはダメ

    RでPCAとICA
  • pubchemのクラスタリングの結果をcytoscapeで見てみた

    pubchemはクラスタリングの結果をgml形式でダウンロードできるので、それをcytoscapeで読み込んで解析することができる。早速データをとってくる。benzothioleで検索すると大体3000件くらいヒットするのでこれをクラスタリングしたものをgmlでダウンロードして、cytoscapeで読み込んでみた。 適当に描かせて眺めてみる。なんかネットワークっぽくなってますの。 さらに、ズームしてみる。 うーん、クラスタリングの結果を見てもちょっと面白くない。むしろ部分構造(MCS:Maximum Common Substructure)から構築したネットワークのほうがわかりやすいだろうな。 あとは、合成の時系列でネットワークをつくればいいと思うが、その場合、元々参考にした化合物の構造への情報をケミストから聞かなきゃいけないのでちょっとめんどいなぁ。 ということはpatentか?あれは先

    pubchemのクラスタリングの結果をcytoscapeで見てみた
  • Nonnegative matrix factorization(NMF)でconsensus clustering

    NMFを追っかけてたらMetagenes and molecular pattern discovery using matrix factorizationという論文を見つけたので、週末はこの論文を読みながら色々やってみた。NMFの便利なところは元の特徴(この論文の場合は遺伝子発現量)からより少ない任意の特徴量(論文中ではmetagene)に変換できるところであり、さらにそのままクラスターの分割に利用できる。 たとえば2つのmetageneで表現した場合、より発現量の大きいmetageneで分割すれば2つのクラスに分けられる。(QSARだったらdescriptorからmeta discriptorが導かれてそれに基づいてクラス分類ができるでしょう) 続いて、重要なのがクラスの安定性である。要するに最適なクラスタの数はいくつなのかということである。これに対して、この論文ではConsensu

    Nonnegative matrix factorization(NMF)でconsensus clustering
  • openbabelで分子を構築するサンプル

    pythonラッパーで。openbabelで気をつけないといけないところはAtomのインデックスは1から始まるのに対しBondのインデックスは0からはじまる。 from openbabel import * mol = OBMol() a = mol.NewAtom() a.SetAtomicNum(6) a.SetVector(0.0, 1.0, 2.0) b = mol.NewAtom() b.SetAtomicNum(6) b.SetVector(1.0, 2.0, 2.0) mol.AddBond(1, 2, 2) mol.SetTitle("Ethene") obConversion = OBConversion() obConversion.SetOutFormat("smi") smiles_string = obConversion.WriteString(mol) pri

    openbabelで分子を構築するサンプル
  • macbookにscipy,ipython,matplotlibなどをインストール

    portで。gccのコンパイルに結構時間がかかった(3時間くらい?)。途中で放って寝たので知らんけど。 sudo port install py-f2py sudo port install py25-numpy sudo port install py25-scipy sudo port install py25-matplotlib +tkinter sudo port install py25-ipython あと、scipy,matplotlibのインストールが途中でこけるのだけど、再度同じコマンドを打てばいいらしい。

    macbookにscipy,ipython,matplotlibなどをインストール
  • opmlからRSSを抜き出す

    LDRのOPMLからRSSのURLを抜き出す from xml.dom.minidom import parse, parseString urls = [] dom = parse("export.xml") for outline in dom.getElementsByTagName("outline"): url = outline.getAttribute("xmlUrl") if url: urls.append(url) 楽ちん

    opmlからRSSを抜き出す
  • TopCoderをやってみたヨ

    c++を学ぶのによさげなのでTopCoderのpracticeを解いていたんだけど、ちょうど深夜1時にSRM402があったので、ふと参戦してみようと思った。 で、参戦した。 250点と500点問題を解いた。250点問題は問題の意図を間違えていて、あわてて修正したのでかなりロスった。500はやけに簡単ダナァと思ったら、ダブルデータという落とし穴があった(僕を含め、何人かはこれで撃墜されてた)。 チャレンジタイムとかいう、バグリそうなテストデータを突っ込んでみようタイムがやたらと楽しい。見てただけだけど、ヒトのコードを見ながら色々考えるので、この時間は結構勉強になるな。 初参加の僕は真っ先に標的にされてあっさり500点問題を撃墜されたけど、いわゆる念の洗礼というやつか。 それから今回、同じ組には、初参加は僕の他に3人いたけど、そのうち2人は1問も解いてなかった。みんなそんな感じで参加しにくるの

    TopCoderをやってみたヨ
  • Rで学ぶクラスタ解析

    ケモインフォマティクス向けのRプログラミングとクラスタリングの書籍としてもよい。混合分布モデルでHTSデータ分けたりとか、スペクトラルクラスタリング、ファジークラスタリングを化合物クラスタリングに使ってみたくなった。 5章まで基礎的な内容で無難なんだけど、6章からが面白い。 混合分布モデル スペクトラルクラスタリング 次元縮約 ファジークラスタリング 統計やるために「対話的っぽいツールとしてのR」を使いましょうという内容ではなくて、スクリプト言語としてRを使ったりとか、クラスタリングのためのアルゴリズムを実装していくという内容。章の最後に載っているプログラミングメモがお役立ち。「はじめに」にRはベクトルと行列の演算が質と言い切っているように効率的なプログラミングのためにどう書くといいかとかかなり参考になった。

    Rで学ぶクラスタ解析
  • MooseでChain of Responsibilityパターン

    package Trouble; use Moose; has number => ( isa => 'Str', is => 'ro'); sub getNumber { my $self = shift; return $self->number; } sub toString { my $self = shift; return "[Trouble " . $self->number . "]"; } package Support; use Moose::Role; use Perl6::Say; requires 'resolve'; has name => (isa => 'Str', is => 'rw', required => 1); has next => (isa => 'Support', is => 'rw'); sub setNext { my ($self,

    MooseでChain of Responsibilityパターン
  • MooseでVisitorパターン

    package Visitor; use Moose::Role; requires 'visit'; package ListVisitor; use Moose; use Perl6::Say; with 'Visitor'; sub visit { my ($self, $entry) = @_; my $currentdir = ""; if(ref($entry) eq "File"){ say $currentdir . "/" . $entry->toString(); } elsif (ref($entry) eq "Directory"){ say $currentdir . "/" . $entry->toString(); my $savedir = $currentdir; $currentdir = $currentdir . "/" . $entry->getN

    MooseでVisitorパターン
  • ESSモードの設定(ちょっとだけ)

    Emacs/cperl-mode の設定 ( ちょっとだけ )が使いやすい。 というわけで、ESSでも似たようなことをやりたかったので自分の.emacsに追加。 (add-hook 'ess-mode-hook '(lambda () (local-set-key "\C-j" (lambda () (interactive)(insert "<-"))) )) これでCtrl-jで<-が挿入されるので便利。

    ESSモードの設定(ちょっとだけ)
  • Bioinformatics Programming in Python

    Bioinformatics Programming in Python: A Practical Course for Beginners という書籍が出るらしい。

    Bioinformatics Programming in Python
  • MeadowでESSを使う

    使ったことないってのが謎なんだけど、Rはvanillaでスクリプトとして流すかRSOAPとかでしか使ってなかったので、あんま対話環境にこだわらなかったので。 Meadow で R-modeを参考にしてインストールしたけど、Rの起動画面が文字化け。 ;;ESS (load "C:/ess-5.3.6/lisp/ess-site") (require 'ess-site) (setq auto-mode-alist (cons (cons "\\.r$" 'R-mode) auto-mode-alist)) (setq inferior-R-program-name "C:/Program Files/R/R-2.6.1/bin/Rterm.exe") (setq ess-ask-for-ess-directory nil) (setq ess-pre-run-hook '((lambda (

    MeadowでESSを使う
  • WindowsでRPyを使う

    普段はLinuxマシンでRPyを使うのだけど、手元のLet's NoteR4でも使いたいので。 R2.6.1 Python2.5.1 RPy1.0.1 pywin32 build210 pywinはeasy_installで。普通にダウンロードしてクリックからのインストールでもいいような。 easy_install pywin32 RPyはrpy-1.0.1-R-1.3.0-to-2.6.1-Numpy-win32-py2.5.exeを落としてきて入れた。 あと環境変数。R_HOMEがねーとかwin32allがimport出来ないとかいうエラーは環境変数の設定のせい。次の二つを環境変数Pathにセットしておくととりあえず大丈夫。 C:\Program Files\R\R-2.6.1\bin C:\Python25\Lib\site-packages\pywin32-210-py2.5-wi

    WindowsでRPyを使う
    kozo-ni
    kozo-ni 2007/12/20
    R python
  • キーボードの-が遠すぎ

    マイナスたたくとき右手の小指を少し伸ばすので打ちまくると指がつりそうになることがあるんだけど、単にストロークポジションが悪いだけなのか?なんか指が寝気味なだけの気もするが、、、

    キーボードの-が遠すぎ
  • 1