dirseq 0.1.0 → 0.4.1

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.
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: []