bio 0.7.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. data/bin/bioruby +71 -27
  2. data/bin/br_biofetch.rb +5 -17
  3. data/bin/br_bioflat.rb +14 -26
  4. data/bin/br_biogetseq.rb +6 -18
  5. data/bin/br_pmfetch.rb +6 -16
  6. data/doc/Changes-0.7.rd +35 -0
  7. data/doc/KEGG_API.rd +287 -172
  8. data/doc/KEGG_API.rd.ja +273 -160
  9. data/doc/Tutorial.rd +18 -9
  10. data/doc/Tutorial.rd.ja +656 -138
  11. data/lib/bio.rb +6 -24
  12. data/lib/bio/alignment.rb +5 -5
  13. data/lib/bio/appl/blast.rb +132 -98
  14. data/lib/bio/appl/blast/format0.rb +9 -19
  15. data/lib/bio/appl/blast/wublast.rb +5 -18
  16. data/lib/bio/appl/emboss.rb +40 -47
  17. data/lib/bio/appl/hmmer.rb +116 -82
  18. data/lib/bio/appl/hmmer/report.rb +509 -364
  19. data/lib/bio/appl/spidey/report.rb +7 -18
  20. data/lib/bio/data/na.rb +3 -21
  21. data/lib/bio/db.rb +3 -21
  22. data/lib/bio/db/aaindex.rb +147 -52
  23. data/lib/bio/db/embl/common.rb +27 -6
  24. data/lib/bio/db/embl/embl.rb +18 -10
  25. data/lib/bio/db/embl/sptr.rb +87 -67
  26. data/lib/bio/db/embl/swissprot.rb +32 -3
  27. data/lib/bio/db/embl/trembl.rb +32 -3
  28. data/lib/bio/db/embl/uniprot.rb +32 -3
  29. data/lib/bio/db/fasta.rb +327 -289
  30. data/lib/bio/db/medline.rb +25 -4
  31. data/lib/bio/db/nbrf.rb +12 -20
  32. data/lib/bio/db/pdb.rb +4 -1
  33. data/lib/bio/db/pdb/chemicalcomponent.rb +240 -0
  34. data/lib/bio/db/pdb/pdb.rb +13 -8
  35. data/lib/bio/db/rebase.rb +93 -97
  36. data/lib/bio/feature.rb +2 -31
  37. data/lib/bio/io/ddbjxml.rb +167 -139
  38. data/lib/bio/io/fastacmd.rb +89 -56
  39. data/lib/bio/io/flatfile.rb +994 -278
  40. data/lib/bio/io/flatfile/index.rb +257 -194
  41. data/lib/bio/io/flatfile/indexer.rb +37 -29
  42. data/lib/bio/reference.rb +147 -64
  43. data/lib/bio/sequence.rb +57 -417
  44. data/lib/bio/sequence/aa.rb +64 -0
  45. data/lib/bio/sequence/common.rb +175 -0
  46. data/lib/bio/sequence/compat.rb +68 -0
  47. data/lib/bio/sequence/format.rb +134 -0
  48. data/lib/bio/sequence/generic.rb +24 -0
  49. data/lib/bio/sequence/na.rb +189 -0
  50. data/lib/bio/shell.rb +9 -23
  51. data/lib/bio/shell/core.rb +130 -125
  52. data/lib/bio/shell/demo.rb +143 -0
  53. data/lib/bio/shell/{session.rb → interface.rb} +42 -40
  54. data/lib/bio/shell/object.rb +52 -0
  55. data/lib/bio/shell/plugin/codon.rb +4 -22
  56. data/lib/bio/shell/plugin/emboss.rb +23 -0
  57. data/lib/bio/shell/plugin/entry.rb +34 -25
  58. data/lib/bio/shell/plugin/flatfile.rb +5 -23
  59. data/lib/bio/shell/plugin/keggapi.rb +11 -24
  60. data/lib/bio/shell/plugin/midi.rb +5 -23
  61. data/lib/bio/shell/plugin/obda.rb +4 -22
  62. data/lib/bio/shell/plugin/seq.rb +6 -24
  63. data/lib/bio/shell/rails/Rakefile +10 -0
  64. data/lib/bio/shell/rails/app/controllers/application.rb +4 -0
  65. data/lib/bio/shell/rails/app/controllers/shell_controller.rb +94 -0
  66. data/lib/bio/shell/rails/app/helpers/application_helper.rb +3 -0
  67. data/lib/bio/shell/rails/app/models/shell_connection.rb +30 -0
  68. data/lib/bio/shell/rails/app/views/layouts/shell.rhtml +37 -0
  69. data/lib/bio/shell/rails/app/views/shell/history.rhtml +5 -0
  70. data/lib/bio/shell/rails/app/views/shell/index.rhtml +2 -0
  71. data/lib/bio/shell/rails/app/views/shell/show.rhtml +13 -0
  72. data/lib/bio/shell/rails/config/boot.rb +19 -0
  73. data/lib/bio/shell/rails/config/database.yml +85 -0
  74. data/lib/bio/shell/rails/config/environment.rb +53 -0
  75. data/lib/bio/shell/rails/config/environments/development.rb +19 -0
  76. data/lib/bio/shell/rails/config/environments/production.rb +19 -0
  77. data/lib/bio/shell/rails/config/environments/test.rb +19 -0
  78. data/lib/bio/shell/rails/config/routes.rb +19 -0
  79. data/lib/bio/shell/rails/doc/README_FOR_APP +2 -0
  80. data/lib/bio/shell/rails/public/404.html +8 -0
  81. data/lib/bio/shell/rails/public/500.html +8 -0
  82. data/lib/bio/shell/rails/public/dispatch.cgi +10 -0
  83. data/lib/bio/shell/rails/public/dispatch.fcgi +24 -0
  84. data/lib/bio/shell/rails/public/dispatch.rb +10 -0
  85. data/lib/bio/shell/rails/public/favicon.ico +0 -0
  86. data/lib/bio/shell/rails/public/images/icon.png +0 -0
  87. data/lib/bio/shell/rails/public/images/rails.png +0 -0
  88. data/lib/bio/shell/rails/public/index.html +277 -0
  89. data/lib/bio/shell/rails/public/javascripts/controls.js +750 -0
  90. data/lib/bio/shell/rails/public/javascripts/dragdrop.js +584 -0
  91. data/lib/bio/shell/rails/public/javascripts/effects.js +854 -0
  92. data/lib/bio/shell/rails/public/javascripts/prototype.js +1785 -0
  93. data/lib/bio/shell/rails/public/robots.txt +1 -0
  94. data/lib/bio/shell/rails/public/stylesheets/main.css +187 -0
  95. data/lib/bio/shell/rails/script/about +3 -0
  96. data/lib/bio/shell/rails/script/breakpointer +3 -0
  97. data/lib/bio/shell/rails/script/console +3 -0
  98. data/lib/bio/shell/rails/script/destroy +3 -0
  99. data/lib/bio/shell/rails/script/generate +3 -0
  100. data/lib/bio/shell/rails/script/performance/benchmarker +3 -0
  101. data/lib/bio/shell/rails/script/performance/profiler +3 -0
  102. data/lib/bio/shell/rails/script/plugin +3 -0
  103. data/lib/bio/shell/rails/script/process/reaper +3 -0
  104. data/lib/bio/shell/rails/script/process/spawner +3 -0
  105. data/lib/bio/shell/rails/script/process/spinner +3 -0
  106. data/lib/bio/shell/rails/script/runner +3 -0
  107. data/lib/bio/shell/rails/script/server +42 -0
  108. data/lib/bio/shell/rails/test/test_helper.rb +28 -0
  109. data/lib/bio/shell/web.rb +90 -0
  110. data/lib/bio/util/contingency_table.rb +231 -225
  111. data/sample/any2fasta.rb +59 -0
  112. data/test/data/HMMER/hmmpfam.out +64 -0
  113. data/test/data/HMMER/hmmsearch.out +88 -0
  114. data/test/data/aaindex/DAYM780301 +30 -0
  115. data/test/data/aaindex/PRAM900102 +20 -0
  116. data/test/data/bl2seq/cd8a_cd8b_blastp.bl2seq +53 -0
  117. data/test/data/bl2seq/cd8a_p53_e-5blastp.bl2seq +37 -0
  118. data/test/data/blast/{eco:b0002.faa → b0002.faa} +0 -0
  119. data/test/data/blast/{eco:b0002.faa.m0 → b0002.faa.m0} +2 -2
  120. data/test/data/blast/{eco:b0002.faa.m7 → b0002.faa.m7} +1 -1
  121. data/test/data/blast/{eco:b0002.faa.m8 → b0002.faa.m8} +0 -0
  122. data/test/unit/bio/appl/bl2seq/test_report.rb +134 -0
  123. data/test/unit/bio/appl/blast/test_report.rb +15 -12
  124. data/test/unit/bio/appl/blast/test_xmlparser.rb +4 -4
  125. data/test/unit/bio/appl/hmmer/test_report.rb +355 -0
  126. data/test/unit/bio/appl/test_blast.rb +5 -5
  127. data/test/unit/bio/data/test_na.rb +9 -18
  128. data/test/unit/bio/db/pdb/test_pdb.rb +169 -0
  129. data/test/unit/bio/db/test_aaindex.rb +197 -0
  130. data/test/unit/bio/io/test_fastacmd.rb +55 -0
  131. data/test/unit/bio/sequence/test_aa.rb +102 -0
  132. data/test/unit/bio/sequence/test_common.rb +178 -0
  133. data/test/unit/bio/sequence/test_compat.rb +82 -0
  134. data/test/unit/bio/sequence/test_na.rb +242 -0
  135. data/test/unit/bio/shell/plugin/test_seq.rb +29 -19
  136. data/test/unit/bio/test_alignment.rb +15 -7
  137. data/test/unit/bio/test_reference.rb +198 -0
  138. data/test/unit/bio/test_sequence.rb +4 -49
  139. data/test/unit/bio/test_shell.rb +2 -2
  140. metadata +118 -15
  141. data/lib/bio/io/brdb.rb +0 -103
  142. data/lib/bioruby.rb +0 -34
