lederhosen 1.6.2 → 1.7.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.
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source :rubygems
2
2
 
3
- gem 'dna', '0.1.2'
3
+ gem "dna", :git => 'http://github.com/audy/dna.git', :tag => 'v0.2.1'
4
4
  gem 'progressbar', '0.12.0'
5
5
  gem 'thor', '0.16.0'
6
6
 
data/lederhosen.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "lederhosen"
8
- s.version = "1.6.2"
8
+ s.version = "1.7.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Austin G. Davis-Richardson"]
12
- s.date = "2012-12-13"
12
+ s.date = "2012-12-19"
13
13
  s.description = "Various tools for OTU clustering"
14
14
  s.email = "harekrishna@gmail.com"
15
15
  s.executables = ["lederhosen"]
@@ -18,7 +18,6 @@ Gem::Specification.new do |s|
18
18
  ]
19
19
  s.files = [
20
20
  ".rspec",
21
- ".rvmrc",
22
21
  "Gemfile",
23
22
  "LICENSE.txt",
24
23
  "Rakefile",
@@ -46,6 +45,7 @@ Gem::Specification.new do |s|
46
45
  "spec/data/ILT_L_9_B_002_3.txt.gz",
47
46
  "spec/data/example.fastq",
48
47
  "spec/data/test.uc",
48
+ "spec/data/trimmed_sizes.txt",
49
49
  "spec/no_tasks_spec.rb",
50
50
  "spec/spec_helper.rb",
51
51
  "spec/trimmer_spec.rb"
@@ -60,14 +60,14 @@ Gem::Specification.new do |s|
60
60
  s.specification_version = 3
61
61
 
62
62
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
63
- s.add_runtime_dependency(%q<dna>, ["= 0.1.2"])
63
+ s.add_runtime_dependency(%q<dna>, [">= 0"])
64
64
  s.add_runtime_dependency(%q<progressbar>, ["= 0.12.0"])
65
65
  s.add_runtime_dependency(%q<thor>, ["= 0.16.0"])
66
66
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
67
67
  s.add_development_dependency(%q<jeweler>, ["= 1.8.4"])
68
68
  s.add_development_dependency(%q<ruby-prof>, ["= 0.11.2"])
69
69
  else
70
- s.add_dependency(%q<dna>, ["= 0.1.2"])
70
+ s.add_dependency(%q<dna>, [">= 0"])
71
71
  s.add_dependency(%q<progressbar>, ["= 0.12.0"])
72
72
  s.add_dependency(%q<thor>, ["= 0.16.0"])
73
73
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
@@ -75,7 +75,7 @@ Gem::Specification.new do |s|
75
75
  s.add_dependency(%q<ruby-prof>, ["= 0.11.2"])
76
76
  end
77
77
  else
78
- s.add_dependency(%q<dna>, ["= 0.1.2"])
78
+ s.add_dependency(%q<dna>, [">= 0"])
79
79
  s.add_dependency(%q<progressbar>, ["= 0.12.0"])
80
80
  s.add_dependency(%q<thor>, ["= 0.16.0"])
81
81
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
@@ -10,16 +10,16 @@ module Lederhosen
10
10
  desc "trim",
11
11
  "trim reads based on quality scores"
12
12
 
13
- method_option :reads_dir, :type => :string, :required => true
14
- method_option :out_dir, :type => :string, :required => true
15
- method_option :pretrim, :type => :numeric, :default => 11
16
- method_option :read_type, :type => :string, :default => 'qseq'
13
+ method_option :reads_dir, :type => :string, :required => true
14
+ method_option :out_dir, :type => :string, :required => true
15
+ method_option :left_trim, :type => :numeric, :default => 0
16
+ method_option :read_type, :type => :string, :default => 'qseq'
17
17
  method_option :min_length, :type => :numeric, :default => 75
18
18
 
19
19
  def trim
20
20
  raw_reads = options[:reads_dir]
21
21
  out_dir = options[:out_dir]
22
- pretrim = options[:pretrim]
22
+ left_trim = options[:left_trim]
23
23
  read_type = options[:read_type]
24
24
  min_length = options[:min_length]
25
25
 
@@ -48,7 +48,7 @@ module Lederhosen
48
48
  out = File.join(out_dir, "#{File.basename(prefix)}.fasta")
49
49
 
50
50
  # create the trimmed sequence generator
51
- trim_args = { :pretrim => pretrim, :min_length => min_length }
51
+ trim_args = { :left_trim => left_trim, :min_length => min_length }
52
52
 
53
53
  trimmer =
54
54
  if read_type == 'qseq'
@@ -1,56 +1,39 @@
1
1
  module Lederhosen
2
2
  module Trimmer
3
3
 
4
- # Base class for trimming paired-end reads
5
- class PairedTrimmer < Enumerator
6
- def initialize(paired_iterator, args = {})
7
- @paired_iterator = paired_iterator
8
- @pretrim = args[:pretrim]
9
- @min_length = args[:min_length] || 70
10
- @min = args[:min] || 20
11
- @offset = args[:cutoff] || 64 # XXX should both be called 'cutoff'
12
- @pretrim = args[:pretrim] || false
13
- end
4
+ ##
5
+ # Code used for sequence trimming
6
+ #
7
+ # - PairedTrimmer
8
+ # - HuangTrimmer
9
+ # - ProbabilityTrimmer
10
+ # - QSEQTrimmer
11
+ #
12
+ # Some major refactoring needs to get done here
13
+ #
14
14
 
15
- def each(&block)
16
- @paired_iterator.each_with_index do |a, i|
17
- seqa = trim_seq a[0], :pretrim => @pretrim
18
- seqb = trim_seq a[1], :pretrim => @pretrim
19
- unless [seqa, seqb].include? nil
20
- if seqb.length >= @min_length && seqa.length >= @min_length
21
- seqb = reverse_complement(seqb) # experiment-specific?
22
- a = Fasta.new :name => "#{i}:0", :sequence => seqa
23
- b = Fasta.new :name => "#{i}:1", :sequence => seqb
24
- block.yield a
25
- block.yield b
26
- else # we just skip bad reads entirely
27
- next
28
- end
29
- else
30
- next
31
- end
32
- end
33
- end
15
+ # HaungTrimmer
16
+ #
17
+ # class that has the trim function. Used in mixins
18
+ # this trim function is based on the function documented
19
+ # in the paper:
20
+ # Huang X, Wang J, Aluru S, Yang SP, Hillier L. (2003). PCAP:
21
+ # a whole-genome assembly program. Genome Res 13:
22
+ # 2164–2170.
23
+ #
24
+ # The implementation is a direct copy from the perl implementation
25
+ # implemented in Pangea 1.0:
26
+ # PANGEA: pipeline for analysis of next generation amplicons
27
+ # A Giongo, DB Crabb, AG Davis-Richardson - ISME , 2010
28
+ #
29
+ class HuangTrimmer
34
30
 
35
- # reverse complement a DNA sequence
36
- # assumes only GATCN nucleotides
37
- def reverse_complement(s)
38
- s.reverse.tr('GATCNgatcn','CTAGNctagn')
31
+ def initialize(args={})
32
+ @min = args[:min]
33
+ @offset = args[:offset]
39
34
  end
40
35
 
41
- # this method does the actual trimming. It is a class method
42
- # so you can use it if you don't want to initialize a PairedTrimmer
43
- def trim_seq(dna, args={})
44
-
45
- # trim primers off of sequence
46
- # XXX this is experiment-specific and needs to be made
47
- # into a parameter
48
- if @pretrim
49
- dna.sequence = dna.sequence[@pretrim..-1]
50
- dna.quality = dna.quality[@pretrim..-1]
51
- end
52
-
53
- dna.sequence.gsub! '.', 'N'
36
+ def trim_seq(dna)
54
37
 
55
38
  _sum, _max, first, last, start, _end = 0, 0, 0, 0, 0
56
39
 
@@ -66,14 +49,130 @@ class PairedTrimmer < Enumerator
66
49
  end
67
50
  end
68
51
 
69
- dna.sequence[start, _end - start] rescue nil
52
+ begin
53
+ dna.sequence[start, _end - start].gsub('.', 'N')
54
+ rescue
55
+ nil
56
+ end
70
57
  end
58
+ end
71
59
 
60
+ #
61
+ # return the longest string starting from the left side
62
+ # where the PROBABILITY OF ERROR as computed from the PHRED
63
+ # scores does not go above a certain cutoff
64
+ # (default is 0.005)
65
+ #
66
+ class ProbabilityTrimmer
67
+
68
+ def initialize(args = {})
69
+ @cutoff = args[:cutoff] || 0.005
70
+ @min = args[:min]
71
+ @seqtech = args[:seq_tech] || fail
72
+ # must be illumina, sanger or solexa
73
+ end
74
+
75
+ def trim_seq(dna)
76
+ trim_coord = dna.sequence.size
77
+ probabilities = dna.send(:"#{@seqtech}_probabilities")
78
+ probabilities.each_with_index do |q, i|
79
+ if q > @cutoff
80
+ trim_coord = i
81
+ break
82
+ end
83
+ end
84
+
85
+ begin
86
+ dna.sequence[0..trim_coord].gsub('.', 'N')
87
+ rescue
88
+ nil
89
+ end
90
+ end
91
+ end
92
+
93
+ #
94
+ # Base class for trimming paired-end reads
95
+ #
96
+ class PairedTrimmer < Enumerator
97
+
98
+ def initialize(args = {})
99
+ @pretrim = args[:pretrim]
100
+ # TODO
101
+ # need to be able to trim from left, right of pairs
102
+ # thinking about specifying a "trimming language"
103
+ #
104
+ # Something like:
105
+ #
106
+ # --trim="5L0 0L3"
107
+ # --trim="0L4 2L6"
108
+ #
109
+ # also thinking about breaking all of this trimming stuff
110
+ # out into its own package. (to be more unixy and stuff ;)
111
+ #
112
+ @min_length = args[:min_length] || 70
113
+ @min = args[:min] || 20
114
+ @offset = args[:cutoff] || 64 # XXX should both be called 'cutoff'
115
+ @left_trim = args[:left_trim] || 0 # trim adapter sequence
116
+ @skip_ambig = args[:skip_ambiguous] || false
117
+ @trimmer = args[:trimmer] || ProbabilityTrimmer.new(:min => @min,
118
+ :offset => @offset,
119
+ :seq_tech =>
120
+ :illumina)
121
+ end
122
+
123
+ def each(&block)
124
+
125
+ skipped_because_singleton = 0
126
+ skipped_because_length = 0
127
+ skipped_because_ambig = 0
128
+
129
+ @paired_iterator.each_with_index do |a, i|
130
+ seqa = @trimmer.trim_seq(a[0])[@left_trim..-1] rescue nil # trim adapter sequence
131
+ seqb = @trimmer.trim_seq a[1]
132
+
133
+ # make sure sequences are good
134
+ # (both pairs survived and both are at least min_length long)
135
+ # optionally skip reads that contain ambiguous nucleotides (N)
136
+ if [seqa, seqb].include? nil
137
+ skipped_because_singleton += 1
138
+ elsif !(seqb.length >= @min_length && seqa.length >= @min_length)
139
+ skipped_because_length += 1
140
+ elsif @skip_ambig and (seqb =~ /N/ or seqa =~ /N/)
141
+ skipped_because_ambig
142
+ else # reads are good
143
+ #
144
+ # TODO
145
+ # this is experiment specific. I save memory down the road
146
+ # by having both of the reads in the forward orientation
147
+ # but depending on the sequencing technology/pipeline
148
+ # this may change.
149
+ #
150
+ # I'm planning on removing the trimming steps from lederhosen
151
+ # for their own gem. With that, this will go too.
152
+ #
153
+ seqb = reverse_complement(seqb)
154
+
155
+ # Create and yield new fasta objects
156
+ # Perhaps this is slow?
157
+ a = Fasta.new :name => "#{i}:0", :sequence => seqa
158
+ b = Fasta.new :name => "#{i}:1", :sequence => seqb
159
+ block.yield a
160
+ block.yield b
161
+ end
162
+ end
163
+ end
164
+
165
+ # reverse complement a DNA sequence
166
+ # assumes only GATCN nucleotides
167
+ def reverse_complement(s)
168
+ s.reverse.tr('GATCNgatcn','CTAGNctagn')
169
+ end
72
170
  end
73
171
 
74
172
  #
75
173
  # Yields trimmed fasta records given an input
76
174
  # interleaved, paired-end fastq file
175
+ #
77
176
  class InterleavedTrimmer < PairedTrimmer
78
177
 
79
178
  def initialize(interleaved_file, args = {})
@@ -88,15 +187,16 @@ class InterleavedTrimmer < PairedTrimmer
88
187
  end
89
188
 
90
189
  reads = Dna.new handle
91
- iterator = reads.each_slice(2)
92
-
93
- super(iterator, args)
190
+ @paired_iterator = reads.each_slice(2)
94
191
 
192
+ super(args)
95
193
  end
96
194
  end
97
195
 
196
+ #
98
197
  # Yield trimmed fasta records given an two separate
99
198
  # paired QSEQ files
199
+ #
100
200
  class QSEQTrimmer < PairedTrimmer
101
201
  def initialize(left_file, right_file, args = {})
102
202
  # create an iterator that yields paired records
@@ -112,9 +212,9 @@ class QSEQTrimmer < PairedTrimmer
112
212
  left_file_reads = Dna.new left_handle
113
213
  right_reads = Dna.new right_handle
114
214
 
115
- iterator = left_file_reads.zip(right_reads)
215
+ @paired_iterator = left_file_reads.zip(right_reads)
116
216
 
117
- super(iterator, args)
217
+ super(args)
118
218
 
119
219
  left_handle.close
120
220
  right_handle.close
@@ -1,9 +1,9 @@
1
1
  module Lederhosen
2
2
  module Version
3
3
  MAJOR = 1
4
- MINOR = 6
5
- CODENAME = 'Sauerkraut' # changes for minor versions
6
- PATCH = 2
4
+ MINOR = 7
5
+ CODENAME = 'Franziskaner' # changes for minor versions
6
+ PATCH = 0
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH].join('.')
9
9
  end
