transrate 0.1.0 → 0.2.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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +16 -1
  3. data/.travis.yml +8 -0
  4. data/README.md +45 -43
  5. data/Rakefile +36 -0
  6. data/bin/transrate +98 -50
  7. data/deps/deps.yaml +55 -0
  8. data/lib/transrate.rb +19 -4
  9. data/lib/transrate/assembly.rb +93 -182
  10. data/lib/transrate/bowtie2.rb +37 -13
  11. data/lib/transrate/cmd.rb +19 -0
  12. data/lib/transrate/comparative_metrics.rb +239 -19
  13. data/lib/transrate/contig.rb +212 -0
  14. data/lib/transrate/contig_metrics.rb +76 -0
  15. data/lib/transrate/read_metrics.rb +83 -41
  16. data/lib/transrate/samtools.rb +73 -0
  17. data/lib/transrate/transrater.rb +31 -11
  18. data/lib/transrate/version.rb +1 -1
  19. data/test/data/150uncovered.l.fq +892 -0
  20. data/test/data/150uncovered.r.fq +892 -0
  21. data/test/data/Os.protein.2.fa +95 -0
  22. data/test/data/Os.protein.fa +199 -0
  23. data/test/data/assembly.2.fa +26 -0
  24. data/test/{assembly.fasta → data/assembly.fasta} +0 -0
  25. data/test/data/bridging_reads.l.fastq +20 -0
  26. data/test/data/bridging_reads.r.fastq +20 -0
  27. data/test/data/sorghum_transcript.fa +4 -0
  28. data/test/data/tiny.sam +4 -0
  29. data/test/helper.rb +33 -2
  30. data/test/test_bowtie.rb +54 -0
  31. data/test/test_cmd.rb +15 -0
  32. data/test/test_comp_metrics.rb +177 -0
  33. data/test/test_contig.rb +61 -0
  34. data/test/test_contig_metrics.rb +50 -0
  35. data/test/test_inline.rb +10 -9
  36. data/test/test_read_metrics.rb +68 -0
  37. data/test/test_samtools.rb +22 -0
  38. data/test/test_transrate.rb +40 -0
  39. data/test/test_transrater.rb +68 -0
  40. data/transrate.gemspec +16 -10
  41. metadata +232 -57
  42. data/lib/transrate/express.rb +0 -37
  43. data/lib/transrate/log.rb +0 -16
  44. data/lib/transrate/rb_hit.rb +0 -33
  45. data/lib/transrate/reciprocal_annotation.rb +0 -105
  46. data/lib/transrate/usearch.rb +0 -66
  47. data/test/test_test.rb +0 -41
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'helper'
4
+ require 'tmpdir'
5
+
6
+ class TestTransrater < Test::Unit::TestCase
7
+
8
+ context "transrater" do
9
+
10
+ setup do
11
+ @assembly = File.join(File.dirname(__FILE__), 'data', 'assembly.2.fa')
12
+ @reference = File.join(File.dirname(__FILE__), 'data', 'Os.protein.2.fa')
13
+ @rater = Transrate::Transrater.new(@assembly, @reference)
14
+ @left = File.join(File.dirname(__FILE__), 'data', '150uncovered.l.fq')
15
+ @right = File.join(File.dirname(__FILE__), 'data', '150uncovered.r.fq')
16
+ end
17
+
18
+ should "create transrater object" do
19
+ assert @rater
20
+ end
21
+
22
+ should "raise error when assembly input is nil" do
23
+ assert_raise RuntimeError do
24
+ rater = Transrate::Transrater.new(nil, @reference)
25
+ end
26
+ end
27
+
28
+ should "handle assembly as an assemby object" do
29
+ assembly_object = Transrate::Assembly.new(@assembly)
30
+ rater = Transrate::Transrater.new(assembly_object, @reference)
31
+ end
32
+
33
+ should "handle reference as an assemby object" do
34
+ reference_object = Transrate::Assembly.new(@reference)
35
+ rater = Transrate::Transrater.new(@assembly, reference_object)
36
+ end
37
+
38
+ should "run assembly metrics without input fastq files" do
39
+ Dir.mktmpdir do |tmpdir|
40
+ Dir.chdir tmpdir do
41
+ stats = @rater.assembly_metrics
42
+ assert_equal 1566, stats.n50
43
+ assert_equal 10331, stats.n_bases
44
+ end
45
+ end
46
+ end
47
+
48
+ should "run read metrics with input fastq files" do
49
+ Dir.mktmpdir do |tmpdir|
50
+ Dir.chdir tmpdir do
51
+ stats = @rater.read_metrics(@left, @right)
52
+ assert_equal 223, stats.read_stats[:num_pairs]
53
+ end
54
+ end
55
+ end
56
+
57
+ should "get assembly score" do
58
+ Dir.mktmpdir do |tmpdir|
59
+ Dir.chdir tmpdir do
60
+ all = @rater.all_metrics(@left, @right)
61
+ score = @rater.assembly_score
62
+ assert_equal 0.23282, score.round(5)
63
+ end
64
+ end
65
+ end
66
+
67
+ end
68
+ end
data/transrate.gemspec CHANGED
@@ -4,7 +4,7 @@ require File.expand_path('../lib/transrate/version', __FILE__)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
6
  gem.name = 'transrate'
