bio 1.5.2 → 1.6.0.pre.20181210

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 (93) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +12 -11
  3. data/ChangeLog +14 -3106
  4. data/{gemfiles/Gemfile.travis-ruby2.2 → Gemfile} +0 -1
  5. data/KNOWN_ISSUES.rdoc +0 -5
  6. data/README.rdoc +11 -18
  7. data/RELEASE_NOTES.rdoc +34 -291
  8. data/Rakefile +13 -9
  9. data/appveyor.yml +21 -0
  10. data/bioruby.gemspec +7 -78
  11. data/bioruby.gemspec.erb +8 -27
  12. data/doc/ChangeLog-1.5.0 +2919 -0
  13. data/doc/RELEASE_NOTES-1.5.0.rdoc +285 -0
  14. data/doc/Tutorial.rd +6 -108
  15. data/doc/Tutorial.rd.html +19 -98
  16. data/gemfiles/Gemfile.travis-jruby1.8 +3 -5
  17. data/gemfiles/Gemfile.travis-jruby1.9 +0 -3
  18. data/gemfiles/Gemfile.travis-rbx +0 -1
  19. data/gemfiles/Gemfile.travis-ruby1.8 +4 -4
  20. data/gemfiles/Gemfile.travis-ruby1.9 +0 -1
  21. data/gemfiles/prepare-gemspec.rb +4 -0
  22. data/lib/bio.rb +0 -10
  23. data/lib/bio/data/codontable.rb +99 -3
  24. data/lib/bio/io/togows.rb +5 -5
  25. data/lib/bio/version.rb +6 -8
  26. data/sample/test_restriction_enzyme_long.rb +1 -1
  27. data/test/unit/bio/data/test_codontable.rb +3 -0
  28. metadata +11 -77
  29. data/bin/bioruby +0 -47
  30. data/bin/br_biofetch.rb +0 -71
  31. data/bin/br_bioflat.rb +0 -293
  32. data/bin/br_biogetseq.rb +0 -45
  33. data/bin/br_pmfetch.rb +0 -422
  34. data/lib/bio/db/biosql/biosql_to_biosequence.rb +0 -78
  35. data/lib/bio/db/biosql/sequence.rb +0 -444
  36. data/lib/bio/db/phyloxml/phyloxml.xsd +0 -582
  37. data/lib/bio/db/phyloxml/phyloxml_elements.rb +0 -1197
  38. data/lib/bio/db/phyloxml/phyloxml_parser.rb +0 -1001
  39. data/lib/bio/db/phyloxml/phyloxml_writer.rb +0 -227
  40. data/lib/bio/io/biosql/ar-biosql.rb +0 -257
  41. data/lib/bio/io/biosql/biosql.rb +0 -39
  42. data/lib/bio/io/biosql/config/database.yml +0 -21
  43. data/lib/bio/io/sql.rb +0 -79
  44. data/lib/bio/shell.rb +0 -44
  45. data/lib/bio/shell/core.rb +0 -578
  46. data/lib/bio/shell/demo.rb +0 -146
  47. data/lib/bio/shell/interface.rb +0 -217
  48. data/lib/bio/shell/irb.rb +0 -94
  49. data/lib/bio/shell/object.rb +0 -71
  50. data/lib/bio/shell/plugin/blast.rb +0 -42
  51. data/lib/bio/shell/plugin/codon.rb +0 -218
  52. data/lib/bio/shell/plugin/das.rb +0 -58
  53. data/lib/bio/shell/plugin/emboss.rb +0 -23
  54. data/lib/bio/shell/plugin/entry.rb +0 -137
  55. data/lib/bio/shell/plugin/flatfile.rb +0 -101
  56. data/lib/bio/shell/plugin/midi.rb +0 -430
  57. data/lib/bio/shell/plugin/ncbirest.rb +0 -68
  58. data/lib/bio/shell/plugin/obda.rb +0 -45
  59. data/lib/bio/shell/plugin/psort.rb +0 -56
  60. data/lib/bio/shell/plugin/seq.rb +0 -248
  61. data/lib/bio/shell/plugin/togows.rb +0 -40
  62. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/bioruby_generator.rb +0 -29
  63. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_classes.rhtml +0 -4
  64. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_log.rhtml +0 -27
  65. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_methods.rhtml +0 -11
  66. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_modules.rhtml +0 -4
  67. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_variables.rhtml +0 -7
  68. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-bg.gif +0 -0
  69. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-gem.png +0 -0
  70. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-link.gif +0 -0
  71. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby.css +0 -368
  72. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby.rhtml +0 -47
  73. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby_controller.rb +0 -144
  74. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby_helper.rb +0 -47
  75. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/commands.rhtml +0 -8
  76. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/history.rhtml +0 -10
  77. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/index.rhtml +0 -26
  78. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/spinner.gif +0 -0
  79. data/lib/bio/shell/script.rb +0 -25
  80. data/lib/bio/shell/setup.rb +0 -108
  81. data/lib/bio/shell/web.rb +0 -102
  82. data/sample/test_phyloxml_big.rb +0 -205
  83. data/test/data/phyloxml/apaf.xml +0 -666
  84. data/test/data/phyloxml/bcl_2.xml +0 -2097
  85. data/test/data/phyloxml/made_up.xml +0 -144
  86. data/test/data/phyloxml/ncbi_taxonomy_mollusca_short.xml +0 -65
  87. data/test/data/phyloxml/phyloxml_examples.xml +0 -415
  88. data/test/unit/bio/db/biosql/tc_biosql.rb +0 -114
  89. data/test/unit/bio/db/biosql/ts_suite_biosql.rb +0 -8
  90. data/test/unit/bio/db/test_phyloxml.rb +0 -821
  91. data/test/unit/bio/db/test_phyloxml_writer.rb +0 -334
  92. data/test/unit/bio/shell/plugin/test_seq.rb +0 -187
  93. data/test/unit/bio/test_shell.rb +0 -20
