Sha256: e7f930f45b4bd3ee673adf9284a9960a34365e0042b76b3982f1e11b637a7895

Contents?: true

Size: 1.99 KB

Versions: 1

Compression:

Stored size: 1.99 KB

Contents

require 'helper'

describe Bio::Faster do
  
  describe "#each_record" do

    it "should read a FastQ file returning an array with sequence data" do
      Bio::Faster.new(TEST_DATA+"/formats/illumina_full_range_as_illumina.fastq").each_record do |seq|
        seq.class.should == Array
      end
    end

    it "should handle correctly Phred64 qualities (Solexa)" do
      file = TEST_DATA+"/formats/misc_rna_as_solexa.fastq"
      bioruby_data = []
      Bio::FlatFile.open(File.open(file)).each_entry do |seq|
        seq.format = "fastq-solexa"
        bioruby_data << [seq.entry_id,seq.seq,seq.qualities]
      end
      faster_data = []
      Bio::Faster.new(file, :solexa).each_record do |seq|
        seq[0] = seq[0].split(" ").first
        faster_data << seq
      end
      faster_data.should == bioruby_data
    end
    
    it "should read different FastQ formats" do
      files = Dir.glob(TEST_DATA+"/formats/*.fastq")
      files.each do |file|
        bioruby_data = []
        Bio::FlatFile.open(Bio::Fastq,File.open(file)).each_entry do |seq|
           bioruby_data << [seq.entry_id,seq.seq,seq.qualities]
        end
        faster_data = []
        Bio::Faster.new(file).each_record do |seq|
           seq[0] = seq[0].split(" ").first
           faster_data << seq
        end
        faster_data.should == bioruby_data
      end

    end


    it "can read from the standard input" do
      require 'digest/md5'
      file = TEST_DATA+"/formats/illumina_full_range_as_illumina.fastq"
      TEST = File.join(File.dirname(File.dirname(__FILE__)),"test")
      system("cat "+file+" | ruby "+TEST+"/test_stdin.rb > stdin_test.out")
      out = File.open("expected.out","w")
      Bio::Faster.new(file).each_record do |seq|
        out.write seq.to_s+"\n"
      end
      out.close()
      md5_stdin = Digest::MD5.file("stdin_test.out")
      md5_expected = Digest::MD5.file("expected.out")
      md5_stdin.should == md5_expected
      FileUtils.rm "stdin_test.out"
      FileUtils.rm "expected.out"
    end

  end

  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bio-faster-0.4.4 spec/parser_spec.rb