Ruby ファイル処理 FASTA,FASTQ抽出 スクリプトの書き方

バイオインフォ道場、くまぞうです。

次世代シーケンサで用いるFASTAファイルやFASTQファイルは大きなサイズのファイルです。「head」を使えば簡単に見ることもできますが、ちょうどキリが良い分量を表示できるかはわかりません。Rubyを使って、エントリーの個数を指定して取り出すスクリプトを作ってみました。

スポンサーリンク



FASTAファイルの部分取り出し

使い方

ruby part_of_fasta.rb file_name.fasta 3 > output.fasta # エントリー3個分

プログラム

#! /usr/bin/ruby
# -*- coding:utf-8 -*-

# part_of_fasta.rb

file  = ARGV[0]
count = ARGV[1]

i=0; count=count.to_i
File.open(file).each do |line|
  i=i+1 if line =~ /^>/ # 行の先頭が「>」を目印にしています。
  break if i>count      # 指定個数分のentryを処理したらループ終了。
  puts line.chomp
end
スポンサーリンク