bio-svgenes 0.2.2 → 0.2.3

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.3
data/bio-svgenes.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "bio-svgenes"
8
- s.version = "0.2.2"
8
+ s.version = "0.2.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dan MacLean"]
12
- s.date = "2013-01-18"
12
+ s.date = "2013-01-30"
13
13
  s.description = "This bio-gem facilitates the creation of pretty, publication quality SVG images from feature data."
14
14
  s.email = "maclean.daniel@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -38,6 +38,7 @@ Gem::Specification.new do |s|
38
38
  "examples/example_config.json",
39
39
  "examples/gene.gff",
40
40
  "examples/get_coverage_in_windows.rb",
41
+ "examples/make_example.rb",
41
42
  "examples/transcripts.gff",
42
43
  "lib/.DS_Store",
43
44
  "lib/bio-svgenes.rb",
@@ -54,7 +55,7 @@ Gem::Specification.new do |s|
54
55
  s.homepage = "http://github.com/danmaclean/bioruby-svgenes"
55
56
  s.licenses = ["MIT"]
56
57
  s.require_paths = ["lib"]
57
- s.rubygems_version = "1.8.11"
58
+ s.rubygems_version = "1.8.10"
58
59
  s.summary = "Create pretty SVG-format images of features, gene models and data tracks"
59
60
 
60
61
  if s.respond_to? :specification_version then
@@ -27,7 +27,6 @@ end
27
27
  optparse.parse!
28
28
 
29
29
 
30
-
31
30
  require 'bio-svgenes'
32
31
 
33
32
  Bio::Graphics::Page.from_json(:json => options[:json], :outfile => options[:svg] )