@@ -1,28 +1,68 @@
1
1
  #
2
- # bio/io/flatfile/index.rb - OBDA flatfile index
3
- #
4
- # Copyright (C) 2002 GOTO Naohisa <ngoto@gen-info.osaka-u.ac.jp>
5
- #
6
- # This library is free software; you can redistribute it and/or
7
- # modify it under the terms of the GNU Lesser General Public
8
- # License as published by the Free Software Foundation; either
9
- # version 2 of the License, or (at your option) any later version.
10
- #
11
- # This library is distributed in the hope that it will be useful,
12
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- # Lesser General Public License for more details.
15
- #
16
- # You should have received a copy of the GNU Lesser General Public
17
- # License along with this library; if not, write to the Free Software
18
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
- #
20
- # $Id: index.rb,v 1.15 2005/11/28 05:08:26 k Exp $
2
+ # = bio/io/flatfile/index.rb - OBDA flatfile index
21
3
  #
4
+ # Copyright:: Copyright (C) 2002
5
+ # GOTO Naohisa <ng@bioruby.org>
6
+ # License:: Ruby's
7
+ #
8
+ # $Id: index.rb,v 1.18 2006/02/22 08:40:31 ngoto Exp $
9
+ #
10
+ # = About Bio::FlatFileIndex
11
+ #
12
+ # Please refer documents of following classes.
13
+ # Classes/modules marked '#' are internal use only.
14
+ #
15
+ # == Classes/modules in index.rb
16
+ # * class Bio::FlatFileIndex
17
+ # * class Bio::FlatFileIndex::Results
18
+ # * module Bio::FlatFileIndex::DEBUG
19
+ # * #module Bio::FlatFileIndex::Template
20
+ # * #class Bio::FlatFileIndex::Template::NameSpace
21
+ # * #class Bio::FlatFileIndex::FileID
22
+ # * #class Bio::FlatFileIndex::FileIDs
23
+ # * #module Bio::FlatFileIndex::Flat_1
24
+ # * #class Bio::FlatFileIndex::Flat_1::Record
25
+ # * #class Bio::FlatFileIndex::Flat_1::FlatMappingFile
26
+ # * #class Bio::FlatFileIndex::Flat_1::PrimaryNameSpace
27
+ # * #class Bio::FlatFileIndex::Flat_1::SecondaryNameSpace
28
+ # * #class Bio::FlatFileIndex::NameSpaces
29
+ # * #class Bio::FlatFileIndex::DataBank
30
+ #
31
+ # == Classes/modules in indexer.rb
32
+ # * module Bio::FlatFileIndex::Indexer
33
+ # * #class Bio::FlatFileIndex::Indexer::NameSpace
34
+ # * #class Bio::FlatFileIndex::Indexer::NameSpaces
35
+ # * #module Bio::FlatFileIndex::Indexer::Parser
36
+ # * #class Bio::FlatFileIndex::Indexer::Parser::TemplateParser
37
+ # * #class Bio::FlatFileIndex::Indexer::Parser::GenBankParser
38
+ # * #class Bio::FlatFileIndex::Indexer::Parser::GenPeptParser
39
+ # * #class Bio::FlatFileIndex::Indexer::Parser::EMBLParser
40
+ # * #class Bio::FlatFileIndex::Indexer::Parser::SPTRParser
41
+ # * #class Bio::FlatFileIndex::Indexer::Parser::FastaFormatParser
42
+ # * #class Bio::FlatFileIndex::Indexer::Parser::MaXMLSequenceParser
43
+ # * #class Bio::FlatFileIndex::Indexer::Parser::MaXMLClusterParser
44
+ # * #class Bio::FlatFileIndex::Indexer::Parser::BlastDefaultParser
45
+ # * #class Bio::FlatFileIndex::Indexer::Parser::PDBChemicalComponentParser
46
+ #
47
+ # == Classes/modules in bdb.rb
48
+ # * #module Bio::FlatFileIndex::BDBDefault
49
+ # * #class Bio::FlatFileIndex::BDBWrapper
50
+ # * #module Bio::FlatFileIndex::BDB_1
51
+ # * #class Bio::FlatFileIndex::BDB_1::BDBMappingFile
52
+ # * #class Bio::FlatFileIndex::BDB_1::PrimaryNameSpace
53
+ # * #class Bio::FlatFileIndex::BDB_1::SecondaryNameSpace
54
+ #
55
+ # = References
56
+ # * ((<URL:http://obda.open-bio.org/>))
57
+ # * ((<URL:http://cvs.open-bio.org/cgi-bin/viewcvs/viewcvs.cgi/obda-specs/?cvsroot=obf-common>))
58
+ #
22
59
 
