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.
- checksums.yaml +4 -4
- data/Gemfile.lock +6 -4
- data/README.md +95 -26
- data/bin/locator +40 -35
- data/bin/tcs +519 -0
- data/bin/tcs_json_generator +166 -0
- data/lib/viral_seq.rb +1 -1
- data/lib/viral_seq/hash.rb +1 -1
- data/lib/viral_seq/hivdr.rb +2 -0
- data/lib/viral_seq/muscle.rb +2 -2
- data/lib/viral_seq/seq_hash.rb +214 -36
- data/lib/viral_seq/seq_hash_pair.rb +10 -6
- data/lib/viral_seq/version.rb +2 -1
- data/viral_seq.gemspec +5 -1
- metadata +23 -5
@@ -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.
|
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 |
|
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
|
-
|
111
|
+
joined_sequence = r1_seq + r2_seq
|
112
112
|
elsif r1_seq[-overlap..-1].compare_with(r2_seq[0,overlap]) <= (overlap * diff)
|
113
|
-
|
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].
|
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])
|
data/lib/viral_seq/version.rb
CHANGED
data/viral_seq.gemspec
CHANGED
@@ -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", "~>
|
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
|
+
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:
|
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: '
|
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: '
|
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.
|
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.
|