lederhosen 1.6.2 → 1.7.0

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