bio-table 0.8.0 → 0.9.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 208de532730ef88e9a1ecc2961f08ceaa464d846
4
+ data.tar.gz: 4b88172ae40141a1db2dcb5c3a7b55daeea1beed
5
+ SHA512:
6
+ metadata.gz: 5d0a5f044e44a89fd047db4443fca2d8729af55f0cc7106ab45e939e3e92c7356dffd7f9308a63cb4a0ff39b313c9321edf3cb637af587f8b7ff8796c1083415
7
+ data.tar.gz: cb9abfe846b2c1949d027e38415e486719cf59db5fb99d38ec495b1b828d8a838dca19ee63c302844f82fb23dc4ec2a61c1749cbfb286f77ac0eecffa14e470e
@@ -1,12 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.2
4
3
  - 1.9.3
5
- - rbx-19mode
6
- # - jruby-19mode # JRuby in 1.9 mode
7
- # - 1.8.7
8
- # - jruby-18mode # JRuby in 1.8 mode
9
- # - rbx-18mode
10
-
4
+ - 2.1.0
5
+ - ruby-head
6
+ # - jruby-head
11
7
  # uncomment this line if your project needs to run something other than `rake`:
12
8
  # script: bundle exec rspec spec
data/Gemfile CHANGED
@@ -8,12 +8,11 @@ gem "bio-logger"
8
8
  # Add dependencies to develop your gem here.
9
9
  # Include everything needed to run rake, tests, features, etc.
10
10
  group :development do
11
- gem "rspec", "~> 2.8.0"
12
- gem "rdoc", "~> 3.12"
13
- gem "cucumber", ">= 0"
14
- gem "bundler", "> 1.0.0"
15
- gem "jeweler", "~> 1.8.3"
11
+ gem "rspec"
12
+ gem "cucumber"
13
+ gem "bundler"
14
+ gem "jeweler", "~> 2.0.0"
16
15
  gem "bio", ">= 1.4.2"
17
- gem "rdoc", "~> 3.12"
16
+ gem "rdoc"
18
17
  gem "regressiontest", ">= 0.0.2"
19
18
  end
data/README.md CHANGED
@@ -46,6 +46,7 @@ Features:
46
46
  * Convert key-value (attributes) to RDF (nyi)
47
47
  * Convert table to JSON/YAML/XML (nyi)
48
48
  * Transpose matrix (nyi)
49
+ * Convert a FASTA file to a table
49
50
  * etc. etc.
50
51
 
51
52
  and bio-table is pretty fast. To convert a 3Mb file of 18670 rows
@@ -86,7 +87,10 @@ When you have a special file format, it is also possible to use a string or rege
86
87
  bio-table --in-format regex --split-on '\s*,\s*' file
87
88
  ```
88
89
 
89
- To filter out rows that contain certain values
90
+ To filter out rows that contain certain values, i.e., filter on the
91
+ third column that have values less than 0.05 (this is actually the 5th
92
+ column in a tabular file, where the fist column is the row name and
93
+ the others count from zero).
90
94
 
91
95
  ```sh
92
96
  bio-table table1.csv --num-filter "values[3] <= 0.05"
@@ -135,7 +139,7 @@ which takes the first 13 fields and compact removes the nil values.
135
139
  To filter out all rows with more than 3 NA values:
136
140
 
137
141
  ```sh
138
- bio-table table.csv --num-filter 'values.to_a.size - values.compact.size > 3'
142
+ bio-table table.csv --num-filter 'values.size - values.compact.size > 3'
139
143
  ```
140
144
 
141
145
  Also string comparisons and regular expressions can be used. E.g.
@@ -201,6 +205,21 @@ again
201
205
  where we rewrite the rowname in capitals, and set the second field to
202
206
  empty if the third field is below 0.25.
203
207
 
208
+ Say we need a log transform, we can also transform and rewrite a full matrix with:
209
+
210
+ ```sh
211
+ bio-table table1.csv --rewrite 'fields = fields.map { |f| Math::log(f.to_f) }'
212
+ ```
213
+
214
+ Note that 'fields' is an alias for 'field', but do not use them in the same expression.
215
+ Another option is to use (lazy) values:
216
+
217
+ ```sh
218
+ bio-table table1.csv --rewrite 'fields = values.map { |v| Math::log(v) }'
219
+ ```
220
+
221
+ which saves the typing to to_f.
222
+
204
223
  ### Statistics
