obo 0.1.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.
- data/.document +5 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +22 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +19 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/lib/obo.rb +133 -0
- data/test/data/ro.obo +235 -0
- data/test/data/so_2_4_3.obo +16818 -0
- data/test/data/temp +24 -0
- data/test/data/testfile.txt +2 -0
- data/test/helper.rb +19 -0
- data/test/test_obo.rb +51 -0
- metadata +127 -0
data/test/data/temp
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
SELECT
|
2
|
+
db."name",
|
3
|
+
db.description,
|
4
|
+
db.urlprefix,
|
5
|
+
db.url,
|
6
|
+
db.db_id
|
7
|
+
FROM
|
8
|
+
public.cvterm gene,
|
9
|
+
public.cvterm_relationship is_a_relationship,
|
10
|
+
public.cvterm biological_region,
|
11
|
+
public.dbxref,
|
12
|
+
public.cvterm is_a_cvterm,
|
13
|
+
public.dbxref is_a_dbxref,
|
14
|
+
public.db
|
15
|
+
WHERE
|
16
|
+
gene.cvterm_id = is_a_relationship.subject_id AND
|
17
|
+
is_a_relationship.object_id = biological_region.cvterm_id AND
|
18
|
+
is_a_relationship.type_id = is_a_cvterm.cvterm_id AND
|
19
|
+
biological_region.dbxref_id = dbxref.dbxref_id AND
|
20
|
+
is_a_cvterm.dbxref_id = is_a_dbxref.dbxref_id AND
|
21
|
+
is_a_dbxref.db_id = db.db_id AND
|
22
|
+
gene.cv_id = 10 AND
|
23
|
+
gene."name" = 'gene' AND
|
24
|
+
biological_region."name" = 'biological_region';
|
data/test/helper.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'minitest/unit'
|
11
|
+
|
12
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
13
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
+
require 'obo'
|
15
|
+
|
16
|
+
class MiniTest::Unit::TestCase
|
17
|
+
end
|
18
|
+
|
19
|
+
MiniTest::Unit.autorun
|
data/test/test_obo.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require "pp"
|
3
|
+
|
4
|
+
class TestObo < MiniTest::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@obo = Obo::Parser.new('test/data/ro.obo')
|
8
|
+
# @obo = Obo::Parser.new('test/data/so_2_4_3.obo')
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_header_parsing
|
12
|
+
header = @obo.elements.first
|
13
|
+
assert_equal Obo::Header, header.class
|
14
|
+
assert_equal '1.2', header['format-version']
|
15
|
+
assert_equal 'cjm', header['saved-by']
|
16
|
+
assert_equal 3, header['remark'].length
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_stanza_parsing
|
20
|
+
first_stanza = @obo.elements.find{|element| element.is_a? Obo::Stanza}
|
21
|
+
|
22
|
+
assert_equal 'Typedef', first_stanza.name
|
23
|
+
assert_equal 'OBO_REL:is_a', first_stanza['id']
|
24
|
+
assert_equal 'is_a', first_stanza['name']
|
25
|
+
assert first_stanza['is_reflexive']
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_fancy_methods
|
29
|
+
first_stanza = @obo.elements.find{|element| element.is_a? Obo::Stanza}
|
30
|
+
assert_equal 'OBO_REL:is_a', first_stanza.id
|
31
|
+
assert first_stanza.is_reflexive
|
32
|
+
assert first_stanza.is_reflexive?
|
33
|
+
|
34
|
+
assert_raises(NoMethodError){first_stanza.is_a_zebra?}
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_readthrough
|
38
|
+
assert_equal 26, @obo.elements.count
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_rewind
|
42
|
+
# Run through the file to the end
|
43
|
+
@obo.elements.count
|
44
|
+
assert_raises(StopIteration){@obo.elements.count}
|
45
|
+
@obo.rewind
|
46
|
+
assert_equal 26, @obo.elements.count
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
|
metadata
ADDED
@@ -0,0 +1,127 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: obo
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.0
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- robsyme
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-05-24 00:00:00 +08:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: minitest
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
type: :development
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: yard
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
+
none: false
|
31
|
+
requirements:
|
32
|
+
- - ~>
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.6.0
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: bundler
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.0.0
|
46
|
+
type: :development
|
47
|
+
prerelease: false
|
48
|
+
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: jeweler
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 1.6.0
|
57
|
+
type: :development
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: rcov
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: "0"
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: *id005
|
71
|
+
description: "The OBO format is the text file format used by OBO-Edit, the open-source, platform-independent application for viewing and editing ontologies. The format is described here: http://www.geneontology.org/GO.format.obo-1_2.shtml"
|
72
|
+
email: rob.syme@gmail.com
|
73
|
+
executables: []
|
74
|
+
|
75
|
+
extensions: []
|
76
|
+
|
77
|
+
extra_rdoc_files:
|
78
|
+
- LICENSE.txt
|
79
|
+
- README.rdoc
|
80
|
+
files:
|
81
|
+
- .document
|
82
|
+
- Gemfile
|
83
|
+
- Gemfile.lock
|
84
|
+
- LICENSE.txt
|
85
|
+
- README.rdoc
|
86
|
+
- Rakefile
|
87
|
+
- VERSION
|
88
|
+
- lib/obo.rb
|
89
|
+
- test/data/ro.obo
|
90
|
+
- test/data/so_2_4_3.obo
|
91
|
+
- test/data/temp
|
92
|
+
- test/data/testfile.txt
|
93
|
+
- test/helper.rb
|
94
|
+
- test/test_obo.rb
|
95
|
+
has_rdoc: true
|
96
|
+
homepage: http://github.com/robsyme/obo
|
97
|
+
licenses:
|
98
|
+
- MIT
|
99
|
+
post_install_message:
|
100
|
+
rdoc_options: []
|
101
|
+
|
102
|
+
require_paths:
|
103
|
+
- lib
|
104
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
hash: -3947284209714185762
|
110
|
+
segments:
|
111
|
+
- 0
|
112
|
+
version: "0"
|
113
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: "0"
|
119
|
+
requirements: []
|
120
|
+
|
121
|
+
rubyforge_project:
|
122
|
+
rubygems_version: 1.5.0
|
123
|
+
signing_key:
|
124
|
+
specification_version: 3
|
125
|
+
summary: A parser for the OBO flat file format
|
126
|
+
test_files: []
|
127
|
+
|