bio-ucsc-api 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -23,16 +23,18 @@ http://github.com/misshie/bioruby-ucsc-api/issues
23
23
  == Features
24
24
 
25
25
  * Designed as a BioRuby plugin
26
+ * Using ActiveRecord as an O/R mapping framework
26
27
  * Using the Bin index system to improve query performance (see https://github.com/misshie/UCSCBin )
27
28
  * Automatic conversion of "1-based full-closed intervals" to internal "0-based half-closed intervals" (see also bioruby-genomic-interval)
28
29
  * Supporting non-official MySql hosts (e.g. local servers)
30
+ * NEW: Supporting locally-stored '2bit' files, which can be downloaded from the UCSC site, to retrieve referencial sequence. Now supporting unknown "N" nucleotide blocks, however, "mask-blocks", which are shown in lower-case in UCSC's DNA function, are not supported yet.
29
31
  * Using Rspec for the testing framework
30
32
  * Trying to support whole hg19 and hg18 databases.
31
33
 
32
-
33
34
  == Install
34
35
 
35
- (to be uploaded into rubygems.org)
36
+ $ gem install bio-ucsc-api
37
+ (you may need to be root or use "sudo")
36
38
 
37
39
  == How to Use
38
40
 
@@ -48,6 +50,11 @@ http://github.com/misshie/bioruby-ucsc-api/issues
48
50
 
49
51
  p Bio::Ucsc::Hg19::Snp131.find_by_name("rs56289060")
50
52
 
53
+ # retrieve reference sequence from a locally-stored 2bit file
54
+ Bio::Ucsc::Hg19::Reference.load("hg19.2bit")
55
+ itv = Bio::GenomicInterval.parse("chr1:9,500-10,999")
56
+ p Reference.find_by_interval(itv)
57
+
51
58
  == Copyright
52
59
  Copyright:: (c) 2011 MISHIMA, Hiroyuki (missy at be.to / hmishima at nagasaki-u.ac.jp)
53
60
 
data/Rakefile CHANGED
@@ -28,7 +28,7 @@ Jeweler::Tasks.new do |gem|
28
28
 
29
29
  gem.add_runtime_dependency 'activerecord', '>= 3.0.0'
30
30
  gem.add_runtime_dependency 'activesupport', '>= 3.0.0'
31
- gem.add_runtime_dependency 'bio-genomic-interval', '>= 0.1.1'
31
+ gem.add_runtime_dependency 'bio-genomic-interval', '>= 0.1.2'
32
32
  end
33
33
 
34
34
  Jeweler::RubygemsDotOrgTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.3
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{bio-ucsc-api}
8
- s.version = "0.0.1"
8
+ s.version = "0.0.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["MISHIMA, Hiroyuki", "Francesco Strozzi", "Jan Aerts"]
12
- s.date = %q{2011-04-22}
12
+ s.date = %q{2011-04-25}
13
13
  s.description = %q{A Bioruby plugin: an API for UCSC Genome Browser (experimental)}
14
14
  s.email = %q{missy@be.to}
15
15
  s.extra_rdoc_files = [
@@ -36,6 +36,7 @@ Gem::Specification.new do |s|
36
36
  "lib/bio-ucsc/hg18/cnpsharp2.rb",
37
37
  "lib/bio-ucsc/hg18/db_connection.rb",
38
38
  "lib/bio-ucsc/hg18/dgv.rb",
39
+ "lib/bio-ucsc/hg18/reference.rb",
39
40
  "lib/bio-ucsc/hg18/refgene.rb",
40
41
  "lib/bio-ucsc/hg18/rmsk.rb",
41
42
  "lib/bio-ucsc/hg18/tables.rb",
@@ -44,8 +45,10 @@ Gem::Specification.new do |s|
44
45
  "lib/bio-ucsc/hg19/ccdsgene.rb",
45
46
  "lib/bio-ucsc/hg19/cytoband.rb",
46
47
  "lib/bio-ucsc/hg19/db_connection.rb",
48
+ "lib/bio-ucsc/hg19/description.rb",
47
49
  "lib/bio-ucsc/hg19/dgv.rb",
48
50
  "lib/bio-ucsc/hg19/ensgene.rb",
51
+ "lib/bio-ucsc/hg19/gbcdnainfo.rb",
49
52
  "lib/bio-ucsc/hg19/gwascatalog.rb",
50
53
  "lib/bio-ucsc/hg19/hapmapalleleschimp.rb",
51
54
  "lib/bio-ucsc/hg19/hapmapallelesmacaque.rb",
@@ -60,11 +63,14 @@ Gem::Specification.new do |s|
60
63
  "lib/bio-ucsc/hg19/hapmapsnpsmkk.rb",
61
64
  "lib/bio-ucsc/hg19/hapmapsnpstsi.rb",
62
65
  "lib/bio-ucsc/hg19/hapmapsnpsyri.rb",
66
+ "lib/bio-ucsc/hg19/kgxref.rb",
63
67
  "lib/bio-ucsc/hg19/knowngene.rb",
64
68
  "lib/bio-ucsc/hg19/omimgene.rb",
65
69
  "lib/bio-ucsc/hg19/phastconselements46wayprimates.rb",
66
70
  "lib/bio-ucsc/hg19/phylop46wayprimates.rb",
71
+ "lib/bio-ucsc/hg19/reference.rb",
67
72
  "lib/bio-ucsc/hg19/refgene.rb",
73
+ "lib/bio-ucsc/hg19/refseqsummary.rb",
68
74
  "lib/bio-ucsc/hg19/rmsk.rb",
69
75
  "lib/bio-ucsc/hg19/snp131.rb",
70
76
  "lib/bio-ucsc/hg19/snp132.rb",
@@ -72,9 +78,12 @@ Gem::Specification.new do |s|
72
78
  "lib/bio-ucsc/hg19/snp132common.rb",
73
79
  "lib/bio-ucsc/hg19/snp132flagged.rb",
74
80
  "lib/bio-ucsc/hg19/snp132mult.rb",
81
+ "lib/bio-ucsc/hg19/trnas.rb",
75
82
  "lib/bio-ucsc/hg19/wgrna.rb",
76
83
  "lib/bio-ucsc/ucsc_bin.rb",
84
+ "samples/hg19-2bit-retrieve.rb",
77
85
  "samples/hg19-sample.rb",
86
+ "samples/symbol2summary.rb",
78
87
  "spec/hg18/cnpiafrate2_spec.rb",
79
88
  "spec/hg18/cnplocke_spec.rb",
80
89
  "spec/hg18/cnpredon_spec.rb",
@@ -82,13 +91,16 @@ Gem::Specification.new do |s|
82
91
  "spec/hg18/cnpsharp2_spec.rb",
83
92
  "spec/hg18/db_connection_spec.rb",
84
93
  "spec/hg18/dgv_spec.rb",
94
+ "spec/hg18/reference_spec.rb",
85
95
  "spec/hg18/refgene_spec.rb",
86
96
  "spec/hg18/rmsk_spec.rb",
87
97
  "spec/hg19/ccdsgene_spec.rb",
88
98
  "spec/hg19/cytoband_spec.rb",
89
99
  "spec/hg19/db_connection_spec.rb",
100
+ "spec/hg19/description_spec.rb",
90
101
  "spec/hg19/dgv_spec.rb",
91
102
  "spec/hg19/ensgene_spec.rb",
103
+ "spec/hg19/gbcdnainfo_spec.rb",
92
104
  "spec/hg19/gwascatalog_spec.rb",
93
105
  "spec/hg19/hapmapalleleschimp_spec.rb",
94
106
  "spec/hg19/hapmapallelesmacaque_spec.rb",
@@ -103,24 +115,28 @@ Gem::Specification.new do |s|
103
115
  "spec/hg19/hapmapsnpsmkk_spec.rb",
104
116
  "spec/hg19/hapmapsnpstsi_spec.rb",
105
117
  "spec/hg19/hapmapsnpsyri_spec.rb",
118
+ "spec/hg19/kgxref_spec.rb",
106
119
  "spec/hg19/knowngene_spec.rb",
107
120
  "spec/hg19/omimGene_spec.rb",
108
121
  "spec/hg19/phastconselements46wayprimates_spec.rb",
109
122
  "spec/hg19/phyloP46wayPrimates_spec.rb",
123
+ "spec/hg19/reference_spec.rb",
110
124
  "spec/hg19/refgene_spec.rb",
125
+ "spec/hg19/refseqsummary_spec.rb",
111
126
  "spec/hg19/rmsk_spec.rb",
112
127
  "spec/hg19/snp132Flagged_spec.rb",
113
128
  "spec/hg19/snp132_spec.rb",
114
129
  "spec/hg19/snp132codingdbsnp_spec.rb",
115
130
  "spec/hg19/snp132common_spec.rb",
116
131
  "spec/hg19/snp132mult_spec.rb",
132
+ "spec/hg19/trnas_spec.rb",
117
133
  "spec/hg19/wgrna_spec.rb",
118
134
  "spec/spec_helper.rb"
119
135
  ]
120
136
  s.homepage = %q{http://github.com/misshie/bioruby-ucsc-api}
121
137
  s.licenses = ["Ruby (Ruby's/GPLv2 dual)"]
122
138
  s.require_paths = ["lib"]
123
- s.rubygems_version = %q{1.3.7}
139
+ s.rubygems_version = %q{1.7.2}
124
140
  s.summary = %q{A Bioruby plugin: an API for UCSC Genome Browser (experimental)}
125
141
  s.test_files = [
126
142
  "spec/hg18/cnpiafrate2_spec.rb",
@@ -130,13 +146,16 @@ Gem::Specification.new do |s|
130
146
  "spec/hg18/cnpsharp2_spec.rb",
131
147
  "spec/hg18/db_connection_spec.rb",
132
148
  "spec/hg18/dgv_spec.rb",
149
+ "spec/hg18/reference_spec.rb",
133
150
  "spec/hg18/refgene_spec.rb",
134
151
  "spec/hg18/rmsk_spec.rb",
135
152
  "spec/hg19/ccdsgene_spec.rb",
136
153
  "spec/hg19/cytoband_spec.rb",
137
154
  "spec/hg19/db_connection_spec.rb",
155
+ "spec/hg19/description_spec.rb",
138
156
  "spec/hg19/dgv_spec.rb",
139
157
  "spec/hg19/ensgene_spec.rb",
158
+ "spec/hg19/gbcdnainfo_spec.rb",
140
159
  "spec/hg19/gwascatalog_spec.rb",
141
160
  "spec/hg19/hapmapalleleschimp_spec.rb",
142
161
  "spec/hg19/hapmapallelesmacaque_spec.rb",
@@ -151,23 +170,26 @@ Gem::Specification.new do |s|
151
170
  "spec/hg19/hapmapsnpsmkk_spec.rb",
152
171
  "spec/hg19/hapmapsnpstsi_spec.rb",
153
172
  "spec/hg19/hapmapsnpsyri_spec.rb",
173
+ "spec/hg19/kgxref_spec.rb",
154
174
  "spec/hg19/knowngene_spec.rb",
155
175
  "spec/hg19/omimGene_spec.rb",
156
176
  "spec/hg19/phastconselements46wayprimates_spec.rb",
157
177
  "spec/hg19/phyloP46wayPrimates_spec.rb",
178
+ "spec/hg19/reference_spec.rb",
158
179
  "spec/hg19/refgene_spec.rb",
180
+ "spec/hg19/refseqsummary_spec.rb",
159
181
  "spec/hg19/rmsk_spec.rb",
160
182
  "spec/hg19/snp132Flagged_spec.rb",
161
183
  "spec/hg19/snp132_spec.rb",
162
184
  "spec/hg19/snp132codingdbsnp_spec.rb",
163
185
  "spec/hg19/snp132common_spec.rb",
164
186
  "spec/hg19/snp132mult_spec.rb",
187
+ "spec/hg19/trnas_spec.rb",
165
188
  "spec/hg19/wgrna_spec.rb",
166
189
  "spec/spec_helper.rb"
167
190
  ]
168
191
 
169
192
  if s.respond_to? :specification_version then
170
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
171
193
  s.specification_version = 3
172
194
 
173
195
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
@@ -181,7 +203,7 @@ Gem::Specification.new do |s|
181
203
  s.add_development_dependency(%q<bio>, [">= 1.4.1"])
182
204
  s.add_runtime_dependency(%q<activerecord>, [">= 3.0.0"])
183
205
  s.add_runtime_dependency(%q<activesupport>, [">= 3.0.0"])
184
- s.add_runtime_dependency(%q<bio-genomic-interval>, [">= 0.1.1"])
206
+ s.add_runtime_dependency(%q<bio-genomic-interval>, [">= 0.1.2"])
185
207
  else
186
208
  s.add_dependency(%q<activerecord>, [">= 3.0.7"])
187
209
  s.add_dependency(%q<mysql>, [">= 2.8.1"])
@@ -193,7 +215,7 @@ Gem::Specification.new do |s|
193
215
  s.add_dependency(%q<bio>, [">= 1.4.1"])
194
216
  s.add_dependency(%q<activerecord>, [">= 3.0.0"])
195
217
  s.add_dependency(%q<activesupport>, [">= 3.0.0"])
196
- s.add_dependency(%q<bio-genomic-interval>, [">= 0.1.1"])
218
+ s.add_dependency(%q<bio-genomic-interval>, [">= 0.1.2"])
197
219
  end
198
220
  else
199
221
  s.add_dependency(%q<activerecord>, [">= 3.0.7"])
@@ -206,7 +228,7 @@ Gem::Specification.new do |s|
206
228
  s.add_dependency(%q<bio>, [">= 1.4.1"])
207
229
  s.add_dependency(%q<activerecord>, [">= 3.0.0"])
208
230
  s.add_dependency(%q<activesupport>, [">= 3.0.0"])
209
- s.add_dependency(%q<bio-genomic-interval>, [">= 0.1.1"])
231
+ s.add_dependency(%q<bio-genomic-interval>, [">= 0.1.2"])
210
232
  end
211
233
  end
212
234
 
@@ -11,8 +11,8 @@ require "bio-genomic-interval"
11
11
  module Bio
12
12
  module Ucsc
13
13
  base = File.dirname(__FILE__)
14
- autoload :Hg18, "#{base}/bio-ucsc/hg18"
15
- autoload :Hg19, "#{base}/bio-ucsc/hg19"
14
+ autoload :Hg18, "#{base}/bio-ucsc/hg18"
15
+ autoload :Hg19, "#{base}/bio-ucsc/hg19"
16
16
 
17
17
  # ToDo
18
18
  # autoload :Mm9, "#{base}/bio-ucsc/mm9"
@@ -14,6 +14,9 @@ module Bio
14
14
  module Ucsc
15
15
  module Hg18
16
16
  base = File.dirname(__FILE__)
17
+ # Reference sequence retrieval via the 2bit file
18
+ autoload :Reference, "#{base}/hg18/reference"
19
+
17
20
  autoload :RefGene, "#{base}/hg18/refgene"
18
21
  autoload :Dgv, "#{base}/hg18/dgv"
19
22
  autoload :CnpIafrate2, "#{base}/hg18/cnpiafrate2"
@@ -0,0 +1,171 @@
1
+ #
2
+ # = reference.rb
3
+ # handle UCSC's 2bit file (locally stored) to retrieve the reference sequence
4
+ #
5
+ # Copyright:: Cioyrught (C) 2011
6
+ # MISHIMA, Hiroyuki <missy at be.to / hmishima at nagasaki-u.ac.jp>
7
+ # License:: Ruby license (Ryby's / GPLv2 dual)
8
+
9
+ # require 'bio'
10
+
11
+ module Bio
12
+ module Ucsc
13
+ module Hg18
14
+ TwoBitHeader =
15
+ Struct.new(:signature, :version, :sequence_count, :reserved)
16
+ TwoBitRecord =
17
+ Struct.new(:dna_size,
18
+ :n_block_intervals, :mask_block_intervals,
19
+ :reserved, :packed_dna_offset)
20
+
21
+ class ByteQueue
22
+ def initialize(str)
23
+ @str = str
24
+ @index = 0
25
+ end
26
+
27
+ attr_accessor :index
28
+
29
+ def next(n)
30
+ result = @str[@index, n]
31
+ @index += n
32
+ result
33
+ end
34
+ end # class ByteQueue
35
+
36
+ class Reference
37
+ BINCODE = {0b00 => "T", 0b01 => "C", 0b10 => "A", 0b11 => "G"}
38
+
39
+ cattr_reader :filename, :header, :offsets
40
+
41
+ def self.load(filename)
42
+ two_bit = nil
43
+ open(filename, 'rb') {|f| two_bit = f.read}
44
+ @@tbq = ByteQueue.new(two_bit)
45
+ @@filename = filename
46
+
47
+ twobit_header = TwoBitHeader.new
48
+ twobit_header.signature = @@tbq.next(4).unpack('L').first
49
+ twobit_header.version = @@tbq.next(4).unpack('L').first
50
+ twobit_header.sequence_count = @@tbq.next(4).unpack('L').first
51
+ twobit_header.reserved = @@tbq.next(4).unpack('L').first
52
+ @@header = twobit_header
53
+
54
+ @@offsets = Hash.new
55
+ @@header.sequence_count.times do
56
+ name_length = @@tbq.next(1).unpack('C').first
57
+ @@offsets[@@tbq.next(name_length).unpack('a*').first] =
58
+ @@tbq.next(4).unpack('L').first
59
+ end
60
+ @@records = Hash.new
61
+ end
62
+
63
+ def self.records(chrom)
64
+ return @@records[chrom] if @@records[chrom]
65
+
66
+ @@tbq.index = @@offsets[chrom]
67
+ @@records[chrom] = TwoBitRecord.new
68
+ @@records[chrom].dna_size = @@tbq.next(4).unpack('L').first
69
+
70
+ n_block_count = @@tbq.next(4).unpack('L').first
71
+ n_block_starts = Array.new
72
+ n_block_count.times do
73
+ n_block_starts << @@tbq.next(4).unpack('L').first
74
+ end
75
+ n_block_sizes = Array.new
76
+ n_block_count.times do
77
+ n_block_sizes << @@tbq.next(4).unpack('L').first
78
+ end
79
+ @@records[chrom].n_block_intervals = Array.new
80
+ n_block_count.times do |idx|
81
+ @@records[chrom].n_block_intervals <<
82
+ Bio::GenomicInterval.zero_based(chrom,
83
+ n_block_starts[idx],
84
+ n_block_starts[idx]+n_block_sizes[idx])
85
+ end
86
+
87
+ mask_block_count = @@tbq.next(4).unpack('L').first
88
+ mask_block_starts = Array.new
89
+ mask_block_count.times do
90
+ mask_block_starts << @@tbq.next(4).unpack('L').first
91
+ end
92
+ mask_block_sizes = Array.new
93
+ mask_block_count.times do
94
+ mask_block_sizes << @@tbq.next(4).unpack('L').first
95
+ end
96
+ @@records[chrom].mask_block_intervals = Array.new
97
+ mask_block_count.times do |idx|
98
+ @@records[chrom].mask_block_intervals <<
99
+ Bio::GenomicInterval.zero_based(chrom,
100
+ mask_block_starts[idx],
101
+ mask_block_starts[idx]+mask_block_sizes[idx])
102
+ end
103
+
104
+ @@records[chrom].reserved = @@tbq.next(4).unpack('L').first
105
+ @@records[chrom].packed_dna_offset = @@tbq.index
106
+
107
+ @@records[chrom]
108
+ end
109
+
110
+ def self.find_by_interval(interval)
111
+ seq = self.find_by_interval_raw(interval)
112
+ @@records[interval.chrom].n_block_intervals.map do |nb|
113
+ if interval.overlapped?(nb)
114
+ case interval.compare(nb)
115
+ when :equal,:contained_by
116
+ seq = 'N' * interval.overlap(nb)
117
+ when :contains
118
+ left_len = nb.chr_start - interval.chr_start + 1
119
+ right_len = interval.chr_end - nb.chr_end + 1
120
+ seq[0, left_len] = 'N' * left_len
121
+ seq[-right_len, right_len] = 'N' * right_len
122
+ when :left_overlapped
123
+ left_len = nb.chr_end - interval.chr_start + 1
124
+ seq[0, left_len] = 'N' * left_len
125
+ when :right_overlapped
126
+ right_len = interval.chr_end - nb.chr_start + 1
127
+ seq[-right_len, right_len] = 'N' * right_len
128
+ when :right_adjacent, :right_off
129
+ # expecting that N-blocks are sorted
130
+ # return Bio::Sequence::NA.new(seq)
131
+ seq
132
+ end
133
+ end
134
+ end
135
+ #Bio::Sequence::NA.new(seq)
136
+ seq
137
+ end
138
+
139
+ def self.find_by_interval_raw(interval)
140
+ byte_count, byte_mod = interval.zero_start.divmod 4
141
+ chrom_top = self.records(interval.chrom).packed_dna_offset
142
+ div_start, mod_start = interval.zero_start.divmod 4
143
+ div_end, mod_end = interval.zero_end.divmod 4
144
+ div_len, mod_len = interval.length.divmod 4
145
+
146
+ byte_length = div_end - div_start + 1
147
+ @@tbq.index = chrom_top + div_start
148
+ bytes = @@tbq.next(byte_length).unpack('C*')
149
+ seq = Bio::Ucsc::Hg18::Reference.bytes_to_nucleotides(bytes)
150
+ seq[mod_start..(-1-(4-mod_end))]
151
+ end
152
+
153
+ def self.bytes_to_nucleotides(bytes)
154
+ results = ""
155
+ bytes.each do |byte|
156
+ results << Bio::Ucsc::Hg18::Reference.byte_to_nucleotides(byte)
157
+ end
158
+ results
159
+ end
160
+
161
+ def self.byte_to_nucleotides(byte)
162
+ BINCODE[byte >> 6] +
163
+ BINCODE[(byte >> 4) & 0b11] +
164
+ BINCODE[(byte >> 2) & 0b11] +
165
+ BINCODE[byte & 0b11]
166
+ end
167
+ end # class Reference
168
+
169
+ end # module Hg18
170
+ end # module Ucsc
171
+ end # module Bio
@@ -13,24 +13,42 @@ module Bio
13
13
  module Ucsc
14
14
  module Hg19
15
15
  base = File.dirname(__FILE__)
16
- autoload :Dgv, "#{base}/hg19/dgv"
17
16
 
17
+ # Reference sequence retrieval via the 2bit file
18
+ autoload :Reference, "#{base}/hg19/reference"
19
+
20
+ # group: Mapping and Sequencing Tracks
21
+ ## track: Chromosome Band
22
+ autoload :CytoBand, "#{base}/hg19/cytoband"
23
+
24
+ # group: Genes and Gene Prediction Tracks
25
+ ## track: UCSC Genes
26
+ autoload :KnownGene, "#{base}/hg19/knowngene"
27
+
28
+ ## track: RefSeq Genes
29
+ autoload :RefGene, "#{base}/hg19/refgene"
30
+
31
+ ## track: Ensemble Genes
32
+ autoload :EnsGene, "#{base}/hg19/ensgene"
33
+
34
+ ## track: sno/miRNA
35
+ autoload :WgRna, "#{base}/hg19/wgrna"
36
+
37
+ ## track: tRNA Genes
38
+ autoload :TRNAs, "#{base}/hg19/trnas"
39
+
40
+ # group: Variation and Repeats
41
+ ## track: SNPs(131)
18
42
  autoload :Snp131, "#{base}/hg19/snp131"
19
43
 
44
+ ## tracks: All/Common/Flagged/Mult SNPs(132)
20
45
  autoload :Snp132, "#{base}/hg19/snp132"
21
46
  autoload :Snp132Common, "#{base}/hg19/snp132common"
22
47
  autoload :Snp132Flagged, "#{base}/hg19/snp132flagged"
23
48
  autoload :Snp132Mult, "#{base}/hg19/snp132mult"
24
49
  autoload :Snp132CodingDbSnp, "#{base}/hg19/snp132codingdbsnp"
25
50
 
26
- autoload :KnownGene, "#{base}/hg19/knowngene"
27
- autoload :RefGene, "#{base}/hg19/refgene"
28
- autoload :GwasCatalog, "#{base}/hg19/gwascatalog"
29
- autoload :CytoBand, "#{base}/hg19/cytoband"
30
- autoload :OmimGene, "#{base}/hg19/omimgene"
31
- autoload :WgRna, "#{base}/hg19/wgrna"
32
- autoload :EnsGene, "#{base}/hg19/ensgene"
33
-
51
+ ## track: HapMap SNPs
34
52
  autoload :HapMapSnpsASW, "#{base}/hg19/hapmapsnpsasw"
35
53
  autoload :HapMapSnpsCEU, "#{base}/hg19/hapmapsnpsceu"
36
54
  autoload :HapMapSnpsCHB, "#{base}/hg19/hapmapsnpschb"
@@ -45,10 +63,29 @@ module Bio
45
63
  autoload :HapMapAllelesChimp, "#{base}/hg19/hapmapalleleschimp"
46
64
  autoload :HapMapAllelesMacaque, "#{base}/hg19/hapmapallelesmacaque"
47
65
 
66
+ ## track: RepeatMasker
48
67
  autoload :Rmsk, "#{base}/hg19/rmsk"
49
68
 
69
+ ## track: DGV Struct Var
70
+ autoload :Dgv, "#{base}/hg19/dgv"
71
+
72
+ # group: Comparative Genomics
73
+ ## track: Conservation
50
74
  autoload :PhyloP46wayPrimates, "#{base}/hg19/phylop46wayprimates"
51
75
  autoload :PhastConsElements46wayPrimates, "#{base}/hg19/phastconselements46wayprimates"
76
+
77
+ # group: Phenotype and Desease Association
78
+ ## track: OMIM Genes
79
+ autoload :OmimGene, "#{base}/hg19/omimgene"
80
+
81
+ ## track: :Gwas Catalog
82
+ autoload :GwasCatalog, "#{base}/hg19/gwascatalog"
83
+
84
+ # information tables behind tracks
85
+ autoload :Description, "#{base}/hg19/description"
86
+ autoload :GbCdnaInfo, "#{base}/hg19/gbcdnainfo"
87
+ autoload :KgXref, "#{base}/hg19/kgxref"
88
+ autoload :RefSeqSummary, "#{base}/hg19/refseqsummary"
52
89
  end
53
90
  end
54
91
  end