23
60
  require 'bio/io/flatfile/indexer'
24
61
 
25
62
  module Bio
63
+
64
+
65
+ # Bio::FlatFileIndex is a class for OBDA flatfile index.
26
66
  class FlatFileIndex
27
67
 
28
68
  autoload :Indexer, 'bio/io/flatfile/indexer'
@@ -30,10 +70,21 @@ module Bio
30
70
  autoload :BDBwrapper, 'bio/io/flatfile/bdb'
31
71
  autoload :BDB_1, 'bio/io/flatfile/bdb'
32
72
 
73
+ # magic string for flat/1 index
33
74
  MAGIC_FLAT = 'flat/1'
75
+
76
+ # magic string for BerkeleyDB/1 index
34
77
  MAGIC_BDB = 'BerkeleyDB/1'
35
78
 
36
79
  #########################################################
80
+
81
+ # Opens existing databank. Databank is a directory which contains
82
+ # indexed files and configuration files. The type of the databank
83
+ # (flat or BerkeleyDB) are determined automatically.
84
+ #
85
+ # If block is given, the databank object is passed to the block.
86
+ # The databank will be automatically closed when the block terminates.
87
+ #
37
88
  def self.open(name)
38
89
  if block_given? then
39
90
  begin
@@ -53,22 +104,38 @@ module Bio
53
104
  r