205
224
 
206
225
  bio-table can handle some column statistics using the Ruby statsample
@@ -210,7 +229,7 @@ gem
210
229
  gem install statsample
211
230
  ```
212
231
 
213
- (statsample is not loaded by default, as it has a host of
232
+ (statsample is not loaded by default because it has a host of
214
233
  dependencies)
215
234
 
216
235
  Thereafter, to calculate the stats for columns 1 and 2 (rowname is column 0)
@@ -247,7 +266,14 @@ You can combine/concat two or more tables by passing in multiple file names
247
266
  ```
248
267
 
249
268
  this will append table2 to table1, assuming they have the same headers
250
- (you can use the --columns switch!)
269
+ (you can use the --columns switch at the same time!). With --skip
270
+ the header lines are skipped in every file. This can be a real asset
271
+ when using the Unix split command on input files and combining output
272
+ files again. Something this might work:
273
+
274
+ ```sh
275
+ ls run/*.out -1|sort|xargs bio-table --skip 3
276
+ ```
251
277
 
252
278
  To combine tables side by side use the --merge switch:
253
279
 
@@ -261,6 +287,7 @@ with NA's, unless you add a filter, e.g.
261
287
 
262
288
  ```sh
263
289
  bio-table --merge table1.csv table2.csv --num-filter "values.compact.size == values.size"
290
+
264
291
  ```
265
292
 
266
293
  ### Splitting a table
@@ -310,7 +337,19 @@ finds the overlapping rows, based on the content of column 2.
310
337
  bio-table currently reads comma separated files and tab delimited
311
338
  files.
312
339
 
313
- (more soon)
340
+ bio-table can also parse a FASTA file and turn it into a table using
341
+ a flexible regular expression to fetch the IDs
342
+
343
+ ```sh
344
+ bio-table --fasta '^(\S+)' test/data/input/aa.fa
345
+ ```
346
+
347
+ notice the parentheses - these capture the ID and create the first
348
+ column. If two captures are defined another column gets added. Try
349
+
350
+ ```sh
351
+ bio-table --fasta '^(\S+).*?(\d+) aa' test/data/input/aa.fa
352
+ ```
314
353
 
315
354
  ### Using STDIN
316
355
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.0
1
+ 0.9.0
@@ -38,7 +38,6 @@ options[:show_help] = true if ARGV.size == 0 and not INPUT_ON_STDIN
38
38
  opts = OptionParser.new do |o|
39
39
  o.banner = "Usage: #{File.basename($0)} [options] filename\n\n"
40
40
 
41
-
42
41
  o.on('--num-filter expression', 'Numeric filtering function') do |par|
43
42
  options[:num_filter] = par
44
43
  end
@@ -130,6 +129,10 @@ opts = OptionParser.new do |o|
130
129
  options[:evaluate] = s
131
130
  end
132
131
 
132
+ o.on("--fasta regex",String,"Read FASTA format creating ID with regex") do | regex |
133
+ options[:fasta] = regex
134
+ end
135
+
133
136
  o.on('--blank-nodes','Output (RDF) blank nodes - allowing for duplicate row names') do
134
137
  options[:blank_nodes] = true
135
138
  end
@@ -137,7 +140,7 @@ opts = OptionParser.new do |o|
137
140
  o.on('--statistics','Output column statistics') do
138
141
  options[:statistics] = true
139
142
  end
140
-
143
+
141
144
  o.separator "\n\tVerbosity:\n\n"
142
145
 
143
146
  o.on("--logger filename",String,"Log to file (default stderr)") do | name |
@@ -183,7 +186,7 @@ end
183
186
 
184
187
  Bio::Log::CLI.configure('bio-table')
185
188
  logger = Bio::Log::LoggerPlus['bio-table']
186
- logger.info [options, ARGV]
189
+ logger.info [options]
187
190
 
188
191
  include BioTable
189
192
 
@@ -207,6 +210,17 @@ if options[:overlap]
207
210
  exit
208
211
  end
209
212
 
213
+ if options[:fasta]
214
+ logger.warn "Column settings are ignored for --fasta" if options[:columns]
215
+ ARGV.each do | fn |
216
+ print "id\tseq\n"
217
+ FastaReader.new(fn,options[:fasta]).each do | rec |
218
+ print rec.id,"\t",rec.seq,"\n"
219
+ end
220
+ end
221
+ exit
222
+ end
223
+
210
224
  if options[:merge]
