viral_seq 1.1.1 → 1.1.2

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
2
  SHA256:
3
- metadata.gz: 7a283f3a09cc5d9807e7622cd1ddf27197919955e85d6472b34fc14b66749c03
4
- data.tar.gz: 4f90c5a9c7ea0ec148ba7d45ee88dc441f79da67a97654734194a773499ebb8e
3
+ metadata.gz: '093a8d1d70e251b0748b7035c829eb512991437ffa78fd67387318412e54acf5'
4
+ data.tar.gz: 1b9d6f6b2cb2ffa8d9cc588b8df096e7ac3840c694bfb241fcf970b738899328
5
5
  SHA512:
6
- metadata.gz: 385a94eb93c3d8d9116c16a0d8af56ba714ba6191a454076acf881a036de80d1d598f3fcd1a4de841745ca08a1ad3e8bc028a30db9f96c19f3b217ef4583d652
7
- data.tar.gz: 714d035b6f65863746cafb120c9cf6eccb8261f3eac69985bad96e5275351eec71aa3b744ee9b462e2dc3e0e199c2d4112386f6a2d7eef89b5b7824c1ab769be
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.0.13)
5
- colorize (~> 0.1)
6
- muscle_bio (~> 0.4)
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
- bio_r1.keys.each do |k|
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
- log.puts Time.now.to_s + "\t" + "Removing raw sequence files..."
478
- File.unlink(r1_f)
479
- File.unlink(r2_f)
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"
@@ -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
- SDRM_HIV_PR_LIST = {}
8
- SDRM_HIV_RT_LIST = {}
9
- SDRM_HIV_IN_LIST = {}
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
@@ -1,6 +1,6 @@
1
1
 
2
2
  module ViralSeq
3
- class SDRM
3
+ class SeqHash
4
4
 
5
5
  # functions to identify SDRMs from a ViralSeq::SeqHash object at HIV PR region.
6
6
  # works for MPID-DR protocol (dx.doi.org/10.17504/protocols.io.useewbe)
@@ -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
- temp_file = File.join(temp_dir, "_temp_muscle_in")
43
- temp_aln = File.join(temp_dir, "_temp_muscle_aln")
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"
@@ -1,43 +1,109 @@
1
1
  module ViralSeq
2
2
  class DRMs
3
- def initialize (mutation_list = {})
4
- @mutation_list = mutation_list
5
- end
6
-
7
- attr_accessor :mutation_list
8
- end
3
+ class << self
9
4
 
10
- def self.sdrm_hiv_pr(seq_hash)
11
- end
12
-
13
- def self.sdrm_hiv_rt(seq_hash)
14
- end
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
- def self.sdrm_hiv_in(seq_hash)
17
- end
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
@@ -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
@@ -16,7 +16,7 @@ module ViralSeq
16
16
  :ref_genome=>"HXB2",
17
17
  :ref_start=>2648,
18
18
  :ref_end=>3257,
19
- :indel=>true,
19
+ :indel=>false,
20
20
  :trim=>false},
21
21
  {:region=>"PR",
22
22
  :cdna=>
@@ -2,6 +2,6 @@
2
2
  # version info and histroy
3
3
 
4
4
  module ViralSeq
5
- VERSION = "1.1.1"
6
- TCS_VERSION = "2.3.0"
5
+ VERSION = "1.1.2"
6
+ TCS_VERSION = "2.3.1"
7
7
  end
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.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-01 00:00:00.000000000 Z
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: '0'
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: '0'
210
+ version: 1.3.6
151
211
  requirements:
152
212
  - R required for some functions
153
213
  rubygems_version: 3.2.2