dirseq 0.1.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7b2362c43bff2a2cd43f0dc727bf8d713e4ab3c4
4
- data.tar.gz: 7a56c16b7bfe38543c8d217d9307dc4f18ea5d21
2
+ SHA256:
3
+ metadata.gz: a64587e48a659047ad59f42609c2af922baaf611949eea5c2e9ac274c1eadc7e
4
+ data.tar.gz: 56326ebb3b95dce59a5b833f82b5a7601138adddde9ea391d33428f744f4ab77
5
5
  SHA512:
6
- metadata.gz: 526abeb2d9b53cc0b0d26b3688d9b01ed44dea5d9b010d575b64922c8b3ae3d7097134db5fe23cff29855aa05f46449563ce7fcc575601a30e901782d90aaf7d
7
- data.tar.gz: 8702f8ba681c9e161f97f76cfd763593ad266a77acf813a194ecbc7390ef08d46d6c0a68d6b60bebe46f2b9d86bc6bb0a1dbf51c0f1ae3861d33b27e775b1e59
6
+ metadata.gz: ae30379a9368a92f1941614f201cbe2507ae6a34462dd03e2b9e811355e2ecf4f14db152251b8f08821adf19e6bb40f8b9d445cb7040926dd9d9a5a113ae8a5d
7
+ data.tar.gz: d45ed71712aa00509f10091ed45e43ebd28aad85f67fe23ffca2e385fa1afa9fdf0f9a350fd3ad15a109f535b4f7b418055403b601049fdc8ebf528d9dd34df1
data/Gemfile CHANGED
@@ -9,11 +9,10 @@ gem "bio", "~>1.4", ">=1.4.2"
9
9
  # Add dependencies to develop your gem here.
10
10
  # Include everything needed to run rake, tests, features, etc.
11
11
  group :development do
12
- gem "shoulda", "~> 3.5"
13
- gem "rdoc", "~> 3.12"
14
- gem "simplecov", "~> 0.8"
15
- gem "jeweler", "~> 2.0"
16
- gem "bundler", "~> 1.6"
17
- gem "rspec", "~> 2.99"
12
+ #gem "shoulda", "~> 3.5"
13
+ #gem "simplecov", "~> 0.8"
14
+ gem "jeweler", "~> 2.3"
15
+ gem "bundler", "~> 2.1"
16
+ gem "rspec", "~> 3.0"
18
17
  gem 'pry', '~>0.10'
19
18
  end
data/README.md CHANGED
@@ -13,8 +13,8 @@ Won't work just yet:
13
13
  gem install dirseq