7
- gem.authors = [ "Richard Smith" ]
7
+ gem.authors = [ "Richard Smith-Unna", "Chris Boursnell" ]
8
8
  gem.email = "rds45@cam.ac.uk"
9
9
  gem.licenses = ["MIT"]
10
10
  gem.homepage = 'https://github.com/Blahah/transrate'
@@ -16,15 +16,21 @@ Gem::Specification.new do |gem|
16
16
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  gem.require_paths = %w( lib )
18
18
 
19
- gem.add_dependency 'rake'
20
- gem.add_dependency 'trollop'
21
- gem.add_dependency 'which'
22
- gem.add_dependency 'bio'
23
- gem.add_dependency 'bettersam'
19
+ gem.add_dependency 'yell', '~> 2.0', '>= 2.0.4'
20
+ gem.add_dependency 'trollop', '~> 2.0'
21
+ gem.add_dependency 'bindeps', '~> 0.0', '>= 0.0.7'
22
+ gem.add_dependency 'which', '~> 0.0', '>= 0.0.2'
23
+ gem.add_dependency 'bio', '~> 1.4', '>= 1.4.3'
24
+ gem.add_dependency 'bio-samtools', '~> 2.0', '>= 2.0.5'
24
25
  gem.add_dependency 'RubyInline', '~> 3.12'
26
+ gem.add_dependency 'crb-blast', '~> 0.2'
27
+ gem.add_dependency 'bettersam', '~> 0.0', '>= 0.0.3'
28
+ gem.add_dependency 'ruby-prof', '~> 0.15', '>= 0.15.1'
25
29
 
26
- gem.add_development_dependency 'turn'
27
- gem.add_development_dependency 'simplecov'
28
- gem.add_development_dependency 'shoulda-context'
29
- gem.add_development_dependency 'coveralls', '>= 0.6.7'
30
+ gem.add_development_dependency 'rake', '~> 10.3', '>= 10.3.2'
31
+ gem.add_development_dependency 'turn', '~> 0.9', '>= 0.9.7'
32
+ gem.add_development_dependency 'minitest', '~> 4', '>= 4.7.5'
33
+ gem.add_development_dependency 'simplecov', '~> 0.8', '>= 0.8.2'
34
+ gem.add_development_dependency 'shoulda-context', '~> 1.2', '>= 1.2.1'
35
+ gem.add_development_dependency 'coveralls', '~> 0.7'
30
36
  end
metadata CHANGED
@@ -1,189 +1,363 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transrate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - Richard Smith
7
+ - Richard Smith-Unna
8
+ - Chris Boursnell
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-05-07 00:00:00.000000000 Z
12
+ date: 2014-07-08 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
- name: rake
15
+ name: yell
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
- - - ">="
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: '2.0'
21
+ - - '>='
18
22
  - !ruby/object:Gem::Version
19
- version: '0'
23
+ version: 2.0.4
20
24
  type: :runtime
21
25
  prerelease: false
22
26
  version_requirements: !ruby/object:Gem::Requirement
23
27
  requirements:
24
- - - ">="
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: '2.0'
31
+ - - '>='
25
32
  - !ruby/object:Gem::Version
26
- version: '0'
33
+ version: 2.0.4
27
34
  - !ruby/object:Gem::Dependency
28
35
  name: trollop
29
36
  requirement: !ruby/object:Gem::Requirement
