bio 1.4.3.0001 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +39 -33
  3. data/BSDL +22 -0
  4. data/COPYING +2 -2
  5. data/COPYING.ja +36 -36
  6. data/ChangeLog +2404 -1025
  7. data/KNOWN_ISSUES.rdoc +15 -55
  8. data/README.rdoc +17 -23
  9. data/RELEASE_NOTES.rdoc +246 -183
  10. data/Rakefile +3 -2
  11. data/bin/br_biofetch.rb +29 -5
  12. data/bioruby.gemspec +15 -32
  13. data/bioruby.gemspec.erb +10 -20
  14. data/doc/ChangeLog-1.4.3 +1478 -0
  15. data/doc/RELEASE_NOTES-1.4.3.rdoc +204 -0
  16. data/doc/Tutorial.rd +0 -6
  17. data/doc/Tutorial.rd.html +7 -12
  18. data/doc/Tutorial.rd.ja +960 -1064
  19. data/doc/Tutorial.rd.ja.html +977 -1067
  20. data/gemfiles/Gemfile.travis-jruby1.8 +2 -1
  21. data/gemfiles/Gemfile.travis-jruby1.9 +2 -4
  22. data/gemfiles/Gemfile.travis-rbx +13 -0
  23. data/gemfiles/Gemfile.travis-ruby1.8 +2 -1
  24. data/gemfiles/Gemfile.travis-ruby1.9 +2 -4
  25. data/gemfiles/Gemfile.travis-ruby2.2 +9 -0
  26. data/lib/bio.rb +10 -43
  27. data/lib/bio/alignment.rb +8 -14
  28. data/lib/bio/appl/blast.rb +1 -2
  29. data/lib/bio/appl/blast/format0.rb +18 -7
  30. data/lib/bio/appl/blast/remote.rb +0 -9
  31. data/lib/bio/appl/blast/report.rb +1 -1
  32. data/lib/bio/appl/clustalw/report.rb +3 -1
  33. data/lib/bio/appl/genscan/report.rb +1 -2
  34. data/lib/bio/appl/iprscan/report.rb +1 -2
  35. data/lib/bio/appl/meme/mast.rb +4 -4
  36. data/lib/bio/appl/meme/mast/report.rb +1 -1
  37. data/lib/bio/appl/paml/codeml.rb +2 -2
  38. data/lib/bio/appl/paml/codeml/report.rb +1 -0
  39. data/lib/bio/appl/paml/common.rb +1 -1
  40. data/lib/bio/appl/sosui/report.rb +1 -2
  41. data/lib/bio/command.rb +62 -2
  42. data/lib/bio/data/aa.rb +13 -31
  43. data/lib/bio/data/codontable.rb +1 -2
  44. data/lib/bio/db/biosql/biosql_to_biosequence.rb +1 -0
  45. data/lib/bio/db/biosql/sequence.rb +1 -1
  46. data/lib/bio/db/embl/common.rb +1 -1
  47. data/lib/bio/db/embl/embl.rb +5 -4
  48. data/lib/bio/db/embl/format_embl.rb +3 -3
  49. data/lib/bio/db/embl/sptr.rb +9 -1444
  50. data/lib/bio/db/embl/swissprot.rb +12 -29
  51. data/lib/bio/db/embl/trembl.rb +13 -30
  52. data/lib/bio/db/embl/uniprot.rb +12 -29
  53. data/lib/bio/db/embl/uniprotkb.rb +1455 -0
  54. data/lib/bio/db/fasta.rb +17 -0
  55. data/lib/bio/db/fasta/defline.rb +1 -3
  56. data/lib/bio/db/fastq.rb +1 -1
  57. data/lib/bio/db/genbank/ddbj.rb +9 -5
  58. data/lib/bio/db/genbank/refseq.rb +11 -3
  59. data/lib/bio/db/gff.rb +3 -4
  60. data/lib/bio/db/go.rb +5 -6
  61. data/lib/bio/db/kegg/module.rb +4 -5
  62. data/lib/bio/db/kegg/pathway.rb +4 -5
  63. data/lib/bio/db/kegg/reaction.rb +1 -1
  64. data/lib/bio/db/nexus.rb +3 -2
  65. data/lib/bio/db/pdb/pdb.rb +2 -2
  66. data/lib/bio/db/phyloxml/phyloxml_elements.rb +82 -59
  67. data/lib/bio/db/phyloxml/phyloxml_parser.rb +2 -2
  68. data/lib/bio/db/phyloxml/phyloxml_writer.rb +1 -2
  69. data/lib/bio/db/sanger_chromatogram/chromatogram.rb +1 -2
  70. data/lib/bio/db/transfac.rb +1 -1
  71. data/lib/bio/io/das.rb +40 -41
  72. data/lib/bio/io/fastacmd.rb +0 -16
  73. data/lib/bio/io/fetch.rb +111 -55
  74. data/lib/bio/io/flatfile/buffer.rb +4 -5
  75. data/lib/bio/io/hinv.rb +2 -3
  76. data/lib/bio/io/ncbirest.rb +43 -6
  77. data/lib/bio/io/pubmed.rb +76 -81
  78. data/lib/bio/io/togows.rb +33 -10
  79. data/lib/bio/map.rb +1 -1
  80. data/lib/bio/pathway.rb +1 -1
  81. data/lib/bio/sequence/compat.rb +1 -1
  82. data/lib/bio/sequence/na.rb +63 -12
  83. data/lib/bio/shell.rb +0 -2
  84. data/lib/bio/shell/core.rb +5 -6
  85. data/lib/bio/shell/interface.rb +3 -4
  86. data/lib/bio/shell/irb.rb +1 -2
  87. data/lib/bio/shell/plugin/entry.rb +2 -3
  88. data/lib/bio/shell/plugin/seq.rb +7 -6
  89. data/lib/bio/shell/setup.rb +1 -2
  90. data/lib/bio/tree.rb +2 -2
  91. data/lib/bio/util/contingency_table.rb +0 -2
  92. data/lib/bio/util/restriction_enzyme/range/sequence_range.rb +2 -2
  93. data/lib/bio/util/sirna.rb +76 -16
  94. data/lib/bio/version.rb +8 -9
  95. data/sample/benchmark_clustalw_report.rb +47 -0
  96. data/sample/biofetch.rb +248 -151
  97. data/setup.rb +6 -7
  98. data/test/data/clustalw/example1-seqnos.aln +58 -0
  99. data/test/network/bio/appl/blast/test_remote.rb +1 -15
  100. data/test/network/bio/appl/test_blast.rb +0 -12
  101. data/test/network/bio/io/test_pubmed.rb +49 -0
  102. data/test/network/bio/io/test_togows.rb +0 -1
  103. data/test/network/bio/test_command.rb +65 -2
  104. data/test/unit/bio/appl/bl2seq/test_report.rb +0 -1
  105. data/test/unit/bio/appl/blast/test_report.rb +110 -48
  106. data/test/unit/bio/appl/clustalw/test_report.rb +67 -51
  107. data/test/unit/bio/appl/sim4/test_report.rb +46 -17
  108. data/test/unit/bio/appl/test_blast.rb +2 -2
  109. data/test/unit/bio/db/embl/test_embl.rb +0 -1
  110. data/test/unit/bio/db/embl/test_embl_rel89.rb +0 -1
  111. data/test/unit/bio/db/embl/{test_sptr.rb → test_uniprotkb.rb} +111 -115
  112. data/test/unit/bio/db/embl/{test_uniprot_new_part.rb → test_uniprotkb_new_part.rb} +11 -11
  113. data/test/unit/bio/db/genbank/test_genbank.rb +10 -4
  114. data/test/unit/bio/db/pdb/test_pdb.rb +14 -8
  115. data/test/unit/bio/db/test_fasta.rb +41 -1
  116. data/test/unit/bio/db/test_fastq.rb +14 -4
  117. data/test/unit/bio/db/test_gff.rb +2 -2
  118. data/test/unit/bio/db/test_phyloxml.rb +30 -30
  119. data/test/unit/bio/db/test_phyloxml_writer.rb +2 -2
  120. data/test/unit/bio/io/flatfile/test_autodetection.rb +1 -2
  121. data/test/unit/bio/io/flatfile/test_buffer.rb +7 -1
  122. data/test/unit/bio/io/flatfile/test_splitter.rb +1 -1
  123. data/test/unit/bio/io/test_togows.rb +3 -2
  124. data/test/unit/bio/sequence/test_dblink.rb +1 -1
  125. data/test/unit/bio/sequence/test_na.rb +3 -1
  126. data/test/unit/bio/test_alignment.rb +1 -2
  127. data/test/unit/bio/test_command.rb +5 -4
  128. data/test/unit/bio/test_db.rb +4 -2
  129. data/test/unit/bio/test_pathway.rb +25 -10
  130. data/test/unit/bio/util/test_sirna.rb +22 -22
  131. metadata +656 -1430
  132. data/doc/KEGG_API.rd +0 -1843
  133. data/doc/KEGG_API.rd.ja +0 -1834
  134. data/extconf.rb +0 -2
  135. data/lib/bio/appl/blast/ddbj.rb +0 -131
  136. data/lib/bio/db/kegg/taxonomy.rb +0 -280
  137. data/lib/bio/io/dbget.rb +0 -194
  138. data/lib/bio/io/ddbjrest.rb +0 -344
  139. data/lib/bio/io/ddbjxml.rb +0 -458
  140. data/lib/bio/io/ebisoap.rb +0 -158
  141. data/lib/bio/io/ensembl.rb +0 -229
  142. data/lib/bio/io/higet.rb +0 -73
  143. data/lib/bio/io/keggapi.rb +0 -363
  144. data/lib/bio/io/ncbisoap.rb +0 -156
  145. data/lib/bio/io/soapwsdl.rb +0 -119
  146. data/lib/bio/shell/plugin/keggapi.rb +0 -181
  147. data/lib/bio/shell/plugin/soap.rb +0 -87
  148. data/sample/dbget +0 -37
  149. data/sample/demo_ddbjxml.rb +0 -212
  150. data/sample/demo_kegg_taxonomy.rb +0 -92
  151. data/sample/demo_keggapi.rb +0 -502
  152. data/sample/psortplot_html.rb +0 -214
  153. data/test/network/bio/io/test_ddbjrest.rb +0 -47
  154. data/test/network/bio/io/test_ensembl.rb +0 -230
  155. data/test/network/bio/io/test_soapwsdl.rb +0 -53
  156. data/test/unit/bio/io/test_ddbjxml.rb +0 -81
  157. data/test/unit/bio/io/test_ensembl.rb +0 -111
  158. data/test/unit/bio/io/test_soapwsdl.rb +0 -33