@@ -1,227 +0,0 @@
1
- #
2
- # = bio/db/phyloxml_writer.rb - PhyloXML writer
3
- #
4
- # Copyright:: Copyright (C) 2009
5
- # Diana Jaunzeikare <latvianlinuxgirl@gmail.com>
6
- # License:: The Ruby License
7
- #
8
- #
9
- # == Description
10
- #
11
- # This file containts writer for PhyloXML.
12
- #
13
- # == Requirements
14
- #
15
- # Libxml2 XML parser is required. Install libxml-ruby bindings from
16
- # http://libxml.rubyforge.org or
17
- #
18
- # gem install -r libxml-ruby
19
- #
20
- # == References
21
- #
22
- # * http://www.phyloxml.org
23
- #
24
- # * https://www.nescent.org/wg_phyloinformatics/PhyloSoC:PhyloXML_support_in_BioRuby
25
-
26
- require 'libxml'
27
- require 'bio/db/phyloxml/phyloxml_elements'
28
-
29
- module Bio
30
-
31
- module PhyloXML
32
-
33
- # == Description
34
- #
35
- # Bio::PhyloXML::Writer is for writing phyloXML (version 1.10) format files.
36
- #
37
- # == Requirements
38
- #
39
- # Libxml2 XML parser is required. Install libxml-ruby bindings from
40
- # http://libxml.rubyforge.org or
41
- #
42
- # gem install -r libxml-ruby
43
- #
44
- # == Usage
45
- #
46
- # require 'bio'
47
- #
48
- # # Create new phyloxml parser
49
- # phyloxml = Bio::PhyloXML::Parser.open('example.xml')
50
- #
51
- # # Read in some trees from file
52
- # tree1 = phyloxml.next_tree
53
- # tree2 = phyloxml.next_tree
54
- #
55
- # # Create new phyloxml writer
56
- # writer = Bio::PhyloXML::Writer.new('tree.xml')
57
- #
58
- # # Write tree to the file tree.xml
59
- # writer.write(tree1)
60
- #
61
- # # Add another tree to the file
62
- # writer.write(tree2)
63
- #
64
- # == References
65
- #
66
- # http://www.phyloxml.org/documentation/version_100/phyloxml.xsd.html
67
-
68
- class Writer
69
-
70
- include LibXML
71
-
72
- SCHEMA_LOCATION = 'http://www.phyloxml.org http://www.phyloxml.org/1.10/phyloxml.xsd'
73
-
74
- attr_accessor :write_branch_length_as_subelement
75
-
76
- #
77
- # Create new Writer object. As parameters provide filename of xml file
78
- # you wish to create. Optional parameter is whether to indent or no.
79
- # Default is true. By default branch_length is written as subelement of
80
- # clade element.
81
- #
82
- def initialize(filename, indent=true)
83
- @write_branch_length_as_subelement = true #default value
84
- @filename = filename
85
- @indent = indent
86
-
87
- @doc = XML::Document.new()
88
- @doc.root = XML::Node.new('phyloxml')
89
- @root = @doc.root
90
- @root['xmlns:xsi'] = 'http://www.w3.org/2001/XMLSchema-instance'
91
- @root['xsi:schemaLocation'] = SCHEMA_LOCATION
92
- @root['xmlns'] = 'http://www.phyloxml.org'
93
-
94
- #@todo save encoding to be UTF-8. (However it is the default one).
95
- #it gives error NameError: uninitialized constant LibXML::XML::Encoding
96
- #@doc.encoding = XML::Encoding::UTF_8
97
-
98
- @doc.save(@filename, :indent => true)
99
- end
100
-
101
- #
102
- # Write a tree to a file in phyloxml format.
103
- #
104
- # require 'Bio'
105
- # writer = Bio::PhyloXML::Writer.new
106
- # writer.write(tree)
107
- #
108
- def write(tree)
109
- @root << phylogeny = XML::Node.new('phylogeny')
110
-
111
- PhyloXML::Writer.generate_xml(phylogeny, tree, [
112
- [:attr, 'rooted'],
113
- [:simple, 'name', tree.name],
114
- [:complex, 'id', tree.phylogeny_id],
115
- [:simple, 'description', tree.description],
116
- [:simple, 'date', tree.date],
117
- [:objarr, 'confidence', 'confidences']])
118
-
119
- root_clade = tree.root.to_xml(nil, @write_branch_length_as_subelement)
120
-
121
- phylogeny << root_clade
122
-
123
- tree.children(tree.root).each do |node|
124
- root_clade << node_to_xml(tree, node, tree.root)
125
- end
126
-
127
- Bio::PhyloXML::Writer::generate_xml(phylogeny, tree, [
128
- [:objarr, 'clade_relation', 'clade_relations'],
129
- [:objarr, 'sequence_relation', 'sequence_relations'],
130
- [:objarr, 'property', 'properties']] )
131
-
132
- @doc.save(@filename, :indent => @indent)
133
- end #writer#write
134
-
135
-
136
- #
137
- # PhyloXML Schema allows to save data in different xml format after all
138
- # phylogeny elements. This method is to write these additional data.
139
- #
140
- # parser = PhyloXML::Parser.open('phyloxml_examples.xml')
141
- # writer = PhyloXML::Writer.new('new.xml')
142
- #
143
- # parser.each do |tree|
144
- # writer.write(tree)
145
- # end
146
- #
147
- # # When all the trees are read in by the parser, whats left is saved at
148
- # # PhyloXML::Parser#other
149
- # writer.write(parser.other)
150
- #
151
-
152
- def write_other(other_arr)
153
- other_arr.each do |other_obj|
154
- @root << other_obj.to_xml
155
- end
156
- @doc.save(@filename, :indent => @indent)
157
- end
158
-
159
- #class method
160
-
161
- #
162
- # Used by to_xml methods of PhyloXML element classes. Generally not to be
163
- # invoked directly.
164
- #
165
- def self.generate_xml(root, elem, subelement_array)
166
- #example usage: generate_xml(node, self, [[ :complex,'accession', ], [:simple, 'name', @name], [:simple, 'location', @location]])
167
- subelement_array.each do |subelem|
168
- if subelem[0] == :simple
169
- root << XML::Node.new(subelem[1], subelem[2].to_s) if subelem[2] != nil and not subelem[2].to_s.empty?
170
-
171
- elsif subelem[0] == :complex
172
- root << subelem[2].send("to_xml") if subelem[2] != nil
173
-
174
- elsif subelem[0] == :pattern
175
- #seq, self, [[:pattern, 'symbol', @symbol, "\S{1,10}"]
176
- if subelem[2] != nil
177
- if subelem[2] =~ subelem[3]
178
- root << XML::Node.new(subelem[1], subelem[2])
179
- else
180
- raise "#{subelem[2]} is not a valid value of #{subelem[1]}. It should follow pattern #{subelem[3]}"
181
- end
182
- end
183
-
184
- elsif subelem[0] == :objarr
185
- #[:objarr, 'annotation', 'annotations']])
186
- obj_arr = elem.send(subelem[2])
187
- obj_arr.each do |arr_elem|
188
- root << arr_elem.to_xml
189
- end
190
-
191
- elsif subelem[0] == :simplearr
192
- # [:simplearr, 'common_name', @common_names]
193
- subelem[2].each do |elem_val|
194
- root << XML::Node.new(subelem[1], elem_val)
195
- end
196
- elsif subelem[0] == :attr
197
- #[:attr, 'rooted']
198
- obj = elem.send(subelem[1])
199
- if obj != nil
200
- root[subelem[1]] = obj.to_s
201
- end
202
- else
203
- raise "Not supported type of element by method generate_xml."
204
- end
205
- end
206
- return root
207
- end
208
-
209
- private
210
-
211
- def node_to_xml(tree, node, parent)
212
- edge = tree.get_edge(parent, node)
213
- branch_length = edge.distance
214
-
215
- clade = node.to_xml(branch_length, @write_branch_length_as_subelement)
216
-
217
- tree.children(node).each do |new_node|
218
- clade << node_to_xml(tree, new_node, node)
219
- end
220
-
221
- return clade
222
- end
223
-
224
- end
225
-
226
- end
227
- end
@@ -1,257 +0,0 @@
1
- module Bio
2
- class SQL
3
- class Biodatabase < DummyBase
4
- has_many :bioentries, :class_name =>"Bioentry", :foreign_key => "biodatabase_id"
5
- validates_uniqueness_of :name
6
- end
7
- class BioentryDbxref < DummyBase
8
- #delete set_sequence_name nil
9
- set_primary_key nil #bioentry_id,dbxref_id
10
- belongs_to :bioentry, :class_name => "Bioentry"
11
- belongs_to :dbxref, :class_name => "Dbxref"
12
- end
13
-
14
- class BioentryPath < DummyBase
15
- set_primary_key nil
16
- #delete set_sequence_name nil
17
- belongs_to :term, :class_name => "Term"
18
- #da sistemare per poter procedere.
19
- belongs_to :object_bioentry, :class_name=>"Bioentry"
20
- belongs_to :subject_bioentry, :class_name=>"Bioentry"
21
- end #BioentryPath
22
-
23
- class BioentryQualifierValue < DummyBase
24
- #NOTE: added rank to primary_keys, now it's finished.
25
- set_primary_keys :bioentry_id, :term_id, :rank
26
- belongs_to :bioentry, :class_name => "Bioentry"
27
- belongs_to :term, :class_name => "Term"
28
- end #BioentryQualifierValue
29
-
30
- class Bioentry < DummyBase
31
- belongs_to :biodatabase, :class_name => "Biodatabase"
32
- belongs_to :taxon, :class_name => "Taxon"
33
- has_one :biosequence
34
- #, :class_name => "Biosequence", :foreign_key => "bioentry_id"
35
- has_many :comments, :class_name =>"Comment", :order =>'rank'
36
- has_many :seqfeatures, :class_name => "Seqfeature", :order=>'rank'
37
- has_many :bioentry_references, :class_name=>"BioentryReference" #, :foreign_key => "bioentry_id"
38
- has_many :bioentry_dbxrefs, :class_name => "BioentryDbxref"
39
- has_many :object_bioentry_relationships, :class_name=>"BioentryRelationship", :foreign_key=>"object_bioentry_id" #non mi convince molto credo non funzioni nel modo corretto
40
- has_many :subject_bioentry_relationships, :class_name=>"BioentryRelationship", :foreign_key=>"subject_bioentry_id" #non mi convince molto credo non funzioni nel modo corretto
41
- has_many :object_bioentry_paths, :class_name=>"BioentryPath", :foreign_key=>"object_bioentry_id" #non mi convince molto credo non funzioni nel modo corretto
42
- has_many :subject_bioentry_paths, :class_name=>"BioentryPath", :foreign_key=>"subject_bioentry_id" #non mi convince molto credo non funzioni nel modo corretto
43
-
44
- has_many :cdsfeatures, :class_name=>"Seqfeature", :foreign_key =>"bioentry_id", :conditions=>["term.name='CDS'"], :include=>"type_term"
45
- has_many :references, :through=>:bioentry_references, :class_name => "Reference"
46
- has_many :terms, :through=>:bioentry_qualifier_values, :class_name => "Term"
47
- #NOTE: added order_by for multiple hit and manage ranks correctly
48
- has_many :bioentry_qualifier_values, :order=>"bioentry_id,term_id,rank", :class_name => "BioentryQualifierValue"
49
-
50
- #per la creazione richiesti:
51
- #name, accession, version
52
- # validates_uniqueness_of :accession, :scope=>[:biodatabase_id]
53
- # validates_uniqueness_of :name, :scope=>[:biodatabase_id]
54
- # validates_uniqueness_of :identifier, :scope=>[:biodatabase_id]
55
-
56
- end
57
- class BioentryReference < DummyBase
58
- set_primary_keys :bioentry_id, :reference_id, :rank
59
- belongs_to :bioentry, :class_name => "Bioentry"
60
- belongs_to :reference , :class_name => "Reference"
61
- end
62
- class BioentryRelationship < DummyBase
63
- #delete set_primary_key "bioentry_relationship_id"
64
- set_sequence_name "bieontry_relationship_pk_seq"
65
- belongs_to :object_bioentry, :class_name => "Bioentry"
66
- belongs_to :subject_bioentry, :class_name => "Bioentry"
67
- belongs_to :term
68
- end
69
- class Biosequence < DummyBase
70
- set_primary_keys :bioentry_id, :version
71
- #delete set_sequence_name "biosequence_pk_seq"
72
- belongs_to :bioentry, :foreign_key=>"bioentry_id"
73
- #has_one :bioentry
74
- #, :class_name => "Bioentry"
75
- end
76
- class Comment < DummyBase
77
- belongs_to :bioentry, :class_name => "Bioentry"
78
- end
79
- class DbxrefQualifierValue < DummyBase
80
- #think to use composite primary key
81
- set_primary_key nil #dbxref_id, term_id, rank
82
- #delete set_sequence_name nil
83
- belongs_to :dbxref, :class_name => "Dbxref"
84
- belongs_to :term, :class_name => "Term"
85
- end
86
- class Dbxref < DummyBase
87
- #set_sequence_name "dbxref_pk_seq"
88
- has_many :dbxref_qualifier_values, :class_name => "DbxrefQualifierValue"
89
- has_many :locations, :class_name => "Location"
90
- has_many :references, :class_name=>"Reference"
91
- has_many :term_dbxrefs, :class_name => "TermDbxref"
92
- has_many :bioentry_dbxrefs, :class_name => "BioentryDbxref"
93
- #TODO: check is with bioentry there is an has_and_belongs_to_many relationship has specified in schema overview.
94
- end
95
- class LocationQualifierValue < DummyBase
96
- set_primary_key nil #location_id, term_id
97
- #delete set_sequence_name nil
98
- belongs_to :location, :class_name => "Location"
99
- belongs_to :term, :class_name => "Term"
100
- end
101
- class Location < DummyBase
102
- #set_sequence_name "location_pk_seq"
103
- belongs_to :seqfeature, :class_name => "Seqfeature"
104
- belongs_to :dbxref, :class_name => "Dbxref"
105
- belongs_to :term, :class_name => "Term"
106
- has_many :location_qualifier_values, :class_name => "LocationQualifierValue"
107
-
108
- def to_s
109
- if strand==-1
110
- str="complement("+start_pos.to_s+".."+end_pos.to_s+")"
111
- else
112
- str=start_pos.to_s+".."+end_pos.to_s
113
- end
114
- return str
115
- end
116
-
117
- def sequence
118
- seq=""
119
- unless self.seqfeature.bioentry.biosequence.seq.nil?
120
- seq=Bio::Sequence::NA.new(self.seqfeature.bioentry.biosequence.seq[start_pos-1..end_pos-1])
121
- seq.reverse_complement! if strand==-1
122
- end
123
- return seq
124
- end
125
-
126
-
127
-
128
- end
129
- class Ontology < DummyBase
130
- has_many :terms, :class_name => "Term"
131
- has_many :term_paths, :class_name => "TermPath"
132
- has_many :term_relationships, :class_name => "TermRelationship"
133
- end
134
- class Reference < DummyBase
135
- belongs_to :dbxref, :class_name => "Dbxref"
136
- has_many :bioentry_references, :class_name=>"BioentryReference"
137
- has_many :bioentries, :through=>:bioentry_references
138
- end
139
- class SeqfeatureDbxref < DummyBase
140
- set_primary_keys :seqfeature_id, :dbxref_id
141
- #delete set_sequence_name nil
142
- belongs_to :seqfeature, :class_name => "Seqfeature", :foreign_key => "seqfeature_id"
143
- belongs_to :dbxref, :class_name => "Dbxref", :foreign_key => "dbxref_id"
144
- end
145
- class SeqfeaturePath < DummyBase
146
- set_primary_keys :object_seqfeature_id, :subject_seqfeature_id, :term_id
147
- set_sequence_name nil
148
- belongs_to :object_seqfeature, :class_name => "Seqfeature", :foreign_key => "object_seqfeature_id"
149
- belongs_to :subject_seqfeature, :class_name => "Seqfeature", :foreign_key => "subject_seqfeature_id"
150
- belongs_to :term, :class_name => "Term"
151
- end
152
- class SeqfeatureQualifierValue < DummyBase
153
- set_primary_keys :seqfeature_id, :term_id, :rank
154
- set_sequence_name nil
155
- belongs_to :seqfeature
156
- belongs_to :term, :class_name => "Term"
157
- end
158
- class Seqfeature <DummyBase
159
- set_sequence_name "seqfeature_pk_seq"
160
- belongs_to :bioentry
161
- #, :class_name => "Bioentry"
162
- belongs_to :type_term, :class_name => "Term", :foreign_key => "type_term_id"
163
- belongs_to :source_term, :class_name => "Term", :foreign_key =>"source_term_id"
164
- has_many :seqfeature_dbxrefs, :class_name => "SeqfeatureDbxref", :foreign_key => "seqfeature_id"
165
- has_many :seqfeature_qualifier_values, :order=>'rank', :foreign_key => "seqfeature_id"
166
- #, :class_name => "SeqfeatureQualifierValue"
167
- has_many :locations, :class_name => "Location", :order=>'rank'
168
- has_many :object_seqfeature_paths, :class_name => "SeqfeaturePath", :foreign_key => "object_seqfeature_id"
169
- has_many :subject_seqfeature_paths, :class_name => "SeqfeaturePath", :foreign_key => "subject_seqfeature_id"
170
- has_many :object_seqfeature_relationships, :class_name => "SeqfeatureRelationship", :foreign_key => "object_seqfeature_id"
171
- has_many :subject_seqfeature_relationships, :class_name => "SeqfeatureRelationship", :foreign_key => "subject_seqfeature_id"
172
-
173
- #get the subsequence described by the locations objects
174
- def sequence
175
- return self.locations.inject(Bio::Sequence::NA.new("")){|seq, location| seq<<location.sequence}
176
- end
177
-
178
- #translate the subsequences represented by the feature and its locations
179
- #not considering the qualifiers
180
- #Return a Bio::Sequence::AA object
181
- def translate(*args)
182
- self.sequence.translate(*args)
183
- end
184
- end
185
- class SeqfeatureRelationship <DummyBase
186
- set_sequence_name "seqfeatue_relationship_pk_seq"
187
- belongs_to :term, :class_name => "Term"
188
- belongs_to :object_seqfeature, :class_name => "Seqfeature"
189
- belongs_to :subject_seqfeature, :class_name => "Seqfeature"
190
- end
191
- class TaxonName < DummyBase
192
- set_primary_keys :taxon_id, :name, :name_class
193
- belongs_to :taxon, :class_name => "Taxon"
194
- end
195
- class Taxon < DummyBase
196
- set_sequence_name "taxon_pk_seq"
197
- has_many :taxon_names, :class_name => "TaxonName"
198
- has_one :taxon_scientific_name, :class_name => "TaxonName", :conditions=>"name_class = 'scientific name'"
199
- has_one :taxon_genbank_common_name, :class_name => "TaxonName", :conditions=>"name_class = 'genbank common name'"
200
- has_one :bioentry, :class_name => "Bioentry"
201
- end
202
- class TermDbxref < DummyBase
203
- set_primary_key nil #term_id, dbxref_id
204
- #delete set_sequence_name nil
205
- belongs_to :term, :class_name => "Term"
206
- belongs_to :dbxref, :class_name => "Dbxref"
207
- end
208
- class TermPath < DummyBase
209
- set_sequence_name "term_path_pk_seq"
210
- belongs_to :ontology, :class_name => "Ontology"
211
- belongs_to :subject_term, :class_name => "Term"
212
- belongs_to :object_term, :class_name => "Term"
213
- belongs_to :predicate_term, :class_name => "Term"
214
- end
215
- class Term < DummyBase
216
- belongs_to :ontology, :class_name => "Ontology"
217
- has_many :seqfeature_qualifier_values, :class_name => "SeqfeatureQualifierValue"
218
- has_many :dbxref_qualifier_values, :class_name => "DbxrefQualifierValue"
219
- has_many :bioentry_qualifer_values, :class_name => "BioentryQualifierValue"
220
- has_many :bioentries, :through=>:bioentry_qualifier_values
221
- has_many :locations, :class_name => "Location"
222
- has_many :seqfeature_relationships, :class_name => "SeqfeatureRelationship"
223
- has_many :term_dbxrefs, :class_name => "TermDbxref"
224
- has_many :term_relationship_terms, :class_name => "TermRelationshipTerm"
225
- has_many :term_synonyms, :class_name => "TermSynonym"
226
- has_many :location_qualifier_values, :class_name => "LocationQualifierValue"
227
- has_many :seqfeature_types, :class_name => "Seqfeature", :foreign_key => "type_term_id"
228
- has_many :seqfeature_sources, :class_name => "Seqfeature", :foreign_key => "source_term_id"
229
- has_many :term_path_subjects, :class_name => "TermPath", :foreign_key => "subject_term_id"
230
- has_many :term_path_predicates, :class_name => "TermPath", :foreign_key => "predicate_term_id"
231
- has_many :term_path_objects, :class_name => "TermPath", :foreign_key => "object_term_id"
232
- has_many :term_relationship_subjects, :class_name => "TermRelationship", :foreign_key =>"subject_term_id"
233
- has_many :term_relationship_predicates, :class_name => "TermRelationship", :foreign_key =>"predicate_term_id"
234
- has_many :term_relationship_objects, :class_name => "TermRelationship", :foreign_key =>"object_term_id"
235
- has_many :seqfeature_paths, :class_name => "SeqfeaturePath"
236
- end
237
- class TermRelationship < DummyBase
238
- set_sequence_name "term_relationship_pk_seq"
239
- belongs_to :ontology, :class_name => "Ontology"
240
- belongs_to :subject_term, :class_name => "Term"
241
- belongs_to :predicate_term, :class_name => "Term"
242
- belongs_to :object_term, :class_name => "Term"
243
- has_one :term_relationship_term, :class_name => "TermRelationshipTerm"
244
- end
245
- class TermRelationshipTerm < DummyBase
246
- #delete set_sequence_name nil
247
- set_primary_key :term_relationship_id
248
- belongs_to :term_relationship, :class_name => "TermRelationship"
249
- belongs_to :term, :class_name => "Term"
250
- end
251
- class TermSynonym < DummyBase
252
- #delete set_sequence_name nil
253
- set_primary_key nil
254
- belongs_to :term, :class_name => "Term"
255
- end
256
- end #SQL
257
- end #Bio