アカウント名:
パスワード:
こういうネタを利用して,プログラマー向けの生物学教室とか(ん?バイオインフォマティクス教室かな)をやってくれる人はいないものでしょうかね
オライリーの本 [oreilly.co.jp]にしてもそうなんですが、バイオインフォマティクスの解説書って基本的にバイオ研究者(でコンピュータの初心者)向けのものばっかりなんですよね、確かに。逆のパターンの本があったら誰か教えてほしいですね。 バイオインフォマティクスに使われるよ
バイオインフォマティクスに使われるような生化学のことをプログラマが理解するのに比べたら、理解すべきことの分量は確かにその方が少ないようには思いますし
#!/bin/perl # no1.pl # BIP2003 問題1解答用スクリプト # http://contest.genome.ad.jp/ # 使い方 no1.pl ファイル名 # use strict; my ($i,$j,$k,@i,@j,@k); my (
要するに、生物学者という「顧客」のデータを処理できる「SE」に なりたいのか、または「生物学の」研究を情報の観点から行いたいのか、 と言うのでかなり事情は変ってきます。
ただ、いきなり後者は言葉の(生物用語の)壁が大きくて難しいとおもいます。最初は前者のような形で業界に入って、徐々に後者のような形になれれば、生物や数学畑の人たちとは違った研究ができるん
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
勉強会とかないかな (スコア:0)
Re:勉強会とかないかな (スコア:2, 興味深い)
オライリーの本 [oreilly.co.jp]にしてもそうなんですが、バイオインフォマティクスの解説書って基本的にバイオ研究者(でコンピュータの初心者)向けのものばっかりなんですよね、確かに。逆のパターンの本があったら誰か教えてほしいですね。
バイオインフォマティクスに使われるよ
Re:勉強会とかないかな (スコア:1, 参考になる)
この業界では寧ろ、
コンピューターで使われるような情報科学のことを生化学屋が
理解するのに比べたらプログラマが理解すべき生化学の分量は
確かにその方が少ない、と思われている気がします。
情報科学をちょっとかじったことのある人だったら造作もない
ようなことを人の力で頑張っていたりするので、ちょっとくらい
生物が分かって、プログラムが書ける人はそれだけで
重宝されています。
たとえば、酵素A では GAATTC という配列があればそれを切断し、
酵素B はGCC?????GGC (?はATGC全てにマッチ)という配列が
あればそれを切断するとします。
塩基配列(ATGCの並び)が 1000本あって、その中で酵素Aと酵素Bが両方とも反応するものを
リストアップしたい、というときに、それすらできない生物学者が
居るわけです。
(もちろんそんな人たちばかりではありませんが。)
情報系の人なら grep なり perl なりで 10 分でプログラムを
書けば終わるところを、正規表現を知らないために、プリントアウト
して赤ペンひいていたりする。
勿論、その程度のことは最近は生物の人も、皆できるように
なりつつあるわけだけれども、「生物?わからんからパス。」
という人が情報系には多いから、この程度の処理ができる人から
そもそも不足していて、(日本では)困っているのが現状だと
思います。
当然本業でバイオインフォマティクスをやっている人たちは、
(流石に↑の程度では論文にならないので、)
もっと頑張って 複雑なことをやっている訳だけれども、
まだまだ (情報科学的には)簡単なことでも研究成果になる 段階にあると思うので、
例えば 遺伝学電子博物館 [nig.ac.jp] を一通り読んでそこそこ理解した
プログラムが得意な高校生、とかでも、まだまだ 一躍スターになる可能性があるんじゃないかと 思います。
上の書き込みでも紹介されていますが、データベース配列の中から
指定した配列(に近い配列)を出力する BLAST というプログラムは
ノーベル賞候補とかいう話もあるくらいで、
(勿論、BLASTはそれなりに深い洞察や実験に基づいて作られた
検索プログラムで、たいした仕事ではありますが。)
やりがいもある分野だと(少なくとも私は)思っています。
....だんだんコンテストに参加したくなってきましたか?
ノートパソコンとか賞品も出ますので、是非参加して下さい。
このコンテスト、とにかく日本のバイオインフォマティクスの
すそ野を広げよう、というのが狙いなので、
いろいろなバックグラウンドの人が老若男女問わず参加して
貰えれば良いなぁと思います。用語とかが不明ならしばらくの
間答えますので、ばしばし書き込んでください。
Re:勉強会とかないかな (スコア:1)
以外で、
研究者の間で、必読もしくは良書とされてる書籍等を教えて頂けませんか?
初心者用から並べてあるとうれしいです。
Re:勉強会とかないかな (スコア:1)
面白そうだな、とは思います。
しかし、本格的に生化学の勉強をするのはちょっと…と躊躇してしまうのも事実です。(『Newton』ぐらいは読んでますが(^^;))
例えば、『問題 4』は生化学に関する知識は不要なわけですよね。ところが逆に、『問題 3』なんかは「ハイブリダイズって何よ?」となってしまうわけで…。
(あまりに基本的な用語なのか、Googleで調べても分からない。『二本鎖を形成』? 対にするってことかな?)
実際のところ命題を解くに当たって、「ATGCとはなんぞや?」などという基本的なことすら、必ずしも知る必要はないのではないでしょうか?
『問題 3』なんかはデータ数から見るに、回答の長さが5960を超えるはずはないと思うのですが、どの程度を想定すればいいのか分かりません。また、『誤差』がどういうレベルなのかも、SBH法を知らないために想像がつきません。
生化学に関する知識は高校生レベルで事足りる、ぐらいに歩み寄ってもらえると、参加者も増えると思うのですが…無理かなぁ。
Re:勉強会とかないかな (スコア:2, 参考になる)
問題1 (例は全て架空のものです)
ATGCの4文字からなる文字列があります。
遺伝子が含まれる領域の左側にプロモータ配列という配列があると、
プロモータ配列の種類に応じた特定の条件で遺伝子が働くように
なります。(例: プロモータAは細胞が熱にさらされると、
右にある遺伝子が働くようになる)
プロモーター配列は一般には、遺伝子の左側にだいたい存在し、
遺伝子自体とどれくらい離れているかは種類によります。
同じ種類でも距離は一定しているとは限りません。
遺伝子Aの場合
ATCGGGCCTGGATGCGTTGCCCGGTTAAAGCATGGTGCAAACCCACTATCGAT
|<--プロモータA->| |<--遺伝子A-------------->|
遺伝子Bの場合
CCAGGCCTGGATGCGTTGCCCAACTCCCATGCTCCATCCGATACAACTGCGAT
|<--プロモータA->| |<--遺伝子B-------------->|
この場合プロモータ配列A は GGCCTGGATGCGTTGCC という
配列な訳ですが、この配列がどんなものか分からないときに、
たくさん与えられた配列から共通の配列を見つけて
プロモータ配列を推測してくださいというのが問題です。
なーんだ、サーチを繰り返せば、という話もありますが、
プロモーター配列はちょっとずつ違っても働くので、
GGCCTGGATGCGTTGCC から一文字変更して
GGCCTGGTTGCGTTGCC でもやっぱり働きます。
つまり、この問題では 10文字以上でかつ30%くらいまでの
違いを許容しつつ(だいたい)共通しているプロモーター配列
を求めてください。ということです。
つづく...かなぁ。
# 他力本願なのでハンドル
質問です. (スコア:0)
正規表現を使って試してみようかな.正規表現メーリングリスト [bug.org]に投げてみようかしらん.
Re:質問です. (スコア:1)
Re:質問です. (スコア:1)
Re:補足 (スコア:1)
#最初に s/T/U/g すればすむだけかと。
Re:補足 (スコア:1)
○ s/U/T/g
Re:勉強会とかないかな (スコア:0)
モチーフという言葉は使いますね。
おおざっぱに言えば「良く出てくるパターン」のような
ものかと思います。>モチーフ
サンプル作ってみたんですが・・・ (スコア:0)
解説を元にperlでスクリプトを書いてみました.長さが10の文字列で調べたのですが,DNA-sequence-A.dna では'.TT.AT.AAA'という文字列で10個,DNA-sequence-B.dna では'T...TATATA', 'TTAT.A..AT' で12個にしかマッチしません.以下のようなスクリプトなんですが,何か考え方が間違っているのでしょうか?
このスレッドをまだ見ている人はいるかなぁ,そっちが問題かも
#!/bin/perl
# no1.pl
# BIP2003 問題1解答用スクリプト
# http://contest.genome.ad.jp/
# 使い方 no1.pl ファイル名
#
use strict;
my ($i,$j,$k,@i,@j,@k);
my (
Re:サンプル作ってみたんですが・・・ (スコア:1)
正規表現だけで、この問題を解くのはかなり無理があるような気
がします。
変異はモチーフのある特定の場所に集中して起こるのではなく
て、偏りはありますがモチーフ配列全体で起こります。
たとえば、モチーフが5個あったとして
ABCDEFGHIJKLMNOPQ
1GACCTGAATGCGTTGCC
2GGCCTGGATGCGTTGTC
3GGCCTGGCTGCGTGCC
4GGTCTGCATGCATTGCC
5GGCATGCATACGTTGCC
GGCCTGXATGCGTTGCC コンセンサス配列
G...TG..T.C.T.... 正規表現
それぞれの配列は、コンセンサス配列
(変異が起こる前の配列といったらよいのでしょうか)から30%も変化
していないのですが、 変異がいろいろな場所で起きているため正
規表現ですべての配列を検索しようとすると.が多くなってしまって
他のモチーフではない部分も引っかかってしまいます。
さらに、配列3のn列のように変異は置換だけでなく塩基がなくなる
deletionや逆に塩基が挿入されるinsertionなどもあります。
これが起こるとそれから後はこの正規表現ではすべて.になってしまいます。
また、g列のように変異が置きやすい場所もあって、このような場所
に変異があってもモチーフ配列である確率はあまり下がりません。
このようなことを表現するには、正規表現だけでは役不足で
オートマトンに確率をたしたような隠れマルコフモデルなどがよく使われています。
これらについては、
「バイオインフォマティクス-確率モデルによる遺伝子配列解析-」(医学出版)などが詳しいです。
ただ、モチーフ検索などは研究の歴史も長く人数も多いのでよい
成果を出すのはかなり大変そうです。
Re:サンプル作ってみたんですが・・・ (スコア:0)
Re:勉強会とかないかな (スコア:1, 興味深い)
Perlで言うと、$a に対して getsouhosa($a)という配列は $a の相補鎖と呼ばれていて、$a, getsouhosa($a) はくっついて 二本鎖を形成します。
sub getsouhosa{
my $s = shift;
$s =~ tr/ATGC/TACG/;
return join("",reverse(split(//, $s)));
}
SBH法はわりとまだ理論段階の話なので「誤差」のレベルに関して
はまだ未知数だと思います。またまたPerlで書きますが、 誤差がないSBH法の結果は
$moto="ATCCTTCGCGGGCCATGCCG"; # 元の配列の例
$k = 10; # 定数(今回は10)
for($i=0;$i+$k $p=substr($moto,$i,$k);
$h{$p}=1;
$h{getsouhosa($p)}=1;
}
print join("\n",sort(keys %h));
このプログラムの出力結果になります。結果だけを見て
$moto に何が代入されていたか分かれば良いわけです。
誤差有りの場合には、文字列を数パーセント変化させて
返すaddgosa関数でも作って、上のプログラムの
$h{$p}=1;
$h{getsouhosa($p)}=1;
の部分を
$h{addgosa($p)}=1;
$h{addgosa(getsouhosa($p))}=1;
に置き換えれば良いです。
Re:勉強会とかないかな (スコア:1)
subsutitutionでいいんですかね。
insertionとdeletionがなければ、結構簡単そうなんだけど。
DNAのハイブリダイスのエネルギーを求める式があれば
insertionとdeletionとsubsutitutionが起こる比率が求められそう
どっかに転がってないですかね。
Re:勉強会とかないかな (スコア:0)
Re:勉強会とかないかな (スコア:0)
『生物学の研究者にプログラミングを教えるよりも、それらの領域を専攻した者に生物学を教える方が「かなり楽」なのだそうだ。』
とか書かれてますね。
Re:勉強会とかないかな (スコア:0)
理解するのに比べたらプログラマが理解すべき生化学の分量は
確かにその方が少ない、と思われている気がします。
これは、「何をやりたいか」、もしくは「何になりたいか」によって
答えが変ってくる気がします。
要するに、生物学者という「顧客」のデータを処理できる「SE」に
なりたいのか、または「生物学の」研究を情報の観点から行いたいのか、
と言うのでかなり事情は変ってきます。
前者ならばおっしゃるとおりで、生物学の知識はかなり限定して
も大丈夫だと思うんです。し
Re:勉強会とかないかな (スコア:0)
ただ、いきなり後者は言葉の(生物用語の)壁が大きくて難しいとおもいます。最初は前者のような形で業界に入って、徐々に後者のような形になれれば、生物や数学畑の人たちとは違った研究ができるん