54
105
  end
55
106
 
107
+ # Opens existing databank. Databank is a directory which contains
108
+ # indexed files and configuration files. The type of the databank
109
+ # (flat or BerkeleyDB) are determined automatically.
110
+ #
111
+ # Unlike +FlatFileIndex.open+, block is not allowed.
112
+ #
56
113
  def initialize(name)
57
114
  @db = DataBank.open(name)
58
115
  end
59
116
 
60
117
  # common interface defined in registry.rb
118
+ # Searching databank and returns entry (or entries) as a string.
119
+ # Multiple entries (contatinated to one string) may be returned.
120
+ # Returns empty string if not found.
121
+ #
61
122
  def get_by_id(key)
62
123
  search(key).to_s
63
124
  end
64
125
 
126
+ #--
65
127
  # original methods
128
+ #++
129
+
130
+ # Closes the databank.
131
+ # Returns nil.
66
132
  def close
67
133
  check_closed?
68
134
  @db.close
69
135
  @db = nil
70
136
  end
71
137
 
138
+ # Returns true if already closed. Otherwise, returns false.
72
139
  def closed?
73
140
  if @db then
74
141
  false
@@ -77,6 +144,19 @@ module Bio
77
144
  end
78
145
  end
79
146
 
147
+ # Set default namespaces.
148
+ # <code>default_namespaces = nil</code>
149
+ # means all namespaces in the databank.
150
+ #
151
+ # <code>default_namespaces= [ str1, str2, ... ]</code>
152
+ # means set default namespeces to str1, str2, ...
153
+ #
154
+ # Default namespaces specified in this method only affect
155
+ # #get_by_id, #search, and #include? methods.
156
+ #
157
+ # Default of default namespaces is nil (that is, all namespaces
158
+ # are search destinations by default).
159
+ #
80
160
  def default_namespaces=(names)
81
161
  if names then
82
162
  @names = []
@@ -86,10 +166,14 @@ module Bio
86
166
  end
87
167
  end
88
168
 
169
+ # Returns default namespaces.
170
+ # Returns an array of strings or nil.
171
+ # nil means all namespaces.
89
172
  def default_namespaces
90
173
  @names
91
174
  end
92
175
 