211
225
  ts = []
212
226
  ARGV.each do | fn |
@@ -233,10 +247,12 @@ writer =
233
247
 
234
248
  if INPUT_ON_STDIN
235
249
  opts = options.dup # so we can 'safely' modify options
250
+ has_input = false
236
251
  BioTable::TableLoader.emit(STDIN, opts).each do |row, type|
237
252
  writer.write(TableRow.new(row[0],row[1..-1]),type)
253
+ has_input = true
238
254
  end
239
- options[:write_header] = false # don't write the header for chained files
255
+ options[:write_header] = false if has_input # don't write the header for chained files
240
256
  end
241
257
 
242
258
  statistics = if options[:statistics]
@@ -26,6 +26,7 @@ require 'bio-table/diff.rb'
26
26
  require 'bio-table/overlap.rb'
27
27
  require 'bio-table/merge.rb'
28
28
  require 'bio-table/rdf.rb'
29
+ require 'bio-table/parsers/fastareader.rb'
29
30
 
30
31
  module BioTable
31
32
  autoload :Statistics,'bio-table/statistics'
@@ -1,6 +1,10 @@
1
1
  module BioTable
2
2
 
3
+ # LazyValues fetches values on demand from the @fields array. In the [] method
4
+ # a field is transformed into a float when it is called.
5
+
3
6
  class LazyValues
7
+
4
8
  include Enumerable
5
9
 
6
10
  def initialize fields
@@ -16,12 +20,16 @@ module BioTable
16
20
  @values[index]
17
21
  end
18
22
 
19
- def each
20
- @fields.each_with_index do | field, i |
21
- yield self[i]
23
+ def each &block
24
+ @fields.each_with_index do |field,i|
25
+ if block_given?
26
+ block.call self[i]
27
+ else
28
+ yield self[i]
29
+ end
22
30
  end
23
31
  end
24
-
32
+
25
33
  def compact
26
34
  a = []
27
35
  each do | e |
@@ -29,6 +37,10 @@ module BioTable
29
37
  end
30
38
  a
31
39
  end
40
+
41
+ def size
42
+ @fields.size
43
+ end
32
44
  end
33
45
 
34
46
  module Filter