14
14
  ```
15
15
  Requires:
16
- * samtools (tested with 0.1.19)
17
- * bedtools (tested with 2.20.1)
16
+ * samtools (tested with 0.1.19 and 1.0+)
17
+ * bedtools (tested with 2.24.0) - old versions won't work.
18
18
  * Ruby (tested with 2.1.1)
19
19
 
20
20
  ## Usage
@@ -32,8 +32,13 @@ $ dirseq -h
32
32
 
33
33
  Optional parameters:
34
34
 
35
+ --forward-read-only consider only forward reads (i.e. read1) and ignore reverse reads. [default false]
35
36
  --ignore-directions ignore directionality, give overall coverage [default: false i.e. differentiate between directions]
36
-
37
+ --measure-type TYPE what to count for each gene [options: count, coverage][default: coverage]
38
+ --accepted-feature-types TYPE
39
+ Print only features of these type(s) [default CDS]
40
+ --comment-fields Print elements from the comments in the GFF file [default ID]
41
+
37
42
  Verbosity:
38
43
 
39
44
  -q, --quiet Run quietly, set logging to ERROR level [default INFO]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.4.1
data/bin/dirseq CHANGED
@@ -9,11 +9,23 @@ require 'tempfile'
9
9
 
10
10
  SCRIPT_NAME = File.basename(__FILE__); LOG_NAME = SCRIPT_NAME.gsub('.rb','')
11
11
 
12
+ COVERAGE_COUNT_TYPE = 'coverage'
13
+ COUNT_COUNT_TYPE = 'count'
14
+ COUNT_TYPES = [
15
+ COUNT_COUNT_TYPE,
16
+ COVERAGE_COUNT_TYPE
17
+ ]
18
+
12
19
  # Parse command line options into the options hash
13
20
  options = {
14
21
  :ignore_directions => false,
15
22
  :logger => 'stderr',
16
23
  :log_level => 'info',
24
+ :count_type => COVERAGE_COUNT_TYPE,
25
+ :forward_read_only => false,
26
+ :accepted_feature_types => ['CDS'],
27
+ :comment_fields_to_print => ['ID'],
28
+ :sam_filter_flags => "-F0x100 -F0x800",
17
29
  }
18
30
  o = OptionParser.new do |opts|
19
31
  opts.banner = "
@@ -28,9 +40,27 @@ o = OptionParser.new do |opts|
28
40
  options[:gff] = arg
29
41
  end
30
42
  opts.separator "\nOptional parameters:\n\n"
43
+ opts.on("--forward-read-only", "consider only forward reads (i.e. read1) and ignore reverse reads. [default #{options[:forward_read_only]}]") do
44
+ options[:forward_ready_only] = true
45
+ end
31
46
  opts.on("--ignore-directions", "ignore directionality, give overall coverage [default: false i.e. differentiate between directions]") do |arg|
32
47
  options[:ignore_directions] = true
33
48
  end
49
+ opts.on("--measure-type TYPE", "what to count for each gene [options: #{COUNT_TYPES.join(', ')}][default: #{options[:count_type]}]") do |arg|
50
+ raise "Unexpected count type detected" if not COUNT_TYPES.include?(arg)
51
+ options[:count_type] = arg
52
+ end
53
+ opts.on("--accepted-feature-types TYPE", Array,
54
+ "Print only features of these type(s) [default #{options[:accepted_feature_types].join(',')}]") do |arg|
55
+ options[:accepted_feature_types] = Set.new(arg)
56
+ end
57
+ opts.on("--comment-fields", Array,
58
+ "Print elements from the comments in the GFF file [default #{options[:comment_fields_to_print].join(',')}]") do |arg|
59
+ options[:comment_fields_to_print] = arg
60
+ end
61
+ opts.on("--sam-filter-flags", "Apply these samtools filters [default: #{options[:sam_filter_flags]}]") do |arg|
62
+ options[:sam_filter_flags] = arg
63
+ end
34
64
 
35
65
  # logger options
36
66
  opts.separator "\nVerbosity:\n\n"
@@ -47,6 +77,11 @@ Bio::Log::CLI.logger(options[:logger]); Bio::Log::CLI.trace(options[:log_level])
47
77
 
48
78
  gff_file = options[:gff]
49
79
  bam_file = options[:bam]
80
+ accepted_feature_types = options[:accepted_feature_types]
81
+
82
+ if options[:count_type] != COVERAGE_COUNT_TYPE and options[:ignore_directions]
83
+ raise "ignore_directions + count_type != coverage is currently unsupported"
84
+ end
50
85
 
51
86
 
52
87
  calculate_cov = lambda do |covs, num_covs|
@@ -76,14 +111,26 @@ get_covs = lambda do |cov_lines|
76
111
  #96 #coverage
77
112
  #0.0208333
78
113
  feat = splits[0..8]
114
+ feature_type = feat[2]
115
+ if not accepted_feature_types.include?(feature_type)
116
+ log.debug "Skipping feature as it is of type #{feature_type}"
117
+ next
118
+ end
79
119
  if feat != previous_feature
80
120
  feature_to_covs[previous_feature] = calculate_cov.call(covs, num_covs) unless previous_feature.nil?
81
121
  covs = []
82
122
  num_covs = 0
83
123
  end
84
- num = splits[10].to_i
85
- covs.push num*splits[9].to_i
86
- num_covs += num
124
+ if splits.length == 13 # -hist
125
+ num = splits[10].to_i
126
+ covs.push num*splits[9].to_i
127
+ num_covs += num
128
+ elsif splits.length == 10 # -count
129
+ covs.push splits[9].to_i
130
+ num_covs += 1
131
+ else
132
+ raise "Unexpected bedtools output line: #{line}"
133
+ end
87
134
  previous_feature = feat
88
135
  end
89
136
  feature_to_covs[previous_feature] = calculate_cov.call(covs, num_covs)
@@ -93,13 +140,57 @@ end
93
140
 
94
141
  # Remove the ##FASTA and afterwards from the GFF file as this makes bedtools <2.25 fail
95
142
  # https://github.com/arq5x/bedtools2/issues/235#issuecomment-103776618
96
- no_fasta_gff = Tempfile.new('dirseq')
143
+ no_fasta_gff = Tempfile.new(['dirseq','.gff3'])
97
144
  Bio::Commandeer.run "sed '/^##FASTA$/,$d' #{gff_file.inspect} > #{no_fasta_gff.path}", :log => log
98
145
  gff_file = no_fasta_gff.path
99
146
 
147
+
148
+
149
+
150
+
151
+ # Find featureless contigs. Need to so that bedtools coverage -sorted does not complain
152
+ if not File.exists?("#{bam_file}.bai")
153
+ raise "Input bam file must be indexed, but the index file does not exist"
154
+ end
155
+
156
+ chromosome_file = Tempfile.new('bam_contigs')
157
+ log.info "Listing contigs in sorted order .."
158
+ cmd = "samtools idxstats #{bam_file.inspect} |cut -f1,2 |grep -v '^*' >#{chromosome_file.path.inspect}"
159
+ Bio::Commandeer.run(cmd, :log => log)
160
+
161
+ log.info "Finding featureless contigs"
162
+ cmd = "grep -v '^#' #{gff_file.inspect} |cut -f1 |sort |uniq |grep -vFw -f /dev/stdin #{chromosome_file.path.inspect} |cut -f1"
163
+ featureless_contigs = Bio::Commandeer.run(cmd, :log => log).lines.map(&:chomp).reject{ |ref| ref=='*' }
164
+ log.info "Found #{featureless_contigs.length} featureless contigs"
165
+
166
+ # Sort the GFF
167
+ dummy_features = featureless_contigs.collect do |ref|
168
+ [ref,
169
+ 'dirseq',
170
+ 'misc_RNA',
171
+ '1',
172
+ '2',
173
+ '.',
174
+ '+',
175
+ '0',
176
+ "ID=#{ref}_dummy_feature"].join("\t")
177
+ end
178
+ sorted_gff_file_f = Tempfile.new(['sorted_gff','.gff3'])
179
+ sorted_gff_file = sorted_gff_file_f.path
180
+ Tempfile.open(["extra_features",'.gff']) do |ef|
181
+ ef.puts dummy_features.join("\n")
182
+ ef.close
183
+
184
+ cmd = "cat #{ef.path} #{gff_file.inspect} |bedtools sort -i /dev/stdin -faidx #{chromosome_file.path.inspect} >#{sorted_gff_file.inspect}"
185
+ log.info "Running bedtools sort"
186
+ Bio::Commandeer.run(cmd, :log => log)
187
+ end
188
+
189
+
190
+
100
191
  covs_fwd = nil
101
192
  if options[:ignore_directions]
102
- cmd1 = "bedtools coverage -b #{bam_file.inspect} -a #{gff_file.inspect} -hist"
193
+ cmd1 = "samtools view -u #{options[:sam_filter_flags]} #{bam_file.inspect} |bedtools coverage -b /dev/stdin -a #{gff_file.inspect} -hist"
103
194
  cov_lines_fwd = Bio::Commandeer.run cmd1, :log => log
104
195
  log.info "Parsing coverage profiles"
105
196
  covs_fwd = get_covs.call(cov_lines_fwd)
@@ -108,10 +199,14 @@ else
108
199
  # fwd read 1
109
200
  read1_flag = '-F128' #account for read1 in pair, as well as single reads mapping
110
201
  read2_flag = '-f128'
111
- cmdf1 = "samtools view -u #{read1_flag} #{bam_file.inspect} |bedtools coverage -b /dev/stdin -a #{gff_file.inspect} -hist -s"
112
- cmdf2 = "samtools view -u #{read2_flag} #{bam_file.inspect} |bedtools coverage -b /dev/stdin -a #{gff_file.inspect} -hist -s"
113
- cmdr1 = "samtools view -u #{read1_flag} #{bam_file.inspect} |bedtools coverage -b /dev/stdin -a #{gff_file.inspect} -hist -S"
114
- cmdr2 = "samtools view -u #{read2_flag} #{bam_file.inspect} |bedtools coverage -b /dev/stdin -a #{gff_file.inspect} -hist -S"
202
+ bedtools_type_flag = '-hist'
203
+ if options[:count_type] == COUNT_COUNT_TYPE
204
+ bedtools_type_flag = '-counts'
205
+ end
206
+ cmdf1 = "samtools view #{options[:sam_filter_flags]} -u #{read1_flag} #{bam_file.inspect} |bedtools coverage -sorted -g #{chromosome_file.path.inspect} -b /dev/stdin -a #{sorted_gff_file.inspect} -s #{bedtools_type_flag}"
207
+ cmdf2 = "samtools view #{options[:sam_filter_flags]} -u #{read2_flag} #{bam_file.inspect} |bedtools coverage -sorted -g #{chromosome_file.path.inspect} -b /dev/stdin -a #{sorted_gff_file.inspect} -s #{bedtools_type_flag}"
208
+ cmdr1 = "samtools view #{options[:sam_filter_flags]} -u #{read1_flag} #{bam_file.inspect} |bedtools coverage -sorted -g #{chromosome_file.path.inspect} -b /dev/stdin -a #{sorted_gff_file.inspect} -S #{bedtools_type_flag}"
209
+ cmdr2 = "samtools view #{options[:sam_filter_flags]} -u #{read2_flag} #{bam_file.inspect} |bedtools coverage -sorted -g #{chromosome_file.path.inspect} -b /dev/stdin -a #{sorted_gff_file.inspect} -S #{bedtools_type_flag}"
115
210
 
116
211
  command_to_parsed = lambda do |cmds, name|
117
212
  covs_lines_initial = cmds.collect do |cmd|
@@ -122,15 +217,23 @@ else
122
217
  get_covs.call(lines)
123
218
  end
124
219
  covs = covs_initial[0]
125
- covs_initial[1].each do |cov_key, cov|
126
- covs[cov_key] += cov
220
+ if covs_initial.length > 1
221
+ covs_initial[1].each do |cov_key, cov|
222
+ covs[cov_key] += cov
223
+ end
127
224
  end
128
225
  covs #'return' from lambda
129
226
  end
130
227
 
131
228
  # Agreeing reads (those whose template are fwd along the reference sequence) are either first and fwd, or second and rev
132
- covs_fwd = command_to_parsed.call([cmdf1,cmdr2], 'reads with same direction as their reference')
133
- covs_rev = command_to_parsed.call([cmdf2,cmdr1], 'reads with opposing direction as their reference')
229
+ commands_fwd = [cmdf1,cmdr2]
230
+ commands_rev = [cmdf2,cmdr1]
231
+ if options[:forward_ready_only]
232
+ commands_fwd = [cmdf1]
233
+ commands_rev = [cmdr1]
234
+ end
235
+ covs_fwd = command_to_parsed.call(commands_fwd, 'reads with same direction as their reference')
236
+ covs_rev = command_to_parsed.call(commands_rev, 'reads with opposing direction as their reference')
134
237
  end
135
238
 
136
239
  headers = [
@@ -142,11 +245,19 @@ headers = [
142
245
  ]
143
246
  if options[:ignore_directions]
144
247
  headers.push 'average_coverage'
145
- else
248
+ elsif options[:count_type] == COVERAGE_COUNT_TYPE
146
249
  headers.push 'forward_average_coverage'
147
250
  headers.push 'reverse_average_coverage'
251
+ elsif options[:count_type] == COUNT_COUNT_TYPE
252
+ headers.push 'forward_read_count'
253
+ headers.push 'reverse_read_count'
254
+ else
255
+ raise
148
256
  end
149
257
  headers.push 'annotation'
258
+ options[:comment_fields_to_print].each do |field|
259
+ headers.push field
260
+ end
150
261
  puts headers.join("\t")
151
262
 
152
263
  covs_fwd.each do |feature, cov_fwd|
@@ -169,5 +280,13 @@ covs_fwd.each do |feature, cov_fwd|
169
280
  ]
170
281
  to_print.push cov_rev unless options[:ignore_directions]
171
282
  to_print.push product
283
+ options[:comment_fields_to_print].each do |field|
284
+ answer1 = record.attributes.select{|a| a[0] == field}
285
+ if answer1.empty?
286
+ to_print.push ''
287
+ else
288
+ to_print.push answer1[0][1]
289
+ end
290
+ end
172
291
  puts to_print.join("\t")
173
292
  end
Binary file
@@ -6,9 +6,9 @@ describe 'script' do
6
6
 
7
7
  it "should regular mode" do
8
8
  answer = %w(
9
- contig type start end strand forward_average_coverage reverse_average_coverage annotation
9
+ contig type start end strand forward_average_coverage reverse_average_coverage annotation ID
10
10
  ).join("\t")+"\n"+%w(
11
- contig_100 CDS 2 127 + 0.0 1.1428571428571428 unannotated
11
+ contig_100 CDS 2 127 + 0.0 1.1428571428571428 unannotated 40_1
12
12
  ).join("\t")+"\n"
13
13
 
14
14
  found = Bio::Commandeer.run "#{path_to_script} --bam #{data_dir}/eg.bam --gff #{data_dir}/eg.gff -q"
@@ -20,9 +20,9 @@ describe 'script' do
20
20
  found = Bio::Commandeer.run "#{path_to_script} --bam #{data_dir}/eg.bam --gff #{data_dir}/eg.gff -q --ignore-direction"
21
21
 
22
22
  answer = %w(
23
- contig type start end strand average_coverage annotation
23
+ contig type start end strand average_coverage annotation ID
24
24
  ).join("\t")+"\n"+%w(
25
- contig_100 CDS 2 127 + 1.1428571428571428 unannotated
25
+ contig_100 CDS 2 127 + 1.1428571428571428 unannotated 40_1
26
26
  ).join("\t")+"\n"
27
27
 
28
28
  found.should == answer
@@ -30,9 +30,9 @@ describe 'script' do
30
30
 
31
31
  it 'should not fail when the GFF has a FASTA section' do
32
32
  answer = %w(
33
- contig type start end strand forward_average_coverage reverse_average_coverage annotation
33
+ contig type start end strand forward_average_coverage reverse_average_coverage annotation ID
34
34
  ).join("\t")+"\n"+%w(
35
- contig_100 CDS 2 127 + 0.0 1.1428571428571428 unannotated
35
+ contig_100 CDS 2 127 + 0.0 1.1428571428571428 unannotated 40_1
36
36
  ).join("\t")+"\n"
37
37
 
38
38
  found = Bio::Commandeer.run "#{path_to_script} --bam #{data_dir}/eg.bam --gff #{data_dir}/eg_with_fasta.gff -q"
@@ -42,13 +42,37 @@ describe 'script' do
42
42
 
43
43
  it 'should print annotation out properly' do
44
44
  answer = %w(
45
- contig type start end strand forward_average_coverage reverse_average_coverage annotation
45
+ contig type start end strand forward_average_coverage reverse_average_coverage annotation ID
46
46
  ).join("\t")+"\n"+%w(
47
47
  contig_100 CDS 2 127 + 0.0 1.1428571428571428 putative
48
- ).join("\t")+" methyltransferase YcgJ\n"
48
+ ).join("\t")+" methyltransferase YcgJ PROKKA_00001\n"
49
49
 
50
50
  found = Bio::Commandeer.run "#{path_to_script} --bam #{data_dir}/eg.bam --gff #{data_dir}/realer.gff -q"
51
51
 
52
52
  found.should == answer
53
53
  end
54
+
55
+ it 'should print counts correctly' do
56
+ answer = %w(
57
+ contig type start end strand forward_read_count reverse_read_count annotation ID
58
+ ).join("\t")+"\n"+%w(
59
+ contig_100 CDS 2 127 + 0.0 2.0 putative
60
+ ).join("\t")+" methyltransferase YcgJ PROKKA_00001\n"
61
+
62
+ found = Bio::Commandeer.run "#{path_to_script} --bam #{data_dir}/eg.bam --gff #{data_dir}/realer.gff -q --measure-type count"
63
+
64
+ found.should == answer
65
+ end
66
+
67
+ it 'should count only the forward read when asked' do
68
+ answer = %w(
69
+ contig type start end strand forward_read_count reverse_read_count annotation ID
70
+ ).join("\t")+"\n"+%w(
71
+ contig_100 CDS 2 127 + 0.0 1.0 putative
72
+ ).join("\t")+" methyltransferase YcgJ PROKKA_00001\n"
73
+
74
+ found = Bio::Commandeer.run "#{path_to_script} --bam #{data_dir}/eg.bam --gff #{data_dir}/realer.gff -q --measure-type count --forward-read-only"
75
+
76
+ found.should == answer
77
+ end
54
78
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dirseq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben J. Woodcroft
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-08 00:00:00.000000000 Z
11
+ date: 2020-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bio-commandeer
@@ -42,106 +42,64 @@ dependencies:
42
42
  name: bio
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: 1.4.2
48
45
  - - "~>"
49
46
  - !ruby/object:Gem::Version
50
47
  version: '1.4'
51
- type: :runtime
52
- prerelease: false
53
- version_requirements: !ruby/object:Gem::Requirement
54
- requirements:
55
48
  - - ">="
56
49
  - !ruby/object:Gem::Version
57
50
  version: 1.4.2
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '1.4'
61
- - !ruby/object:Gem::Dependency
62
- name: shoulda
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '3.5'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '3.5'
75
- - !ruby/object:Gem::Dependency
76
- name: rdoc
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '3.12'
82
- type: :development
51
+ type: :runtime
83
52
  prerelease: false
84
53
  version_requirements: !ruby/object:Gem::Requirement
85
54
  requirements:
86
55
  - - "~>"
87
56
  - !ruby/object:Gem::Version
88
- version: '3.12'
89
- - !ruby/object:Gem::Dependency
90
- name: simplecov
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '0.8'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
57
+ version: '1.4'
58
+ - - ">="
101
59
  - !ruby/object:Gem::Version
102
- version: '0.8'
60
+ version: 1.4.2
103
61
  - !ruby/object:Gem::Dependency
104
62
  name: jeweler
105
63
  requirement: !ruby/object:Gem::Requirement
106
64
  requirements:
107
65
  - - "~>"
108
66
  - !ruby/object:Gem::Version
109
- version: '2.0'
67
+ version: '2.3'
110
68
  type: :development
111
69
  prerelease: false
112
70
  version_requirements: !ruby/object:Gem::Requirement
113
71
  requirements:
114
72
  - - "~>"
115
73
  - !ruby/object:Gem::Version
116
- version: '2.0'
74
+ version: '2.3'
117
75
  - !ruby/object:Gem::Dependency
118
76
  name: bundler
119
77
  requirement: !ruby/object:Gem::Requirement
120
78
  requirements:
121
79
  - - "~>"
122
80
  - !ruby/object:Gem::Version
123
- version: '1.6'
81
+ version: '2.1'
124
82
  type: :development
125
83
  prerelease: false
126
84
  version_requirements: !ruby/object:Gem::Requirement
127
85
  requirements:
128
86
  - - "~>"
129
87
  - !ruby/object:Gem::Version
130
- version: '1.6'
88
+ version: '2.1'
131
89
  - !ruby/object:Gem::Dependency
132
90
  name: rspec
133
91
  requirement: !ruby/object:Gem::Requirement
134
92
  requirements:
135
93
  - - "~>"
136
94
  - !ruby/object:Gem::Version
137
- version: '2.99'
95
+ version: '3.0'
138
96
  type: :development
139
97
  prerelease: false
140
98
  version_requirements: !ruby/object:Gem::Requirement
141
99
  requirements:
142
100
  - - "~>"
143
101
  - !ruby/object:Gem::Version
144
- version: '2.99'
102
+ version: '3.0'
145
103
  - !ruby/object:Gem::Dependency
146
104
  name: pry
147
105
  requirement: !ruby/object:Gem::Requirement
@@ -176,6 +134,7 @@ files:
176
134
  - lib/bio-rnaseq_transcription_directionality.rb
177
135
  - lib/bio-rnaseq_transcription_directionality/rnaseq_transcription_directionality.rb
178
136
  - spec/data/eg.bam
137
+ - spec/data/eg.bam.bai
179
138
  - spec/data/eg.gff
180
139
  - spec/data/eg_with_fasta.gff
181
140
  - spec/data/realer.gff
@@ -185,7 +144,7 @@ homepage: http://github.com/wwood/dirseq
185
144
  licenses:
186
145
  - MIT
187
146
  metadata: {}
188
- post_install_message:
147
+ post_install_message:
189
148
  rdoc_options: []
190
149
  require_paths:
191
150
  - lib
@@ -200,9 +159,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
159
  - !ruby/object:Gem::Version
201
160
  version: '0'
202
161
  requirements: []
203
- rubyforge_project:
204
- rubygems_version: 2.4.5.1
205
- signing_key:
162
+ rubygems_version: 3.1.2
163
+ signing_key:
206
164
  specification_version: 4
207
165
  summary: FPKG calculator for metatranscriptomics
208
166
  test_files: []