176
+ # Searching databank and returns a Bio::FlatFileIndex::Results object.
93
177
  def search(key)
94
178
  check_closed?
95
179
  if @names then
@@ -99,16 +183,30 @@ module Bio
99
183
  end
100
184
  end
101
185
 
186
+ # Searching only specified namespeces.
187
+ # Returns a Bio::FlatFileIndex::Results object.
188
+ #
102
189
  def search_namespaces(key, *names)
103
190
  check_closed?
104
191
  @db.search_namespaces(key, *names)
105
192
  end
106
193
 
194
+ # Searching only primary namespece.
195
+ # Returns a Bio::FlatFileIndex::Results object.
196
+ #
107
197
  def search_primary(key)
108
198
  check_closed?
109
199
  @db.search_primary(key)
110
200
  end
111
201
 
202
+ # Searching databank.
203
+ # If some entries are found, returns an array of
204
+ # unique IDs (primary identifiers).
205
+ # If not found anything, returns nil.
206
+ #
207
+ # This method is useful when search result is very large and
208
+ # #search method is very slow.
209
+ #
112
210
  def include?(key)
113
211
  check_closed?
114
212
  if @names then
@@ -123,6 +221,8 @@ module Bio
123
221
  end
124
222
  end
125
223
 
224
+ # Same as #include?, but serching only specified namespaces.
225
+ #
126
226
  def include_in_namespaces?(key, *names)
127
227
  check_closed?
128
228
  r = @db.search_namespaces_get_unique_id(key, *names)
@@ -133,6 +233,8 @@ module Bio
133
233
  end
134
234
  end
135
235
 
236
+ # Same as #include?, but serching only primary namespace.
237
+ #
136
238
  def include_in_primary?(key)
137
239
  check_closed?
138
240
  r = @db.search_primary_get_unique_id(key)
@@ -143,6 +245,9 @@ module Bio
143
245
  end
144
246
  end
145
247
 
248
+ # Returns names of namespaces defined in the databank.
249
+ # (example: [ 'LOCUS', 'ACCESSION', 'VERSION' ] )
250
+ #
146
251
  def namespaces
147
252
  check_closed?
148
253
  r = secondary_namespaces
@@ -150,38 +255,82 @@ module Bio
150
255
  r
151
256
  end
152
257
 
258
+ # Returns name of primary namespace as a string.
153
259
  def primary_namespace
154
260
  check_closed?
155
261
  @db.primary.name
156
262
  end
157
263
 
264
+ # Returns names of secondary namespaces as an array of strings.
158
265
  def secondary_namespaces
159
266
  check_closed?
160
267
  @db.secondary.names
161
268
  end
162
269
 
270
+ # Check consistency between the databank(index) and original flat files.
271
+ #
272
+ # If the original flat files are changed after creating
273
+ # the databank, raises RuntimeError.
274
+ #
275
+ # Note that this check only compares file sizes as
276
+ # described in the OBDA specification.
277
+ #
163
278
  def check_consistency
164
279
  check_closed?
165
280
  @db.check_consistency
166
281
  end
167
282
 
283
+ # If true is given, consistency checks will be performed every time
284
+ # accessing flatfiles. If nil/false, no checks are performed.
285
+ #
286
+ # By default, always_check_consistency is true.
287
+ #
168
288
  def always_check_consistency=(bool)
169
289
  @db.always_check=(bool)
170
290
  end
291
+
292
+ # If true, consistency checks will be performed every time
293
+ # accessing flatfiles. If nil/false, no checks are performed.
294
+ #
295
+ # By default, always_check_consistency is true.
296
+ #
171
297
  def always_check_consistency(bool)
172
298
  @db.always_check
173
299
  end
174
300
 
301
+ #--
175
302
  # private methods
303
+ #++
304
+
305
+ # If the databank is closed, raises IOError.
176
306
  def check_closed?
177
307
  @db or raise IOError, 'closed databank'
178
308
  end
179
309
  private :check_closed?
180
310
 
311
+ #--
181
312
  #########################################################
182
-
313
+ #++
314
+
315
+ # <code>Results</code> stores search results created by
316
+ # <code>Bio::FlatFileIndex</code> methods.
317
+ #
318
+ # Currently, this class inherits Hash, but internal
319
+ # structure of this class may be changed anytime.
320
+ # Only using methods described below are strongly recomended.
321
+ #
183
322
  class Results < Hash
184
323
 
