Module: Bio::DB::Primer3
- Defined in:
- lib/bio/db/primer3.rb
Defined Under Namespace
Classes: KASPContainer, Primer, Primer3Exception, Primer3Record, PrimerPair, SNP
Class Method Summary
collapse
Class Method Details
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/bio/db/primer3.rb', line 19
def self.prepare_input_file(file, opts2={})
opts = {
:primer_product_size_range => "50-150" ,
:primer_max_size => 25 ,
:primer_lib_ambiguity_codes_consensus => 1,
:primer_liberal_base => 1,
:primer_num_return => 5,
:primer_explain_flag => 1,
:primer_thermodynamic_parameters_path => File.expand_path(File.dirname(__FILE__) + '../../../../conf/primer3_config/') + '/'
}.merge(opts2)
opts.each do |key,value|
file.puts "#{key.to_s.upcase}=#{value}\n"
end
end
|
.read_primer_preferences(file, defaults) ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/bio/db/primer3.rb', line 6
def self.read_primer_preferences(file, defaults)
File.open(file) do |f|
f.each_line do | line |
line.chomp!
arr = line.split("=")
defaults[arr[0].downcase.to_sym] = arr[1];
end
end
return defaults
end
|
.run(opts = {}) ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/bio/db/primer3.rb', line 36
def self.run(opts={})
puts "Primer3.run running..."
f_in=opts[:in]
f_out=opts[:out]
opts.delete(:in)
opts.delete(:out)
primer_3_in = File.read(f_in)
status = systemu "primer3_core", 0=>primer_3_in, 1=>stdout='', 2=>stderr=''
if status.exitstatus == 0
File.open(f_out, 'w') { |f| f.write(stdout) }
else
raise Primer3Exception.new(), "Error running primer3. Command line was 'primer3_core'\nPrimer3 STDERR was:\n#{stderr}"
end
end
|