data/readme.md CHANGED
@@ -2,11 +2,18 @@
2
2
 
3
3
  # Lederhosen
4
4
 
5
- OTU clustering for rRNA amplicons. Lederhosen is intended to be simple, robust and easy to use.
5
+ Lederhosen is a set of tools for OTU clustering rRNA amplicons using Robert Edgar's USEARCH.
6
6
 
7
- ### Why not QIIME?
7
+ It handles quality control of raw sequence data, running USEARCH, and creating and filtering tables.
8
8
 
9
- QIIME is great but imagine for a moment, if you will, a world where there was only one web browser.
9
+ Lederhosen is not a pipeline but rather a set of tools broken up into tasks. Tasks are invoked by running `lederhosen TASK ...`.
10
+
11
+ Lederhosen is designed with the following "pipeline" in mind:
12
+
13
+ 1. Quality control of sequence data.
14
+ 2. Clustering sequences to centroid or reference sequences (read: database)
15
+ 3. Generating tables from USEARCH output.
16
+ 4. Filtering tables to remove small or insignificant OTUs.
10
17
 
11
18
  ### About
12
19
 
@@ -20,13 +27,18 @@ using paired and non-paired end short reads such as those produced by Illumina (
20
27
  ### Features
21
28
 
22
29
  - Sequence trimming (paired-end Illumina).
23
- - Parallel, referenced-based clustering to TaxCollector using USEARCH
30
+ - Parallel, referenced-based clustering to TaxCollector using USEARCH.
31
+ - Queue-agnostic support for running jobs on clusters.
32
+ - Support for RDP, TaxCollector or GreenGenes databases.
24
33
  - Generation and filtering of OTU abundancy matrices.
25
34
 
26
35
  ### Installation
27
36
 
28
37
  0. Obtain & Install [USEARCH](http://www.drive5.com/) (32bit is fine for non-commercial use)
29
- 2. Get a copy of [TaxCollector](http://github.com/audy/taxcollector) or [GreenGenes](http://greengenes.lbl.gov) 16S database
38
+ 2. Get a database:
39
+ - [TaxCollector](http://github.com/audy/taxcollector)
40
+ - [GreenGenes](http://greengenes.lbl.gov) 16S database
41
+ - File an [issue report](https://github.com/audy/lederhosen/issues) or pull request ;) to request support for a different database.
30
42
  3. Install Lederhosen by typing:
31
43
 
32
44
  `sudo gem install lederhosen`
@@ -48,7 +60,9 @@ You can also trim interleaved, paired-end FASTQ files:
48
60
 
49
61
  lederhosen trim --reads_dir=reads/*.fastq --out_dir=trimmed/ read-type='fastq'
50
62
 
51
- (WARNING: by default, Lederhosen trims off the first 11 nucleotides. This was to remain backwards-compatibility with an experiment-specific version. To disable use `--pretrim 0`)
63
+ Lederhosen will also trim off adapter sequences from the 5' end of the "left" read with the `--left-trim` option.
64
+
65
+ lederhosen trim --reads_dir=reads/*.fastq --out_dir=trimed/ --read-type='fastq' --left-trim=11
52
66
 
53
67
  ### Create Database
54
68
 
@@ -94,8 +108,28 @@ This will create the files:
94
108
  You can get the representative sequences for each cluster using the `get_reps` tasks. This will extract the representative sequence from
95
109
  the __database__ you ran usearch with. Make sure you use the same database that you used when running usearch.
96
110
 
97
- lederhosen get_reps --input=clusters.uc --database=taxcollector.fa --output=representatives.fasta
111
+ ```bash
112
+ lederhosen get_reps \
113
+ --input=clusters.uc \
114
+ --database=taxcollector.fa \
115
+ --output=representatives.fasta
116
+ ```
98
117
 
99
118
  You can get the representatives from more than one cluster file using a glob:
100
119
 
101
- lederhosen get_reps --input=*.uc --database=taxcollector.fa --output=representatives.fasta
120
+ ```bash
121
+ lederhosen get_reps \
122
+ --input=*.uc \
123
+ --database=taxcollector.fa \
124
+ --output=representatives.fasta
125
+ ```
126
+
127
+ ## Acknowledgements
128
+
129
+ - Lexi, Vinnie and Kevin for beta-testing and putting up with bugs
130
+ - The QIIME project for inspiration
131
+ - Sinbad Richardson for the Lederhosen Guy artwork
132
+
133
+ ## Please Cite
134
+
135
+ Please cite this GitHub repo (https://github.com/audy/lederhosen) with the version you used (type `lederhosen version`) unless I publish a paper. Then cite that.
@@ -0,0 +1,100 @@
1
+ 99
2
+ 91
3
+ 100
4
+ 85
5
+ 100
6
+ 91
7
+ 100
8
+ 81
9
+ 100
10
+ 81
11
+ 100
12
+ 91
13
+ 100
14
+ 91
15
+ 100
16
+ 91
17
+ 100
18
+ 91
19
+ 100
20
+ 91
21
+ 100
22
+ 91
23
+ 100
24
+ 91
25
+ 92
26
+ 91
27
+ 100
28
+ 91
29
+ 99
30
+ 91
31
+ 100
32
+ 91
33
+ 100
34
+ 81
35
+ 100
36
+ 81
37
+ 100
38
+ 91
39
+ 100
40
+ 91
41
+ 100
42
+ 91
43
+ 99
44
+ 91
45
+ 100
46
+ 91
47
+ 100
48
+ 91
49
+ 100
50
+ 81
51
+ 100
52
+ 91
53
+ 98
54
+ 91
55
+ 40
56
+ 91
57
+ 96
58
+ 91
59
+ 35
60
+ 81
61
+ 100
62
+ 91
63
+ 100
64
+ 91
65
+ 100
66
+ 91
67
+ 100
68
+ 91
69
+ 100
70
+ 91
71
+ 100
72
+ 91
73
+ 100
74
+ 91
75
+ 100
76
+ 91
77
+ 49
78
+ 91
79
+ 100
80
+ 91
81
+ 100
82
+ 91
83
+ 100
84
+ 91
85
+ 100
86
+ 91
87
+ 89
88
+ 81
89
+ 100
90
+ 91
91
+ 100
92
+ 91
93
+ 100
94
+ 91
95
+ 100
96
+ 91
97
+ 100
98
+ 91
99
+ 100
100
+ 91
data/spec/trimmer_spec.rb CHANGED
@@ -2,13 +2,49 @@ require 'spec_helper'
2
2
 
3
3
  describe Lederhosen::Trimmer do
4
4
 
5
- describe Lederhosen::Trimmer::PairedTrimmer do
5
+ describe Lederhosen::Trimmer::PairedTrimmer
6
+
7
+ describe Lederhosen::Trimmer::ProbabilityTrimmer do
8
+ let :sequence_trimmer do
9
+ # default cutoff should be 0.005
10
+ Lederhosen::Trimmer::ProbabilityTrimmer.new :seq_tech => :illumina
11
+ end
12
+
13
+ it 'can be created' do
14
+ sequence_trimmer.should_not be_nil
15
+ end
16
+
17
+ it 'trims records as expected'
18
+
19
+ end
20
+
21
+ describe Lederhosen::Trimmer::HuangTrimmer do
22
+
23
+ let :sequence_trimmer do
24
+ Lederhosen::Trimmer::HuangTrimmer.new(:offset => 64, :min => 20)
25
+ end
26
+
27
+ it 'trims records as expected' do
28
+
29
+ trimmed_sizes = File.readlines('spec/data/trimmed_sizes.txt').map &:to_i
30
+
31
+ File.open('spec/data/example.fastq') do |handle|
32
+ records = Dna.new handle
33
+ records.each do |record|
34
+ trimmed_record = sequence_trimmer.trim_seq record
35
+ trimmed_record.size.should == trimmed_sizes.shift
36
+ end
37
+ end
38
+ end
6
39
 
7
40
  end
8
41
 
9
42
  describe Lederhosen::Trimmer::QSEQTrimmer do
10
43
 
11
- let(:qseq_trimmer) { Lederhosen::Trimmer::QSEQTrimmer.new 'spec/data/ILT_L_9_B_001_1.txt.gz', 'spec/data/ILT_L_9_B_001_3.txt.gz' }
44
+ let :qseq_trimmer do
45
+ Lederhosen::Trimmer::QSEQTrimmer.new 'spec/data/ILT_L_9_B_001_1.txt.gz',
46
+ 'spec/data/ILT_L_9_B_001_3.txt.gz'
47
+ end
12
48
 
13
49
  it 'can be initialized' do
14
50
  qseq_trimmer.should_not be_nil
@@ -27,7 +63,9 @@ describe Lederhosen::Trimmer do
27
63
 
28
64
  describe Lederhosen::Trimmer::InterleavedTrimmer do
29
65
 
30
- let(:interleaved_trimmer) { Lederhosen::Trimmer::InterleavedTrimmer.new 'spec/data/example.fastq' }
66
+ let :interleaved_trimmer do
67
+ Lederhosen::Trimmer::InterleavedTrimmer.new 'spec/data/example.fastq'
68
+ end
31
69
 
32
70
  it 'can be initialized' do
33
71
  interleaved_trimmer.should_not be_nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lederhosen
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.2
4
+ version: 1.7.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,24 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-13 00:00:00.000000000 Z
12
+ date: 2012-12-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dna
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - '='
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.1.2
21
+ version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - '='
27
+ - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.1.2
29
+ version: '0'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: progressbar
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -116,7 +116,6 @@ extra_rdoc_files:
116
116
  - LICENSE.txt
117
117
  files:
118
118
  - .rspec
119
- - .rvmrc
120
119
  - Gemfile
121
120
  - LICENSE.txt
122
121
  - Rakefile
@@ -144,6 +143,7 @@ files:
144
143
  - spec/data/ILT_L_9_B_002_3.txt.gz
145
144
  - spec/data/example.fastq
146
145
  - spec/data/test.uc
146
+ - spec/data/trimmed_sizes.txt
147
147
  - spec/no_tasks_spec.rb
148
148
  - spec/spec_helper.rb
149
149
  - spec/trimmer_spec.rb
@@ -162,7 +162,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
162
162
  version: '0'
163
163
  segments:
164
164
  - 0
165
- hash: -3699960078851600472
165
+ hash: -1116066410733680786
166
166
  required_rubygems_version: !ruby/object:Gem::Requirement
167
167
  none: false
168
168
  requirements:
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use 1.8.7@lederhosen --create