324
+ # Add search results.
325
+ # "a + b" means "a OR b".
326
+ # * Example
327
+ # # I want to search 'ADH_IRON_1' OR 'ADH_IRON_2'
328
+ # db = Bio::FlatFIleIndex.new(location)
329
+ # a1 = db.search('ADH_IRON_1')
330
+ # a2 = db.search('ADH_IRON_2')
331
+ # # a1 and a2 are Bio::FlatFileIndex::Results objects.
332
+ # print a1 + a2
333
+ #
185
334
  def +(a)
186
335
  raise 'argument must be Results class' unless a.is_a?(self.class)
187
336
  res = self.dup
@@ -189,6 +338,16 @@ module Bio
189
338
  res
190
339
  end
191
340
 
341
+ # Returns set intersection of results.
342
+ # "a * b" means "a AND b".
343
+ # * Example
344
+ # # I want to search 'HIS_KIN' AND 'human'
345
+ # db = Bio::FlatFIleIndex.new(location)
346
+ # hk = db.search('HIS_KIN')
347
+ # hu = db.search('human')
348
+ # # hk and hu are Bio::FlatFileIndex::Results objects.
349
+ # print hk * hu
350
+ #
192
351
  def *(a)
193
352
  raise 'argument must be Results class' unless a.is_a?(self.class)
194
353
  res = self.class.new
@@ -196,26 +355,63 @@ module Bio
196
355
  res
197
356
  end
198
357
 
358
+ # Returns a string. (concatinated if multiple results exists).
359
+ # Same as <code>to_a.join('')</code>.
360
+ #
199
361
  def to_s
200
362
  self.values.join
201
363
  end
202
364
 
365
+ #--
203
366
  #alias each_orig each
367
+ #++
368
+
369
+ # alias for each_value.
204
370
  alias each each_value
371
+
372
+ # Iterates over each result (string).
373
+ # Same as to_a.each.
374
+ def each(&x) #:yields: str
375
+ each_value(&x)
376
+ end if false #dummy for RDoc
377
+
378
+ #--
205
379
  #alias to_a_orig to_a
380
+ #++
381
+
382
+ # alias for to_a.
206
383
  alias to_a values
207
384
 
385
+ # Returns an array of strings.
386
+ # If no search results are exist, returns an empty array.
387
+ #
388
+ def to_a; values; end if false #dummy for RDoc
389
+
390
+ # Returns number of results.
391
+ # Same as to_a.size.
392
+ def size; end if false #dummy for RDoc
393
+
208
394
  end #class Results
209
395
 
210
396
  #########################################################
211
397
 
398
+ # Module for output debug messages.
399
+ # Default setting: If $DEBUG or $VERBOSE is true, output debug
400
+ # messages to $stderr; Otherwise, don't output messages.
401
+ #
212
402
  module DEBUG
213
- @@out = STDERR
403
+ @@out = $stderr
214
404
  @@flag = nil
405
+
406
+ # Set debug messages output destination.
407
+ # If true is given, outputs to $stderr.
408
+ # If nil is given, outputs nothing.
409
+ # This method affects ALL of FlatFileIndex related objects/methods.
410
+ #
215
411
  def self.out=(io)
216
412
  if io then
217
413
  @@out = io
218
- @@out = STDERR if io == true
414
+ @@out = $stderr if io == true
219
415
  @@flag = true
220
416
  else
221
417
  @@out = nil
@@ -223,9 +419,13 @@ module Bio
223
419
  end
224
420
  @@out
225
421
  end
422
+
423
+ # get current debug messeages output destination
226
424
  def self.out
227
425
  @@out
228
426
  end
427
+
428
+ # prints debug messages
229
429
  def self.print(*arg)
230
430
  @@flag = true if $DEBUG or $VERBOSE
231
431
  @@out.print(*arg) if @@out and @@flag
@@ -234,7 +434,14 @@ module Bio
234
434
 
235
435
  #########################################################
236
436
 
437
+ # Templates
438
+ #
439
+ # Internal use only.
237
440
  module Template
441
+
442
+ # templates of namespace
443
+ #
444
+ # Internal use only.
238
445
  class NameSpace
239
446
  def filename
240
447
  # should be redifined in child class
@@ -275,6 +482,9 @@ module Bio
275
482
  end #class NameSpace
276
483
  end #module Template
277
484
 
485
+ # FileID class.
486
+ #
487
+ # Internal use only.
278
488
  class FileID
279
489
  def self.new_from_string(str)
280
490
  a = str.split("\t", 2)
@@ -355,6 +565,9 @@ module Bio
355
565
  end
356
566
  end #class FileID
357
567
 
568
+ # FileIDs class.
569
+ #
570
+ # Internal use only.
358
571
  class FileIDs < Array
359
572
  def initialize(prefix, hash)
360
573
  @hash = hash