@@ -0,0 +1,141 @@
1
+ # FastaReader (originally from BigBio)
2
+ #
3
+
4
+
5
+ class FastaRecord
6
+ attr_accessor :id, :descr, :seq
7
+
8
+ def initialize id, descr, seq
9
+ @id = id
10
+ @descr = descr
11
+ @seq = seq
12
+ end
13
+ end
14
+
15
+ class FastaReader
16
+
17
+ # Initalize the reader of FASTA file _fn_. Options can be :regex and
18
+ # :index (true/false)
19
+ def initialize fn, regex = nil
20
+ @logger = Bio::Log::LoggerPlus['bio-table']
21
+ @f = File.open(fn)
22
+ @fread_once = false
23
+ @regex = regex
24
+ @regex = '^(\S+)' if @regex == nil
25
+ @regex = '('+regex+')' if regex !~ /\(/
26
+ @logger.info "Parsing FASTA with ID regex '"+@regex+"'"
27
+ end
28
+
29
+ # Parse the FASTA file and yield id, descr, sequence. When the indexer is on
30
+ # it will index the records the first time. Note that, with indexing, when
31
+ # you don't complete parsing there will be an error the second time. This is
32
+ # a # trade-off, otherwise one would always have to index the file and read
33
+ # it twice.
34
+ def parse_each
35
+ @f.seek 0 # force file rewind
36
+ @rec_fpos = 0
37
+ @rec_line = @f.gets
38
+ fpos = 0
39
+ @count = 0
40
+ begin
41
+ # digest id from record description
42
+ id, descr = digest_tag(@rec_line)
43
+ id_fpos = @rec_fpos
44
+ # parse the sequence
45
+ seq = ""
46
+ begin
47
+ fpos = @f.tell
48
+ line = @f.gets
49
+ break if line =~ /^>/
50
+ seq += line.strip
51
+ end while !@f.eof
52
+ # new record
53
+ @count += 1
54
+ @rec_fpos = fpos
55
+ @rec_line = line
56
+ # p [@rec_line, id, id_fpos]
57
+ # indexer_set(id, id_fpos) if @indexer and not @fread_once
58
+ yield id, descr, seq
59
+ end while !@f.eof
60
+ @fread_once = true
61
+ end
62
+
63
+ # returns a FastaRecord for every item (invokes parse_each)
64
+ def each
65
+ parse_each { | id, descr, seq | yield FastaRecord.new(id, descr, seq) }
66
+ end
67
+
68
+ def first
69
+ parse_each { | id, descr, seq |
70
+ return FastaRecord.new(id, descr, seq)
71
+ }
72
+ end
73
+
74
+ # Return a record by its +id+, nil when not found
75
+ def get id
76
+ indexed?
77
+ if fpos = indexer_get(id)
78
+ get_rec(fpos)
79
+ else
80
+ nil
81
+ end
82
+ end
83
+
84
+ def get_rec fpos
85
+ @f.seek fpos
86
+ tag = @f.gets
87
+ seq = ""
88
+ begin
89
+ line = @f.gets
90
+ break if line =~ /^>/
91
+ seq += line.strip
92
+ end while !@f.eof
93
+ id, descr = digest_tag(tag)
94
+ FastaRecord.new(id,descr,seq)
95
+ end
96
+
97
+ def get_by_index idx
98
+ indexed?
99
+ if fpos = indexer_get_by_index(idx)[1]
100
+ ret = get_rec(fpos)
101
+ return ret
102
+ end
103
+ nil
104
+ end
105
+
106
+ def digest_tag tag
107
+ if tag =~ /^>/
108
+ descr = $'.strip
109
+ matches = /#{@regex}/.match(descr).captures
110
+ if matches.size > 0
111
+ # p matches
112
+ return matches.join("\t"), descr
113
+ end
114
+ p descr # do not remove these
115
+ p @regex
116
+ end
117
+ raise "Can not digest '#{tag}' using '"+@regex+"'"
118
+ end
119
+
120
+ # Returns the size of the dataset - as read. After the final
121
+ # record the size represents the number of items in the FASTA file
122
+ def size
123
+ @count
124
+ end
125
+
126
+ def close
127
+ @f.close
128
+ end
129
+
130
+ private
131
+
132
+ def indexed?
133
+ if @indexer and not @fread_once
134
+ # force indexer
135
+ # $stderr.print "Force indexer"
136
+ parse_each { | x, y, z | nil }
137
+ end
138
+ true
139
+ end
140
+
141
+ end
@@ -2,7 +2,11 @@ module BioTable
2
2
 
3
3
  module Rewrite
4
4
 
5
+ # Rewrite fields. Both field and fields can be used, but not at the same time.
5
6
  def Rewrite::rewrite code, rowname, field
7
+ fields = field
8
+ original = field
9
+ values = LazyValues.new(field)
6
10
  return rowname,field if not code or code==""
7
11
  begin
8
12
  eval(code)
@@ -10,6 +14,7 @@ module BioTable
10
14
  $stderr.print "Failed to evaluate ",rowname," ",field," with ",code,"\n"
11
15
  raise
12
16
  end
17
+ field = fields if fields != original
13
18
  return rowname,field
14
19
  end
15
20
  end
@@ -3,7 +3,12 @@ module BioTable
3
3
 
4
4
  module Statistics
5
5
 
6
- require 'statsample'
6
+ begin
7
+ require 'statsample'
8
+ rescue LoadError
9
+ $stderr.print "Error: Missing statsample. Install with command 'gem install statsample'\n"
10
+ exit 1
11
+ end
7
12
 
8
13
  attr_reader :columns
9
14
 
@@ -29,6 +29,7 @@ module BioTable
29
29
  @include_rownames = options[:with_rownames]
30
30
  @logger.debug "Include row names" if @include_rownames
31
31
  @first_column = (@include_rownames ? 0 : 1)
32
+ @write_header = options[:write_header]
32
33
  end
33
34
 
34
35
  def parse_header(line, options)
@@ -39,7 +40,7 @@ module BioTable
39
40
  if options[:unshift_headers]
40
41
  header.unshift("ID")
41
42
  end
42
- @logger.info(header) if @logger
43
+ @logger.info(header) if @logger and @write_header
43
44
  header
44
45
  end
45
46
 
@@ -0,0 +1,7 @@
1
+ >PITG_20587T0 | PITG_20587 | Phytophthora infestans cysteine protease family C48, putative (translation) (349 aa) | paired
2
+ MQLRALLRDNDVCDVVSTLWMIMPGVREVWSFLTTFPVNKNGEGRSIQWRVDGDYVPDRVRFRLVESLVDDASDKLRGGLALDEEIELDSDGERMSSIESYVVSIEKVGQFTREQLEAMKSLWGLQDTCRNAVLCCTWLNSTVKPAVSDPASAGIIMGKILECWPYTSLVGFGFDLTYNNLFCFRDSAWLNDNAMRAFAVSKDAKNGTQPKATKSRISTSTLDKVGESVASHQFVLLPINFGGTHWGCLVVDRDTKVIKMYDSMGGKRNKKRLQKMAEEIRTGPLRDDSYEALEVTEPVQTNSDSCGVFVCRFFWTCVSSESPSDVSPAGITKLRWEMLHAVTKLRPR*
3
+ >PITG_04498T0 | PITG_04498 | Phytophthora infestans cysteine protease family C48, putative (translation) (337 aa) | paired
4
+ MKLRALLRDNDVCDVVSTLWMIMPGVREVGSFLTTFPLNKNGEGRSIQWRVDGDYVPDRVRFRLVESLVDDALDKLRGGLALDEEIELDRDGERMGSIESYVVSIEKVGQFTREQLEAMKSLWGLQDTCRNAVLCCTWLNSTVKPACWPYTPLVGFGFDLTYNNLFCFRDSAWLNDNAMRAFAVCLARYKNNCTVVIPPPKKAKDAKNGTQPKATKSRISTSTLDKVGESVASHQFVLLPINFGGTHWGCLVVKRDTKVIKMYDSMGGKRNKKRLQKMAEEIRTGPLRDDSYEALEVTEPVQTDSDSCGVFVDVSPAGITKLRWEMLHAVMKLRPR*
5
+ >PITG_10111T0 | PITG_10111 | Phytophthora infestans cysteine protease family C48, putative (translation) (332 aa) | paired
6
+ MKLRALLRDNDVCDVVSTLWMIMPGVREVGSFLTTFPVNKNGEGRSIQWRVDGDYVPDRVRFRLVESLVDDASDKLRGGLALDEEIELDTGQLTREQLEAMKSLWGLQDTCRNAVLCCTWLNSTILECWPYTPLVGFGFDLTYTNLFCFRDSAWLNDNAMRAFAVCLARYKNNCTVVIPPPQKAKDAKNGTQPKATKSRISTSTLDKVGESVASHQFVLLPINFGGTHWGCLVVDRDTKVVKMYDSMGGKRNKKRLEKMAEEIRTGPLRDDSYKALEVTEPVQTDSDSCGVFVCRFFWTCVSSESPSDVSPAGITKLRWEMLHAVMKLRPR*
7
+
metadata CHANGED
@@ -1,115 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bio-table
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
5
- prerelease:
4
+ version: 0.9.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Pjotr Prins
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-11-01 00:00:00.000000000Z
11
+ date: 2014-02-27 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bio-logger
16
- requirement: &23241080 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *23241080
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: rspec
27
- requirement: &23240480 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ~>
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
- version: 2.8.0
33
+ version: '0'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *23240480
36
- - !ruby/object:Gem::Dependency
37
- name: rdoc
38
- requirement: &23239900 !ruby/object:Gem::Requirement
39
- none: false
36
+ version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
- - - ~>
38
+ - - ">="
42
39
  - !ruby/object:Gem::Version
43
- version: '3.12'
44
- type: :development
45
- prerelease: false
46
- version_requirements: *23239900
40
+ version: '0'
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: cucumber
49
- requirement: &23238540 !ruby/object:Gem::Requirement
50
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
51
44
  requirements:
52
- - - ! '>='
45
+ - - ">="
53
46
  - !ruby/object:Gem::Version
54
47
  version: '0'
55
48
  type: :development
56
49
  prerelease: false
57
- version_requirements: *23238540
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
58
55
  - !ruby/object:Gem::Dependency
59
56
  name: bundler
60
- requirement: &23237420 !ruby/object:Gem::Requirement
61
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
62
58
  requirements:
63
- - - ! '>'
59
+ - - ">="
64
60
  - !ruby/object:Gem::Version
65
- version: 1.0.0
61
+ version: '0'
66
62
  type: :development
67
63
  prerelease: false
68
- version_requirements: *23237420
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
- requirement: &23236880 !ruby/object:Gem::Requirement
72
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
73
72
  requirements:
74
- - - ~>
73
+ - - "~>"
75
74
  - !ruby/object:Gem::Version
76
- version: 1.8.3
75
+ version: 2.0.0
77
76
  type: :development
78
77
  prerelease: false
79
- version_requirements: *23236880
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 2.0.0
80
83
  - !ruby/object:Gem::Dependency
81
84
  name: bio
82
- requirement: &23236300 !ruby/object:Gem::Requirement
83
- none: false
85
+ requirement: !ruby/object:Gem::Requirement
84
86
  requirements:
85
- - - ! '>='
87
+ - - ">="
86
88
  - !ruby/object:Gem::Version
87
89
  version: 1.4.2
88
90
  type: :development
89
91
  prerelease: false
90
- version_requirements: *23236300
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 1.4.2
91
97
  - !ruby/object:Gem::Dependency
92
98
  name: rdoc
93
- requirement: &23014480 !ruby/object:Gem::Requirement
94
- none: false
99
+ requirement: !ruby/object:Gem::Requirement
95
100
  requirements:
96
- - - ~>
101
+ - - ">="
97
102
  - !ruby/object:Gem::Version
98
- version: '3.12'
103
+ version: '0'
99
104
  type: :development
100
105
  prerelease: false
101
- version_requirements: *23014480
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
102
111
  - !ruby/object:Gem::Dependency
103
112
  name: regressiontest
104
- requirement: &23013780 !ruby/object:Gem::Requirement
105
- none: false
113
+ requirement: !ruby/object:Gem::Requirement
106
114
  requirements:
107
- - - ! '>='
115
+ - - ">="
108
116
  - !ruby/object:Gem::Version
109
117
  version: 0.0.2
110
118
  type: :development
111
119
  prerelease: false
112
- version_requirements: *23013780
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 0.0.2
113
125
  description: Functions and tools for tranforming and changing tab delimited and comma
114
126
  separated table files - useful for Excel sheets and SQL/RDF output
115
127
  email: pjotr.public01@thebird.nl
@@ -120,9 +132,9 @@ extra_rdoc_files:
120
132
  - LICENSE.txt
121
133
  - README.md
122
134
  files:
123
- - .document
124
- - .rspec
125
- - .travis.yml
135
+ - ".document"
136
+ - ".rspec"
137
+ - ".travis.yml"
126
138
  - Gemfile
127
139
  - LICENSE.txt
128
140
  - README.md
@@ -148,6 +160,7 @@ files:
148
160
  - lib/bio-table/merge.rb
149
161
  - lib/bio-table/overlap.rb
150
162
  - lib/bio-table/parser.rb
163
+ - lib/bio-table/parsers/fastareader.rb
151
164
  - lib/bio-table/rdf.rb
152
165
  - lib/bio-table/rewrite.rb
153
166
  - lib/bio-table/statistics.rb
@@ -160,6 +173,7 @@ files:
160
173
  - lib/bio-table/validator.rb
161
174
  - spec/bio-table_spec.rb
162
175
  - spec/spec_helper.rb
176
+ - test/data/input/aa.fa
163
177
  - test/data/input/table1.csv
164
178
  - test/data/input/table2.csv
165
179
  - test/data/input/table_no_headers.txt
@@ -186,29 +200,25 @@ files:
186
200
  homepage: http://github.com/pjotrp/bioruby-table
187
201
  licenses:
188
202
  - MIT
203
+ metadata: {}
189
204
  post_install_message:
190
205
  rdoc_options: []
191
206
  require_paths:
192
207
  - lib
193
208
  required_ruby_version: !ruby/object:Gem::Requirement
194
- none: false
195
209
  requirements:
196
- - - ! '>='
210
+ - - ">="
197
211
  - !ruby/object:Gem::Version
198
212
  version: '0'
199
- segments:
200
- - 0
201
- hash: 2239873243896303303
202
213
  required_rubygems_version: !ruby/object:Gem::Requirement
203
- none: false
204
214
  requirements:
205
- - - ! '>='
215
+ - - ">="
206
216
  - !ruby/object:Gem::Version
207
217
  version: '0'
208
218
  requirements: []
209
219
  rubyforge_project:
210
- rubygems_version: 1.8.10
220
+ rubygems_version: 2.0.3
211
221
  signing_key:
212
- specification_version: 3
222
+ specification_version: 4
213
223
  summary: Swiss army knife of tabulated data; transforming/filtering tab/csv files
214
224
  test_files: []