園芸学部園芸学科専門科目「バイオインフォマティックス」の課題
下のリンクにあるblast_to_fasta.rbを改良して同じ種名の配列が複数ある時に1つだけしか出力しない欠点と、最後のレコードが出力されない欠点を取り除き、問い合わせをした配列(blastの出力でQueryとなっているもの)も出力のfastaファイルに含めるようにしなさい。改良したプログラムと改良した点の解説をメールで送ってください。blast_to_fasta.rbの内容は18日の授業で変更したものにあわせて改めて差し替えました。以前にダウンロードしている人は注意して下さい。
提出期限: 7月2日(月)
ヒント:最初のlines.eachのループ内で
seqs['Query'] = '' または query = ''
lines.each do |line|
...
if /\A>/ =~ line
...
elsif /Sbjct/ =~ line
seq << line.split(/ +/)[2]+"\n"
elsif /Query/ =~ line
seqs['Query'] << line.split(/ +/)[2]+"\n" または
query << line.split(/ +/)[2]+"\n"
end
のようにするとQueryの行の塩基配列をハッシュに読み込むことはできますが、Queryはレコードごとに出てくるので、どこかでseqs['Query']やqueryを空にすることが必要です。Query配列の長さもレコードごとに違いますが、最も長いものを選ぶような工夫が出来たらすばらしい。
また、同じ名前になる塩基配列を区別するためにはアクセション番号を名前に加えるのが確実です。blast結果の">"で始まる行に名前と一緒に番号も入っていますので、それを利用するとよいでしょう。
DDBJのblast結果とNCBIのblast結果、両方のフォーマットで動作することを確認して下さい。
blast結果のファイルが必要な場合は次のリンクからダウンロードして下さい。