30
37
  requirements:
31
- - - ">="
38
+ - - ~>
32
39
  - !ruby/object:Gem::Version
33
- version: '0'
40
+ version: '2.0'
34
41
  type: :runtime
35
42
  prerelease: false
36
43
  version_requirements: !ruby/object:Gem::Requirement
37
44
  requirements:
38
- - - ">="
45
+ - - ~>
39
46
  - !ruby/object:Gem::Version
40
- version: '0'
47
+ version: '2.0'
48
+ - !ruby/object:Gem::Dependency
49
+ name: bindeps
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0.0'
55
+ - - '>='
56
+ - !ruby/object:Gem::Version
57
+ version: 0.0.7
58
+ type: :runtime
59
+ prerelease: false
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ~>
63
+ - !ruby/object:Gem::Version
64
+ version: '0.0'
65
+ - - '>='
66
+ - !ruby/object:Gem::Version
67
+ version: 0.0.7
41
68
  - !ruby/object:Gem::Dependency
42
69
  name: which
43
70
  requirement: !ruby/object:Gem::Requirement
44
71
  requirements:
45
- - - ">="
72
+ - - ~>
46
73
  - !ruby/object:Gem::Version
47
- version: '0'
74
+ version: '0.0'
75
+ - - '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.0.2
48
78
  type: :runtime
49
79
  prerelease: false
50
80
  version_requirements: !ruby/object:Gem::Requirement
51
81
  requirements:
52
- - - ">="
82
+ - - ~>
83
+ - !ruby/object:Gem::Version
84
+ version: '0.0'
85
+ - - '>='
53
86
  - !ruby/object:Gem::Version
54
- version: '0'
87
+ version: 0.0.2
55
88
  - !ruby/object:Gem::Dependency
56
89
  name: bio
57
90
  requirement: !ruby/object:Gem::Requirement
58
91
  requirements:
59
- - - ">="
92
+ - - ~>
60
93
  - !ruby/object:Gem::Version
61
- version: '0'
94
+ version: '1.4'
95
+ - - '>='
96
+ - !ruby/object:Gem::Version
97
+ version: 1.4.3
62
98
  type: :runtime
63
99
  prerelease: false
64
100
  version_requirements: !ruby/object:Gem::Requirement
65
101
  requirements:
66
- - - ">="
102
+ - - ~>
103
+ - !ruby/object:Gem::Version
104
+ version: '1.4'
105
+ - - '>='
67
106
  - !ruby/object:Gem::Version
68
- version: '0'
107
+ version: 1.4.3
69
108
  - !ruby/object:Gem::Dependency
70
- name: bettersam
109
+ name: bio-samtools
71
110
  requirement: !ruby/object:Gem::Requirement
72
111
  requirements:
73
- - - ">="
112
+ - - ~>
74
113
  - !ruby/object:Gem::Version
75
- version: '0'
114
+ version: '2.0'
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: 2.0.5
76
118
  type: :runtime
77
119
  prerelease: false
78
120
  version_requirements: !ruby/object:Gem::Requirement
79
121
  requirements:
80
- - - ">="
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '2.0'
125
+ - - '>='
81
126
  - !ruby/object:Gem::Version
82
- version: '0'
127
+ version: 2.0.5
83
128
  - !ruby/object:Gem::Dependency
84
129
  name: RubyInline
85
130
  requirement: !ruby/object:Gem::Requirement
86
131
  requirements:
87
- - - "~>"
132
+ - - ~>
88
133
  - !ruby/object:Gem::Version
89
134
  version: '3.12'
90
135
  type: :runtime
91
136
  prerelease: false
92
137
  version_requirements: !ruby/object:Gem::Requirement
93
138
  requirements:
94
- - - "~>"
139
+ - - ~>
95
140
  - !ruby/object:Gem::Version
96
141
  version: '3.12'
