bio-polyploid-tools 0.4.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 +4 -4
- data/VERSION +1 -1
- data/bin/polymarker.rb +3 -3
- data/bin/snp_position_to_polymarker.rb +3 -1
- data/bio-polyploid-tools.gemspec +3 -3
- data/lib/bio/BIOExtensions.rb +3 -1
- data/lib/bio/PolyploidTools/ExonContainer.rb +11 -3
- data/lib/bio/PolyploidTools/SNP.rb +11 -14
- data/lib/bio/PolyploidTools/SNPSequence.rb +1 -0
- data/lib/bio/db/exonerate.rb +1 -4
- data/lib/bio/db/primer3.rb +0 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d839159cd2b8aee7e5586e5b04a4fadc1415b90
|
4
|
+
data.tar.gz: 30af7856bfe87e382b0e0e8c8890507b743d8057
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19893d9fcdf0a5583c1b07d5bf86e8bbc517cd6219bba0d9e0966532756c63be3765f02810758dd4488232cf68edccf55a8d22d9bb07195eb3a94825e7ffba49
|
7
|
+
data.tar.gz: 80bdd7c718ab9c05155b8da99cec7ed543e938a942591acd0a53fce8cbe7e797ffb044e48b96734c795a5a9cda8b5cdd269d019766dffa0c5f498207744f9ef9
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.1
|
data/bin/polymarker.rb
CHANGED
@@ -266,10 +266,10 @@ file = File.open(primer_3_input, "w")
|
|
266
266
|
#file.puts("PRIMER_THERMODYNAMIC_PARAMETERS_PATH=#{primer_3_config}/")
|
267
267
|
|
268
268
|
Bio::DB::Primer3.prepare_input_file(file, options[:primer_3_preferences])
|
269
|
-
container.print_primer_3_exons(file, nil, snp_in)
|
269
|
+
added_exons = container.print_primer_3_exons(file, nil, snp_in)
|
270
270
|
file.close
|
271
271
|
|
272
|
-
Bio::DB::Primer3.run({:in=>primer_3_input, :out=>primer_3_output})
|
272
|
+
Bio::DB::Primer3.run({:in=>primer_3_input, :out=>primer_3_output}) if added_exons > 0
|
273
273
|
|
274
274
|
|
275
275
|
#5. Pick the best primer and make the primer3 output
|
@@ -282,7 +282,7 @@ snps.each do |snp|
|
|
282
282
|
kasp_container.add_snp(snp)
|
283
283
|
end
|
284
284
|
|
285
|
-
kasp_container.add_primers_file(primer_3_output)
|
285
|
+
kasp_container.add_primers_file(primer_3_output) if added_exons > 0
|
286
286
|
header = "Marker,SNP,RegionSize,chromosome,total_contigs,contig_regions,SNP_type,#{snp_in},#{original_name},common,primer_type,orientation,#{snp_in}_TM,#{original_name}_TM,common_TM,selected_from,product_size"
|
287
287
|
File.open(output_primers, 'w') { |f| f.write("#{header}\n#{kasp_container.print_primers}") }
|
288
288
|
|
@@ -37,7 +37,9 @@ OptionParser.new do |opts|
|
|
37
37
|
opts.on("-o", "--out CSV", "Output file ") do |o|
|
38
38
|
options[:output] = o
|
39
39
|
end
|
40
|
-
opts.on(
|
40
|
+
opts.on("-f", "--flanking_size INT", "Flanking size around the SNP") do |o|
|
41
|
+
options[:flanking_size] = o.to_i
|
42
|
+
end
|
41
43
|
|
42
44
|
end.parse!
|
43
45
|
#reference="/Users/ramirezr/Documents/TGAC/references/Triticum_aestivum.IWGSP1.21.dna_rm.genome.fa"
|
data/bio-polyploid-tools.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: bio-polyploid-tools 0.4.
|
5
|
+
# stub: bio-polyploid-tools 0.4.1 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "bio-polyploid-tools"
|
9
|
-
s.version = "0.4.
|
9
|
+
s.version = "0.4.1"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Ricardo H. Ramirez-Gonzalez"]
|
14
|
-
s.date = "2014-09-
|
14
|
+
s.date = "2014-09-26"
|
15
15
|
s.description = "Repository of tools developed in TGAC and Crop Genetics in JIC to work with polyploid wheat"
|
16
16
|
s.email = "ricardo.ramirez-gonzalez@tgac.ac.uk"
|
17
17
|
s.executables = ["bfr.rb", "count_variations.rb", "filter_blat_by_target_coverage.rb", "find_best_blat_hit.rb", "find_best_exonerate.rb", "hexaploid_primers.rb", "homokaryot_primers.rb", "map_markers_to_contigs.rb", "markers_in_region.rb", "polymarker.rb", "snp_position_to_polymarker.rb", "snps_between_bams.rb"]
|
data/lib/bio/BIOExtensions.rb
CHANGED
@@ -5,7 +5,7 @@ module Bio::PolyploidTools
|
|
5
5
|
attr_reader :parental_1_name, :parental_2_name, :gene_models_db
|
6
6
|
attr_reader :chromosomes, :snp_map
|
7
7
|
attr_reader :parents
|
8
|
-
attr_accessor :flanking_size
|
8
|
+
attr_accessor :flanking_size , :primer_3_min_seq_length
|
9
9
|
|
10
10
|
BASES = [:A, :C, :G, :T]
|
11
11
|
#Sets the reference file for the gene models
|
@@ -14,6 +14,7 @@ module Bio::PolyploidTools
|
|
14
14
|
@parents=Hash.new
|
15
15
|
@snp_map = Hash.new
|
16
16
|
@snp_contigs
|
17
|
+
@primer_3_min_seq_length = 50
|
17
18
|
end
|
18
19
|
|
19
20
|
def gene_models(path)
|
@@ -126,17 +127,24 @@ module Bio::PolyploidTools
|
|
126
127
|
end
|
127
128
|
|
128
129
|
def print_primer_3_exons (file, target_chromosome , parental )
|
130
|
+
added = 0
|
129
131
|
@snp_map.each do | gene, snp_array|
|
130
132
|
snp_array.each do |snp|
|
133
|
+
string = ""
|
131
134
|
begin
|
132
|
-
|
133
|
-
|
135
|
+
primer_3_min_seq_length
|
136
|
+
string = snp.primer_3_string( snp.chromosome, parental )
|
137
|
+
if string.size > 0
|
138
|
+
file.puts string
|
139
|
+
added += 1
|
140
|
+
end
|
134
141
|
rescue Exception=>e
|
135
142
|
@missing_exons << snp.to_s
|
136
143
|
#$stderr.puts e.to_s
|
137
144
|
end
|
138
145
|
end
|
139
146
|
end
|
147
|
+
return added
|
140
148
|
end
|
141
149
|
|
142
150
|
def add_alignments(opts=Hash.new)
|
@@ -12,7 +12,7 @@ module Bio::PolyploidTools
|
|
12
12
|
attr_accessor :template_sequence
|
13
13
|
attr_accessor :use_reference
|
14
14
|
attr_accessor :genomes_count
|
15
|
-
|
15
|
+
attr_accessor :primer_3_min_seq_length
|
16
16
|
attr_accessor :chromosome
|
17
17
|
|
18
18
|
#Format:
|
@@ -35,13 +35,18 @@ module Bio::PolyploidTools
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def initialize
|
38
|
-
|
38
|
+
@genomes_count = 3 #TODO: if we want to use this with other polyploids, me need to set this as a variable in the main script.
|
39
|
+
@primer_3_min_seq_length = 50
|
39
40
|
end
|
40
41
|
|
41
|
-
def to_polymarker_sequence
|
42
|
+
def to_polymarker_sequence(flanking_size)
|
42
43
|
out = template_sequence.clone
|
43
44
|
out[position-1] = "[#{original}/#{snp}]"
|
44
|
-
|
45
|
+
|
46
|
+
start = position - flanking_size - 1
|
47
|
+
start = 0 if start < 0
|
48
|
+
total = flanking_size * 2 + 6
|
49
|
+
out[start , total ]
|
45
50
|
end
|
46
51
|
|
47
52
|
def snp_id_in_seq
|
@@ -283,6 +288,8 @@ module Bio::PolyploidTools
|
|
283
288
|
primer_3_propertes = Array.new
|
284
289
|
|
285
290
|
seq_original = String.new(pr.sequence)
|
291
|
+
put seq_original.size << "-" << primer_3_min_seq_length
|
292
|
+
return primer_3_propertes if seq_original.size < primer_3_min_seq_length
|
286
293
|
seq_original[pr.snp_pos] = self.original
|
287
294
|
seq_original_reverse = reverse_complement_string(seq_original)
|
288
295
|
|
@@ -407,16 +414,10 @@ module Bio::PolyploidTools
|
|
407
414
|
seq[local_pos_in_gene] = self.original
|
408
415
|
end
|
409
416
|
end
|
410
|
-
#puts "local_pos_in_gene #{local_pos_in_gene}"
|
411
|
-
#puts "'#{name}' compared to '#{self.snp_in}'"
|
412
|
-
#puts seq
|
413
417
|
seq[local_pos_in_gene] = seq[local_pos_in_gene].upcase
|
414
418
|
seq[local_pos_in_gene] = self.snp if name == self.snp_in
|
415
|
-
#puts seq
|
416
|
-
#puts "__"
|
417
419
|
@surrounding_parental_sequences [name] = cut_and_pad_sequence_to_primer_region(seq)
|
418
420
|
end
|
419
|
-
# puts "&&&&\n#{surrounding_parental_sequences['A']}\n#{surrounding_parental_sequences['B']}\n&&&&"
|
420
421
|
@surrounding_parental_sequences
|
421
422
|
end
|
422
423
|
|
@@ -430,7 +431,6 @@ module Bio::PolyploidTools
|
|
430
431
|
end
|
431
432
|
|
432
433
|
def cut_and_pad_sequence_to_primer_region(sequence)
|
433
|
-
# p "cut_and_pad_sequence_to_primer_region #{local_position} #{flanking_size}"
|
434
434
|
ideal_min = self.local_position - flanking_size
|
435
435
|
ideal_max = self.local_position + flanking_size
|
436
436
|
left_pad = 0
|
@@ -448,10 +448,7 @@ module Bio::PolyploidTools
|
|
448
448
|
end
|
449
449
|
|
450
450
|
def sequences_to_align
|
451
|
-
p @sequences_to_align.inspect
|
452
451
|
@sequences_to_align = surrounding_parental_sequences.merge(surrounding_exon_sequences) unless @sequences_to_align
|
453
|
-
# p "sequences_to_align"
|
454
|
-
|
455
452
|
@sequences_to_align
|
456
453
|
end
|
457
454
|
|
@@ -44,6 +44,7 @@ module Bio::PolyploidTools
|
|
44
44
|
@position = Regexp.last_match(:pre).size + 1
|
45
45
|
@original = Regexp.last_match(:org)
|
46
46
|
@snp = Regexp.last_match(:snp)
|
47
|
+
|
47
48
|
amb_base = Bio::NucleicAcid.to_IUAPC("#{@original}#{@snp}")
|
48
49
|
|
49
50
|
@template_sequence = "#{Regexp.last_match(:pre)}#{amb_base}#{Regexp.last_match(:pos)}"
|
data/lib/bio/db/exonerate.rb
CHANGED
@@ -199,9 +199,7 @@ module Bio::DB::Exonerate
|
|
199
199
|
reg.start = target_snp_pos - flanking_size
|
200
200
|
reg.end = target_snp_pos + flanking_size
|
201
201
|
raise ExonerateException.new "Target Query out of bounds!" unless position.between?(query_start, query_end)
|
202
|
-
|
203
|
-
|
204
|
-
|
202
|
+
|
205
203
|
reg
|
206
204
|
end
|
207
205
|
|
@@ -226,7 +224,6 @@ module Bio::DB::Exonerate
|
|
226
224
|
end
|
227
225
|
#THis is in case the position is on a gap.
|
228
226
|
if @target_length == 0 and label == :G
|
229
|
-
#puts "Returning nil"
|
230
227
|
@snp_in_gap = true
|
231
228
|
ret = target_start
|
232
229
|
end
|
data/lib/bio/db/primer3.rb
CHANGED
@@ -17,12 +17,6 @@ module Bio::DB::Primer3
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.prepare_input_file(file, opts2={})
|
20
|
-
#file.puts("PRIMER_PRODUCT_SIZE_RANGE=50-150")
|
21
|
-
#file.puts("PRIMER_MAX_SIZE=25")
|
22
|
-
#file.puts("PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=1")
|
23
|
-
#file.puts("PRIMER_LIBERAL_BASE=1")
|
24
|
-
#file.puts("PRIMER_NUM_RETURN=5")
|
25
|
-
#file.puts("PRIMER_THERMODYNAMIC_PARAMETERS_PATH=#{primer_3_config}/")
|
26
20
|
opts = {
|
27
21
|
:primer_product_size_range => "50-150" ,
|
28
22
|
:primer_max_size => 25 ,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bio-polyploid-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ricardo H. Ramirez-Gonzalez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bio
|