@@ -0,0 +1,291 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # untitled
4
+ #
5
+ # Created by Dan MacLean (TSL) on 2013-01-18.
6
+ # Copyright (c) . All rights reserved.
7
+ ###################################################
8
+
9
+ ##to do:
10
+ ## background colour
11
+ ## single nt features : minimum size on circles, squares, triangles, diamonds, span (t bar)
12
+ ## label sizes
13
+ ## label positions
14
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
15
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
16
+ require 'bio-svgenes'
17
+
18
+
19
+
20
+ page = Bio::Graphics::Page.new(
21
+ :width => 800,
22
+ :height => 200,
23
+ :number_of_intervals => 10,
24
+ :background_color => "#F8F8F8"
25
+ )
26
+
27
+
28
+ def new_gene_track_on page
29
+ page.add_track(
30
+ :glyph => :directed,
31
+ :height => 15,
32
+ :name => "Genes",
33
+ :label => true,
34
+ :stroke => :green,
35
+ :fill_color => :green_white_h
36
+ )
37
+ end
38
+
39
+ def new_mRNA_track_on page
40
+ page.add_track(
41
+ :glyph => :transcript,
42
+ :name => "mRNA",
43
+ :height => 15,
44
+ :label => true,
45
+ :exon_stroke => :black,
46
+ :exon_stroke_width => 1,
47
+ :exon_fill_color => :blue,
48
+ :utr_fill_color => :purple,
49
+ :utr_stroke => :black,
50
+ :utr_stroke_width => 1,
51
+ :gap_marker => 'angled',
52
+ :line_color => :black,
53
+ :style => "fill-opacity:0.4;"
54
+ )
55
+ end
56
+
57
+ def new_te_insertion_site_track_on page
58
+ page.add_track(
59
+ :glyph => :circle,
60
+ :name => "TE Insertions",
61
+ :label => true,
62
+ :fill_color => :blue,
63
+ :radius => 3,
64
+ :stroke => :blue,
65
+ :stroke_width => 0.5,
66
+ :style => "fill-opacity:0.4;"
67
+ )
68
+ end
69
+
70
+ def new_cDNA_match_track_on page
71
+ page.add_track(
72
+ :glyph => :directed,
73
+ :name => "cDNA matches",
74
+ :label => true,
75
+ :stroke => :red,
76
+ :height => 15,
77
+ :fill_color => :red_white_h
78
+ )
79
+ end
80
+
81
+
82
+ def new_microarray_probe_track_on page
83
+ page.add_track(
84
+ :glyph => :generic,
85
+ :height => 15,
86
+ :name => "Microarray probes",
87
+ :label => true,
88
+ :fill_color => 'green',
89
+ :stroke_width => 0,
90
+ :style => "fill-opacity:1.0;"
91
+ )
92
+ end
93
+
94
+ def new_insertion_track_on page
95
+ page.add_track(
96
+ :glyph => :down_triangle,
97
+ :name => "Insertions",
98
+ :label => true,
99
+ :min_width => 6,
100
+ :fill_color => :red,
101
+ :stroke_width => 0,
102
+ :style => "fill-opacity:0.4;"
103
+ )
104
+ end
105
+
106
+
107
+ def new_deletion_track_on page
108
+ page.add_track(
109
+ :glyph => :up_triangle,
110
+ :name => "Deletions",
111
+ :label => true,
112
+ :fill_color => :green,
113
+ :min_width => 6,
114
+ :stroke_width => 0,
115
+ :style => "fill-opacity:0.4;"
116
+ )
117
+ end
118
+
119
+ def new_marker_track_on page
120
+ page.add_track(
121
+ :glyph => :span,
122
+ :height => 20,
123
+ :name => "Markers",
124
+ :label => true,
125
+ :stroke => :orange,
126
+ :stroke_width => 15
127
+ )
128
+ end
129
+
130
+
131
+ all_features = Bio::Graphics::Page.parse_gff( ARGV[0] )
132
+ puts all_features.length
133
+ #all_features.collect {|f| f.feature }.uniq.each do | feature_type |
134
+ ['gene', 'mRNA','cDNA_match', 'microarray_probe', 'insertion','deletion','substitution','transposable_element_insertion_site'].each do |feature_type|
135
+ #['gene', 'mRNA','cDNA_match', 'microarray_probe','transposable_element_insertion_site'].each do |feature_type|
136
+ puts "rendering #{feature_type}"
137
+ case feature_type
138
+ when 'gene'
139
+ track = new_gene_track_on page
140
+ all_features.select {|f| f.feature == feature_type }.each do |feature|
141
+ mf = Bio::Graphics::MiniFeature.new(
142
+ :start => feature.start,
143
+ :end => feature.end,
144
+ :strand => feature.strand,
145
+ :id => feature.attributes.select {|a| a.first == 'Name'}.first.last
146
+ )
147
+ track.add(mf)
148
+ end
149
+ when 'cDNA_match'
150
+ track = new_cDNA_match_track_on page
151
+ all_features.select {|f| f.feature == feature_type }.each do |feature|
152
+ mf = Bio::Graphics::MiniFeature.new(
153
+ :start => feature.start,
154
+ :strand => feature.strand,
155
+ :end => feature.end
156
+ )
157
+ track.add(mf)
158
+ end
159
+ when 'mRNA'
160
+ track = new_mRNA_track_on page
161
+ five_utrs = all_features.select {|x| x.feature_type == 'five_prime_UTR'}
162
+ three_utrs = all_features.select {|z| z.feature_type == 'three_prime_UTR'}
163
+ all_exons = all_features.select {|z| z.feature_type == 'CDS'}
164
+ require 'pp'
165
+ pp all_exons
166
+ all_features.select {|f| f.feature == feature_type }.each do |feature|
167
+
168
+ feature_id = feature.attributes.select {|y| y.first == "ID"}.first.last
169
+ five_utr = five_utrs.select {|x| x.attributes_to_hash["Parent"] == feature_id }.first
170
+ three_utr = three_utrs.select {|z| z.attributes_to_hash["Parent"] == feature_id }.first
171
+ utrs = []
172
+ if not five_utr.nil? and not three_utr.nil?
173
+ utrs = [five_utr.start,five_utr.end, three_utr.start,three_utr.end]
174
+ require 'pp'
175
+ utrs.sort!
176
+
177
+ end
178
+ exons = []
179
+ exons = all_exons.select {|x| x.attributes_to_hash["Parent"] == feature_id }
180
+ exons = exons.collect {|x| [x.start, x.end] }.flatten
181
+ #if not exons.empty?
182
+ # exons = exons.sort
183
+ #end
184
+ mf = Bio::Graphics::MiniFeature.new(
185
+ :start => feature.start,
186
+ :end => feature.end,
187
+ :utrs => utrs,
188
+ :exons => exons,
189
+ :strand => feature.strand
190
+ )
191
+ track.add(mf)
192
+ end
193
+ when 'microarray_probe'
194
+ track = new_microarray_probe_track_on page
195
+ all_features.select {|f| f.feature == feature_type }.each do |feature|
196
+ mf = Bio::Graphics::MiniFeature.new(
197
+ :start => feature.start,
198
+ :strand => feature.strand,
199
+ :end => feature.end
200
+ )
201
+ track.add(mf)
202
+ end
203
+ when 'transposable_element_insertion_site'
204
+ track = new_te_insertion_site_track_on page
205
+ all_features.select {|f| f.feature == feature_type }.each do |feature|
206
+ mf = Bio::Graphics::MiniFeature.new(
207
+ :start => feature.start,
208
+ :strand => feature.strand,
209
+ :end => feature.end
210
+ )
211
+ track.add(mf)
212
+ end
213
+ when 'insertion'
214
+ track = new_insertion_track_on page
215
+ all_features.select {|f| f.feature == feature_type }.each do |feature|
216
+ mf = Bio::Graphics::MiniFeature.new(
217
+ :start => feature.start,
218
+ :end => feature.end
219
+ )
220
+ track.add(mf)
221
+ end
222
+ when 'deletion'
223
+ track = new_deletion_track_on page
224
+ all_features.select {|f| f.feature == feature_type }.each do |feature|
225
+ mf = Bio::Graphics::MiniFeature.new(
226
+ :start => feature.start,
227
+ :end => feature.end
228
+ )
229
+ track.add(mf)
230
+ end
231
+ when 'marker'
232
+ track = new_marker_track_on page
233
+ all_features.select {|f| f.feature == feature_type }.each do |feature|
234
+ mf = Bio::Graphics::MiniFeature.new(
235
+ :start => feature.start,
236
+ :end => feature.end
237
+ )
238
+ track.add(mf)
239
+ end
240
+ end
241
+
242
+
243
+ end
244
+
245
+ data_track1 = page.add_track(:glyph => :histogram, #might also be :density or heatmap ##page doesn't know how to deal with individual file types, rather page object takes a list of values (e.g bar heights) from pre-processed data source and renders those
246
+ :stroke_color => 'black',
247
+ :fill_color => :blue,
248
+ :track_height => 75,
249
+ :name => 'Simulated NGS coverage (transformed sine function)',
250
+ :label => true,
251
+ :stroke_width => 0,
252
+ :style => "fill-opacity:0.6;"
253
+
254
+ )
255
+ ##generate a load of data, each data point becomes a feature...
256
+ data = (19597235..19637234).step(10) do |start|
257
+ #data = (19616011..19618459).step(1) do |start|
258
+ height = Math::sin(start)
259
+ height = height * -1 if height < 0
260
+ height = Math::log(height)
261
+ height = height * -1 if height < 0
262
+ data_feature = Bio::Graphics::MiniFeature.new(:start => start,
263
+ :end => start + 30,
264
+ :segment_height => height * 10
265
+ )
266
+ data_track1.add(data_feature)
267
+
268
+ end
269
+
270
+ data_track2 = page.add_track(:glyph => :histogram, #might also be :density or heatmap ##page doesn't know how to deal with individual file types, rather page object takes a list of values (e.g bar heights) from pre-processed data source and renders those
271
+ :stroke_color => 'black',
272
+ :fill_color => :yellow,
273
+ :track_height => 75,
274
+ :name => 'Random bar height',
275
+ :label => true,
276
+ :stroke_width => 1,
277
+ :style => "fill-opacity:0.4;"
278
+
279
+ )
280
+ ##generate a load of data, each data point becomes a feature...
281
+ data = (19597235..19637234).step(200) do |start|
282
+ #data = (19616011..19618459).step(30) do |start|
283
+ data_feature = Bio::Graphics::MiniFeature.new(:start => start,
284
+ :end => start + 200,
285
+ :segment_height => rand(30)
286
+ )
287
+ data_track2.add(data_feature)
288
+
289
+ end
290
+
291
+ page.write( "out.svg" )
@@ -3,7 +3,7 @@ module Bio
3
3
  class Glyph