@@ -471,7 +684,14 @@ module Bio
471
684
 
472
685
  end #class FileIDs
473
686
 
687
+ # module for flat/1 databank
688
+ #
689
+ # Internal use only.
474
690
  module Flat_1
691
+
692
+ # Record class.
693
+ #
694
+ # Internal use only.
475
695
  class Record
476
696
  def initialize(str, size = nil)
477
697
  a = str.split("\t")
@@ -500,6 +720,9 @@ module Bio
500
720
  end
501
721
  end #class Record
502
722
 
723
+ # FlatMappingFile class.
724
+ #
725
+ # Internal use only.
503
726
  class FlatMappingFile
504
727
  @@recsize_width = 4
505
728
  @@recsize_regex = /\A\d{4}\z/
@@ -785,6 +1008,9 @@ module Bio
785
1008
  end
786
1009
  end #class FlatMappingFile
787
1010
 
1011
+ # primary name space
1012
+ #
1013
+ # Internal use only.
788
1014
  class PrimaryNameSpace < Template::NameSpace
789
1015
  def mapping(filename)
790
1016
  FlatMappingFile.new(filename)
@@ -794,6 +1020,9 @@ module Bio
794
1020
  end
795
1021
  end #class PrimaryNameSpace
796
1022
 
1023
+ # secondary name space
1024
+ #
1025
+ # Internal use only.
797
1026
  class SecondaryNameSpace < Template::NameSpace
798
1027
  def mapping(filename)
799
1028
  FlatMappingFile.new(filename)
@@ -810,7 +1039,9 @@ module Bio
810
1039
  end #class SecondaryNameSpace
811
1040
  end #module Flat_1
812
1041
 
813
-
1042
+ # namespaces
1043
+ #
1044
+ # Internal use only.
814
1045
  class NameSpaces < Hash
815
1046
  def initialize(dbname, nsclass, arg)
816
1047
  @dbname = dbname
@@ -872,6 +1103,9 @@ module Bio
872
1103
  end
873
1104
  end #class NameSpaces
874
1105
 
1106
+ # databank
1107
+ #
1108
+ # Internal use only.
875
1109
  class DataBank
876
1110
  def self.file2hash(fileobj)
877
1111
  hash = {}
@@ -1135,174 +1369,3 @@ module Bio
1135
1369
  end #class FlatFileIndex
1136
1370
  end #module Bio
1137
1371
 
