<   2006年 10月 ( 6 )   > この月の画像一覧
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