142
+ - !ruby/object:Gem::Dependency
143
+ name: crb-blast
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ~>
147
+ - !ruby/object:Gem::Version
148
+ version: '0.2'
149
+ type: :runtime
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ~>
154
+ - !ruby/object:Gem::Version
155
+ version: '0.2'
156
+ - !ruby/object:Gem::Dependency
157
+ name: bettersam
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ~>
161
+ - !ruby/object:Gem::Version
162
+ version: '0.0'
163
+ - - '>='
164
+ - !ruby/object:Gem::Version
165
+ version: 0.0.3
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ~>
171
+ - !ruby/object:Gem::Version
172
+ version: '0.0'
173
+ - - '>='
174
+ - !ruby/object:Gem::Version
175
+ version: 0.0.3
176
+ - !ruby/object:Gem::Dependency
177
+ name: ruby-prof
178
+ requirement: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ~>
181
+ - !ruby/object:Gem::Version
182
+ version: '0.15'
183
+ - - '>='
184
+ - !ruby/object:Gem::Version
185
+ version: 0.15.1
186
+ type: :runtime
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ~>
191
+ - !ruby/object:Gem::Version
192
+ version: '0.15'
193
+ - - '>='
194
+ - !ruby/object:Gem::Version
195
+ version: 0.15.1
196
+ - !ruby/object:Gem::Dependency
197
+ name: rake
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ~>
201
+ - !ruby/object:Gem::Version
202
+ version: '10.3'
203
+ - - '>='
204
+ - !ruby/object:Gem::Version
205
+ version: 10.3.2
206
+ type: :development
207
+ prerelease: false
208
+ version_requirements: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ~>
211
+ - !ruby/object:Gem::Version
212
+ version: '10.3'
213
+ - - '>='
214
+ - !ruby/object:Gem::Version
215
+ version: 10.3.2
97
216
  - !ruby/object:Gem::Dependency
98
217
  name: turn
99
218
  requirement: !ruby/object:Gem::Requirement
100
219
  requirements:
101
- - - ">="
220
+ - - ~>
221
+ - !ruby/object:Gem::Version
222
+ version: '0.9'
223
+ - - '>='
224
+ - !ruby/object:Gem::Version
225
+ version: 0.9.7
226
+ type: :development
227
+ prerelease: false
228
+ version_requirements: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - ~>
231
+ - !ruby/object:Gem::Version
232
+ version: '0.9'
233
+ - - '>='
234
+ - !ruby/object:Gem::Version
235
+ version: 0.9.7
236
+ - !ruby/object:Gem::Dependency
237
+ name: minitest
238
+ requirement: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ~>
241
+ - !ruby/object:Gem::Version
242
+ version: '4'
243
+ - - '>='
102
244
  - !ruby/object:Gem::Version
103
- version: '0'
245
+ version: 4.7.5
104
246
  type: :development
105
247
  prerelease: false
106
248
  version_requirements: !ruby/object:Gem::Requirement
107
249
  requirements:
108
- - - ">="
250
+ - - ~>
109
251
  - !ruby/object:Gem::Version
110
- version: '0'
252
+ version: '4'
253
+ - - '>='
254
+ - !ruby/object:Gem::Version
255
+ version: 4.7.5
111
256
  - !ruby/object:Gem::Dependency
112
257
  name: simplecov
113
258
  requirement: !ruby/object:Gem::Requirement
114
259
  requirements:
115
- - - ">="
260
+ - - ~>
261
+ - !ruby/object:Gem::Version
262
+ version: '0.8'
263
+ - - '>='
116
264
  - !ruby/object:Gem::Version
117
- version: '0'
265
+ version: 0.8.2
118
266
  type: :development
119
267
  prerelease: false
120
268
  version_requirements: !ruby/object:Gem::Requirement
121
269
  requirements:
122
- - - ">="
270
+ - - ~>
271
+ - !ruby/object:Gem::Version
272
+ version: '0.8'
273
+ - - '>='
123
274
  - !ruby/object:Gem::Version
124
- version: '0'
275
+ version: 0.8.2
125
276
  - !ruby/object:Gem::Dependency
126
277
  name: shoulda-context
127
278
  requirement: !ruby/object:Gem::Requirement
128
279
  requirements:
129
- - - ">="
280
+ - - ~>
130
281
  - !ruby/object:Gem::Version
131
- version: '0'
282
+ version: '1.2'
283
+ - - '>='
284
+ - !ruby/object:Gem::Version
285
+ version: 1.2.1
132
286
  type: :development
133
287
  prerelease: false
134
288
  version_requirements: !ruby/object:Gem::Requirement
135
289
  requirements:
136
- - - ">="
290
+ - - ~>
291
+ - !ruby/object:Gem::Version
292
+ version: '1.2'
293
+ - - '>='
137
294
  - !ruby/object:Gem::Version
