メイン

2010年01月31日

BioRuby版 FASTA + FASTA.QUAL = FASTQ

まだまだ生きてます。

さて,前エントリーのFASTA + FASTA.QUAL = FASTQはBioPerl版でしたが, BioRuby version 1.4.0で書いてみると以下のようになります。

require 'bio'
ff_fasta = Bio::FlatFile.open(ARGV[0])
ff_qual = Bio::FlatFile.open(ARGV[0]+".qual")

while entry_fasta = ff_fasta.next_entry
  seq = entry_fasta.to_biosequence
  seq.quality_score_type = :phred
  seq.quality_scores = ff_qual.next_entry.data
  puts seq.output(:fastq,
         :title => entry_fasta.definition)
end
# Ruby 1.8のときだけ頭に
# require 'rubygems'  をつけてね

以上の内容は,BioRubyメーリングリスト でBioRubyのコア開発者のひとりの大阪大学の後藤先生から回答いただいたものです。

(メーリングリストを購読している方はわかるかと思いますが)最初,ワタシはBio::FastaFormatや Bio::FastaNumericFormatに大きなマルチエントリーのファイルを食わせるコードを書いて みました。ところが,どうもしっくりこない(あるべきメソッドがないし,遅いし)と思っておりました。 そうしたら,案の定きちんとしたフロントエンドがあったようです。

