transrate 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: