viral_seq 1.1.1 → 1.1.2
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 +16 -3
- data/README.md +6 -0
- data/bin/tcs +17 -4
- data/lib/viral_seq.rb +3 -0
- data/lib/viral_seq/constant.rb +35 -5
- data/lib/viral_seq/hivdr.rb +1 -1
- data/lib/viral_seq/muscle.rb +3 -2
- data/lib/viral_seq/sdrm.rb +101 -35
- data/lib/viral_seq/sequence.rb +1 -84
- data/lib/viral_seq/tcs_dr.rb +1 -1
- data/lib/viral_seq/version.rb +2 -2
- data/viral_seq.gemspec +11 -0
- metadata +64 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '093a8d1d70e251b0748b7035c829eb512991437ffa78fd67387318412e54acf5'
|
4
|
+
data.tar.gz: 1b9d6f6b2cb2ffa8d9cc588b8df096e7ac3840c694bfb241fcf970b738899328
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3853dbfa3f6604d907ec3d77b8c86ec8d885fedcc854c40ca6822ec72e8b2cfe9413bc188aa722a14e4e4f6c9503eca1b36d7f8e0963a5a997c9f0ca8b54fc86
|
7
|
+
data.tar.gz: e5b056cddcf7b87cc30e52c878879cea82d865ea7fc867535767918c30c699d58d6f426518aad02be49916c49f38d9603b0ab27ca6f3625f7a5102ae86863023
|
data/Gemfile.lock
CHANGED
@@ -1,16 +1,27 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
viral_seq (1.
|
5
|
-
colorize (
|
6
|
-
|
4
|
+
viral_seq (1.1.1)
|
5
|
+
colorize (>= 0.1)
|
6
|
+
combine_pdf (>= 1.0.0)
|
7
|
+
muscle_bio (>= 0.4)
|
8
|
+
prawn (>= 2.3.0)
|
9
|
+
prawn-table (>= 0.2.0)
|
7
10
|
|
8
11
|
GEM
|
9
12
|
remote: https://rubygems.org/
|
10
13
|
specs:
|
11
14
|
colorize (0.8.1)
|
15
|
+
combine_pdf (1.0.21)
|
16
|
+
ruby-rc4 (>= 0.1.5)
|
12
17
|
diff-lcs (1.3)
|
13
18
|
muscle_bio (0.4.0)
|
19
|
+
pdf-core (0.9.0)
|
20
|
+
prawn (2.4.0)
|
21
|
+
pdf-core (~> 0.9.0)
|
22
|
+
ttfunk (~> 1.7)
|
23
|
+
prawn-table (0.2.2)
|
24
|
+
prawn (>= 1.3.0, < 3.0.0)
|
14
25
|
rake (13.0.1)
|
15
26
|
rspec (3.8.0)
|
16
27
|
rspec-core (~> 3.8.0)
|
@@ -25,6 +36,8 @@ GEM
|
|
25
36
|
diff-lcs (>= 1.2.0, < 2.0)
|
26
37
|
rspec-support (~> 3.8.0)
|
27
38
|
rspec-support (3.8.0)
|
39
|
+
ruby-rc4 (0.1.5)
|
40
|
+
ttfunk (1.7.0)
|
28
41
|
|
29
42
|
PLATFORMS
|
30
43
|
ruby
|
data/README.md
CHANGED
@@ -137,6 +137,12 @@ qc_seqhash.sdrm_hiv_pr(cut_off)
|
|
137
137
|
|
138
138
|
## Updates
|
139
139
|
|
140
|
+
### Version 1.1.2-04262021
|
141
|
+
|
142
|
+
1. Added function `ViralSeq::DRMs.sdrm_json` to export SDRM as json object.
|
143
|
+
2. Added a random string to the temp file names for `muscle_bio` to avoid issues when running scripts in parallel.
|
144
|
+
3. Added `--keep-original` flag to the `tcs` pipeline.
|
145
|
+
|
140
146
|
### Version 1.1.1-04012021
|
141
147
|
|
142
148
|
1. Added warning when paired_raw_sequence less than 0.1% of total_raw_sequence.
|
data/bin/tcs
CHANGED
@@ -59,6 +59,10 @@ OptionParser.new do |opts|
|
|
59
59
|
exit
|
60
60
|
end
|
61
61
|
|
62
|
+
opts.on("--keep-original", "keep raw sequence files") do
|
63
|
+
options[:keep] = true
|
64
|
+
end
|
65
|
+
|
62
66
|
opts.on("-v", "--version", "Version info") do
|
63
67
|
puts "tcs version: " + ViralSeq::TCS_VERSION.red.bold
|
64
68
|
puts "viral_seq version: " + ViralSeq::VERSION.red.bold
|
@@ -155,6 +159,7 @@ primers.each do |primer|
|
|
155
159
|
forward_primer = primer[:forward]
|
156
160
|
|
157
161
|
export_raw = primer[:export_raw]
|
162
|
+
limit_raw = primer[:limit_raw]
|
158
163
|
|
159
164
|
unless cdna_primer
|
160
165
|
log.puts Time.now.to_s + "\t" + region + " does not have cDNA primer sequence. #{region} skipped."
|
@@ -261,7 +266,13 @@ primers.each do |primer|
|
|
261
266
|
raw_r1_f = File.open(outfile_raw_r1, 'w')
|
262
267
|
raw_r2_f = File.open(outfile_raw_r2, 'w')
|
263
268
|
|
264
|
-
|
269
|
+
if limit_raw
|
270
|
+
raw_keys = bio_r1.keys.sample(limit_raw.to_i)
|
271
|
+
else
|
272
|
+
raw_keys = bio_r1.keys
|
273
|
+
end
|
274
|
+
|
275
|
+
raw_keys.each do |k|
|
265
276
|
raw_r1_f.puts k + "_r1"
|
266
277
|
raw_r2_f.puts k + "_r2"
|
267
278
|
raw_r1_f.puts bio_r1[k]
|
@@ -474,9 +485,11 @@ primers.each do |primer|
|
|
474
485
|
end
|
475
486
|
end
|
476
487
|
|
477
|
-
|
478
|
-
|
479
|
-
File.unlink(
|
488
|
+
unless options[:keep]
|
489
|
+
log.puts Time.now.to_s + "\t" + "Removing raw sequence files..."
|
490
|
+
File.unlink(r1_f)
|
491
|
+
File.unlink(r2_f)
|
492
|
+
end
|
480
493
|
log.puts Time.now.to_s + "\t" + "TCS pipeline successfuly exercuted."
|
481
494
|
log.close
|
482
495
|
puts "DONE!"
|
data/lib/viral_seq.rb
CHANGED
@@ -38,5 +38,8 @@ require_relative "viral_seq/version"
|
|
38
38
|
require_relative "viral_seq/tcs_core"
|
39
39
|
require_relative "viral_seq/tcs_json"
|
40
40
|
require_relative "viral_seq/tcs_dr"
|
41
|
+
require_relative "viral_seq/sdrm"
|
41
42
|
|
42
43
|
require "muscle_bio"
|
44
|
+
require "json"
|
45
|
+
require "securerandom"
|
data/lib/viral_seq/constant.rb
CHANGED
@@ -1,11 +1,41 @@
|
|
1
1
|
module ViralSeq
|
2
2
|
|
3
3
|
# array for all amino acid one letter abbreviations
|
4
|
-
|
5
4
|
AMINO_ACID_LIST = ["A", "C", "D", "E", "F", "G", "H", "I", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "V", "W", "Y", "*"]
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
# R script for tcs_sdrm script
|
7
|
+
|
8
|
+
R_SCRIPT = 'setwd("PATH_TO_FASTA")
|
9
|
+
library(phangorn)
|
10
|
+
library(ape)
|
11
|
+
library(ggplot2)
|
12
|
+
library(scales)
|
13
|
+
library(ggforce)
|
14
|
+
library(cowplot)
|
15
|
+
library(magrittr)
|
16
|
+
library(gridExtra)
|
17
|
+
pdf("OUTPUT_PDF", onefile=T, width=11, height=8.5)
|
18
|
+
fileNames <- list.files()
|
19
|
+
for (fileName in fileNames) {
|
20
|
+
dna <- read.dna(fileName, format="fasta")
|
21
|
+
class(dna)
|
22
|
+
D<- dist.dna(dna, model="raw")
|
23
|
+
pi <- mean(D)
|
24
|
+
dist20 <- quantile(D, prob=c(0.20))
|
25
|
+
alldist <- data.frame(File=fileName, pi, dist20)
|
26
|
+
write.table(alldist,"OUTPUT_CSV",append=TRUE, sep = ",", row.names = FALSE, col.names=FALSE)
|
27
|
+
D2 <- dist.dna(dna, model="TN93")*100
|
28
|
+
def.par <- par(no.readonly = TRUE)
|
29
|
+
par(mfrow=c(1,2))
|
30
|
+
hist<-hist(D, main=fileName, xlab="% Pairwise Distance", ylab="Frequency", col="gray")
|
31
|
+
abline(v=dist20, col="royalblue",lwd=2)
|
32
|
+
abline(v=pi, col="red", lwd=2)
|
33
|
+
legend(x="topright", c("dist20", "pi"), col = c("royalblue", "red"), lwd = c(2,2), cex=0.5)
|
34
|
+
njtree<-NJ(D2)
|
35
|
+
njtreeplot <- plot(njtree, show.tip.label=F, "unrooted", main=fileName)
|
36
|
+
add.scale.bar(cex=0.7, font=2, col="red")
|
37
|
+
}
|
38
|
+
dev.off()'
|
39
|
+
|
40
|
+
|
11
41
|
end
|
data/lib/viral_seq/hivdr.rb
CHANGED
data/lib/viral_seq/muscle.rb
CHANGED
@@ -39,8 +39,9 @@ module ViralSeq
|
|
39
39
|
|
40
40
|
def self.align(ref_seq = "", test_seq = "", path_to_muscle = false)
|
41
41
|
temp_dir = Dir.home
|
42
|
-
|
43
|
-
|
42
|
+
temp_name = "_" + SecureRandom.alphanumeric
|
43
|
+
temp_file = File.join(temp_dir, temp_name)
|
44
|
+
temp_aln = File.join(temp_dir, (temp_name + "_aln"))
|
44
45
|
name = ">test"
|
45
46
|
temp_in = File.open(temp_file,"w")
|
46
47
|
temp_in.puts ">ref"
|
data/lib/viral_seq/sdrm.rb
CHANGED
@@ -1,43 +1,109 @@
|
|
1
1
|
module ViralSeq
|
2
2
|
class DRMs
|
3
|
-
|
4
|
-
@mutation_list = mutation_list
|
5
|
-
end
|
6
|
-
|
7
|
-
attr_accessor :mutation_list
|
8
|
-
end
|
3
|
+
class << self
|
9
4
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
5
|
+
# function to retrieve sdrm positions as a hash
|
6
|
+
# @param ref_option [Symbol], name of reference genomes, options are `:hiv_pr`, `:hiv_rt`, `:hiv_in`, `hcv_ns5a`
|
7
|
+
# @return [Hash] Hash of :position_number => [ 'wildtype_codon', ['mutation_codons']]
|
8
|
+
def sdrm_hash(options)
|
9
|
+
sdrm = {}
|
10
|
+
case options
|
11
|
+
when :hcv_ns5a
|
12
|
+
sdrm[28] = ['M',['T']]
|
13
|
+
sdrm[30] = ['L',['H','K','R','Q','A','S','D']]
|
14
|
+
sdrm[31] = ['L',['M','V','F']]
|
15
|
+
sdrm[32] = ['P',['L']]
|
16
|
+
sdrm[44] = ['K',['R']]
|
17
|
+
sdrm[58] = ['H',['D','P','S']]
|
18
|
+
sdrm[64] = ['T',['A','S']]
|
19
|
+
sdrm[77] = ['P',['A','S']]
|
20
|
+
sdrm[78] = ['R',['K']]
|
21
|
+
sdrm[79] = ['T',['A']]
|
22
|
+
sdrm[83] = ['T',['M']]
|
23
|
+
sdrm[85] = ['S',['N','H','Y']]
|
24
|
+
sdrm[92] = ['A',['P','T','K','E']]
|
25
|
+
sdrm[93] = ['Y',['C','F','H','N']]
|
26
|
+
sdrm[107] = ['K',['T','S']]
|
27
|
+
sdrm[121] = ['I',['V']]
|
28
|
+
sdrm[135] = ['T',['A']]
|
29
|
+
when :nrti
|
30
|
+
sdrm[41] = ['M',['L']]
|
31
|
+
sdrm[65] = ['K',['R']]
|
32
|
+
sdrm[67] = ['D',['N','G','E']]
|
33
|
+
sdrm[69] = ['T',['D']]
|
34
|
+
sdrm[70] = ['K',['R','E']]
|
35
|
+
sdrm[74] = ['L',['V','I']]
|
36
|
+
sdrm[75] = ['V',['M','T','A','S']]
|
37
|
+
sdrm[77] = ['F',['L']]
|
38
|
+
sdrm[115] = ['Y',['F']]
|
39
|
+
sdrm[116] = ['F',['Y']]
|
40
|
+
sdrm[151] = ['Q',['M']]
|
41
|
+
sdrm[184] = ['M',['V','I']]
|
42
|
+
sdrm[210] = ['L',['W']]
|
43
|
+
sdrm[215] = ["T",["Y","F","I","C","D","V","E"]]
|
44
|
+
sdrm[219] = ["K",["Q","E","N","R"]]
|
45
|
+
when :nnrti
|
46
|
+
sdrm[100] = ['L',['I']]
|
47
|
+
sdrm[101] = ['K',['E','P']]
|
48
|
+
sdrm[103] = ['K',['N','S']]
|
49
|
+
sdrm[106] = ['V',['M','A']]
|
50
|
+
sdrm[179] = ['V',['F','D']]
|
51
|
+
sdrm[181] = ['Y',['C','I','V']]
|
52
|
+
sdrm[188] = ['Y',['L','H','C']]
|
53
|
+
sdrm[190] = ['G',['A','S','E']]
|
54
|
+
sdrm[225] = ['P',['H']]
|
55
|
+
sdrm[230] = ['M',['L']]
|
56
|
+
when :hiv_pr
|
57
|
+
sdrm[23] = ['L',['I']]
|
58
|
+
sdrm[24] = ['L',['I']]
|
59
|
+
sdrm[30] = ['D',['N']]
|
60
|
+
sdrm[32] = ['V',['I']]
|
61
|
+
sdrm[46] = ['M',['I','L']]
|
62
|
+
sdrm[47] = ['I',['V','A']]
|
63
|
+
sdrm[48] = ['G',['V','M']]
|
64
|
+
sdrm[50] = ['I',['V','L']]
|
65
|
+
sdrm[53] = ['F',['L']]
|
66
|
+
sdrm[54] = ['I',['V','L','M','T','A','S']]
|
67
|
+
sdrm[73] = ['G',['S','T','C','A']]
|
68
|
+
sdrm[76] = ['L',['V']]
|
69
|
+
sdrm[82] = ['V',['A','T','S','F','L','C','M']]
|
70
|
+
sdrm[83] = ['N',['D']]
|
71
|
+
sdrm[84] = ['I',['V','A','C']]
|
72
|
+
sdrm[88] = ['N',['D','S']]
|
73
|
+
sdrm[90] = ['L',['M']]
|
74
|
+
when :hiv_in
|
75
|
+
sdrm[66] = ['T',['A','I','K']]
|
76
|
+
sdrm[74] = ['L',['M']]
|
77
|
+
sdrm[92] = ['E',['Q']]
|
78
|
+
sdrm[95] = ['Q',['K']]
|
79
|
+
sdrm[97] = ['T',['A']]
|
80
|
+
sdrm[121] = ['F',['Y']]
|
81
|
+
sdrm[140] = ['G',['A','S','C']]
|
82
|
+
sdrm[143] = ["Y",["C","H","R"]]
|
83
|
+
sdrm[147] = ['S',['G']]
|
84
|
+
sdrm[148] = ['Q',['H','K','R']]
|
85
|
+
sdrm[155] = ['N',['S','H']]
|
86
|
+
else raise "Input option `#{options}` for ViralSeq::Sequence.sdrm not supported"
|
87
|
+
end
|
88
|
+
return sdrm
|
89
|
+
end # end of #sdrm_hash
|
15
90
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
def self.list_from_json(file)
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.list_from_csv(file)
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.export_list_hiv_pr(file, format = :json)
|
26
|
-
if foramt == :json
|
91
|
+
# function to export SDRM positions as json object
|
92
|
+
# @param (see #sdrm_hash)
|
93
|
+
# @return [String] json String of SDRM positions
|
27
94
|
|
95
|
+
def sdrm_json(options)
|
96
|
+
sdrm = ViralSeq::DRMs.sdrm_hash(options)
|
97
|
+
json_array = []
|
98
|
+
sdrm.each do |pos, muts|
|
99
|
+
mutation = {}
|
100
|
+
mutation[:position] = pos
|
101
|
+
mutation[:wildtypeCodon] = muts[0]
|
102
|
+
mutation[:mutationCodons] = muts[1]
|
103
|
+
json_array << mutation
|
104
|
+
end
|
105
|
+
JSON.pretty_generate(json_array)
|
106
|
+
end
|
28
107
|
end
|
29
108
|
end
|
30
|
-
|
31
|
-
def self.export_list_hiv_rt(file, format = :json)
|
32
|
-
|
33
|
-
end
|
34
|
-
|
35
|
-
def self.export_list_hiv_in(file, format = :json)
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
def drm_analysis(seq_hash)
|
40
|
-
mutation_list = self.mutation_list
|
41
|
-
|
42
|
-
end
|
43
109
|
end
|
data/lib/viral_seq/sequence.rb
CHANGED
@@ -113,7 +113,7 @@ module ViralSeq
|
|
113
113
|
def sdrm(option, start_aa = 1)
|
114
114
|
aa_array = self.aa_array
|
115
115
|
out_hash = {}
|
116
|
-
sdrm = sdrm_hash(option)
|
116
|
+
sdrm = ViralSeq::DRMs.sdrm_hash(option)
|
117
117
|
aa_length = aa_array.size
|
118
118
|
end_aa = start_aa + aa_length - 1
|
119
119
|
(start_aa..end_aa).each do |position|
|
@@ -535,88 +535,5 @@ module ViralSeq
|
|
535
535
|
return aa_out
|
536
536
|
end # end of #amino_acid_2
|
537
537
|
|
538
|
-
# sdrm position hash
|
539
|
-
def sdrm_hash(options)
|
540
|
-
sdrm = {}
|
541
|
-
case options
|
542
|
-
when :hcv_ns5a
|
543
|
-
sdrm[28] = ['M',['T']]
|
544
|
-
sdrm[30] = ['L',['H','K','R','Q','A','S','D']]
|
545
|
-
sdrm[31] = ['L',['M','V','F']]
|
546
|
-
sdrm[32] = ['P',['L']]
|
547
|
-
sdrm[44] = ['K',['R']]
|
548
|
-
sdrm[58] = ['H',['D','P','S']]
|
549
|
-
sdrm[64] = ['T',['A','S']]
|
550
|
-
sdrm[77] = ['P',['A','S']]
|
551
|
-
sdrm[78] = ['R',['K']]
|
552
|
-
sdrm[79] = ['T',['A']]
|
553
|
-
sdrm[83] = ['T',['M']]
|
554
|
-
sdrm[85] = ['S',['N','H','Y']]
|
555
|
-
sdrm[92] = ['A',['P','T','K','E']]
|
556
|
-
sdrm[93] = ['Y',['C','F','H','N']]
|
557
|
-
sdrm[107] = ['K',['T','S']]
|
558
|
-
sdrm[121] = ['I',['V']]
|
559
|
-
sdrm[135] = ['T',['A']]
|
560
|
-
when :nrti
|
561
|
-
sdrm[41] = ['M',['L']]
|
562
|
-
sdrm[65] = ['K',['R']]
|
563
|
-
sdrm[67] = ['D',['N','G','E']]
|
564
|
-
sdrm[69] = ['T',['D']]
|
565
|
-
sdrm[70] = ['K',['R','E']]
|
566
|
-
sdrm[74] = ['L',['V','I']]
|
567
|
-
sdrm[75] = ['V',['M','T','A','S']]
|
568
|
-
sdrm[77] = ['F',['L']]
|
569
|
-
sdrm[115] = ['Y',['F']]
|
570
|
-
sdrm[116] = ['F',['Y']]
|
571
|
-
sdrm[151] = ['Q',['M']]
|
572
|
-
sdrm[184] = ['M',['V','I']]
|
573
|
-
sdrm[210] = ['L',['W']]
|
574
|
-
sdrm[215] = ["T",["Y","F","I","C","D","V","E"]]
|
575
|
-
sdrm[219] = ["K",["Q","E","N","R"]]
|
576
|
-
when :nnrti
|
577
|
-
sdrm[100] = ['L',['I']]
|
578
|
-
sdrm[101] = ['K',['E','P']]
|
579
|
-
sdrm[103] = ['K',['N','S']]
|
580
|
-
sdrm[106] = ['V',['M','A']]
|
581
|
-
sdrm[179] = ['V',['F','D']]
|
582
|
-
sdrm[181] = ['Y',['C','I','V']]
|
583
|
-
sdrm[188] = ['Y',['L','H','C']]
|
584
|
-
sdrm[190] = ['G',['A','S','E']]
|
585
|
-
sdrm[225] = ['P',['H']]
|
586
|
-
sdrm[230] = ['M',['L']]
|
587
|
-
when :hiv_pr
|
588
|
-
sdrm[23] = ['L',['I']]
|
589
|
-
sdrm[24] = ['L',['I']]
|
590
|
-
sdrm[30] = ['D',['N']]
|
591
|
-
sdrm[32] = ['V',['I']]
|
592
|
-
sdrm[46] = ['M',['I','L']]
|
593
|
-
sdrm[47] = ['I',['V','A']]
|
594
|
-
sdrm[48] = ['G',['V','M']]
|
595
|
-
sdrm[50] = ['I',['V','L']]
|
596
|
-
sdrm[53] = ['F',['L']]
|
597
|
-
sdrm[54] = ['I',['V','L','M','T','A','S']]
|
598
|
-
sdrm[73] = ['G',['S','T','C','A']]
|
599
|
-
sdrm[76] = ['L',['V']]
|
600
|
-
sdrm[82] = ['V',['A','T','S','F','L','C','M']]
|
601
|
-
sdrm[83] = ['N',['D']]
|
602
|
-
sdrm[84] = ['I',['V','A','C']]
|
603
|
-
sdrm[88] = ['N',['D','S']]
|
604
|
-
sdrm[90] = ['L',['M']]
|
605
|
-
when :hiv_in
|
606
|
-
sdrm[66] = ['T',['A','I','K']]
|
607
|
-
sdrm[74] = ['L',['M']]
|
608
|
-
sdrm[92] = ['E',['Q']]
|
609
|
-
sdrm[95] = ['Q',['K']]
|
610
|
-
sdrm[97] = ['T',['A']]
|
611
|
-
sdrm[121] = ['F',['Y']]
|
612
|
-
sdrm[140] = ['G',['A','S','C']]
|
613
|
-
sdrm[143] = ["Y",["C","H","R"]]
|
614
|
-
sdrm[147] = ['S',['G']]
|
615
|
-
sdrm[148] = ['Q',['H','K','R']]
|
616
|
-
sdrm[155] = ['N',['S','H']]
|
617
|
-
else raise "Input option `#{options}` for ViralSeq::Sequence.sdrm not supported"
|
618
|
-
end
|
619
|
-
return sdrm
|
620
|
-
end
|
621
538
|
end # end of ViralSeq::Sequence
|
622
539
|
end # end of ViralSeq
|
data/lib/viral_seq/tcs_dr.rb
CHANGED
data/lib/viral_seq/version.rb
CHANGED
data/viral_seq.gemspec
CHANGED
@@ -29,11 +29,22 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_development_dependency "rake", "~> 13.0"
|
30
30
|
spec.add_development_dependency "rspec", "~> 3.0"
|
31
31
|
|
32
|
+
# This gem will work with Ruby version 2.5.0 or greater...
|
33
|
+
spec.required_ruby_version = '>= 2.5'
|
34
|
+
# This gem will work with RubyGem version 1.3.6 or greater...
|
35
|
+
spec.required_rubygems_version = '>= 1.3.6'
|
36
|
+
|
32
37
|
# muscle_bio gem required
|
33
38
|
spec.add_runtime_dependency "muscle_bio", "~> 0.4"
|
34
39
|
|
35
40
|
# colorize gem required
|
36
41
|
spec.add_runtime_dependency "colorize", "~> 0.1"
|
37
42
|
|
43
|
+
spec.add_runtime_dependency "prawn", "~> 2.3", '>= 2.3.0'
|
44
|
+
|
45
|
+
spec.add_runtime_dependency "prawn-table", "~> 0.2", '>= 0.2.0'
|
46
|
+
|
47
|
+
spec.add_runtime_dependency "combine_pdf", "~> 1.0", '>= 1.0.0'
|
48
|
+
|
38
49
|
spec.requirements << 'R required for some functions'
|
39
50
|
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.1.
|
4
|
+
version: 1.1.2
|
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: 2021-04-
|
12
|
+
date: 2021-04-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -81,6 +81,66 @@ dependencies:
|
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0.1'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: prawn
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '2.3'
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 2.3.0
|
94
|
+
type: :runtime
|
95
|
+
prerelease: false
|
96
|
+
version_requirements: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - "~>"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '2.3'
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.3.0
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: prawn-table
|
106
|
+
requirement: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.2'
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: 0.2.0
|
114
|
+
type: :runtime
|
115
|
+
prerelease: false
|
116
|
+
version_requirements: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - "~>"
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0.2'
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 0.2.0
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: combine_pdf
|
126
|
+
requirement: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '1.0'
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 1.0.0
|
134
|
+
type: :runtime
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - "~>"
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '1.0'
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: 1.0.0
|
84
144
|
description: |-
|
85
145
|
A Ruby Gem with bioinformatics tools for processing viral NGS data.
|
86
146
|
Specifically for Primer-ID sequencing and HIV drug resistance analysis.
|
@@ -142,12 +202,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
142
202
|
requirements:
|
143
203
|
- - ">="
|
144
204
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
205
|
+
version: '2.5'
|
146
206
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
207
|
requirements:
|
148
208
|
- - ">="
|
149
209
|
- !ruby/object:Gem::Version
|
150
|
-
version:
|
210
|
+
version: 1.3.6
|
151
211
|
requirements:
|
152
212
|
- R required for some functions
|
153
213
|
rubygems_version: 3.2.2
|