138
- version: '0'
295
+ version: 1.2.1
139
296
  - !ruby/object:Gem::Dependency
140
297
  name: coveralls
141
298
  requirement: !ruby/object:Gem::Requirement
142
299
  requirements:
143
- - - ">="
300
+ - - ~>
144
301
  - !ruby/object:Gem::Version
145
- version: 0.6.7
302
+ version: '0.7'
146
303
  type: :development
147
304
  prerelease: false
148
305
  version_requirements: !ruby/object:Gem::Requirement
149
306
  requirements:
150
- - - ">="
307
+ - - ~>
151
308
  - !ruby/object:Gem::Version
152
- version: 0.6.7
153
- description: " a library and command-line tool for quality assessment of de-novo transcriptome
154
- assemblies "
309
+ version: '0.7'
310
+ description: ' a library and command-line tool for quality assessment of de-novo transcriptome
311
+ assemblies '
155
312
  email: rds45@cam.ac.uk
156
313
  executables:
157
314
  - transrate
158
315
  extensions: []
159
316
  extra_rdoc_files: []
160
317
  files:
161
- - ".gitignore"
318
+ - .gitignore
319
+ - .travis.yml
162
320
  - Gemfile
163
321
  - LICENSE
164
322
  - README.md
165
323
  - Rakefile
166
324
  - bin/transrate
325
+ - deps/deps.yaml
167
326
  - lib/transrate.rb
168
327
  - lib/transrate/assembly.rb
169
328
  - lib/transrate/bowtie2.rb
329
+ - lib/transrate/cmd.rb
170
330
  - lib/transrate/comparative_metrics.rb
331
+ - lib/transrate/contig.rb
332
+ - lib/transrate/contig_metrics.rb
171
333
  - lib/transrate/dimension_reduce.rb
172
- - lib/transrate/express.rb
173
- - lib/transrate/log.rb
174
334
  - lib/transrate/metric.rb
175
- - lib/transrate/rb_hit.rb
176
335
  - lib/transrate/read_metrics.rb
177
- - lib/transrate/reciprocal_annotation.rb
336
+ - lib/transrate/samtools.rb
178
337
  - lib/transrate/transrater.rb
179
- - lib/transrate/usearch.rb
180
338
  - lib/transrate/version.rb
181
339
  - lib/transrate/writer.rb
182
- - test/assembly.fasta
340
+ - test/data/150uncovered.l.fq
341
+ - test/data/150uncovered.r.fq
342
+ - test/data/Os.protein.2.fa
343
+ - test/data/Os.protein.fa
344
+ - test/data/assembly.2.fa
345
+ - test/data/assembly.fasta
346
+ - test/data/bridging_reads.l.fastq
347
+ - test/data/bridging_reads.r.fastq
348
+ - test/data/sorghum_transcript.fa
349
+ - test/data/tiny.sam
183
350
  - test/helper.rb
351
+ - test/test_bowtie.rb
352
+ - test/test_cmd.rb
353
+ - test/test_comp_metrics.rb
354
+ - test/test_contig.rb
355
+ - test/test_contig_metrics.rb
184
356
  - test/test_inline.rb
185
- - test/test_test.rb
186
- - test/test_test.rb~
357
+ - test/test_read_metrics.rb
358
+ - test/test_samtools.rb
359
+ - test/test_transrate.rb
360
+ - test/test_transrater.rb
187
361
  - transrate.gemspec
188
362
  homepage: https://github.com/Blahah/transrate
189
363
  licenses:
@@ -195,18 +369,19 @@ require_paths:
195
369
  - lib
196
370
  required_ruby_version: !ruby/object:Gem::Requirement
197
371
  requirements:
198
- - - ">="
372
+ - - '>='
199
373
  - !ruby/object:Gem::Version
200
374
  version: '0'
201
375
  required_rubygems_version: !ruby/object:Gem::Requirement
202
376
  requirements:
203
- - - ">="
377
+ - - '>='
204
378
  - !ruby/object:Gem::Version
205
379
  version: '0'
206
380
  requirements: []
207
381
  rubyforge_project:
208
- rubygems_version: 2.1.4
382
+ rubygems_version: 2.0.6
209
383
  signing_key:
210
384
  specification_version: 4
211
385
  summary: quality assessment of de-novo transcriptome assemblies
212
386
  test_files: []
387
+ has_rdoc: