viral_seq 1.0.4 → 1.0.9

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.
@@ -7,7 +7,7 @@ module ViralSeq
7
7
  # @example join the paired-end sequences with an overlap of 100 bp
8
8
  # my_seqhashpair.join1(100)
9
9
  # @example join the paired-end sequences with unknown overlap, each pair of sequences has its own overlap size
10
- # my_seqhashpair.join1(:indiv)
10
+ # my_seqhashpair.join2(model: :indiv)
11
11
 
12
12
  class SeqHashPair
13
13
 
@@ -104,17 +104,21 @@ module ViralSeq
104
104
  raise ArgumentError.new(":overlap has to be Integer, input #{overlap} invalid.") unless overlap.is_a? Integer
105
105
  raise ArgumentError.new(":diff has to be float or integer, input #{diff} invalid.") unless (diff.is_a? Integer or diff.is_a? Float)
106
106
  joined_seq = {}
107
- seq_pair_hash.each do |seq_name, seq_pair|
107
+ seq_pair_hash.uniq_hash.each do |seq_pair, seq_names|
108
108
  r1_seq = seq_pair[0]
109
109
  r2_seq = seq_pair[1]
110
110
  if overlap.zero?
111
- joined_seq[seq_name] = r1_seq + r2_seq
111
+ joined_sequence = r1_seq + r2_seq
112
112
  elsif r1_seq[-overlap..-1].compare_with(r2_seq[0,overlap]) <= (overlap * diff)
113
- joined_seq[seq_name] = r1_seq + r2_seq[overlap..-1]
113
+ joined_sequence= r1_seq + r2_seq[overlap..-1]
114
114
  else
115
115
  next
116
116
  end
117
+ seq_names.each do |seq_name|
118
+ joined_seq[seq_name] = joined_sequence
119
+ end
117
120
  end
121
+
118
122
  joined_seq_hash = ViralSeq::SeqHash.new
119
123
  joined_seq_hash.dna_hash = joined_seq
120
124
  joined_seq_hash.title = self.title + "_joined"
@@ -139,7 +143,7 @@ module ViralSeq
139
143
  # my_seqhashpair = ViralSeq::SeqHashPair.new(paired_seq2)
140
144
  # my_seqhashpair.join2.dna_hash
141
145
  # => {">pair4"=>"AAAGGGGGGGGGGTT", ">pair5"=>"AAAAAAGGGGTTTTT", ">pair6"=>"AAACAAGGGGTTTTT"}
142
- # my_seqhashpair.join2(model :indiv).dna_hash
146
+ # my_seqhashpair.join2(model: :indiv).dna_hash
143
147
  # => {">pair4"=>"AAAGGGGGGGTT", ">pair5"=>"AAAAAAGGGGTTTTT", ">pair6"=>"AAACAAGGGGTTTTT"}
144
148
 
145
149
  def join2(model: :con, diff: 0.0)
@@ -207,7 +211,7 @@ module ViralSeq
207
211
  # {minimal overlap set to 4. }
208
212
  def overlap_matrix(sequence1, sequence2)
209
213
  min_overlap = 4
210
- max_overlap = [sequence1.size, sequence2.size].max
214
+ max_overlap = [sequence1.size, sequence2.size].min
211
215
  matrix_hash = {}
212
216
  (min_overlap..max_overlap).each do |overlap|
213
217
  matrix_hash[overlap] = sequence1[-overlap..-1].compare_with(sequence2[0, overlap])
@@ -2,5 +2,6 @@
2
2
  # version info and histroy
3
3
 
4
4
  module ViralSeq
5
- VERSION = "1.0.4"
5
+ VERSION = "1.0.9"
6
+ TCS_VERSION = "2.0.1"
6
7
  end
@@ -26,10 +26,14 @@ Gem::Specification.new do |spec|
26
26
  spec.post_install_message = "Thanks for installing!"
27
27
 
28
28
  spec.add_development_dependency "bundler", "~> 2.0"
29
- spec.add_development_dependency "rake", "~> 10.0"
29
+ spec.add_development_dependency "rake", "~> 13.0"
30
30
  spec.add_development_dependency "rspec", "~> 3.0"
31
31
 
32
32
  # muscle_bio gem required
33
33
  spec.add_runtime_dependency "muscle_bio", "~> 0.4"
34
+
35
+ # colorize gem required
36
+ spec.add_runtime_dependency "colorize", "~> 0.1"
37
+
34
38
  spec.requirements << 'R required for some functions'
35
39
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: viral_seq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shuntai Zhou
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-07-10 00:00:00.000000000 Z
12
+ date: 2020-07-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -31,14 +31,14 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '10.0'
34
+ version: '13.0'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '10.0'
41
+ version: '13.0'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rspec
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -67,6 +67,20 @@ dependencies:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0.4'
70
+ - !ruby/object:Gem::Dependency
71
+ name: colorize
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '0.1'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '0.1'
70
84
  description: |-
71
85
  A Ruby Gem with bioinformatics tools for processing viral NGS data.
72
86
  Specifically for Primer-ID sequencing and HIV drug resistance analysis.
@@ -75,6 +89,8 @@ email:
75
89
  - clarkmu@gmail.com
76
90
  executables:
77
91
  - locator
92
+ - tcs
93
+ - tcs_json_generator
78
94
  extensions: []
79
95
  extra_rdoc_files: []
80
96
  files:
@@ -88,6 +104,8 @@ files:
88
104
  - README.md
89
105
  - Rakefile
90
106
  - bin/locator
107
+ - bin/tcs
108
+ - bin/tcs_json_generator
91
109
  - lib/viral_seq.rb
92
110
  - lib/viral_seq/constant.rb
93
111
  - lib/viral_seq/enumerable.rb
@@ -124,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
142
  version: '0'
125
143
  requirements:
126
144
  - R required for some functions
127
- rubygems_version: 3.0.3
145
+ rubygems_version: 3.1.2
128
146
  signing_key:
129
147
  specification_version: 4
130
148
  summary: A Ruby Gem containing bioinformatics tools for processing viral NGS data.