/test/unit/bio/appl/iprscan/test_report.rb
Ruby | 339 lines | 248 code | 76 blank | 15 comment | 5 complexity | b83fd5913ca3c4de5323672c49bdca46 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1
- #
- # test/unit/bio/appl/iprscan/test_report.rb - Unit test for Bio::InterProScan::Report
- #
- # Copyright (C) 2006 Mitsuteru Nakao <n@bioruby.org>
- #
- # $Id:$
- #
- # loading helper routine for testing bioruby
- require 'pathname'
- load Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4,
- 'bioruby_test_helper.rb')).cleanpath.to_s
- # libraries needed for the tests
- require 'test/unit'
- require 'bio/appl/iprscan/report'
- module Bio
- class TestIprscanData
- TestDataIprscan = Pathname.new(File.join(BioRubyTestDataPath, "iprscan")).cleanpath.to_s
- def self.raw_format
- File.open(File.join(TestDataIprscan, "merged.raw"))
- end
- def self.txt_format
- File.open(File.join(TestDataIprscan, "merged.txt"))
- end
- end
-
-
- class TestIprscanPTxtReport < Test::Unit::TestCase
- def setup
- test_entry=<<-END
- slr0002\t860
- InterPro\tIPR001264\tGlycosyl transferase, family 51
- BlastProDom\tPD001895\tsp_Q55683_SYNY3_Q55683\t2e-37\t292-370
- HMMPfam\tPF00912\tTransglycosyl\t8e-104\t204-372
- InterPro\tIPR001460\tPenicillin-binding protein, transpeptidase domain
- HMMPfam\tPF00905\tTranspeptidase\t5.7e-30\t451-742
- InterPro\tNULL\tNULL
- ProfileScan\tPS50310\tALA_RICH\t10.224\t805-856
- //
- END
- @obj = Bio::Iprscan::Report.parse_ptxt_entry(test_entry)
- end
-
-
- def test_query_id
- assert_equal('slr0002', @obj.query_id)
- end
- def test_query_length
- assert_equal(860, @obj.query_length)
- end
- def test_matches_size
- assert_equal(4, @obj.matches.size)
- end
-
- def test_match_ipr_id
- assert_equal('IPR001264', @obj.matches.first.ipr_id)
- end
- def test_match_ipr_description
- assert_equal('Glycosyl transferase, family 51', @obj.matches.first.ipr_description)
- end
- def test_match_method
- assert_equal('BlastProDom', @obj.matches.first.method_name)
- end
- def test_match_accession
- assert_equal('PD001895', @obj.matches.first.accession)
- end
- def test_match_description
- assert_equal('sp_Q55683_SYNY3_Q55683', @obj.matches.first.description)
- end
- def test_match_evalue
- assert_equal('2e-37', @obj.matches.first.evalue)
- end
- def test_match_match_start
- assert_equal(292, @obj.matches.first.match_start)
- end
- def test_match_match_end
- assert_equal(370, @obj.matches.first.match_end)
- end
- end # TestIprscanPTxtReport
- class TestIprscanTxtEntry < Test::Unit::TestCase
- def setup
- test_txt = Bio::TestIprscanData.txt_format.read.split(/\n\nSequence/)[0]
- @obj = Bio::Iprscan::Report.parse_txt_entry(test_txt)
- end
- def test_iprscan_report_class
- assert_equal(Bio::Iprscan::Report, @obj.class)
- end
-
- def test_query_id
- assert_equal('Q9RHD9', @obj.query_id)
- end
- def test_query_length
- assert_equal(267, @obj.query_length)
- end
- def test_matches_size
- assert_equal(16, @obj.matches.size)
- end
-
- def test_match_ipr_id
- assert_equal('IPR000110', @obj.matches.first.ipr_id)
- end
- def test_match_ipr_description
- assert_equal('Ribosomal protein S1', @obj.matches.first.ipr_description)
- end
- def test_match_method
- assert_equal('FPrintScan', @obj.matches.first.method_name)
- end
- def test_match_accession
- assert_equal('PR00681', @obj.matches.first.accession)
- end
- def test_match_description
- assert_equal('RIBOSOMALS1', @obj.matches.first.description)
- end
- def test_match_evalue
- assert_equal('1.5e-17', @obj.matches.first.evalue)
- end
- def test_match_status
- assert_equal('T', @obj.matches.first.status)
- end
- def test_match_date
- assert_equal(nil, @obj.matches.first.date)
- end
- def test_match_match_start
- assert_equal(6, @obj.matches.first.match_start)
- end
- def test_match_match_end
- assert_equal(27, @obj.matches.first.match_end)
- end
- def test_match_go_terms
- ary = [["Molecular Function", "RNA binding", "GO:0003723"],
- ["Molecular Function", "structural constituent of ribosome", "GO:0003735"],
- ["Cellular Component", "ribosome", "GO:0005840"],
- ["Biological Process", "protein biosynthesis", "GO:0006412"]]
- assert_equal(ary, @obj.matches.first.go_terms)
- end
- end # TestIprscanTxtEntry
- class TestIprscanTxtEntryList < Test::Unit::TestCase
- def setup
- test_txt = Bio::TestIprscanData.txt_format.read.split(/\n\nSequence/)[0]
- @obj = Bio::Iprscan::Report.parse_txt_entry(test_txt)
- end
-
- def test_to_hash
- hsh = {"IPR008994" => [12, 13, 14].map {|x| @obj.matches[x] },
- "IPR000110" => [0, 1, 2].map {|x| @obj.matches[x] },
- "IPR003029" => [3, 4, 5, 6, 7, 8, 9, 10, 11].map {|x| @obj.matches[x] },
- "NULL" => [15].map {|x| @obj.matches[x] }}
- assert_equal(hsh.keys.sort, @obj.to_hash.keys.sort)
- assert_equal(hsh, @obj.to_hash)
- end
- def test_to_hash_match?
- @obj.to_hash.each do |ipr_id, matches|
- matches.each do |match|
- assert_equal(ipr_id, match.ipr_id)
- end
- end
- end
- end # TestIprscanTxtEntryList
- class TestIprscanTxtReport < Test::Unit::TestCase
- def setup
- @test_txt = Bio::TestIprscanData.txt_format
- end
- def test_parse_txt
- Bio::Iprscan::Report.parse_txt(@test_txt) do |report|
- assert_equal(Bio::Iprscan::Report, report.class)
- end
- end
- end # TestIprscanTxtReport
- class TestIprscanRawReport < Test::Unit::TestCase
- def setup
- test_raw = Bio::TestIprscanData.raw_format
- entry = ''
- @obj = []
- while line = test_raw.gets
- if entry.split("\t").first == line.split("\t").first
- entry << line
- elsif entry != '' and entry.split("\t").first != line.split("\t").first
- @obj << Bio::Iprscan::Report.parse_raw_entry(entry)
- entry = ''
- else
- entry << line
- end
- end
- @obj << Bio::Iprscan::Report.parse_raw_entry(entry)
- end
- def test_self_reports_in_raw
- io = File.open(File.join(Bio::TestIprscanData::TestDataIprscan,
- "merged.raw"))
- result = []
- Bio::Iprscan::Report.parse_raw(io) {|x| result << x }
- assert_equal(@obj.size, result.size)
- assert_equal(@obj.first.query_id, result.first.query_id)
- assert_equal(@obj.first.query_id, result.first.query_id)
- assert_equal(@obj[2].query_id, result[2].query_id)
- assert_equal(@obj.last.query_id, result.last.query_id)
- end
-
- def test_obj
- assert_equal(3, @obj.size)
- end
-
- def test_query_id
- assert_equal('Q9RHD9', @obj.first.query_id)
- end
- def test_entry_id
- assert_equal('Q9RHD9', @obj.first.entry_id)
- end
- def test_query_length
- assert_equal(267, @obj.first.query_length)
- end
-
- def test_match_query_id
- assert_equal('Q9RHD9', @obj.first.matches.first.query_id)
- end
-
- def test_match_crc64
- assert_equal('D44DAE8C544CB7C1', @obj.first.matches.first.crc64)
- end
-
- def test_match_query_length
- assert_equal(267, @obj.first.matches.first.query_length)
- end
-
- def test_match_method
- assert_equal('HMMPfam', @obj.first.matches.first.method_name)
- end
-
- def test_match_accession
- assert_equal('PF00575', @obj.first.matches.first.accession)
- end
-
- def test_match_description
- assert_equal('S1', @obj.first.matches.first.description)
- end
-
- def test_match_match_start
- assert_equal(1, @obj.first.matches.first.match_start)
- end
-
- def test_match_match_end
- assert_equal(55, @obj.first.matches.first.match_end)
- end
-
- def test_match_evalue
- assert_equal('3.3E-6', @obj.first.matches.first.evalue)
- end
-
- def test_match_status
- assert_equal('T', @obj.first.matches.first.status)
- end
- def test_match_date
- assert_equal('11-Nov-2005', @obj.first.matches.first.date)
- end
- def test_match_ipr_id
- assert_equal('IPR003029', @obj.first.matches.first.ipr_id)
- end
- def test_match_ipr_description
- assert_equal('RNA binding S1', @obj.first.matches.first.ipr_description)
- end
- def test_match_go_terms
- ary = ["Biological Process:phosphorylation (GO:0016310)",
- "Molecular Function:transferase activity, transferring phosphorus-containing groups (GO:0016772)"]
- assert_equal(ary,
- @obj.last.matches.last.go_terms)
- end
- end
- class TestIprscanReport < Test::Unit::TestCase
- def setup
- @test_txt = Bio::TestIprscanData.txt_format.read.split(/\n\nSequence/)[0]
- @obj = Bio::Iprscan::Report.parse_txt_entry(@test_txt)
- @test_raw = Bio::TestIprscanData.raw_format.read.split("RS16_ECOLI")[0]
- end
- def test_to_raw
- # assert_equal(@test_raw.split("\n").sort,
- # @obj.format_raw.split("\n").sort)
- end
- def test_output_raw
- # assert_equal(@test_raw.split("\n").sort,
- # @obj.output(:raw).split("\n").sort)
- # assert_equal(@test_raw.split("\n").sort,
- # @obj.output('raw').split("\n").sort)
- end
- end # TestIprscanReport
- end