Standard ML
ML(MetaLanguage)で遊び始めた.以前少しだけ触ったOCamlではなく,何となくStandard MLにしてみた.普及の度合いが違うのか,単にキーワードの問題か,OCamlに比べてwebで情報が見つけにくい.

Standard ML of New Jersey (SML/NJ)
http://www.smlnj.org/
基本的にこれをledit経由で使っている.

mlton
http://mlton.org/
ネイティブコンパイラ.The Computer Language Benchmarks Game(http://shootout.alioth.debian.org/)で好成績をあげている.とくにオプションを与えなくても最適化の度合いが高い.

SML#
http://www.pllab.riec.tohoku.ac.jp/smlsharp/ja/
国産.来年にはネイティブコードを吐くようになる予定らしい.口頭発表の資料が楽しい.

Comparing Objective Caml and Standard ML
http://www.cs.berkeley.edu/~adamc/mlcomp/
"practical" languageと"pure" languageを示すアイコンが面白い.

Standard ML and Objective Caml, Side by Side
http://www.ps.uni-sb.de/~rossberg/SMLvsOcaml.html

[PR]
# by edogawadai_bio | 2007-04-24 00:45 | comp
Mercurial
Mercurialというリビジョン管理ツールの存在を知った.Pythonで書かれている,マスターやブランチという主従の概念がない(システム上は対等),データベース(とくにRDBMSとか)やwebサーバの類に依存しない,などが気に入ったので,自分一人で取り組んでいるプログラムで試用を始めた.

コマンド名がhgなのがちょっと面白い.
しかしながら,公式ページのURLはなぜか「セレン」だ(たまたまかもしれない).
http://www.selenic.com/mercurial/wiki/index.cgi

公式ページのwikiには日本語チュートリアルもある.
http://www.selenic.com/mercurial/wiki/index.cgi/JapaneseTutorial

これまで個人用途でRCSやCVSを試したことがあったものの,面倒になり手動でディレクトリごとコピーするという原始的な方法に戻ってきていたし,また,共同開発でsubversionが使われている場合もどうもしっくりこなかった.性格的なものかと思う.Mercurialの場合,ファイルの日付がhg cloneで変わってしまうのが嫌だが,とりあえず使い続けてみる.シンボリックリンクに対応してない(?)というのも,具体的に調べてないが気にかかっている.

Mercurial以外の"分散型SCM"として,Haskellで書かれているというdarcsもファンが多そうだった.
darcs: http://darcs.net/
[PR]
# by edogawadai_bio | 2007-04-16 05:17 | comp
SVI-wiki, Nyquist Calculator
ImageJ mailing listにて
SVI-wiki on 3D microscopy, deconvolution, visualization and analysis
http://support.svi.nl/wiki/
が紹介されていた.

生物系顕微鏡画像処理,例えば最尤推定によるデコンボリューション法などを行なうHuygensという有償ソフトウェア(6000$くらい? 国内代理店もある)の宣伝用wikiだが,蛍光ビーズを用いた点分布関数(PSF)の測定,顕微鏡の種類と解像度,デコンボリューションの説明などがわかりやすく書かれている.トラブルシューティングなどの細かな話は製品を購入しサポート契約した人しかアクセスできない.

中でもNyquist Calculatorが面白い.顕微鏡の種類(widefield, confocal, Nipkow, 4pi)と開口数,励起光波長,蛍光波長,ピンホール径,屈折率などのパラメタを入力すると,理論的PSFとNyquist critical sampling distance(光学的分解能から定まるサンプリング間隔の限界.それ以上細かく撮ってもあまり意味がなくなるとされる)が求められる.レンズ-スライドガラス間の屈折率と培地の屈折率がそれぞれ入力できるようになっていて,Refractive Index-MismatchによるPSFの歪みも予想できる.

Nyquist CalculatorではNipkow Disk Microscope(横河CSUシリーズなどの「スピニングディスク」「ニポウ板」を使った共焦点)は,従来の共焦点顕微鏡と異なるモデルで扱われるようだ.ピンホール径(pinhole radius)だけでなく,ピンホール間の距離(pinhole distance)がパラメタとして追加される.実際,Nipkow板式であるCSU10を使って得た細胞像は,細胞の概形くらいの低周波数成分(従来の共焦点像では見られない)を含んでおり,また,PSFを測定すると隣接するピンホールの影響が明らかである.

また,どれくらいユーザーがいるのかわからないが,4Pi顕微鏡にも対応していて独特のPSF形状が算出される.
[PR]
# by edogawadai_bio | 2007-04-11 01:51 | img
バリケード
研究室の計算機室にパーティションを設置しようと考える.
http://direct.sanwa.co.jp/contents/sp/partition/index.html
http://www.verysoho.com/verysoho/item/detail/0000124.html

結局,ホワイトボードとダンボールで代用する.
[PR]
# by edogawadai_bio | 2007-04-06 07:56 | comp
ImageJとPIL間のTIFFファイルの互換性
ImageJとPIL間のTIFFファイルの互換性を調べる.

ImageJはTIFFファイルの保存を io/TiffEncoder.java で行なう.
ImageJ 1.38dにおいては,常にbig-endian("MM")であり,データ領域の開始は
0x300(768)bytesである(ただしこれはTIFF仕様で定まっているわけではない).

>>> Image.open("bilevel-stk.tif").mode => "L" # 0|255 (but stored as 8bits)
>>> Image.open("byte-stk.tif").mode => "L" # 8bits unsigned int
>>> Image.open("color256-stk.tif").mode => "P" # 8bits indexed-color

これらは,いずれもgetpixel((x,y))で0〜255の値を返す.

16bits unsigned intの画像については,
mode => "I;16"
となるが,getpixel((x,y))では正しい輝度が得られない.byte orderを逆にするとImageJでの値と同じ値になる.PILがbig-endianの16bits/pixelをlittle endianだとして扱ってしまうようだ.
[PR]
# by edogawadai_bio | 2007-04-06 07:48 | img
PILでファイルが自動的に書きかわる?
PIL(Python Image Library)のImage.open()により得たImageオブジェクトimgをimg.putpixel()やimg.fromstring()で変更した場合,img.save()をしていなくても,メモリ上のインスタンスだけでなくファイル自体が書きかわってしまうという現象に遭った.このときファイル修正時刻は更新されない.PILがmemory mappingによるファイルアクセスをしていることに関係があるかもしれない.
PILの仕様なのか特定バージョン(1.1.5)のバグなのかは不明.

なお,
img = Image.open(FILENAME, "r")
のようにreadonlyフラグを付けておいても同様である.
ただしファイルへの書き込みアクセス権が無い場合には起きない.

img.copy()により複製しておくことで回避する.ただし,sequeuceファイル(ImageJでstack画像をTIFFで保存した場合に得られる)の場合,current frameしかimg.copy()では複製してくれない.
[PR]
# by edogawadai_bio | 2007-04-06 07:46 | img
memo
Journal

Computer Methods & Programs in Biomedicine
http://intl.elsevierhealth.com/journals/cmpb/

Source Code for Biology and Medicine
http://www.scfbm.org/home/

Image Processing Libraries

OpenCV (http://sourceforge.net/projects/opencvlibrary/)
Gimp (http://www.gimp.org)
Vigra (http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/)
Vips (http://www.vips.ecs.soton.ac.uk/)
VXL (http://vxl.sourceforge.net/)
CImg (http://cimg.sourceforge.net/)
Gegl (http://www.gegl.org/, http://pippin.gimp.org/gegl/)
ImageMagick/GraphicsMagick (http://imagemagick.org/, http://www.graphicsmagick.org/)
GIL (http://opensource.adobe.com/gil/)
CxImage (http://www.codeproject.com/bitmap/cximage.asp)
FreeImage (http://freeimage.sourceforge.net/)

Application

EDTIPS: 医用画像に特化したWindows用2D/3Dレンダラ
http://www.cc.nih.gov/drd/etdips.html

Sarensix.ビデオ画像からの超解像ツール.有償.
http://www.pyramidvision.com/products/sarensix/index.asp

ImageJ Plugins

Extended Depth of Field
XYZデータからの合焦点像作成.立体物の明視野観察で利用することが多いようだ.蛍光像ではもっと簡単な最大輝度投影や平均輝度投影が一般的だが,本手法を使ってみると思わぬ効果が得られるかもしれない.
http://bigwww.epfl.ch/demo/edf/
Forster et al. (2004) Microsc Res Tech 65: 33-42.

active contour
LiveWire
http://ivussnakes.sourceforge.net/

deconvolution plugins
DeconvolutionJ from Nick Linnenbrügger (last update 2002)
IterativeDeconvolve3D from Bob Dougherty at Optinav (last update 2005,)
3D Deconvolution by Pierre Besson at BIG

Bio-Formats.顕微鏡関連各種画像フォーマット用Javaライブラリ
http://www.loci.wisc.edu/ome/formats.html

MTrackJ.Manual Object Tracking
http://www.imagescience.org/meijering/software/mtrackj/

Key words
Circular Statistics
非線形最小自乗法のLevenberg-Marquardt法

Others

Graphviz - Graph Visualization Software
http://www.graphviz.org/Gallery.php

Ludl社製コントローラのソフトウェア制御のための通信仕様書等
http://www.ludl.com/StartSupport.html

EastRGB.各種色空間相互の変換式/変換コード
http://www.easyrgb.com/math.php

SDLdoc 日本語翻訳プロジェクト
http://zinnia.dyndns.org/~cvsweb/sdldoc-jp/

Pygame入門
http://www.halb-katze.jp/pygt/index.html

初心者のためのpygameガイド(邦訳)
http://www.unixuser.org/~euske/doc/pygame/newbieguide-j.html

画像特徴点の提案と,それに基づくパノラマ写真の合成
SIFT (Scale Invariant Feature Transform) Keypoint Detector
http://www.cs.ubc.ca/~lowe/keypoints/
http://www.cs.ubc.ca/~mbrown/panorama/panorama.html

コーナー検出のための各種画像特徴点
http://en.wikipedia.org/wiki/Corner_detection

Open Source Web Design (XHTMLとCSS)
http://www.oswd.org/

2値ラスター画像のベクター化
http://potrace.sourceforge.net/

ベイズウィキ
http://hawaii.aist-nara.ac.jp/~shige-o/pukiwiki/index.php?FrontPage

Octave
http://www.al.cs.kobe-u.ac.jp/~inamoto/unix-tools/useful/octave/
http://www.rbt.his.fukui-u.ac.jp/~naniwa/pub/octave.html
[PR]
# by edogawadai_bio | 2007-04-06 07:29 | img
MoinMoin
個人的なメモ用にwikiを始めてみる.これまでwikiを編集したこともないので,どのwikiクローンを使おうか選ぼうにも違いがよくわからない.日本語のサイトでよく使われているwikiクローンとしては,FreeStyleWiki(perl),PukiWiki(PHP),Hiki(ruby)などがあるようだが,Pythonが好きなのでMoinMoinにした.PloneのようなCMSの類を使うことも考えたが,どうも汎用的・統一的なwebアプリには砂上の楼閣のような危うさを感じ,気が引ける.そもそもメモ書き程度には不釣合いなのかもしれないが….

日本語の情報は少ない.

MoinMoin付属のヘルプ文書の邦訳
http://lowlife.jp/cgi-bin/moin.cgi/HelpForBeginners

MoinMoinの紹介
http://sakito.jp/moin/moin.cgi

Plamo上でのMoinMoinの設置
http://ww2.friction.ddo.jp/~masatsu/mt/archives/2005/03/moinmoin.html

MoinMoinのインストール
http://fleur.hio.jp/wiki/wiki.cgi?page=%B3%C6%BC%EFWiki%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB#p3

E-Cellプロジェクトの頁はMoinMoinからPloneに移行したみたいだ.
[PR]
# by edogawadai_bio | 2007-04-06 07:28 | comp
Javaソースの整形
ImageJのソースファイルは200以上に及ぶが,多くの人々が開発に携わってきたからか,インデントや改行コードがバラバラである.改行コードが0x0dの場合はgrepで困ったりする.プラグインを書くときはしょっちゅう参照することになるが,やはり読みにくいので,整形することにした.Eclipseなどには備わっているようだが使い慣れないので,indentのJava版のようなコマンドラインで動くものを探してみた.

Artistic Style
http://astyle.sourceforge.net/
日本語訳: http://www.6809.net/tenk/html/lib/doc/astyle_j.htm
GPL

Jacobe
http://www.tiobe.com/jacobe.htm
有償版と無償版がある.

関係ないけど見つけたもの.
Cソース用の静的解析ツール
http://cscope.sourceforge.net/
[PR]
# by edogawadai_bio | 2007-01-04 06:22 | comp
ImageJ開発本
ドイツ語のImageJ開発本 Digitale Bildverarbeitung Eine Einführung mit Java und ImageJ
http://www.imagingbook.com/index.php?id=14
英訳がAmazonで予約可能になっていた.
http://www.amazon.com/Digital-Image-Processing-Wilhelm-Burger/dp/1846283795
来年3月出版予定(少なくとも1年くらい延びている).Amazon側でのタイトルはDigital Image Processing in Javaとのことで,"and ImageJ"が抜けている.
[PR]
# by edogawadai_bio | 2006-12-21 02:30 | img
memo
Dive Into Python
http://diveintopython.org/

Numerical Methods In Engineering With Python
http://www.amazon.co.jp/gp/product/0521852870/ref=sib_rdr_dp/503-5815722-4089567

Python Scripting for Computational (Texts in Computational Science and Engineering)
http://www.amazon.co.jp/gp/product/3540294155/ref=sib_rdr_dp/503-5815722-4089567

十数種の画像処理ライブラリの紹介.全部フリー?
http://calcifer.valdyas.org/fading/index.cgi/software/image_libraries.comment

European Standards For Writing and Documenting Exchangeable Fortran 90 Code --- Version 1.1 の日本語訳
http://www.mri-jma.go.jp/Project/mrinpd/eurostand.html

Iba,H., deGaris,H., Sato,T.:"Numerical Approach to Genetic Programming for System Identification", J. Evolutionary Computation, vol.3, no.4, pp.417-452, 1996.

Iba,H., Mimura,A:"Inference of a gene regulatory network by means of interactive evolutionary computing", Information Sciences, vol.145,no.3-4, pp.225-236, 2002.

Paul,T.K., Iba,H.: "Gene selection for classification of cancers using probabilistic model building genetic algorithm", BioSystems, Vol.82, pp.208-225, Elsevier, 2005.

Kamio,S., Iba,H.: "Adaptation Technique for Integrating Genetic Programming and Reinforcement Learning for Real Robots", IEEE Transaction on Evolutionary Computation, vol.9, no.3, pp.318-333, 2005.

Nikolaev,N., Iba,H.: "Adaptive Learning of Polynomial Networks: Genetic Programming, Backpropagation And Bayesian Methods", Springer, 2006.

http://www.neurosci.aist.go.jp/ibisforest/index.php?FrontPage
朱鷺の杜Wiki.情報論的学習理論,計算論的学習理論,機械学習,統計,統計物理,データマイニング.
[PR]
# by edogawadai_bio | 2006-12-13 03:30 | comp
f2py
F2PY: Fortran to Python interface generator
http://cens.ioc.ee/projects/f2py2e/
をdebian/etchで試す.
Fortran90ソースをIntel Fortran Compiler 8.0でコンパイルし,Python2.4からモジュールとして呼び出すことができた.配列の受け渡しやコールバックは未テスト.

% f2py --fcompiler=intel -c -m foo foo.f90
自動的にgccとifortを実行して,コンパイルから共有オブジェクトファイルfoo.so(これをPythonはモジュールとして読み込む)まで作る.ifortはホームディレクトリに展開してあるが,PATHが通っているためか指定しなくても見つけてくれた.

% python
>>> import foo
>>> foo.bar(5)
25.0

など.

当初,f2pyによるモジュール作成時,以下のようにifortの段階でコマンドラインオプションのエラーで止まってしまっていた.

:
compiling Fortran sources
Fortran f77 compiler: /home/m/opt/intel/intel_fc_80/bin/ifort -72 -w90 -w95 -KPIC -cm -O3 -unroll -tpp7 -xB -xM -arch SSE2
Fortran f90 compiler: /home/m/opt/intel/intel_fc_80/bin/ifort -FR -KPIC -cm -O3 -unroll -tpp7 -xB -xM -arch SSE2
Fortran fix compiler: /home/m/opt/intel/intel_fc_80/bin/ifort -FI -KPIC -cm -O3 -unroll -tpp7 -xB -xM -arch SSE2
compile options: '-I/tmp/tmpXcGISQ/src.linux-i686-2.4 -I/usr/lib/python2.4/site-packages/numpy/core/include -I/usr/include/python2.4 -c'
ifort:f90: foo.f90
ifort: Command line warning: overriding '-xB' with '-xM'
ifort: Command line error: Unrecognized keyword 'SSE2' for option '-arch'
ifort: Command line warning: overriding '-xB' with '-xM'
ifort: Command line error: Unrecognized keyword 'SSE2' for option '-arch'
error: Command "/home/m/opt/intel/intel_fc_80/bin/ifort -FR -KPIC -cm -O3 -unroll -tpp7 -xB -xM -arch SSE2 -I/tmp/tmpXcGISQ/src.linux-i686-2.4
-I/usr/lib/python2.4/site-packages/numpy/core/include
-I/usr/include/python2.4 -c -c foo.f90 -o /tmp/tmpXcGISQ/foo.o" failed with exit status 1
Exit 1

このときのf2pyはpython-numpyパッケージに付属のもの(f2py version 2_3198)だったが,python-f2pyパッケージ(f2py version 2.45.241_1926)を導入したところ,問題なく動いた.なお,このときpython-numpyがremoveされ,python-scipyが導入された.この辺の開発状況はよくわからないが,debian/etchのパッケージとしてはpython-scipyがpython-numpyを包含もしくは上位互換なのだろうか…??
[PR]
# by edogawadai_bio | 2006-11-20 22:20 | comp
MySQL 圭
MySQLとPHPで作られたシステムを仕事で使う.
「圭」の字で終わる文字列処理でMySQLがエラーを出す.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '******', '********','311111111111111111111111111111111115','311111111111111111111' at line 1

調べてみたら
― ソ Ы 噂 浬 欺 圭 構 蚕 十 申 曾 箪 貼 能 表 暴 予 禄 兔 喀 媾 彌 拿 杤 歃 濬 畚 秉 綵 臀 藹 觸 軆 鐔 饅 鷭
は,MySQLが文字列末尾として扱うのが苦手らしい.Shift_JISで2バイト目に 0x5C が含まれる文字で,ASCIIコードの'\'と重なるからのようだ.とりあえず末尾に空白を加えることで場当たり的に対処した.

http://www.mysql.gr.jp/mysqlml/mysql/msg/6151
[PR]
# by edogawadai_bio | 2006-11-16 21:54 | comp
GPW-06 2日目
Bonanzaの保木さんの招待講演は,局面評価用の静的評価関数の設計を,最適制御理論の枠組みで行なったという話.学習に用いる棋譜データは6万局ぶんで,特徴空間は1万次元以上,計算時間はPCで3ヶ月とのこと.minimax探索の結果の勾配(評価関数のパラメタ空間に対する勾配)は,その探索における最善応手列(特徴空間の十分狭い範囲で一定と仮定)の末端局面に対する静的評価値の勾配と等しいことを利用して,「棋譜データを再現するための静的評価関数の学習」を「minimax探索の結果と棋譜データとの一致度(+安定化項)の最小化問題」に置き換える.特徴ベクトル更新の幅の調整は手動で,じょじょに小さくする.…という感じだったように思うが,理解できているか自信がない.次元の大きさが驚きだった.なお,収束していない特徴への対応や次元圧縮のために補間を用いることを提案されていた.
Bonanza のサイトの「おまけ」にて発表スライド(GPW 2006 発表資料)が PDF 形式で公開されている.

ポスター発表では,リカレントニューラルネットワークによる系列連想記憶を囲碁に用いようという話が面白かった.誤差逆伝播法や自己組織化マップなどの流行と対照的?に,古くから研究されているが応用はあまり進んでいないらしい.が,精神(とくに無意識,意識下)を連想記憶の連鎖としてモデル化するのは,フロイトの精神分析学を思い起こさせ,個人的には非常にしっくりくる.LispやAI分野の経験が豊富そうで,もう少し自分も勉強しておけば,その辺りについても貴重な話を聞くことができたかもしれないな,と思った.


萩谷先生のエッセイ.LISP の思い出.
http://nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/essay/omoide
[PR]
# by edogawadai_bio | 2006-11-11 23:59 | comp
GPW-06 1日目
http://minerva.cs.uec.ac.jp/~ta-ito/GPW06/top.htm
GPW-03以来,3年ぶりに箱根にやってきた.
夜のGPW杯は14チーム参加,と非常に盛況だった.
LAN対局は初めネットワークが安定せず,どうなることかと思われたが,固定IPアドレスの重複という問題が判明してからは,滞りなく快適に対局できた.
部屋の後ろの方では車座になってDSによる通信対戦が行なわていた.裏GPW杯,らしい.携帯ゲーム機を持ってきてる人があんなにいたのには驚いた.修学旅行のノリに似てるかもしれない.
風呂はちゃんとした温泉だった上,計算機が対局してるところを抜け出してきた甲斐あってか,一人でゆったりと浸かることができて,満足だった.
[PR]
# by edogawadai_bio | 2006-11-10 23:59 | comp
python
Numerical Analysis with Python
http://scipy.dip.jp/
日本語によるNumPyやSciPyなどの紹介.NumPyとSciPyが似たような名前のが幾つかあって混乱するが,今はこの2つに集約しているのだろうか??? FORTRANで書かれたパッケージのwrapperが多いらしい.

F2PY: Fortran to Python interface generator

http://cens.ioc.ee/projects/f2py2e/
gcc 2.95.x, 3.xおよびIntel Fortran Compiler用のFortran77/90コードを,Pythonから拡張モジュールとして呼び出すためのインタフェイス生成器だと思う.Fortran90規格については完全対応ではないらしい.Debian/etchでのパッケージ名は"python-f2py".

IPython

http://ipython.scipy.org/
cdやpwdのようなshellっぽいコマンド,prefix '!' によるコマンド実行,タブ補完,オブジェクトインスペクション,キーワードのカラーハイライト,履歴の拡張など多くの工夫がされたインタラクティブシェル.ログインシェルを乗り換えるところまではいかなくても(何か不都合がありそうだ),Pythonソースをいじってないときでもしばらく常用してみようと思う.
Debian/etchでのパッケージ名は"ipython".Windows/Python2.4.*環境では,
ctypes
http://starship.python.net/crew/theller/ctypes/
および
http://ipython.scipy.org/dist/
からpyreadline-1.3.win32.exeとipython-0.7.2.win32.exeを導入した.Windowsではcygwinのbashに今ひとつ慣れることができないでいたので,とくにちょうどいいかもしれない.
[PR]
# by edogawadai_bio | 2006-11-07 05:23 | comp
Python for Windows extensions
pythonからExcelに解析結果を自動的に流し込みたい,ということで
Python for Windows extensions
http://sourceforge.net/projects/pywin32/
を使うことにした.
http://www.hlj.com/~tanoue/Python/Wdw/wpy1.html
でも触れられているように,二度目以降,Excelのシート部分の描画が妙だ.PythonインタプリタやExcelを終了させても同様.COMについて調べるのはあまり気乗りしない….
[PR]
# by edogawadai_bio | 2006-11-07 04:21 | comp
最近買った本
須崎亮太郎, 萩野友隆, 内村創 (2004) フルスクラッチによるグラフィックスプログラミング入門, 秀和システム
ジュンク堂池袋店のグラフィックス・画像処理コーナーの壁に挿絵キャラを使った広告(たしか「ピクセルの壁を超える!」「DCTがどうのこうの」とか)があって,見事につられて買ってしまった.Windows上で,DirectXやGPU組み込みの描画命令を使わずに二次元グラフィックスや画像処理をやろうというもの.よってbitblt,線や三角形の描画(ただしBresenham法はない),アンチエイリアシングなどの話題に詳しい.一方,画像処理関係はHDR(high dynamic range)やオプティカルフロー(http://www.hirax.net/の動画像処理の例が紹介されてた…),ウェーブレット圧縮等の解説と実装が簡潔に示されている.

伊庭斉志 (2005) 進化論的計算手法, オーム社
遺伝的アルゴリズム(GA),遺伝的プログラミング(GP)の本.この人は両テーマで何冊も書いているが,この本ではもう少し広く,No Free Lunch Theorem (NFL),Estimation of Distribution Algorithm (EDA),Ant Colony Optimization (ACO),Particle Swarm Optimization (PSO, 「みじんこ探索」という訳は面白い)についてもそれぞれ章を割いている.

田中和之 (2006) 確率モデルによる画像処理技術入門, 森北出版
確率伝播法を画像処理(主にノイズ除去)に用いる話.画像処理技術として利用するというよりは,ベイズ統計,統計力学,ベイジアンネットワークの解説や,その上での画像のモデル化といったところに重きが置かれている.
http://www.smapip.is.tohoku.ac.jp/~kazu/SMAPIP-KazuKazu/
イジングモデルで温度を下げていったときにあらわれる模様,例えば
http://jc.maxwell.jp/statisticalmechanics/ising2D/index.html
は,とても「自然」な感じがする.画像処理に使った場合,そういう自然な見た目のアーティファクトが紛れ込んでしまうのではないか,さらにそれに人間が気づくことができないのではないか,というぼんやりした不安がある.

トランジスタ技術増刊 ロボットの目をつくる (2006) CQ出版社
CCD・CMOSカメラの選択と接続,リアルタイム処理のための画像処理ボード,Video4Linux,OpenCV,歪み補正,色相による領域抽出,動き検出など,多様な現実的話題が散りばめられていて面白い.

板橋秀一 編著 (2005) 音声工学, 森北出版
音声認識,とくに人の言葉を自動的に「認識」(というか書き取り)する技術がとくに産業的に重要なせいか,目的や条件が多様な画像や信号一般に比べて,音声では分野全体の見通しがよいように傍からは見える.一方,音声自体は画像情報に比べて,より本能的な部分で心に響く刺激であるようにも思う.個人的にはそういう部分,例えば人によって異なる「心地よい声」というのが,音声信号のどこに現れているのか(音声認証で有用な特徴に近い?)に興味がある.
[PR]
# by edogawadai_bio | 2006-11-07 03:54 | sanji
ImageJ plugin等
ImageJのメタな情報
ImageJ Documentation Wiki.本家サイトに比肩するくらい発展していくかもしれない.プラグインも置いてある.
http://imagejdocu.tudor.lu/imagej-documentation-wiki

ImageJ公式サイトの文書の和訳.日本語版を売っている会社(BioArts社)のサイトに置いてあるが,翻訳はImageJサイト日本語化プロジェクトの手によるようだ.本家と同じデザインなので読みやすい.pluginの説明も訳してくれないかな….
http://www.bioarts.co.jp/~ijjp/ij/index.html

これもImageJ公式サイトの文書の和訳.上のよりくだけている.
http://www.hm6.aitai.ne.jp/~maxcat/imageJ/docu.htm

ImageJ日本語版.9870円? 本家はpublic domainだし,付属のプラグイン(GifEncoderとか)もBSDライセンス的なもののようだから,こういうのもありなのかもしれない.試用版はファイル保存ができない.プラグイン受託開発もするらしい.
http://www.bioarts.co.jp/products/ijjp/imagej_jp.html

ImageJ plugin
stackの手動registration等.
http://www.med.harvard.edu/JPNM/ij/plugins/

morphology, RGBやYUVでのsegment, IJ_Robot(マクロでなくマウスをエミュレートすることによるImageJの自動操作)
http://www.dentistry.bham.ac.uk/landinig/software/software.html

MosaicJ.大きな試料を複数の視野にわけて撮影した画像群から,1つの大きな画像を合成する.大まかには手動で行ない,細かな位置あわせは自動的にできる.
http://bigwww.epfl.ch/thevenaz/mosaicj/

アラインメント等
http://www.med.harvard.edu/JPNM/ij/plugins/

Multitrackerの拡張等
http://valelab.ucsf.edu/~nico/IJplugins/index.html


スタンドアロンで動くソフトウェア
AIR(Automated Image Registration).
ダウンロードするのに登録が必要.学術研究用にはフリー.
http://www.loni.ucla.edu/Software/Software_Detail.jsp?software_id=8

総説等
Image Analysis for the Biological Sciences - Glasbey, C.A. and Horgan, G.W.
1995年に出た教科書のPDF版
http://www.bioss.ac.uk/staff/chris.html

ドージンニュース.ライブセルイメージング技術講座が111号から連載されている.
http://www.dojindo.co.jp/dojinnews/index.html

http://www.acm.org/tog/GraphicsGems/
http://www.amazon.co.jp/gp/product/4873112168/ref=pd_sim_b_5/250-3987146-5196252?ie=UTF8

[PR]
# by edogawadai_bio | 2006-11-01 19:36 | img
ImageJ coding memo
LUT適用
ImagePlus img = IJ.openImage("/Users/wayne/blobs.tif");
WindowManager.setTempCurrentImage(img);
IJ.run("Fire");
[PR]
# by edogawadai_bio | 2006-11-01 17:17 | img
PythonでHTMLのパース
塩基配列データベースからの検索結果(HTML形式)から必要な情報(ヒットした遺伝子の名前とかmismatchの数など)を取り出す作業の自動化を行なう.これまで,しばしば怠けてHTMLの構造を無視してad hocに必要なフィールドを取り出してきたが,今回はそれなりに複雑なページ構成だったため,保守性を考慮してHTMLパーサを使うことにした.HTMLParserモジュールがPython本体についてくるが,ドキュメントをぱっと見したところ面倒そう & 不正なHTMLに対しrobustでないらしいので,
http://wiki.python.org/moin/WebClientProgramming
を参考に
BeautifulSoup
http://www.crummy.com/software/BeautifulSoup/
を使うことにする.実体はたった一つのPythonスクリプトファイルであり,また,Python2.4系列以降ならとくに他のモジュールを導入する必要もないので,手軽に試せるのがうれしい.それとサイトのニセウミガメが気に入った.なお,Debian(etch)だと"python-beautifulsoup"としてパッケージ化されていた.

使い方としては,
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(htmlString)
で,nodeとleafからなる木構造がsoupとして得られる.
print soup.prettify() # いわゆるpretty print
で,どういう構造のhtmlなのかをインデントによって確認できる.
soupはfind(), findAll()などのメソッド,contents, nextなどの属性をはじめ,非常に多くのアプローチで中身を触ることができるようになっている.さまざまな方法が用意されているためにドキュメントが冗長になってしまっているが,
http://www.crummy.com/software/BeautifulSoup/documentation.html
に一通り書かれている.
ソースには,お仕事用の名前として

class RobustHTMLParser(BeautifulSoup):
pass
などという配慮までされている.


Python411 Podcast Series
週ペースで追加されている.音質はよくない.
http://www.awaretek.com/python/index.html
[PR]
# by edogawadai_bio | 2006-10-27 22:16 | comp
BioPythonのインストール
塩基配列のBLAST検索などのためのPythonスクリプトを少し書くようになった.生物系というかbioinformatics系ののスクリプティングではBioPerlが有名だが,BioPythonとかBioRubyとかBioCamlとかもある.ネーミングや位置づけはそれぞれ似てるが,とくに統一した仕様があるわけではないようで,規模もさまざまだ(たぶんBioPerlが一番でかい).

Linux(debian etch)でのBioPythonの導入
% apt-cache search biopy
で出てくるパッケージを導入すればよい.

Windows XPでのBioPythonの導入
http://biopython.org/DIST/docs/install/Installation.html
に書いてあるのを以下に簡潔にまとめる.なお実際に動作させているPython 2.4系列用のリンクを示す.Python 2.5系列では試していない.

1. Pythonの導入
http://www.python.org/download/
から
Python 2.4.4 Windows (x86) installer
をダウンロードし,実行する.

2. mxTextTools (文字列操作用モジュール) のインストール
http://www.egenix.com/files/python/eGenix-mx-Extensions.html#Download-mxBASE
から
http://www.egenix.com/files/python/egenix-mx-base-2.0.6.win32-py2.4.exe
をダウンロードし,実行.

3. Numerical Python (数値計算モジュール) のインストール
http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=1351
から
http://jaist.dl.sourceforge.net/sourceforge/numpy/Numeric-24.2.win32-py2.4.exe
をダウンロードし,実行.
"Numeric Python"は"numpy"に名前が変わり
http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=175103
から入手可能だが,biopython & Windowsと組み合わせてテストしていない.

4. ReportLab (PDF生成モジュール) のインストール (必須ではない)
http://www.reportlab.org/downloads.html
から
http://www.reportlab.org/ftp/ReportLab_2_0.zip
をダウンロードし,展開.
生成した reportlab フォルダを C:\Python24\Lib\site-packages\ にコピー.つまりC:\Python24\Lib\site-packages\reportlab\... となるようにする.

5. BioPython (生物学用モジュール) のインストール
http://biopython.org/wiki/Download
から
http://biopython.org/DIST/biopython-1.41.win32-py2.4.exe
をダウンロードし,実行.

6. Pythonがコマンドプロンプトでらくに利用できるようにする.
具体的には環境変数 PATH に C:\python24 を加える.環境変数の変更の仕方は
http://www.atmarkit.co.jp/fwin2k/win2ktips/189setenvv/setenv.html
に図入りで説明がある.
この図における「システム環境変数(S)」の変数 Path を選択し,「編集(I)ボタン」でその値を編集する.具体的には末尾に「;C:\python24」と追加する.もしくは先頭に「C:\python24;」とする.「;」は区切り記号.

7. BioPythonの簡単な動作確認.
Windowsの「スタートボタン - ファイル名を指定して実行」でcmdを実行し,コマンドプロンプトを起動.
そこでpythonと入力してEnterで,Pythonインタプリタを起動.以下を順次入力.
from Bio.Seq import Seq
from Bio.Alphabet.IUPAC import unambiguous_dna
new_seq = Seq('GATCAGAAG', unambiguous_dna)
new_seq[0:2]
すると
Seq('GA', IUPACUnambiguousDNA())
と表示される.さらに以下を順次入力.
from Bio import Translate
translator = Translate.unambiguous_dna_by_name["Standard"]
translator.translate(new_seq)
すると
Seq('DQK', HasStopCodon(IUPACProtein(), '*'))
と表示される.これでひとまず確認終了.
Controlを押しながらZを入力し,Pythonインタプリタを終了させ,さらにコマンドプロンプトにて
exit
と入力してEnterでコマンドプロンプトを終了させる.
[PR]
# by edogawadai_bio | 2006-10-27 11:58 | comp
IKATECH
b0095474_2113178.jpg1992年ころの同人ソフト(3Dシューティング?)が,WindowsやXへ移植されているのを見つけた.当時,PC-9801版をパソケットで買ったのを覚えている.
http://www.kauda.jp/develop.html
音は98版の方がかっこよかった気がするが,イカの動きっぷりはそのままのようだ.
ポリゴンはこれくらいの粗さが想像力を掻き立てるのにちょうどいい….
[PR]
# by edogawadai_bio | 2006-10-26 16:06 | niji
Fortran90
Windowsで使えるフリーなFortran90コンパイラを探す.
G95 project
http://g95.sourceforge.net/
の Self-extracting Cygwin x86
http://ftp.g95.org/g95-Cygwin.exe
が動いた.前もってCygwin自体の導入が必要,だと思う.

コーディングルールやtips
http://www.mri-jma.go.jp/Project/mrinpd/coderule.html
http://www.ep.sci.hokudai.ac.jp/~poc/tips_misc/fortran.html
[PR]
# by edogawadai_bio | 2006-10-19 02:32 | comp
hacking haskell music
hacking haskell music
http://www.youtube.com/watch?v=eLS6GHXWMpA&mode=related&search=
Haskellで書かれた楽譜をエディタ(XEmacs)で再生しつつ編集していて,手でコードを切り貼りすると即座に演奏にも反映されている…というものかと思う.perl版もある.楽譜とプログラムのコードの類似性を示す象徴的な例?

PC-9801シリーズ時代にMMLという楽譜記述言語でFM音源用に曲を入力していたのを思い出した.方言やフォーマットは多様だがMMLをはじめとして人間可読なファイル形式があって,コンパイルすると再生ソフトウェア用のバイナリ形式になる,というような仕組みだった.再生は常駐ソフトウェアからできたため,シングルタスクのDOSでもゲームのBGMなどとして利用するのが容易なようになっていた.僕が使っていたのは26音源とかOPNと呼ばれていたFM3音 + SSG3音の音声合成系で,数年前の携帯電話にもスペック的に劣る.今聞くときっと懐かしくて感動するのだろうが,当時は「これはこの世界でいちばんいい音源なんだ!俺にはこれしかないんだ!だから,これがいちばんいいんだ!!」という感じだった.すでに同人や市販のゲームにFM音源向けの楽曲を提供しているセミプロのような人たちもいたような記憶がある.どんな楽器についてもいえることかもしれないが,制約された音源を活かして作曲なりアレンジをするためには,音楽自体だけではなくハードウェア(FM音源の音声合成系)の知識と経験が重要だったのだろうと思う.
[PR]
# by edogawadai_bio | 2006-10-05 20:07 | comp
DELL inspiron 6400
自分用ではないが,DELLのInspiron 6400というノートPCのWindows環境の設定を行なう.キーボードは普段使ってるノートPC(松下 Let's note CF-R4)より大きくて打ちやすいが,印字は弱そう.タッチパッドのボタンはストロークが長目.右と左でボタンのクリック感が違う(右クリックの方がはっきりしている).フタを閉じても電源ランプとハードディスクアクセスランプが見えるのは精神的によい.LCDは1280*800という横長で,何となく親しみがもてるのは以前使っていた98シリーズと縦横比が一緒だからだろう.

初起動.プレインストールマシンなので,初回起動時はXPセットアップの最終フェイズみたいなところからはじまるが,そこでいきなりBGMが鳴るのに驚いた.しかもFnキー経由でボリュームOFFできない.Fnキー関係がOS依存のため,OSセットアップ時には無効なようだ.何でもソフトウェア制御の方が安上がりなのだろうが,音やRGB出力のような外界とのインタフェイスについては,OSを介さない制御の道を残しておいて欲しいものだ.おかげでLinuxからRGB出力やモニタ輝度調整ができなかったりする.以前愛用していた東芝のSatelliteシリーズにはボリュームツマミが側面についていて,いい機種だった.T後輩に音声出力端子をプラグで塞げばよいと,もっともなことを言われ,とりあえずBGMを回避する.

テーマや効果など余分なものを外す.サウンド設定をdisableにする.自分が使うマシンではないので,こういうところは悪戯したくなるが,我慢.

不要そうなソフトウェアのアンインストール.ハードウェア関係のソフトウェアは躊躇を覚えるが,デバイスドライバとは別の「機能を強化する」系の不要(常駐してCPUリソースを余分に使うし,ものによっては自動的にネットへアクセスしたりする)なものと信じてアンインストールする.

McAfee試用版とかいう抗ウイルスソフトみたいなものが入っていた.「ハッカーの侵入から防ぐ」みたいな誤用があまりにも堂々とされているのを見て,このソフトウェアを使っている方がむしろ危険なのではと不安になる.すぐにでもアンインストールしようとするが,「実行中だから削除できない」的なことをアンインストーラにいわれる.タスクバーやトレイ上にはMcAfee関係が存在しないが,プロセスを見るとMc*というそれらしいのが幾つか存在する.こういうのはアンインストーラの役目だろうと思いつつ,手でMc*プロセス群を強制終了していくが,1つだけ強制終了できない.セーフモードで起動したところ,アンインストールできた.

BIOSで無線LANなどの無効化と,それ関係の削除.電波を拾うたびにビープ音とともにポップアップウインドウがでてくるのには閉口させられた.どうもビープ音量の調整ができない.BIOSにもなかったようなのだが….

Windowsアップデート.最近はアップデート用のソフトウェアまでアップデートしろという,冗談みたいなことになっている.買ったばかりなのに十数分もパッチあてに時間がかかる.メーカーは発送直前に最新のパッチを全部あてて欲しい.

DAEMON Toolsという仮想CD/DVDドライブ用の常駐ソフトを導入.ファイル化しているCD-ROM配布のソフトウェアを片端からインストール.ファイルアクセスが速いのと,ディスクの交換・認識に関わる時間が短縮されてよい.JDK,ImageJ,Python,firefoxなどファイル配布のソフトウェアもインストールする.
[PR]
# by edogawadai_bio | 2006-10-05 19:45 | comp
ICA
タンパク質-タンパク質の相互作用を解析するなど,多重染色蛍光像で共局在を調べる際の客観的・定量的基準として各画素の輝度についてバンド間での相関係数を求める例をこのところよく見かける.intensity correlation analysisからICAと略されることがあるが,どうもindependent component analysisとまぎらわしい.

総説.雑誌のカラーとだいぶ違うような気がする….
Penarrubia PG et al. (2005)
Quantitative analysis of the factors that affect the determination of colocalization coefficients in dual-color confocal images.
IEEE Trans Image Process 14: 1151-1158.

単純なピアソンの相関係数が標準的なようだが,よりよい測度を検討する研究もある.
Costes SV et al. (2004)
Automatic and quantitative measurement of protein-protein colocalization in live cells.
Biophys J 86: 3993–4003.
http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=1304300
# 掲載後1年経ったBiophys Jの記事はPubMed Centralで読める.
[PR]
# by edogawadai_bio | 2006-09-22 23:25 | img
CobaltRaQ
b0095474_22382273.jpg
拾った4台のうちRaQ4r JAは最もハイスペック(といっても2000年の製品だが)なのだが,起動してくれない.電源スイッチをいれてもLEDやファンは反応しないし,そればかりか遂には部屋のブレーカーがおちた….UPSを介して電源をつなぐべきだったかもしれない.とりあえず(1)電源基板上のヒューズは切れてない,(2)ボタン電池が液漏れしていたが電圧は3V程ある(他のCobaltはボタン電池を外しても起動できた),(3)電解コンデンサ等の外観に明らかな異状はない,(4)CPUはK6-2,(5)ファン付近に羽虫達の死骸が…,といったことがわかった.他のCobaltのOSおよび設定の初期化を先にしようと思う.
[PR]
# by edogawadai_bio | 2006-09-22 22:39 | comp
CobaltRaQ
b0095474_1545331.jpg
廃棄処分となっていたCobaltRaQをひろった.
型番は上から
Sun Cobalt RaQ 4, R15 376 NIJ,
同上,
Sun Cobalt RaQ 4r JA,
Sun Cobalt CacheRaQ4.
なおRaQ 4rはピクリともしない.CacheRaQ4は片方のファンが回らない.
パスワードがわからないので,初期化の準備をする.
http://www.sun.com/download/index.jsp?cat=Operating%20Systems&tab=3&subcat=Sun%20Cobalt
から対応する機種のSun Cobalt Networks OS Restore Disc (iso image)をダウンロードし,PC/ATでCD-ROMドライブから起動した上で,CobaltをNetBootすればいいらしい.
http://cobaltqube.org/faq/restorecd-j.html
http://cobaltqube.org/faq/netboot-j.html
が参考になった.
マニュアル(PDF):
http://jp.sun.com/products/servers/serverappliances/technical/manual.html
[PR]
# by edogawadai_bio | 2006-09-20 14:53 | comp
計算機将棋; 調布
計算機将棋の会合みたいなものに初めて参加する.開催場所は回り持ちらしく,今回は調布の電通大.以前「未踏」でお世話になった先生の研究室と同じ建物だった.

発表は1時間 * 2つ(うち1つは我らがO君によるもの)で,インライン展開やメモリ配置の工夫等による高速化や,駒の位置関係の統計解析などが主な話題だった.同じx86でも多少のアーキテクチャの違いがベンチマーク結果を逆転させうるということ,今のPCのメモリアクセスは帯域的にも構造的にも高コストであるということ,が実例をもって示された.一方,探索方法や評価関数の構成(?)法については,パラダイムチェンジが起こりつつあるらしく,端々で話題に上ったものの自分自身はよくわかっていない….

関数テーブルについてBASICのON GOTO命令やUNIXのデバイスドライバが例として出てきたりと,どこか懐かしい感じのする集まりだった.
[PR]
# by edogawadai_bio | 2006-09-09 22:42 | comp