4
4
  attr_reader :glyphs
5
5
  #holds a load of definitions for glyphs .. a glyph is an array of primitives...
6
- @glyphs = [:generic, :directed, :transcript, :scale, :label, :histogram]
6
+ @glyphs = [:generic, :directed, :transcript, :scale, :label, :histogram, :circle, :down_triangle, :up_triangle, :span]
7
7
 
8
8
  def self.generic(args) #:x, :y, :width :fill, :stroke :stroke_width, :style, :height,
9
9
  args = {
@@ -17,6 +17,20 @@ class Glyph
17
17
  [Bio::Graphics::Primitive.new(:rectangle, args)]
18
18
  end
19
19
 
20
+ def self.circle(args)
21
+ args = {
22
+ :radius => 10,
23
+ :fill_color => 'red',
24
+ :stroke => "black",
25
+ :stroke_width => 1,
26
+ :style => ""}.merge!(args)
27
+ args[:x_center] = args[:x]
28
+ args[:y_center] = args[:y]
29
+ [:x, :y].each {|e| args.delete(e)}
30
+ [Bio::Graphics::Primitive.new(:circle, args)]
31
+ end
32
+
33
+
20
34
  def self.directed(args) #:x, :y, :width :fill, :stroke :stroke_width, :style, :height
21
35
  args = {
22
36
 
@@ -34,6 +48,44 @@ class Glyph
34
48
  [Bio::Graphics::Primitive.new(:polygon, args)]
35
49
  end
36
50
 
51
+ def self.down_triangle(args) #:x, :y, :width :fill, :stroke :stroke_width, :style, :height
52
+ args = {
53
+
54
+ :height => 10,
55
+ :fill_color => 'red',
56
+ :stroke => "black",
57
+ :stroke_width => 1,
58
+ :style => "fill-opacity:0.4;"}.merge!(args)
59
+ args[:points] = "#{args[:x]},#{args[:y]} #{args[:x] + args[:width]},#{args[:y]} #{ args[:x] + (args[:width]/2) },#{(args[:y] + args[:height]) }"
60
+ [Bio::Graphics::Primitive.new(:polygon, args)]
61
+ end
62
+
63
+ def self.up_triangle(args) #:x, :y, :width :fill, :stroke :stroke_width, :style, :height
64
+ args = {
65
+ :height => 10,
66
+ :fill_color => 'red',
67
+ :stroke => "black",
68
+ :stroke_width => 1,
69
+ :style => "fill-opacity:0.4;"}.merge!(args)
70
+ args[:points] = "#{args[:x]},#{args[:y] + args[:height]} #{args[:x] + args[:width]},#{args[:y] + args[:height]} #{ args[:x] + (args[:width]/2) },#{args[:y] }"
71
+ [Bio::Graphics::Primitive.new(:polygon, args)]
72
+ end
73
+
74
+ def self.span(args)
75
+ args = {
76
+ :height => 10,
77
+ :fill_color => 'red',
78
+ :stroke => "black",
79
+ :stroke_width => 1,
80
+ :style => "fill-opacity:1;"
81
+ }.merge!(args)
82
+ args[:x1] = args[:x]
83
+ args[:x2] = args[:x] + args[:width]
84
+ args[:y1] = args[:y]
85
+ args[:y2] = args[:y]
86
+ [Bio::Graphics::Primitive.new(:line, args)]
87
+ end
88
+
37
89
  def self.transcript(args)
38
90
  args = {
39
91
  :height => 10,
@@ -5,6 +5,7 @@ class Page
5
5
  def initialize(args)
6
6
  @height = args[:height]
7
7
  @width = args[:width]
8
+ args[:style] = "background-color:#{args[:background_color]};" if args[:background_color]
8
9
  @svg = SVGEE.new(args)
9
10
  @scale_start = 1.0/0.0
10
11
  @scale_stop = -1.0/0.0
@@ -25,7 +26,6 @@ class Page
25
26
  def self.from_json(args)
26
27
  require 'rubygems'
27
28
  require 'json'
28
- puts "memememe"
29
29
  data = JSON.parse(File.open(args[:json], 'r').read)
30
30
  p = Page.new(:width => data["Page"]["width"],
31
31
  :height => data["Page"]["height"],
@@ -64,6 +64,8 @@ class Page
64
64
  end
65
65
  #now flick through the parentless features and add any exons / UTRs
66
66
  parentless_features.each do |plf|
67
+ require 'pp'
68
+ pp parentless_features
67
69
  gff_id = plf.attributes.select {|a| a.first == 'ID'}
68
70
  gff_id = gff_id.first.last
69
71
  exons = []
@@ -146,6 +148,10 @@ class Page
146
148
  Glyph.directed(args).each {|g| @svg.add_primitive(g) }
147
149
  end
148
150
 
151
+ def draw_circle(args)
152
+ Glyph.circle(args).each {|g| @svg.add_primitive(g) }
153
+ end
154
+
149
155
  def draw_transcript(args)
150
156
  Glyph.transcript(args).each {|g| @svg.add_primitive(g) }
151
157
  end
@@ -154,6 +160,18 @@ class Page
154
160
  Glyph.generic(args).each {|g| @svg.add_primitive(g) }
155
161
  end
156
162
 
163
+ def draw_up_triangle(args)
164
+ Glyph.up_triangle(args).each {|g| @svg.add_primitive(g) }
165
+ end
166
+
167
+ def draw_down_triangle(args)
168
+ Glyph.down_triangle(args).each {|g| @svg.add_primitive(g) }
169
+ end
170
+
171
+ def draw_span(args)
172
+ Glyph.span(args).each {|g| @svg.add_primitive(g) }
173
+ end
174
+
157
175
  def draw_features(track) #sort out the input information into a user friendly format..
158
176
  if [:histogram, "histogram"].include?(track.glyph) #do different stuff for data tracks...
159
177
 
@@ -219,7 +237,9 @@ class Page
219
237
  end
220
238
 
221
239
  width = to_px( (f.end - @scale_start) - (f.start - @scale_start) )
222
-
240
+ if track.min_width and width < track.min_width
241
+ width = track.min_width
242
+ end
223
243
  y = @track_top + (track.feature_rows[index] * 2 * track.feature_height)
224
244
 
225
245
  self.send("draw_#{track.glyph}", {:x => x,
@@ -2,7 +2,7 @@ module Bio
2
2
  class Graphics
3
3
 
4
4
  class Track
5
- attr_reader :glyph, :name, :label, :args, :track_height, :scale, :max_y
5
+ attr_reader :glyph, :name, :label, :args, :track_height, :scale, :max_y, :min_width
6
6
  attr_accessor :features, :feature_rows, :name, :number_rows, :feature_height
7
7
  def initialize(args)
8
8
  @args = {:glyph => :generic,
@@ -20,6 +20,7 @@ class Track
20
20
  @feature_height = @args[:feature_height]
21
21
  @number_of_rows = 1
22
22
  @max_y = args[:max_y]
23
+ @min_width = args[:min_width]
23
24
 
24
25
 
25
26
  end
metadata CHANGED
@@ -1,108 +1,80 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bio-svgenes
3
- version: !ruby/object:Gem::Version
4
- hash: 19
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 2
10
- version: 0.2.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Dan MacLean
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-01-18 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- type: :development
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
32
- version_requirements: *id001
12
+ date: 2013-01-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
33
15
  name: shoulda
34
- - !ruby/object:Gem::Dependency
16
+ requirement: &70232196114400 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
35
22
  type: :development
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70232196114400
25
+ - !ruby/object:Gem::Dependency
26
+ name: bundler
27
+ requirement: &70232196113480 !ruby/object:Gem::Requirement
38
28
  none: false
39
- requirements:
29
+ requirements:
40
30
  - - ~>
41
- - !ruby/object:Gem::Version
42
- hash: 23
43
- segments:
44
- - 1
45
- - 0
46
- - 0
31
+ - !ruby/object:Gem::Version
47
32
  version: 1.0.0
48
- version_requirements: *id002
49
- name: bundler
50
- - !ruby/object:Gem::Dependency
51
33
  type: :development
52
34
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70232196113480
36
+ - !ruby/object:Gem::Dependency
37
+ name: jeweler
38
+ requirement: &70232196112820 !ruby/object:Gem::Requirement
54
39
  none: false
55
- requirements:
40
+ requirements:
56
41
  - - ~>
57
- - !ruby/object:Gem::Version
58
- hash: 7
59
- segments:
60
- - 1
61
- - 6
62
- - 4
42
+ - !ruby/object:Gem::Version
63
43
  version: 1.6.4
64
- version_requirements: *id003
65
- name: jeweler
66
- - !ruby/object:Gem::Dependency
67
44
  type: :development
68
45
  prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
70
- none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 0
77
- version: "0"
78
- version_requirements: *id004
46
+ version_requirements: *70232196112820
47
+ - !ruby/object:Gem::Dependency
79
48
  name: rcov
80
- - !ruby/object:Gem::Dependency
49
+ requirement: &70232196111740 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
81
55
  type: :development
82
56
  prerelease: false
83
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *70232196111740
58
+ - !ruby/object:Gem::Dependency
59
+ name: bio
60
+ requirement: &70232196111080 !ruby/object:Gem::Requirement
84
61
  none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- hash: 3
89
- segments:
90
- - 1
91
- - 4
92
- - 2
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
93
65
  version: 1.4.2
94
- version_requirements: *id005
95
- name: bio
96
- description: This bio-gem facilitates the creation of pretty, publication quality SVG images from feature data.
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70232196111080
69
+ description: This bio-gem facilitates the creation of pretty, publication quality
70
+ SVG images from feature data.
97
71
  email: maclean.daniel@gmail.com
98
72
  executables: []
99
-
100
73
  extensions: []
101
-
102
- extra_rdoc_files:
74
+ extra_rdoc_files:
103
75
  - LICENSE.txt
104
76
  - README.rdoc
105
- files:
77
+ files:
106
78
  - .DS_Store
107
79
  - .document
108
80
  - Gemfile
@@ -124,6 +96,7 @@ files:
124
96
  - examples/example_config.json
125
97
  - examples/gene.gff
126
98
  - examples/get_coverage_in_windows.rb
99
+ - examples/make_example.rb
127
100
  - examples/transcripts.gff
128
101
  - lib/.DS_Store
129
102
  - lib/bio-svgenes.rb
@@ -137,37 +110,31 @@ files:
137
110
  - test/helper.rb
138
111
  - test/test_bio-svgenes.rb
139
112
  homepage: http://github.com/danmaclean/bioruby-svgenes
140
- licenses:
113
+ licenses:
141
114
  - MIT
142
115
  post_install_message:
143
116
  rdoc_options: []
144
-
145
- require_paths:
117
+ require_paths:
146
118
  - lib
147
- required_ruby_version: !ruby/object:Gem::Requirement
119
+ required_ruby_version: !ruby/object:Gem::Requirement
148
120
  none: false
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- hash: 3
153
- segments:
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ segments:
154
126
  - 0
155
- version: "0"
156
- required_rubygems_version: !ruby/object:Gem::Requirement
127
+ hash: 1694400785006489552
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
157
129
  none: false
158
- requirements:
159
- - - ">="
160
- - !ruby/object:Gem::Version
161
- hash: 3
162
- segments:
163
- - 0
164
- version: "0"
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
165
134
  requirements: []
166
-
167
135
  rubyforge_project:
168
- rubygems_version: 1.8.11
136
+ rubygems_version: 1.8.10
169
137
  signing_key:
170
138
  specification_version: 3
171
139
  summary: Create pretty SVG-format images of features, gene models and data tracks
172
140
  test_files: []
173
-