1138
- ######################################################################
1139
-
1140
- =begin
1141
-
1142
- = Bio::FlatFileIndex
1143
-
1144
- --- Bio::FlatFileIndex.new(dbname)
1145
- --- Bio::FlatFileIndex.open(dbname)
1146
-
1147
- Opens existing databank. Databank is a directory which contains
1148
- indexed files and configuration files. The type of the databank
1149
- (flat or BerkeleyDB) are determined automatically.
1150
-
1151
- --- Bio::FlatFileIndex#close
1152
-
1153
- Closes opened databank.
1154
-
1155
- --- Bio::FlatFileIndex#closed?
1156
-
1157
- Returns true if already closed. Otherwise, returns false.
1158
-
1159
- --- Bio::FlatFileIndex#get_by_id(key)
1160
-
1161
- Common interface defined in registry.rb.
1162
- Searching databank and returns entry (or entries) as a string.
1163
- Multiple entries (contatinated to one string) may be returned.
1164
- Returns empty string If not found.
1165
-
1166
- --- Bio::FlatFileIndex#search(key)
1167
-
1168
- Searching databank and returns a Bio::FlatFileIndex::Results object.
1169
-
1170
- --- Bio::FlatFileIndex#include?(key)
1171
-
1172
- Searching databank.
1173
- If found, returns an array of unique IDs (primary identifiers).
1174
- If not found, returns nil.
1175
-
1176
- --- Bio::FlatFileIndex#search_primary(key)
1177
-
1178
- Searching only primary namespece.
1179
- Returns a Bio::FlatFileIndex::Results object.
1180
-
1181
- --- Bio::FlatFileIndex#search_namespaces(key, name1, name2, ...)
1182
-
1183
- Searching only specific namespeces.
1184
- Returns a Bio::FlatFileIndex::Results object.
1185
-
1186
- --- Bio::FlatFileIndex#include_in_primary?(key)
1187
-
1188
- Same as #include?, but serching only primary namespace.
1189
-
1190
- --- Bio::FlatFileIndex#include_in_namespaces?(key, name1, name2, ...)
1191
-
1192
- Same as #include?, but serching only specific namespaces.
1193
-
1194
- --- Bio::FlatFileIndex#namespaces
1195
-
1196
- Returns names of namespaces defined in the databank.
1197
- (example: [ 'LOCUS', 'ACCESSION', 'VERSION' ] )
1198
-
1199
- --- Bio::FlatFileIndex#primary_namespace
1200
-
1201
- Returns name of primary namespace.
1202
-
1203
- --- Bio::FlatFileIndex#secondary_namespaces
1204
-
1205
- Returns names of secondary namespaces.
1206
-
1207
- --- Bio::FlatFileIndex#default_namespaces= [ str1, str2, ... ]
1208
- --- Bio::FlatFileIndex#default_namespaces= nil
1209
-
1210
- Set default namespaces.
1211
- nil means all namespaces in the databank.
1212
- Default namespaces specified in this method only affect
1213
- #get_by_id, #search, and #include? methods.
1214
- Default of default namespaces is nil (that is, all namespaces
1215
- are search destinations by default).
1216
-
1217
- --- Bio::FlatFileIndex#default_namespaces
1218
-
1219
- Returns default namespaces.
1220
- nil means all namespaces.
1221
-
1222
- --- Bio::FlatFileIndex#check_consistency
1223
-
1224
- Raise RuntimeError if flatfiles are changed after creating
1225
- the databank. (This check only compare file sizes as
1226
- described in the OBDA specification.)
1227
-
1228
- --- Bio::FlatFileIndex#always_check_consistency=(bool)
1229
- --- Bio::FlatFileIndex#always_check_consistency
1230
-
1231
- If true, consistency checks are performed every time
1232
- accessing flatfiles. If nil/false, no checks are performed.
1233
- Default of always_check_consistency is true.
1234
-
1235
- == Bio::FlatFileIndex::Results
1236
-
1237
- This object is made by Bio::FlatFileIndex methods.
1238
- Currently, this class inherits Hash, but internal
1239
- structure of this class may be changed anytime.
1240
- Only using methods described below are strongly recomended.
1241
-
1242
- --- Bio::FlatFileIndex::Results#to_a
1243
-
1244
- Returns an array of strings.
1245
- If no search results are exist, returns an empty array.
1246
-
1247
- --- Bio::FlatFileIndex::Results#each
1248
-
1249
- Iterates over each result(string).
1250
- Same as to_a.each.
1251
-
1252
- --- Bio::FlatFileIndex::Results#to_s
1253
-
1254
- Returns a string. (concatinated if multiple results exists).
1255
- Same as to_a.join('').
1256
-
1257
- --- Bio::FlatFileIndex::Results#size
1258
-
1259
- Returns number of results.
1260
- Same as to_a.size.
1261
-
1262
- --- Bio::FlatFileIndex::Results#+(res)
1263
-
1264
- Add search results.
1265
- "a + b" means "a OR b".
1266
- * Example
1267
- # I want to search 'ADH_IRON_1' OR 'ADH_IRON_2'
1268
- db = Bio::FlatFIleIndex.new(location)
1269
- a1 = db.search('ADH_IRON_1')
1270
- a2 = db.search('ADH_IRON_2')
1271
- # a1 and a2 are Bio::FlatFileIndex::Results objects.
1272
- print a1 + a2
1273
-
1274
- --- Bio::FlatFileIndex::Results#*(res)
1275
-
1276
- Returns set intersection of results.
1277
- "a * b" means "a AND b".
1278
- * Example
1279
- # I want to search 'HIS_KIN' AND 'human'
1280
- db = Bio::FlatFIleIndex.new(location)
1281
- hk = db.search('HIS_KIN')
1282
- hu = db.search('human')
1283
- # hk and hu are Bio::FlatFileIndex::Results objects.
1284
- print hk * hu
1285
-
1286
- == Bio::FlatFileIndex::DEBUG
1287
-
1288
- Module for output debug messages.
1289
- Default setting: If $DEBUG or $VERBOSE is true, output debug
1290
- messages to STDERR; Otherwise, don't output messages.
1291
-
1292
- --- Bio::FlatFileIndex::DEBUG.out=(io)
1293
-
1294
- Set debug messages output destination.
1295
- If true is given, outputs to STDERR.
1296
- If nil is given, outputs nothing.
1297
- This method affects ALL of FlatFileIndex related objects/methods.
1298
-
1299
- == Other classes/modules
1300
-
1301
- Classes/modules not described in this file are internal use only.
1302
-
1303
- == SEE ALSO
1304
-
1305
- * ((<URL:http://obda.open-bio.org/>))
1306
- * ((<URL:http://cvs.open-bio.org/cgi-bin/viewcvs/viewcvs.cgi/obda-specs/?cvsroot=obf-common>))
1307
-
1308
- =end