BioPerlのBio::SeqIOに相当するものがBioRubyのBio::FlatFileになると 理解していいのかなあ(未確認)。Bio::FlatFileをつかえば,各エントリに 外部イテレーターでアクセスできる(Bio::FlatFile#next_entry.data) んですね。美しい。

ああ,細かいBioRubyのFASTQ関係のコードばかり読んで, 全体の構造を全く理解してなかった。反省。

今回の用途には,BioPerlでもBioRubyでもほぼ同じ速度です。ただ,大きな違いがあります。 それはインストールにかかる時間。BioRubyは,BioPerlにくらべコンパクト (逆にBioPerlはありとあらゆることができる…らしい)なので

gem install bio

一発(要管理者権限)でさくっとインストールできます。すばらしい。

というわけで,今後もBioRubyの勉強をすすめたいと思います。勉強成果もぼちぼち書いていこう。うん。

2009年08月11日

FASTA + FASTA.QUAL = FASTQ

以下,次世代シークエンサー関連の自分用のメモ

FASTAファイルとFASTA.QUALファイルからFASTQを生成するPerl (BioPerl)スクリプト

http://www.nabble.com/How-to-input-fasta-and-qual-into--Bio::Seq::Quality--td18634349.html を参照したけど,エラーが出るので,修正。BioPerl(というかPerl)についてはシロウトなので,手こずった。 "->"がRubyでいうところのメソッド呼び出しの"."なのね。

使い方は(スクリプトをfastaqual.plとすると)

perl fastaqual.pl hoge.fasta > fuga.fastq

でhoge.fastaとhoge.fasta.qualからfuga.fastqを作ります。 このスクリプトはhoge.fastaとhoge.fasta.qual内のフラグメントの順番が一致していることを前提としていることに注意。

#!/usr/bin/perl -w

use warnings;
use strict;
use Bio::SeqIO;
use Bio::Seq::Quality;

my ($seq_infile,$qual_infile)  =(scalar @ARGV == 1)
                         ?($ARGV[0]    ,"$ARGV[0].qual")
                         :@ARGV;

#Create input objects for both a seq (fasta) and qual file

my $in_seq_obj =
  Bio::SeqIO->new( -file   => $seq_infile,
		   -format => 'fasta',
		 );

my $in_qual_obj =
  Bio::SeqIO->new( -file   => $qual_infile,
		   -format => 'qual',
		 );

my $out_fastq_obj =
  Bio::SeqIO->new( -format => 'fastq'
		 );

while (1){
  ## create objects for both a seq and its associated qual
  my $seq_obj  = $in_seq_obj->next_seq || last;
  my $qual_obj = $in_qual_obj->next_seq;

  #use seq and qual object methods feed info for new BSQ object
  my $bsq_obj =
    Bio::Seq::Quality->new( -seq  => $seq_obj->seq(),
			    -qual => $qual_obj->qual(),
			    -id => $seq_obj->id(),
			  );

  $out_fastq_obj->write_fastq($bsq_obj);

}

2009年01月03日

謹賀新年/アイオワ大学日本人会

あけましておめでとうございます。

郵便事業株式会社経由年賀状は,どうにも最新の住所が把握できないことが多く, 今年は断念してしまいました。失礼をお許しください。

長崎は,アイオワとは違った寒さで,結局今年も震えています。 でも,風邪も引かずになんとかやっております。

そうそう,以前のエントリーで書いた, ワタシが管理人をやっているIowan mailing listとは別に, アイオワ大学日本人会が発足したようです。すでにblogも 用意されています。今後,アイオワ在住日本人向けのポータルサイトに成長していただきたい! と思っております。

では今年も,益々よろしくお願いいたします!!

2008年12月18日

九州Ruby会議01で発表してきました

12月14日に九州産業大学で行われた 九州Ruby会議01にて 「ゲノム解析とグルー言語Ruby」の題で発表してきました

当日のそれぞれの方の発表内容は USTREAMでみることが できます。

私の発表は以下のとおり:
Free TV : Ustream

「あー」とか「うー」とか多すぎて,聞きづらくてお恥ずかしい。それに,Rubyを使った成果を具体的に 示せてないのが,なんともかっこわるい。

あらためて聞くと,200人という人数,それも,異業種のみなさんの前で, 我ながら思いっきり緊張しております。

でも,個人的には,笑い(苦笑?)がとれた時点で80点だったりして。

背景の話と,やったことと,失敗談とで,つめこみすぎたようです。これでもだいぶ削ったのですが。 もっと,話を絞り込んで,ゆっくり話すべきでした。

BioRuby最高!という部分の強調はできたかな? 実は,僕はBioRubyのごくごく一部の機能しかつかってないですし,コツコツ勉強中の身なのですが。

前夜のお食事会(ささださんや,角谷さんなど,有名人とお話しできて,ミーハーな私は大興奮)や,懇親会や,その後のweb上でみつけた感想などを読ませていただいて,とにかく,「後先考えず発表してよかった!」と思ってます。

参加した上での詳しい感想などは,また日をあらためて…。

2008年06月29日

Linux HPCクラスターの構築(おまけ):PubMed収載

時間がかかってしまいましたが,BMC Bioinformaticsの論文 が,ようやくPubMedにも収載されたそうです。 PubMedIDは18541045です

が,所属表記に長崎大のメールアドレスがベッタリはってあるではないですか。

あぁ,これで1か月もすれば,こっちのアドレスもSPAMメールのゴミ捨て場の様相を呈するんでしょうか。

Thunderbirdのベイジアンフィルターが,そこそこ賢いので,なんとかなるんですが。

ちなみに,BMC Bioinformatiocsのサイトでは,ユーザー登録しないと,メールアドレスは見られないように なっています。でもこれじゃあ,意味ないですよね。とほほ。

2008年05月10日

理系のための人生設計ガイド

ご無沙汰しております.

前回の「帰国シリーズ」エントリーから,ずいぶん間隔があいてしまいましたが, 3月1日より,長崎大学の人類遺伝学教室でCOE研究員というポジションで お世話になっております.

ここで,お知らせがあります. 5年ほど前から,断続運営しております当blogですが,このたび残念ながら,またもや 再開することと相成りました.帰国も果たしましたので,タイトルは「みっし~の研究生活」と すっきりさせました.

実は,blogを続けるかどうかについては,いろいろ考えていたんですね. これまでは,何も考えず実名で書いてましたが,さて,今後もそれでいいのかと, 魑魅魍魎の跋扈する恐ろしいイソターネッツで,他の方に迷惑を掛ける のではないかと,躊躇していた次第です.ですが,ここであらためて 「このblogは,徹頭徹尾完全に三嶋博之の個人の考えを個人の責任で書いておりますので,所属する組織にはまぁーったく関係ありません!」 と高らかに宣言しておいて,再開することにしようと思います.

あともう一つ,続けるきっかけがあります.先日,ぴかぴかの長崎市立図書館に 初めて行ってみたのですが,そこの新刊本コーナーに坪田一男先生の 理系のための人生設計ガイド (講談社ブルーバックス)という本を見つけまして,これに非常にタメになることが いろいろ書いてあったんです.かいつまんで言うと,研究者として生きていくの なら,教授めざして,キャリアパスを考えなきゃだめよ,んで,お金のことも大事だよ, 社会やサイエンスコミュニティーへの自己アピールも大事だよ,という, とてもぶっちゃけた(すなわち真実の)話です.

もちろん,きちんとした仕事をすることが,やるべき事の99%なわけですが, 残りの部分も,生き残ろうと思ったら,きちんとやらなきゃだめなんだなあと,目からウロコが落ちた次第です. で,坪田先生の場合は,研究・臨床だけでなく,一般へのパブリシティのために,たくさん本を書いて,講演もたくさんされたわけですが,このままマネするのは,私には不可能. そこで,この本でオススメしているのは,blog執筆です.これならば,私にも……挫折 しているような気もするけど……できるかもしれません.

ただ,匿名のblogなら意味はありませんので,本名で継続することを決心した ワケです.ミシマヒロユキをどーぞよろしくお願いします.

あ,それと最大の理由が,自宅でのネット環境に目途がついたこと.ケチって ブロードバンド環境はないのですが,久々にモデムでダイアルアップ接続 してもなんとかなりそうなのがわかったので,しばらくはこれでいこうと思います. あとは日本の誇る地上の楽園,マンガ喫茶とかから更新します(仕事場では 仕事しかしませんしませんしません).