@@ -1,214 +0,0 @@
1
- #!/usr/bin/env ruby
2
- #
3
- # psortplot_html.rb - A KEGG API demo script. Generates a HTML file of
4
- # genes marked by PSORT II predictions onto a
5
- # KEGG/PATHWAY map.
6
- #
7
- # Usage:
8
- #
9
- # % ruby psortplot_html.rb
10
- # % cat sce00010_psort2.html
11
- # % ruby psortplot_html.rb path:eco00010
12
- # % cat eco00010_psort2.html
13
- #
14
- # Copyright:: Copyright (C) 2005
15
- # Mitsuteru C. Nakao <n@bioruby.org>
16
- # License:: The Ruby License
17
- #
18
- # $Id: psortplot_html.rb,v 1.3 2007/04/05 23:35:42 trevor Exp $
19
- #
20
-
21
- require 'bio'
22
-
23
- class KEGG
24
- DBGET_BASEURI = 'http://kegg.com/dbget-bin'
25
- WWW_BGET_BASEURI = DBGET_BASEURI + '/www_bget'
26
- WWW_PATHWAY_BASEURI = DBGET_BASEURI + '/get_pathway'
27
-
28
- # path := path:sce00010
29
- def self.link_pathway(path0)
30
- path, path = path0.split(':')
31
- org_name = path.scan(/(^\w{3})/).to_s
32
- mapno = path.sub(org_name, '')
33
- str = "<a href='#{WWW_PATHWAY_BASEURI}?org_name=#{org_name}&mapno=#{mapno}'>#{path0}</a>"
34
- end
35
-
36
- # ec_num := ec:1.2.3.4
37
- def self.link_ec(ec_num)
38
- ec = ec_num.sub(/^ec:/, '')
39
- str = "<a href='#{WWW_BGET_BASEURI}?enzyme+#{ec}'>#{ec_num}</a>"
40
- return str
41
- end
42
-
43
- # gene := eco:b0002
44
- def self.link_genes(gene)
45
- org_name, gene_name = gene.split(':')
46
- str = "<a href='#{WWW_BGET_BASEURI}?#{org_name}+#{gene_name}'>#{gene}</a>"
47
- return str
48
- end
49
- end
50
-
51
-
52
- class PSORT
53
- COLOR_Palette = {
54
- 'csk' => "#FF0000", # 'cytoskeletal'
55
- 'cyt' => "#FF8000", # 'cytoplasmic'
56
- 'nuc' => "#FFFF00", # 'nuclear'
57
- 'mit' => "#80FF00", # 'mitochondrial'
58
- 'ves' => "#00FF00", # 'vesicles of secretory system'
59
- 'end' => "#00FF80", # 'endoplasmic reticulum'
60
- 'gol' => "#00FFFF", # 'Golgi'
61
- 'vac' => "#0080FF", # 'vacuolar'
62
- 'pla' => "#0000FF", # 'plasma membrane'
63
- 'pox' => "#8000FF", # 'peroxisomal'
64
- 'exc' => "#FF00FF", # 'extracellular, including cell wall'
65
- '---' => "#FF0080" # 'other'
66
- }
67
- end
68
-
69
-
70
-
71
-
72
- keggapi = Bio::KEGG::API.new
73
- psort2serv = Bio::PSORT::PSORT2.imsut
74
-
75
- # Obtains a list of genes on specified pathway
76
- pathway = ARGV.shift || "path:sce00010"
77
- genes = keggapi.get_genes_by_pathway(pathway)
78
-
79
- scl = Hash.new # protein subcelluler localizations
80
- ec = Hash.new # EC numbers
81
-
82
- serial = 0
83
- sync_default = $stdout.sync
84
- $stdout.sync = true
85
- genes.each do |gene|
86
- print "#{(serial += 1).to_s.rjust(genes.size.to_s.size)}\t#{gene}\t"
87
- # Obtains amino acid sequence from KEGG GENES entry
88
- aaseq = keggapi.get_aaseqs([gene])
89
-
90
- # Predicts protein subcellualr localization
91
- result = psort2serv.exec(aaseq)
92
- scl[gene] = result.pred
93
- print "#{scl[gene]}\t"
94
-
95
- # Obtains the EC number from KEGG GENES entry
96
- ec[gene] = keggapi.get_enzymes_by_gene(gene)
97
- puts "#{ec[gene].inspect}"
98
- end
99
- $stdout.sync = sync_default
100
-
101
-
102
-
103
-
104
- fg_list = Array.new
105
- bg_list = Array.new
106
-
107
- genes.each do |gene|
108
- fg_list << "#FF0000"
109
- bg_list << PSORT::COLOR_Palette[scl[gene]]
110
- end
111
-
112
- # coloring KEGG pathway according to gene's localization
113
- url = keggapi.color_pathway_by_objects(pathway, genes, fg_list, bg_list)
114
- puts "#{url} downloaded."
115
-
116
- # remove "path:" prefix from pathway_id
117
- path_code = pathway.sub(/^path:/, '')
118
-
119
- # save the result image
120
- image_file = "#{path_code}_psort2.gif"
121
- begin
122
- keggapi.save_image(url, image_file)
123
- end
124
-
125
-
126
- # create html with a color palette
127
- html = <<END
128
- <html>
129
- <head>
130
- <title>PSORT II prediction protein subcellular localization map of KEGG/PATHWAY (#{pathway})</title>
131
- <style>
132
- table { border-collapse: collapse; }
133
- td { border: 1px solid black; padding: 5px; }
134
- td.outer { border: none; vertical-align: top; }
135
- </style>
136
- </head>
137
- <body>
138
- <h1><li><a href="http://psort.ims.u-tokyo.ac.jp/helpwww2.html">PSORT II</a> prediction protein subcellular localization map of <a href="http://kegg.com/kegg/pathway.html">KEGG/PATHWAY</a> (<a href="">#{KEGG.link_pathway(pathway)})</h1>
139
-
140
- <table>
141
- <tr>
142
- <td class=outer>
143
- <table>
144
- <tr>
145
- <th></th>
146
- <th>EC</th>
147
- <th>Gene</th>
148
- <th>Localization</th>
149
- </tr>
150
- END
151
-
152
-
153
- # generate gene table with localization
154
- names = Bio::PSORT::PSORT2::SclNames
155
- multi_genes = Hash.new(0)
156
-
157
- ec.values.flatten.sort.uniq.each do |ec_num|
158
- ec.find_all {|x| x[1].include?(ec_num) }.each do |gene|
159
- gene = gene[0]
160
- loc = scl[gene]
161
- color = PSORT::COLOR_Palette[loc]
162
- name = names[loc]
163
- multi_genes[gene] += 1
164
-
165
- html += <<END
166
- <tr>
167
- <td>#{multi_genes[gene]}</td>
168
- <td>#{KEGG.link_ec(ec_num)}</td>
169
- <td>#{KEGG.link_genes(gene)}</td>
170
- <td bgcolor="#{color}">#{name}</td>
171
- </tr>
172
- END
173
- end
174
- end
175
-
176
- html += <<END
177
- </table>
178
- </td>
179
- <td class=outer>
180
- <table>
181
- <tr>
182
- <th>Code</th>
183
- <th>Color</th>
184
- </tr>
185
- END
186
-
187
- # generate color code table also
188
- PSORT::COLOR_Palette.sort.each do |code, color|
189
- html += <<END
190
- <tr>
191
- <td>#{code}</td>
192
- <td bgcolor="#{color}">#{names[code]}</td>
193
- </tr>
194
- END
195
- end
196
-
197
- html += <<END
198
- </table>
199
- </td>
200
- </tr>
201
- </table>
202
- <br>
203
- <img src="#{image_file}">
204
- </body>
205
- </html>
206
- END
207
-
208
- # save generated HTML file
209
- html_file = "#{path_code}_psort2.html"
210
- File.open(html_file, "w+") do |file|
211
- file.puts html
212
- end
213
-
214
- puts "Open #{html_file}"
@@ -1,47 +0,0 @@
1
- #
2
- # test/functional/bio/io/test_ddbjrest.rb - Functional test for Bio::DDBJ::REST
3
- #
4
- # Copyright:: Copyright (C) 2011
5
- # Naohisa Goto <ng@bioruby.org>
6
- # License:: The Ruby License
7
- #
8
-
9
- # loading helper routine for testing bioruby
10
- require 'pathname'
11
- load Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 3,
12
- 'bioruby_test_helper.rb')).cleanpath.to_s
13
-
14
- # libraries needed for the tests
15
- require 'bio/io/ddbjrest'
16
- require 'test/unit'
17
-
18
- module Bio
19
- module NetTestDDBJREST
20
-
21
- class TestDDBJ < Test::Unit::TestCase
22
-
23
- def setup
24
- @obj = Bio::DDBJ::REST::DDBJ.new
25
- end
26
-
27
- def test_countBasePair
28
- text = @obj.countBasePair("AF237819")
29
- expected = {
30
- "a" => 47,
31
- "t" => 38,
32
- "g" => 48,
33
- "c" => 38
34
- }
35
- h = {}
36
- text.each_line do |line|
37
- base, count, percent = line.split(/\t/)
38
- count = count.to_i
39
- h[base] = count if count > 0
40
- end
41
- assert_equal(expected, h)
42
- end
43
-
44
- end #class TestDDBJ
45
-
46
- end #module NetTestDDBJREST
47
- end #module Bio
@@ -1,230 +0,0 @@
1
- #
2
- # test/functional/bio/io/test_ensembl.rb - Functional test for Bio::Ensembl
3
- #
4
- # Copyright:: Copyright (C) 2007
5
- # Mitsuteru C. Nakao <n@bioruby.org>
6
- # License:: The Ruby License
7
- #
8
- # $Id:$
9
- #
10
-
11
- # loading helper routine for testing bioruby
12
- require 'pathname'
13
- load Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 3,
14
- 'bioruby_test_helper.rb')).cleanpath.to_s
15
-
16
- # libraries needed for the tests
17
- require 'test/unit'
18
- require 'bio/io/ensembl'
19
-
20
- module Bio
21
-
22
- class FuncTestEnsembl < Test::Unit::TestCase
23
- def setup
24
- @serv = Bio::Ensembl.new('Homo_sapiens')
25
- end
26
-
27
- def test_class
28
- assert_equal(Bio::Ensembl, @serv.class)
29
- end
30
- end
31
-
32
- class FuncTestEnsemblHuman < Test::Unit::TestCase
33
- def setup
34
- @serv = Bio::Ensembl.human
35
- end
36
-
37
- def test_organism
38
- assert_equal("Homo_sapiens", @serv.organism)
39
- end
40
-
41
- def test_server
42
- assert_equal("http://www.ensembl.org", @serv.server)
43
- end
44
- end
45
-
46
- class FuncTestEnsemblHumanExportView < Test::Unit::TestCase
47
- def setup
48
- @serv = Bio::Ensembl.new('Homo_sapiens',
49
- 'http://jul2008.archive.ensembl.org')
50
- end
51
-
52
- def test_fna_exportview
53
- seq = ">4 dna:chromosome chromosome:NCBI36:4:1149206:1149209:1\nGAGA\n"
54
- fna = @serv.exportview(4, 1149206, 1149209)
55
- assert_equal(seq, fna)
56
- end
57
-
58
- def test_fasta_exportview_with_hash_4th_params
59
- fna = @serv.exportview(4, 1149206, 1149209, :upstream => 10)
60
- fna10 = @serv.exportview(4, 1149196, 1149209)
61
- assert_equal(fna10, fna)
62
- end
63
-
64
- def test_fna_exportview_with_named_args
65
- seq = ">4 dna:chromosome chromosome:NCBI36:4:1149206:1149209:1\nGAGA\n"
66
- fna = @serv.exportview(:seq_region_name => 4,
67
- :anchor1 => 1149206,
68
- :anchor2 => 1149209)
69
- assert_equal(seq, fna)
70
- end
71
-
72
- def test_fasta_exportview_with_named_args_and_hash_4th_params
73
- fna = @serv.exportview(:seq_region_name => 4,
74
- :anchor1 => 1149206,
75
- :anchor2 => 1149209,
76
- :upstream => 10)
77
- fna10 = @serv.exportview(:seq_region_name => 4,
78
- :anchor1 => 1149196,
79
- :anchor2 => 1149209)
80
- assert_equal(fna10, fna)
81
- end
82
-
83
- def test_gff_exportview_for_empty_result
84
- gff = @serv.exportview(4, 1149206, 1149209, ['gene'])
85
- assert_equal('', gff)
86
- end
87
-
88
- def test_gff_exportview
89
- # OR1A1 (Olfactory receptor 1A1)
90
- lines = [ [ "17",
91
- "Ensembl",
92
- "Gene",
93
- "3065665",
94
- "3066594",
95
- ".",
96
- "+",
97
- "1",
98
- "gene_id=ENSG00000172146; transcript_id=ENST00000304094; exon_id=ENSE00001137815; gene_type=KNOWN_protein_coding"
99
- ],
100
- [ "17",
101
- "Vega",
102
- "Gene",
103
- "3065665",
104
- "3066594",
105
- ".",
106
- "+",
107
- "1",
108
- "gene_id=OTTHUMG00000090637; transcript_id=OTTHUMT00000207292; exon_id=OTTHUME00001080001; gene_type=KNOWN_protein_coding"
109
- ]
110
- ]
111
- line = lines.collect { |x| x.join("\t") + "\n" }.join('')
112
- gff = @serv.exportview(17, 3065665, 3066594, ['gene'])
113
- assert_equal(line, gff)
114
- end
115
-
116
- def test_gff_exportview_with_named_args_for_empty_result
117
- gff = @serv.exportview(:seq_region_name => 4,
118
- :anchor1 => 1149206,
119
- :anchor2 => 1149209,
120
- :options => ['gene'])
121
- assert_equal('', gff)
122
- end
123
-
124
- def test_gff_exportview_with_named_args
125
- # OR1A1 (Olfactory receptor 1A1)
126
- lines = [ [ "17",
127
- "Ensembl",
128
- "Gene",
129
- "3065665",
130
- "3066594",
131
- ".",
132
- "+",
133
- "1",
134
- "gene_id=ENSG00000172146; transcript_id=ENST00000304094; exon_id=ENSE00001137815; gene_type=KNOWN_protein_coding"
135
- ],
136
- [ "17",
137
- "Vega",
138
- "Gene",
139
- "3065665",
140
- "3066594",
141
- ".",
142
- "+",
143
- "1",
144
- "gene_id=OTTHUMG00000090637; transcript_id=OTTHUMT00000207292; exon_id=OTTHUME00001080001; gene_type=KNOWN_protein_coding"
145
- ]
146
- ]
147
- line = lines.collect { |x| x.join("\t") + "\n" }.join('')
148
- gff = @serv.exportview(:seq_region_name => 17,
149
- :anchor1 => 3065665,
150
- :anchor2 => 3066594,
151
- :options => ['gene'])
152
- assert_equal(line, gff)
153
- end
154
-
155
- def test_tab_exportview_with_named_args_for_empty_result
156
- line = ["seqname",
157
- "source",
158
- "feature",
159
- "start",
160
- "end",
161
- "score",
162
- "strand",
163
- "frame",
164
- "gene_id",
165
- "transcript_id",
166
- "exon_id",
167
- "gene_type"].join("\t") + "\n"
168
- gff = @serv.exportview(:seq_region_name => 4,
169
- :anchor1 => 1149206,
170
- :anchor2 => 1149209,
171
- :options => ['gene'],
172
- :format => 'tab')
173
- assert_equal(line, gff)
174
- end
175
-
176
- def test_tab_exportview_with_named_args
177
- # OR1A1 (Olfactory receptor 1A1)
178
- lines = [ [ "seqname",
179
- "source",
180
- "feature",
181
- "start",
182
- "end",
183
- "score",
184
- "strand",
185
- "frame",
186
- "gene_id",
187
- "transcript_id",
188
- "exon_id",
189
- "gene_type"
190
- ],
191
- [ "17",
192
- "Ensembl",
193
- "Gene",
194
- "3065665",
195
- "3066594",
196
- ".",
197
- "+",
198
- "1",
199
- "ENSG00000172146",
200
- "ENST00000304094",
201
- "ENSE00001137815",
202
- "KNOWN_protein_coding"
203
- ],
204
- [ "17",
205
- "Vega",
206
- "Gene",
207
- "3065665",
208
- "3066594",
209
- ".",
210
- "+",
211
- "1",
212
- "OTTHUMG00000090637",
213
- "OTTHUMT00000207292",
214
- "OTTHUME00001080001",
215
- "KNOWN_protein_coding"
216
- ]
217
- ]
218
- line = lines.collect { |x| x.join("\t") + "\n" }.join('')
219
- gff = @serv.exportview(:seq_region_name => 17,
220
- :anchor1 => 3065665,
221
- :anchor2 => 3066594,
222
- :options => ['gene'],
223
- :format => 'tab')
224
- assert_equal(line, gff)
225
- end
226
-
227
-
228
- end
229
-
230
- end # module Bio